USE [C6StampeCentralizzate]
GO
/****** Object:  SqlAssembly [RegExFunction]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE ASSEMBLY [RegExFunction]
FROM [encoded data, 20482 characters]
WITH PERMISSION_SET = SAFE
GO
/****** Object:  SqlAssembly [SqlClassLibrary]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE ASSEMBLY [SqlClassLibrary]
FROM [encoded data, 34818 characters]
WITH PERMISSION_SET = SAFE
GO
ALTER ASSEMBLY [SqlClassLibrary]
ADD FILE FROM [encoded data, 49714 characters]
AS N'CLR_StoredProcedure\CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT.cs'
GO
ALTER ASSEMBLY [SqlClassLibrary]
ADD FILE FROM [encoded data, 15708 characters]
AS N'CLR_StoredProcedure\CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT.cs'
GO
ALTER ASSEMBLY [SqlClassLibrary]
ADD FILE FROM 0xEFBBBF7573696E672053797374656D2E5265666C656374696F6E3B0D0A7573696E672053797374656D2E52756E74696D652E436F6D70696C657253657276696365733B0D0A7573696E672053797374656D2E52756E74696D652E496E7465726F7053657276696365733B0D0A7573696E672053797374656D2E446174612E53716C3B0D0A0D0A2F2F2047656E6572616C20496E666F726D6174696F6E2061626F757420616E20617373656D626C7920697320636F6E74726F6C6C6564207468726F7567682074686520666F6C6C6F77696E670D0A2F2F20736574206F6620617474726962757465732E204368616E6765207468657365206174747269627574652076616C75657320746F206D6F646966792074686520696E666F726D6174696F6E0D0A2F2F206173736F636961746564207769746820616E20617373656D626C792E0D0A5B617373656D626C793A20417373656D626C795469746C65282243616D706144617461436865636B7322295D0D0A5B617373656D626C793A20417373656D626C794465736372697074696F6E282222295D0D0A5B617373656D626C793A20417373656D626C79436F6E66696775726174696F6E282222295D0D0A5B617373656D626C793A20417373656D626C79436F6D70616E7928224865776C6574742D5061636B61726420436F6D70616E7922295D0D0A5B617373656D626C793A20417373656D626C7950726F64756374282243616D706144617461436865636B7322295D0D0A5B617373656D626C793A20417373656D626C79436F707972696768742822436F7079726967687420C2A9204865776C6574742D5061636B61726420436F6D70616E79203230313022295D0D0A5B617373656D626C793A20417373656D626C7954726164656D61726B282222295D0D0A5B617373656D626C793A20417373656D626C7943756C74757265282222295D0D0A0D0A5B617373656D626C793A20436F6D56697369626C652866616C7365295D0D0A0D0A2F2F0D0A2F2F2056657273696F6E20696E666F726D6174696F6E20666F7220616E20617373656D626C7920636F6E7369737473206F662074686520666F6C6C6F77696E6720666F75722076616C7565733A0D0A2F2F0D0A2F2F2020202020204D616A6F722056657273696F6E0D0A2F2F2020202020204D696E6F722056657273696F6E0D0A2F2F2020202020204275696C64204E756D6265720D0A2F2F2020202020205265766973696F6E0D0A2F2F0D0A2F2F20596F752063616E207370656369667920616C6C207468652076616C756573206F7220796F752063616E2064656661756C7420746865205265766973696F6E20616E64204275696C64204E756D626572730D0A2F2F206279207573696E672074686520272A272061732073686F776E2062656C6F773A0D0A5B617373656D626C793A20417373656D626C7956657273696F6E2822312E302E2A22295D0D0A0D0A
AS N'Properties\AssemblyInfo.cs'
GO
ALTER ASSEMBLY [SqlClassLibrary]
ADD FILE FROM [encoded data, 44034 characters]
AS N'SqlClassLibrary.pdb'
GO
/****** Object:  Schema [audit]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [audit]
GO
/****** Object:  Schema [C6Mart]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6Mart]
GO
/****** Object:  Schema [C6MartPeriodico]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6MartPeriodico]
GO
/****** Object:  Schema [C6MartPeriodicoImmobiliare]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6MartPeriodicoImmobiliare]
GO
/****** Object:  Schema [C6Staging]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6Staging]
GO
/****** Object:  Schema [C6StagingPeriodico]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6StagingPeriodico]
GO
/****** Object:  Schema [C6StagingPeriodicoImmobiliare]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6StagingPeriodicoImmobiliare]
GO
/****** Object:  Schema [C6Storico]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6Storico]
GO
/****** Object:  Schema [C6StoricoPeriodico]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [C6StoricoPeriodico]
GO
/****** Object:  Schema [dboPeriodico]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [dboPeriodico]
GO
/****** Object:  Schema [F]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [F]
GO
/****** Object:  Schema [level2martperiodico]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [level2martperiodico]
GO
/****** Object:  Schema [test]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [test]
GO
/****** Object:  Schema [tt4]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [tt4]
GO
/****** Object:  Schema [wh]    Script Date: 5/21/2025 3:35:55 PM ******/
CREATE SCHEMA [wh]
GO
/****** Object:  UserDefinedFunction [C6Mart].[CARATTERINONVALIDI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6Mart].[CARATTERINONVALIDI]
(
		@text as varchar(max)
       
)
RETURNS  VARCHAR(1)
AS
BEGIN
   DECLARE @num AS INT
   
    SET @num = 1
	WHILE @num < LEN(@text)
	 BEGIN
		 IF ASCII(SUBSTRING(@text,@num,1)) < 32   RETURN 'S'-- ' '		 	  
		 IF ASCII(SUBSTRING(@text,@num,1)) = 33   RETURN 'S'-- '!'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 34   RETURN 'S'-- '"'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 35   RETURN 'S'-- '#'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 36   RETURN 'S'-- '$'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 37   RETURN 'S'-- '%'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 38   RETURN 'S'-- '&' 
		 IF ASCII(SUBSTRING(@text,@num,1)) = 42   RETURN 'S'-- '*'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 58   RETURN 'S'-- ':'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 59   RETURN 'S'-- ';'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 60   RETURN 'S'-- '<'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 61   RETURN 'S'-- '='
		 IF ASCII(SUBSTRING(@text,@num,1)) = 62   RETURN 'S'-- '>'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 91   RETURN 'S'-- '['
		 IF ASCII(SUBSTRING(@text,@num,1)) = 92   RETURN 'S'-- '\'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 93   RETURN 'S'-- ']'
		 IF ASCII(SUBSTRING(@text,@num,1)) = 94   RETURN 'S'-- '^' 
		 IF ASCII(SUBSTRING(@text,@num,1)) = 96   RETURN 'S'-- '`'	
		 IF ASCII(SUBSTRING(@text,@num,1)) > 122  RETURN 'S'-- 'z'		 
		 SET @num = @num + 1	   
     END  
	RETURN 'N'
END



 


GO
/****** Object:  UserDefinedFunction [C6Mart].[CONCATENA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE FUNCTION [C6Mart].[CONCATENA]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here
	-- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
	 	SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)


-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31


	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(v.Indirizzo + '                                                  ',50) --VIA(50)
		+ LEFT(ISNULL(v.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(v.Citta + '                                                  ',50) --LOCALITA(50)
		+ LEFT(ISNULL(v.Provincia,'') + '  ',2)--PROVINCIA(2)
		-- Modifica del 17/12/2018 per gestire il caso NULL della v.nazione
				--  + (CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
			+ (CASE UPPER(isnull(v.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		-- fine modifica del 17/12/2018
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DW' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		-- Modifica del 17/12/2018 per gestire il caso NULL della v.nazione
			--   + LEFT((CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN '' ELSE v.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
			+ LEFT((CASE UPPER(isnull(v.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE (isnull(v.Nazione,'')) END) + '                               ',30)) -- NAZIONEESTERA(30)
		-- fine modifica del 17/12/2018
		--+ '>>>'
		+ right (' ' + CASE WHEN ISNULL(ROL.STATOROL,'S') = 'S' THEN 'S' ELSE 'N' END, 1)
		--+ right (' ' + v.flagRol, 1)
		--+ '<<<'
		+ right ('                ' + v.Cod_Fiscale, 16)
		+ left (coalesce(v.Email, '') + '                                                  ', 50)
		+ convert(char(8),GESTIONE_PDF_FTP.DataGenerazione, 112)	
		+ v.COD_AGENTE	


	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.Vcontratti v
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND v.Rete = @RETE
		AND v.COD_FISCALE = @CF
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6Staging.WSROL  ROL
		ON ROL.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale 
		AND ROL.RETE = GESTIONE_PDF_FTP.RETE 
	LEFT JOIN C6MART.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		
	--order by tiporeport desc

	RETURN @RESULT

END





GO
/****** Object:  UserDefinedFunction [C6Mart].[CONCATENA_20181210_DoppioROL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [C6Mart].[CONCATENA_20181210_DoppioROL]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here
	-- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
	 	SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)


-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31


	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(v.Indirizzo + '                                                  ',50) --VIA(50)
		+ LEFT(ISNULL(v.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(v.Citta + '                                                  ',50) --LOCALITA(50)
		+ LEFT(ISNULL(v.Provincia,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DW' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN '' ELSE v.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
		--+ '>>>'
		+ right (' ' + CASE WHEN ISNULL(ROL.STATOROL,'N') = 'S' THEN 'S' ELSE 'N' END, 1)
		--+ right (' ' + v.flagRol, 1)
		--+ '<<<'
		+ right ('                ' + v.Cod_Fiscale, 16)
		+ left (coalesce(v.Email, '') + '                                                  ', 50)
		+ convert(char(8),GESTIONE_PDF_FTP.DataGenerazione, 112)	
		+ v.COD_AGENTE	


	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.Vcontratti v
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND v.Rete = @RETE
		AND v.COD_FISCALE = @CF
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6Staging.WSROL  ROL
		ON ROL.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale 
		AND ROL.RETE = GESTIONE_PDF_FTP.RETE 
	LEFT JOIN C6MART.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		
	--order by tiporeport desc

	RETURN @RESULT

END





GO
/****** Object:  UserDefinedFunction [C6Mart].[CONCATENA_20181217_preModNazione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [C6Mart].[CONCATENA_20181217_preModNazione]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here
	-- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
	 	SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)


-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31


	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(v.Indirizzo + '                                                  ',50) --VIA(50)
		+ LEFT(ISNULL(v.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(v.Citta + '                                                  ',50) --LOCALITA(50)
		+ LEFT(ISNULL(v.Provincia,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DW' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN '' ELSE v.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
		--+ '>>>'
		+ right (' ' + CASE WHEN ISNULL(ROL.STATOROL,'N') = 'S' THEN 'S' ELSE 'N' END, 1)
		--+ right (' ' + v.flagRol, 1)
		--+ '<<<'
		+ right ('                ' + v.Cod_Fiscale, 16)
		+ left (coalesce(v.Email, '') + '                                                  ', 50)
		+ convert(char(8),GESTIONE_PDF_FTP.DataGenerazione, 112)	
		+ v.COD_AGENTE	


	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.Vcontratti v
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND v.Rete = @RETE
		AND v.COD_FISCALE = @CF
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6Staging.WSROL  ROL
		ON ROL.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale 
		AND ROL.RETE = GESTIONE_PDF_FTP.RETE 
	LEFT JOIN C6MART.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		
	--order by tiporeport desc

	RETURN @RESULT

END





GO
/****** Object:  UserDefinedFunction [C6Mart].[CONCATENA_CHECK]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE FUNCTION [C6Mart].[CONCATENA_CHECK]
(
		@RETE as varchar(1),
        @CF as  varchar(16),
		@idReport as int
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here
	-- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
	 	SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)


-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31


	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(v.Indirizzo + '                                                  ',50) --VIA(50)
		+ LEFT(ISNULL(v.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(v.Citta + '                                                  ',50) --LOCALITA(50)
		+ LEFT(ISNULL(v.Provincia,'') + '  ',2)--PROVINCIA(2)
		-- Modifica del 17/12/2018 per gestire il caso NULL della v.nazione
				--  + (CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
			+ (CASE UPPER(isnull(v.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		-- fine modifica del 17/12/2018
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DW' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		-- Modifica del 17/12/2018 per gestire il caso NULL della v.nazione
			--   + LEFT((CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN '' ELSE v.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
			+ LEFT((CASE UPPER(isnull(v.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE (isnull(v.Nazione,'')) END) + '                               ',30)) -- NAZIONEESTERA(30)
		-- fine modifica del 17/12/2018
		--+ '>>>'
		+ right (' ' + CASE WHEN ISNULL(ROL.STATOROL,'N') = 'S' THEN 'S' ELSE 'N' END, 1)
		--+ right (' ' + v.flagRol, 1)
		--+ '<<<'
		+ right ('                ' + v.Cod_Fiscale, 16)
		+ left (coalesce(v.Email, '') + '                                                  ', 50)
		+ convert(char(8),GESTIONE_PDF_FTP.DataGenerazione, 112)	
		+ v.COD_AGENTE	


	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.Vcontratti v
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND v.Rete = @RETE
		AND v.COD_FISCALE = @CF
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	LEFT JOIN C6Staging.WSROL  ROL
		ON ROL.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale 
		AND ROL.RETE = GESTIONE_PDF_FTP.RETE 
	LEFT JOIN C6MART.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	WHERE GESTIONE_PDF_FTP.idReport = @idReport
		
	--order by tiporeport desc

	RETURN @RESULT

END





GO
/****** Object:  UserDefinedFunction [C6Mart].[CONCATENA_TEST_NEW]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create FUNCTION [C6Mart].[CONCATENA_TEST_NEW]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here
	-- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
	 	SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)


-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31


	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(v.Indirizzo + '                                                  ',50) --VIA(50)
		+ LEFT(ISNULL(v.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(v.Citta + '                                                  ',50) --LOCALITA(50)
		+ LEFT(ISNULL(v.Provincia,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DW' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN '' ELSE v.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
		--+ '>>>'
		+ right (' ' + CASE WHEN ISNULL(ROL.STATOROL,'N') = 'S' THEN 'S' ELSE 'N' END, 1)
		--+ right (' ' + v.flagRol, 1)
		--+ '<<<'
		+ right ('                ' + v.Cod_Fiscale, 16)
		+ left (coalesce(v.Email, '') + '                                                  ', 50)
		+ convert(char(8),GESTIONE_PDF_FTP.DataGenerazione, 112)
		+ v.COD_AGENTE	


	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.Vcontratti v
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND v.Rete = @RETE
		AND v.COD_FISCALE = @CF
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6Staging.WSROL  ROL
		ON ROL.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale 
		AND ROL.RETE = GESTIONE_PDF_FTP.RETE 
	LEFT JOIN C6MART.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		
	--order by tiporeport desc

	RETURN @RESULT

END



GO
/****** Object:  UserDefinedFunction [C6Mart].[CONCATENA_TESTGIOR]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE FUNCTION [C6Mart].[CONCATENA_TESTGIOR]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here
	-- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
	 	SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)


-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31


	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(v.Indirizzo + '                                                  ',50) --VIA(50)
		+ LEFT(ISNULL(v.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(v.Citta + '                                                  ',50) --LOCALITA(50)
		+ LEFT(ISNULL(v.Provincia,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DW' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(v.Nazione) WHEN 'ITALIA' THEN '' ELSE v.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
		--+ '>>>'
		+ right (' ' + CASE WHEN ISNULL(ROL.STATOROL,'N') = 'S' THEN 'S' ELSE 'N' END, 1)
		--+ right (' ' + v.flagRol, 1)
		--+ '<<<'
		+ right ('                ' + v.Cod_Fiscale, 16)
		+ left (coalesce(v.Email, '') + '                                                  ', 50)
		+ convert(char(8),GESTIONE_PDF_FTP.DataGenerazione, 112)	


	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.Vcontratti v
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND v.Rete = @RETE
		AND v.COD_FISCALE = @CF
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6Staging.WSROL  ROL
		ON ROL.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale 
		AND ROL.RETE = GESTIONE_PDF_FTP.RETE 
	LEFT JOIN C6MART.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,'20141208') = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,'20141208') = 0)
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		and cb.rete is null
	--order by tiporeport desc

	RETURN @RESULT

END



GO
/****** Object:  UserDefinedFunction [C6Mart].[CreaPositionIDCS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6Mart].[CreaPositionIDCS]
(
	@TipoProdotto VARCHAR(5)='',
	@CodInterno VARCHAR(13)='', 
	@CodMAF VARCHAR(13)='', 
	@CodSottoprodotto VARCHAR(13)='',
	@CodiceContratto VARCHAR(11)='',
	@NumeroPolizza VARCHAR(11)= '', 
	@Conto VARCHAR(12)= '',
	@Rubricato VARCHAR(4)='',
	@CustodiaGaranzia VARCHAR(1)='',
	@Termid VARCHAR(8)='', 
	@Anno DECIMAL(3)=0, 
	@Prog DECIMAL(9)=0
)
RETURNS VARCHAR(129)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ResultVar VARCHAR(129)

	-- Add the T-SQL statements to compute the return value here
	SET @ResultVar =
	CASE
		WHEN @TipoProdotto = 'CC' THEN ''
		ELSE C6Staging.Info_DaProdottoCSaCatalogo(
				@TipoProdotto,
				@CodInterno,
				@CodMAF,
				'',
				@CodSottoProdotto
			)
	END
	+
	dbo.Crea_PositionID(
		@TipoProdotto,
		@CodInterno,
		@CodMAF,
		'',
		@CodSottoProdotto,
		@CodiceContratto,
		@NumeroPolizza,
		@Conto,
		@Rubricato,
		@CustodiaGaranzia,
		@Termid,
		@Anno,
		@Prog
	)

	-- Return the result of the function
	RETURN @ResultVar

END
GO
/****** Object:  UserDefinedFunction [C6Mart].[EsistonoServiziAggiuntivi]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Colaneri,,Adriano>
-- Create date: <07/12/2017>
-- Description:	<Restituisce un'informazione booleana sulla presenza o meno di servizi aggiuntivi per il contratto del cliente in input>
-- =============================================
CREATE FUNCTION [C6Mart].[EsistonoServiziAggiuntivi]
(
	@Rete varchar(1),
	@CodiceFiscale varchar(20)
)
RETURNS bit
AS
BEGIN
	
	declare @chiaveclientepb int

	declare @numServ tinyint
	declare @ret bit

	set @ret = 0
	set @numServ = 0

	-- Cerca chiaveclientepb a partire da Rete + CodiceFiscale
	select @chiaveclientepb = ChiaveClientePb
	from [BFDSPUC01T].ConsulenzaUnica.[dbo].[vInfoCliente]
	where rete = @Rete and CodFis = @CodiceFiscale

	select @numServ = count(*)
	from [BFDSPUC01T].ConsulenzaUnica.[dbo].[v_servizi_aggiuntivi]
	where chiaveclientepb = @chiaveclientepb
	and flagattivo = 1

	if @numServ > 0
		set @ret = 1
	
	return @ret

END
GO
/****** Object:  UserDefinedFunction [C6Mart].[getAppellativo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6Mart].[getAppellativo]
(
	-- Add the parameters for the function here
	@Sesso varchar(1),
	@Cod_fiscale varchar(16)
)
RETURNS VARCHAR(150)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Appellativo VARCHAR(150)
	
	IF(LEN(@Cod_fiscale) = 16 AND CHARINDEX('@',@Cod_fiscale) = 0)
		BEGIN
			IF(@Sesso = 'F')
				--SET @Appellativo = 'Gent. Sig.ra'
				SET @Appellativo = 'Gentile signora'
			ELSE
				--SET @Appellativo = 'Egr. Sig.'
				SET @Appellativo = 'Gentile signore'
		END
	ELSE
		
	--SET @Appellativo = 'Spett.le' 
    SET @Appellativo = 'Spettabile'
    
	-- Return the result of the function
	RETURN @Appellativo

END

GO
/****** Object:  UserDefinedFunction [C6Mart].[getAreaDaProposta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 20/02/2009
-- Description:	Recupera l'area di bisgno a partire da quanto stabilito nella all_proposta
-- =============================================

CREATE FUNCTION [C6Mart].[getAreaDaProposta]
(
	@TipoProdotto AS VARCHAR(20),
	@CodInterno AS VARCHAR(18),
	@CodSottoProdotto AS VARCHAR(5),
	@CodMaf AS VARCHAR(18),
	@Rete AS CHAR(1),
	@CodiceFiscale AS VARCHAR(16)
)
RETURNS VARCHAR(20)
AS
BEGIN

	DECLARE @Area VARCHAR(20)

	IF @TipoProdotto IN ('FI','GE','ASUL','ASU1','ASVI','ASCM','CC')

		BEGIN

			SELECT @Area = need_breve 
			FROM c6staging.all_proposta 
			WHERE isanewposition = 1
				AND pr_cod_interno = @CodInterno
				AND pr_cod_sottoprodotto = @CodSottoProdotto
				AND rete = @Rete
				AND codicefiscale = @CodiceFiscale

		END 
		
	ELSE 

		IF @TipoProdotto IN ('GES')

			BEGIN

				SELECT @Area = need_breve 
				FROM c6staging.all_proposta 
				WHERE isanewposition = 1
					AND pr_cod_interno = @CodInterno
					AND pr_cod_maf = @CodMaf 
					AND rete = @Rete
					AND codicefiscale = @CodiceFiscale
					
			END	

		ELSE

			BEGIN

				SELECT @Area = need_breve 
				FROM c6staging.all_proposta 
				WHERE isanewposition = 1
					AND pr_cod_interno = @CodInterno
					AND rete = @Rete
					AND codicefiscale = @CodiceFiscale

			END

	RETURN @Area

END

GO
/****** Object:  UserDefinedFunction [C6Mart].[getCreditRiskClass]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [C6Mart].[getCreditRiskClass] 
(
	
	@ully as decimal(10,3),
	@NumTitRc as smallint 
)
RETURNS smallint
AS
BEGIN
	-- Declare the return variable here
	DECLARE @creditClassRisk as smallint
	
	SET @ully = @ully/100
	-- Add the T-SQL statements to compute the return value here
	IF @NumTitRc > 0
	begin
	SELECT @creditClassRisk = 
		profilo
		from C6Mart.[CODIFICA_CREDITRISK]
		where min_val <= @ully and @ully <= max_val 
	end
	else
	set @creditClassRisk = null

	RETURN @creditClassRisk

END





GO
/****** Object:  UserDefinedFunction [C6Mart].[getCreditRiskClassEmit]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [C6Mart].[getCreditRiskClassEmit] 
(
	
	@ully as decimal(10,3),
	@NumTitRc as smallint 
)
RETURNS smallint
AS
BEGIN
	-- Declare the return variable here
	DECLARE @creditClassRisk as smallint
	
	SET @ully = @ully/100
	-- Add the T-SQL statements to compute the return value here
	IF @NumTitRc > 0
	begin
	SELECT @creditClassRisk = 
		ordine
		from C6Mart.RischioEmittenti
		where min <= @ully and @ully <= max
	end
	else
	set @creditClassRisk = null

	RETURN @creditClassRisk

END






GO
/****** Object:  UserDefinedFunction [C6Mart].[getDataPerfUpdate]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6Mart].[getDataPerfUpdate]
(
	@rete varchar(1),
	@cod_fiscale varchar(20)
)
RETURNS datetime
AS
BEGIN

	declare @dtPerf datetime

	select top 1 @dtPerf = TRCOM_DTPERF
	from  [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_HistDatiIngresso
	where
		trcom_rete = @rete
		and
		trcom_codfisc = @cod_fiscale
		and
		trcom_causale = 'UD6'
	order by data_inserimento_riga desc	

	return @dtPerf
	
END





GO
/****** Object:  UserDefinedFunction [C6Mart].[getIdElab]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6Mart].[getIdElab]
(
)
RETURNS int
AS
BEGIN
	
	-- Declare the return variable here
	DECLARE @ID_ELAB AS INTEGER

	SELECT @ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI

	-- Return the result of the function
	RETURN @ID_ELAB

END
GO
/****** Object:  UserDefinedFunction [C6Mart].[getIndicatoreValutazione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-----------------------------------------------------------------------------------------------
--		LA FUNZIONE TORNA L'INDICATORE DI VALUTAZIONE (MIFID 2) PER IL CLIENTE SPECIFICATO
--		IL DOMINIO DELL'INDICATORE PASSATO E':
--          (1) - RISCHIO MERCATO
--			(2) - RISCHIO CREDITO
--			(3) - CONCENTRAZIONE EMITTENTI
--			(4) - COMPLESSITA'
--			(5) - CONCENTRAZIONE IN PRODOTTI COMPLESSI
--			(6) - FREQUENZA DELLE OPERAZIONI
--			(7) - LIQUIDITA'/LIQUIDABILITA' (ORIZZONTE TEMPORALI DEGLI INVESTIMENTI)
--

-- select [C6Mart].[getIndicatoreValutazione] ('f','00247580970',7)
CREATE FUNCTION [C6Mart].[getIndicatoreValutazione] 
(
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@indicatore smallint = 4
	
)

RETURNS VARCHAR(5)
AS
BEGIN

	DECLARE @retData VARCHAR(5)
	
	if @indicatore = 1 -- 1.RM (Rischio Mercato)
	begin
		select @retData = RM_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 2 -- 2.RC (Rischio Credito)
	begin
		select @retData = RS_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 3 -- 3.CE (Concentrazione Emittenti)
	begin
		select @retData = TH_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 4 -- 4.CM (Complessità)
	begin
		select @retData = CM_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 5 -- 5.CC (Concentrazione prodotti Complessi)
	begin
		select @retData = CC_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 6 -- 6.FQ (Frequenza)
	begin
		select @retData = FQ_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 7 -- 7.LQ (Liquidità)
	begin
		select @retData = CE_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
	else if @indicatore = 8 -- 7.LQ (Liquidità)
	begin
		select @retData = CV_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end
		else if @indicatore = 9 -- 7.LQ (Liquidità)
	begin
		select @retData = ES_ADEGUATEZZA_INDICATORE  from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	end

	else set @retData =  'NN'

return @retData

END


GO
/****** Object:  UserDefinedFunction [C6Mart].[getTipoElab]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6Mart].[getTipoElab]
(
)
RETURNS VARCHAR(1)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @TIPO_ELAB AS VARCHAR(1)
	DECLARE @ID_ELAB AS INT

	SELECT @ID_ELAB = MAX(ID_ELAB) 
	FROM C6MART.ELABORAZIONI 

	SELECT @TIPO_ELAB = TIPO_ELAB 
	FROM C6MART.ELABORAZIONI 
	WHERE ID_ELAB = @ID_ELAB

	-- Return the result of the function
	RETURN @TIPO_ELAB

END


GO
/****** Object:  UserDefinedFunction [C6Mart].[Replace_Testo_Lettera_Benvenuto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [C6Mart].[Replace_Testo_Lettera_Benvenuto]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@COGNOME as varchar(20) = '',
	@NOME as varchar(20) = '',
	@TIPO_REPORT as varchar(100) = '',	
	@INDIRIZZO as varchar(20) = '',
	@DATA as datetime = null,
	@DATA_RICHIESTA_RISTAMPA as datetime = null,
	@DATA_GENERAZIONE_REPORT as datetime = null,
	@TESTO as TEXT = ''
)
RETURNS varchar(5000)
AS
BEGIN

	DECLARE @TESTO_DI_RITORNO as varchar(5000)
	DECLARE @REPORTISTICA as varchar(100)
	DECLARE @DATACONVERTITA as varchar(100)

	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @REPORTISTICA = 'Report di Monitoraggio';
			--SET @TIPO_REPORT_D = '';
			--SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			--if @FREQUENZA_DIAGN = 'T'
				--SET @FREQUENZA_DIAGN = 'Trimestrale';
			--if @FREQUENZA_DIAGN = 'S'
				--SET @FREQUENZA_DIAGN = 'Semestrale';
			--if @FREQUENZA_DIAGN = 'A'
				--SET @FREQUENZA_DIAGN = 'Annuale';
			SET @REPORTISTICA = 'Report di Diagnosi e Monitoraggio';
		END
	
	

	--if @FREQUENZA_MONITOR is null
		--BEGIN
			--SET @TIPO_REPORT_M = '';
			--SET @FREQUENZA_MONITOR = '';
		--END
	--else
		--BEGIN
			--if @FREQUENZA_MONITOR = 'T'
				--SET @FREQUENZA_MONITOR = 'Trimestrale';
			--if @FREQUENZA_MONITOR = 'S'
				--SET @FREQUENZA_MONITOR = 'Semestrale';
			--if @FREQUENZA_MONITOR = 'A'
				--SET @FREQUENZA_MONITOR = 'Annuale';
			--SET @TIPO_REPORT_M = '[' +@TIPO_REPORT_M + ', ' + @FREQUENZA_MONITOR+']';
		--END
	

	SET @TESTO_DI_RITORNO = @TESTO	
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\r\n',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\t',char(8));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CONTRACT_ID$/',@CODICE_CONTRATTO);
	
	
	
	if not @DATA is null 
		BEGIN
			SET @DATACONVERTITA = [dbo].[FormatDate_Testo_Lettera_Benvenuto](@DATA);
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/',@DATACONVERTITA);
		END
--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/',CONVERT(VARCHAR(10), @DATA, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/','');
	
	
	
	if not @DATA_RICHIESTA_RISTAMPA is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$reprint_date_req$/',CONVERT(VARCHAR(10), @DATA_RICHIESTA_RISTAMPA, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$reprint_date_req$/','');
	
	

	if not @DATA_GENERAZIONE_REPORT is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/',CONVERT(VARCHAR(10), @DATA_GENERAZIONE_REPORT, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/','');
	
	
	
	---- MODIFICARE PER MONITORAGGIO FARSI PASSARE L'ARGOMENTO DAL RM
	--- Inserire il caso del monitoraggio
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type$/',@TIPO_REPORT);
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$LASTNAME$/',@COGNOME);
	
	if NOT @NOME IS NULL
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NAME$/',@NOME);	
		
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPORTISCA$/',@REPORTISTICA);
	--
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIPO$/',@TIPO_REPORT);
	--
	--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPORT_TYPE_MONITORAGGIO$/',@TIPO_REPORT_M);
--	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$FREQUENCY_DIAGNOSI$/',@FREQUENZA_DIAGN);
--	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$FREQUENCY_MONITORAGGIO$/',@FREQUENZA_MONITOR);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ADDRESS$/',@INDIRIZZO);


	
	if not @DATA_RICHIESTA_RISTAMPA is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPRINT_DATE_REQ$/',@DATA_RICHIESTA_RISTAMPA);
	end
	
	if not @DATA_GENERAZIONE_REPORT is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/',@DATA_GENERAZIONE_REPORT);
	end

    RETURN @TESTO_DI_RITORNO
END





GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[Codifica_CRisk_PhotoData]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE function [C6MartPeriodico].[Codifica_CRisk_PhotoData]   
(
	@stringaCRisk_PhotoData as varchar(50)
	
)
RETURNS smallint
AS
BEGIN 
	declare @classeNum as smallint       
	SET @classeNum =
		CASE
			when (@stringaCRisk_PhotoData is null) then null
			when (@stringaCRisk_PhotoData = 'n.a.') then 0
			when (@stringaCRisk_PhotoData = 'Classe A') then 1
			when (@stringaCRisk_PhotoData = 'Classe B') then 2
			when (@stringaCRisk_PhotoData = 'Classe C') then 3
			when (@stringaCRisk_PhotoData = 'Classe D') then 4
			
			when (@stringaCRisk_PhotoData = 'Classe 1') then 1
			when (@stringaCRisk_PhotoData = 'Classe 2') then 2
			when (@stringaCRisk_PhotoData = 'Classe 3') then 3
			when (@stringaCRisk_PhotoData = 'Oltre<br>Classe 3') then 4
			when (@stringaCRisk_PhotoData = 'Oltre Classe 3') then 4
	end
	return @classeNum
END

GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONC_DEB]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [C6MartPeriodico].[CONC_DEB]
(
		@RETE as varchar(1),
        @CF as  varchar(16),
		@ID_ZIP as smallint
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here

	DECLARE @RESULT AS  VARCHAR(MAX)
	SET @RESULT =''

	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN '' ELSE CONTRATTOSEI.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MART.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)

		AND GESTIONE_PDF_FTP.id_fk_zip = @ID_ZIP
		
		order by tiporeport desc


	RETURN @RESULT

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--select [C6MartPeriodico].[CONCATENA] ( 'F', 'FF@83493                      ')

CREATE FUNCTION [C6MartPeriodico].[CONCATENA]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    declare @idFkzip int
    
    select @idFkzip=max(id_fk_zip) 
		 from c6martperiodico.gestione_pdf_ftp


	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ ISNULL( LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50), '')--NOMEFILE(50)
		-- ALLEGATO1
		  -- + case when CONTRATTOSEI.TIP_CONTRATTO<>'3' then '1' else '2' end   -- case when len(isnull(cb.cod_fiscale,''))<=11 then '1' else '2' end --'0' --ALLEGATO1(1)
		+ case when CONTRATTOSEI.TIP_CONTRATTO='3' then '1' else '0' end
		+ '0' --ALLEGATO2(1) se c'è piu di un allegato allora metti a 1
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)

-- EN20170406
--		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right (' ' + COALESCE(C6MARTPERIODICO.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ isnull( convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP.DataGenerazione, 112) , '')
        + isnull(CONTRATTOSEI.COD_AGENTE	, '')

	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

		left join C6MartPeriodico.wseian2 an
		on an.rete= GESTIONE_PDF_FTP.Rete
		AND an.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc


	RETURN @RESULT

END


GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_20170406]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [C6MartPeriodico].[CONCATENA_20170406]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    declare @idFkzip int
    
    select @idFkzip=max(id_fk_zip) 
		 from c6martperiodico.gestione_pdf_ftp
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)

		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP.DataGenerazione, 112)
        + CONTRATTOSEI.COD_AGENTE	

	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc


	RETURN @RESULT

END



GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_20180214_bonifica]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select [C6MartPeriodico].[CONCATENA] ( 'F', 'BRNLLN36A55L781D', 1503 )

CREATE FUNCTION [C6MartPeriodico].[CONCATENA_20180214_bonifica]
(
		@RETE as varchar(1),
        @CF as  varchar(16),
		@idFkzip as int
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    --declare @idFkzip int
    
   -- select @idFkzip=max(id_fk_zip) 
		 --from c6martperiodico.gestione_pdf_ftp


	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ ISNULL( LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50), '')--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)

-- EN20170406
--		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right (' ' + COALESCE(C6MARTPERIODICO.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ isnull( convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP.DataGenerazione, 112) , '')
        + isnull(CONTRATTOSEI.COD_AGENTE	, '')

	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc


	RETURN @RESULT

END




GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_20240225]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--select [C6MartPeriodico].[CONCATENA] ( 'F', 'FF@83493                      ')

CREATE FUNCTION [C6MartPeriodico].[CONCATENA_20240225]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    declare @idFkzip int
    
    select @idFkzip=max(id_fk_zip) 
		 from c6martperiodico.gestione_pdf_ftp


	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ ISNULL( LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50), '')--NOMEFILE(50)
		+ case when CONTRATTOSEI.TIP_CONTRATTO<>'3' then '1' else '2' end   -- case when len(isnull(cb.cod_fiscale,''))<=11 then '1' else '2' end --'0' --ALLEGATO1(1)
		+ '1' --ALLEGATO2(1) se c'è piu di un allegato allora metti a 1
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)

-- EN20170406
--		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right (' ' + COALESCE(C6MARTPERIODICO.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ isnull( convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP.DataGenerazione, 112) , '')
        + isnull(CONTRATTOSEI.COD_AGENTE	, '')

	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

		left join C6MartPeriodico.wseian2 an
		on an.rete= GESTIONE_PDF_FTP.Rete
		AND an.CODFIS = GESTIONE_PDF_FTP.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
	 --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc


	RETURN @RESULT

END


GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_b4_newZipping_2070710]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select [C6MartPeriodico].[CONCATENA] ( 'F', 'BRNLLN36A55L781D', 1503 )

CREATE FUNCTION [C6MartPeriodico].[CONCATENA_b4_newZipping_2070710]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    declare @idFkzip int
    
    select @idFkzip=max(id_fk_zip) 
		 from c6martperiodico.gestione_pdf_ftp


	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)

-- EN20170406
--		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right (' ' + COALESCE(C6MARTPERIODICO.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP.DataGenerazione, 112)
        + CONTRATTOSEI.COD_AGENTE	

	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc


	RETURN @RESULT

END




GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_IDX]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select [C6MartPeriodico].[CONCATENA] ( 'F', 'BRNLLN36A55L781D', 1503 )

CREATE FUNCTION [C6MartPeriodico].[CONCATENA_IDX]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    declare @idFkzip int
    
    select @idFkzip=max(id_fk_zip) 
		 from c6martperiodico.gestione_pdf_ftp_IDX


	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP_IDX.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
--		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ LEFT(GESTIONE_PDF_FTP_IDX.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50)--NOMEFILE(50)
		+ '1' --ALLEGATO1(1) 0 no allegato , 1 allegato
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)

-- EN20170406
--		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right (' ' + COALESCE(C6MARTPERIODICO.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP_IDX.DataGenerazione, 112)
        + CONTRATTOSEI.COD_AGENTE	

	FROM [C6MartPeriodico].GESTIONE_PDF_FTP_IDX
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP_IDX.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP_IDX.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP_IDX.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP_IDX.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP_IDX.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP_IDX.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP_IDX.id_fk_zip = @idFkzip --356 EN20160212: 1264 e 1270
		--(select max(id_fk_zip) 
		--	from c6martperiodico.gestione_pdf_ftp
		--)	
		order by tiporeport desc


	RETURN @RESULT

END






GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_prova_20141223]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE FUNCTION [C6MartPeriodico].[CONCATENA_prova_20141223]
(
		@RETE as varchar(1),
        @CF as  varchar(16)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
    -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
    DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	
	    declare @idFkzip int
    
    select @idFkzip=max(id_fk_zip) 
		 from c6martperiodico.gestione_pdf_ftp_prova_20141223
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ 
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP_prova_20141223.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		
		+ LEFT(GESTIONE_PDF_FTP_prova_20141223.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' 
		                                                   WHEN 'M' THEN (CASE TIP_CONTRATTO 
		                                                                                     WHEN 2 THEN '_PP' 
		                                                                                            ELSE '_MP' 
		                                                                                      END
		                                                                  ) 
		                                                            ELSE '_' + tiporeport 
		                                                    END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30)) -- NAZIONEESTERA(30)
      
		+ right (' ' + C6MARTPERIODICO.CONTRATTOSEI.Rol, 1)
		+ right ('                ' + C6MARTPERIODICO.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MARTPERIODICO.CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ convert(char(8), [C6MartPeriodico].GESTIONE_PDF_FTP_prova_20141223.DataGenerazione, 112)
        + CONTRATTOSEI.COD_AGENTE	
        
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP_prova_20141223
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP_prova_20141223.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP_prova_20141223.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP_prova_20141223.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP_prova_20141223.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP_prova_20141223.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP_prova_20141223.CodiceFiscale
	--
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

		isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
		and
		 GESTIONE_PDF_FTP_prova_20141223.id_fk_zip = @idFkzip --356
	--	(select max(id_fk_zip) 
	--		from c6martperiodico.gestione_pdf_ftp
	--	)	
		order by tiporeport desc


	RETURN @RESULT

END










GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CONCATENA_WHITELIST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE FUNCTION [C6MartPeriodico].[CONCATENA_WHITELIST]
(
		@RETE as varchar(1),
        @CF as  varchar(16),
        @IdZip as int
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
        -- Declare the return variable here

	DECLARE @FIDUCIARIA AS CHAR(1)
	DECLARE @BROCHURE AS CHAR(1)
	DECLARE @RESULT AS  VARCHAR(MAX)

	
	
	SET @RESULT =''

	IF CHARINDEX('@', @CF) > 0
		SET @FIDUCIARIA = 'S'
	ELSE 
		SET @FIDUCIARIA = 'N'


	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- FlagFiduciaria (1)
		-- Rete (1)
		-- Brochure (1)
		-- Facciate(6)
		-- CppBollettini(2)
		-- IDENTIFICATIVODOCUMENTO(50)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- ALLEGATO1(1)
		-- ALLEGATO2(1)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @FIDUCIARIA
		+ @RETE
		+ CASE WHEN CB.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END
		--FINE INSERIMENTO NUOVI FLAG
		+ (right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
		+ '00' --CppBollettini(2)
		+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(GESTIONE_PDF_FTP.NomeFile + CASE tiporeport WHEN 'D' THEN '_DP' WHEN 'M' THEN '_MP' ELSE '_' + tiporeport END + '                                                  ',50)--NOMEFILE(50)
		+ '0' --ALLEGATO1(1)
		+ '0' --ALLEGATO2(1)
		+ LEFT((CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN '' ELSE CONTRATTOSEI.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	--INNER JOIN C6MART.CONTRATTOSEI
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		AND CONTRATTOSEI.Rete = @RETE
		AND CONTRATTOSEI.COD_FISCALE = @CF
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale

	--V INSERIMENTO CLIENTI CON BROCHURE O ALLEGATO
	LEFT JOIN C6MARTPERIODICO.CLIENTI_BROCHURE CB 
		ON CB.Rete = GESTIONE_PDF_FTP.Rete
		AND CB.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	
	WHERE 
--DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
	--	OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0)
		--Anche se un contratto è revocato ma abbiamo stampato il report questo va inviato
		--AND 
 --c6mart.contrattosei.cod_fiscale like '%@%'

	isnull(data_Fineavanzato,cast('99991231' as datetime)) > c6martperiodico.getPreviousTrimestre(getdate(),0) --c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getdate(),0),0)
	AND
    GESTIONE_PDF_FTP.id_fk_zip  = @IdZip
	--AND 
	--CONTRATTOSEI.RETE+CONTRATTOSEI.COD_FISCALE  not in (select RETE+CodiceFiscale from C6MartPeriodico.ExcludedList where bloccato=1) 

	RETURN @RESULT

END



GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[CreaPositionIDCS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[CreaPositionIDCS]
(
	@TipoProdotto VARCHAR(5)='',
	@CodInterno VARCHAR(13)='', 
	@CodMAF VARCHAR(13)='', 
	@CodSottoprodotto VARCHAR(13)='',
	@CodiceContratto VARCHAR(11)='',
	@NumeroPolizza VARCHAR(11)= '', 
	@Conto VARCHAR(12)= '',
	@Rubricato VARCHAR(4)='',
	@CustodiaGaranzia VARCHAR(1)='',
	@Termid VARCHAR(8)='', 
	@Anno DECIMAL(3)=0, 
	@Prog DECIMAL(9)=0
)
RETURNS VARCHAR(129)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ResultVar VARCHAR(129)

	-- Add the T-SQL statements to compute the return value here
	SET @ResultVar =
	CASE
		WHEN @TipoProdotto = 'CC' THEN ''
		ELSE C6StagingPeriodico.Info_DaProdottoCSaCatalogo(
				@TipoProdotto,
				@CodInterno,
				@CodMAF,
				'',
				@CodSottoProdotto
			)
	END
	+
	dbo.Crea_PositionID(
		@TipoProdotto,
		@CodInterno,
		@CodMAF,
		'',
		@CodSottoProdotto,
		@CodiceContratto,
		@NumeroPolizza,
		@Conto,
		@Rubricato,
		@CustodiaGaranzia,
		@Termid,
		@Anno,
		@Prog
	)

	-- Return the result of the function
	RETURN @ResultVar

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[FrequenzaElab]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[FrequenzaElab]
(
)
RETURNS 
@pippo TABLE 
(
	-- Add the column definitions for the TABLE variable here
	periodo varchar(1)
)
AS
BEGIN
	declare @tipoElab varchar(1)
	select @tipoElab=C6MartPeriodico.getTipoElab();
	INSERT INTO @pippo
	SELECT 'T' AS PERIODO
	if @tipoElab = 'S'
		INSERT INTO @pippo
		SELECT 'S' AS PERIODO

	if @tipoElab = 'A'
		INSERT INTO @pippo
		SELECT 'S' AS PERIODO
		UNION ALL
		SELECT 'A'
	RETURN 
END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[get_appoDataAvvioMon]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create function [C6MartPeriodico].[get_appoDataAvvioMon]( @date datetime = null )
returns varchar(8)
as 
begin

if @date is null
set @date = getdate()

return cast(case when datepart(month, @date) = 1 then datepart(year,@date)  - 1 else datepart(year,@date)  end as varchar(4)) + 
case when datepart(month, @date) >= 11 then '12' when datepart(month, @date) >= 8 then '09' when datepart(month, @date) >= 5 then '06' when datepart(month, @date) > 1 then '03' else '12' end+
'01'

end
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[get_SW_OTTIM]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[get_SW_OTTIM]
(

)
RETURNS VARCHAR(3)
AS
BEGIN
	
	RETURN 'OLD'
	--RETURN 'NEW'


END


GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getAppellativo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getAppellativo]
(
	-- Add the parameters for the function here
	@Sesso varchar(1),
	@Cod_fiscale varchar(16)
)
RETURNS VARCHAR(150)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Appellativo VARCHAR(150)
	
	IF(LEN(@Cod_fiscale) = 16 AND CHARINDEX('@',@Cod_fiscale) = 0)
		BEGIN
			IF(@Sesso = 'F')
				--SET @Appellativo = 'Gent. Sig.ra'
				SET @Appellativo = 'Gentile signora'
			ELSE
				--SET @Appellativo = 'Egr. Sig.'
				SET @Appellativo = 'Gentile signore'
		END
	ELSE
		
	--SET @Appellativo = 'Spett.le' 
    SET @Appellativo = 'Spettabile'
    
	-- Return the result of the function
	RETURN @Appellativo

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getCreditRiskClass]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE FUNCTION [C6MartPeriodico].[getCreditRiskClass] 
(
	
	@ully as decimal(10,3),
	@NumTitRc as smallint 
)
RETURNS smallint
AS
BEGIN
	-- Declare the return variable here
	DECLARE @creditClassRisk as smallint
	SET @ully = @ully/100
	-- Add the T-SQL statements to compute the return value here
	IF @NumTitRc > 0
	begin
	SELECT @creditClassRisk = 
		profilo
		from C6MartPeriodico.[CODIFICA_CREDITRISK]
		where min_val <= @ully and @ully <= max_val 
	end
	else
	set @creditClassRisk = null

	RETURN @creditClassRisk

END


GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getCreditRiskClassEmit]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [C6MartPeriodico].[getCreditRiskClassEmit] 
(
	
	@ully as decimal(10,3),
	@NumTitRc as smallint 
)
RETURNS smallint
AS
BEGIN
	-- Declare the return variable here
	DECLARE @creditClassRisk as smallint
	
	SET @ully = @ully/100
	-- Add the T-SQL statements to compute the return value here
	IF @NumTitRc > 0
	begin
	SELECT @creditClassRisk = 
		ordine
		from C6MartPeriodico.RischioEmittenti
		where min <= @ully and @ully <= max
	end
	else
	set @creditClassRisk = null

	RETURN @creditClassRisk

END





GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getDataCongelamento]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getDataCongelamento]
(
)
RETURNS DATETIME
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ResultVar DATETIME

	SELECT
		@ResultVar = DATA_CONGELAMENTO
	FROM
		C6MartPeriodico.CONGELAMENTO_SEI

	-- Return the result of the function
	RETURN @ResultVar

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getDateTrimestre]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- @NumTrim = 0 (Corrente)
-- @NumTrim = 1 (Precedente)
-- @NumTrim = 2 (Precedente - 1)

-- @WhichDate = 0 (Inizio Trimestre)
-- @WhichDate = 1 (Fine Trimestre (prec.))

-- @DataFineGenerazione = 0 (Data Fine del Trim (prec.))
-- @DataFineGenerazione = 1 (Data Fine generazione del Trimestre indicato da @NumTrim, ha senso solo quando @WhichDate = 1)

-- select [C6MartPeriodico].[getDateTrimestre] (0, 1, 0)
CREATE function [C6MartPeriodico].[getDateTrimestre](
	@NumTrim int,
	@WhichDate bit,
	@DataFineGenerazione bit
)

returns varchar(8)
as
begin

	declare @data datetime

	declare @retData varchar(8)

-- set @NumTrim = 2
-- set @WhichDate = 0
-- set @DataFineGenerazione = 1

	 if @WhichDate = 0 --(Inizio)
		-- Data Inizio
		set @data = dateadd(d, 1, dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0)))
	else
		if @DataFineGenerazione = 0
			-- Data Fine Trimestre
			set @data = dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0))
		else
			-- Data Fine Generazione del Trimestre indicato dal parametri @NumTrim
			--set @data = dateadd(m, 1, dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0)))
			set @data = dateadd(d, -1, dateadd(m, 1, dateadd(d, 1, dateadd(m, -@NumTrim * 3, C6MartPeriodico.getTrimestre(getdate(),0)))))

	set @retData = convert(varchar(4), year(@data)) + right('0' + convert(varchar(2), month(@data)), 2) + right('0' + convert(varchar(2), day(@data)), 2)

	return @retData

end
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getDescFromDate]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getDescFromDate] 
(
	@Durata INT
)
RETURNS VARCHAR(128)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Desc VARCHAR(128)

	DECLARE @Anni INT
	DECLARE @Mesi INT
	DECLARE @AnniDesc VARCHAR(64)
	DECLARE @MesiDesc VARCHAR(64)

	SET @Desc = ''

	SET @Anni = @Durata / 12
	SET @Mesi = @Durata - (@Anni * 12)
	SET @AnniDesc = ''
	SET @MesiDesc = ''

	IF @Anni > 0
		IF @Anni = 1
			SET @AnniDesc = @AnniDesc + '1 anno'
		ELSE
			SET @AnniDesc = @AnniDesc + CAST(@Anni AS VARCHAR) + ' anni'
	
	IF @Mesi > 0
		IF @Mesi = 1
			SET @MesiDesc = @MesiDesc + '1 mese'
		ELSE
			SET @MesiDesc = @MesiDesc + CAST(@Mesi AS VARCHAR) + ' mesi'

	IF LEN(@AnniDesc) = 0
		SET @Desc = @MesiDesc
	ELSE
		IF LEN(@MesiDesc) = 0
			SET @Desc = @AnniDesc
		ELSE
			SET @Desc = @AnniDesc + ' e ' + @MesiDesc

	-- Return the result of the function
	RETURN @Desc

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getDESPRODCAT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- select a=[C6MartPeriodico].[getDESPRODCAT]('04863590',NULL)

CREATE FUNCTION [C6MartPeriodico].[getDESPRODCAT] 
(
	
	@CODPROD as varchar(8),
	@SUBPROD as varchar(5) 
)
RETURNS varchar(128)
AS
BEGIN

DECLARE @DESPROD as varchar(128)
DECLARE @conta as smallint 
SET @DESPROD = ''


if @SUBPROD is null 
    BEGIN
    SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL AND visibilita = 1   

IF @conta = 1       
		SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL AND visibilita = 1  
ELSE
	BEGIN
		SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL
			IF @conta = 1       
				SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
				WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL 
			ELSE
				BEGIN
					SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
					WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
						WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD   
				END  
		END 
	END  
    END
ELSE
SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND visibilita = 1   

IF @conta = 1       
		SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND visibilita = 1  
ELSE
	BEGIN
		SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD
			IF @conta = 1       
				SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
				WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD  
			ELSE
				BEGIN
					SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
					WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
						WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD   
					ELSE
						BEGIN
						    IF @SUBPROD in ('L191', 'L192','V301','V302')
						        BEGIN
								SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
								WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND CODISIN IS NULL  
								IF @conta = 1       
									SELECT @DESPROD  = nomeProdotto FROM c6StagingPeriodico.RP_CatalogoProdotti
									WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND CODISIN IS NULL   
						        END
						END  						
				END  
		END 
	END  

RETURN @DESPROD
END





GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getDESPRODCAT_20170117]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- select a=[C6MartPeriodico].[getDESPRODCAT]('04863590',NULL)

CREATE FUNCTION [C6MartPeriodico].[getDESPRODCAT_20170117] 
(
	
	@CODPROD as varchar(8),
	@SUBPROD as varchar(5) 
)
RETURNS varchar(128)
AS
BEGIN

DECLARE @DESPROD as varchar(128)
DECLARE @conta as smallint 
SET @DESPROD = ''


if @SUBPROD is null 
    BEGIN
    SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL AND visibilita = 1   

IF @conta = 1       
		SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL AND visibilita = 1  
ELSE
	BEGIN
		SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL
			IF @conta = 1       
				SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
				WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO IS NULL 
			ELSE
				BEGIN
					SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
					WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
						WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD   
				END  
		END 
	END  
    END
ELSE
SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND visibilita = 1   

IF @conta = 1       
		SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND visibilita = 1  
ELSE
	BEGIN
		SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
		WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD AND visibilita = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
			WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD
			IF @conta = 1       
				SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
				WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD  
			ELSE
				BEGIN
					SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
					WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = nomeProdotto   FROM c6StagingPeriodico.RP_CatalogoProdotti
						WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @CODPROD   
					ELSE
						BEGIN
						    IF @SUBPROD in ('L191','L192')
						        BEGIN
								SELECT @conta = count(nomeProdotto) FROM c6StagingPeriodico.RP_CatalogoProdotti
								WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND CODISIN IS NULL  
								IF @conta = 1       
									SELECT @DESPROD  = nomeProdotto FROM c6StagingPeriodico.RP_CatalogoProdotti
									WHERE CODINTERNO = @CODPROD AND CODSOTTOPRODOTTO = @SUBPROD AND CODISIN IS NULL   
						        END
						END  						
				END  
		END 
	END  

RETURN @DESPROD
END




GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getDESPRODCAT_BCK]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--C6MartPeriodico].[getDESPRODCAT]('1','1')

CREATE FUNCTION [C6MartPeriodico].[getDESPRODCAT_BCK] 
(
	
	@CODPROD as varchar(8),
	@SUBPROD as varchar(5) 
)
RETURNS varchar(128)
AS
BEGIN

DECLARE @DESPROD as varchar(128)
DECLARE @conta as smallint 
SET @DESPROD = ''

SELECT @conta = count(cataloguename) FROM c6StagingPeriodico.catitemref
WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @SUBPROD AND ISVISIBLE = 1   

IF @conta = 1       
		SELECT  @DESPROD  = cataloguename   FROM c6StagingPeriodico.catitemref
		WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @SUBPROD AND ISVISIBLE = 1  
ELSE
	BEGIN
		SELECT @conta = count(cataloguename) FROM c6StagingPeriodico.catitemref
		WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @CODPROD AND ISVISIBLE = 1   
		IF @conta = 1       
			SELECT  @DESPROD  = cataloguename   FROM c6StagingPeriodico.catitemref
			WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @CODPROD AND ISVISIBLE = 1 
			ELSE
		BEGIN 
			SELECT @conta = count(cataloguename) FROM c6StagingPeriodico.catitemref
			WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @SUBPROD
			IF @conta = 1       
				SELECT  @DESPROD  = cataloguename   FROM c6StagingPeriodico.catitemref
				WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @SUBPROD  
			ELSE
				BEGIN
					SELECT @conta = count(cataloguename) FROM c6StagingPeriodico.catitemref
					WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @CODPROD     
					IF @conta = 1       
						SELECT  @DESPROD  = cataloguename   FROM c6StagingPeriodico.catitemref
						WHERE COD_INTERNO = @CODPROD AND COD_SOTTOPRODOTTO = @CODPROD   
				END  
		END 
	END  

RETURN @DESPROD
END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getIdElab]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getIdElab]
(
)
RETURNS int
AS
BEGIN

	-- Declare the return variable here
	DECLARE @ID_ELAB AS INT
	
	SELECT @ID_ELAB = ISNULL(MAX(ID_ELAB),0) 
	FROM C6MARTPERIODICO.ELABORAZIONI

	-- Return the result of the function
	RETURN @ID_ELAB

END

GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getIndicatoreValutazione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-----------------------------------------------------------------------------------------------
--		LA FUNZIONE TORNA L'INDICATORE DI VALUTAZIONE (MIFID 2) PER IL CLIENTE SPECIFICATO
--		IL DOMINIO DELL'INDICATORE PASSATO E':
--          (1) - RISCHIO MERCATO
--			(2) - RISCHIO CREDITO
--			(3) - CONCENTRAZIONE EMITTENTI
--			(4) - COMPLESSITA'
--			(5) - CONCENTRAZIONE IN PRODOTTI COMPLESSI
--			(6) - FREQUENZA DELLE OPERAZIONI
--			(7) - LIQUIDITA'/LIQUIDABILITA' (ORIZZONTE TEMPORALI DEGLI INVESTIMENTI)
--

-- select [C6MartPeriodico].[getIndicatoreValutazione] ('f','00247580970',default)
CREATE FUNCTION [C6MartPeriodico].[getIndicatoreValutazione]
(
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@indicatore smallint = 4
	
)

RETURNS VARCHAR(5)
AS
BEGIN

	DECLARE @retData VARCHAR(5)
	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  


	if @indicatore = 4
		select @retData = case
			when flgprof = 'S' then 'prof'
			when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
			when upper(clcompl) = 'N' and
						(select count(*) from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim and NOCOMPL='S') > 0 then '0'
			when upper(clcompl) = 'N' and flagpg = 0 then '0'
			when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then '0'
			when upper(clcompl) = 'S' then '1'
		    end		 
		from C6STAGINGPERIODICO.WSEIAN2
		where 1=1
		AND RETE = @Rete
		and codfis like 
			CASE when @CodiceFiscale like '%FF@%'THEN '%%'
			ELSE @CodiceFiscale
			END
		and codman = 
			CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
			ELSE ''
			END
		and dttrim = @DataFineTrim  
				

    ELSE SET @retData =  'NN' -- PER IL MOMENTO RITORNO SOLO L'INDICATORE COMPLESSITA'

	  

return @retData

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getNextTrimestre]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getNextTrimestre] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--select c6martperiodico.getTrimestre2(cast ('20120101' as datetime),1)
--select cast ('20110630' as datetime)-30

	-- Add the T-SQL statements to compute the return value here
	IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
	SET @retData =

	CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		  
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
	SET @retData = 
	CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		  
	END

	-- Return the result of the function
	RETURN @retData

END

--select c6martperiodico.gettrimestre2(CAST('20100101' AS DATETIME),1)

--SELECT CAST(CAST(YEAR(CAST('20101216' AS DATETIME)) AS VARCHAR) + dbo.getParametro('TrimestreDICEMBRE') AS DATETIME)-16


--CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME)
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getNumeroElaborazioniEmailAlMese]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getNumeroElaborazioniEmailAlMese]
(
)
RETURNS INT
AS
BEGIN
	-- Declare the return variable here
	DECLARE @NUM AS INT

	select @NUM = count(*)
	from C6MartPeriodico.ELABORAZIONI_EMAIL_RNA
	where (DATEDIFF(MONTH, Data_Elaborazione, GETDATE()) = 0) 

	RETURN @NUM

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[GetPercentualePiramideMod]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[GetPercentualePiramideMod] 
(
	-- Add the parameters for the function here
	@CodFis as varchar(20),
	@rete as varchar(1),
	@area as varchar(5)
)
RETURNS decimal(10,2)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @perc as decimal(10,2)
	--DECLARE @perc2 as decimal(10,2)

	-- Add the T-SQL statements to compute the return value here
	--IF @area = 'Pre'
	--begin

	--SELECT @perc = Sum(pmod.Perc_Area)
	--FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	--inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	--where pmod.COD_FISCALE = @CodFis
	--and pmod.rete = @rete
	--and ar.Id_area = @area
	----and ar.Id_area in ('Liq','Ris','Pre','Pre1','Inv','Ext')
	--group by ar.Id_area,ar.Nome_area

	--SELECT @perc2 = Sum(pmod.Perc_Area)
	--FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	--inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	--where pmod.COD_FISCALE = @CodFis
	--and pmod.rete = @rete
	--and ar.Id_area = 'Pre1'
	----and ar.Id_area in ('Liq','Ris','Pre','Pre1','Inv','Ext')
	--group by ar.Id_area,ar.Nome_area

	--Set @perc = @perc + @perc2;

	--end;
	--Else
	--begin
	SELECT @perc = Sum(pmod.Perc_Area)
	FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	where pmod.COD_FISCALE = @CodFis
	and pmod.rete = @rete
	and ar.Id_area = @area
	--and ar.Id_area in ('Liq','Ris','Pre','Pre1','Inv','Ext')
	group by ar.Id_area,ar.Nome_area
	--end;
	-- Return the result of the function
	RETURN @perc

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getPreviousTrimestre]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6MartPeriodico].[getPreviousTrimestre] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--select c6martperiodico.getPreviousTrimestre(cast ('20120701' as datetime),0)
--select c6martperiodico.getPreviousTrimestre(getDate(),1)
--select dbo.getParametro('TrimestreSettembre') 
--select cast ('20110630' as datetime)-30
IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110830'
--V Decommentare nel passaggio in produzione
	SET @retData = CASE
		WHEN 
			(@data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 
			AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29)
		THEN CAST(YEAR(@data)-1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		
		WHEN 
			(@data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 
			AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29)
		THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		
		WHEN 
			(@data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 
			AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30)
		THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		
		WHEN 
			(@data >= CAST(YEAR(@data) AS VARCHAR)+'0101' 
			AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30)
		THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		
		WHEN 
			(@data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 
			AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1)
		THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		  
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110901'
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data)-1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		  
	END
    
	-- Return the result of the function
	RETURN @retData

END

--select c6martperiodico.gettrimestre2(CAST('20100101' AS DATETIME),1)

--SELECT CAST(CAST(YEAR(CAST('20101216' AS DATETIME)) AS VARCHAR) + dbo.getParametro('TrimestreDICEMBRE') AS DATETIME)-16


--CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME)

GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTipoElab]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getTipoElab]
(
)
RETURNS VARCHAR(1)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @TIPO_ELAB AS VARCHAR(1)
	DECLARE @ID_ELAB AS INT

	SELECT @ID_ELAB = MAX(ID_ELAB) 
	FROM C6MARTPERIODICO.ELABORAZIONI 

	SELECT @TIPO_ELAB = TIPO_ELAB 
	FROM C6MARTPERIODICO.ELABORAZIONI 
	WHERE ID_ELAB = @ID_ELAB

	-- Return the result of the function
	RETURN @TIPO_ELAB

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE   FUNCTION [C6MartPeriodico].[getTrimestre]
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

	-- Add the T-SQL statements to compute the return value here
	IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
	SET @retData = CASE
		WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
	SET @retData = CASE
		WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
	END

--PER SIMULAZIONE (Commentare x Trimestrale)------------
--IF @primo = 0
--    -- Impostare Data Congelamento Dati
--	--SET @retData = '20150228'ToDo Fc  : test DQ 
--	--SET @retData = '20151130'
--	--SET @retData = '20160229'
--	--SET @retData = '20160531'
--	--SET @retData = '20160831'
--	--SET @retData = '20161130'
--	--SET @retData = '20170228'
--	--SET @retData = '20170531'
--	--SET @retData = '20170831'
--	--SET @retData = '20171130' 
--	--SET @retData = '20180228'
--	--SET @retData = '20180531' 
--	--SET @retData = '20180831' 
--	--SET @retData = '20181130'
--	--SET @retData = '20190228'
--	SET @retData = '20190531'
--	SET @retData = '20190831'
--	SET @retData = '20191130'
--	SET @retData = '20200229'
--	SET @retData = '20200531'
--	SET @retData = '20200831'
-- SET @retData = '20201130'
--	SET @retData = '20210228'
	--SET @retData = '20210531'
--	SET @retData = '20210831'
--set @retData = '20211130'
--set @retData='20220228'
--set @retData='20220531'
--set @retData='20220831'
--set @retdata='20221130'
--set @retdata='20230831'
--set @retdata='20231130'
--set @retdata='20240229'
--set @retdata='20240531'
--set @retdata='20240831'
--set @retdata='20241130'
--set @retdata='20250228'
--ELSE
--    -- Impostare Primo giorno del mese di Simulazione
--    --SET @retData = '20150301'ToDo Fc  : test DQ 
--    --SET @retData = '20151201'
--    --SET @retData = '20160301'
--    --SET @retData = '20160601'
--	--SET @retData = '20160901'
--	--SET @retData = '20161201'
--	--SET @retData = '20170301'
--	--SET @retData = '20170601'
--	--SET @retData = '20170901'
--	--SET @retData = '20171201' 
--	--SET @retData = '20180301'
--	--SET @retData = '20180601' 
--	--SET @retData = '20180901'  
--	--SET @retData = '20181201' 
--	--SET @retData = '20190301'
--	SET @retData = '20190601'
--	SET @retData = '20190901'
--	SET @retData = '20191201'
--	SET @retData = '20200301'
--	SET @retData = '20200601'
--	SET @retData = '20200901'
--	Set @retData = '20201201'
--SET @retData = '20210301'
--SET @retData = '20210601'
--SET @retData = '20200901'
--set @retData = '20211201'
--set @retData='20220301'
--SET @retData = '20220601'
--SET @retData='20220901'
--set @retData='20221201'
--set @retData='20230901'
--set @retData='20231201'
--set @retData='20240301'
--set @retData='20240601'
--set @retData='20240901'
--set @retData='20241201'
--set @retData='20250301'

------------------------------------------------------------

-- Return the result of the function
RETURN @retData
	
----- TEST -----------------------
--    SET @retData = '20151130'
--    RETURN 	@retData

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre_20190909]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
--select [C6MartPeriodico].[getTrimestre_20190909](getdate(),0)
--select [C6MartPeriodico].[getTrimestre_20190909](getdate(),1)
CREATE FUNCTION [C6MartPeriodico].[getTrimestre_20190909]
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

	-- Add the T-SQL statements to compute the return value here
	IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
	SET @retData = CASE
		WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
	SET @retData = CASE
		WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
	END

--PER SIMULAZIONE (Commentare x Trimestrale)------------
IF @primo = 0
--    -- Impostare Data Congelamento Dati
--	--SET @retData = '20150228'ToDo Fc  : test DQ 
--	--SET @retData = '20151130'
--	--SET @retData = '20160229'
--	--SET @retData = '20160531'
--	--SET @retData = '20160831'
--	--SET @retData = '20161130'
--	--SET @retData = '20170228'
--	--SET @retData = '20170531'
--	--SET @retData = '20170831'
--	--SET @retData = '20171130' 
--	--SET @retData = '20180228'
--	--SET @retData = '20180531' 
--	--SET @retData = '20180831' 
--	--SET @retData = '20181130'
--	--SET @retData = '20190228'
	SET @retData = '20190531'

ELSE
--    -- Impostare Primo giorno del mese di Simulazione
--    --SET @retData = '20150301'ToDo Fc  : test DQ 
--    --SET @retData = '20151201'
--    --SET @retData = '20160301'
--    --SET @retData = '20160601'
--	--SET @retData = '20160901'
--	--SET @retData = '20161201'
--	--SET @retData = '20170301'
--	--SET @retData = '20170601'
--	--SET @retData = '20170901'
--	--SET @retData = '20171201' 
--	--SET @retData = '20180301'
--	--SET @retData = '20180601' 
--	--SET @retData = '20180901'  
--	--SET @retData = '20181201' 
--	--SET @retData = '20190301'
SET @retData = '20190601'

------------------------------------------------------------

-- Return the result of the function
	RETURN @retData
	
----- TEST -----------------------
--    SET @retData = '20151130'
--    RETURN 	@retData

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre_Eff]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



Create   FUNCTION [C6MartPeriodico].[getTrimestre_Eff]
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

	-- Add the T-SQL statements to compute the return value here
	IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
	SET @retData = CASE
		WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
	SET @retData = CASE
		WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
	END


-- Return the result of the function
RETURN @retData
	
----- TEST -----------------------
--    SET @retData = '20151130'
--    RETURN 	@retData

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre_EMAIL_PB]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
--select [C6MartPeriodico].[getTrimestre_EMAIL_PB](getdate())

CREATE FUNCTION [C6MartPeriodico].[getTrimestre_EMAIL_PB] 
(
	@data datetime
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)


	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
	END




RETURN @retData

END








GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre_New]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
--select [C6MartPeriodico].[getTrimestre_New](getdate(),0)
--select [C6MartPeriodico].[getTrimestre_New](getdate(),1)
CREATE FUNCTION [C6MartPeriodico].[getTrimestre_New]
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

	-- Se siamo in Trimestrale effettiva
	if CAST(month(@data) AS VARCHAR) in ('10','1','4','7')

	   
		-- Add the T-SQL statements to compute the return value here
		IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
				SET @retData = CASE
					WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
				END;
		ELSE -- Restituisce il primo giorno del trimestre precedente
				SET @retData = CASE
					WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
				END;

    else
	     SET @retData = CASE
					WHEN @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
					WHEN @data > CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AND @data <= CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
				END;

	
		
		
--PER SIMULAZIONE (Commentare x Trimestrale)------------
--IF @primo = 0
--    -- Impostare Data Congelamento Dati
--	--SET @retData = '20150228'ToDo Fc  : test DQ 
--	--SET @retData = '20151130'
--	--SET @retData = '20160229'
--	--SET @retData = '20160531'
--	--SET @retData = '20160831'
--	--SET @retData = '20161130'
--	--SET @retData = '20170228'
--	--SET @retData = '20170531'
--	--SET @retData = '20170831'
--	--SET @retData = '20171130' 
--	--SET @retData = '20180228'
--	--SET @retData = '20180531' 
--	SET @retData = '20180831' 

--ELSE
--    -- Impostare Primo giorno del mese di Simulazione
--    --SET @retData = '20150301'ToDo Fc  : test DQ 
--    --SET @retData = '20151201'
--    --SET @retData = '20160301'
--    --SET @retData = '20160601'
--	--SET @retData = '20160901'
--	--SET @retData = '20161201'
--	--SET @retData = '20170301'
--	--SET @retData = '20170601'
--	--SET @retData = '20170901'
--	--SET @retData = '20171201' 
--	--SET @retData = '20180301'
--	--SET @retData = '20180601' 
--	SET @retData = '20180901'   
----------------------------------------------------------

-- Return the result of the function
	RETURN @retData
	
----- TEST -----------------------
--    SET @retData = '20151130'
--    RETURN 	@retData

END




































GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre_Sim]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE  FUNCTION [C6MartPeriodico].[getTrimestre_Sim]
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--PER SIMULAZIONE (Commentare x Trimestrale)------------
declare @DtAnno varchar(4) = convert(varchar(4), @data, 112)
declare @DtAnnoPrec varchar(4) = convert(varchar(4), dateAdd(YYYY, -1, @data), 112)
IF @primo = 0
begin
  if @data < @DtAnno + '0301'      -- 0101 - 0228
    set @retdata= @DtAnnoPrec + '1130'
  else if @data < @DtAnno + '0601' -- 0301 - 0531
    set @retdata= DateAdd(dd, -1, @DtAnno + '0301')
  else if @data < @DtAnno + '0901' -- 0601 - 0831
    set @retdata= @DtAnno + '0531'
  else if @data < @DtAnno + '1201' -- 0901 - 1130
    set @retdata= @DtAnno + '0831'
  else -- 1201 - 1231
    set @retdata= @DtAnno + '1130'
end
ELSE
begin
  if @data < @DtAnno + '0301'      -- 0101 - 0228
    set @retdata= @DtAnnoPrec + '1201'
  else if @data < @DtAnno + '0601' -- 0301 - 0531
    set @retdata= @DtAnno + '0301'
  else if @data < @DtAnno + '0901' -- 0601 - 0831
    set @retdata= @DtAnno + '0601'
  else if @data < @DtAnno + '1201' -- 0901 - 1130
    set @retdata= @DtAnno + '0901'
  else -- 1201 - 1231
    set @retdata= @DtAnno + '1201'
end

-- Return the result of the function
RETURN @retData
	
----- TEST -----------------------
--    SET @retData = '20151130'
--    RETURN 	@retData

END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE   FUNCTION [C6MartPeriodico].[getTrimestre2] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--select c6martperiodico.getTrimestre2(cast ('20111201' as datetime),0)
--select dbo.getParametro('TrimestreSettembre') 
--select cast ('20110630' as datetime)-30

IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110830'
--V Decommentare nel passaggio in produzione
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110901'
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
	END


--PER SIMULAZIONE (Commentare x Trimestrale)------------
--IF @primo = 0
--    -- Impostare Data Congelamento Dati
--	--SET @retData = '20141130' ToDo Fc  : test DQ 
--	 --SET @retData = '20151130' 
--	 --SET @retData = '20160229'
--	 --SET @retData = '20160831'
--	 --SET @retData = '20161130'
--	 --SET @retData = '20170228'
--	 --SET @retData = '20170531'
--	 --SET @retData = '20170831'
--	 --SET @retData = '20171130' 
--	 --SET @retData = '20180228' 	 
--	--SET @retData = '20180531'  
--	--SET @retData = '20180831' 
--	--SET @retData = '20181130' 
--	--SET @retData = '20190228' 
--	SET @retData = '20190531'
--	SET @retData = '20190831'
--	SET @retData = '20191130'
--	SET @retData = '20200229'
--	SET @retData = '20200531'
--	SET @retData = '20200831'
--	SET @retData = '20201130'
--SET @retData = '20210228'
	--SET @retData = '20210531'
--	SET @retData = '20210831'
--set @retData = '20211130'
--set @retData='20220228'x
--SET @retData = '20220531'
--set @retData='20220831'
--set @retData='20221130'
--set @retData='20230831'
--set @retData='20231130'
--set @retData='20240229'
--set @retData='20240531'
--set @retData='20240831'
--set @retData='20241130'
--set @retData='20250228' --DA COMMENTARE IN TRIMESTRALE EFFETTIVA
--ELSE
--     --Impostare Primo giorno del mese di Simulazione
--    --SET @retData = '20141201' ToDo Fc  : test DQ 
--    --SET @retData = '20151201'
--    --SET @retData = '20160301'
--    --SET @retData = '20160901'
--	--SET @retData = '20161201'
--	--SET @retData = '20170301'
--	--SET @retData = '20170601'
--	--SET @retData = '20170901'
--	--SET @retData = '20171201' 
--	--SET @retData = '20180301' 
--	--SET @retData = '20180601' 
--	--SET @retData = '20180901'   
--	--SET @retData = '20181201'
--	--SET @retData = '20190301'
--	SET @retData = '20190601'
--	SET @retData = '20190901'
	--SET @retData = '20191201'
--SET @retData = '20200301'
--SET @retData = '20200601'
--	SET @retData = '20200901'
--	SET @retData = '20201201'
--SET @retData = '20210301'
	--SET @retData = '20210601'
	--set @retData = '20211201'
	--set @retData='20220301'
	--SET @retData = '20220601'
	--SET @retData='20220901'
	--set @retData='20221201'
--set @retData='20230901'
--set @retData='20231201'
--set @retData='20240301'
--set @retData='20240601'
--set @retData='20240901'
--set @retData='20241201'
--set @retData='20250301' --DA COMMENTARE IN TRIMESTRALE EFFETTIVA
-----------------------------------------

    
    RETURN @retData



END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre2_20190909]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
--select [C6MartPeriodico].[getTrimestre2_20190909](getdate(),1)
--select [C6MartPeriodico].[getTrimestre2_20190909](getdate(),0)
--select c6martperiodico.getTrimestre2_20190909(CAST('20100101' AS DATETIME),1)
--SELECT CAST(CAST(YEAR(CAST('20101216' AS DATETIME)) AS VARCHAR) + dbo.getParametro('TrimestreDICEMBRE') AS DATETIME)-16
--CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME)
CREATE FUNCTION [C6MartPeriodico].[getTrimestre2_20190909] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--select c6martperiodico.getTrimestre2_20190909(cast ('20111201' as datetime),0)
--select dbo.getParametro('TrimestreSettembre') 
--select cast ('20110630' as datetime)-30

IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110830'
--V Decommentare nel passaggio in produzione
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110901'
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
	END


--PER SIMULAZIONE (Commentare x Trimestrale)------------
IF @primo = 0
--    -- Impostare Data Congelamento Dati
--	--SET @retData = '20141130' ToDo Fc  : test DQ 
--	 --SET @retData = '20151130' 
--	 --SET @retData = '20160229'
--	 --SET @retData = '20160831'
--	 --SET @retData = '20161130'
--	 --SET @retData = '20170228'
--	 --SET @retData = '20170531'
--	 --SET @retData = '20170831'
--	 --SET @retData = '20171130' 
--	 --SET @retData = '20180228' 	 
--	--SET @retData = '20180531'  
--	--SET @retData = '20180831' 
--	--SET @retData = '20181130' 
--	--SET @retData = '20190228' 
	SET @retData = '20190531'


ELSE
--     --Impostare Primo giorno del mese di Simulazione
--    --SET @retData = '20141201' ToDo Fc  : test DQ 
--    --SET @retData = '20151201'
--    --SET @retData = '20160301'
--    --SET @retData = '20160901'
--	--SET @retData = '20161201'
--	--SET @retData = '20170301'
--	--SET @retData = '20170601'
--	--SET @retData = '20170901'
--	--SET @retData = '20171201' 
--	--SET @retData = '20180301' 
--	--SET @retData = '20180601' 
--	--SET @retData = '20180901'   
--	--SET @retData = '20181201'
--	--SET @retData = '20190301'
	SET @retData = '20190601'

-----------------------------------------
----------------------------------------------------------

--- TEST -----------------------
    --SET @retData = '20151130'
    --RETURN 	@retData
    
    RETURN @retData



END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre2_Eff]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



Create   FUNCTION [C6MartPeriodico].[getTrimestre2_Eff] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--select c6martperiodico.getTrimestre2(cast ('20111201' as datetime),0)
--select dbo.getParametro('TrimestreSettembre') 
--select cast ('20110630' as datetime)-30

IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110830'
--V Decommentare nel passaggio in produzione
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110901'
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
	END


    
    RETURN @retData



END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre2_New]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
--select [C6MartPeriodico].[getTrimestre2](getdate(),1)
--select [C6MartPeriodico].[getTrimestre2](getdate(),0)
--select c6martperiodico.gettrimestre2(CAST('20100101' AS DATETIME),1)
--SELECT CAST(CAST(YEAR(CAST('20101216' AS DATETIME)) AS VARCHAR) + dbo.getParametro('TrimestreDICEMBRE') AS DATETIME)-16
--CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME)
CREATE FUNCTION [C6MartPeriodico].[getTrimestre2_New] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--select c6martperiodico.getTrimestre2(cast ('20111201' as datetime),0)
--select dbo.getParametro('TrimestreSettembre') 
--select cast ('20110630' as datetime)-30

IF @primo = 0 -- Restituisce l'ultimo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110830'
--V Decommentare nel passaggio in produzione
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre')
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-30 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -31 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre')
	END
	ELSE -- Restituisce il primo giorno del trimestre precedente
-- Settare per la simulazione	SET @retData = '20110901'
	SET @retData = CASE
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME) -30 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreMarzo'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreGiugno') AS DATETIME) - 29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) - 29 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreGiugno'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreSettembre') AS DATETIME) -29 AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) - 30 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreSettembre'),1,2) + '01'
		WHEN @data >= CAST(YEAR(@data) AS VARCHAR)+'0101' AND @data < CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreMarzo') AS DATETIME)-16 THEN CAST(YEAR(@data) - 1 AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
		WHEN @data >= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) -30 AND @data <= CAST(CAST(YEAR(@data) AS VARCHAR) + dbo.getParametro('TrimestreDicembre') AS DATETIME) +1 THEN CAST(YEAR(@data) AS VARCHAR) + SUBSTRING(dbo.getParametro('TrimestreDicembre'),1,2) + '01'
	END


--PER SIMULAZIONE (Commentare x Trimestrale)------------
--IF @primo = 0
--    -- Impostare Data Congelamento Dati
--	--SET @retData = '20141130' ToDo Fc  : test DQ 
--	 --SET @retData = '20151130' 
--	 --SET @retData = '20160229'
--	 --SET @retData = '20160831'
--	 --SET @retData = '20161130'
--	 --SET @retData = '20170228'
--	 --SET @retData = '20170531'
--	 --SET @retData = '20170831'
--	 --SET @retData = '20171130' 
--	 --SET @retData = '20180228' 	 
--	--SET @retData = '20180531'  
--	SET @retData = '20180831' 


--ELSE
--     --Impostare Primo giorno del mese di Simulazione
--    --SET @retData = '20141201' ToDo Fc  : test DQ 
--    --SET @retData = '20151201'
--    --SET @retData = '20160301'
--    --SET @retData = '20160901'
--	--SET @retData = '20161201'
--	--SET @retData = '20170301'
--	--SET @retData = '20170601'
--	--SET @retData = '20170901'
--	--SET @retData = '20171201' 
--	--SET @retData = '20180301' 
--	--SET @retData = '20180601' 
--	SET @retData = '20180901'   
-------------------------------------------
----------------------------------------------------------

--- TEST -----------------------
    --SET @retData = '20151130'
    --RETURN 	@retData
    
    RETURN @retData



END



































GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestre2_Sim]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE   FUNCTION [C6MartPeriodico].[getTrimestre2_Sim] 
(
	@data datetime,
	@primo bit
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @retData VARCHAR(8)

--PER SIMULAZIONE (Commentare x Trimestrale)------------
declare @DtAnno varchar(4) = convert(varchar(4), @data, 112)
declare @DtAnnoPrec varchar(4) = convert(varchar(4), dateAdd(YYYY, -1, @data), 112)
IF @primo = 0
begin
  if @data < @DtAnno + '0301'      -- 0101 - 0228
    set @retdata= @DtAnnoPrec + '1130'
  else if @data < @DtAnno + '0601' -- 0301 - 0531
    set @retdata= DateAdd(dd, -1, @DtAnno + '0301')
  else if @data < @DtAnno + '0901' -- 0601 - 0831
    set @retdata= @DtAnno + '0531'
  else if @data < @DtAnno + '1201' -- 0901 - 1130
    set @retdata= @DtAnno + '0831'
  else -- 1201 - 1231
    set @retdata= @DtAnno + '1130'
end
ELSE
begin
  if @data < @DtAnno + '0301'      -- 0101 - 0228
    set @retdata= @DtAnnoPrec + '1201'
  else if @data < @DtAnno + '0601' -- 0301 - 0531
    set @retdata= @DtAnno + '0301'
  else if @data < @DtAnno + '0901' -- 0601 - 0831
    set @retdata= @DtAnno + '0601'
  else if @data < @DtAnno + '1201' -- 0901 - 1130
    set @retdata= @DtAnno + '0901'
  else -- 1201 - 1231
    set @retdata= @DtAnno + '1201'
end

    
    RETURN @retData
END
GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestreDettMov]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getTrimestreDettMov]
(
	-- Add the parameters for the function here
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Valore VARCHAR(8)

	SELECT @Valore = max(DTTRIM)
	FROM [C6StagingPeriodico].[W6APTR]
	WHERE DTTRIM not in ('99999999')

	-- Return the result of the function
	RETURN @Valore

END

GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[getTrimestreDettMov_20170413_bonifica]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [C6MartPeriodico].[getTrimestreDettMov_20170413_bonifica]
(
	-- Add the parameters for the function here
)
RETURNS VARCHAR(8)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Valore VARCHAR(8)

	SELECT @Valore = max(DTTRIM)
	FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	WHERE DTTRIM not in ('99999999')

	-- Return the result of the function
	RETURN @Valore

END

GO
/****** Object:  UserDefinedFunction [C6MartPeriodico].[Replace_Testo_Lettera_Benvenuto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [C6MartPeriodico].[Replace_Testo_Lettera_Benvenuto]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@COGNOME as varchar(20) = '',
	@NOME as varchar(20) = '',
	@TIPO_REPORT as varchar(100) = '',	
	@INDIRIZZO as varchar(20) = '',
	@DATA as datetime = null,
	@DATA_RICHIESTA_RISTAMPA as datetime = null,
	@DATA_GENERAZIONE_REPORT as datetime = null,
	@TESTO as TEXT = ''
)
RETURNS varchar(5000)
AS
BEGIN

	DECLARE @TESTO_DI_RITORNO as varchar(5000)
	DECLARE @REPORTISTICA as varchar(100)
	DECLARE @DATACONVERTITA as varchar(100)

	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @REPORTISTICA = 'Report di Monitoraggio';
			--SET @TIPO_REPORT_D = '';
			--SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			--if @FREQUENZA_DIAGN = 'T'
				--SET @FREQUENZA_DIAGN = 'Trimestrale';
			--if @FREQUENZA_DIAGN = 'S'
				--SET @FREQUENZA_DIAGN = 'Semestrale';
			--if @FREQUENZA_DIAGN = 'A'
				--SET @FREQUENZA_DIAGN = 'Annuale';
			SET @REPORTISTICA = 'Report di Diagnosi e Monitoraggio';
		END
	
	

	--if @FREQUENZA_MONITOR is null
		--BEGIN
			--SET @TIPO_REPORT_M = '';
			--SET @FREQUENZA_MONITOR = '';
		--END
	--else
		--BEGIN
			--if @FREQUENZA_MONITOR = 'T'
				--SET @FREQUENZA_MONITOR = 'Trimestrale';
			--if @FREQUENZA_MONITOR = 'S'
				--SET @FREQUENZA_MONITOR = 'Semestrale';
			--if @FREQUENZA_MONITOR = 'A'
				--SET @FREQUENZA_MONITOR = 'Annuale';
			--SET @TIPO_REPORT_M = '[' +@TIPO_REPORT_M + ', ' + @FREQUENZA_MONITOR+']';
		--END
	

	SET @TESTO_DI_RITORNO = @TESTO	
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\r\n',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\t',char(8));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CONTRACT_ID$/',@CODICE_CONTRATTO);
	
	
	
	if not @DATA is null 
		BEGIN
			SET @DATACONVERTITA = [dbo].[FormatDate_Testo_Lettera_Benvenuto](@DATA);
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/',@DATACONVERTITA);
		END
--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/',CONVERT(VARCHAR(10), @DATA, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/','');
	
	
	
	if not @DATA_RICHIESTA_RISTAMPA is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$reprint_date_req$/',CONVERT(VARCHAR(10), @DATA_RICHIESTA_RISTAMPA, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$reprint_date_req$/','');
	
	

	if not @DATA_GENERAZIONE_REPORT is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/',CONVERT(VARCHAR(10), @DATA_GENERAZIONE_REPORT, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/','');
	
	
	
	---- MODIFICARE PER MONITORAGGIO FARSI PASSARE L'ARGOMENTO DAL RM
	--- Inserire il caso del monitoraggio
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type$/',@TIPO_REPORT);
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$LASTNAME$/',@COGNOME);
	
	if NOT @NOME IS NULL
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NAME$/',@NOME);	
		
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPORTISCA$/',@REPORTISTICA);
	--
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIPO$/',@TIPO_REPORT);
	--
	--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPORT_TYPE_MONITORAGGIO$/',@TIPO_REPORT_M);
--	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$FREQUENCY_DIAGNOSI$/',@FREQUENZA_DIAGN);
--	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$FREQUENCY_MONITORAGGIO$/',@FREQUENZA_MONITOR);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ADDRESS$/',@INDIRIZZO);


	
	if not @DATA_RICHIESTA_RISTAMPA is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPRINT_DATE_REQ$/',@DATA_RICHIESTA_RISTAMPA);
	end
	
	if not @DATA_GENERAZIONE_REPORT is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/',@DATA_GENERAZIONE_REPORT);
	end

    RETURN @TESTO_DI_RITORNO
END




GO
/****** Object:  UserDefinedFunction [C6MartPeriodicoImmobiliare].[CONCATENA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select [C6MartPeriodicoImmobiliare].[CONCATENA] ( 'F', 'BRNLLN36A55L781D', 1503 )

CREATE FUNCTION [C6MartPeriodicoImmobiliare].[CONCATENA]
(
		@RETE as varchar(1),
    @CF as  varchar(16),
    @NomeFile as  varchar(18),
    @DataGenerazione as varchar(8)
)
RETURNS  VARCHAR(MAX)
AS
BEGIN
  -- Declare the return variable here
	DECLARE @RESULT AS  VARCHAR(MAX)
	
	SET @RESULT =''

	-- ***** LISTA DEI CAMPI E DELLE LUNGHEZZE *****
		-- Rete (1)
		-- NOMINATIVODESTINATARIO(50)
		-- VIA(50)
		-- CAP(5)
		-- LOCALITA(50)
		-- PROVINCIA(2)
		-- NAZIONE(1)
		-- TIPOPOSTALIZZAZIONE(2)
		-- FILESPOOL(50)
		-- NAZIONEESTERA(30)

	SET @CF = REPLACE(@CF,'$$','@')

	SELECT		
		@RESULT = @RESULT 
		--V Inserimento nuovi flag
		+ @RETE
		--FINE INSERIMENTO NUOVI FLAG
		+ LEFT(isnull(C6MartPeriodicoImmobiliare.ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(C6MartPeriodicoImmobiliare.ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
    + LEFT (coalesce(@NomeFile, '') + '                                                  ', 50)
 		+ LEFT((CASE UPPER(isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Nazione,'') END) + '                               ',30) -- NAZIONEESTERA(30)
		+ right (' ' + COALESCE(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + C6MartPeriodicoImmobiliare.CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(C6MartPeriodicoImmobiliare.CONTRATTOSEI.Email, '') + '                                                  ', 50)
    + @DataGenerazione
    + isnull(C6MartPeriodicoImmobiliare.CONTRATTOSEI.COD_AGENTE	, '')
    + C6MartPeriodicoImmobiliare.CONTRATTOSEI.CodiceContratto

	FROM C6MartPeriodicoImmobiliare.CONTRATTOSEI
  INNER JOIN C6MartPeriodicoImmobiliare.ANAG_CLIENTI 
    ON C6MartPeriodicoImmobiliare.ANAG_CLIENTI.Rete = C6MartPeriodicoImmobiliare.CONTRATTOSEI.Rete
		AND C6MartPeriodicoImmobiliare.ANAG_CLIENTI.COD_FISCALE = C6MartPeriodicoImmobiliare.CONTRATTOSEI.Cod_Fiscale
    WHERE
		C6MartPeriodicoImmobiliare.ANAG_CLIENTI.Rete = @RETE
		AND C6MartPeriodicoImmobiliare.ANAG_CLIENTI.COD_FISCALE = @CF


	RETURN @RESULT

END
GO
/****** Object:  UserDefinedFunction [C6Staging].[getImportoSpesa]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE   FUNCTION [C6Staging].[getImportoSpesa]
(
	-- Add the parameters for the function here
	@Rete varchar(2),
	@Codice_fiscale varchar(16)
)
RETURNS VARCHAR(255)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ValoreParametro decimal(15,2)

	SELECT	@ValoreParametro=isnull(ImportoSpesa,0.00)
	FROM	c6mart.Mifid
	WHERE	RETE=@Rete and COD_FISCALE=@Codice_fiscale

	-- Return the result of the function
	RETURN @ValoreParametro

END
GO
/****** Object:  UserDefinedFunction [C6Staging].[Info_DaProdottoCSaCatalogo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [C6Staging].[Info_DaProdottoCSaCatalogo]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	-- Declare the return variable here
		DECLARE @ResultVar  VARCHAR(63)

	-- Add the T-SQL statements to compute the return value here
	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')--,'ASU2' )    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC


	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC

	
	RETURN @ResultVar
END


GO
/****** Object:  UserDefinedFunction [C6Staging].[RP_Info_DaProdottoCSaCatalogo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [C6Staging].[RP_Info_DaProdottoCSaCatalogo]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
		DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')--,'ASU2' )    -- TRINGALI inseriti CC --V Inseriti ASU"
	BEGIN
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
--inizio intervento MIGRAZIONE ASU3			
--inizio INTERVENTO 'RE' - 20161223	+ 'RF' 20171113							
			--and @CodInterno not in ('RS','RB','RM','RV')
			and @CodInterno not in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
--fine INTERVENTO 'RE' - 20161223 + 'RF' 20171113		
--fine intervento MIGRAZIONE ASU3					
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161223	+ 'RF' 20171113					
			--@CodInterno in ('RS','RB','RM','RV')
			@CodInterno in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
	--fine INTERVENTO 'RE' - 20161223 + 'RF' 20171113		
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.codisin = @CodISIN
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3				
		ELSE
		  	SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
    END

	/*
	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC
	*/

	--Inizio intervento Omnia
	--IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	IF @TipoProdotto in ('ASU2', 'GP')
	--Fine intervento Omnia
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.codisin = @CodISIN
	ORDER BY VISIBILITA DESC


	/*
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC
	*/	
	
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY VISIBILITA DESC
	
/*
	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC
*/

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 
	and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODMAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY VISIBILITA DESC

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20161223]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20161223]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
		DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')--,'ASU2' )    -- TRINGALI inseriti CC --V Inseriti ASU"
	BEGIN
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
--inizio intervento MIGRAZIONE ASU3			
			and @CodInterno not in ('RS','RB','RM','RV')
--fine intervento MIGRAZIONE ASU3					
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
			@CodInterno in ('RS','RB','RM','RV')
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.codisin = @CodISIN
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3				
		ELSE
		  	SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
    END

	/*
	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC
	*/

	--Inizio intervento Omnia
	--IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	IF @TipoProdotto in ('ASU2', 'GP')
	--Fine intervento Omnia
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.codisin = @CodISIN
	ORDER BY VISIBILITA DESC


	/*
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC
	*/	
	
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY VISIBILITA DESC
	
/*
	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC
*/

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 
	and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODMAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY VISIBILITA DESC

	-- Return the result of the function
	RETURN @ResultVar
END

GO
/****** Object:  UserDefinedFunction [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20171113.orig]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20171113.orig]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
		DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')--,'ASU2' )    -- TRINGALI inseriti CC --V Inseriti ASU"
	BEGIN
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
--inizio intervento MIGRAZIONE ASU3			
--inizio INTERVENTO 'RE' - 20161223						
			--and @CodInterno not in ('RS','RB','RM','RV')
			and @CodInterno not in ('RS','RB','RM','RV','RE')
--fine INTERVENTO 'RE' - 20161223
--fine intervento MIGRAZIONE ASU3					
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161223						
			--@CodInterno in ('RS','RB','RM','RV')
			@CodInterno in ('RS','RB','RM','RV','RE')
	--fine INTERVENTO 'RE' - 20161223	
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.codisin = @CodISIN
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3				
		ELSE
		  	SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
    END

	/*
	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC
	*/

	--Inizio intervento Omnia
	--IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	IF @TipoProdotto in ('ASU2', 'GP')
	--Fine intervento Omnia
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.codisin = @CodISIN
	ORDER BY VISIBILITA DESC


	/*
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC
	*/	
	
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY VISIBILITA DESC
	
/*
	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC
*/

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 
	and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODMAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY VISIBILITA DESC

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20171113.orig2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20171113.orig2]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
		DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')--,'ASU2' )    -- TRINGALI inseriti CC --V Inseriti ASU"
	BEGIN
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
--inizio intervento MIGRAZIONE ASU3			
--inizio INTERVENTO 'RE' - 20161223						
			--and @CodInterno not in ('RS','RB','RM','RV')
			and @CodInterno not in ('RS','RB','RM','RV','RE')
--fine INTERVENTO 'RE' - 20161223
--fine intervento MIGRAZIONE ASU3					
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161223						
			--@CodInterno in ('RS','RB','RM','RV')
			@CodInterno in ('RS','RB','RM','RV','RE')
	--fine INTERVENTO 'RE' - 20161223	
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.codisin = @CodISIN
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3				
		ELSE
		  	SELECT TOP 1 @ResultVar = CATALOGUEID 
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
    END

	/*
	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC
	*/

	--Inizio intervento Omnia
	--IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	IF @TipoProdotto in ('ASU2', 'GP')
	--Fine intervento Omnia
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.codisin = @CodISIN
	ORDER BY VISIBILITA DESC


	/*
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC
	*/	
	
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY VISIBILITA DESC
	
/*
	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC
*/

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 
	and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODMAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY VISIBILITA DESC

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20171113_EN.test]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE FUNCTION [C6Staging].[RP_Info_DaProdottoCSaCatalogo_20171113_EN.test]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
		DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')--,'ASU2' )    -- TRINGALI inseriti CC --V Inseriti ASU"
	BEGIN
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
--inizio intervento MIGRAZIONE ASU3			
--inizio INTERVENTO 'RE' - 20161223						
			--and @CodInterno not in ('RS','RB','RM','RV')
			and @CodInterno not in ('RS','RB','RM','RV','RE',  'RF')
--fine INTERVENTO 'RE' - 20161223
--fine intervento MIGRAZIONE ASU3					
			SELECT TOP 1 @ResultVar = CATALOGUEID
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161223						
			--@CodInterno in ('RS','RB','RM','RV')
			@CodInterno in ('RS','RB','RM','RV','RE')
	--fine INTERVENTO 'RE' - 20161223	
			SELECT TOP 1 @ResultVar = CATALOGUEID
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.codisin = @CodISIN
			ORDER BY VISIBILITA DESC	
--fine intervento MIGRAZIONE ASU3		
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161223						
			@CodInterno in ('RF')
	--fine INTERVENTO 'RE' - 20161223	
	set @ResultVar = @TipoProdotto + @CodInterno + @CodMAF + '<'+ @CodISIN + '>' + @CodSottoprodotto
			--SELECT TOP 1 @ResultVar = CATALOGUEID
			--FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			--where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			--and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			--and cat.codisin = @CodISIN
			--ORDER BY VISIBILITA DESC			
		ELSE
		  	SELECT TOP 1 @ResultVar = CATALOGUEID + cat.TIPOPRODOTTO
			--select top 1 *
			FROM C6Staging.RP_CATALOGOPRODOTTI CAT
			where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
			and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
			and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
    END

	/*
	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC
	*/

	--Inizio intervento Omnia
	--IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU"
	IF @TipoProdotto in ('ASU2', 'GP')
	--Fine intervento Omnia
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODSOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.codisin = @CodISIN
	ORDER BY VISIBILITA DESC


	/*
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC
	*/	
	
	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY VISIBILITA DESC
	
/*
	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC
*/

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.RP_CATALOGOPRODOTTI CAT
	where 1=1 
	and cat.CODINTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.CODMAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY VISIBILITA DESC

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[getImportoSpesa]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE    FUNCTION [C6StagingPeriodico].[getImportoSpesa]
(
	-- Add the parameters for the function here
	@Rete varchar(2),
	@Codice_fiscale varchar(16)
)
RETURNS VARCHAR(255)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ValoreParametro decimal(15,2)

	SELECT	@ValoreParametro=isnull(SPESA_FORZATA,0.00)
	FROM	C6MartPeriodico.WSEIAN2
	WHERE	RETE=@Rete and CODFIS=@Codice_fiscale

	-- Return the result of the function
	RETURN @ValoreParametro

END
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[getTermID]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE    FUNCTION [C6StagingPeriodico].[getTermID]
(
	-- Add the parameters for the function here
	@Rete varchar(2),
	@Codice_fiscale varchar(16)
)
RETURNS VARCHAR(255)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ValoreParametro decimal(15,2)

	SELECT	@ValoreParametro=isnull(SUM(ctv),0.00) 
	from C6MartPeriodico.PATRIMONIO_BF  where substring(patrimonio_bf.position_id,97,8)in('BDR20000','TDV20000') --BDR2000 Cash Deposit TDV20000 TimeDeposit
	and	RETE=@Rete and Cod_Fiscale=@Codice_fiscale

	-- Return the result of the function
	RETURN @ValoreParametro

END
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	-- Declare the return variable here
		DECLARE @ResultVar  VARCHAR(63)

	-- Add the T-SQL statements to compute the return value here
	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASVI','ASU1', 'ASCM', 'AC','CC' )    -- TRINGALI inseriti CC
	--OR (@CodSottoprodotto NOT IN ('VAR5','VAR10','VAR15') and @TipoProdotto = 'ASU1')
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	ORDER BY ISVISIBLE DESC


	--V Modifica ASU2
	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU2
	--OR (@CodSottoprodotto IN ('VAR5','VAR10','VAR15') and @TipoProdotto = 'ASU1')
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Stagingperiodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC


	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC


	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo_asu2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo_asu2]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	-- Declare the return variable here
		DECLARE @ResultVar  VARCHAR(63)

	-- Add the T-SQL statements to compute the return value here
	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASVI','ASU1', 'ASCM', 'AC','CC' )    -- TRINGALI inseriti CC
	--OR (@CodSottoprodotto NOT IN ('VAR5','VAR10','VAR15') and @TipoProdotto = 'ASU1')
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('ASU2')    -- TRINGALI inseriti CC --V Inseriti ASU2
	--OR (@CodSottoprodotto IN ('VAR5','VAR10','VAR15') and @TipoProdotto = 'ASU1')
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	and cat.cod_isin = @CodISIN
	ORDER BY ISVISIBLE DESC


	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC



	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo_preASU2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo_preASU2]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	-- Declare the return variable here
		DECLARE @ResultVar  VARCHAR(63)

	-- Add the T-SQL statements to compute the return value here
	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC' )    -- TRINGALI inseriti CC
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID 
	FROM C6StagingPeriodico.CATITEMREF cat
	where 1=1 
	and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
	and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC



	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE FUNCTION [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	
	DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
	BEGIN 
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')
--inizio intervento MIGRAZIONE ASU3
--inizio INTERVENTO 'RE' - 20161219						
			--and @CodInterno not in ('RS','RB','RM','RV')
				--inizio INTERVENTO 'RF/MP' - 20171204						
					--and @CodInterno not in ('RS','RB','RM','RV','RE')
					and @CodInterno not in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
				--FINE INTERVENTO 'RF/MP' - 20171204
--fine INTERVENTO 'RE' - 20161219						
--fine intervento MIGRAZIONE ASU3			
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161219						
			--@CodInterno in ('RS','RB','RM','RV')
					--inizio INTERVENTO 'RF/MP' - 20171204
						--@CodInterno in ('RS','RB','RM','RV','RE')
						  @CodInterno in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
					--FINE INTERVENTO 'RF/MP' - 20171204
	--fine INTERVENTO 'RE' - 20161219								
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3						
		ELSE	
			SELECT TOP 1 
			@ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
	END

--	IF @TipoProdotto in ('ASU2')   
  	IF @TipoProdotto in ('ASU2','GP')   
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
		and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		ORDER BY VISIBILITA DESC

	
	IF @TipoProdotto in ('DT','ASD' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') =  isnull(@CodInterno,'')
		ORDER BY VISIBILITA DESC
	

	IF @TipoProdotto in ('GES' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'') 
		and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
		ORDER BY VISIBILITA DESC

--	IF @CodISIN in ('EURO00000009')   
--		SELECT TOP 1 @ResultVar = CATALOGUEID 
--		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
--		where 1=1
--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
--		ORDER BY VISIBILITA DESC


	RETURN @ResultVar
END



GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_20171204_preRFMP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE FUNCTION [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_20171204_preRFMP]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	
	DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
	BEGIN 
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
--inizio intervento MIGRAZIONE ASU3
--inizio INTERVENTO 'RE' - 20161219						
			--and @CodInterno not in ('RS','RB','RM','RV')
			and @CodInterno not in ('RS','RB','RM','RV','RE')
--fine INTERVENTO 'RE' - 20161219						
--fine intervento MIGRAZIONE ASU3			
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161219						
			--@CodInterno in ('RS','RB','RM','RV')
			@CodInterno in ('RS','RB','RM','RV','RE')
	--fine INTERVENTO 'RE' - 20161219								
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3						
		ELSE	
			SELECT TOP 1 
			@ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
	END

--	IF @TipoProdotto in ('ASU2')   
  	IF @TipoProdotto in ('ASU2','GP')   
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
		and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		ORDER BY VISIBILITA DESC

	
	IF @TipoProdotto in ('DT','ASD' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') =  isnull(@CodInterno,'')
		ORDER BY VISIBILITA DESC
	

	IF @TipoProdotto in ('GES' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'') 
		and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
		ORDER BY VISIBILITA DESC

--	IF @CodISIN in ('EURO00000009')   
--		SELECT TOP 1 @ResultVar = CATALOGUEID 
--		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
--		where 1=1
--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
--		ORDER BY VISIBILITA DESC


	RETURN @ResultVar
END




GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_20190725]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE FUNCTION [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_20190725]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	
	DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
	BEGIN 
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
--inizio intervento MIGRAZIONE ASU3
--inizio INTERVENTO 'RE' - 20161219						
			--and @CodInterno not in ('RS','RB','RM','RV')
				--inizio INTERVENTO 'RF/MP' - 20171204						
					--and @CodInterno not in ('RS','RB','RM','RV','RE')
					and @CodInterno not in ('RS','RB','RM','RV','RE','RF')
				--FINE INTERVENTO 'RF/MP' - 20171204
--fine INTERVENTO 'RE' - 20161219						
--fine intervento MIGRAZIONE ASU3			
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161219						
			--@CodInterno in ('RS','RB','RM','RV')
					--inizio INTERVENTO 'RF/MP' - 20171204
						--@CodInterno in ('RS','RB','RM','RV','RE')
						  @CodInterno in ('RS','RB','RM','RV','RE','RF')
					--FINE INTERVENTO 'RF/MP' - 20171204
	--fine INTERVENTO 'RE' - 20161219								
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3						
		ELSE	
			SELECT TOP 1 
			@ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
	END

--	IF @TipoProdotto in ('ASU2')   
  	IF @TipoProdotto in ('ASU2','GP')   
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
		and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		ORDER BY VISIBILITA DESC

	
	IF @TipoProdotto in ('DT','ASD' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') =  isnull(@CodInterno,'')
		ORDER BY VISIBILITA DESC
	

	IF @TipoProdotto in ('GES' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'') 
		and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
		ORDER BY VISIBILITA DESC

--	IF @CodISIN in ('EURO00000009')   
--		SELECT TOP 1 @ResultVar = CATALOGUEID 
--		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
--		where 1=1
--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
--		ORDER BY VISIBILITA DESC


	RETURN @ResultVar
END



GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_BK_eligoTitoli]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	
	DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
	BEGIN 
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191')
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
			ORDER BY VISIBILITA DESC
		ELSE	
			SELECT TOP 1 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
	END

--	IF @TipoProdotto in ('ASU2')   
  	IF @TipoProdotto in ('ASU2','GP')   
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
		and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		ORDER BY VISIBILITA DESC

	
	IF @TipoProdotto in ('DT','ASD' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') =  isnull(@CodInterno,'')
		ORDER BY VISIBILITA DESC
	

	IF @TipoProdotto in ('GES' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'') 
		and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
		ORDER BY VISIBILITA DESC

--	IF @CodISIN in ('EURO00000009')   
--		SELECT TOP 1 @ResultVar = CATALOGUEID 
--		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
--		where 1=1
--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
--		ORDER BY VISIBILITA DESC


	RETURN @ResultVar
END



GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_Ottimizzata]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






Create FUNCTION [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_Ottimizzata]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	-- FerAcu Variante su CodInterno che è il primo campo degli indici su RP_CATALOGOPRODOTTI
	--  Il corpo si sdoppia gestendo separatamente il caso con CodInterno vuoto e popolato

	DECLARE @ResultVar  VARCHAR(63)

	IF isnull(@CodInterno,'') != ''
	  BEGIN
			IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			BEGIN 
				IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')
		--inizio intervento MIGRAZIONE ASU3
		--inizio INTERVENTO 'RE' - 20161219						
					--and @CodInterno not in ('RS','RB','RM','RV')
						--inizio INTERVENTO 'RF/MP' - 20171204						
							--and @CodInterno not in ('RS','RB','RM','RV','RE')
							and @CodInterno not in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
		,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
						--FINE INTERVENTO 'RF/MP' - 20171204
		--fine INTERVENTO 'RE' - 20161219						
		--fine intervento MIGRAZIONE ASU3			
					SELECT TOP 1
					 @ResultVar = CATALOGUEID 
					FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
					where 1=1 
						and cat.CODINTERNO = isnull(@CodInterno,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
					ORDER BY VISIBILITA DESC
		--inizio intervento MIGRAZIONE ASU3	
				ELSE IF
			--inizio INTERVENTO 'RE' - 20161219						
					--@CodInterno in ('RS','RB','RM','RV')
							--inizio INTERVENTO 'RF/MP' - 20171204
								--@CodInterno in ('RS','RB','RM','RV','RE')
								  @CodInterno in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
		,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
							--FINE INTERVENTO 'RF/MP' - 20171204
			--fine INTERVENTO 'RE' - 20161219								
					SELECT TOP 1
					 @ResultVar = CATALOGUEID 
					FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
					where 1=1 
						and cat.CODINTERNO = isnull(@CodInterno,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
						and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
					ORDER BY VISIBILITA DESC		
		--fine intervento MIGRAZIONE ASU3						
				ELSE	
					SELECT TOP 1 
					@ResultVar = CATALOGUEID 
					FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
					where 1=1 
						and cat.CODINTERNO = isnull(@CodInterno,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
						and cat.TIPOPRODOTTO = @TipoProdotto
					ORDER BY VISIBILITA DESC
			END

		--	IF @TipoProdotto in ('ASU2')   
  			IF @TipoProdotto in ('ASU2','GP')   
				SELECT TOP 1 @ResultVar = CATALOGUEID 
				FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
				where 1=1 
				and cat.CODINTERNO = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
				ORDER BY VISIBILITA DESC

	
			IF @TipoProdotto in ('DT','ASD' ) 
				SELECT TOP 1 @ResultVar = CATALOGUEID 
				FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
				where 1=1 
				and cat.CODINTERNO =  isnull(@CodInterno,'')
				ORDER BY VISIBILITA DESC
	

			IF @TipoProdotto in ('GES' ) 
				SELECT TOP 1 @ResultVar = CATALOGUEID 
				FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
				where 1=1 
				and cat.CODINTERNO = isnull(@CodInterno,'') 
				and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
				ORDER BY VISIBILITA DESC

		--	IF @CodISIN in ('EURO00000009')   
		--		SELECT TOP 1 @ResultVar = CATALOGUEID 
		--		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		--		where 1=1
		--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		--		ORDER BY VISIBILITA DESC
      END
    
	
	-- FerAcu 20241018 identica al blocco Then con la variante sui criteri su @CodInterno
	ELSE  -- @CodInterno non valorizato, NULL o ''
	  BEGIN

			IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			BEGIN 
				IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')
		--inizio intervento MIGRAZIONE ASU3
		--inizio INTERVENTO 'RE' - 20161219						
					--and @CodInterno not in ('RS','RB','RM','RV')
						--inizio INTERVENTO 'RF/MP' - 20171204						
							--and @CodInterno not in ('RS','RB','RM','RV','RE')
							and @CodInterno not in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
		,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
						--FINE INTERVENTO 'RF/MP' - 20171204
		--fine INTERVENTO 'RE' - 20161219						
		--fine intervento MIGRAZIONE ASU3			
					SELECT TOP 1
					 @ResultVar = CATALOGUEID 
					FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
					where 1=1 
						and (cat.CODINTERNO is null  or cat.CODINTERNO = '')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
					ORDER BY VISIBILITA DESC
		--inizio intervento MIGRAZIONE ASU3	
				ELSE IF
			--inizio INTERVENTO 'RE' - 20161219						
					--@CodInterno in ('RS','RB','RM','RV')
							--inizio INTERVENTO 'RF/MP' - 20171204
								--@CodInterno in ('RS','RB','RM','RV','RE')
								  @CodInterno in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
		,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
							--FINE INTERVENTO 'RF/MP' - 20171204
			--fine INTERVENTO 'RE' - 20161219								
					SELECT TOP 1
					 @ResultVar = CATALOGUEID 
					FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
					where 1=1 
						and (cat.CODINTERNO is null  or cat.CODINTERNO = '')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
						and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
					ORDER BY VISIBILITA DESC		
		--fine intervento MIGRAZIONE ASU3						
				ELSE	
					SELECT TOP 1 
					@ResultVar = CATALOGUEID 
					FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
					where 1=1 
						and (cat.CODINTERNO is null  or cat.CODINTERNO = '')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
						and cat.TIPOPRODOTTO = @TipoProdotto
					ORDER BY VISIBILITA DESC
			END

		--	IF @TipoProdotto in ('ASU2')   
  			IF @TipoProdotto in ('ASU2','GP')   
				SELECT TOP 1 @ResultVar = CATALOGUEID 
				FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
				where 1=1 
				and (cat.CODINTERNO is null  or cat.CODINTERNO = '')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
				ORDER BY VISIBILITA DESC

	
			IF @TipoProdotto in ('DT','ASD' ) 
				SELECT TOP 1 @ResultVar = CATALOGUEID 
				FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
				where 1=1 
				and (cat.CODINTERNO is null  or cat.CODINTERNO = '')
				ORDER BY VISIBILITA DESC
	

			IF @TipoProdotto in ('GES' ) 
				SELECT TOP 1 @ResultVar = CATALOGUEID 
				FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
				where 1=1 
				and (cat.CODINTERNO is null  or cat.CODINTERNO = '') 
				and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
				ORDER BY VISIBILITA DESC

		--	IF @CodISIN in ('EURO00000009')   
		--		SELECT TOP 1 @ResultVar = CATALOGUEID 
		--		FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
		--		where 1=1
		--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		--		ORDER BY VISIBILITA DESC
      END

	RETURN @ResultVar
END



GO
/****** Object:  UserDefinedFunction [C6StagingPeriodicoImmobiliare].[RP_Info_DaProdottoCSaCatalogo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [C6StagingPeriodicoImmobiliare].[RP_Info_DaProdottoCSaCatalogo]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	
	DECLARE @ResultVar  VARCHAR(63)

	IF @TipoProdotto in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
	BEGIN 
		IF	@CodSottoprodotto not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
--inizio intervento MIGRAZIONE ASU3
--inizio INTERVENTO 'RE' - 20161219						
			--and @CodInterno not in ('RS','RB','RM','RV')
				--inizio INTERVENTO 'RF/MP' - 20171204						
					--and @CodInterno not in ('RS','RB','RM','RV','RE')
					and @CodInterno not in ('RS','RB','RM','RV','RE','RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
				--FINE INTERVENTO 'RF/MP' - 20171204
--fine INTERVENTO 'RE' - 20161219						
--fine intervento MIGRAZIONE ASU3			
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
			ORDER BY VISIBILITA DESC
--inizio intervento MIGRAZIONE ASU3	
		ELSE IF
	--inizio INTERVENTO 'RE' - 20161219						
			--@CodInterno in ('RS','RB','RM','RV')
					--inizio INTERVENTO 'RF/MP' - 20171204
						--@CodInterno in ('RS','RB','RM','RV','RE')
						  @CodInterno in ('RS','RB','RM','RV','RE','RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
					--FINE INTERVENTO 'RF/MP' - 20171204
	--fine INTERVENTO 'RE' - 20161219								
			SELECT TOP 1
			 @ResultVar = CATALOGUEID 
			FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
			ORDER BY VISIBILITA DESC		
--fine intervento MIGRAZIONE ASU3						
		ELSE	
			SELECT TOP 1 
			@ResultVar = CATALOGUEID 
			FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
			where 1=1 
				and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
				and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
				and cat.TIPOPRODOTTO = @TipoProdotto
			ORDER BY VISIBILITA DESC
	END

--	IF @TipoProdotto in ('ASU2')   
  	IF @TipoProdotto in ('ASU2','GP')   
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'')
		and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(@CodSottoprodotto,'')
		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
		ORDER BY VISIBILITA DESC

	
	IF @TipoProdotto in ('DT','ASD' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') =  isnull(@CodInterno,'')
		ORDER BY VISIBILITA DESC
	

	IF @TipoProdotto in ('GES' ) 
		SELECT TOP 1 @ResultVar = CATALOGUEID 
		FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
		where 1=1 
		and isnull(cat.CODINTERNO,'') = isnull(@CodInterno,'') 
		and isnull(cat.CODMAF,'') = isnull(@CodMAF,'')
		ORDER BY VISIBILITA DESC

--	IF @CodISIN in ('EURO00000009')   
--		SELECT TOP 1 @ResultVar = CATALOGUEID 
--		FROM C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI CAT
--		where 1=1
--		and isnull(cat.codisin,'')  = isnull(@CodISIN,'')
--		ORDER BY VISIBILITA DESC


	RETURN @ResultVar
END




GO
/****** Object:  UserDefinedFunction [dbo].[Cc_Email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Cc_Email]
(
	@RETE as varchar(1) = '',
	@CODICE as varchar(6) = '',
	@NS as int = 0, -- NUMERO SOLLECITI FATTI,
	@TIPOEMAIL as varchar(19) = ''

)
RETURNS varchar(500)
AS

BEGIN
	DECLARE @CC_DI_RITORNO as varchar(500)
	SET @CC_DI_RITORNO = '';

if @TIPOEMAIL = 'PERF'
	RETURN @CC_DI_RITORNO

declare @flagSEDE as bit -- uso questo flag per allegare gli indirizzi di SEDE
set @flagSEDE = 0

declare @flagRMDM as bit -- uso questo flag per spedire ad RM,DM
set @flagRMDM = 0

DECLARE @PV as varchar(1)
SET @PV = ';'

declare @flagAM as bit -- uso questo flag per spedire ad AM
set @flagAM = 0



DECLARE @REF_SEDE as varchar(200)
SET @REF_SEDE = ''
IF @RETE = 'F'
	BEGIN
		SET @REF_SEDE  = @REF_SEDE + 'SEIDIREZIONERETE@BANCAFIDEURAM.IT' + @PV;
		SET @REF_SEDE  = @REF_SEDE + 'SEI@FIDEURAM.IT';
	END
ELSE IF @RETE = 'S'
	BEGIN
		SET @REF_SEDE  = @REF_SEDE + 'SEIDIREZIONERETE@SPINVEST.COM' + @PV;
		SET @REF_SEDE  = @REF_SEDE + 'SEI@FIDEURAM.IT';
	END
	


-- 1_SOLL_NOPRO: non sono previsti indirizzi in cc
IF @TIPOEMAIL = '1_SOLL_NOPRO'
	BEGIN
		   SET @flagRMDM = 0;
		   SET @flagSEDE = 0;
		   SET @flagAM = 0;
	END
	
-- 2_SOLL_NOPRO: divisional manager; regional manager (dm, rm)
IF @TIPOEMAIL = '2_SOLL_NOPRO'
	BEGIN
		   SET @flagRMDM = 1;
		   SET @flagSEDE = 0;
		   SET @flagAM = 0;
	END


-- 3_SOLL_NOPRO: area manager; divisional manager; regional manage (am,dm,rm)
IF @TIPOEMAIL = '3_SOLL_NOPRO'
	BEGIN
		   SET @flagRMDM = 1;
		   SET @flagAM = 1;
		   SET @flagSEDE = 0;
	END


-- S_SOLL_NOPRO/REVOCA_NOPRO (am,dm,rm): (RETE F) area manager, divisional manager, regional manager, SEIDIREZIONERETE@BANCAFIDEURAM.IT, SEI@FIDEURAM.IT
--               (RETE S)  area manager, divisional manager, regional manager, SEIDIREZIONERETE@SPINVEST.COM, SEI@FIDEURAM.IT
IF @TIPOEMAIL IN ('S_SOLL_NOPRO','REVOCA_NOPRO')
	BEGIN
		   SET @flagRMDM = 1;
		   SET @flagAM = 1;
		   SET @flagSEDE = 1;
	END



declare @ritorno as varchar(500)
set @ritorno = ''

IF(@flagRMDM=1)
begin
--em.rete,em.codice,
--em.email
	select @ritorno = @ritorno + em.email + @PV
	from
	(
	SELECT rete,rm as codice
	from c6mart.struttura_rete sr
	where Rete = @RETE
	and PB = @CODICE
	and rm <> pb
	union all
	SELECT rete,dm as codice
	from c6mart.struttura_rete sr
	where Rete = @RETE
	and PB = @CODICE
	and dm <> rm
	) a
	inner join C6Mart.EMAIL_PB em
	on a.rete = em.rete
	and a.codice = em.codice
end


IF(@flagAM=1)
begin

--em.rete,em.codice,
--em.email
	select @ritorno = @ritorno + em.email + @PV
	from
	(
	SELECT rete,am as codice
	from c6mart.struttura_rete sr
	where Rete = @RETE
	and PB = @CODICE
	and am <> dm
	and @flagAM = 1
	) a
	inner join C6Mart.EMAIL_PB em
	on a.rete = em.rete
	and a.codice = em.codice
end

--dal 3 sollecito coinvolgo anche Direzione ed Assistenza Rete
if(@flagSEDE=1)
	set @ritorno = @REF_SEDE + @PV + @ritorno


RETURN @ritorno
--RETURN '@NS=' +  cast(@NS as varchar(2)) + '-' + '@flagSEDE=' + cast(@flagSEDE as varchar(2))+ '-' + '@flagAM=' + cast(@flagAM as varchar(2))
END

GO
/****** Object:  UserDefinedFunction [dbo].[Cc_Email_20161021]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE FUNCTION [dbo].[Cc_Email_20161021]
(
	@RETE as varchar(1) = '',
	@CODICE as varchar(6) = '',
	@NS as int = 0, -- NUMERO SOLLECITI FATTI,
	@TIPOEMAIL as varchar(19) = ''

)
RETURNS varchar(500)
AS

BEGIN
	DECLARE @CC_DI_RITORNO as varchar(500)
	SET @CC_DI_RITORNO = '';

if @TIPOEMAIL = 'PERF'
	RETURN @CC_DI_RITORNO

declare @flag as bit
set @flag = 0

DECLARE @PV as varchar(1)
SET @PV = ';'

declare @flagAM as bit
set @flagAM = 0
	DECLARE @REF_SEDE as varchar(200)
	SET @REF_SEDE = ''
	IF @RETE = 'F'
		BEGIN
			SET @REF_SEDE  = @REF_SEDE + 'SEIDIREZIONERETE@BANCAFIDEURAM.IT' + @PV;
			SET @REF_SEDE  = @REF_SEDE + 'SEI@BANCAFIDEURAM.IT';
		END
	ELSE IF @RETE = 'S'
		BEGIN
			SET @REF_SEDE  = @REF_SEDE + 'SEIDIREZIONERETE@SPINVEST.COM' + @PV;
			SET @REF_SEDE  = @REF_SEDE + 'SEI@SPINVEST.COM';
		END
--dal 2 sollecito coinvolgo la struttura RETE manageriale
SELECT @flag = 
(CASE 
	WHEN (@TIPOEMAIL in ('2_SOLL_NOMIG','2_SOLL_NOASS','3_SOLL_NOMIG','3_SOLL_NOASS','S_SOLL_NOMIG','S_SOLL_NOASS','REVOCA_NOMIG','REVOCA_NOASS')) THEN 1 
	ELSE 0		
END)

--dal 3 sollecito coinvolgo l'AM
SELECT @flagAM = 
(CASE 
	WHEN (@TIPOEMAIL in ('3_SOLL_NOMIG','3_SOLL_NOASS','S_SOLL_NOMIG','S_SOLL_NOASS','REVOCA_NOMIG','REVOCA_NOASS')) THEN 1 
	ELSE 0		
END)

declare @ritorno as varchar(500)
set @ritorno = ''

IF(@flag=1)
begin
--em.rete,em.codice,
--em.email
	select @ritorno = @ritorno + em.email + @PV
	from
	(
	SELECT rete,rm as codice
	from c6mart.struttura_rete sr
	where Rete = @RETE
	and PB = @CODICE
	and rm <> pb
	union all
	SELECT rete,dm as codice
	from c6mart.struttura_rete sr
	where Rete = @RETE
	and PB = @CODICE
	and dm <> rm
	union all
	SELECT rete,am as codice
	from c6mart.struttura_rete sr
	where Rete = @RETE
	and PB = @CODICE
	and am <> dm
	and @flagAM = 1
	) a
	inner join C6Mart.EMAIL_PB em
	on a.rete = em.rete
	and a.codice = em.codice
end

--dal 3 sollecito coinvolgo anche Direzione ed Assistenza Rete
if(@flagAM=1)
	set @ritorno = @REF_SEDE + @PV + @ritorno

RETURN @ritorno
--RETURN '@NS=' +  cast(@NS as varchar(2)) + '-' + '@flag=' + cast(@flag as varchar(2))+ '-' + '@flagAM=' + cast(@flagAM as varchar(2))
END

--BEGIN
--	DECLARE @CC_DI_RITORNO as varchar(255)
--	SET @CC_DI_RITORNO = @CC;
--	IF @RETE = 'F'
--		BEGIN
--			SET @CC_DI_RITORNO = REPLACE(@CC_DI_RITORNO,'/$EMAIL_DIREZIONE$/','DIREZIONERETE@BANCAFIDEURAM.IT');
--			SET @CC_DI_RITORNO = REPLACE(@CC_DI_RITORNO,'/$EMAIL_ASSISTENZA$/','ASSISTENZARETE@BANCAFIDEURAM.IT');
--		END
--	ELSE IF @RETE = 'S'
--		BEGIN
--			SET @CC_DI_RITORNO = REPLACE(@CC_DI_RITORNO,'/$EMAIL_DIREZIONE$/','DIREZIONERETE@SPINVEST.IT');
--			SET @CC_DI_RITORNO = REPLACE(@CC_DI_RITORNO,'/$EMAIL_ASSISTENZA$/','ASSISTENZARETE@SPINVEST.IT');
--		END
--	RETURN @CC_DI_RITORNO
--END




GO
/****** Object:  UserDefinedFunction [dbo].[CercaTestoInSP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE  FUNCTION [dbo].[CercaTestoInSP]
(
	-- Add the parameters for the function here
	@Testo varchar(255)
)
RETURNS @pippo TABLE 
(
	-- Add the column definitions for the TABLE variable here
	ObjectSQL varchar(255)
)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ValoreParametro VARCHAR(50)

	INSERT INTO @pippo
	select obj.name 
	from sys.sql_modules sqlmod 
	inner join sys.objects obj
		on sqlmod.object_id = obj.object_id
	where definition like '%' + @Testo + '%'

	RETURN 

END
GO
/****** Object:  UserDefinedFunction [dbo].[CodiceAgenteDirettiDi]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[CodiceAgenteDirettiDi] 
(
	-- Add the parameters for the function here
	@CodiceAgente varchar(6)
)
RETURNS varchar(6)
AS
BEGIN
	-- Declare the return variable here

	RETURN REPLACE(REPLACE(@CodiceAgente,'S','0'),'I','0')

END
GO
/****** Object:  UserDefinedFunction [dbo].[Crea_positionID]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Crea_positionID]
(
	@TipoProdotto VARCHAR(5)='',
	@CodInterno VARCHAR(13)='', 
	@CodMAF VARCHAR(13)='', 
	@CodISIN VARCHAR(16)='', 
	@CodSottoprodotto VARCHAR(13)='',
	@CodiceContratto VARCHAR(11)='',
	@NumeroPolizza VARCHAR(11)= '', 
	@Conto VARCHAR(12)= '',
	@Rubricato VARCHAR(4)='',
	@CustodiaGaranzia VARCHAR(1)='',
	@Termid VARCHAR(8)='', 
	@Anno DECIMAL(3)=0, 
	@Prog DECIMAL(9)=0
)
RETURNS VARCHAR(123)
AS
BEGIN
	-- Questa funzione concatena i dati formando una stringa unica
	DECLARE @ResultVar VARCHAR(123)
	DECLARE @t1 VARCHAR(63)
	DECLARE @tp VARCHAR(5)

	DECLARE @t2 VARCHAR(60)
	DECLARE @AnnoS AS VARCHAR(3)
	DECLARE @ProgS AS VARCHAR(9)

	SET @AnnoS = CAST(@Anno AS VARCHAR(3))
	SET @ProgS = CAST(@Prog AS VARCHAR(9))
	
	IF LEN(RTRIM(ISNULL(@Conto, ''))) <12 
		SET @Conto= REPLICATE ( '0' ,12-LEN(RTRIM(ISNULL(@Conto, ''))) ) + RTRIM(ISNULL(@Conto, ''))
	IF LEN(RTRIM(ISNULL(@Rubricato, ''))) <3 
		SET @Rubricato= REPLICATE ( '0' ,3-LEN(RTRIM(ISNULL(@Rubricato, ''))) ) + RTRIM(ISNULL(@Rubricato, ''))
	IF LEN(RTRIM(ISNULL(@CustodiaGaranzia, ''))) <1 
		SET @CustodiaGaranzia= '0' 
	IF LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) <11 
		SET @NumeroPolizza= REPLICATE ( '0' ,11-LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) ) + RTRIM(ISNULL(@NumeroPolizza, ''))
	IF LEN(RTRIM(ISNULL(@Termid, ''))) <8 
		SET @Termid= REPLICATE ( '0' ,8-LEN(RTRIM(ISNULL(@Termid, ''))) ) + RTRIM(ISNULL(@Termid, ''))
	IF LEN(RTRIM(ISNULL(@AnnoS, 0))) <3 
		SET @AnnoS= REPLICATE ( '0' ,3-LEN(RTRIM(ISNULL(@AnnoS, 0))) ) + RTRIM(ISNULL(@AnnoS, 0))
	IF LEN(RTRIM(ISNULL(@ProgS, 0))) <9 
		SET @ProgS= REPLICATE ( '0' ,9-LEN(RTRIM(ISNULL(@ProgS, 0))) ) + RTRIM(ISNULL(@ProgS, 0))
	
	SET @t1= RTRIM(ISNULL(@CodiceContratto,'e'))+RTRIM(ISNULL(@Conto,'e'))+ RTRIM(ISNULL(@Rubricato,'e'))+ 
		RTRIM(ISNULL(@CustodiaGaranzia, 'e'))+ RTRIM(ISNULL(@NumeroPolizza,'e'))+RTRIM(ISNULL(@Termid, 'e'))+
		RTRIM(ISNULL(@AnnoS, 'e'))+RTRIM(ISNULL(@ProgS, 'e'))
	SET @ResultVar = ISNULL(@t1,'1') 

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [dbo].[Crea_positionID_test]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Crea_positionID_test]
(
	@TipoProdotto VARCHAR(5)='',
	@CodInterno VARCHAR(13)='', 
	@CodMAF VARCHAR(13)='', 
	@CodISIN VARCHAR(16)='', 
	@CodSottoprodotto VARCHAR(13)='',
	@CodiceContratto VARCHAR(11)='',
	@NumeroPolizza VARCHAR(11)= '', 
	@Conto VARCHAR(12)= '',
	@Rubricato VARCHAR(4)='',
	@CustodiaGaranzia VARCHAR(1)='',
	@Termid VARCHAR(8)='', 
	@Anno DECIMAL(3)=0, 
	@Prog DECIMAL(9)=0
)
RETURNS VARCHAR(123)
AS
BEGIN
	-- Questa funzione concatena i dati formando una stringa unica
	DECLARE @ResultVar VARCHAR(123)
	DECLARE @t1 VARCHAR(63)
	DECLARE @tp VARCHAR(5)

	DECLARE @t2 VARCHAR(60)
	DECLARE @AnnoS AS VARCHAR(3)
	DECLARE @ProgS AS VARCHAR(9)

	SET @AnnoS = CAST(@Anno AS VARCHAR(3))
	SET @ProgS = CAST(@Prog AS VARCHAR(9))
	
	IF LEN(RTRIM(ISNULL(@Conto, ''))) <12 
		SET @Conto= REPLICATE ( '0' ,12-LEN(RTRIM(ISNULL(@Conto, ''))) ) + RTRIM(ISNULL(@Conto, ''))
	IF LEN(RTRIM(ISNULL(@Rubricato, ''))) <3 
		SET @Rubricato= REPLICATE ( '0' ,3-LEN(RTRIM(ISNULL(@Rubricato, ''))) ) + RTRIM(ISNULL(@Rubricato, ''))
	IF LEN(RTRIM(ISNULL(@CustodiaGaranzia, ''))) <1 
		SET @CustodiaGaranzia= '0' 
	IF LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) <11 
		SET @NumeroPolizza= REPLICATE ( '0' ,11-LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) ) + RTRIM(ISNULL(@NumeroPolizza, ''))
	IF LEN(RTRIM(ISNULL(@Termid, ''))) <8 
		SET @Termid= REPLICATE ( '0' ,8-LEN(RTRIM(ISNULL(@Termid, ''))) ) + RTRIM(ISNULL(@Termid, ''))
	IF LEN(RTRIM(ISNULL(@AnnoS, 0))) <3 
		SET @AnnoS= REPLICATE ( '0' ,3-LEN(RTRIM(ISNULL(@AnnoS, 0))) ) + RTRIM(ISNULL(@AnnoS, 0))
	IF LEN(RTRIM(ISNULL(@ProgS, 0))) <9 
		SET @ProgS= REPLICATE ( '0' ,9-LEN(RTRIM(ISNULL(@ProgS, 0))) ) + RTRIM(ISNULL(@ProgS, 0))
	
	SET @t1= RTRIM(ISNULL(@CodiceContratto,'e'))+RTRIM(ISNULL(@Conto,'e'))+ RTRIM(ISNULL(@Rubricato,'e'))+ 
		RTRIM(ISNULL(@CustodiaGaranzia, 'e'))+ RTRIM(ISNULL(@NumeroPolizza,'e'))+RTRIM(ISNULL(@Termid, 'e'))+
		RTRIM(ISNULL(@AnnoS, 'e'))+RTRIM(ISNULL(@ProgS, 'e'))
	--SET @ResultVar = ISNULL(@t1,'1') 
	SET @ResultVar = '2'

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [dbo].[Crea_positionIDProposta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Crea_positionIDProposta]
(
	@ChiaveCatalogo VARCHAR(35)='',
	@CodiceContratto VARCHAR(11)='',
	@Conto VARCHAR(12)= '',
	@Rubricato VARCHAR(4)='',
	@TipoProdotto VARCHAR(20)='',
	@NumeroPolizza VARCHAR(11)= ''
)

RETURNS VARCHAR(123)
AS
BEGIN

	DECLARE @ResultVar VARCHAR(123)

	DECLARE @CatalogueID VARCHAR(128)
	DECLARE @TitoloPCT VARCHAR(1)
	DECLARE @PCTKEY VARCHAR(20)

	SET @TitoloPCT = '0'
	SET @PCTKEY = REPLICATE('0',20)

	SELECT @CatalogueID = ISNULL(CatalogueID,'CHIAVE CATALOGO NON TROVATA') 
	FROM  c6staging.CATITEMREF catalogo
	WHERE catalogo.OID$  = @ChiaveCatalogo

	IF LEN(RTRIM(ISNULL(@CodiceContratto, ''))) <11 
		SET @CodiceContratto= REPLICATE ( '0' ,11-LEN(RTRIM(ISNULL(@CodiceContratto, ''))) ) + RTRIM(ISNULL(@CodiceContratto, ''))

	IF LEN(RTRIM(ISNULL(@Conto, ''))) <12 
		SET @Conto= REPLICATE ( '0' ,12-LEN(RTRIM(ISNULL(@Conto, ''))) ) + RTRIM(ISNULL(@Conto, ''))

	IF LEN(RTRIM(ISNULL(@Rubricato, ''))) <3 
		SET @Rubricato= REPLICATE ( '0' ,3-LEN(RTRIM(ISNULL(@Rubricato, ''))) ) + RTRIM(ISNULL(@Rubricato, ''))

	IF RTRIM(@TipoProdotto) = 'DT'
		SET @TitoloPCT = '1'

	IF LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) <11 
		SET @NumeroPolizza= REPLICATE ( '0' ,11-LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) ) + RTRIM(ISNULL(@NumeroPolizza, ''))

	SET @ResultVar = @CatalogueID + @CodiceContratto + @Conto + @Rubricato + @TitoloPCT + @NumeroPolizza + @PCTKEY

	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [dbo].[Eta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[Eta] 
(
	-- Add the parameters for the function here
	@dataNascita DATETIME
)
RETURNS INT
AS
BEGIN
	-- Declare the return variable here
	DECLARE @eta INT

	-- Add the T-SQL statements to compute the return value here
	SET @eta = FLOOR(DATEDIFF(day, @dataNascita, GETDATE()) / 365.25)

	-- Return the result of the function
	RETURN @eta

END
GO
/****** Object:  UserDefinedFunction [dbo].[FFCODICEFISCALE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select [dbo].[FFCODICEFISCALE] ('DRGFG','','3333')
CREATE FUNCTION [dbo].[FFCODICEFISCALE]
(@COD_FISCALE varchar(16), @COD_MANDATO varchar(6), @PIVA_FIDUCIARIA varchar(11))
RETURNS varchar(16)
WITH EXEC AS CALLER
AS
BEGIN
DECLARE @cf VARCHAR(16)   
	
	IF (isnull(ltrim(rtrim(@COD_MANDATO)),'') <> '') 
			SET @cf = 'FF@'+ @COD_MANDATO
	ELSE IF (isnull(@COD_FISCALE,'') <> '')
			SET @cf = @COD_FISCALE
		 ELSE
	    	SET @cf = @PIVA_FIDUCIARIA	
	    	
	RETURN @cf
END
GO
/****** Object:  UserDefinedFunction [dbo].[FFPIVA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select [dbo].[FFPIVA] ('gg','3333')
CREATE FUNCTION [dbo].[FFPIVA]
(@COD_MANDATO varchar(6), @PIVA_FIDUCIARIA varchar(11))
RETURNS varchar(16)
WITH EXEC AS CALLER
AS
BEGIN
DECLARE @piva VARCHAR(16)   
	
	IF (isnull(ltrim(rtrim(@COD_MANDATO)),'') <> '') 
			SET @piva = @PIVA_FIDUCIARIA
	ELSE  
	    	SET @piva = ''	
	    	
	RETURN @piva
END
GO
/****** Object:  UserDefinedFunction [dbo].[FormatDate_Testo_Lettera_Benvenuto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[FormatDate_Testo_Lettera_Benvenuto]
(
	@DATA as datetime
)
RETURNS varchar(20)
AS
BEGIN

DECLARE @FORMATDATA as varchar(20)
DECLARE @GIORNO as varchar(2)
DECLARE @MESE as varchar(10) 
DECLARE @ANNO AS VARCHAR (4)

SET @GIORNO = day(@DATA);
SET @ANNO   = year(@DATA);
--
if month(@DATA) = '01'
	set @MESE = 'Gennaio';
if month(@DATA) = '02'
	set @MESE = 'Febbraio';
if month(@DATA) = '03'
	set @MESE = 'Marzo';
if month(@DATA) = '04'
	set @MESE = 'Aprile';
if month(@DATA) = '05'
	set @MESE = 'Maggio';
if month(@DATA) = '06'
	set @MESE = 'Giugno';
if month(@DATA) = '07'
	set @MESE = 'Luglio';
if month(@DATA) = '08'
	set @MESE = 'Agosto';
if month(@DATA) = '09'
	set @MESE = 'Settembre';
if month(@DATA) = '10'
	set @MESE = 'Ottobre';
if month(@DATA) = '11'
	set @MESE = 'Novembre';
if month(@DATA) = '12'
	set @MESE = 'Dicembre';
--LANGUAGE Italian
SET @FORMATDATA = @GIORNO + ' ' + @MESE + ' ' + @ANNO;

    RETURN @FORMATDATA
END

GO
/****** Object:  UserDefinedFunction [dbo].[GeneraChiaveContratto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GeneraChiaveContratto]
(
@TipoProdotto varchar(5)='',
@CodInterno varchar(13)='', @CodMAF varchar(13)='', @CodISIN varchar(16)='', @CodSottoprodotto varchar(13)='',
@CodiceContratto varchar(11)='',@NumeroPolizza  varchar(11)= '', @Conto  varchar(12)= '',
@Rubricato  varchar(4)='',@CustodiaGaranzia  varchar(1)='',
@Termid varchar(8)='', @Anno decimal(3)=0, @Prog decimal(9)=0

)
RETURNS varchar(123)
AS
BEGIN
	-- Questa funzione concatena i dati dormando una stringa unica
		DECLARE @ResultVar  VARCHAR(123)
		DECLARE @t1 VARCHAR(63)
		DECLARE @tp VARCHAR(5)
	
		DECLARE @t2 VARCHAR(60)
		declare @AnnoS as varchar(3)
		declare @ProgS as varchar(9)
		set @AnnoS = cast(@Anno as varchar(3))
		set @ProgS = cast(@Prog as varchar(9))
		
		set @t2= '@'+ rtrim(isnull(@CodInterno, '')) +   rtrim(isnull(@CodMAF, '')) + rtrim(isnull(@CodISIN, '')) + rtrim(isnull(@CodSottoprodotto, ''))
		set @tp  = rtrim(@TipoProdotto)+ '@'

		if len(rtrim(isnull(@Conto, ''))) <12 set @Conto= REPLICATE ( '0' ,12-len(rtrim(isnull(@Conto, ''))) ) +rtrim(isnull(@Conto, ''))
		if len(rtrim(isnull(@Rubricato, ''))) <3 set @Rubricato= REPLICATE ( '0' ,3-len(rtrim(isnull(@Rubricato, ''))) ) +rtrim(isnull(@Rubricato, ''))
		if len(rtrim(isnull(@CustodiaGaranzia, ''))) <1 set @CustodiaGaranzia= '0' 
		if len(rtrim(isnull(@NumeroPolizza, ''))) <11 set @NumeroPolizza= REPLICATE ( '0' ,11-len(rtrim(isnull(@NumeroPolizza, ''))) ) +rtrim(isnull(@NumeroPolizza, ''))
		if len(rtrim(isnull(@Termid, ''))) <8 set @Termid= REPLICATE ( '0' ,8-len(rtrim(isnull(@Termid, ''))) ) +rtrim(isnull(@Termid, ''))
		if len(rtrim(isnull(@AnnoS, 0))) <3 set @AnnoS= REPLICATE ( '0' ,3-len(rtrim(isnull(@AnnoS, 0))) ) +rtrim(isnull(@AnnoS, 0))
		if len(rtrim(isnull(@ProgS, 0))) <9 set @ProgS= REPLICATE ( '0' ,9-len(rtrim(isnull(@ProgS, 0))) ) +rtrim(isnull(@ProgS, 0))
				
		set @t1= rtrim(isnull(@CodiceContratto,'e'))+rtrim(isnull(@Conto,'e'))+ rtrim(isnull(@Rubricato,'e'))+ 
			rtrim(isnull(@CustodiaGaranzia, 'e'))+ rtrim(isnull(@NumeroPolizza,'e'))+rtrim(isnull(@Termid, 'e'))+
			rtrim(isnull(@AnnoS, 'e'))+rtrim(isnull(@ProgS, 'e'))
		set @ResultVar = isnull(@tp,'tp')  +isnull(@t1,'1') + isnull(@t2,'2')

	-- Return the result of the function
	RETURN @ResultVar
END






GO
/****** Object:  UserDefinedFunction [dbo].[GeneraPositionID]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GeneraPositionID]
(
	@TipoProdotto VARCHAR(5)='',
	@CodInterno VARCHAR(13)='', 
	@CodMAF VARCHAR(13)='', 
	@CodISIN VARCHAR(16)='', 
	@CodSottoprodotto VARCHAR(13)='',
	@CodiceContratto VARCHAR(11)='',
	@NumeroPolizza  VARCHAR(11)= '', 
	@Conto  VARCHAR(12)= '',
	@Rubricato  VARCHAR(4)='',
	@CustodiaGaranzia  VARCHAR(1)='',
	@Termid VARCHAR(8)='', 
	@Anno DECIMAL(3)=0, 
	@Prog DECIMAL(9)=0
)
RETURNS VARCHAR(123)
AS
BEGIN
	-- Questa funzione concatena i dati formando una stringa unica
	DECLARE  @ResultVar VARCHAR(123)
	DECLARE  @t1 VARCHAR(63)
	DECLARE  @tp VARCHAR(5)

	DECLARE  @t2 VARCHAR(60)
	DECLARE  @AnnoS VARCHAR(3)
	DECLARE  @ProgS VARCHAR(9)
	
	SET @AnnoS = cast(@Anno AS VARCHAR(3))
	SET @ProgS = cast(@Prog AS VARCHAR(9))
	
	IF LEN(RTRIM(ISNULL(@Conto, ''))) <12 
		SET @Conto= REPLICATE ( '0' ,12 - LEN(RTRIM(ISNULL(@Conto, ''))) ) +RTRIM(ISNULL(@Conto, ''))
	IF LEN(RTRIM(ISNULL(@Rubricato, ''))) <3 
		SET @Rubricato= REPLICATE ( '0' ,3 - LEN(RTRIM(ISNULL(@Rubricato, ''))) ) +RTRIM(ISNULL(@Rubricato, ''))
	IF LEN(RTRIM(ISNULL(@CustodiaGaranzia, ''))) <1 
		SET @CustodiaGaranzia= '0' 
	IF LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) <11 
		SET @NumeroPolizza= REPLICATE ( '0' ,11 - LEN(RTRIM(ISNULL(@NumeroPolizza, ''))) ) +RTRIM(ISNULL(@NumeroPolizza, ''))
	IF LEN(RTRIM(ISNULL(@Termid, ''))) <8 
		SET @Termid= REPLICATE ( '0' ,8 - LEN(RTRIM(ISNULL(@Termid, ''))) ) +RTRIM(ISNULL(@Termid, ''))
	IF LEN(RTRIM(ISNULL(@AnnoS, 0))) <3 
		SET @AnnoS= REPLICATE ( '0' ,3 - LEN(RTRIM(ISNULL(@AnnoS, 0))) ) +RTRIM(ISNULL(@AnnoS, 0))
	IF LEN(RTRIM(ISNULL(@ProgS, 0))) <9 
		SET @ProgS= REPLICATE ( '0' ,9 - LEN(RTRIM(ISNULL(@ProgS, 0))) ) +RTRIM(ISNULL(@ProgS, 0))
	
	SET @t1= 
		RTRIM(ISNULL(@CodiceContratto,'e'))+
		RTRIM(ISNULL(@Conto,'e'))+ 
		RTRIM(ISNULL(@Rubricato,'e'))+ 
		RTRIM(ISNULL(@CustodiaGaranzia, 'e'))+ 
		RTRIM(ISNULL(@NumeroPolizza,'e'))+
		RTRIM(ISNULL(@Termid, 'e'))+
		RTRIM(ISNULL(@AnnoS, 'e'))+
		RTRIM(ISNULL(@ProgS, 'e'))

	SET @ResultVar =  ISNULL(@t1,'1') 

	-- Return the result of the function
	RETURN @ResultVar

END


GO
/****** Object:  UserDefinedFunction [dbo].[getAppellativo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[getAppellativo]
(
	-- Add the parameters for the function here
	@Sesso varchar(1),
	@Cod_fiscale varchar(16)
)
RETURNS VARCHAR(150)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @Appellativo VARCHAR(150)
	
	IF(LEN(@Cod_fiscale) = 16 AND CHARINDEX('@',@Cod_fiscale) = 0)
		BEGIN
			IF(@Sesso = 'F')
				SET @Appellativo = 'Gent. Sig.ra'
				--SET @Appellativo = 'Gentile signora'
			ELSE
				SET @Appellativo = 'Egr. Sig.'
				--SET @Appellativo = 'Gentile signore'
		END
	ELSE    
	SET @Appellativo = 'Spett.le' 
    --SET @Appellativo = 'Spettabile'
 
	-- Return the result of the function
	RETURN @Appellativo

END
GO
/****** Object:  UserDefinedFunction [dbo].[GetFeriale]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[GetFeriale] (@InputDate DATE)
RETURNS DATE
AS
BEGIN
    DECLARE @NextWorkingDay DATE = @InputDate;

    -- Controllo se il giorno è festivo o weekend
    WHILE EXISTS (
        SELECT 1 
        FROM Holidays 
        WHERE HolidayDate = @NextWorkingDay
    )
    OR DATEPART(WEEKDAY, @NextWorkingDay) IN (1, 7) -- 1 = Domenica, 7 = Sabato
    BEGIN
        -- Se è festivo o weekend, passa al giorno successivo
        SET @NextWorkingDay = DATEADD(DAY, 1, @NextWorkingDay);
    END

    RETURN @NextWorkingDay;
END;
GO
/****** Object:  UserDefinedFunction [dbo].[getFiduciariaByCodMand]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[getFiduciariaByCodMand]
(@codMand varchar(6))
RETURNS varchar(10)
WITH EXEC AS CALLER
AS
BEGIN
DECLARE @fiduciaria VARCHAR(10)

	SELECT
		@fiduciaria = CODBREVE
	FROM
		C6stagingperiodico.WMANDATI
	WHERE
		CODMAND = @codMand

	RETURN @fiduciaria + '@' + @codMand
END
GO
/****** Object:  UserDefinedFunction [dbo].[getNumSollecitiNOASS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[getNumSollecitiNOASS]
(
	-- {1,2,3,S}
	@TipoSollecito char
)
RETURNS smallint
AS
BEGIN
	DECLARE @numSoll smallint
	DECLARE @NUMGIORNIDASOLLECITO smallint
	set @numSoll = 0
	SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7
	DECLARE @TipoNumSoll smallint
		if (@TipoSollecito = '1' or @TipoSollecito = '2' or @TipoSollecito = '3') 
			BEGIN
				SET @tipoNumSoll = CAST(@TipoSollecito as smallint)
				select @numSoll =  count(*) from c6mart.contrattosei c6 where numSolleciti = @tipoNumSoll -1 and c6.clienteMigrato = 'S' and c6.risorseNA = 'S' and DATEDIFF(day,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDASOLLECITO * @tipoNumSoll
			END
		if @TipoSollecito = 'S'
			BEGIN
				select @numSoll =  count(*) from c6mart.contrattosei c6 where numSolleciti > 2 and c6.clienteMigrato = 'S' and c6.risorseNA = 'S'and DATEDIFF(day,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDASOLLECITO * (numSolleciti + 1)
			END
		
	
	RETURN @numSoll

END
GO
/****** Object:  UserDefinedFunction [dbo].[getNumSollecitiNOMIG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[getNumSollecitiNOMIG]
(
	-- {1,2,3,S}
	@TipoSollecito char
)
RETURNS smallint
AS
BEGIN

	DECLARE @numSoll smallint
	DECLARE @NUMGIORNIDASOLLECITO smallint
	DECLARE @TipoNumSoll smallint
	
	SET @numSoll = 0
	SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7


	IF (@TipoSollecito = '1' or @TipoSollecito = '2' or @TipoSollecito = '3') 
		BEGIN
			SET @tipoNumSoll = CAST(@TipoSollecito as smallint)
			select @numSoll =  count(*) 
			from c6mart.contrattosei c6 
			where	
				numSolleciti = @tipoNumSoll -1 and 
				c6.clienteMigrato = 'N' and 
				DATEDIFF(day,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDASOLLECITO * @tipoNumSoll
		END

	IF @TipoSollecito = 'S'
		BEGIN
			select @numSoll =  count(*) 
			from c6mart.contrattosei c6 
			where 
				numSolleciti > 2 and 
				c6.clienteMigrato = 'N' and 
				DATEDIFF(day,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDASOLLECITO * (numSolleciti + 1)
		END
		
	
	RETURN @numSoll

END

GO
/****** Object:  UserDefinedFunction [dbo].[getParametro]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION [dbo].[getParametro]
(
	-- Add the parameters for the function here
	@NomeParametro varchar(255)
)
RETURNS VARCHAR(255)
AS
BEGIN
	-- Declare the return variable here
	DECLARE @ValoreParametro VARCHAR(255)

	SELECT	@ValoreParametro=Valore
	FROM	dbo.GESTIONE_C6Parametri
	WHERE	Nome=@NomeParametro

	-- Return the result of the function
	RETURN @ValoreParametro

END
GO
/****** Object:  UserDefinedFunction [dbo].[Info_DaProdottoCSaCatalogo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Info_DaProdottoCSaCatalogo]
(
	@TipoProdotto varchar(5),
	@CodInterno varchar(13),
	@CodMAF varchar(13),
	@CodISIN varchar(16),
	@CodSottoprodotto varchar(13)
)
RETURNS varchar(63)
AS
BEGIN
	-- Declare the return variable here
		DECLARE @ResultVar  VARCHAR(63)

	-- Add the T-SQL statements to compute the return value here
	IF @TipoProdotto in ('FI', 'GE', 'ASU1', 'ASVI', 'ASCM', 'AC' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
	ORDER BY ISVISIBLE DESC
-- aggiunta skandia tringali
	IF @TipoProdotto in ('ASUL') and @codisin <>''
	SELECT TOP 1 @ResultVar = CATALOGUEID FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
    and cat.COD_adeguatezza = (case rtrim(isnull(@CodIsin,'')) when '' then '$' else @CodIsin end)
    and cat.COD_maf = (case rtrim(isnull(@Codmaf,'')) when '' then '$' else @Codmaf end)
	ORDER BY ISVISIBLE DESC
-- aggiunta asul tringali
	IF @TipoProdotto in ('ASUL') and @codisin  = ''
	SELECT TOP 1 @ResultVar = CATALOGUEID FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) 
    and cat.COD_SOTTOPRODOTTO= (case rtrim(isnull(@CodSottoprodotto,'')) when '' then '$' else @CodSottoprodotto end)
    --and cat.COD_adeguatezza = (case rtrim(isnull(@CodIsin,'')) when '' then '$' else @CodIsin end)
    --and cat.COD_maf = (case rtrim(isnull(@Codmaf,'')) when '' then '$' else @Codmaf end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('DT','ASD' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end)
	ORDER BY ISVISIBLE DESC

	IF @TipoProdotto in ('GES' ) 
	SELECT TOP 1 @ResultVar = CATALOGUEID FROM C6Staging.CATITEMREF cat
	where 1=1 and cat.COD_INTERNO = (case rtrim(isnull(@CodInterno,'')) when '' then '$' else @CodInterno end) and cat.COD_MAF=(case rtrim(isnull(@CodMAF,'')) when '' then '$' else @CodMAF end)
	ORDER BY ISVISIBLE DESC



	-- Return the result of the function
	RETURN @ResultVar
END
GO
/****** Object:  UserDefinedFunction [dbo].[RegExIsMatch]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE FUNCTION [dbo].[RegExIsMatch](@Pattern [nvarchar](4000), @Input [nvarchar](max), @Options [int])
RETURNS [bit] WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [RegExFunction].[SimpleTalk.Phil.Factor.RegularExpressionFunctions].[RegExIsMatch]
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Firma_Lettera_Benvenuto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Replace_Firma_Lettera_Benvenuto]
(
	@TESTO as TEXT = ''
)
RETURNS varchar(5000)
AS
BEGIN

	DECLARE @TESTO_DI_RITORNO as varchar(5000)
	SET @TESTO_DI_RITORNO = @TESTO
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\r\n',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\t',char(8));
	
    RETURN @TESTO_DI_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_From_Email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[Replace_From_Email]
(
	@RETE as varchar(1) = '',
	@FROM as varchar(100) = ''
)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @FROM_DI_RITORNO as varchar(255)
	SET @FROM_DI_RITORNO = @FROM;
	IF @RETE = 'S'
		BEGIN
			SET @FROM_DI_RITORNO = REPLACE(@FROM_DI_RITORNO,'/$SERVIZIO_CONTRATTO6$/','Servizio.ContrattoSEI@Spinvest.com');
		END
		--immissione rete iwb
	IF @RETE = 'W'
		BEGIN
			SET @FROM_DI_RITORNO = REPLACE(@FROM_DI_RITORNO,'/$SERVIZIO_CONTRATTO6$/','Servizio.ContrattoSEI@iwprivateinvestments.it');
		END
	ELSE
		BEGIN
			--modifica del 16/3/2017 su richiesta di Casoli - Modifica dellindirizzo
			--SET @FROM_DI_RITORNO = REPLACE(@FROM_DI_RITORNO,'/$SERVIZIO_CONTRATTO6$/','Servizio.ContrattoSEI@BancaFideuram.it');
			SET @FROM_DI_RITORNO = REPLACE(@FROM_DI_RITORNO,'/$SERVIZIO_CONTRATTO6$/','Servizio.ContrattoSEI@Fideuram.it');
			-- fine modifica del 16/3/2017
		END
	RETURN @FROM_DI_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_From_Email_20170316]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Replace_From_Email_20170316]
(
	@RETE as varchar(1) = '',
	@FROM as varchar(100) = ''
)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @FROM_DI_RITORNO as varchar(255)
	SET @FROM_DI_RITORNO = @FROM;
	IF @RETE = 'S'
		BEGIN
			SET @FROM_DI_RITORNO = REPLACE(@FROM_DI_RITORNO,'/$SERVIZIO_CONTRATTO6$/','Servizio.ContrattoSEI@Spinvest.com');
		END
	ELSE
		BEGIN
			SET @FROM_DI_RITORNO = REPLACE(@FROM_DI_RITORNO,'/$SERVIZIO_CONTRATTO6$/','Servizio.ContrattoSEI@BancaFideuram.it');
		END
	RETURN @FROM_DI_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Oggetto_Lettera_Benvenuto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Replace_Oggetto_Lettera_Benvenuto]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@COGNOME as varchar(20) = '',
	@NOME as varchar(20) = '',
	@TESTO as TEXT = '',
	@TIPOREPORT as varchar(20)
)
RETURNS varchar(5000)
AS
BEGIN

	DECLARE @TESTO_DI_RITORNO as varchar(5000)
	SET @TESTO_DI_RITORNO = @TESTO
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\r\n',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\t',char(8));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$codiceContratto$/',@CODICE_CONTRATTO);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$cognome$/',@COGNOME);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$nome$/',@NOME);

	IF (@TIPOREPORT = 'DIAGNOSI')
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$tipo$/','<B>Report di Diagnosi Sei</B>') 
	
	IF (@TIPOREPORT = 'MONITORAGGIO')
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$tipo$/','<B>Report di Monitoraggio Sei</B>') 

	

    RETURN @TESTO_DI_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Subject_Email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Replace_Subject_Email]
(
	@SUBJECT as varchar(255),
	@NOME_CLIENTE as varchar(50) = '', 
	@COGNOME_CLIENTE as varchar(50) = '', 
	@NOME_PB as varchar(50) = '', 
	@COGNOME_PB as varchar(50) = '', 
	@CODICE_PB as varchar(50) = '',
	@TIP_CONTRATTO as int = -1
)
RETURNS varchar(5000)
AS
BEGIN 
	DECLARE @SUBJECT_RITORNO as varchar(5000);

	DECLARE @TIP_CONTRATTO_TEXT as nvarchar(20)
	SET @TIP_CONTRATTO_TEXT = case @TIP_CONTRATTO when 1 then 'Sei' when 2 then 'Sei Versione Private' else 'Sei' end

	SET @SUBJECT_RITORNO = @SUBJECT;
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_CLIENTE$/',isnull(@NOME_CLIENTE,'--NOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_CLIENTE$/',isnull(@COGNOME_CLIENTE,'--COGNOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'--NOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'--COGNOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$CODICE_PB$/',isnull(@CODICE_PB,'--CODICE PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$TIP_CONTRATTO$/',isnull(@TIP_CONTRATTO_TEXT,'--TIP CONTRATTO--'));
  
	--RETURN 'rettifica mailing informativo'
	RETURN @SUBJECT_RITORNO
END

GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Subject_Email_20161021]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Replace_Subject_Email_20161021]
(
	@SUBJECT as varchar(255),
	@NOME_CLIENTE as varchar(50) = '', 
	@COGNOME_CLIENTE as varchar(50) = '', 
	@NOME_PB as varchar(50) = '', 
	@COGNOME_PB as varchar(50) = '', 
	@CODICE_PB as varchar(50) = ''
)
RETURNS varchar(5000)
AS
BEGIN 
	DECLARE @SUBJECT_RITORNO as varchar(5000);
	SET @SUBJECT_RITORNO = @SUBJECT;
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_CLIENTE$/',isnull(@NOME_CLIENTE,'--NOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_CLIENTE$/',isnull(@COGNOME_CLIENTE,'--COGNOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'--NOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'--COGNOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$CODICE_PB$/',isnull(@CODICE_PB,'--CODICE PB NP--'));
    
	--RETURN 'rettifica mailing informativo'
	RETURN @SUBJECT_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Subject_Email_Periodico]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[Replace_Subject_Email_Periodico]
(
	@SUBJECT as varchar(255),
	@NOME_CLIENTE as varchar(50) = '', 
	@COGNOME_CLIENTE as varchar(50) = '', 
	@NOME_PB as varchar(50) = '', 
	@COGNOME_PB as varchar(50) = '', 
	@CODICE_PB as varchar(50) = ''
)
RETURNS varchar(5000)
AS
BEGIN 
	DECLARE @SUBJECT_RITORNO as varchar(5000);
	SET @SUBJECT_RITORNO = @SUBJECT;
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_CLIENTE$/',isnull(@NOME_CLIENTE,'--NOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_CLIENTE$/',isnull(@COGNOME_CLIENTE,'--COGNOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'--NOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'--COGNOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$CODICE_PB$/',isnull(@CODICE_PB,'--CODICE PB NP--'));
    
	--RETURN 'rettifica mailing informativo'
	RETURN @SUBJECT_RITORNO
END

GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Subject_Email_test]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE FUNCTION [dbo].[Replace_Subject_Email_test]
(
	@SUBJECT as varchar(255),
	@NOME_CLIENTE as varchar(50) = '', 
	@COGNOME_CLIENTE as varchar(50) = '', 
	@NOME_PB as varchar(50) = '', 
	@COGNOME_PB as varchar(50) = '', 
	@CODICE_PB as varchar(50) = '',
	@TIP_CONTRATTO as int = -1
)
RETURNS varchar(5000)
AS
BEGIN 
	DECLARE @SUBJECT_RITORNO as varchar(5000);

	DECLARE @TIP_CONTRATTO_TEXT as nvarchar(20)
	SET @TIP_CONTRATTO_TEXT = case @TIP_CONTRATTO when 1 then 'Sei' when 2 then 'Sei Versione Private' when 3 then '' else 'Sei' end

	SET @SUBJECT_RITORNO = @SUBJECT;
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_CLIENTE$/',isnull(@NOME_CLIENTE,'--NOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_CLIENTE$/',isnull(@COGNOME_CLIENTE,'--COGNOME CLIENTE NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'--NOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'--COGNOME PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$CODICE_PB$/',isnull(@CODICE_PB,'--CODICE PB NP--'));
	SET @SUBJECT_RITORNO = REPLACE(@SUBJECT_RITORNO,'/$TIP_CONTRATTO$/',isnull(@TIP_CONTRATTO_TEXT,'--TIP CONTRATTO--'));
  
	--RETURN 'rettifica mailing informativo'
	RETURN @SUBJECT_RITORNO
END


GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Replace_Testo_Email]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@CODICE_FISCALE as varchar(16) = '',
	@COGNOME_CLIENTE as varchar(20) = '',
	@NOME_CLIENTE as varchar(20) = '',
	@CODICE_PB as varchar(6) = '',
	@COGNOME_PB as varchar(20) = '',
	@NOME_PB as varchar(20) = '',
	@DATA_PERFEZIONAMENTO as datetime = null,
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@PERC_RNA as varchar(3),
	@TIP_CONTRATTO as int = -1,
	@DATA_REVOCA_CONTRATTO as datetime = '2001-01-01',
	@DATA_SOTTOSCRIZIONE_CONTRATTO as datetime = '2001-01-01',
	@RETE AS NVARCHAR(5) = 'S',
	@TESTO as TEXT = ''



)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	DECLARE @TIPO_REPORT_D as varchar(100)
	DECLARE @TIPO_REPORT_M as varchar(100)
  DECLARE @CODMAN AS VARCHAR(6)
	
	DECLARE @TIP_CONTRATTO_TEXT as nvarchar(20)
	SET @TIP_CONTRATTO_TEXT = case @TIP_CONTRATTO when 1 then 'Sei' when 2 then 'Sei Versione Private' else 'Sei' end

	DECLARE @RETE_TEXT as nvarchar(20)
	SET @RETE_TEXT = case @RETE when 'F' then 'Fideuram' else 'SanPaolo Invest' end

	IF @FREQUENZA_MONITOR is null
		BEGIN
			SET @TIPO_REPORT_M = '';
			SET @FREQUENZA_MONITOR = '';
		END
	ELSE
		BEGIN
			SET @TIPO_REPORT_M = 'Monitoraggio';
			if @FREQUENZA_MONITOR = 'T'
				SET @FREQUENZA_MONITOR = 'Trimestrale';
			if @FREQUENZA_MONITOR = 'S'
				SET @FREQUENZA_MONITOR = 'Semestrale';
			if @FREQUENZA_MONITOR = 'A'
				SET @FREQUENZA_MONITOR = 'Annuale';
			SET @TIPO_REPORT_M = 'Report ' +@TIPO_REPORT_M + ' ' + @FREQUENZA_MONITOR;
	END


	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @TIPO_REPORT_D = '';
			SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			SET @TIPO_REPORT_D = 'Diagnosi';
			if @FREQUENZA_DIAGN = 'T'
				SET @FREQUENZA_DIAGN = 'Trimestrale';
			if @FREQUENZA_DIAGN = 'S'
				SET @FREQUENZA_DIAGN = 'Semestrale';
			if @FREQUENZA_DIAGN = 'A'
				SET @FREQUENZA_DIAGN = 'Annuale';
			SET @TIPO_REPORT_D = 'Report ' + @TIPO_REPORT_D + ' ' + @FREQUENZA_DIAGN;
		END
	
	-- modifica del 10/3/2017 per gestire codici mandato maggiori di 4 caratteri (tt T-1933818-K3C4)
	   --SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,4) ELSE '' END 
	   SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,LEN(rtrim(@CODICE_FISCALE))-3) ELSE '' END
    -- fine modifica del 10/3/2017 per gestire codici mandato maggiori di 4 caratteri (tt T-1933818-K3C4)
	
	SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_CONTRATTO$/',@CODICE_CONTRATTO);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_FISCALE$/',@CODICE_FISCALE);
	IF (@CODMAN = '') 
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE)
	ELSE
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE + '-' + @CODMAN)

		--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_REVOCA_CONTRATTO$/',dbo.ToShortDateString(@DATA_REVOCA_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_SOTTOSCRIZIONE_CONTRATTO$/',dbo.ToShortDateString(@DATA_SOTTOSCRIZIONE_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIP_CONTRATTO$/',isnull(@TIP_CONTRATTO_TEXT,'--TIP CONTRATTO--'));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$RETE$/',isnull(@RETE_TEXT,'--RETE--'));


	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_CLIENTE$/',@NOME_CLIENTE);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_PB$/',@CODICE_PB);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$PERC_LIMITE_RNA$/',@PERC_RNA);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'/$COGNOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'/$NOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_monitoraggio$/',@TIPO_REPORT_M);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_diagnosi$/',@TIPO_REPORT_D);


	
	if not @DATA_PERFEZIONAMENTO is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_PERFEZIONAMENTO$/',dbo.ToShortDateString(@DATA_PERFEZIONAMENTO));
			--V Condizione aggiunta per evitare il fatto che sulla mail non compaia una data di generazione del report antecedente alla data attuale
			IF ((@DATA_PERFEZIONAMENTO + 15) < getdate()) 
				
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(GETDATE() + 1)); 
				ELSE 
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(dateadd(day,cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint),@DATA_PERFEZIONAMENTO)));
			--
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GG_DA_PERF$/',cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,
									'/$DATA_REVOCA_CONTRATTO$/',
									dbo.ToShortDateString(
										dateadd(
											day,(
												(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
												 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
												 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
											 	 @DATA_PERFEZIONAMENTO)));
	end

  RETURN @TESTO_DI_RITORNO

END


GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_20161021]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[Replace_Testo_Email_20161021]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@CODICE_FISCALE as varchar(16) = '',
	@COGNOME_CLIENTE as varchar(20) = '',
	@NOME_CLIENTE as varchar(20) = '',
	@CODICE_PB as varchar(6) = '',
	@COGNOME_PB as varchar(20) = '',
	@NOME_PB as varchar(20) = '',
	@DATA_PERFEZIONAMENTO as datetime = null,
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@PERC_RNA as varchar(3),
	@TESTO as TEXT = ''
)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	DECLARE @TIPO_REPORT_D as varchar(100)
	DECLARE @TIPO_REPORT_M as varchar(100)
    DECLARE @CODMAN AS VARCHAR(6)
	
	IF @FREQUENZA_MONITOR is null
		BEGIN
			SET @TIPO_REPORT_M = '';
			SET @FREQUENZA_MONITOR = '';
		END
	ELSE
		BEGIN
			SET @TIPO_REPORT_M = 'Monitoraggio';
			if @FREQUENZA_MONITOR = 'T'
				SET @FREQUENZA_MONITOR = 'Trimestrale';
			if @FREQUENZA_MONITOR = 'S'
				SET @FREQUENZA_MONITOR = 'Semestrale';
			if @FREQUENZA_MONITOR = 'A'
				SET @FREQUENZA_MONITOR = 'Annuale';
			SET @TIPO_REPORT_M = 'Report ' +@TIPO_REPORT_M + ' ' + @FREQUENZA_MONITOR;
	END


	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @TIPO_REPORT_D = '';
			SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			SET @TIPO_REPORT_D = 'Diagnosi';
			if @FREQUENZA_DIAGN = 'T'
				SET @FREQUENZA_DIAGN = 'Trimestrale';
			if @FREQUENZA_DIAGN = 'S'
				SET @FREQUENZA_DIAGN = 'Semestrale';
			if @FREQUENZA_DIAGN = 'A'
				SET @FREQUENZA_DIAGN = 'Annuale';
			SET @TIPO_REPORT_D = 'Report ' + @TIPO_REPORT_D + ' ' + @FREQUENZA_DIAGN;
		END
	SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,4) ELSE '' END 
	SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_CONTRATTO$/',@CODICE_CONTRATTO);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_FISCALE$/',@CODICE_FISCALE);
	IF (@CODMAN = '') 
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE)
	ELSE
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE + '-' + @CODMAN)
		
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_CLIENTE$/',@NOME_CLIENTE);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_PB$/',@CODICE_PB);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$PERC_LIMITE_RNA$/',@PERC_RNA);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'/$COGNOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'/$NOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_monitoraggio$/',@TIPO_REPORT_M);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_diagnosi$/',@TIPO_REPORT_D);
	
	if not @DATA_PERFEZIONAMENTO is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_PERFEZIONAMENTO$/',dbo.ToShortDateString(@DATA_PERFEZIONAMENTO));
			--V Condizione aggiunta per evitare il fatto che sulla mail non compaia una data di generazione del report antecedente alla data attuale
			IF ((@DATA_PERFEZIONAMENTO + 15) < getdate()) 
				
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(GETDATE() + 1)); 
				ELSE 
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(dateadd(day,cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint),@DATA_PERFEZIONAMENTO)));
			--
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GG_DA_PERF$/',cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,
									'/$DATA_REVOCA_CONTRATTO$/',
									dbo.ToShortDateString(
										dateadd(
											day,(
												(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
												 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
												 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
											 	 @DATA_PERFEZIONAMENTO)));
	end

--SET @TESTO_DI_RITORNO = 'Si avvisa di non considerare le mail informative pervenute oggi da ServizioContrattoSEI, in quanto erroneamente inviate a causa di un problema tecnico.<BR><BR>Grazie'
--
--IF @CODICE_PB = '005050'
--	SET @TESTO_DI_RITORNO = 'Si avvisa di non considerare le mail informative pervenute oggi da ServizioContrattoSEI per i clienti di seguito indicati:<BR><BR>CLDLRD25R08D803H<BR>CLDPRZ61H19D803Z<BR>FRTFNC50B03C632M<BR><BR>in quanto erroneamente inviate a causa di un problema tecnico.<BR><BR>Grazie'


    RETURN @TESTO_DI_RITORNO



END

GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_20170310]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[Replace_Testo_Email_20170310]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@CODICE_FISCALE as varchar(16) = '',
	@COGNOME_CLIENTE as varchar(20) = '',
	@NOME_CLIENTE as varchar(20) = '',
	@CODICE_PB as varchar(6) = '',
	@COGNOME_PB as varchar(20) = '',
	@NOME_PB as varchar(20) = '',
	@DATA_PERFEZIONAMENTO as datetime = null,
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@PERC_RNA as varchar(3),
	@TIP_CONTRATTO as int = -1,
	@DATA_REVOCA_CONTRATTO as datetime = '2001-01-01',
	@DATA_SOTTOSCRIZIONE_CONTRATTO as datetime = '2001-01-01',
	@RETE AS NVARCHAR(5) = 'S',
	@TESTO as TEXT = ''



)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	DECLARE @TIPO_REPORT_D as varchar(100)
	DECLARE @TIPO_REPORT_M as varchar(100)
  DECLARE @CODMAN AS VARCHAR(6)
	
	DECLARE @TIP_CONTRATTO_TEXT as nvarchar(20)
	SET @TIP_CONTRATTO_TEXT = case @TIP_CONTRATTO when 1 then 'Sei' when 2 then 'Sei Versione Private' else 'Sei' end

	DECLARE @RETE_TEXT as nvarchar(20)
	SET @RETE_TEXT = case @RETE when 'F' then 'Fideuram' else 'SanPaolo Invest' end

	IF @FREQUENZA_MONITOR is null
		BEGIN
			SET @TIPO_REPORT_M = '';
			SET @FREQUENZA_MONITOR = '';
		END
	ELSE
		BEGIN
			SET @TIPO_REPORT_M = 'Monitoraggio';
			if @FREQUENZA_MONITOR = 'T'
				SET @FREQUENZA_MONITOR = 'Trimestrale';
			if @FREQUENZA_MONITOR = 'S'
				SET @FREQUENZA_MONITOR = 'Semestrale';
			if @FREQUENZA_MONITOR = 'A'
				SET @FREQUENZA_MONITOR = 'Annuale';
			SET @TIPO_REPORT_M = 'Report ' +@TIPO_REPORT_M + ' ' + @FREQUENZA_MONITOR;
	END


	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @TIPO_REPORT_D = '';
			SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			SET @TIPO_REPORT_D = 'Diagnosi';
			if @FREQUENZA_DIAGN = 'T'
				SET @FREQUENZA_DIAGN = 'Trimestrale';
			if @FREQUENZA_DIAGN = 'S'
				SET @FREQUENZA_DIAGN = 'Semestrale';
			if @FREQUENZA_DIAGN = 'A'
				SET @FREQUENZA_DIAGN = 'Annuale';
			SET @TIPO_REPORT_D = 'Report ' + @TIPO_REPORT_D + ' ' + @FREQUENZA_DIAGN;
		END
	SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,4) ELSE '' END 
	SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_CONTRATTO$/',@CODICE_CONTRATTO);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_FISCALE$/',@CODICE_FISCALE);
	IF (@CODMAN = '') 
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE)
	ELSE
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE + '-' + @CODMAN)

		--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_REVOCA_CONTRATTO$/',dbo.ToShortDateString(@DATA_REVOCA_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_SOTTOSCRIZIONE_CONTRATTO$/',dbo.ToShortDateString(@DATA_SOTTOSCRIZIONE_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIP_CONTRATTO$/',isnull(@TIP_CONTRATTO_TEXT,'--TIP CONTRATTO--'));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$RETE$/',isnull(@RETE_TEXT,'--RETE--'));


	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_CLIENTE$/',@NOME_CLIENTE);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_PB$/',@CODICE_PB);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$PERC_LIMITE_RNA$/',@PERC_RNA);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'/$COGNOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'/$NOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_monitoraggio$/',@TIPO_REPORT_M);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_diagnosi$/',@TIPO_REPORT_D);


	
	if not @DATA_PERFEZIONAMENTO is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_PERFEZIONAMENTO$/',dbo.ToShortDateString(@DATA_PERFEZIONAMENTO));
			--V Condizione aggiunta per evitare il fatto che sulla mail non compaia una data di generazione del report antecedente alla data attuale
			IF ((@DATA_PERFEZIONAMENTO + 15) < getdate()) 
				
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(GETDATE() + 1)); 
				ELSE 
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(dateadd(day,cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint),@DATA_PERFEZIONAMENTO)));
			--
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GG_DA_PERF$/',cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,
									'/$DATA_REVOCA_CONTRATTO$/',
									dbo.ToShortDateString(
										dateadd(
											day,(
												(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
												 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
												 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
											 	 @DATA_PERFEZIONAMENTO)));
	end

  RETURN @TESTO_DI_RITORNO

END


GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_Periodico]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--select [dbo].[Replace_Testo_Email_Periodico] 'S','005497','LC_REP_DA_GEN'
CREATE FUNCTION [dbo].[Replace_Testo_Email_Periodico]
(
	@RETE as varchar(1) = '',
	@CODICE_PB as varchar(6) = '',
--	@COGNOME_PB as varchar(20) = '',
--	@NOME_PB as varchar(20) = '',
	@TIPOEMAIL as varchar(20) = '', 
	@TESTO as TEXT = ''
)
RETURNS varchar(8000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO1 as varchar(8000)
	SET @TESTO_DI_RITORNO1 = ''
	
	SELECT @TESTO_DI_RITORNO1 = @TESTO_DI_RITORNO1 
	+ '<tr><td>Cliente: ' + 
	ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') + 
	CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END

	+ '</td></tr>'
    FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport REPGEN

    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND REPGEN.FREQ_MONITORAGGIO IS NOT NULL
	AND REPGEN.FREQ_DIAGNOSI IS NOT NULL
	
	IF @TESTO_DI_RITORNO1 <> ''
		SET @TESTO_DI_RITORNO1 = '<TABLE><TR><TD>Report: <B>Report Monitoraggio e Diagnosi trimestrale</B></TD></TR>' + @TESTO_DI_RITORNO1 + '</TABLE></BR>'
	
	DECLARE @TESTO_DI_RITORNO2 as varchar(8000)
	SET @TESTO_DI_RITORNO2 = ''
	
	SELECT @TESTO_DI_RITORNO2 = @TESTO_DI_RITORNO2 + '<tr><td>Cliente: ' + 
	ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') + 
	CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
	+ '</td></tr>'
    FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport REPGEN

    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND REPGEN.FREQ_MONITORAGGIO IS NOT NULL
	AND REPGEN.FREQ_DIAGNOSI IS NULL 
	
	IF @TESTO_DI_RITORNO2 <> ''
		SET @TESTO_DI_RITORNO2 = '<TABLE><TR><TD>Report: <B>Report Monitoraggio trimestrale</B></TD></TR>' + @TESTO_DI_RITORNO2 + '</TABLE></BR>'
	
	
	DECLARE @TESTO_DI_RITORNO3 as varchar(8000)
	SET @TESTO_DI_RITORNO3 = ''
	
	
SELECT @TESTO_DI_RITORNO3 = @TESTO_DI_RITORNO3 + '<tr><td>Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') 
	+ CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
	+ '</td></tr>'
    FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport REPGEN
    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	JOIN
	c6martperiodico.mail_profili_rischio r
	on
	repgen.rete = r.rete
	and repgen.cod_fiscale = r.cod_fiscale
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND flagScaduto = 1

	IF @TESTO_DI_RITORNO3 <> ''
		SET @TESTO_DI_RITORNO3 = '<TABLE><TR><TD><B>Nominativo</B></TD></TR>' + @TESTO_DI_RITORNO3 + '</TABLE></BR>'

	
	DECLARE @TESTO_DI_RITORNO4 as varchar(8000)
	SET @TESTO_DI_RITORNO4 = ''
	
	
	SELECT @TESTO_DI_RITORNO4 = @TESTO_DI_RITORNO4 + 
		'<tr><td>Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'')
		+ CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
		+ '</td>' +
		'<td>' + dbo.ToShortDateString(dateadd(yy,3,r.dt_creazione_profilo)) + '</td>'
		+'</tr>'
    FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport REPGEN  
    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	JOIN
	c6martperiodico.mail_profili_rischio r
	on
	repgen.rete = r.rete
	and repgen.cod_fiscale = r.cod_fiscale
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND flagScaduto = 0
	AND flagScadenzaTrim = 1

	IF @TESTO_DI_RITORNO4 <> ''
		SET @TESTO_DI_RITORNO4 
		= '<TABLE><TR><TD><B>Nominativo</B></TD><TD><B>Scadenza Profilo </B></TD></TR>' + @TESTO_DI_RITORNO4 + '</TABLE></BR>'
	
	
	DECLARE @TESTO_DI_RITORNO5 as varchar(8000)
	SET @TESTO_DI_RITORNO5 = ''
	
	
	SELECT @TESTO_DI_RITORNO5 = @TESTO_DI_RITORNO5 + 
		'<tr><td>Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') 
		+ CASE WHEN (REPGEN.COD_FISCALE LIKE 'FF@%') THEN SUBSTRING(REPGEN.COD_FISCALE,4,7) ELSE '' END
		+ '</td>' +
		'<td>' + dbo.ToShortDateString(dateadd(yy,3,r.dt_creazione_profilo)) + '</td>'
		+'</tr>'
    FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport REPGEN  
    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	JOIN
	c6martperiodico.mail_profili_rischio r
	on
	repgen.rete = r.rete
	and repgen.cod_fiscale = r.cod_fiscale
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND flagScaduto = 0
	AND flagScadenzaTrim = 0
	AND flagScadenzaNextTrim = 1

	IF @TESTO_DI_RITORNO5 <> ''
		SET @TESTO_DI_RITORNO5 = '<TABLE><TR><TD><B>Nominativo</B></TD><TD><B>Scadenza Profilo </B></TD></TR>' + @TESTO_DI_RITORNO5 + '</TABLE></BR>'
	



	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	SET @TESTO_DI_RITORNO = 'EMAIL ERRATA CONTATTARE HELP DESK'
	
	DECLARE @NUM_GIORNI as varchar(4)
	--SET @NUM_GIORNI = cast(datediff(dd,getDate(),c6martperiodico.getTrimestre2(getDate(),0)) as varchar)
    --FC14032014
    -- Modifica Temporanea... la funzione gettrimeste2 ritorna la data di simulazione e l'email ritorna -14gg dalla spedizione( errato)
      --  SET @NUM_GIORNI = cast(datediff(dd,getDate(),'20141231') as varchar)
      
    -- modifica 11/12/2014 per evitare di dover impostare la data fine trimestre ogni trim
      SET @NUM_GIORNI = cast(datediff(dd,getDate(),c6martperiodico.getTrimestre_EMAIL_PB(getDate())) as varchar)

 
	--select cast(datediff(dd,getDate(),c6martperiodico.getTrimestre2(getDate(),0)) as varchar)


	IF @TESTO_DI_RITORNO1 <> '' OR @TESTO_DI_RITORNO2 <> ''
	BEGIN
		SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));

		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$num_gg_gen_rep_periodico$/',@NUM_GIORNI);
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$Mon_Diagn_Per$/',@TESTO_DI_RITORNO1 + ' ' + @TESTO_DI_RITORNO2); 
		
		IF(@TESTO_DI_RITORNO3 <> '')
			BEGIN
				SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$Scaduti$/',dbo.getParametro('ParagrafoScaduti')+dbo.getParametro('StileTabScaduti')) 						
				SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$tabellaScaduti$/',@TESTO_DI_RITORNO3);
			END
		ELSE
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$Scaduti$/','') 						
		
		IF(@TESTO_DI_RITORNO4 <> '')
			BEGIN
				SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$inScadenza$/',dbo.getParametro('ParagrafoScadenzaTrim')+dbo.getParametro('StileTabScadenzaTrim')) 						
				SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$tabellaInScadenza$/',@TESTO_DI_RITORNO4);
			END
		ELSE
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$inScadenza$/','') 

		IF(@TESTO_DI_RITORNO5 <> '')
			BEGIN
				SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$inScadenzaNextTrim$/',dbo.getParametro('ParagrafoScadenzaNextTrim')+dbo.getParametro('StileTabScadenzaNextTrim')) 						
				SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$tabellaInScadenzaNextTrimestre$/',@TESTO_DI_RITORNO5);
			END
		ELSE
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$inScadenzaNextTrim$/','') 
		
		IF(@TESTO_DI_RITORNO5 <> '' OR @TESTO_DI_RITORNO4 <> '' OR @TESTO_DI_RITORNO3 <> '')
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$paragrafo_opzionale$/',dbo.getParametro('ParagrafoOpzionaleMailPB'))
		ELSE
			SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$paragrafo_opzionale$/','')
	END 
		
		
    RETURN @TESTO_DI_RITORNO
END



GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_Periodico_LC_REP_DEF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[Replace_Testo_Email_Periodico_LC_REP_DEF]
(
	@RETE as varchar(1) = '',
	@CODICE_PB as varchar(6) = '',
--	@COGNOME_PB as varchar(20) = '',
--	@NOME_PB as varchar(20) = '',
	@TIPOEMAIL as varchar(20) = '', 
	@TESTO as TEXT = ''
)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO1 as varchar(8000)
	SET @TESTO_DI_RITORNO1 = ''
	
	SELECT @TESTO_DI_RITORNO1 = @TESTO_DI_RITORNO1 + '<tr><td>Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') + '</td></tr>'
    FROM C6Mart.CONTRATTOSEI REPGEN
    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND REPGEN.FREQ_MONITOR IS NOT NULL
	AND REPGEN.FREQ_DIAGNOSI IS NOT NULL
	AND C6MARTPERIODICO.GETTRIMESTRE(getdate(),0) = C6MARTPERIODICO.GETTRIMESTRE(REPGEN.DATA_INVIO_DIAGNOSI_TRIMESTRALE,0)
	
	
	IF @TESTO_DI_RITORNO1 <> ''
		SET @TESTO_DI_RITORNO1 = '<TABLE><TR><TD>Report: <B>Report Monitoraggio e Diagnosi trimestrale</B></TD></TR>' + @TESTO_DI_RITORNO1 + '</TABLE></BR>'
	
	DECLARE @TESTO_DI_RITORNO2 as varchar(8000)
	SET @TESTO_DI_RITORNO2 = ''
	
	SELECT @TESTO_DI_RITORNO2 = @TESTO_DI_RITORNO2 + '<tr><td>Cliente: ' + ISNULL(CLIENTI.[COGNOME],'') + ' ' + ISNULL(CLIENTI.[NOME],'') + '</td></tr>'
    FROM C6Mart.CONTRATTOSEI REPGEN
    INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] CLIENTI
	ON REPGEN.RETE = CLIENTI.[RETE]
	AND REPGEN.COD_FISCALE = CLIENTI.[COD_FISCALE]
	WHERE REPGEN.RETE = @RETE
	AND REPGEN.COD_AGENTE = @CODICE_PB
	AND REPGEN.FREQ_MONITOR IS NOT NULL
	AND REPGEN.FREQ_DIAGNOSI IS NULL 
	AND C6MARTPERIODICO.GETTRIMESTRE(getdate(),0) = C6MARTPERIODICO.GETTRIMESTRE(REPGEN.DATA_INVIO_MONITORAGGIO_TRIMESTRALE,0)
	
	IF @TESTO_DI_RITORNO2 <> ''
		SET @TESTO_DI_RITORNO2 = '<TABLE><TR><TD>Report: <B>Report Monitoraggio trimestrale</B></TD></TR>' + @TESTO_DI_RITORNO2 + '</TABLE></BR>'
	
	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	SET @TESTO_DI_RITORNO = 'EMAIL ERRATA CONTATTARE HELP DESK'
	
	IF @TESTO_DI_RITORNO1 <> '' OR @TESTO_DI_RITORNO2 <> ''
	BEGIN
		SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$num_gg_gen_rep_periodico$/','15');
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$Mon_Diagn_Per$/',@TESTO_DI_RITORNO1 + ' ' + @TESTO_DI_RITORNO2); 
	END 
		
		
    RETURN @TESTO_DI_RITORNO
END

GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_Periodico_LC_REP_GEN]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Replace_Testo_Email_Periodico_LC_REP_GEN]
(
	@TESTO as varchar(max) = ''
)
RETURNS varchar(max)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO1 as varchar(max)
	SET @TESTO_DI_RITORNO1 = ''
   
    --CLIENTI CON REPORT DI DIAGNOSI
    DECLARE @TABLE_DIAGNOSI AS TABLE(rete VARCHAR(1),codicefiscale VARCHAR(16))
 	INSERT INTO @TABLE_DIAGNOSI(rete,CODICEFISCALE)
    SELECT RETE,CODICEFISCALE
    FROM C6MartPeriodico.[GESTIONE_PDF_FTP] REPGEN
    WHERE ISNULL(REPGEN.FLAGINVIO,'N') = 'N'
    AND REPGEN.TIPOREPORT = 'D'
    
    
    --CLIENTI CON REPORT DI DIAGNOSI E MONITORAGGIO
    DECLARE @TABLE_MONITORAGGIO_DIAGNOSI AS TABLE(rete VARCHAR(1),codicefiscale VARCHAR(16))
    INSERT INTO @TABLE_MONITORAGGIO_DIAGNOSI(rete,CODICEFISCALE)
    SELECT REPGEN.RETE,REPGEN.CODICEFISCALE
    FROM C6MartPeriodico.[GESTIONE_PDF_FTP] REPGEN
    INNER JOIN @TABLE_DIAGNOSI TABLE_DIAGNOSI
    ON TABLE_DIAGNOSI.rete = REPGEN.rete
    AND TABLE_DIAGNOSI.codicefiscale = REPGEN.codicefiscale
    WHERE ISNULL(REPGEN.FLAGINVIO,'N') = 'N'
    AND REPGEN.TIPOREPORT = 'M'
    
    --CONCATENO LA STRINGA DI TESTO PER LE EMAIL DI REPORT MONITORAGGIO E DIAGNOSI
    DECLARE @PB AS VARCHAR(6)
    SET @PB = ''
    DECLARE @RETE AS VARCHAR(1)
    SET @RETE = ''
    
	SELECT @TESTO_DI_RITORNO1 = @TESTO_DI_RITORNO1 + 
		  (CASE  WHEN @PB <> C6.COD_AGENTE OR @RETE <> C6.RETE THEN '<tr><td>PB: ' + C6.COD_AGENTE + ' (RETE ' + C6.RETE + ')</td></tr>' ELSE '' END)
		  + '<tr><td>Cliente: ' + ISNULL(ANAG_CLIENTI.NOME,'') + ' ' + ISNULL(ANAG_CLIENTI.COGNOME,'') + ' (' + CASE WHEN RISCHIO_AGGREGATO.VAR_PERC_PTF <= CODIFICA_RISCHIO.MAX_VAR THEN 'profilo adeguato' else 'profilo non adeguato' end + ')' + '</td></tr>'
		  , @PB = C6.COD_AGENTE
		  , @RETE = C6.RETE
	FROM @TABLE_MONITORAGGIO_DIAGNOSI REP_GEN
	INNER JOIN C6MartPeriodico.MIFID MIFID
	ON 	REP_GEN.RETE = MIFID.RETE
	AND REP_GEN.codicefiscale = MIFID.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO CODIFICA_RISCHIO
	ON MIFID.PROFILO_ASS = CODIFICA_RISCHIO.PROFILO
	INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGREGATO
	ON 	RISCHIO_AGGREGATO.RETE = REP_GEN.RETE
	AND RISCHIO_AGGREGATO.COD_FISCALE = REP_GEN.codicefiscale
	AND RISCHIO_AGGREGATO.COD_AGGREG = 'COMPLESSIVO|BF'
	INNER JOIN C6Mart.[CONTRATTOSEI] C6
	ON 	REP_GEN.RETE = C6.RETE
	AND REP_GEN.codicefiscale = C6.cod_fiscale
	INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] ANAG_CLIENTI
	ON 	REP_GEN.RETE = ANAG_CLIENTI.RETE
	AND REP_GEN.codicefiscale = ANAG_CLIENTI.cod_fiscale
	ORDER BY C6.RETE , C6.COD_AGENTE, ANAG_CLIENTI.cod_fiscale

-- mifid -- profilo
-- codifica_rischio varmax
-- riscio_aggregato con COMPLESSIVO|BF var
--var<=varmax adeguato else non adeguato
	
	IF @TESTO_DI_RITORNO1 <> ''
		SET @TESTO_DI_RITORNO1 = '<TABLE><TR><TD>Report: <B>Report Monitoraggio e Diagnosi trimestrale</B></TD></TR>' + @TESTO_DI_RITORNO1 + '</TABLE></BR>'
    
    
    --CLIENTI CON REPORT DI SOLO MONITORAGGIO
    DECLARE @TESTO_DI_RITORNO2 as varchar(max)
	SET @TESTO_DI_RITORNO2 = ''
    SET @PB = ''
    SET @RETE = ''
    SELECT @TESTO_DI_RITORNO2 = @TESTO_DI_RITORNO2 + 
		  (CASE  WHEN @PB <> C6.COD_AGENTE OR @RETE <> C6.RETE THEN '<tr><td>PB: ' + C6.COD_AGENTE + ' (RETE ' + C6.RETE + ')</td></tr>' ELSE '' END)
		  + '<tr><td>Cliente: ' + ISNULL(ANAG_CLIENTI.NOME,'') + ' ' + ISNULL(ANAG_CLIENTI.COGNOME,'') + '</td></tr>'
		  , @PB = C6.COD_AGENTE
		  , @RETE = C6.RETE
	FROM (
			SELECT REPGEN.RETE,REPGEN.CODICEFISCALE
			FROM C6MartPeriodico.[GESTIONE_PDF_FTP] REPGEN
			LEFT OUTER JOIN @TABLE_DIAGNOSI TABLE_DIAGNOSI
			ON TABLE_DIAGNOSI.rete = REPGEN.rete
			AND TABLE_DIAGNOSI.codicefiscale = REPGEN.codicefiscale
			WHERE ISNULL(REPGEN.FLAGINVIO,'N') = 'N'
			AND REPGEN.TIPOREPORT = 'M'
			AND TABLE_DIAGNOSI.rete IS NULL
			) REP_GEN
	INNER JOIN C6Mart.[CONTRATTOSEI] C6
	ON 	REP_GEN.RETE = C6.RETE
	AND REP_GEN.codicefiscale = C6.cod_fiscale
	INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] ANAG_CLIENTI
	ON 	REP_GEN.RETE = ANAG_CLIENTI.RETE
	AND REP_GEN.codicefiscale = ANAG_CLIENTI.cod_fiscale
	ORDER BY C6.RETE , C6.COD_AGENTE, ANAG_CLIENTI.cod_fiscale	  
	
	IF @TESTO_DI_RITORNO2 <> ''
		SET @TESTO_DI_RITORNO2 = '<TABLE><TR><TD>Report: <B>Report Monitoraggio trimestrale</B></TD></TR>' + @TESTO_DI_RITORNO2 + '</TABLE></BR>'
	
	DECLARE @TESTO_DI_RITORNO as varchar(max)
	SET @TESTO_DI_RITORNO = 'EMAIL ERRATA CONTATTARE HELP DESK'
	
	IF @TESTO_DI_RITORNO1 <> '' OR @TESTO_DI_RITORNO2 <> ''
	BEGIN
		SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$num_gg_gen_rep_periodico$/','15');
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$Mon_Diagn_Per$/',@TESTO_DI_RITORNO1 + ' ' + @TESTO_DI_RITORNO2); 
	END 
		

    RETURN @TESTO_DI_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_test]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE FUNCTION [dbo].[Replace_Testo_Email_test]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@CODICE_FISCALE as varchar(16) = '',
	@COGNOME_CLIENTE as varchar(20) = '',
	@NOME_CLIENTE as varchar(20) = '',
	@CODICE_PB as varchar(6) = '',
	@COGNOME_PB as varchar(20) = '',
	@NOME_PB as varchar(20) = '',
	@DATA_PERFEZIONAMENTO as datetime = null,
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@PERC_RNA as varchar(3),
	@TIP_CONTRATTO as int = -1,
	@DATA_REVOCA_CONTRATTO as datetime = '2001-01-01',
	@DATA_SOTTOSCRIZIONE_CONTRATTO as datetime = '2001-01-01',
	@RETE AS NVARCHAR(5) = 'S',
	@TESTO as TEXT = ''



)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	DECLARE @TIPO_REPORT_D as varchar(100)
	DECLARE @TIPO_REPORT_M as varchar(100)
  DECLARE @CODMAN AS VARCHAR(6)
	
	DECLARE @TIP_CONTRATTO_TEXT as nvarchar(20)
	SET @TIP_CONTRATTO_TEXT = case @TIP_CONTRATTO when 1 then 'Sei' when 2 then 'Sei Versione Private' when 3 then '' else 'Sei' end

	DECLARE @RETE_TEXT as nvarchar(20)
	SET @RETE_TEXT = case @RETE when 'F' then 'Fideuram'
								when 'W' then 'IW Private Investments'
								else 'SanPaolo Invest' end

	IF @FREQUENZA_MONITOR is null
		BEGIN
			SET @TIPO_REPORT_M = '';
			SET @FREQUENZA_MONITOR = '';
		END
	ELSE
		BEGIN
			SET @TIPO_REPORT_M = 'Monitoraggio';
			if @FREQUENZA_MONITOR = 'T'
				SET @FREQUENZA_MONITOR = 'Trimestrale';
			if @FREQUENZA_MONITOR = 'S'
				SET @FREQUENZA_MONITOR = 'Semestrale';
			if @FREQUENZA_MONITOR = 'A'
				SET @FREQUENZA_MONITOR = 'Annuale';
			SET @TIPO_REPORT_M = 'Report ' +@TIPO_REPORT_M + ' ' + @FREQUENZA_MONITOR;
	END


	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @TIPO_REPORT_D = '';
			SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			SET @TIPO_REPORT_D = 'Diagnosi';
			if @FREQUENZA_DIAGN = 'T'
				SET @FREQUENZA_DIAGN = 'Trimestrale';
			if @FREQUENZA_DIAGN = 'S'
				SET @FREQUENZA_DIAGN = 'Semestrale';
			if @FREQUENZA_DIAGN = 'A'
				SET @FREQUENZA_DIAGN = 'Annuale';
			SET @TIPO_REPORT_D = 'Report ' + @TIPO_REPORT_D + ' ' + @FREQUENZA_DIAGN;
		END
	
	-- modifica del 10/3/2017 per gestire codici mandato maggiori di 4 caratteri (tt T-1933818-K3C4)
	   --SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,4) ELSE '' END 
	   SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,LEN(rtrim(@CODICE_FISCALE))-3) ELSE '' END
    -- fine modifica del 10/3/2017 per gestire codici mandato maggiori di 4 caratteri (tt T-1933818-K3C4)

	SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_CONTRATTO$/',@CODICE_CONTRATTO);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_FISCALE$/',@CODICE_FISCALE);
	IF (@CODMAN = '') 
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE)
	ELSE
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE + '-' + @CODMAN)

		--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_REVOCA_CONTRATTO$/',dbo.ToShortDateString(@DATA_REVOCA_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_SOTTOSCRIZIONE_CONTRATTO$/',dbo.ToShortDateString(@DATA_SOTTOSCRIZIONE_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIP_CONTRATTO$/',isnull(@TIP_CONTRATTO_TEXT,'--TIP CONTRATTO--'));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$RETE$/',isnull(@RETE_TEXT,'--RETE--'));


	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_CLIENTE$/',@NOME_CLIENTE);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_PB$/',@CODICE_PB);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$PERC_LIMITE_RNA$/',@PERC_RNA);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'/$COGNOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'/$NOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_monitoraggio$/',@TIPO_REPORT_M);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_diagnosi$/',@TIPO_REPORT_D);


	
	if not @DATA_PERFEZIONAMENTO is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_PERFEZIONAMENTO$/',dbo.ToShortDateString(@DATA_PERFEZIONAMENTO));
			--V Condizione aggiunta per evitare il fatto che sulla mail non compaia una data di generazione del report antecedente alla data attuale
			IF ((@DATA_PERFEZIONAMENTO + 15) < getdate()) 
				
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(GETDATE() + 1)); 
				ELSE 
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(dateadd(day,cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint),@DATA_PERFEZIONAMENTO)));
			--
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GG_DA_PERF$/',cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,
									'/$DATA_REVOCA_CONTRATTO$/',
									dbo.ToShortDateString(
										dateadd(
											day,(
												(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
												 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
												 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
											 	 @DATA_PERFEZIONAMENTO)));
	end

  RETURN @TESTO_DI_RITORNO

END



GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Email_test_20170310]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [dbo].[Replace_Testo_Email_test_20170310]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@CODICE_FISCALE as varchar(16) = '',
	@COGNOME_CLIENTE as varchar(20) = '',
	@NOME_CLIENTE as varchar(20) = '',
	@CODICE_PB as varchar(6) = '',
	@COGNOME_PB as varchar(20) = '',
	@NOME_PB as varchar(20) = '',
	@DATA_PERFEZIONAMENTO as datetime = null,
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@PERC_RNA as varchar(3),
	@TIP_CONTRATTO as int = -1,
	@DATA_REVOCA_CONTRATTO as datetime = '2001-01-01',
	@DATA_SOTTOSCRIZIONE_CONTRATTO as datetime = '2001-01-01',
	@RETE AS NVARCHAR(5) = 'S',
	@TESTO as TEXT = ''



)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TESTO_DI_RITORNO as varchar(8000)
	DECLARE @TIPO_REPORT_D as varchar(100)
	DECLARE @TIPO_REPORT_M as varchar(100)
  DECLARE @CODMAN AS VARCHAR(6)
	
	DECLARE @TIP_CONTRATTO_TEXT as nvarchar(20)
	SET @TIP_CONTRATTO_TEXT = case @TIP_CONTRATTO when 1 then 'Sei' when 2 then 'Sei Versione Private' else 'Sei' end

	DECLARE @RETE_TEXT as nvarchar(20)
	SET @RETE_TEXT = case @RETE when 'F' then 'Fideuram' else 'SanPaolo Invest' end

	IF @FREQUENZA_MONITOR is null
		BEGIN
			SET @TIPO_REPORT_M = '';
			SET @FREQUENZA_MONITOR = '';
		END
	ELSE
		BEGIN
			SET @TIPO_REPORT_M = 'Monitoraggio';
			if @FREQUENZA_MONITOR = 'T'
				SET @FREQUENZA_MONITOR = 'Trimestrale';
			if @FREQUENZA_MONITOR = 'S'
				SET @FREQUENZA_MONITOR = 'Semestrale';
			if @FREQUENZA_MONITOR = 'A'
				SET @FREQUENZA_MONITOR = 'Annuale';
			SET @TIPO_REPORT_M = 'Report ' +@TIPO_REPORT_M + ' ' + @FREQUENZA_MONITOR;
	END


	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @TIPO_REPORT_D = '';
			SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			SET @TIPO_REPORT_D = 'Diagnosi';
			if @FREQUENZA_DIAGN = 'T'
				SET @FREQUENZA_DIAGN = 'Trimestrale';
			if @FREQUENZA_DIAGN = 'S'
				SET @FREQUENZA_DIAGN = 'Semestrale';
			if @FREQUENZA_DIAGN = 'A'
				SET @FREQUENZA_DIAGN = 'Annuale';
			SET @TIPO_REPORT_D = 'Report ' + @TIPO_REPORT_D + ' ' + @FREQUENZA_DIAGN;
		END
	SET @CODMAN= CASE WHEN @CODICE_FISCALE LIKE '%@%' THEN SUBSTRING(@CODICE_FISCALE,4,4) ELSE '' END 
	SET @TESTO_DI_RITORNO = isnull(@TESTO,'/$TESTO NON VALORIZZATO$/');
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ACAPO$/',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_CONTRATTO$/',@CODICE_CONTRATTO);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_FISCALE$/',@CODICE_FISCALE);
	IF (@CODMAN = '') 
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE)
	ELSE
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_CLIENTE$/',@COGNOME_CLIENTE + '-' + @CODMAN)

		--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_REVOCA_CONTRATTO$/',dbo.ToShortDateString(@DATA_REVOCA_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_SOTTOSCRIZIONE_CONTRATTO$/',dbo.ToShortDateString(@DATA_SOTTOSCRIZIONE_CONTRATTO));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIP_CONTRATTO$/',isnull(@TIP_CONTRATTO_TEXT,'--TIP CONTRATTO--'));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$RETE$/',isnull(@RETE_TEXT,'--RETE--'));


	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_CLIENTE$/',@NOME_CLIENTE);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CODICE_PB$/',@CODICE_PB);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$PERC_LIMITE_RNA$/',@PERC_RNA);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$COGNOME_PB$/',isnull(@COGNOME_PB,'/$COGNOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NOME_PB$/',isnull(@NOME_PB,'/$NOME_PB$/'));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_monitoraggio$/',@TIPO_REPORT_M);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type_diagnosi$/',@TIPO_REPORT_D);


	
	if not @DATA_PERFEZIONAMENTO is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_PERFEZIONAMENTO$/',dbo.ToShortDateString(@DATA_PERFEZIONAMENTO));
			--V Condizione aggiunta per evitare il fatto che sulla mail non compaia una data di generazione del report antecedente alla data attuale
			IF ((@DATA_PERFEZIONAMENTO + 15) < getdate()) 
				
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(GETDATE() + 1)); 
				ELSE 
					SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATA_INVIO_REPORT$/',dbo.ToShortDateString(dateadd(day,cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint),@DATA_PERFEZIONAMENTO)));
			--
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GG_DA_PERF$/',cast(dbo.getParametro('NUMGIORNIDALPERF_REP') as smallint));
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,
									'/$DATA_REVOCA_CONTRATTO$/',
									dbo.ToShortDateString(
										dateadd(
											day,(
												(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
												 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
												 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
											 	 @DATA_PERFEZIONAMENTO)));
	end

  RETURN @TESTO_DI_RITORNO

END



GO
/****** Object:  UserDefinedFunction [dbo].[Replace_Testo_Lettera_Benvenuto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Replace_Testo_Lettera_Benvenuto]
(
	@CODICE_CONTRATTO as varchar(16) = '',
	@FREQUENZA_DIAGN as varchar(16) = '',
	@FREQUENZA_MONITOR as varchar(16) = '',
	@COGNOME as varchar(20) = '',
	@NOME as varchar(20) = '',
	@TIPO_REPORT as varchar(100) = '',	
	@INDIRIZZO as varchar(20) = '',
	@DATA as datetime = null,
	@DATA_RICHIESTA_RISTAMPA as datetime = null,
	@DATA_GENERAZIONE_REPORT as datetime = null,
	@TESTO as TEXT = ''
)
RETURNS varchar(5000)
AS
BEGIN

	DECLARE @TESTO_DI_RITORNO as varchar(5000)
	DECLARE @REPORTISTICA as varchar(100)
	if @FREQUENZA_DIAGN is null
		BEGIN
			SET @REPORTISTICA = 'Report di Monitoraggio';
			--SET @TIPO_REPORT_D = '';
			--SET @FREQUENZA_DIAGN = '';
		END
	else
		BEGIN
			--if @FREQUENZA_DIAGN = 'T'
				--SET @FREQUENZA_DIAGN = 'Trimestrale';
			--if @FREQUENZA_DIAGN = 'S'
				--SET @FREQUENZA_DIAGN = 'Semestrale';
			--if @FREQUENZA_DIAGN = 'A'
				--SET @FREQUENZA_DIAGN = 'Annuale';
			SET @REPORTISTICA = 'Report di Diagnosi e Monitoraggio';
		END
	
	

	--if @FREQUENZA_MONITOR is null
		--BEGIN
			--SET @TIPO_REPORT_M = '';
			--SET @FREQUENZA_MONITOR = '';
		--END
	--else
		--BEGIN
			--if @FREQUENZA_MONITOR = 'T'
				--SET @FREQUENZA_MONITOR = 'Trimestrale';
			--if @FREQUENZA_MONITOR = 'S'
				--SET @FREQUENZA_MONITOR = 'Semestrale';
			--if @FREQUENZA_MONITOR = 'A'
				--SET @FREQUENZA_MONITOR = 'Annuale';
			--SET @TIPO_REPORT_M = '[' +@TIPO_REPORT_M + ', ' + @FREQUENZA_MONITOR+']';
		--END
	

	SET @TESTO_DI_RITORNO = @TESTO	
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\r\n',char(10));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'\t',char(8));
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$CONTRACT_ID$/',@CODICE_CONTRATTO);
	
	
	
	if not @DATA is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/',CONVERT(VARCHAR(10), @DATA, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$DATE$/','');
	
	
	
	if not @DATA_RICHIESTA_RISTAMPA is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$reprint_date_req$/',CONVERT(VARCHAR(10), @DATA_RICHIESTA_RISTAMPA, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$reprint_date_req$/','');
	
	

	if not @DATA_GENERAZIONE_REPORT is null
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/',CONVERT(VARCHAR(10), @DATA_GENERAZIONE_REPORT, 103));
	else
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/','');
	
	
	
	---- MODIFICARE PER MONITORAGGIO FARSI PASSARE L'ARGOMENTO DAL RM
	--- Inserire il caso del monitoraggio
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$report_type$/',@TIPO_REPORT);
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$LASTNAME$/',@COGNOME);
	
	if NOT @NOME IS NULL
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$NAME$/',@NOME);	
		
	
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPORTISCA$/',@REPORTISTICA);
	--
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$TIPO$/',@TIPO_REPORT);
	--
	--SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPORT_TYPE_MONITORAGGIO$/',@TIPO_REPORT_M);
--	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$FREQUENCY_DIAGNOSI$/',@FREQUENZA_DIAGN);
--	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$FREQUENCY_MONITORAGGIO$/',@FREQUENZA_MONITOR);
	SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$ADDRESS$/',@INDIRIZZO);


	
	if not @DATA_RICHIESTA_RISTAMPA is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$REPRINT_DATE_REQ$/',@DATA_RICHIESTA_RISTAMPA);
	end
	
	if not @DATA_GENERAZIONE_REPORT is null
	begin
		SET @TESTO_DI_RITORNO = REPLACE(@TESTO_DI_RITORNO,'/$GENERATION_REP_DATE$/',@DATA_GENERAZIONE_REPORT);
	end

    RETURN @TESTO_DI_RITORNO
END




GO
/****** Object:  UserDefinedFunction [dbo].[Replace_To_Email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Replace_To_Email]
(
	@TO as varchar(50) = '', 
	@EMAIL_PB as varchar(50) = '',
	@SERVIZI_OPERATIVI as varchar(50) = '',	
	@RESPONSABILE_PROCESSO as varchar(50) = ''
)
RETURNS varchar(5000)
AS
BEGIN
	DECLARE @TO_DI_RITORNO as varchar(255)
	SET @TO_DI_RITORNO = isnull(@TO,'/$TO NON VALORIZZATO$/');
	SET @TO_DI_RITORNO = REPLACE(@TO_DI_RITORNO,'/$EMAIL_PB$/',@EMAIL_PB);
	--SET @TO_DI_RITORNO = REPLACE(@TO_DI_RITORNO,'/$SERVIZI_OPERATIVI$/',@SERVIZI_OPERATIVI);
	--SET @TO_DI_RITORNO = REPLACE(@TO_DI_RITORNO,'/$RESPONSABILE_PROCESSO$/',@RESPONSABILE_PROCESSO);
	RETURN @TO_DI_RITORNO
END
GO
/****** Object:  UserDefinedFunction [dbo].[Split]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create FUNCTION [dbo].[Split] 
  (  @Delimiter varchar(5), 
      @List      varchar(8000)
   ) 
   RETURNS @TableOfValues table 
      (  RowID   smallint IDENTITY(1,1), 
         [Value] varchar(50) 
      ) 
AS 
   BEGIN
    
      DECLARE @LenString int 
 
      WHILE len( @List ) > 0 
         BEGIN 
         
            SELECT @LenString = 
               (CASE charindex( @Delimiter, @List ) 
                   WHEN 0 THEN len( @List ) 
                   ELSE ( charindex( @Delimiter, @List ) -1 )
                END
               ) 
                                
            INSERT INTO @TableOfValues 
               SELECT substring( @List, 1, @LenString )
                
            SELECT @List = 
               (CASE ( len( @List ) - @LenString ) 
                   WHEN 0 THEN '' 
                   ELSE right( @List, len( @List ) - @LenString - 1 ) 
                END
               ) 
         END
          
      RETURN 
      
   END 
GO
/****** Object:  UserDefinedFunction [dbo].[ToShortDateString]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[ToShortDateString]
(
	@date datetime
)
RETURNS varchar(10)
AS
BEGIN
	--RETURN DATEADD(dd, 0, DATEDIFF(dd, 0, @date))
	RETURN CONVERT(VARCHAR(10), @date, 103)
END
GO
/****** Object:  UserDefinedFunction [dbo].[VerificaFestivo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[VerificaFestivo]
(
    @DataInput VARCHAR(8)
)
RETURNS VARCHAR(8)
AS
BEGIN
    DECLARE @DataFeriale DATE

    -- Converte la stringa di input nel formato data
    SET @DataInput = CONVERT(VARCHAR, @DataInput, 112)
    SET @DataFeriale = CAST(@DataInput AS DATE)

    -- Verifica se la data è sabato o domenica
    IF DATEPART(WEEKDAY, @DataFeriale) = 7 -- 7 = Sabato
    BEGIN
        -- Se è sabato, restituisci la giornata precedente
        SET @DataFeriale = DATEADD(DAY, -1, @DataFeriale)
    END
    ELSE IF DATEPART(WEEKDAY, @DataFeriale) = 1 -- 1 = Domenica
    BEGIN
        -- Se è domenica, restituisci la giornata successiva
        SET @DataFeriale = DATEADD(DAY, 1, @DataFeriale)
    END

    -- Formatta la data nel formato desiderato e restituisci come stringa
    RETURN CONVERT(VARCHAR(8), @DataFeriale, 112)
END;
GO
/****** Object:  UserDefinedFunction [wh].[IsZero]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CREATE SCHEMA WH
--go

CREATE function [wh].[IsZero]
(
    @Number FLOAT,
    @IsZeroNumber FLOAT
)
RETURNS FLOAT
AS
BEGIN

    IF (@Number = 0)
    BEGIN
        SET @Number = @IsZeroNumber
    END

    RETURN (@Number)

END

GO
/****** Object:  Table [C6Mart].[ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CLIENTI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME] [varchar](50) NULL,
	[COGNOME] [varchar](50) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [varchar](20) NULL,
	[NUM_COMPONENTI] [smallint] NULL,
	[NUM_FIGLI] [smallint] NULL,
	[ETA] [smallint] NULL,
	[PARTITA_IVA] [varchar](20) NULL,
	[CITTADINANZA] [varchar](150) NULL,
	[PERSONA_FIS_GIUR] [varchar](20) NULL,
	[INDIRIZZO] [varchar](150) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](50) NULL,
	[PRESSO] [varchar](32) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[STATO] [varchar](20) NULL,
	[RAG_SOC] [varchar](20) NULL,
	[SESSO] [varchar](1) NULL,
	[ID_PROMOTORE] [varchar](6) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[VCONTRATTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[VCONTRATTI](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TipoConsulenza] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20171222]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20171222]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE 1=1    /* 20171110 */
	and (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	(
	/* 20171110
	----'FGRBNLT65D44A859X' /* temp 20161207 */
	----,'FPNDLCI41T49F205P' /* temp 20170317 */
	----,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	----,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SNVGMNL73A15H501Y'
	----,'SMTANDR70P22H501S'
	----,'SFLCNTN47B12F631K'
	----,'SFF@10093'
	----,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	*/
	/* ,'FFRNNCL87D25G224T'  20171110 nome+cognome aggiornato */
	/* ,'FGLLFBA57R22F205P'  temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti 
	,'STZZFNC51B57D810T' /* temp 20171005 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'SLVORSO76A65D711N' /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
				                        20171110 nome+cognome aggiornato */
	'FFF@10105'		 /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
	                     /* 20171110 AllineaPortafoglioClienti non restiuisce record */
	)

GO
/****** Object:  Table [C6Mart].[PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_BF](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[STRTYPE] [varchar](50) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[chiaveClientePB] [int] NULL,
	[chiaveProgetto] [bigint] NULL,
	[ClienteDB] [char](2) NULL,
	[Nob_Prez] [varchar](2) NULL,
	[Dossier] [varchar](8) NULL,
 CONSTRAINT [PK_PATRIMONIO_BF] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[POSITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PIRAMIDE_MOD](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[TIPO_PROGETTO] [varchar](64) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CTV_PROGETTO] [decimal](15, 3) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ORIZZ_TEMP] [varchar](20) NULL,
	[CTV_TOTALE] [decimal](15, 3) NULL,
	[STATO_CONSULENZA] [varchar](30) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CONTRATTOSEI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CONTRATTOSEI](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[Data_Sott] [datetime] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Data_Perf_Base] [datetime] NULL,
	[Data_Perf] [datetime] NULL,
	[Fascia_CPP] [varchar](5) NULL,
	[Email] [varchar](50) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Prov] [varchar](2) NULL,
	[Nazione] [varchar](35) NULL,
	[Presso] [varchar](50) NULL,
	[Data_Inizio] [datetime] NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_DiagnosiPrec] [varchar](1) NULL,
	[Freq_MonitorPrec] [varchar](1) NULL,
	[Data_InizioConsInv] [datetime] NULL,
	[Data_InizioBase] [datetime] NULL,
	[Data_FineBase] [datetime] NULL,
	[Data_InizioAvanzato] [datetime] NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[ProgressivoInvio] [varchar](8) NULL,
	[GenerazioneReport] [varchar](1) NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[DataUltimoInvio] [datetime] NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[PartViaDisinv] [varchar](1) NULL,
	[NumSolleciti] [smallint] NULL,
	[Data_UltimoSollecito] [datetime] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_UltimaRevoca] [datetime] NULL,
	[Note] [varchar](1024) NULL,
	[Data_Invio_Diagnosi_Trimestrale] [datetime] NULL,
	[Data_Invio_Monitoraggio_Trimestrale] [datetime] NULL,
	[ProfiloAttivo] [bit] NULL,
	[Rol] [char](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
 CONSTRAINT [PK_CONTRATTOSEI] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[Cod_Fiscale] ASC,
	[CodiceContratto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[gestione_email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[gestione_email](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vTuttiIContratti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE VIEW [C6Mart].[vTuttiIContratti]
AS
SELECT     Rete, Cod_Agente, Cod_Fiscale, PIva_Fiduciaria, CodiceContratto, Freq_Monitor, Freq_Diagnosi, ProfiloAttivo, 'G' AS TipoElaborazione, CASE WHEN (DATEDIFF(DAY, 
                      Data_InizioBase, Data_Sott) > 0) THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, InvioBenvenuto, ClienteMigrato, RisorseNa, NumRevoche, 
                      PartViaDisinv, Data_Perf,TIP_CONTRATTO,tip_riattivazione
FROM         C6Mart.CONTRATTOSEI AS C6
WHERE     1 = 1 
AND (InvioBenvenuto = 'N') 

AND (Data_FineAvanzato IS NULL) 

UNION ALL
SELECT     C6.Rete, Cod_Agente, C6.Cod_Fiscale, PIva_Fiduciaria, CodiceContratto, Freq_Monitor, Freq_Diagnosi, ProfiloAttivo, 'G' AS TipoElaborazione, CASE WHEN (DATEDIFF(DAY, 
                      Data_InizioBase, Data_Sott) > 0) THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, InvioBenvenuto, ClienteMigrato, RisorseNa, NumRevoche, 
                      PartViaDisinv, Data_Perf,TIP_CONTRATTO,tip_riattivazione
FROM         C6Mart.CONTRATTOSEI AS C6 INNER JOIN
                      C6Mart.GESTIONE_EMAIL AS ge ON C6.Cod_Fiscale = ge.Cod_Fiscale AND C6.Rete = ge.Rete AND ge.Tipo = 'PERF' AND ge.data_invio IS NULL
WHERE     (1 = 1) AND InvioBenvenuto = 'S' AND (Data_FineAvanzato IS NULL)



GO
/****** Object:  View [C6Mart].[vContrattiPerGenerazioneReport]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





/*

--select * from global_error select count(*) from c6mart.gestione_pdf_ftp where dataGenerazione >'20110218'
select * from c6mart.contrattosei where cod_fiscale = 'BCCGNN34E09I512K'
select * from [C6Mart].[vContrattiPerGenerazioneReport]
 Nel giro di email di revoca non si deve produrre il report (Fabrizio) --*/
CREATE VIEW [C6Mart].[vContrattiPerGenerazioneReport]
AS
SELECT  
--VALERIO TEST
--top 1 

C6.Rete, Cod_Agente, C6.Cod_Fiscale, CodiceContratto, Freq_Monitor, Freq_Diagnosi,TipoElaborazione,AdesioneSuccessivaAvanzato,InvioBenvenuto, 
                      ClienteMigrato, RisorseNa, NumRevoche,TIP_CONTRATTO,tip_riattivazione
FROM         C6Mart.vTuttiIContratti AS C6 
--LEFT JOIN	 C6Mart.MIFID AS MIFID
--ON	C6.RETE = MIFID.RETE AND C6.COD_FISCALE = MIFID.COD_FISCALE
WHERE     (1 = 1)	
                    and cod_agente not in ('015126')
                    AND (InvioBenvenuto = 'N') 
					AND (ClienteMigrato = 'S') 
					AND (ISNULL(RisorseNa, 'N') = 'N') 
					AND (ISNULL(NumRevoche, 0) = 0)
					--AND (DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT))
					AND (
					   (DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR tip_riattivazione = 2
					)
					
					AND (ISNULL(PartViaDisinv, 'N') = 'N')
					AND	C6.Cod_Fiscale IN (
							SELECT	COD_FISCALE
							FROM    C6Mart.PIRAMIDE_MOD)
					AND ProfiloAttivo = 1



--and cod_fiscale   in
--(
--'BCLMSM63T11C933E' --rimettere sulla contrattosei inviobenvenuto = S
----'BRZGPP39H08C352F'
--)
--
--begin tran
--update c6mart.contrattosei set inviobenvenuto = 'S' where cod_fiscale = 'BCLMSM63T11C933E'
--commit
--rollback





GO
/****** Object:  Table [C6Mart].[ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ASSETCLASS_TERZI](
	[ID_ASSETCLASS] [varchar](8) NOT NULL,
	[COD_ISIN] [varchar](8) NULL,
	[COD_MAF] [varchar](8) NULL,
	[COD_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSETCLASS_TERZI] PRIMARY KEY CLUSTERED 
(
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[TIPO_POLIZZA] [varchar](30) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO2] [varchar](50) NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[FREQ_RATA] [varchar](50) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[DATA_SOTT_FP] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [int] NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[DESCR_GRUPPO_PRODOTTO] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[STRTYPE] [varchar](50) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[CHIAVE_THR] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_PRODOTTI_TERZI](
	[COD_PRODOTTO] [varchar](64) NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NULL,
	[NOME_PRODOTTO] [varchar](150) NULL,
	[ALBERO_PRODOTTI] [varchar](50) NULL,
	[COD_ISIN] [varchar](12) NULL,
	[DESCR_PRODOTTO] [varchar](50) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[PAESE] [varchar](30) NULL,
	[RATING] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_PRODOTTI](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_ISIN] [varchar](12) NOT NULL,
	[PAESE] [varchar](30) NULL,
	[ID_AREA] [varchar](50) NULL,
	[CAT_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[DESCR_PRODOTTO] [varchar](128) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[COD_MAF] [varchar](20) NULL,
	[RATING] [varchar](50) NULL,
	[COD_ADEGUATEZZA] [varchar](12) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[DESCR_SGR] [varchar](255) NULL,
 CONSTRAINT [PK__ANAG_PRODOTTI__07C12930] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ASSET_PERC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ASSET_PERC](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[COD_ISIN] [varchar](12) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[LIVELLO] [smallint] NULL,
	[PERC] [decimal](13, 5) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSET_PERC] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC,
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ASSET_PERC_TERZI](
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[LIVELLO] [smallint] NOT NULL,
	[NOME_PRODOTTO] [varchar](100) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PERC] [decimal](22, 20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSET_PERC_TERZI] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO_TERZI] ASC,
	[ID_ASSETCLASS] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vPrometeiaTerziCategoriaProdotto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[vPrometeiaTerziCategoriaProdotto]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM C6MART.ASSET_PERC_TERZI
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN C6MART.PATRIMONIO_TERZI ON PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI_TERZI ON ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE ASSET_PERC_TERZI.LIVELLO = 2
		AND NOT (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI 
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
		AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE

GO
/****** Object:  Table [C6MartPeriodico].[ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ASSETCLASS_TERZI](
	[ID_ASSETCLASS] [varchar](8) NOT NULL,
	[COD_ISIN] [varchar](8) NULL,
	[COD_MAF] [varchar](8) NULL,
	[COD_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSETCLASS_TERZI] PRIMARY KEY CLUSTERED 
(
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ASSET_PERC_TERZI](
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[LIVELLO] [smallint] NOT NULL,
	[NOME_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PERC] [decimal](22, 20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSET_PERC_TERZI] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO_TERZI] ASC,
	[ID_ASSETCLASS] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_PRODOTTI_TERZI](
	[COD_PRODOTTO] [varchar](64) NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NULL,
	[NOME_PRODOTTO] [varchar](150) NULL,
	[ALBERO_PRODOTTI] [varchar](50) NULL,
	[COD_ISIN] [varchar](12) NULL,
	[DESCR_PRODOTTO] [varchar](50) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[PAESE] [varchar](30) NULL,
	[RATING] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PATRIMONIO_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[TIPO_POLIZZA] [varchar](30) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO2] [varchar](50) NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[FREQ_RATA] [varchar](50) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[DATA_SOTT_FP] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [int] NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[DESCR_GRUPPO_PRODOTTO] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[STRTYPE] [varchar](50) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[CHIAVE_THR] [varchar](256) NULL,
	[ROW_NUM] [int] NULL,
 CONSTRAINT [PK_PATRIMONIO_TERZI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_PRODOTTO] ASC,
	[COD_PRODOTTO_TERZI] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vPrometeiaTerziIntermediario]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6Mart].[vPrometeiaTerziIntermediario]
AS
SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') then 'CONTI CORRENTI'
			else 'DATI NON IN CATALOGO' 
		end  AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then 'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC'
				else 'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI 
		end AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--V aggiunto nel caso di conti correnti non a catalogo
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') then 'EUR'
			else ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		end AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--Modifica per valore VAR errato a causa della franchigia 29/4/2020
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
			then (case when(PATRIMONIO_TERZI.CTV -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int))<0 then PATRIMONIO_TERZI.CTV else PATRIMONIO_TERZI.CTV -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end)
			else (PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) 
		end AS CONTROVALORE
		--(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM C6MART.ASSET_PERC_TERZI
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN C6MART.PATRIMONIO_TERZI ON PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI_TERZI ON ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			--PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			--AND 
----ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI 
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
		AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all

	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		--sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE
		case when (sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int)<0) then sum(PATRIMONIO_TERZI.CTV) else sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end AS CONTROVALORE --modifica 050520 per anomalie Levi
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,PATRIMONIO_TERZI.cod_Fiscale,rete
	

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE

GO
/****** Object:  Table [C6Mart].[DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[DETTAGLIO_ASUL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NULL,
	[CTV] [decimal](15, 3) NULL,
	[DATA_RIF] [datetime] NULL,
	[COD_ISIN_FITTIZIO] [varchar](16) NULL,
	[COD_ISIN_SOTT] [varchar](16) NULL,
	[COD_MAF_SOTT] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vTuttiIPortafogli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[vTuttiIPortafogli]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')

UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END

GO
/****** Object:  Table [C6Staging].[BRS_AGGR_OUT_ALADDIN]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[BRS_AGGR_OUT_ALADDIN](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vBrsIndDiv]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE VIEW [C6Mart].[vBrsIndDiv]
AS
select * from (
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end as cod_fiscale,diversificationindex as indicatore
from c6staging.brs_aggr_out_aladdin a
where concat_aggregazione='COMPLESSIVO'
/*and case when isnull(a.codman,'') <> '' then 'FF@' + a.codman
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end in (select cod_fiscale from c6martperiodico.tb_campione)*/
union
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman+'_BF' 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva+'_BF'
       else codicefiscale+'_BF'
end as cod_fiscale,diversificationindex as indicatore
from c6staging.brs_aggr_out_aladdin a
where concat_aggregazione='COMPLESSIVO|BF'
/*and case when isnull(a.codman,'') <> '' then 'FF@' + a.codman
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end in (select cod_fiscale from c6martperiodico.tb_campione)*/
union
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman+'_TERZI' 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva+'_TERZI'
       else codicefiscale+'_TERZI'
end as cod_fiscale,diversificationindex as indicatore
from c6staging.brs_aggr_out_aladdin a
where concat_aggregazione='COMPLESSIVO|TERZI'
/*and case when isnull(a.codman,'') <> '' then 'FF@' + a.codman
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end in (select cod_fiscale from c6martperiodico.tb_campione)*/
) a

GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[APPO_CONTRATTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[APPO_CONTRATTI](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6StagingPeriodico].[APPO_CONTRATTI_V]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6StagingPeriodico].[APPO_CONTRATTI_V]
WITH
SCHEMABINDING
AS
SELECT distinct contr.[chiaveClientePB]
      ,contr.[COD_FISCALE]
      ,contr.[COD_MANDATO] 
      ,contr.[PIVA_FIDUCIARIA]
      ,contr.[COD_AGENTE]
      ,contr.[rete]
      ,contr.[codiceContratto]
      ,contr.[flagRol]
      ,contr.[INDIRIZZO]
      ,contr.[cap]
      ,contr.[CITTA]
      ,contr.[PROVINCIA]
      ,contr.[NAZIONE]
      ,contr.[presso]
      ,contr.[email]
      ,contr.[FREQ_DIAGNOSI]
      ,contr.[FREQ_MONITORAGGIO]
      ,contr.[GENERAZIONEREPORT]
      ,contr.[DATA_INIZIOBASE]
      ,contr.[DATA_FINEBASE]
      ,contr.[DATA_PERF_BASE]
      ,contr.[DATA_PERF]
      ,contr.[DATA_INZIOAVANZATO]
      ,contr.[DATA_FINEAVANZATO]
      ,contr.[RIATTIVAZIONE]
      ,contr.[TIP_CONTRATTO]
      ,contr.[TIP_RIATTIVAZIONE]
      ,contr.[ClienteMIGRATO]
      ,contr.[RISORSENA]
      ,contr.[PROFILOATTIVO]
      ,contr.[NumSolleciti]
      ,contr.[NumRevoche]
      ,contr.[Data_ultimoSollecito]
      ,contr.[Data_ultimaRevoca]
      ,contr.[InvioBenvenuto]
from [C6StagingPeriodico].[APPO_CONTRATTI] contr
left join  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null or 0 = (select count(*) from  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] with (nolock))
GO
/****** Object:  View [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]
AS

--select * from C6StagingPeriodico.APPO_CONTRATTI
--select * from vcontrcong0913 where bloccato is null
--* from appovcontratti0913

select
	distinct 
	a.[chiaveClientePB],
	a.[COD_FISCALE],
	[COD_MANDATO],
	[PIVA_FIDUCIARIA],
	[COD_AGENTE],
	a.[rete],
	[codiceContratto],
	[flagRol],
	[INDIRIZZO],
	[cap],
	[CITTA],
	[PROVINCIA],
	[NAZIONE],
	[presso],
	[email],
	[FREQ_DIAGNOSI],
	isnull([FREQ_MONITORAGGIO], 'T') AS FREQ_MONITORAGGIO,
	[GENERAZIONEREPORT],
	[DATA_INIZIOBASE],
	[DATA_FINEBASE],
	[DATA_PERF_BASE],
	[DATA_PERF],
	[DATA_INZIOAVANZATO],
	[DATA_FINEAVANZATO],
	[RIATTIVAZIONE],
	[TIP_CONTRATTO],
	[TIP_RIATTIVAZIONE],
    [ClienteMIGRATO],
	[RISORSENA],
	[PROFILOATTIVO],
	[NumSolleciti],
	[NumRevoche],
	[Data_ultimoSollecito],
	[Data_ultimaRevoca],
	[InvioBenvenuto]
FROM
C6StagingPeriodico.APPO_CONTRATTI_v a
LEFT JOIN
	(
		SELECT rete, codiceFiscale FROM [C6MartPeriodico].[tb_SegnalazioniDataQuality] 
		GROUP BY rete, codiceFiscale
	) t
ON
	a.rete = t.rete
AND
	a.cod_fiscale = t.codiceFiscale
WHERE 1=1
	and t.codiceFiscale is null


GO
/****** Object:  Table [C6StagingPeriodico].[RP_CatalogoProdotti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CatalogoProdotti](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[TipoVersamento] [int] NULL,
	[RischioPrSc] [int] NULL,
	[StatoProdotto] [int] NULL,
	[TipoPolizza] [varchar](20) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Visibilita] [bit] NOT NULL,
	[PrezzoInEuro] [numeric](13, 5) NULL,
	[Alberatura] [int] NOT NULL,
	[DtScadenza] [datetime] NULL,
	[Categoria] [int] NULL,
	[Istituto] [int] NULL,
	[Piazza] [varchar](128) NULL,
	[PrezzoInValuta] [numeric](13, 5) NULL,
	[PrezzoValuta] [varchar](3) NULL,
	[Codiceadb] [varchar](18) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[RatingObbligazioni] [varchar](128) NULL,
	[RischioMinimo] [int] NULL,
	[CapRisparmio] [int] NULL,
	[CapMinimo] [numeric](13, 5) NULL,
	[CapMinimoValuta] [varchar](3) NULL,
	[CapMinSucc] [numeric](13, 5) NULL,
	[CapMinSuccValuta] [varchar](3) NULL,
	[MinRispContr] [numeric](13, 5) NULL,
	[MinRispContrValuta] [varchar](3) NULL,
	[SuccRispContr] [numeric](13, 5) NULL,
	[SuccRispContrValuta] [varchar](3) NULL,
	[MinComm] [numeric](13, 5) NULL,
	[MinCommValuta] [varchar](3) NULL,
	[DelegaGestionale] [varchar](128) NULL,
	[TipologiaPerPick] [int] NULL,
	[RischioPrezzo] [int] NULL,
	[RegimeFiscale] [int] NULL,
	[Quotato] [int] NULL,
	[ClasseDiPrezzo] [varchar](10) NULL,
	[Lineefinacc] [varchar](128) NULL,
	[DurataContrattuale] [varchar](50) NULL,
	[RiscFinFaseAcc] [varchar](10) NULL,
	[OpzRendVital] [bit] NULL,
	[MetaA] [varchar](128) NULL,
	[MetaB] [varchar](128) NULL,
	[MetaC] [varchar](128) NULL,
	[DtRifPrezzo] [datetime] NULL,
	[CodTipoContratto] [varchar](128) NULL,
	[PrezzoNetto] [numeric](13, 5) NULL,
	[PrezzoNettoValuta] [varchar](3) NULL,
	[DtPrezzoNetto] [datetime] NULL,
	[CodBloomberg] [varchar](128) NULL,
	[DenomUnitLink] [varchar](128) NULL,
	[DtInizioValidita] [datetime] NULL,
	[Negoziabilita] [bit] NULL,
	[TassoTecnico] [numeric](13, 5) NULL,
	[TassoTecnicoValuta] [varchar](3) NULL,
	[CollSkandia] [bit] NULL,
	[CodAssetSatellite] [varchar](20) NULL,
	[Mercato] [varchar](3) NULL,
	[AzOb] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[Emittente] [varchar](13) NULL,
	[GaranziaDemografica] [int] NULL,
	[SocietaDiGestione] [int] NULL,
	[IndPrz] [varchar](1) NULL,
	[Differimento] [int] NULL,
	[DtPrezzo] [datetime] NULL,
	[TipoObbligazione] [varchar](50) NULL,
	[TaglioMinimo] [numeric](19, 6) NULL,
	[IsAttivoRc] [int] NULL,
	[RischioCredito] [varchar](20) NULL,
	[Copertura] [numeric](5, 2) NULL,
	[VarP] [numeric](19, 16) NULL,
	[Diversificazione] [numeric](19, 16) NULL,
	[FlagCoreSatellite] [int] NULL,
	[PerimetroCoreSatellite] [int] NULL,
	[FondoCore] [int] NULL,
	[TIP_EMITTENTE] [varchar](35) NULL,
	[TIP_TASSO] [varchar](35) NULL,
	[Suitability_Perimeter] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[DETTAGLIO_ASUL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NULL,
	[CTV] [decimal](15, 3) NULL,
	[DATA_RIF] [datetime] NULL,
	[COD_ISIN_FITTIZIO] [varchar](16) NULL,
	[COD_ISIN_SOTT] [varchar](16) NULL,
	[COD_MAF_SOTT] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CHIAVEPROGETTO] [bigint] NULL,
	[POSITION_ID] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_PRODOTTI](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_ISIN] [varchar](12) NOT NULL,
	[PAESE] [varchar](30) NULL,
	[ID_AREA] [varchar](50) NULL,
	[CAT_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[DESCR_PRODOTTO] [varchar](128) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[COD_MAF] [varchar](20) NULL,
	[RATING] [varchar](50) NULL,
	[COD_ADEGUATEZZA] [varchar](12) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[DT_SCADENZA] [datetime] NULL,
	[TIPO_TASSO] [varchar](35) NULL,
	[TIPO_EMITTENTE] [varchar](35) NULL,
	[FLG_OB] [char](1) NULL,
 CONSTRAINT [PK__ANAG_PRODOTTI__07C12930] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ASSET_PERC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ASSET_PERC](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[COD_ISIN] [varchar](12) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[LIVELLO] [smallint] NULL,
	[PERC] [decimal](23, 20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSET_PERC] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC,
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[RP_vPrometeiaTerziIntermediario_Aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- View
CREATE     VIEW [C6MartPeriodico].[RP_vPrometeiaTerziIntermediario_Aladdin]
AS
SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	----------------------------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	----------------------------------------------------------
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione,
	TUTTI.PRODOTTO_ID		AS Cod_Prodotto

FROM (
	--34024
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'Asset' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		--ASSETCLASS_TERZI.COD_ISIN 
		'' AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'' AS COD_ADEGUATEZZA,
		--ASSETCLASS_TERZI.COD_MAF 
		'' AS COD_MAF,
		
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
		,PATRIMONIO_TERZI.COD_PRODOTTO AS PRODOTTO_ID
	FROM 
		 C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		) 

	UNION ALL

	-- 76400
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI ,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
		,PATRIMONIO_TERZI.COD_PRODOTTO AS PRODOTTO_ID
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL

	--178
	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE,
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
		,PATRIMONIO_TERZI.COD_PRODOTTO AS PRODOTTO_ID
--FINE   09012014_MV Correzione anomalia		 
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all
	--3455 3388
	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		'' as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		'' as  FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		'EUR' AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'EUR' AS COD_INTERNO,
		'EUR' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		--sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE 
		case when (sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int)<0) then sum(PATRIMONIO_TERZI.CTV) else sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end AS CONTROVALORE --modifica 050520 per anomalie Levi
		,PATRIMONIO_TERZI.COD_PRODOTTO AS PRODOTTO_ID
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,PATRIMONIO_TERZI.COD_PRODOTTO_TERZI ,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,ASSET_PERC_TERZI.ID_ASSETCLASS,
	PATRIMONIO_TERZI.cod_Fiscale,rete,PATRIMONIO_TERZI.COD_PRODOTTO

	


) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		----------------------------------------------------------
		tutti.TIPOptf,
		tutti.COD_PRODOTTO_TERZI,
		tutti.ASSET_TERZI,
		tutti.FAMPRODT	,
		----------------------------------------------------------
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE,
		TUTTI.PRODOTTO_ID



GO
/****** Object:  View [C6MartPeriodico].[RP_vPrometeiaTerziCategoriaProdotto_aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE   VIEW [C6MartPeriodico].[RP_vPrometeiaTerziCategoriaProdotto_aladdin]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	--------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	---------------------------------------
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione,
	TUTTI.COD_PRODOTTO		AS Cod_Prodotto

FROM (
	--34024
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		--------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'Asset' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		------------------------
		--ASSETCLASS_TERZI.COD_ISIN 
		'' AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'' AS COD_ADEGUATEZZA,
		--ASSETCLASS_TERZI.COD_MAF 
		''AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
		,PATRIMONIO_TERZI.COD_PRODOTTO AS COD_PRODOTTO
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL

	--76400
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
			------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
			------------------------
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
		,PATRIMONIO_TERZI.COD_PRODOTTO AS COD_PRODOTTO
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL

	--178
	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
			---------------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
		,PATRIMONIO_TERZI.COD_PRODOTTO AS COD_PRODOTTO
--FINE   09012014_MV Correzione anomalia		
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		-------------------
		tutti.TIPOptf	,		
	tutti.COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		,
	tutti.FAMPRODT ,
	--------------------------
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE,
		TUTTI.COD_PRODOTTO


GO
/****** Object:  Table [C6MartPeriodico].[PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PATRIMONIO_BF](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[STRTYPE] [varchar](10) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[CHIAVE_PROGETTO] [int] NULL,
	[ClienteDB] [char](2) NULL,
	[chiavePtfMod] [int] NULL,
	[Nob_Prez] [varchar](1) NULL,
	[Divisa] [varchar](3) NULL,
 CONSTRAINT [PK_PATRIMONIO_BF] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[POSITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin_bkp_20250305]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













-- View

-- View
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014

CREATE   VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin_bkp_20250305]
AS
 
SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				
		END										AS Portafoglio,

		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ISNULL(ANAG_PRODOTTI.COD_ISIN,'')
			ELSE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceProdotto,

		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
			WHEN '$' THEN ''
			ELSE iSNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
	
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto

		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale ,

		'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,70,11) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		CASE 
			when isnull(core.fondocore,0) > 0 or (LEN(isnull(ANAG_PRODOTTI.cod_isin,''))<12 and isnull(core.fondocore,0)=0 and ANAG_PRODOTTI.tipo_prodotto not in ('GP','CC','DT'))then ''
			ELSE	ANAG_PRODOTTI.cod_isin 
		END as cod_isin,
		isnull(ANAG_PRODOTTI.cod_sottoprodotto,'') as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		Case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(cast(patrimonio_bf.chiave_progetto as varchar),'') 
		end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		--patrimonio_bf.position_id
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				               
        END + '@'  + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END)AS varchar ) as position_id,
		ANAG_PRODOTTI.COD_PRODOTTO as prodotto_id

FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	left join (select distinct fondocore,catalogueid from c6stagingperiodico.rp_catalogoprodotti where isnull(fondocore,0)>0) as core
	on Patrimonio_BF.cod_prodotto = core.catalogueid

	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')

	UNION ALL

	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
			END										AS Portafoglio,	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA ,'')
			WHEN '$' THEN ''
			ELSE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto

		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			PATRIMONIO_BF.CTV						AS CtvReale,

				'COMPLESSIVO|BF' as tipoptf,
		ANAG_PRODOTTI.cod_maf as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,70,11) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		ANAG_PRODOTTI.cod_isin as cod_isin,
		ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
				Case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(cast(patrimonio_bf.chiave_progetto as varchar),'') 
		end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		--patrimonio_bf.position_id
		CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
			END	+ '@'  + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar ) as position_id,
		ANAG_PRODOTTI.COD_PRODOTTO as prodotto_id
		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

union all

	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
			
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		CASE isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'') 
			WHEN '$' THEN ''
			ELSE isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale,

		'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		'ASUL' as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,70,11) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		ANAG_PRODOTTI.cod_isin as cod_isin,
		ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		--CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
		--	WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
		--	ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		--END				AS cod_sottoProdotto,						
		--CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
		--	WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
		--	ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		--END					AS cod_sottoProdotto,	 
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
				Case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(cast(patrimonio_bf.chiave_progetto as varchar),'') 
		end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		--patrimonio_bf.position_id as position_id
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
			
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
		END	+ '@'  + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END)AS varchar ) as position_id,
		ANAG_PRODOTTI.COD_PRODOTTO as prodotto_id

	--10106
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 	
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = DETTAGLIO_ASUL.COD_PRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')


	UNION ALL


		SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		ISNULL(INTERMEDIARIO.CODICEADEGUATEZZA,'')	AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
			CASE ISNULL(INTERMEDIARIO.CodiceAdeguatezza,'')
			WHEN '$' THEN ''
			ELSE replace(INTERMEDIARIO.CodiceAdeguatezza,'$','')
		END			AS CodiceAdeguatezza,
		---------------------------------------------------------------

		--INTERMEDIARIO.PIAZZA				
		''									AS codiceInterno_old,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale,

		INTERMEDIARIO.tipoptf as tipoptf,
		isnull(INTERMEDIARIO.codiceMaf,'') as cod_maf,
		INTERMEDIARIO.INTERMEDIARIO as intermediario,
		INTERMEDIARIO.FAMPRODT as famprodt,
		CASE INTERMEDIARIO.Asset_Terzi
			WHEN '$' THEN ''
			ELSE replace(INTERMEDIARIO.Asset_Terzi,'$','')
		END	as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		isnull(INTERMEDIARIO.codiceinterno,'') as cod_interno,
		'' as termid,
		'' as annos,
		'' as progs,
		INTERMEDIARIO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		isnull(intermediario.CODiceSOTTOPRODOTTO,'') AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		intermediario.COD_PRODOTTO_TERZI as chiave_prodotto_terzi,
		'' as numpolizza,
		--INTERMEDIARIO.PORTAFOGLIO 
		'COMPLESSIVO|TERZI' + '|' + INTERMEDIARIO.FAMPRODT + '|'+intermediario.COD_PRODOTTO_TERZI + '@' + CAST(ROW_NUMBER() OVER (ORDER BY INTERMEDIARIO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END )AS varchar ) as position_id,
		'' as prodotto_id

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO_aladdin INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

union all


	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
	-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		ISNULL(CATEGORIAPRODOTTO.CODICEADEGUATEZZA,'')	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
			CASE ISNULL(CATEGORIAPRODOTTO.CodiceAdeguatezza,'')
			WHEN '$' THEN ''
			ELSE replace(CATEGORIAPRODOTTO.CodiceAdeguatezza,'$','')
		END	
				AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS codiceInterno_old,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale,

		CATEGORIAPRODOTTO.tipoptf as tipoptf,
		isnull(CATEGORIAPRODOTTO.codiceMaf,'') as cod_maf,
		'' as intermediario,
		CATEGORIAPRODOTTO.famprodt as famprodt,
		replace(CATEGORIAPRODOTTO.Asset_Terzi,'$','') as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		isnull(CATEGORIAPRODOTTO.codiceinterno,'') as cod_interno,
		'' as termid,
		'' as annos,
		'' as progs,
		CATEGORIAPRODOTTO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		isnull(CATEGORIAPRODOTTO.CODiceSOTTOPRODOTTO,'') AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		replace(CATEGORIAPRODOTTO.COD_PRODOTTO_TERZI,'$','') as chiave_prodotto_terzi,
		'' as numpolizza,
		CATEGORIAPRODOTTO.PORTAFOGLIO + '@' + CAST(ROW_NUMBER() OVER (ORDER BY CATEGORIAPRODOTTO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END )AS varchar ) as position_id,
		'' as prodotto_id


	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO_aladdin CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

union all

SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
	
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END										AS Portafoglio,
									
		'' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'EUR' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		'EUR' AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto

		case when(sum(PATRIMONIO_BF.CTV_NOMINALE)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale)
		--(sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale))>0 then	sum(PATRIMONIO_BF.CTV)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale)
		else 0.0001 end AS CtvReale,

		
		'COMPLESSIVO|BF' as								tipoptf,
		'' as						cod_maf,
		'' as											intermediario,
		'CC' as											famprodt,
		'' as											assetterzi,
		'' as	codconf,
		'' as	conto,
		'' as	rubr,
		'' as	custgar,
		'EUR' as					cod_interno,
		'' as	termid,
		'' as	annos,
		'' as	progs,
		'EUR' as						cod_isin,
		'' as				cod_sottoProdotto,
		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END as				area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		'' as numpolizza,
		CASE
	
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END	+ '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END)AS varchar )
		 as position_id,
		'' as prodotto_id



FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,

	--CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
	--	CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
	--	CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END,
	PATRIMONIO_BF.COD_FISCALE,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))),
	ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))),
	CASE

			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END ,

		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END
		 
 













GO
/****** Object:  Table [C6Staging].[SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_CONTR_SINTESI](
	[POSITIONID] [varchar](123) NULL,
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[PIVAFIDUCIARIA] [varchar](11) NULL,
	[CODICECONTRATTO] [varchar](11) NULL,
	[NUMEROPOLIZZA] [varchar](11) NULL,
	[CONTO] [varchar](12) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTODIAGARANZIA] [varchar](1) NULL,
	[PCTTITOLOCOLLEGATO] [varchar](13) NULL,
	[TIPOPRODOTTO] [varchar](5) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEMAF] [varchar](13) NULL,
	[PCTKEY] [varchar](71) NULL,
	[PCTDESCRIZIONTETITOLOCOLLEGATO] [varchar](53) NULL,
	[QUOTE] [decimal](15, 2) NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [datetime] NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[DATADISOTTOSCRIZIONE] [datetime] NULL,
	[DATAVALNAVAL] [datetime] NULL,
	[CODICESTATO] [varchar](1) NULL,
	[DATAINIZIORENDIMENTO] [datetime] NULL,
	[RENDIMENTODASOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[DATATRIMESTRERENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOTRIMESTRE] [decimal](8, 5) NULL,
	[DATAANNORENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[CVN] [decimal](15, 2) NULL,
	[ISIN] [varchar](12) NULL,
	[isAPC] [varchar](3) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Mart].[CONTRATTOSEI_METADATI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CONTRATTOSEI_METADATI](
	[CHIAVECLIENTEPB] [int] NOT NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[PROFILO_EC] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[RP_vTuttiIContratti_AND]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6Mart].[RP_vTuttiIContratti_AND]
AS
SELECT    
	Rete, 
	Cod_Agente, 
	case
		when(isnull(cod_mandato,'') <> '')
			then 'FF@'+cod_mandato
			else Cod_Fiscale
	end as Cod_fiscale, 
	PIva_Fiduciaria, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi, 
	ProfiloAttivo, 
	'G' AS TipoElaborazione, 
	CASE 
		WHEN (DATEDIFF(DAY,Data_InizioBase, Data_INZIOAVANZATO) > 0) 
			THEN 1 
			ELSE 0 END 
	AS AdesioneSuccessivaAvanzato, 
	InvioBenvenuto, 
	ClienteMigrato, 
	RisorseNa, 
	NumRevoche, 
    null as PartViaDisinv, --ma serve????
    Data_Perf 
    ,a.TIP_CONTRATTO --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,riattivazione as tip_riattivazione --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,a.chiaveClientePb --V Serve nella [C6Mart].[RP_AggiornaFlagContratto] per facilitare i join
FROM C6Mart.VCONTRATTI a
JOIN C6Mart.CONTRATTOSEI_METADATI b
ON a.chiaveClientePB = b.chiaveClientePB

	

GO
/****** Object:  View [C6Mart].[RP_vContrattiPerGenerazioneReport_AND]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














--     select * from [C6Mart].[RP_vContrattiPerGenerazioneReport_AND]
CREATE VIEW [C6Mart].[RP_vContrattiPerGenerazioneReport_AND]
AS
SELECT   
	C6.Rete,
	Cod_Agente, 
	C6.Cod_Fiscale, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi,
	TipoElaborazione,
	AdesioneSuccessivaAvanzato,
	InvioBenvenuto, 
	ClienteMigrato, 
	RisorseNa, 
	NumRevoche,
	tip_contratto,
	tip_riattivazione
FROM          C6Mart.RP_vTuttiIContratti_AND AS C6 
--LEFT JOIN	 C6Mart.MIFID AS MIFID
--ON	C6.RETE = MIFID.RETE AND C6.COD_FISCALE = MIFID.COD_FISCALE
WHERE     (1 = 1)	
		-- and cod_agente not in ('015126')
		--AND (InvioBenvenuto = 'N') 
		--AND (ClienteMigrato = 'S') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		----AND (DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT))
		----AND (ISNULL(PartViaDisinv, 'N') = 'N')
		--AND	C6.Cod_Fiscale IN (SELECT COD_FISCALE FROM C6Mart.PIRAMIDE_MOD)
		--AND ProfiloAttivo = 1
--and cod_fiscale+rete in (select codicefiscale+rete from c6mart.gestione_pdf_ftp where datagenerazione > (select convert(varchar, max(datagenerazione),112 ) from c6mart.gestione_pdf_ftp ))
--and cod_fiscale+rete in (select codicefiscale+rete from c6mart.gestione_pdf_ftp where datagenerazione > '20131001')
 --and cod_fiscale = 'VNTSVN48B09A859F' 
 and cod_fiscale+rete in (select distinct codicefiscale+rete from c6staging.spb_contr_sintesi)
 





















GO
/****** Object:  Table [C6Mart].[W6DAILY]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[W6DAILY](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vBrsVarAllAggr]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













CREATE VIEW [C6Mart].[vBrsVarAllAggr] --where codicefiscale='BRCMRC67H15L736N' order by 3
AS
select * from (
--complessivo BF no CC (OK con Prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then concat_aggregazione else substring(position_id,1,charindex('@',position_id)-1) end as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210630 
where concat_aggregazione like 'COMPLESSIVO|BF%' and (position_id like '%@%' or position_id is null) --and codicefiscale='BRCMRC67H15L736N'
union
--ASUL -->
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,position_id as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210630 
where concat_aggregazione like 'COMPLESSIVO|BF%' and SLEEVETAG='WRAPPER_TYPE' --and codicefiscale='BRCMRC67H15L736N'
union
--risfin piramide no CC (OK con Prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then Replace(concat_aggregazione,'COMPLESSIVO|BF','RISFIN|PIRAMIDE') else substring(Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE'),1,charindex('@',position_id)) end as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from C6Staging.brs_aggr_out_aladdin--_20210630--_20210719 
where concat_aggregazione like 'COMPLESSIVO|BF%'  -- and codicefiscale='TRMRRT42H25G852P' 
and substring(isnull(position_id,''),1,charindex('@',isnull(position_id,''))) not like 'COMPLESSIVO|BF|CC%'  and isnull(sleevetag,'')<>'WRAPPER_TYPE' 
--and codicefiscale='BRCMRC67H15L736N'
union --ASUL-->
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE') as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from C6Staging.brs_aggr_out_aladdin--_20210630--_20210719 
where concat_aggregazione like 'COMPLESSIVO|BF%'  -- and codicefiscale='TRMRRT42H25G852P' 
and substring(isnull(position_id,''),1,charindex('@',isnull(position_id,''))) not like 'COMPLESSIVO|BF|CC%'  and sleevetag='WRAPPER_TYPE'-- and codicefiscale='BRCMRC67H15L736N'
union 
--RISFIN solo cc (ok con prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then Replace(concat_aggregazione,'COMPLESSIVO|BF','RISFIN|PIRAMIDE|Liq') else 
substring(Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE|Liq'),1,charindex('@',Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE|Liq'))-1) end as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210719 
where substring(isnull(position_id,''),1,charindex('@',isnull(position_id,''))) like 'COMPLESSIVO|BF|CC%'-- and codicefiscale='TRMRRT42H25G852P'
union
--PTF COMPLESSIVO (ok con prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then concat_aggregazione else 
substring(position_id,1,charindex('@',position_id)-1) end as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210630--_20210719 
where concat_aggregazione = 'COMPLESSIVO'
union
--TIPOPRODTERZI|TERZI -->fam prod (ok con prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then Replace(concat_aggregazione,'COMPLESSIVO|TERZI','TIPOPRODTERZI|TERZI') else 
substring(Replace(position_id,'COMPLESSIVO|TERZI','TIPOPRODTERZI|TERZI'),1,charindex('@',position_id)) end as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210719 
where concat_aggregazione like 'COMPLESSIVO|TERZI%'  --and codicefiscale='TRMRRT42H25G852P'
union
--COMPLESSIVO|TERZI --> Interm (ok con prom)
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end as codiceFiscale,
isnull(b.tipoptf,'')+'|'+isnull(intermediario,'')+'|'+chiave_prodotto_terzi as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210719 
a inner join c6mart.w6daily b
on a.position_id=b.position_id
where concat_aggregazione like 'complessivo|terzi%'  --and codicefiscale='TRMRRT42H25G852P'--and a.codman='7168'--a.piva='01840910150'
union
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then concat_aggregazione else 
substring(position_id,1,charindex('@',position_id)) end as portafoglio,var,varp,cvar,cvarp,risksize,mcvar,mcvarp,diversificationindex,copertura,totale,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6staging.brs_aggr_out_aladdin--_20210719 
where concat_aggregazione = 'COMPLESSIVO|TERZI'--and codman='7168'--a.piva='01840910150'
union
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codfis
end as codiceFiscale,
isnull(a.tipoptf,'')+'|'+isnull(a.intermediario,'')+'|'+'CC' as portafoglio,0 as var,0 as varp,0 as cvar,0 as cvarp,0 as risksize,0 as mcvar,0 as mcvarp,0 as diversificationindex,
100 as copertura,case when sum(ctv)>10000 then sum(ctv)-10000 else sum(ctv) end as totale,1 as clsint,'ISR' as mdclcclsint,1 as clsr,1 as cicontroparte,1 as cltipo,
1 as clmercato,1 as clliquidita,0 as isr,0 as indmercato,0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,
0 as ully_perc_rc,0 as ullyperc_se,100 as totale_coperto,0 as coperturaproxyrc,1 as numtit,0 as numtitrc
from c6mart.w6daily a where tipoptf like 'complessivo|terzi%' and famprodt='Conti correnti' --and a.codman='7168'--piva='01840910150'
group by a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codfis
end,
isnull(a.tipoptf,'')+'|'+isnull(a.intermediario,'')+'|'+'CC'
) a
--where codicefiscale in (select cod_fiscale from c6martperiodico.tb_campione)
GO
/****** Object:  View [C6MartPeriodico].[RP_vPrometeiaTerziIntermediario_Aladdin_bkp_20250305]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- View
CREATE VIEW [C6MartPeriodico].[RP_vPrometeiaTerziIntermediario_Aladdin_bkp_20250305]
AS
SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	----------------------------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	----------------------------------------------------------
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (
	--34024
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'Asset' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		--ASSETCLASS_TERZI.COD_ISIN 
		'' AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'' AS COD_ADEGUATEZZA,
		--ASSETCLASS_TERZI.COD_MAF 
		'' AS COD_MAF,
		
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		 C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		) 

	UNION ALL

	-- 76400
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI ,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL

	--178
	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE,
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		 
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all
	--3455 3388
	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		'' as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		'' as  FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		'EUR' AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'EUR' AS COD_INTERNO,
		'EUR' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		--sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE 
		case when (sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int)<0) then sum(PATRIMONIO_TERZI.CTV) else sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end AS CONTROVALORE --modifica 050520 per anomalie Levi
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,PATRIMONIO_TERZI.COD_PRODOTTO_TERZI ,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,ASSET_PERC_TERZI.ID_ASSETCLASS,
	PATRIMONIO_TERZI.cod_Fiscale,rete

	


) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		----------------------------------------------------------
		tutti.TIPOptf,
		tutti.COD_PRODOTTO_TERZI,
		tutti.ASSET_TERZI,
		tutti.FAMPRODT	,
		----------------------------------------------------------
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE



GO
/****** Object:  Table [C6Mart].[Contratti_Da_Escludere]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Contratti_Da_Escludere](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[periodico] [char](2) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[RP_vTuttiIContratti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- N.B. NON MODIFICARE MAI QUESTA TABELLA, ALTRIMENTI SI INVIANO DELLE EMAIL SBAGLIATE (TABELLA GESTIONE_EMAIL) AL CLIENTE


CREATE VIEW [C6Mart].[RP_vTuttiIContratti]
AS
SELECT    
	Rete, 
	Cod_Agente, 
	case
		when(isnull(cod_mandato,'') <> '')
			then 'FF@'+cod_mandato
			else Cod_Fiscale
	end as Cod_fiscale, 
	PIva_Fiduciaria, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi, 
	ProfiloAttivo,
	Profilo_EC, --aggiunto 30/06/2022 
	'G' AS TipoElaborazione, 
	CASE 
		WHEN (DATEDIFF(DAY,Data_InizioBase, Data_INZIOAVANZATO) > 0) 
			THEN 1 
			ELSE 0 END 
	AS AdesioneSuccessivaAvanzato, 
	InvioBenvenuto, 
	ClienteMigrato, 
	RisorseNa, 
	NumRevoche, 
    null as PartViaDisinv, --ma serve????
    Data_Perf
    ,a.TIP_CONTRATTO --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,riattivazione as tip_riattivazione --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,a.chiaveClientePb --V Serve nella [C6Mart].[RP_AggiornaFlagContratto] per facilitare i join
	,a.TipoConsulenza
	,a.DATA_INZIOAVANZATO as Data_InizioAvanzato
--select *
FROM 
    C6Mart.VCONTRATTI a
JOIN
	C6Mart.CONTRATTOSEI_METADATI b
ON
	a.chiaveClientePB = b.chiaveClientePB

	
WHERE     1 = 1 
AND (InvioBenvenuto = 'N') 

AND (isnull(Data_FineAvanzato,'99990101') > getDate()) 

and a.rete+a.COD_FISCALE not in ( select rete+COD_FISCALE from C6Mart.contratti_da_escludere)




UNION ALL


SELECT  
	a.Rete, 
	Cod_Agente, 
	case
		when(isnull(cod_mandato,'') <> '')
			then 'FF@'+cod_mandato
			else a.Cod_Fiscale
	end as Cod_fiscale, 
	PIva_Fiduciaria, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi, 
	ProfiloAttivo, 
	Profilo_EC, -- aggiunto 30 Giugno 2022
	'G' AS TipoElaborazione, 
	CASE 
		WHEN (DATEDIFF(DAY,Data_InizioBase, Data_INZIOAVANZATO) > 0) 
			THEN 1 
			ELSE 0 END 
	AS AdesioneSuccessivaAvanzato, 
	InvioBenvenuto, 
	ClienteMigrato, 
	RisorseNa, 
	NumRevoche, 
    null as PartViaDisinv, --ma serve????
    Data_Perf
     ,a.TIP_CONTRATTO --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,riattivazione as tip_riattivazione --DA REPLAT Rilascio nuova gestione Private/Affluent
	 ,a.chiaveClientePb --V Serve nella [C6Mart].[RP_AggiornaFlagContratto] per facilitare i join
	,a.TipoConsulenza
	,a.DATA_INZIOAVANZATO
FROM 
    C6Mart.VCONTRATTI a
JOIN
	C6Mart.CONTRATTOSEI_METADATI b
ON
	a.chiaveClientePB = b.chiaveClientePB
JOIN
    C6Mart.GESTIONE_EMAIL AS ge 
ON a.Cod_Fiscale = ge.Cod_Fiscale AND a.Rete = ge.Rete AND ge.Tipo = 'PERF' AND ge.data_invio IS NULL

WHERE     1 = 1 
AND (InvioBenvenuto = 'S') 

AND (isnull(Data_FineAvanzato,'99990101') > getDate()) 

and a.rete+a.COD_FISCALE not in ( select rete+COD_FISCALE from C6Mart.contratti_da_escludere)

--pezzotto 20240710
--UNION ALL

--SELECT    
--	Rete, 
--	Cod_Agente, 
--	case
--		when(isnull(cod_mandato,'') <> '')
--			then 'FF@'+cod_mandato
--			else Cod_Fiscale
--	end as Cod_fiscale, 
--	PIva_Fiduciaria, 
--	CodiceContratto, 
--	Freq_Monitoraggio, 
--	Freq_Diagnosi, 
--	ProfiloAttivo,
--	Profilo_EC, --aggiunto 30/06/2022 
--	'G' AS TipoElaborazione, 
--	CASE 
--		WHEN (DATEDIFF(DAY,Data_InizioBase, Data_INZIOAVANZATO) > 0) 
--			THEN 1 
--			ELSE 0 END 
--	AS AdesioneSuccessivaAvanzato, 
--	InvioBenvenuto, 
--	ClienteMigrato, 
--	RisorseNa, 
--	NumRevoche, 
--    null as PartViaDisinv, --ma serve????
--    Data_Perf
--    ,a.TIP_CONTRATTO --DA REPLAT Rilascio nuova gestione Private/Affluent
--    ,riattivazione as tip_riattivazione --DA REPLAT Rilascio nuova gestione Private/Affluent
--    ,a.chiaveClientePb --V Serve nella [C6Mart].[RP_AggiornaFlagContratto] per facilitare i join
--	,a.TipoConsulenza
--	,a.DATA_INZIOAVANZATO as Data_InizioAvanzato
----select *
--FROM 
--    C6Mart.VCONTRATTI a
--JOIN
--	C6Mart.CONTRATTOSEI_METADATI b
--ON
--	a.chiaveClientePB = b.chiaveClientePB
--where COD_FISCALE='RMNFNC55T03A783I'

--fine pezzotto










/*
UNION ALL
SELECT     C6.Rete, Cod_Agente, C6.Cod_Fiscale, PIva_Fiduciaria, CodiceContratto, Freq_Monitor, Freq_Diagnosi, ProfiloAttivo, 'G' AS TipoElaborazione, CASE WHEN (DATEDIFF(DAY, 
                      Data_InizioBase, Data_Sott) > 0) THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, InvioBenvenuto, ClienteMigrato, RisorseNa, NumRevoche, 
                      PartViaDisinv, Data_Perf, TIP_CONTRATTO,tip_riattivazione
FROM         C6Mart.CONTRATTOSEI AS C6 INNER JOIN
                      C6Mart.GESTIONE_EMAIL AS ge ON C6.Cod_Fiscale = ge.Cod_Fiscale AND C6.Rete = ge.Rete AND ge.Tipo = 'PERF' AND ge.data_invio IS NULL
WHERE     (1 = 1) AND InvioBenvenuto = 'S' AND (Data_FineAvanzato IS NULL)

*/





GO
/****** Object:  View [C6Mart].[RP_vContrattiPerGenerazioneReport]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

















--select * from [C6Mart].[RP_vContrattiPerGenerazioneReport]


CREATE      VIEW  [C6Mart].[RP_vContrattiPerGenerazioneReport]
AS
SELECT  
	C6.Rete, 
	Cod_Agente, 
	C6.Cod_Fiscale, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi,
	TipoElaborazione,
	AdesioneSuccessivaAvanzato,
	InvioBenvenuto, 
    ClienteMigrato, 
    RisorseNa, 
    NumRevoche,
    tip_contratto,
    tip_riattivazione,
	TipoConsulenza,
	data_perf,
	data_inizioavanzato
FROM C6Mart.RP_vTuttiIContratti AS C6 


WHERE  (1 = 1)	
       AND cod_agente not in ('015126')
        AND (InvioBenvenuto = 'N') 
	
		AND (ISNULL(RisorseNa, 'N') = 'N') 
		AND (ISNULL(NumRevoche, 0) = 0)
		AND ((DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR cod_agente='015312')
	
		AND	C6.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
	--	and c6.cod_fiscale='MSTMLN76S62H501P'
		

		AND Profilo_EC=1

--		union all

----forzatura

--SELECT  
--	C6.Rete, 
--	Cod_Agente, 
--	C6.Cod_Fiscale, 
--	CodiceContratto, 
--	Freq_Monitoraggio, 
--	Freq_Diagnosi,
--	TipoElaborazione,
--	AdesioneSuccessivaAvanzato,
--	InvioBenvenuto, 
--    ClienteMigrato, 
--    RisorseNa, 
--    NumRevoche,
--    tip_contratto,
--    tip_riattivazione,
--	TipoConsulenza,
--	data_perf,
--	data_inizioavanzato
--FROM C6Mart.RP_vTuttiIContratti AS C6 


--WHERE  (1 = 1)	
--       AND cod_agente not in ('015126')
--    --    AND (InvioBenvenuto = 'N') 
	
--	--	AND (ISNULL(RisorseNa, 'N') = 'N') 
----		AND (ISNULL(NumRevoche, 0) = 0)
--	--	AND ((DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR cod_agente='015312')
	
----		AND	C6.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
--	--	and c6.cod_fiscale='MSTMLN76S62H501P'
		

--	--	AND Profilo_EC=1
--		and C6.Cod_fiscale='RMNFNC55T03A783I'





GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_newkey]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
--select * from [C6Mart].[rp_vTuttiIPortafogli_newkey]
CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_newkey]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
/*NKCD  CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END NKCD*/case when isnull(anag_prodotti.cod_isin,'')='' 
then isnull(anag_prodotti.cod_adeguatezza,'') else anag_prodotti.cod_isin end	 AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
/*NKCD		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END	NKCD*/case when isnull(anag_prodotti.cod_adeguatezza,'')='' 
then isnull(anag_prodotti.cod_isin,'') else anag_prodotti.cod_adeguatezza end	AS CodiceAdeguatezza,
		-----------------------------------------------------------

		/*NKCD''NKCD*/isnull(anag_prodotti.cod_interno,'')	AS Piazza,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_maf,'')										AS CodiceValuta,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_sottoprodotto,'')										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		/*NKCD PATRIMONIO_BF.ISIN NKCD*/case when isnull(anag_prodotti.cod_adeguatezza,'')='' 
then isnull(anag_prodotti.cod_isin,'') else anag_prodotti.cod_adeguatezza end AS CodiceProdotto,

		--- 23//5/2018
		/*NKCD CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END						NKCD*/	
		case when isnull(anag_prodotti.cod_isin,'')='' 
then isnull(anag_prodotti.cod_adeguatezza,'') else anag_prodotti.cod_isin end	AS CodiceAdeguatezza,

		/*NKCD''NKCD*/isnull(anag_prodotti.cod_interno,'')	AS Piazza,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_maf,'')										AS CodiceValuta,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_sottoprodotto,'')										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF 
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		/*NKCD CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END		NKCD*/case when isnull(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO,'')='' 
then DETTAGLIO_ASUL.COD_ISIN_SOTT else DETTAGLIO_ASUL.COD_ISIN_FITTIZIO end		
						AS CodiceProdotto,

		--- 23//5/2018-------------------------------------------------		
		/*NKCD '' NKCD*/case when isnull(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO,'')='' 
then DETTAGLIO_ASUL.COD_ISIN_SOTT else DETTAGLIO_ASUL.COD_ISIN_FITTIZIO end		AS CodiceAdeguatezza,
		---------------------------------------------------------------

		/*NKCD '' NKCD*/isnull(DETTAGLIO_ASUL.COD_interno,'')		AS Piazza,
		/*NKCD '' NKCD*/isnull(PATRIMONIO_BF.COD_MAF,'')		AS CodiceValuta,
		/*NKCD '' NKCDDETTAGLIO_ASUL.COD_ISIN_FITTIZIO*/isnull(PATRIMONIO_BF.COD_SOTTOPRODOTTO,'')									AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		/*NKCD INTERMEDIARIO.CODICEADEGUATEZZA NKCD*/isnull(INTERMEDIARIO.codiceisin,'')		AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		/*NKCD INTERMEDIARIO.CODICEADEGUATEZZA	NKCD*/isnull(INTERMEDIARIO.CODICEADEGUATEZZA,'') 		AS CodiceAdeguatezza, --modifica 050520 per anomalie Levi
		/*NKCD INTERMEDIARIO.PIAZZA	NKCD*/ isnull(INTERMEDIARIO.codiceinterno,'')			AS Piazza,
		/*NKCD INTERMEDIARIO.CODICEVALUTA 	NKCD*/	isnull(INTERMEDIARIO.CODICEMAF,'')		AS CodiceValuta,
		/*NKCD INTERMEDIARIO.CLASSE NKCD*/ isnull(INTERMEDIARIO.CODICESOTTOPRODOTTO,'')				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		isnull(CATEGORIAPRODOTTO.CODICEisin,'') AS CodiceProdotto,
		isnull(CATEGORIAPRODOTTO.codiceadeguatezza,'')					AS CodiceAdeguatezza,
		isnull(CATEGORIAPRODOTTO.CODICEinterno,'')			AS Piazza,
		isnull(CATEGORIAPRODOTTO.codicemaf,'')			AS CodiceValuta,
		isnull(CATEGORIAPRODOTTO.codicesottoprodotto,'')			AS Classe,
		/*NKCD CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe, NKCD*/
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		'EUR' AS CodiceAdeguatezza,
		-----------------------------------------------------------


		'EUR'										AS Piazza,
		'EUR'										AS CodiceValuta,
		'EUR'										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END

GO
/****** Object:  View [C6MartPeriodico].[RP_vPrometeiaTerziCategoriaProdotto_aladdin_bkp_20250305]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE   VIEW [C6MartPeriodico].[RP_vPrometeiaTerziCategoriaProdotto_aladdin_bkp_20250305]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	--------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	---------------------------------------
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (
	--34024
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		--------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'Asset' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		------------------------
		--ASSETCLASS_TERZI.COD_ISIN 
		'' AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		'' AS COD_ADEGUATEZZA,
		--ASSETCLASS_TERZI.COD_MAF 
		''AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL

	--76400
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
			------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
			------------------------
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL

	--178
	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
			---------------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		-------------------
		tutti.TIPOptf	,		
	tutti.COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		,
	tutti.FAMPRODT ,
	--------------------------
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE


GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20180112]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20180112]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE 1=1    /* 20171110 */
	and (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	(
	/* 20171110
	----'FGRBNLT65D44A859X' /* temp 20161207 */
	----,'FPNDLCI41T49F205P' /* temp 20170317 */
	----,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	----,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SNVGMNL73A15H501Y'
	----,'SMTANDR70P22H501S'
	----,'SFLCNTN47B12F631K'
	----,'SFF@10093'
	----,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	*/
	/* ,'FFRNNCL87D25G224T'  20171110 nome+cognome aggiornato */
	/* ,'FGLLFBA57R22F205P'  temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti 
	,'STZZFNC51B57D810T' /* temp 20171005 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'SLVORSO76A65D711N' /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
				                        20171110 nome+cognome aggiornato */
	'FFF@10105'		 /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
	                     /* 20171110 AllineaPortafoglioClienti non restiuisce record */
	,'SGBRMCL56B15C390A'  /* 20171110 AllineaPortafoglioClienti non restiuisce record */
	)

GO
/****** Object:  Table [C6Staging].[ESG_Metriche_Cliente_IL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ESG_Metriche_Cliente_IL](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL,
 CONSTRAINT [PK_ESG_Metriche_Cliente_IL] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[CodiceFiscale] ASC,
	[PIva] ASC,
	[CodMan] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vBrsClienteESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











CREATE VIEW [C6Mart].[vBrsClienteESG]
AS
select * from (
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end as cod_fiscale,
		[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[obiettivo_ESG_minimo]
      ,[ESG_Rating]
      ,[ESG_E_perc]
      ,[ESG_S_perc]
      ,[ESG_G_perc]
from c6staging.ESG_Metriche_Cliente_IL a
) a

GO
/****** Object:  Table [C6Mart].[ANAG_CONTRATTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CONTRATTI](
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[STATO] [varchar](1) NULL,
	[COD_SOTTOPRODOTTO] [varchar](30) NOT NULL,
	[TIPO_PRODOTTO] [varchar](50) NOT NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[COD_MANDATO] [varchar](20) NULL,
	[COD_CC] [varchar](12) NULL,
	[RUBRICATO] [varchar](20) NULL,
	[CUSTODIA_GAR] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_CONTRATTI_1] PRIMARY KEY CLUSTERED 
(
	[ID_CONTRATTO] ASC,
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_PRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[DATI_REPORT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[DATI_REPORT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INDIRIZZO] [varchar](30) NULL,
	[LOCALITA] [varchar](30) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[FLAG_REPORT] [varchar](1) NULL,
	[REPORT_DIAGN] [varchar](1) NULL,
	[REPORT_MONIT] [varchar](1) NULL,
	[DATA_REPORT] [datetime] NULL,
	[REPORT_FREQ] [varchar](1) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__DATI_REPORT__339FAB6E] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_CC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CC](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](12) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDOCONTABILE] [decimal](15, 3) NULL,
	[SALDODISPONIBILE] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_CC] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_CC] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_PROMOTORI](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[PARTITA_IVA] [varchar](11) NULL,
	[COGNOME] [varchar](128) NULL,
	[NOME] [varchar](128) NULL,
	[RAG_SOC] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[LOCALITA] [varchar](50) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[COD_ABI] [varchar](5) NULL,
	[COD_CAB] [varchar](5) NULL,
	[COD_CIN] [varchar](1) NULL,
	[COD_CC] [varchar](12) NULL,
	[STATO] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_PROMOTORI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[ID_PROMOTORE] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [dbo].[S25_DATIANAGRAFICI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S25_DATIANAGRAFICI]
AS
SELECT     C6Mart.ANAG_CLIENTI.NOME + ' ' + C6Mart.ANAG_CLIENTI.COGNOME + ' (' + C6Mart.ANAG_CLIENTI.COD_FISCALE + ')' AS cliente, 
                      C6Mart.ANAG_CLIENTI.DATA_NASCITA, C6Mart.ANAG_CLIENTI_PREV.PROFESSIONE, C6Mart.ANAG_CLIENTI.STATO_CIVILE, 
                      CASE WHEN COALESCE (C6Mart.ANAG_CLIENTI.num_figli, 0) 
                      <> 0 THEN C6Mart.ANAG_CLIENTI.num_componenti + ' (' + C6Mart.ANAG_CLIENTI.num_figli + ')' ELSE C6Mart.ANAG_CLIENTI.num_componenti END AS nucleo,
                       C6Mart.ANAG_CLIENTI.INDIRIZZO + ' -' + C6Mart.ANAG_CLIENTI.CAP + ' - ' + C6Mart.ANAG_CLIENTI.LOCALITA + ' - (' + C6Mart.ANAG_CLIENTI.PROVINCIA
                       + ')' AS Expr1, C6Mart.ANAG_CLIENTI.COD_FISCALE, NULL AS cod_pb, C6Mart.ANAG_CONTRATTI.RETE, C6Mart.ANAG_CONTRATTI.ID_CONTRATTO, 
                      C6Mart.ANAG_CONTRATTI.STATO AS StatoContratto, C6Mart.ANAG_CONTRATTI.DATA_SOTTOSCRIZIONE, C6Mart.ANAG_CONTRATTI.DATA_PERF, 
                      C6Mart.ANAG_CC.FASCIA_CPP, C6Mart.ANAG_CLIENTI.E_MAIL, NULL AS produzioneReport, C6Mart.ANAG_CLIENTI.INDIRIZZO, 
                      C6Mart.ANAG_CLIENTI.CAP, C6Mart.ANAG_CLIENTI.LOCALITA, C6Mart.ANAG_CLIENTI.PROVINCIA, C6Mart.ANAG_CLIENTI.NAZIONE, NULL AS presso, 
                      C6Mart.DATI_REPORT.FLAG_REPORT, C6Mart.ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB
FROM         C6Mart.ANAG_CC INNER JOIN
                      C6Mart.ANAG_CLIENTI ON C6Mart.ANAG_CC.RETE = C6Mart.ANAG_CLIENTI.RETE INNER JOIN
                      C6Mart.ANAG_CONTRATTI ON C6Mart.ANAG_CC.RETE = C6Mart.ANAG_CONTRATTI.RETE INNER JOIN
                      C6Mart.ANAG_CLIENTI_PREV ON C6Mart.ANAG_CC.RETE = C6Mart.ANAG_CLIENTI_PREV.RETE INNER JOIN
                      C6Mart.DATI_REPORT ON C6Mart.ANAG_CC.RETE = C6Mart.DATI_REPORT.RETE INNER JOIN
                      C6Mart.ANAG_PROMOTORI ON C6Mart.ANAG_CC.RETE = C6Mart.ANAG_PROMOTORI.RETE
GO
/****** Object:  View [C6MartPeriodico].[RP_vPrometeiaTerziIntermediario]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- View
CREATE VIEW [C6MartPeriodico].[RP_vPrometeiaTerziIntermediario]
AS

SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE,
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		 
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all

	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		'EUR' AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		--sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE 
		case when (sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int)<0) then sum(PATRIMONIO_TERZI.CTV) else sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end AS CONTROVALORE --modifica 050520 per anomalie Levi
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,PATRIMONIO_TERZI.cod_Fiscale,rete

	

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE


GO
/****** Object:  View [C6MartPeriodico].[RP_vPrometeiaTerziCategoriaProdotto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6MartPeriodico].[RP_vPrometeiaTerziCategoriaProdotto]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE

GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_Indicatore_newkey]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_Indicatore_newkey]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
	/*NKCD	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END	NKCD*/CASE ISNULL(ANAG_PRODOTTI.COD_ISIN, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
			ELSE ANAG_PRODOTTI.COD_ISIN
		END									AS CodiceProdotto,


		--- 23//5/2018 ----------------------------------------
	/*NKCD	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END NKCD*/case when isnull(anag_prodotti.cod_adeguatezza,'')='' 
then isnull(anag_prodotti.cod_isin,'') else anag_prodotti.cod_adeguatezza end										AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza, --codiceInterno
		--''										AS CodiceValuta, --codiceMAF
		--''										AS Classe, --codiceSottoprodotto
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '|Progetto investimento'
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		/*NKCD	PATRIMONIO_BF.ISIN  NKCD*/ case when isnull(anag_prodotti.cod_adeguatezza,'')='' 
then isnull(anag_prodotti.cod_isin,'') else anag_prodotti.cod_adeguatezza end AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
	/*NKCD	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END	NKCD*/case when isnull(anag_prodotti.cod_isin,'')='' 
then isnull(anag_prodotti.cod_adeguatezza,'') else anag_prodotti.cod_isin end									AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--	''										AS Piazza,
		--	''										AS CodiceValuta,
		--	''										AS Classe,
		-- fine modifica del 9/7/2018

			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento' 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		/*NKCD '' NKCD*/case when isnull(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO,'')=''
 then DETTAGLIO_ASUL.COD_ISIN_SOTT else DETTAGLIO_ASUL.COD_ISIN_FITTIZIO end		AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		/*NKCD INTERMEDIARIO.CODICEADEGUATEZZA NKCD*/isnull(INTERMEDIARIO.codiceisin,'')		AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		isnull(INTERMEDIARIO.CODICEADEGUATEZZA,'')			AS CodiceAdeguatezza, --modifica 050520 per risolvere anomalie Levi
		/*NKCD INTERMEDIARIO.PIAZZA	NKCD*/ isnull(INTERMEDIARIO.codiceinterno,'')			AS Piazza,
		/*NKCD INTERMEDIARIO.CODICEVALUTA 	NKCD*/	isnull(INTERMEDIARIO.CODICEMAF,'')		AS CodiceValuta,
		/*NKCD INTERMEDIARIO.CLASSE NKCD*/ isnull(INTERMEDIARIO.CODICESOTTOPRODOTTO,'')				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		isnull(CATEGORIAPRODOTTO.CODICEisin,'') AS CodiceProdotto,
		isnull(CATEGORIAPRODOTTO.codiceadeguatezza,'')					AS CodiceAdeguatezza,
		isnull(CATEGORIAPRODOTTO.CODICEinterno,'')			AS Piazza,
		isnull(CATEGORIAPRODOTTO.codicemaf,'')			AS CodiceValuta,
		isnull(CATEGORIAPRODOTTO.codicesottoprodotto,'')			AS Classe,		
		/*NKCD CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe, NKCD*/
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,
/*NKCD
		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018
NKCD*/
		'EUR' AS CodiceAdeguatezza,
		'EUR'										AS Piazza,
		'EUR'										AS CodiceValuta,
		'EUR'										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	PATRIMONIO_BF.COD_INTERNO,
	PATRIMONIO_BF.COD_MAF,
	PATRIMONIO_BF.COD_SOTTOPRODOTTO,
	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [dbo].[S1BF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S1BF]
AS
SELECT     SUM(CTV) AS controvalore, RETE
FROM         C6Mart.PATRIMONIO_BF
GROUP BY RETE
GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_BK_eligoTitoli]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- View

-- View
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq_BK_eligoTitoli]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
		SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

				ELSE
					'RISFIN|PIRAMIDE|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END											AS Portafoglio,
									
		 PATRIMONIO_BF.ISIN AS CodiceProdotto,

			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		 PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6Martperiodico.PATRIMONIO_BF
		INNER JOIN C6Martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6Martperiodico.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END




GO
/****** Object:  Table [C6Mart].[GESTIONE_PDF_FTP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GESTIONE_PDF_FTP](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[ZZZ_vContrattiPerGenerazioneReportEmail]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Vista in sostituzione della vContrattiPerGenerazioneReport in quanto deve girare nel periodo di competenza del trimestre precedente e
--la getTrimestre utilizzerebbe quello come trimestre e non quello successivo a cui si riferiscono le mail
CREATE VIEW [C6MartPeriodico].[ZZZ_vContrattiPerGenerazioneReportEmail]
AS
SELECT     C6.Rete, C6.Cod_Agente, C6.Cod_Fiscale, C6.CodiceContratto, C6.Freq_Monitor, C6.Freq_Diagnosi, 'T' AS TipoElaborazione, 
                      CASE WHEN DATEDIFF(DAY, Data_InizioBase, Data_Sott) > 0 THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, C6.InvioBenvenuto, 
                      C6.ClienteMigrato, C6.RisorseNA, C6.NumRevoche
FROM         C6Mart.CONTRATTOSEI AS C6 INNER JOIN
                      C6Mart.GESTIONE_PDF_FTP AS PDF ON C6.Rete = PDF.Rete AND C6.Cod_Fiscale = PDF.CodiceFiscale
WHERE     
	(1 = 1) AND 
	isnull(c6.data_fineavanzato,cast('99991231' as datetime)) > cast('20091231' as datetime) and
	pdf.dataGenerazione < cast('20091201' as datetime) and
	substring(pdf.nomeFile,0,12) = c6.codicecontratto


GO
/****** Object:  View [C6StagingPeriodico].[vListaClientiTrimestrale]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE VIEW [C6StagingPeriodico].[vListaClientiTrimestrale]
AS
SELECT
Rete
,Cod_Agente as [Codice Agente]
,Cod_Fiscale as [Codice Fiscale]
,CodiceContratto as [Codice Contratto]
,isnull(FREQ_MONITORAGGIO, 'T') as [Freq Monitoraggio]
,FREQ_DIAGNOSI as [Freq Diagnosi]
,CONVERT(varchar(8), Data_FineAvanzato, 112) as [Data Revoca]
,case when tip_contratto = 3 then 3 else 2 end   as [Tipo Contratto]
,TIP_RIATTIVAZIONE as [Tipo Riattivazione]
,case when tip_contratto = 3 then 'S'else '' end as ClienteDB --FLAGCLIDB  
FROM
C6StagingPERIODICO.APPO_CONTRATTI

GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6StagingPeriodico].[vListaClientiTrimestrale_NoRFa0MIfid]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6StagingPeriodico].[vListaClientiTrimestrale_NoRFa0MIfid]
AS
SELECT
Rete
,Cod_Agente as [CodiceAgente]
,Cod_Fiscale as [CodiceFiscale]
,CodiceContratto as [CodiceContratto]
,isnull(FREQ_MONITORAGGIO, 'T') as [FreqMonitoraggio]
,FREQ_DIAGNOSI as [Freq Diagnosi]
,CONVERT(varchar(8), Data_FineAvanzato, 112) as [DataRevoca]
,TIP_CONTRATTO as [TipoContratto]
,TIP_RIATTIVAZIONE as [TipoRiattivazione]
FROM
C6StagingPERIODICO.APPO_CONTRATTI
where rete+cod_fiscale not in ( select rete+cod_fiscale
from c6martperiodico.controllo_trimestrale
where stato_report in (2,3,23))

GO
/****** Object:  Table [C6Mart].[RISCHIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[RISCHIO_DETTAGLIO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](256) NULL,
	[CHIAVE_PRODOTTO] [varchar](128) NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[TIPO_COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[DIV_CONTRATT] [varchar](30) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [dbo].[S43_DETTAGLIOPRODOTTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S43_DETTAGLIOPRODOTTI]
AS

SELECT
	PATRIMONIO_BF.DATA_OPERAZIONE AS DataDiSottoscrizioni, 
	PATRIMONIO_BF.ID_CONTRATTO AS ContrattoDossier, 
	ANAG_PRODOTTI.DESCR_PRODOTTO, 
	NULL AS Aggiornamento, 
	PATRIMONIO_BF.CTV AS Controvalore, 
	PATRIMONIO_BF.VERSATO_NETTO AS VersatoNetto, 
	PATRIMONIO_BF.CTV - PATRIMONIO_BF.VERSATO_NETTO AS MinusPlusValenza, 
	RISCHIO_DETTAGLIO.VAR_PERC_PTF, 
	PATRIMONIO_BF.REND_ANNO AS PerformanceYTD, 
	PATRIMONIO_BF.REND_SOTTOSCRIZIONE AS PerformanceDaYTD, 
	PATRIMONIO_BF.RETE, 
	PATRIMONIO_BF.COD_FISCALE, 
	PATRIMONIO_BF.COD_SOTTOPRODOTTO
FROM C6MART.PATRIMONIO_BF 
INNER JOIN C6MART.ANAG_PRODOTTI 
	ON PATRIMONIO_BF.COD_PRODOTTO = ANAG_PRODOTTI.COD_PRODOTTO 
INNER JOIN C6MART.RISCHIO_DETTAGLIO 
	ON PATRIMONIO_BF.RETE = RISCHIO_DETTAGLIO.RETE
GO
/****** Object:  View [C6Mart].[vPatrimoniobfAggregato_SenzaNobPrez]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE VIEW [C6Mart].[vPatrimoniobfAggregato_SenzaNobPrez]
AS
SELECT     
	PATRIMONIO_bf.RETE, 
	PATRIMONIO_bf.COD_FISCALE, 
	SUM(case when Upper(id_area)='CC' and ctv<0 then 0 else ctv end) as CTV, --modificata il 04012020 la fonte del ctv con la case when per escludere i cc negativi dal conto
	SUM(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
	SUM(case Upper(id_area) when 'CC' then ctv else 0 end ) as ContoCorrente,
	SUM(case Upper(id_area) when 'CC' then 0 else ctv end ) as PatrimonioSenzaCC,
	--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv
	--decommentare ed aggiungere una virgola alla riga sovrastante, indi commentare detta riga
	MAX((isnull(PART_VIAGG.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv
FROM C6Mart.PATRIMONIO_bf
LEFT JOIN 
(
	--commentare Sum Partvia_Inv, decommentare Sum Partvia_Disinv
	SELECT a.rete, a.cod_fiscale, /*sum (a.PARTVIA_INV) AS PARTVIA_INV,*/ sum (a.PARTVIA_DISINV) AS PARTVIA_DISINV
	FROM (
		SELECT DISTINCT rete, cod_fiscale, id_contratto, partvia_disinv --partvia_inv 
		FROM C6Mart.PATRIMONIO_bf
		--WHERE partvia_inv IS NOT NULL --commentare questa riga
	) a
	GROUP BY rete, cod_fiscale
) PART_VIAGG
	ON 
		PART_VIAGG.RETE = PATRIMONIO_bf.RETE
		AND PART_VIAGG.COD_FISCALE = PATRIMONIO_bf.COD_FISCALE 
		where isnull(PATRIMONIO_bf.Nob_Prez,'N')<>'S'
GROUP BY 
	PATRIMONIO_bf.rete, PATRIMONIO_bf.COD_FISCALE






GO
/****** Object:  Table [C6MartPeriodico].[ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_PROMOTORI](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[PARTITA_IVA] [varchar](11) NULL,
	[COGNOME] [varchar](128) NULL,
	[NOME] [varchar](128) NULL,
	[RAG_SOC] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[LOCALITA] [varchar](50) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[COD_ABI] [varchar](5) NULL,
	[COD_CAB] [varchar](5) NULL,
	[COD_CIN] [varchar](1) NULL,
	[COD_CC] [varchar](12) NULL,
	[STATO] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_PROMOTORI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[ID_PROMOTORE] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6StagingPeriodico].[vListaClientiTrimestrale_anag_pb_20190307]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE VIEW [C6StagingPeriodico].[vListaClientiTrimestrale_anag_pb_20190307]
AS
SELECT
appo.Rete
,appo.Cod_Agente as [Codice Agente]
,(CASE
	when anag.id_promotore is null then '' 
	else
	anag.cognome+' '+anag.nome 
	END) as [Nominativo]
,appo.Cod_Fiscale as [Codice Fiscale]
,appo.CodiceContratto as [Codice Contratto]
,isnull(appo.FREQ_MONITORAGGIO, 'T') as [Freq Monitoraggio]
,appo.FREQ_DIAGNOSI as [Freq Diagnosi]
,CONVERT(varchar(8), appo.Data_FineAvanzato, 112) as [Data Revoca]
,appo.TIP_CONTRATTO as [Tipo Contratto]
,appo.TIP_RIATTIVAZIONE as [Tipo Riattivazione]
FROM
C6StagingPERIODICO.APPO_CONTRATTI appo
left join 
[C6MartPeriodico].[ANAG_PROMOTORI] anag
on appo.rete=anag.rete and appo.Cod_Agente=anag.id_promotore


GO
/****** Object:  View [C6Mart].[RP_vContrattiPerGenerazioneReport_20161129_test]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6Mart].[RP_vContrattiPerGenerazioneReport_20161129_test]
AS
SELECT  
	C6.Rete, 
	Cod_Agente, 
	C6.Cod_Fiscale, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi,
	TipoElaborazione,
	AdesioneSuccessivaAvanzato,
	InvioBenvenuto, 
    ClienteMigrato, 
    RisorseNa, 
    NumRevoche,
    tip_contratto,
    tip_riattivazione
FROM C6Mart.RP_vTuttiIContratti AS C6 
WHERE  (1 = 1)	
        AND cod_agente not in ('015126')
        AND (InvioBenvenuto = 'N') 
		--AND (ClienteMigrato = 'S')    /* en20161021 */
		--AND (ISNULL(RisorseNa, 'N') = 'N') /*  */
		AND (ISNULL(NumRevoche, 0) = 0)
		AND ((DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR cod_agente='015312')
		--OR cod_fiscale = 'FF@5117')
		AND	C6.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND ProfiloAttivo = 1


GO
/****** Object:  View [C6Mart].[RP_vTuttiIPortafogli_ccLiq]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[RP_vTuttiIPortafogli_ccLiq]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL


---V Modifica per calcolo VaR prodotti ASU2
	SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END

GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		--- 23//5/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,

		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		INTERMEDIARIO.CODICEADEGUATEZZA			AS CodiceAdeguatezza, --modifica 050520 per anomalie Levi
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------


		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END

GO
/****** Object:  View [C6Mart].[vPatrimonioTerziAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[vPatrimonioTerziAggregato]
AS
SELECT     
	RETE, 
	COD_FISCALE, 
	SUM(ROUND(CTV,2)) as CTV,
	SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2))  AS ControvaloreSenzaCC,
	SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN CTV ELSE 0 END,2)) AS ControvaloreCC

FROM
	C6Mart.PATRIMONIO_TERZI
GROUP BY 
	RETE, 
	COD_FISCALE

GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_20180709]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_20180709]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,


		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------

			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------



		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------


		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [C6Mart].[RP_vContrattiMigrati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* Nel giro di email di revoca non si devono recuperare i dati dal SEI (Fabrizio) --
AND (Cod_Fiscale = 'TBNMSM52C01E938I')*/
CREATE VIEW [C6Mart].[RP_vContrattiMigrati]
AS
SELECT		Rete, 
			Cod_Agente, 
			Cod_Fiscale, 
			PIva_Fiduciaria, 
			CodiceContratto, 
			Freq_Monitoraggio, 
			Freq_Diagnosi, 
			TipoElaborazione, 
			AdesioneSuccessivaAvanzato, 
            InvioBenvenuto, 
			ClienteMigrato, 
			RisorseNa, 
			NumRevoche, 
			Data_Perf

FROM        C6Mart.RP_vTuttiIContratti AS C6
WHERE		(1 = 1) 
			AND (InvioBenvenuto = 'N') 
			AND (ClienteMigrato = 'S') 
			AND (ISNULL(NumRevoche, 0) = 0)
--and c6.cod_fiscale = 'BRZGPP39H08C352F'

GO
/****** Object:  View [C6Staging].[vDelegato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











CREATE VIEW [C6Staging].[vDelegato]
AS

SELECT  [chiaveDelegato]
      ,[chiaveClientePB]
      ,[nomeDelegato]
      ,[cognomeDelegato]
      ,[codFis]
      ,[tipoDelega]
      ,[codProfiloEC]
      ,[flagDefault]
      ,[flagSelezionato]
      ,[dtInserimento]
      ,[dtAggiornamento]
  FROM [Consuni].[ConsulenzaUnica].[dbo].[Delegato]
  where flagDefault=1
	



GO
/****** Object:  View [C6Mart].[RP_vContrattiNonGenerati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE   VIEW [C6Mart].[RP_vContrattiNonGenerati]
AS
SELECT -- 	top 50	
	
			C6.Rete, 
			C6.Cod_Agente, 
			C6.Cod_Fiscale, 
			C6.PIva_Fiduciaria, 
			C6.CodiceContratto, 
			C6.Freq_Monitoraggio, 
			C6.Freq_Diagnosi, 
			C6.TipoElaborazione, 
			C6.AdesioneSuccessivaAvanzato, 
            C6.InvioBenvenuto, 
			C6.ClienteMigrato, 
			C6.RisorseNa, 
			C6.NumRevoche, 
			C6.Data_Perf,
			C6.chiaveClientePb,
			isnull(d.Codfis,'') as Cod_Fiscale_Delegato


FROM        C6Mart.RP_vTuttiIContratti C6
left join [C6Staging].[vDelegato] d
on c6.chiaveClientePb=d.chiaveclientePB
WHERE		(1 = 1) 
			AND (InvioBenvenuto = 'N') 
		--/*added by me – pk*/	and cod_fiscale not in (
		--	'FROFMN88T49H501H'
		--	) /*added end*/
--			AND (ISNULL(NumRevoche, 0) = 0)
--and cod_fiscale = 'BLNSVN53D06D205B'

--union all

--forzatura

--SELECT 	--top 3	
	
--			C6.Rete, 
--			C6.Cod_Agente, 
--			C6.Cod_Fiscale, 
--			C6.PIva_Fiduciaria, 
--			C6.CodiceContratto, 
--			C6.Freq_Monitoraggio, 
--			C6.Freq_Diagnosi, 
--			C6.TipoElaborazione, 
--			C6.AdesioneSuccessivaAvanzato, 
--            C6.InvioBenvenuto, 
--			C6.ClienteMigrato, 
--			C6.RisorseNa, 
--			C6.NumRevoche, 
--			C6.Data_Perf,
--			C6.chiaveClientePb,
--			isnull(d.Codfis,'') as Cod_Fiscale_Delegato


--FROM        C6Mart.RP_vTuttiIContratti C6
--left join [C6Staging].[vDelegato] d
--on c6.chiaveClientePb=d.chiaveclientePB
--WHERE		(1 = 1) 
			
--			and C6.Cod_fiscale='RMNFNC55T03A783I'

--select * from [C6Mart].[RP_vContrattiNonGenerati_TEST2] 


GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_20180831_preNewIndicatore]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_20180831_preNewIndicatore]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END

GO
/****** Object:  View [dbo].[S47_CONTICORRENTIBF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S47_CONTICORRENTIBF]
AS
SELECT     DATA_APERTURA AS DataDiApertura, COD_CC AS NumerodiCC, NULL AS Aggiornamento, SALDO, RETE, COD_FISCALE
FROM         C6Mart.ANAG_CC
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL,
	[prodotto_id] [varchar](150) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[vBrsVarAllAggr]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE VIEW [C6MartPeriodico].[vBrsVarAllAggr] --where codicefiscale='BRCMRC67H15L736N' order by 3
AS
select * from (
--complessivo BF no CC (OK con Prom)
select rete,
case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,
case when(isnull(position_id,'')='') then concat_aggregazione else substring(position_id,1,charindex('@',position_id)-1) end as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale,
0 as clsint,
'ISR' as mdclcclsint,
0 as clsr,
0 as cicontroparte,
0 as cltipo,
0 as clmercato,
0 as clliquidita,
0 as isr,
0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210630 
where concat_aggregazione like 'COMPLESSIVO|BF%' and (position_id like '%@%' or position_id is null) --and codicefiscale='BRCMRC67H15L736N'
union
--ASUL -->
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,position_id as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210630 
where concat_aggregazione like 'COMPLESSIVO|BF%' and SLEEVETAG='WRAPPER_TYPE' --and codicefiscale='BRCMRC67H15L736N'
union
--risfin piramide no CC (OK con Prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then Replace(concat_aggregazione,'COMPLESSIVO|BF','RISFIN|PIRAMIDE') else substring(Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE'),1,charindex('@',position_id)) end as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210630--_20210719 
where concat_aggregazione like 'COMPLESSIVO|BF%'  -- and codicefiscale='TRMRRT42H25G852P' 
and substring(isnull(position_id,''),1,charindex('@',isnull(position_id,''))) not like 'COMPLESSIVO|BF|CC%'  and isnull(sleevetag,'')<>'WRAPPER_TYPE' 
--and codicefiscale='BRCMRC67H15L736N'
union --ASUL-->
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE') as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210630--_20210719 
where concat_aggregazione like 'COMPLESSIVO|BF%'  -- and codicefiscale='TRMRRT42H25G852P' 
and substring(isnull(position_id,''),1,charindex('@',isnull(position_id,''))) not like 'COMPLESSIVO|BF|CC%'  and sleevetag='WRAPPER_TYPE'-- and codicefiscale='BRCMRC67H15L736N'
union 
--RISFIN solo cc (ok con prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then Replace(concat_aggregazione,'COMPLESSIVO|BF','RISFIN|PIRAMIDE|Liq') else 
substring(Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE|Liq'),1,charindex('@',Replace(position_id,'COMPLESSIVO|BF','RISFIN|PIRAMIDE|Liq'))-1) end as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210719 
where substring(isnull(position_id,''),1,charindex('@',isnull(position_id,''))) like 'COMPLESSIVO|BF|CC%'-- and codicefiscale='TRMRRT42H25G852P'
union
--PTF COMPLESSIVO (ok con prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then concat_aggregazione else 
substring(position_id,1,charindex('@',position_id)-1) end as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210630--_20210719 
where concat_aggregazione = 'COMPLESSIVO'
union
--TIPOPRODTERZI|TERZI -->fam prod (ok con prom)
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then Replace(concat_aggregazione,'COMPLESSIVO|TERZI','TIPOPRODTERZI|TERZI') else 
substring(Replace(position_id,'COMPLESSIVO|TERZI','TIPOPRODTERZI|TERZI'),1,charindex('@',position_id)) end as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210719 
where concat_aggregazione like 'COMPLESSIVO|TERZI%'  --and codicefiscale='TRMRRT42H25G852P'
union
--COMPLESSIVO|TERZI --> Interm (ok con prom)
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end as codiceFiscale,
isnull(b.tipoptf,'')+'|'+isnull(intermediario,'')+'|'+chiave_prodotto_terzi as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210719 
a inner join c6martperiodico.w6clirep b
on a.position_id=b.position_id
where concat_aggregazione like 'complessivo|terzi%'  --and codicefiscale='TRMRRT42H25G852P'--and a.codman='7168'--a.piva='01840910150'
union
select rete,case when isnull(codman,'') <> '' then 'FF@' + codman 
        when isnull(Piva,'') <> '' and isnull(codman,'') = '' then Piva
       else codicefiscale
end as codiceFiscale,case when(isnull(position_id,'')='') then concat_aggregazione else 
substring(position_id,1,charindex('@',position_id)) end as portafoglio,
var,
varp,
cvar,
cvarp,
risksize,
mcvar,
mcvarp,
diversificationindex,
copertura,
totale
,0 as clsint,'ISR' as mdclcclsint,0 as clsr,0 as cicontroparte,0 as cltipo,0 as clmercato,0 as clliquidita,0 as isr,0 as indmercato,
0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,0 as ully_perc_rc,0 as ullyperc_se,totale_coperto,0 as coperturaproxyrc,0 as numtit,numtitrc
from c6stagingperiodico.brs_aggr_out_aladdin--_20210719 
where concat_aggregazione = 'COMPLESSIVO|TERZI'--and codman='7168'--a.piva='01840910150'
union
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codfis
end as codiceFiscale,
isnull(a.tipoptf,'')+'|'+isnull(a.intermediario,'')+'|'+'CC' as portafoglio,
0 as var,0 as varp,0 as cvar,0 as cvarp,0 as risksize,0 as mcvar,0 as mcvarp,0 as diversificationindex,
100 as copertura,case when sum(ctv)>10000 then sum(ctv)-10000 else sum(ctv) end as totale,1 as clsint,'ISR' as mdclcclsint,1 as clsr,1 as cicontroparte,1 as cltipo,
1 as clmercato,1 as clliquidita,0 as isr,0 as indmercato,0 as indcontroparte,0 as indliquidita,0 as ully,0 as ully_perc,0 as elly_perc,0 as crc,0 as rctot,
0 as ully_perc_rc,0 as ullyperc_se,100 as totale_coperto,0 as coperturaproxyrc,1 as numtit,0 as numtitrc
from c6martperiodico.w6clirep a where tipoptf like 'complessivo|terzi%' and famprodt='Conti correnti' --and a.codman='7168'--piva='01840910150'
group by a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codfis
end,
isnull(a.tipoptf,'')+'|'+isnull(a.intermediario,'')+'|'+'CC'
) a
--where codicefiscale in (select cod_fiscale from c6martperiodico.tb_campione)
GO
/****** Object:  View [C6Mart].[vContrattiSei]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE VIEW [C6Mart].[vContrattiSei]
AS
	  SELECT

			VC.chiaveClientePB,
			VC.COD_FISCALE,
			VC.COD_MANDATO,
			VC.PIVA_FIDUCIARIA,
			VC.COD_AGENTE,
			VC.rete,
			VC.codiceContratto,
			VC.flagRol,
			VC.INDIRIZZO,
			VC.cap,
			VC.CITTA,
			VC.PROVINCIA,
			VC.NAZIONE,
			VC.presso,
			VC.email,
			VC.FREQ_DIAGNOSI,
			VC.FREQ_MONITORAGGIO,
			VC.GENERAZIONEREPORT,
			VC.DATA_INIZIOBASE,
			VC.DATA_FINEBASE,
			VC.DATA_PERF_BASE,
			VC.DATA_PERF,
			VC.DATA_INZIOAVANZATO,
			VC.DATA_FINEAVANZATO,
			VC.TIP_CONTRATTO,
			VC.RIATTIVAZIONE,
			VC.TipoConsulenza

			,MD.ClienteMIGRATO	
			,MD.RISORSENA	
			,MD.PROFILOATTIVO	
			,MD.NumSolleciti	
			,MD.NumRevoche	
			,MD.Data_ultimoSollecito	
			,MD.Data_ultimaRevoca	
			,MD.InvioBenvenuto	
			,MD.TIP_CONTRATTO	AS MD_TIP_CONTRATTO
			,MD.TIP_RIATTIVAZIONE 
FROM  c6mart.vcontratti vc
	left join c6mart.contrattosei_metadati md
	on md.chiaveclientepb = vc.chiaveclientepb
 


GO
/****** Object:  View [C6Mart].[vFTP_DA_INVIARE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


 -- SELECT * FROM [C6Mart].[vFTP_DA_INVIARE]
 -- SELECT * FROM C6Staging.WSROL
CREATE VIEW [C6Mart].[vFTP_DA_INVIARE]
AS
	SELECT distinct  C.cod_fiscale,C.rete,C.codicecontratto
	FROM C6Mart.vcontrattiSei C
		left join C6Mart.GESTIONE_PDF_FTP P 
		ON C.Cod_fiscale = P.codiceFiscale AND c.rete = p.rete
	WHERE  1=1 
		  AND P.FlagInvio = 'N'
	    AND C.data_fineavanzato > getdate()
GO
/****** Object:  View [C6MartPeriodico].[vBrsIndDiv]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE VIEW [C6MartPeriodico].[vBrsIndDiv]
AS
select * from (
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end as cod_fiscale,diversificationindex as indicatore
from c6stagingperiodico.brs_aggr_out_aladdin a
where concat_aggregazione='COMPLESSIVO'
/*and case when isnull(a.codman,'') <> '' then 'FF@' + a.codman
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end in (select cod_fiscale from c6martperiodico.tb_campione)*/
union
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman+'_BF' 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva+'_BF'
       else codicefiscale+'_BF'
end as cod_fiscale,diversificationindex as indicatore
from c6stagingperiodico.brs_aggr_out_aladdin a
where concat_aggregazione='COMPLESSIVO|BF'
/*and case when isnull(a.codman,'') <> '' then 'FF@' + a.codman
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end in (select cod_fiscale from c6martperiodico.tb_campione)*/
union
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman+'_TERZI' 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva+'_TERZI'
       else codicefiscale+'_TERZI'
end as cod_fiscale,diversificationindex as indicatore
from c6stagingperiodico.brs_aggr_out_aladdin a
where concat_aggregazione='COMPLESSIVO|TERZI'
/*and case when isnull(a.codman,'') <> '' then 'FF@' + a.codman
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end in (select cod_fiscale from c6martperiodico.tb_campione)*/
) a

GO
/****** Object:  View [C6Mart].[ClientiConCCNegativo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[ClientiConCCNegativo]
AS
	SELECT RETE, COD_FISCALE
	FROM  C6Mart.PATRIMONIO_BF
	WHERE (TIPO_PRODOTTO = 'CC')
	GROUP BY RETE, COD_FISCALE
	HAVING SUM(CTV) < 0
GO
/****** Object:  View [C6Mart].[vTuttiIPortafogli_preSKANDIA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- View
--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[vTuttiIPortafogli_preSKANDIA]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')

-- levato 'cc'

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END					

GO
/****** Object:  View [C6Mart].[vTuttiIPortafogli_ccLiq_preSKANDIA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- View
--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[vTuttiIPortafogli_ccLiq_preSKANDIA]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,

		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END
GO
/****** Object:  View [C6Mart].[vNumeroIntermediari]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[vNumeroIntermediari] AS
SELECT RETE, COD_FISCALE, count(DISTINCT INTERMEDIARIO) as NumeroIntermediari
FROM  C6Mart.PATRIMONIO_TERZI
GROUP BY RETE, COD_FISCALE
GO
/****** Object:  Table [C6MartPeriodico].[contrattosei]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[contrattosei](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[Data_Sott] [datetime] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Data_Perf_Base] [datetime] NULL,
	[Data_Perf] [datetime] NULL,
	[Fascia_CPP] [varchar](5) NULL,
	[Email] [varchar](50) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Prov] [varchar](2) NULL,
	[Nazione] [varchar](35) NULL,
	[Presso] [varchar](50) NULL,
	[Data_Inizio] [datetime] NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_DiagnosiPrec] [varchar](1) NULL,
	[Freq_MonitorPrec] [varchar](1) NULL,
	[Data_InizioConsInv] [datetime] NULL,
	[Data_InizioBase] [datetime] NULL,
	[Data_FineBase] [datetime] NULL,
	[Data_InizioAvanzato] [datetime] NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[ProgressivoInvio] [varchar](8) NULL,
	[GenerazioneReport] [varchar](1) NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[DataUltimoInvio] [datetime] NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[PartViaDisinv] [varchar](1) NULL,
	[NumSolleciti] [smallint] NULL,
	[Data_UltimoSollecito] [datetime] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_UltimaRevoca] [datetime] NULL,
	[Note] [varchar](1024) NULL,
	[Data_Invio_Diagnosi_Trimestrale] [datetime] NULL,
	[Data_Invio_Monitoraggio_Trimestrale] [datetime] NULL,
	[ProfiloAttivo] [bit] NULL,
	[Rol] [char](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
 CONSTRAINT [PK_contrattosei_1] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[Cod_Fiscale] ASC,
	[CodiceContratto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  View [dbo].[FLRPT_InvioReport_Periodico]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select * from FLRPT_InvioReport_Periodico
CREATE VIEW [dbo].[FLRPT_InvioReport_Periodico]
AS
SELECT     pdf.IdReport AS KeyReport, pdf.CodiceFiscale AS CodFiscale, pdf.Rete AS CodRete, pdf.Rete + C6.Cod_Agente AS CodAgente, '' AS CodMan, 
                      CASE WHEN pdf.TipoReport = 'D' THEN 'DIAGNOSI' ELSE 'MONITORAGGIO' END AS TipoReport, pdf.DataInvio AS DtInvio, 
                      pdf.DataGenerazione AS DtGenerazione, flagDefinitivo
FROM
	C6MartPeriodico.GESTIONE_PDF_FTP AS pdf
INNER JOIN

--Inizio Intervento
--Intervento effettuato il 30/04/2014 per consentire l'accensione dell'alert relativo alla generazione ed invio 
--dei report di Trimestrale anche per i Clienti che presentano un contratto cessato durante il Trimestre 
--in elaborazione (questi non sono presenti sulla tabella CONTRATTOSEI del giornaliero mentre sono presenti 
--nella medesima tabella del Periodico in quanto oggetto di Trimestrale

--	C6Mart.CONTRATTOSEI AS C6
	C6MartPeriodico.CONTRATTOSEI AS C6

--Fine Intervento	

ON
	pdf.Rete = C6.Rete
AND
	pdf.CodiceFiscale = C6.Cod_Fiscale
INNER JOIN
	[10.10.33.175\i1].seireport.dbo.repositoryMetadati rmd
ON
	pdf.IdReport = rmd.idInRepository
where pdf.idreport <> pdf.identityreport	
--Inizio Intervento
--Intervento effettuato il 30/04/2014 per consentire l'accensione dell'alert relativo alla generazione ed invio 
--dei report di Trimestrale anche per i Clienti che presentano un contratto cessato durante il Trimestre 
--in elaborazione 

--WHERE     (C6.Data_FineAvanzato IS NULL)

--Fine Intervento	


GO
/****** Object:  View [C6Mart].[NotAllocatedResources]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


	create VIEW [C6Mart].[NotAllocatedResources]
	as
	SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV, COUNT_BIG(*) as cnt
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD with (nolock)
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT with (nolock)
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

GO
/****** Object:  View [dbo].[vANAG_CONTRATTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*GROUP BY ID_CONTRATTO, RETE, COD_FISCALE, POSITION_ID, DATA_SOTTOSCRIZIONE, COD_STATO*/
CREATE VIEW [dbo].[vANAG_CONTRATTI]
AS
SELECT     ID_CONTRATTO, RETE, COD_FISCALE, DATA_SOTTOSCRIZIONE, COD_STATO
FROM         C6Mart.PATRIMONIO_BF
GROUP BY ID_CONTRATTO, RETE, COD_FISCALE, DATA_SOTTOSCRIZIONE, COD_STATO
GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				-- modifica del 19/10/2018 per risolvere il problema del Nome_Progetto = ''
					--CASE 
					--	WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					--	+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					--	ELSE '' 
					--END + '|' + PATRIMONIO_BF.POSITION_ID
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,


		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza, --codiceInterno
		--''										AS CodiceValuta, --codiceMAF
		--''										AS Classe, --codiceSottoprodotto
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
								-- modifica del 19/10/2018 per risolvere il problema del Nome_Progetto = ''
					--CASE 
					--	WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					--	+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					--	ELSE '' 
					--END + '|' + PATRIMONIO_BF.POSITION_ID
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--	''										AS Piazza,
		--	''										AS CodiceValuta,
		--	''										AS Classe,
		-- fine modifica del 9/7/2018

			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				-- modifica del 19/10/2018 per risolvere il problema del Nome_Progetto = ''
					--CASE 
					--	WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					--	+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					--	ELSE '' 
					--END + '|' + PATRIMONIO_BF.POSITION_ID
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	PATRIMONIO_BF.COD_INTERNO,
	PATRIMONIO_BF.COD_MAF,
	PATRIMONIO_BF.COD_SOTTOPRODOTTO,
	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [C6Staging].[vClienteContrattiASUL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6Staging].[vClienteContrattiASUL]
AS
SELECT     RETE, CODAGENTE, CODICEFISCALE, PIVAFIDUCIARIA, CODICECONTRATTO
FROM         C6Staging.SPB_CONTR_SINTESI
WHERE     (TIPOPRODOTTO = 'ASUL')


GO
/****** Object:  View [C6MartPeriodico].[ClientiConCCNegativo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[ClientiConCCNegativo]
AS

	SELECT RETE, COD_FISCALE
	FROM  C6MartPeriodico.PATRIMONIO_BF
	WHERE (TIPO_PRODOTTO = 'CC')
	GROUP BY RETE, COD_FISCALE
	HAVING SUM(CTV) < 0
GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_BK_eligoTitoli]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END
GO
/****** Object:  Table [dbo].[GetStatistics_recordsToProcess]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GetStatistics_recordsToProcess](
	[codiceFiscale] [nvarchar](max) NULL,
	[id] [bigint] IDENTITY(1,1) NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  View [dbo].[GetStatistics_stato_report]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[GetStatistics_stato_report]
as
select s.stato_report as typ, rete, count(s.cod_fiscale) as _counter  from [C6MartPeriodico].[CONTROLLO_TRIMESTRALE] s with (nolock)
 inner join GetStatistics_recordsToProcess t with (nolock) on t.codiceFiscale = s.cod_fiscale
group by stato_report, rete
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[vW6IndPtf]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








/* Nel giro di email di revoca non si devono recuperare i dati dal SEI (Fabrizio) --
AND (Cod_Fiscale = 'TBNMSM52C01E938I')*/
CREATE VIEW [C6MartPeriodico].[vW6IndPtf]
AS
SELECT distinct v.[DTTRIM]
      ,v.[RETE]
      ,v.[CHIAVE_ACN]
      ,v.[CODFIS]
      ,v.[CODMAN]
      ,v.[PTF_DIVERSIFICATO]
      ,v.[PTF_ADEGUATO]
	  ,case when e.codicefiscale IS NULL then 'N' else 'S' end as [BLACKLIST]
      ,v.[DATA_ORA_INSE]
      ,v.[DATA_ORA_AGGI]
  FROM [C6MartPeriodico].[W6IndPtf] v
  left join [C6MartPeriodico].[ExcludedList] e 
	on    v.RETE=e.Rete and v.CHIAVE_ACN=e.codicefiscale 
      -- FerAcu 20250217 non vanno considerati il BL i casi delle lettere sostitutive
      and e.DescrErr not in ( 'RFA=0', 'RFA Minus', 'BLACKLIST RFA MINUS CLIENTE SEI E IMMOBILIARE', 'Profilo EC', 'Profilo Scaduto')
  -- FerAcu 20241022 modifica temporanea
  --  annullata
  --left join [C6MartPeriodico].ztmp_BL_NonDiversificati e2 on v.RETE=e2.Rete and v.CHIAVE_ACN=e2.codfis
--  -- FerAcu 20241021 per escludere i casi solo immobiliare
--  Where not exists (  select * 
--                      from C6MartPeriodicoImmobiliare.W6IMM imm 
--					  where imm.RETE = v.RETE 
--					    and imm.CODFIS = v.CHIAVE_ACN
--						and imm.FLAG_IN_PERIMETRO='S' 
--						and imm.RENDICONTO_IMM='S'
--				   )
--and c6.cod_fiscale = 'BRZGPP39H08C352F'

GO
/****** Object:  View [C6Mart].[RP_vTuttiIPortafogli_ccLiq_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[RP_vTuttiIPortafogli_ccLiq_BK_eligoTitoli]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL


---V Modifica per calcolo VaR prodotti ASU2
	SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END
GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20170825]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20170825]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	)











GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  View [dbo].[GetStatistics_elab]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[GetStatistics_elab]
as
select s.elab as typ, rete, count(s.codicefiscale) _counter from [C6MartPeriodico].[cruscotto_contrattisei] s with (nolock)
 inner join GetStatistics_recordsToProcess t with (nolock) on t.codiceFiscale = s.codicefiscale 
group by elab, rete

GO
/****** Object:  Table [C6MartPeriodico].[PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PATRIMONIO_ALTRO](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[QUANTITA] [int] NULL,
	[DESCRIZIONE] [varchar](255) NULL,
	[CTV] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioAltroAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[vPatrimonioAltroAggregato]
AS
SELECT
	RETE, 
	COD_FISCALE, 
	SUM(CTV) as PatrimonioAltro
FROM [C6MartPeriodico].PATRIMONIO_Altro
GROUP BY 
	RETE, 
	COD_FISCALE


GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select * from [C6Mart].[vRpClientiNonMigrati]
CREATE VIEW [C6Mart].[vRpClientiNonMigrati]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE 1=1    /* 20171110 */
	and (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	(
	/* 20171110
	----'FGRBNLT65D44A859X' /* temp 20161207 */
	----,'FPNDLCI41T49F205P' /* temp 20170317 */
	----,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	----,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SNVGMNL73A15H501Y'
	----,'SMTANDR70P22H501S'
	----,'SFLCNTN47B12F631K'
	----,'SFF@10093'
	----,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	*/
	/* ,'FFRNNCL87D25G224T'  20171110 nome+cognome aggiornato */
	/* ,'FGLLFBA57R22F205P'  temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti 
	,'STZZFNC51B57D810T' /* temp 20171005 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'SLVORSO76A65D711N' /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
				                        20171110 nome+cognome aggiornato */


	--'FFF@10105'		 /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
	--                     /* 20171110 AllineaPortafoglioClienti non restiuisce record */
	--,'SGBRMCL56B15C390A'  /* 20171110 AllineaPortafoglioClienti non restiuisce record */
	--,'FGGLSFN69T19A944H'  /* 20171112 AllineaPortafoglioClienti non restiuisce record */

	--,'SNVGMNL73A15H501Y' /* 20180307 AllineaPortafoglioClienti non restiuisce record */
	--,'FCVLNDR85B16C933K'  /* 20180307 AllineaPortafoglioClienti non restiuisce record */
	--,'SBLDMRK89A43H501E'  /* 20180307 AllineaPortafoglioClienti non restiuisce record */
	--,'SMTANDR70P22H501S'   /* 20180307 AllineaPortafoglioClienti non restiuisce record */
	--,'SFF@10052'  /* 20180307 AllineaPortafoglioClienti non restiuisce record */
	--,'FPRNMRA64P18E130G'  /* 20180327 AllineaPortafoglioClienti non restiuisce record */
	
	--'SGLLNMR45B60H400M'  /* 20180608 AllineaPortafoglioClienti non restiuisce record */
    --'SRSSDLM50M23E958Q' /* 20180608 AllineaPortafoglioClienti non restiuisce record */
	--'SMNIBLD57S25F908U'
--'SDSNBBR71C62G482V'
--'STRBGNE55D14L291R'
--'FDNNSFN70A62F205G'
--'SMNRGNN59R20L291G'
--'FLNZGPP44A24D390F',
--'FMNTRRT57L12I608F',
--'FDTTLCU74T53E379G',
--'FTRMMHL91L21L219Z',
'SVGDGMN54S18A794O'
	)



GO
/****** Object:  Table [C6MartPeriodico].[MIFID]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MIFID](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[PROFILO_ASS] [smallint] NULL,
	[DATA_INIZIO_VAL] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [varchar](50) NULL,
	[EXPERIENCE] [smallint] NULL,
	[SCADUTO] [int] NULL,
 CONSTRAINT [PK_MIFID] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[Maledetti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[Maledetti](
	[i_CodiceFiscale] [varchar](16) NOT NULL,
	[i_Rete] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[NomeRete] [varchar](30) NOT NULL,
	[Agente] [varchar](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisinv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[tip_contratto] [smallint] NULL,
	[contrattoold] [int] NOT NULL,
	[NoMonitoraggio] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModelloMonitoraggio] [int] NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[IdReportPDFDiagnosi] [int] NOT NULL,
	[IdReportPDFMonitoraggio] [int] NOT NULL,
	[scaduto] [int] NULL,
 CONSTRAINT [PK_Maledetti] PRIMARY KEY CLUSTERED 
(
	[i_CodiceFiscale] ASC,
	[i_Rete] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tabellone]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tabellone](
	[rete_acn] [char](1) NULL,
	[chiave_acn] [varchar](30) NULL,
	[chiave_cap] [varchar](30) NULL,
	[campione1] [varchar](2) NULL,
	[nome] [varchar](512) NULL,
	[cognome] [varchar](512) NULL,
	[dtnasci] [date] NULL,
	[indirizzo] [varchar](128) NULL,
	[cap] [char](5) NULL,
	[citta] [varchar](64) NULL,
	[provincia] [char](2) NULL,
	[nazione] [varchar](64) NULL,
	[codprof] [int] NULL,
	[dtinval] [varchar](10) NULL,
	[codconf] [char](11) NULL,
	[blacklist] [varchar](600) NULL,
	[lotto] [varchar](16) NULL,
	[zip] [varchar](150) NULL,
	[blacklist_imm] [varchar](600) NULL,
	[lotto_imm] [varchar](16) NULL,
	[zip_imm] [varchar](150) NULL,
	[lettera_sost] [varchar](3) NULL,
	[lettera_sost_imm] [varchar](3) NULL,
	[selecta_lettera] [varchar](64) NULL,
	[flag6kc] [char](1) NULL,
	[flgorig] [char](1) NULL,
	[flgimm] [char](1) NULL,
	[flgpe_perimetro_semestr] [char](1) NULL,
	[solo_rend_imm] [char](1) NULL,
	[anche_rend_sei] [char](1) NULL,
	[co_imm_puc] [char](11) NULL,
	[tipcons_imm_puc] [char](1) NULL,
	[addendum_puc] [char](2) NULL,
	[staimp_addendum_puc] [varchar](20) NULL,
	[dt_ultimo_cr] [date] NULL,
	[rete_c] [char](1) NULL,
	[rete_r] [char](1) NULL,
	[rete] [char](1) NULL,
	[codfis] [char](16) NULL,
	[codman] [varchar](10) NULL,
	[codana] [char](12) NULL,
	[classerc] [int] NULL,
	[codprofec] [int] NULL,
	[flagpg] [char](1) NULL,
	[clcompl] [char](1) NULL,
	[flgconc] [char](1) NULL,
	[flagnqp] [char](1) NULL,
	[flgprlrde] [char](1) NULL,
	[cocf_subprod] [char](2) NULL,
	[segmento] [varchar](32) NULL,
	[cocf_dtletbenv] [date] NULL,
	[cocf_dtades] [date] NULL,
	[cfm_dsottos] [date] NULL,
	[cfm_blocco] [char](1) NULL,
	[coric_causale] [char](3) NULL,
	[coric_dtins] [varchar](10) NULL,
	[coric_dtval] [varchar](10) NULL,
	[coric_dtstralcio] [varchar](10) NULL,
	[corfa_rfa] [decimal](38, 3) NULL,
	[cfm_statorol] [varchar](3) NULL,
	[wseidc_tipolett] [varchar](3) NULL,
	[wseidc_stato] [varchar](16) NULL,
	[wseips_flag] [varchar](3) NULL,
	[cfm_tipo_consul] [varchar](16) NULL,
	[flgprof] [varchar](3) NULL,
	[dtfinval] [varchar](10) NULL,
	[concemi] [varchar](3) NULL,
	[freq] [varchar](3) NULL,
	[lliquid] [varchar](3) NULL,
	[codice_agente] [varchar](8) NULL,
	[nominativo_pb] [varchar](256) NULL,
	[codice_fiscale] [char](16) NULL,
	[codice_contratto] [varchar](11) NULL,
	[freq_monitoraggio] [varchar](16) NULL,
	[freq_diagnosi] [varchar](16) NULL,
	[data_revoca] [varchar](10) NULL,
	[tipo_contratto] [char](1) NULL,
	[tipo_riattivazione] [char](1) NULL,
	[rol_effettiva] [char](1) NULL,
	[ade_rischio_mercato] [varchar](3) NULL,
	[ade_rischio_credito] [varchar](3) NULL,
	[var_portafoglio] [decimal](13, 2) NULL,
	[note1] [varchar](600) NULL,
	[ESG] [varchar](2) NULL,
	[Environmental] [varchar](2) NULL,
	[Social] [varchar](2) NULL,
	[Governance] [varchar](2) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[DTTRIM] [varchar](8) NULL,
	[Riserva] [varchar](2) NULL,
	[INVL_PERIOD] [varchar](2) NULL,
	[ADEGCONC_VALUT] [varchar](2) NULL,
	[Coerenza] [varchar](2) NULL,
	[Tipo_Cliente] [varchar](32) NULL,
	[Stato_Cliente] [varchar](32) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[datiROL2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[datiROL2](
	[CODFIS] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODCONTRATTO] [varchar](11) NOT NULL,
	[EMAIL] [varchar](512) NULL,
	[ALERTROL] [varchar](512) NULL,
	[STATOROL] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Campione_DA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Campione_DA](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Campione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Campione](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIDC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIDC](
	[RETE] [varchar](1) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[CODFIS] [varchar](16) NULL,
	[CODANA] [varchar](12) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CONTO] [varchar](12) NULL,
	[STATO] [varchar](1) NULL,
	[POSMAND] [varchar](2) NULL,
	[INTEST] [varchar](50) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[DTLETT] [numeric](9, 0) NULL,
	[DTLETBENV] [numeric](9, 0) NULL,
	[SEX] [varchar](1) NULL,
	[INDIR] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROV] [varchar](2) NULL,
	[NAZION] [varchar](25) NULL,
	[PRESSO] [varchar](32) NULL,
	[TIPCONTR] [varchar](1) NULL,
	[TEMPLATE] [varchar](1) NULL,
	[TIPOLETT] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIPS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIPS](
	[RETE] [varchar](1) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[CODFIS] [varchar](16) NULL,
	[CODANA] [varchar](12) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[INTEST] [varchar](50) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[DTLETT] [numeric](9, 0) NULL,
	[SEX] [varchar](1) NULL,
	[INDIR] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROV] [varchar](2) NULL,
	[NAZION] [varchar](25) NULL,
	[PRESSO] [varchar](32) NULL,
	[TIPCONTR] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL,
 CONSTRAINT [PK_ESG_Metriche_Cliente_IL] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[CodiceFiscale] ASC,
	[PIva] ASC,
	[CodMan] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[W6IMM]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[W6IMM](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CONTRATTO] [varchar](11) NOT NULL,
	[CONSULENZA] [varchar](10) NULL,
	[SERVIZIO_AGGIUNTIVO] [varchar](20) NULL,
	[STATO_ADD_IMMOBILIARE] [varchar](20) NULL,
	[STATO_IMPORTAZIONE] [varchar](10) NULL,
	[FLAG_IN_PERIMETRO] [varchar](1) NULL,
	[RENDICONTO_SEI] [varchar](1) NULL,
	[RENDICONTO_IMM] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[vTabellone]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











CREATE     VIEW   [C6MartPeriodico].[vTabellone]
AS
select  a.chiaveClientePB as ChiaveClientePB
		,a.rete as Rete
		,a.cod_fiscale  as Chiave_ACN
		,case when a.TIP_CONTRATTO=3 then 'DIRECT ADVISORY' else 'SEI' end as Tipo_Cliente
		,case when len(a.COD_FISCALE)=16 then a.COD_FISCALE else '' end as Codice_Fiscale
		,case when a.COD_FISCALE like '%FF@%' then a.PIVA_FIDUCIARIA when len(a.COD_FISCALE)<16 then a.COD_FISCALE  else '' end as Partita_Iva
		,a.COD_MANDATO as Codice_Mandato
		,a.codiceContratto as Codice_Contratto
		,case when isnull(cli.nome,'')<>'' and LEN(a.COD_FISCALE)<16 then '' else isnull(cli.nome,'') end  as Nome_Cliente
		,case when isnull(cli.nome,'')<>'' and LEN(a.COD_FISCALE)<16 then isnull(cli.cognome,'')+isnull(cli.nome,'') else isnull(cli.cognome,'') end as Cognome_Cliente 
		,isnull(cli.dtnascita,'') as Data_Nascita_Cliente
		,a.INDIRIZZO as Indirizzo
		,isnull(a.cap,'00000') as Cap
		,a.CITTA as Citta
		,a.PROVINCIA as Provincia
		,a.NAZIONE as Nazione
		,COD_AGENTE as Agente
		,pb.Nome as Nome_Agente
		,pb.Cognome as Cognome_Agente
		,'SI' as Report_Monitoraggio
		,case when a.FREQ_DIAGNOSI<>'' then 'SI' else 'NO' end as Report_Diagnosi
		,a.Data_FineAvanzato as Data_Revoca
		,case when  a.TIP_CONTRATTO=2 then 'SI' else 'NO' end as  Flag_Private
		,case when v.tipoconsulenza='P' then 'SI' else 'NO' end as Flag_Professionale
		,benv.Data_Lettera_Benvenuto as Data_Lettera_Benvenuto
		,case when isnull(cam.cod_fiscale,'')=cam.cod_fiscale then 'SI' else 'NO' end as Campione_SEI
		,case when isnull(camDA.cod_fiscale,'')=camDA.cod_fiscale then 'SI' else 'NO' end as Campione_DA
		,case when ISNULL(ps.cod_fiscale,'')=ps.Cod_fiscale OR ISNULL(dc.cod_fiscale,'')=dc.Cod_fiscale then 'SI' else 'NO' end as Lettera_Sostitutiva
		,case when isnull(exc.codicefiscale,'')=exc.codicefiscale then 'SI' else 'NO' end as Blacklist_Temporanea
		,isnull(exc.descrerr,'') as Motivazione_Blacklist
		,isnull(pdf.NomeFile,'NON GENERATO') as Nome_PDF_Monitoraggio
		,isnull(pdfd.NomeFile,'NON GENERATO')+'_DP' as Nome_PDF_Diagnosi
		,isnull(zip.nomefile+'_LOTTO_'+rtrim(cast(zip.fkidelaborazionezip as char))+'_PACK_'+rtrim(cast(zip.id as char))+'.7z','NON ZIPPATO') as Nome_Zip
		,ISNULL(rol.statorol,'NO') as Rol
		,case when stab.ESG='S' then 'SI' else 'NO' end as Preferenza_ESG--case when esg.preferenza_esg_cliente=1 then 'SI' else 'NO' end as Preferenza_ESG
		,isnull(esg.ESG_E,stab.Environmental) as ESG_E
		,isnull(esg.ESG_S,stab.Social) as ESG_S
		,isnull(esg.ESG_G,stab.Governance) as ESG_G
		,CASE 
    WHEN esg.[ESG_E_perc] IS NOT NULL AND esg.[ESG_S_perc] IS NOT NULL AND esg.[ESG_G_perc] IS NOT NULL THEN
        CASE 
            WHEN esg.[ESG_E_perc] >= esg.[ESG_S_perc] AND esg.[ESG_E_perc] >= esg.[ESG_G_perc] THEN esg.[ESG_E_perc]
            WHEN esg.[ESG_S_perc] >= esg.[ESG_E_perc] AND esg.[ESG_S_perc] >= esg.[ESG_G_perc] THEN esg.[ESG_S_perc]
            ELSE esg.[ESG_G_perc]
        END
    ELSE
        CASE 
            WHEN stab.[ESG_E_perc] >= stab.[ESG_S_perc] AND stab.[ESG_E_perc] >= stab.[ESG_G_perc] THEN stab.[ESG_E_perc]
            WHEN stab.[ESG_S_perc] >= stab.[ESG_E_perc] AND stab.[ESG_S_perc] >= stab.[ESG_G_perc] THEN stab.[ESG_S_perc]
            ELSE stab.[ESG_G_perc]
        END
END as obiettivo_esg_minimo
		,isnull(esg.ESG_E_perc,stab.ESG_E_perc) as ESG_E_perc
		,isnull(esg.ESG_S_perc,stab.ESG_S_perc) as ESG_S_perc
		,isnull(esg.ESG_G_perc,stab.ESG_G_perc) as ESG_G_perc
		,an2.[CODPROF] as Codice_Profilo
		,an2.[COD_PROFEC] as Codice_Profilo_EC
		,case when ck.Adeg_Rischio='S' then 'S' when ck.Adeg_Rischio='N' then 'N' else 'Z' end as Rischio
		--,case when isnull(stab.ade_rischio_mercato,'NO')='1' THEN 'S' else 'N' end as Rischio
		,an2.[RISERVA] as Riserva
		,an2.[INVL_PERIOD] as Investimento_Di_Lungo_Periodo
		,an2.[CLCOMPL] as Complessita
		,an2.[FLGCONC] as Concentrazione_di_prodotti_complessi
		,an2.[FREQ] as Frequenza_delle_operazioni
		,an2.[CONCEMI] as Concentrazione_Emittenti
		,an2.[FLAGPG] as Persona_Giuridica
		,an2.[ADEGCONC_VALUT] as Concentrazione_Valutaria
		,an2.[COERENZA] as Esito_di_Coerenza
		,an2.[FLAGNQP]
		,an2.[FLGPRLRDE] as Flag_Privo_di_Legali_Rappresentanti_Delegati_Profilati
		--,an2.[FLGPROF]
		,an2.[SOGLIAESG] as Soglia_ESG
		,an2.[MAXCOMPL] as Max_Complessita_Prodotto
		,an2.[NOCOMPL]
		,an2.[SPESA_FORZATA] as Spesa_Forzata
		,an2.[PERC_ILP] as Percentuale_Investimento_di_lungo_periodo
		,an2.[IMP_RISERVA] as Importo_Riserva
		,case when  isnull(imm.CODFIS,'')=imm.codfis then 'SI' else 'NO' end as Immobiliare
		,case when  isnull(imm.CODFIS,'')=imm.codfis and imm.RENDICONTO_IMM='S' then 'SI' else 'NO' end as Solo_Immobiliare
		,stab.var_portafoglio as VaR_Portafoglio
		,stab.corfa_rfa as RFA--,isnull(w.Patrimoniobancafideuramctv,stab.corfa_rfa) as RFA
		,case
			when ISNULL(ps.cod_fiscale,'')=ps.Cod_fiscale OR ISNULL(dc1.cod_fiscale,'')=dc1.Cod_fiscale then 'SCADUTO'
			when mif.scaduto='0' then 'ATTIVO'
			when mif.scaduto='1' then 'SCADUTO'
			when mif.scaduto='2' then 'PARZIALE' else 'ATTIVO' end as Tipo_Scaduto
		
FROM [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI] a 
left join consuni_periodico.ConsulenzaUnica.dbo.vinfocliente v
on a.chiaveClientePB=v.chiaveclientePB
left join consuni_periodico.ConsulenzaUnica.dbo.Cliente cli
on v.chiavecliente=cli.chiavecliente
left join (
    SELECT rete,codicefiscale, Max(DataGenerazione) as Data_Lettera_Benvenuto
    FROM C6Mart.gestione_pdf_ftp
    GROUP BY rete,codicefiscale
) benv
on a.rete=benv.Rete and a.COD_FISCALE=benv.CodiceFiscale
left join C6MartPeriodico.TB_Campione cam on 
a.rete=cam.Rete and a.COD_FISCALE=cam.Cod_Fiscale
left join C6MartPeriodico.TB_Campione_DA camDA on 
a.rete=camDA.Rete and a.COD_FISCALE=camDA.Cod_Fiscale
left join (select rete,case when codman<>'' then 'FF@'+codman else codfis end as Cod_fiscale from C6StagingPeriodico.WSEIPS  where DTTRIM=[C6MartPeriodico].[getTrimestre2](getdate(),0) ) ps
on ps.RETE=a.rete and a.COD_FISCALE=ps.Cod_fiscale
left join (select rete,case when codman<>'' then 'FF@'+codman else codfis end as Cod_fiscale from C6StagingPeriodico.WSEIDC  where DTTRIM=[C6MartPeriodico].[getTrimestre2](getdate(),0) ) dc
on dc.RETE=a.rete and a.COD_FISCALE=dc.Cod_fiscale
left join  (select distinct rete,codicefiscale,STRING_AGG( ISNULL(DescrErr, ' '), ',') As descrerr  from C6MartPeriodico.ExcludedList group by rete,codicefiscale) exc
on exc.RETE=a.rete and a.COD_FISCALE=exc.codicefiscale
left join (select * from c6martperiodico.gestione_pdf_ftp where TipoReport='M') pdf 
on pdf.rete=a.rete and a.cod_fiscale=pdf.codicefiscale 
left join c6martperiodico.gestione_zip_ftp zip 
on pdf.id_fk_zip=zip.id
left join (select * from c6martperiodico.gestione_pdf_ftp where TipoReport='D') pdfD 
on pdfD.rete=a.rete and a.cod_fiscale=pdfD.codicefiscale 
left join  C6StagingPeriodico.datiROL2 rol on
a.rete=rol.Rete and a.COD_FISCALE=rol.CODFIS
left join [CONSUNI_periodico].ConsulenzaUnica.dbo.anagrafica_promotori pb
on a.rete = pb.rete and a.COD_AGENTE=pb.codage  
left join (select Rete,case when codman<>'' then 'FF@'+codman else CodiceFiscale end as Cod_fiscale,preferenza_esg_cliente,ESG_E,ESG_S,ESG_G,obiettivo_ESG_minimo,ESG_E_perc,ESG_S_perc,ESG_G_perc  from [C6StagingPeriodico].[ESG_Metriche_Cliente_IL] where trim(CONVERT(varchar, dt_trim, 112))=[C6MartPeriodico].[getTrimestre2](getdate(),0)) esg
on esg.RETE=a.rete and a.COD_FISCALE=esg.Cod_fiscale
left join 
(select  [RETE]
      ,case when codman<>'' then 'FF@'+codman else codfis end as Cod_fiscale
      ,[CODPROF]
      ,[COD_PROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[CONCEMI]
      ,[FREQ]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA] from  [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] --where DTTRIM=[C6MartPeriodico].[getTrimestre2](getdate(),0)
	  ) an2
on a.rete=an2.Rete and a.COD_FISCALE=an2.Cod_Fiscale
left join  C6MartPeriodicoImmobiliare.W6IMM imm --where FLAG_IN_PERIMETRO='S' and RENDICONTO_IMM='S'
on a.rete=imm.RETE and a.COD_FISCALE=imm.CODFIS
left join (select * from C6MartPeriodico.tabellone  where DTTRIM=[C6MartPeriodico].[getTrimestre2](getdate(),0)) stab on stab.chiave_acn= a.rete+a.COD_FISCALE
left join wh.Maledetti w on w.rete+w.CodiceFiscale=a.rete+a.COD_FISCALE
left join C6MartPeriodico.Mifid mif on mif.RETE+mif.COD_FISCALE=a.rete+a.COD_FISCALE
left join (select rete,case when codman<>'' then 'FF@'+codman else codfis end as Cod_fiscale from C6StagingPeriodico.WSEIDC  where DTTRIM=[C6MartPeriodico].[getTrimestre2](getdate(),0) and TIPOLETT not in ('R','S') ) dc1
on dc1.RETE=a.rete and a.COD_FISCALE=dc1.Cod_fiscale
left join  c6martperiodico.w6ckadeg ck 
on ck.rete=a.rete and ck.Chiave_Acn=a.COD_FISCALE
GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_Indicatore]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_Indicatore]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,


		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza, --codiceInterno
		--''										AS CodiceValuta, --codiceMAF
		--''										AS Classe, --codiceSottoprodotto
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '|Progetto investimento'
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--	''										AS Piazza,
		--	''										AS CodiceValuta,
		--	''										AS Classe,
		-- fine modifica del 9/7/2018

			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento' 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		INTERMEDIARIO.CODICEADEGUATEZZA			AS CodiceAdeguatezza, --modifica 050520 per risolvere anomalie Levi
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	PATRIMONIO_BF.COD_INTERNO,
	PATRIMONIO_BF.COD_MAF,
	PATRIMONIO_BF.COD_SOTTOPRODOTTO,
	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [dbo].[FLRPT_InvioReport]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[FLRPT_InvioReport]
AS
SELECT     pdf.IdReport AS KeyReport, pdf.CodiceFiscale AS CodFiscale, pdf.Rete AS CodRete, pdf.Rete + C6.Cod_Agente AS CodAgente, '' AS CodMan, 
                      CASE WHEN TipoReport = 'D' THEN 'DIAGNOSI' ELSE 'MONITORAGGIO' END AS TipoReport, pdf.DataInvio AS DtInvio, 
                      pdf.DataGenerazione AS DtGenerazione
FROM         C6Mart.GESTIONE_PDF_FTP AS pdf INNER JOIN
                      C6Mart.CONTRATTOSEI AS C6 ON pdf.Rete = C6.Rete AND pdf.CodiceFiscale = C6.Cod_Fiscale AND pdf.DataGenerazione>C6.data_perf
WHERE     (C6.Data_FineAvanzato IS NULL)

GO
/****** Object:  Table [C6Mart].[PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_IMMOBILIARE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](256) NULL,
	[TIPOLOGIA] [varchar](100) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[AFFITTO] [decimal](15, 3) NULL,
	[NOTE] [varchar](256) NULL,
	[DIV_RIFERIMENTO] [varchar](20) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vPatrimonioImmobAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[vPatrimonioImmobAggregato]
AS
SELECT     RETE, COD_FISCALE, 
			SUM(VALORE_STIMATO) as PatrimonioImmob
FROM         C6Mart.PATRIMONIO_Immobiliare
GROUP BY RETE, COD_FISCALE



GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_V_20180910]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_V_20180910]
WITH
SCHEMABINDING
AS
SELECT distinct contr.[chiaveClientePB]
      ,contr.[COD_FISCALE]
      ,contr.[COD_MANDATO]
      ,contr.[PIVA_FIDUCIARIA]
      ,contr.[COD_AGENTE]
      ,contr.[rete]
      ,contr.[codiceContratto]
      ,contr.[flagRol]
      ,contr.[INDIRIZZO]
      ,contr.[cap]
      ,contr.[CITTA]
      ,contr.[PROVINCIA]
      ,contr.[NAZIONE]
      ,contr.[presso]
      ,contr.[email]
      ,contr.[FREQ_DIAGNOSI]
      ,contr.[FREQ_MONITORAGGIO]
      ,contr.[GENERAZIONEREPORT]
      ,contr.[DATA_INIZIOBASE]
      ,contr.[DATA_FINEBASE]
      ,contr.[DATA_PERF_BASE]
      ,contr.[DATA_PERF]
      ,contr.[DATA_INZIOAVANZATO]
      ,contr.[DATA_FINEAVANZATO]
      ,contr.[RIATTIVAZIONE]
      ,contr.[TIP_CONTRATTO]
      ,contr.[TIP_RIATTIVAZIONE]
      ,contr.[ClienteMIGRATO]
      ,contr.[RISORSENA]
      ,contr.[PROFILOATTIVO]
      ,contr.[NumSolleciti]
      ,contr.[NumRevoche]
      ,contr.[Data_ultimoSollecito]
      ,contr.[Data_ultimaRevoca]
      ,contr.[InvioBenvenuto]

-- LA APPO CONTRATTI E' QUELLA DEL SEI
from [C6StagingPeriodico].[APPO_CONTRATTI] contr

left join  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null 
or 0 = (select count(*) 
from  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] with (nolock))
GO
/****** Object:  View [C6Staging].[vClientiContoCorrente]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- View
CREATE VIEW [C6Staging].[vClientiContoCorrente] as

-- 20170421 elimina duplicati
--select rete,codagente,codiceFiscale,conto,pivafiduciaria
select DISTINCT rete,codagente,codiceFiscale,conto,pivafiduciaria
from c6staging.spb_contr_sintesi
where tipoProdotto = 'CC'




GO
/****** Object:  View [C6Mart].[vTuttiIPortafogli_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6Mart].[vTuttiIPortafogli_old]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	
		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|RISFIN|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			THEN 0
			ELSE PATRIMONIO_BF.CTV_NOMINALE
		END AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			THEN 0
			ELSE PATRIMONIO_BF.CTV
		END AS CtvReale
		--PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')

-- levato 'cc'

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	
		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|RISFIN|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	
		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|RISFIN|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT) AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	
		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'
			ELSE
				'COMPLESSIVO|BF|RISFIN|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
	END
GO
/****** Object:  View [dbo].[S43_DETTAGLIOPRODOTTIFIN]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S43_DETTAGLIOPRODOTTIFIN]
AS

SELECT
	PATRIMONIO_BF.DATA_OPERAZIONE AS DataDiSottoscrizioni, 
	PATRIMONIO_BF.ID_CONTRATTO AS ContrattoDossier, 
	ANAG_PRODOTTI.DESCR_PRODOTTO, 
	NULL AS Aggiornamento, 
	PATRIMONIO_BF.CTV AS Controvalore, 
	PATRIMONIO_BF.VERSATO_NETTO AS VersatoNetto, 
	PATRIMONIO_BF.CTV - PATRIMONIO_BF.VERSATO_NETTO AS MinusPlusValenza, 
	RISCHIO_DETTAGLIO.VAR_PERC_PTF, 
	PATRIMONIO_BF.REND_ANNO AS PerformanceYTD, 
	PATRIMONIO_BF.REND_SOTTOSCRIZIONE AS PerformanceDaYTD
FROM C6MART.PATRIMONIO_BF 
INNER JOIN C6MART.ANAG_PRODOTTI 
	ON PATRIMONIO_BF.COD_PRODOTTO = ANAG_PRODOTTI.COD_PRODOTTO 
INNER JOIN C6MART.RISCHIO_DETTAGLIO 
	ON PATRIMONIO_BF.RETE = RISCHIO_DETTAGLIO.RETE

GO
/****** Object:  View [C6Mart].[vPatrimoniobfAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6Mart].[vPatrimoniobfAggregato]
AS
SELECT     
	PATRIMONIO_bf.RETE, 
	PATRIMONIO_bf.COD_FISCALE, 
	SUM(case when Upper(id_area)='CC' and ctv<0 then 0 else ctv end) as CTV, --modificata il 04012020 la fonte del ctv con la case when per escludere i cc negativi dal conto
	SUM(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
	SUM(case Upper(id_area) when 'CC' then ctv else 0 end ) as ContoCorrente,
	SUM(case Upper(id_area) when 'CC' then 0 else ctv end ) as PatrimonioSenzaCC,
	--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv
	--decommentare ed aggiungere una virgola alla riga sovrastante, indi commentare detta riga
	MAX((isnull(PART_VIAGG.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv
FROM C6Mart.PATRIMONIO_bf
LEFT JOIN 
(
	--commentare Sum Partvia_Inv, decommentare Sum Partvia_Disinv
	SELECT a.rete, a.cod_fiscale, /*sum (a.PARTVIA_INV) AS PARTVIA_INV,*/ sum (a.PARTVIA_DISINV) AS PARTVIA_DISINV
	FROM (
		SELECT DISTINCT rete, cod_fiscale, id_contratto, partvia_disinv --partvia_inv 
		FROM C6Mart.PATRIMONIO_bf
		--WHERE partvia_inv IS NOT NULL --commentare questa riga
	) a
	GROUP BY rete, cod_fiscale
) PART_VIAGG
	ON 
		PART_VIAGG.RETE = PATRIMONIO_bf.RETE
		AND PART_VIAGG.COD_FISCALE = PATRIMONIO_bf.COD_FISCALE 
GROUP BY 
	PATRIMONIO_bf.rete, PATRIMONIO_bf.cod_fiscale




GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_20181019]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_20181019]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,


		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza, --codiceInterno
		--''										AS CodiceValuta, --codiceMAF
		--''										AS Classe, --codiceSottoprodotto
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--	''										AS Piazza,
		--	''										AS CodiceValuta,
		--	''										AS Classe,
		-- fine modifica del 9/7/2018

			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	PATRIMONIO_BF.COD_INTERNO,
	PATRIMONIO_BF.COD_MAF,
	PATRIMONIO_BF.COD_SOTTOPRODOTTO,
	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [C6Mart].[RP_vContrattiPerGenerazioneReport_20161129]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6Mart].[RP_vContrattiPerGenerazioneReport_20161129]
AS
SELECT  
	C6.Rete, 
	Cod_Agente, 
	C6.Cod_Fiscale, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi,
	TipoElaborazione,
	AdesioneSuccessivaAvanzato,
	InvioBenvenuto, 
    ClienteMigrato, 
    RisorseNa, 
    NumRevoche,
    tip_contratto,
    tip_riattivazione
FROM C6Mart.RP_vTuttiIContratti AS C6 
WHERE  (1 = 1)	
        AND cod_agente not in ('015126')
        AND (InvioBenvenuto = 'N') 
		--AND (ClienteMigrato = 'S')    /* en20161021 */
		AND (ISNULL(RisorseNa, 'N') = 'N') 
		AND (ISNULL(NumRevoche, 0) = 0)
		AND ((DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR cod_agente='015312')
		--OR cod_fiscale = 'FF@5117')
		AND	C6.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND ProfiloAttivo = 1


GO
/****** Object:  View [dbo].[S1TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S1TERZI]
AS
SELECT     SUM(CTV) AS controvalore, RETE
FROM         C6Mart.PATRIMONIO_TERZI
GROUP BY RETE
GO
/****** Object:  View [dbo].[vCondizioniCapitoloAlternativa]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vCondizioniCapitoloAlternativa]
AS
SELECT 15 AS IDCAPITOLO,RETE,COD_FISCALE,case COUNT(DISTINCT INTERMEDIARIO) WHEN 1 THEN 1 else 0 END AS CondValue
FROM	C6Mart.PATRIMONIO_TERZI
GROUP BY RETE,COD_FISCALE 
--union all
--select 17 AS IDCAPITOLO,'X' as RETE, 'XXXXXXXXXXXXXXXX'as COD_FISCALE,1 AS AS CondValue
GO
/****** Object:  View [C6MartPeriodico].[vContrattiPerGenerazioneReport]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select count(distinct cod_fiscale) from c6martperiodico.rischio_aggregato
--select * from c6martperiodico.scarti
-- FARE FUNZIONE GETPREVTRIMESTRE PER LA DATA DI REVOCA
--select c6martperiodico.gettrimestre2(getdate(),0) 
--select c6martperiodico.gettrimestre2(getdate(),1) 
--select * from [C6MartPeriodico].[vContrattiPerGenerazioneReport]
--select count(*) from [C6MartPeriodico].[vContrattiPerGenerazioneReport]
--select count(*) from [C6MartPeriodico].gestione_pdf_ftp where dataGenerazione > c6martperiodico.gettrimestre2(getDate(),1)
--select count(*) from [C6MartPeriodico].[vContrattiPerGenerazioneReport] where freq_diagnosi is not null
--select  c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
--select * into vContrattiCongelataLuglio2013 from [C6MartPeriodico].[vContrattiPerGenerazioneReport]
CREATE VIEW [C6MartPeriodico].[vContrattiPerGenerazioneReport]
AS

select *
from vcontratticongelataLuglio2013
--from vcontratticongelataAgosto2013
--where bloccato = 0

--select * from vContrattiCongelataLuglio2013
--where cod_fiscale = 'PCTGNN45A30G276G'

--SELECT
--	a.Rete, a.Cod_Agente, a.Cod_Fiscale, a.CodiceContratto, ISNULL(a.Freq_Monitor, 'T') as Freq_Monitor, a.Freq_Diagnosi, a.Data_FineAvanzato, a.TIP_CONTRATTO, a.TIP_RIATTIVAZIONE
--FROM
--	C6Mart.CONTRATTOSEI a
--INNER JOIN
--(
--	SELECT
--		C6.CodiceContratto, ROW_NUMBER() OVER(PARTITION BY C6.Rete, C6.Cod_Fiscale ORDER BY C6.Data_FineAvanzato) AS UltimoAperto
--	FROM
--		C6Mart.CONTRATTOSEI AS C6
--	INNER JOIN
--		C6Mart.GESTIONE_PDF_FTP AS PDF
--	ON
--		C6.Rete = PDF.Rete
--	AND
--		C6.Cod_Fiscale = PDF.CodiceFiscale
--	AND
--		C6.CodiceContratto = SUBSTRING(PDF.NomeFile, 1, 11) --SUBSTRING(PDF.NomeFile, 0, 12)
--
--/* */		--inner JOIN c6Martperiodico.Mifid AS mi ON c6.rete=mi.rete AND c6.cod_fiscale=mi.cod_fiscale 
--			--join c6stagingperiodico.spb_contr_sintesi bf on c6.rete = bf.rete and c6.cod_fiscale = bf.codfis
--/* */		--inner join c6martperiodico.patrimonio_bf bf on c6.rete = bf.rete and c6.cod_fiscale = bf.cod_fiscale
--
--	WHERE
--		(1 = 1)
--
--			--AND ISNULL(C6.Data_FineAvanzato, CAST('99991231' AS datetime)) > '20111231'  /*Precedente Trimestrale*/ --select c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
--            --V commentare nel giro email
--/**/		--and isnull(mi.scaduto,1) = 0
--			--and isnull(C6.Data_Invio_Monitoraggio_Trimestrale,cast('20091101' as datetime)) < c6martperiodico.gettrimestre2(getdate(),0)--'20110331' --cast(C6MartPeriodico.getTrimestre(GETDATE(), 0) as datetime)
--
--	AND
--		PDF.DataGenerazione < c6martperiodico.gettrimestre2(getdate(),1) --'20110301'
--	GROUP BY
--		C6.CodiceContratto, C6.Rete, C6.Cod_Fiscale, C6.Data_FineAvanzato
--) b
--ON
--	a.CodiceContratto = b.CodiceContratto
--
--			--includi dati congelati
----			INNER JOIN
----				vContrattiCongelata1giu2013 c
----			ON
----				b.CodiceContratto = c.CodiceContratto
--			
--			--includi campione
--			--INNER JOIN dbo.CampioneReport AS t ON t.Cod_fiscale = C6.Cod_Fiscale AND t.Rete = C6.Rete
--			--INNER JOIN dbo.appoCampioneReport AS t ON t.Cod_fiscale = C6.Cod_Fiscale AND t.Rete = C6.Rete
--			
--			--includi disallineati
--			--INNER JOIN dbo.LeleDisallineatiOtt AS t ON t.Cf = C6.Cod_Fiscale AND t.Rete = C6.Rete
--
--WHERE
--	ISNULL(a.Data_FineAvanzato, CAST('99991231' AS datetime)) > c6martperiodico.getprevioustrimestre(getdate(), 0) --'20120331'  /*Precedente Trimestrale*/ --select c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
--AND 
--	b.UltimoAperto = 1
--
--			--parametro x join con Congelata
--			--and t.bloccato = 0 --and t.note is null --(quest'ultima condizione x escludere il cliente da recuperare)
GO
/****** Object:  View [C6MartPeriodico].[vPrometeiaTerziCategoriaProdotto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[vPrometeiaTerziCategoriaProdotto]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE
GO
/****** Object:  View [C6MartPeriodico].[vPrometeiaTerziIntermediario]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- View
CREATE VIEW [C6MartPeriodico].[vPrometeiaTerziIntermediario]
AS

SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodico.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all

	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		'EUR' AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,PATRIMONIO_TERZI.cod_Fiscale,rete

	

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE

GO
/****** Object:  View [C6MartPeriodico].[vTuttiIPortafogli_asu2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[vTuttiIPortafogli_asu2]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')

	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MART.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END
GO
/****** Object:  Table [C6MartPeriodico].[TEST_QUALITY]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TEST_QUALITY](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[MOTIVO] [varchar](250) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[RP_vContrattiPerGenerazioneReportTEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--select * from C6MartPeriodico.RP_vContrattiPerGenerazioneReport
--select count(*) from C6MartPeriodico.RP_vContrattiPerGenerazioneReport

CREATE VIEW [C6MartPeriodico].[RP_vContrattiPerGenerazioneReportTEST]
AS

--select * from C6StagingPeriodico.APPO_CONTRATTI
--select * from vcontrcong0913 where bloccato is null
--* from appovcontratti0913

select
	distinct 
	a.[chiaveClientePB],
	a.[COD_FISCALE],
	[COD_MANDATO],
	[PIVA_FIDUCIARIA],
	[COD_AGENTE],
	a.[rete],
	[codiceContratto],
	[flagRol],
	[INDIRIZZO],
	[cap],
	[CITTA],
	[PROVINCIA],
	[NAZIONE],
	[presso],
	[email],
	[FREQ_DIAGNOSI],
	isnull([FREQ_MONITORAGGIO], 'T') AS FREQ_MONITORAGGIO,
	[GENERAZIONEREPORT],
	[DATA_INIZIOBASE],
	[DATA_FINEBASE],
	[DATA_PERF_BASE],
	[DATA_PERF],
	[DATA_INZIOAVANZATO],
	[DATA_FINEAVANZATO],
	[RIATTIVAZIONE],
	[TIP_CONTRATTO],
	[TIP_RIATTIVAZIONE],
    [ClienteMIGRATO],
	[RISORSENA],
	[PROFILOATTIVO],
	[NumSolleciti],
	[NumRevoche],
	[Data_ultimoSollecito],
	[Data_ultimaRevoca],
	[InvioBenvenuto]
FROM
	C6StagingPeriodico.APPO_CONTRATTI a
LEFT JOIN
	(
		SELECT rete, cod_fiscale FROM c6martperiodico.test_quality  
		GROUP BY rete, cod_fiscale
	) t
ON
	a.rete = t.rete
AND
	a.cod_fiscale = t.cod_fiscale
WHERE 1=1
	and t.cod_fiscale is null
and a.cod_fiscale = 'GSPNGL31C04B157Q'

--and a.COD_FISCALE in
--(
--'GSTGPL59P03B586G',
--'SNTMLE45A22B300M',
--
--'BCHRRT54L12G999R',
--'BNCRRT34C30D612C',
--'BNIFNC55A04G999O',
--'BRGMSM68S20D869Z',
--'BRNLFR41R12B564B',
--'CHCLRA53P63C847G',
--'CRNPRZ46B14D612J',
--'CRZMRA47R50G337Y',
--'FBRDNL53E63L736K',
--'GTTNRC39H15F336S'
--)

GO
/****** Object:  View [C6Mart].[vTuttiIPortafogli_ccLiq]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[vTuttiIPortafogli_ccLiq]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,

		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')


	UNION ALL


---V Modifica per calcolo VaR prodotti ASU2
	SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END

GO
/****** Object:  View [C6MartPeriodico].[vTuttiIPortafogli_ccLiq_asu2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- View

-- View
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[vTuttiIPortafogli_ccLiq_asu2]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,

		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')

	UNION ALL

	

	---V Modifica per calcolo VaR prodotti ASU2
		SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

				ELSE
					'RISFIN|PIRAMIDE|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END											AS Portafoglio,
									
		 PATRIMONIO_BF.ISIN AS CodiceProdotto,

			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		 PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6Martperiodico.PATRIMONIO_BF
		INNER JOIN C6Martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6Martperiodico.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END
GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati.sve]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE VIEW [C6Mart].[vRpClientiNonMigrati.sve]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	)










GO
/****** Object:  Table [C6Mart].[PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_ALTRO](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[QUANTITA] [int] NULL,
	[DESCRIZIONE] [varchar](150) NULL,
	[CTV] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[vPatrimonioAltroAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[vPatrimonioAltroAggregato]
AS
SELECT
	RETE, 
	COD_FISCALE, 
	SUM(CTV) as PatrimonioAltro
FROM C6Mart.PATRIMONIO_Altro
GROUP BY 
	RETE, 
	COD_FISCALE



GO
/****** Object:  Table [C6MartPeriodico].[WSEIAN2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[WSEIAN2](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Indicatore_Rischio]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Indicatore_Rischio](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DTTRIM] [varchar](8) NOT NULL,
	[INSTITUTENAME] [varchar](26) NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [smallint] NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[VAR] [decimal](13, 3) NULL,
	[VARSTRING] [varchar](4) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [varchar](4) NULL,
	[COVERAGE] [numeric](12, 3) NULL,
	[COVERAGESTRING] [int] NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[PERCENTAGE] [numeric](38, 6) NULL,
	[ordine] [int] NOT NULL,
	[Ully_perc] [decimal](12, 2) NULL,
	[Ind_Rischio] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PARTITE_VIAGGIANTI](
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[IMPORTO] [decimal](18, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_PARTITE_VIAGGIANTI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioBFAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6MartPeriodico].[vPatrimonioBFAggregato]
AS

SELECT     PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE, 
			SUM(CTV) as CTV,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
			sum(case Upper(id_area) when 'CC' then ctv else 0 end ) as ContoCorrente,
--INIZIO INTERVENTI OMNIA
			sum(case Upper(id_area) when 'self' then ctv else 0 end ) as CTVSelf,
--			sum(case Upper(id_area) when 'CC' then 0 else ctv end ) as PatrimonioSenzaCC,
			sum(case Upper(id_area) when 'CC' then 0 
									when 'Self' then 0 
			else ctv end ) as PatrimonioSenzaCC,
--FINE INTERVENTI OMNIA
			--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv,
			sum((isnull([C6MartPeriodico].PATRIMONIO_BF.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv
FROM         [C6MartPeriodico].PATRIMONIO_BF



/* versione usata per l'estrazione della s80 per qc
SELECT     PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE, 
			SUM(CTV) as CTV,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
			sum(case when  (Upper(id_area)='CC' and ctv<0 )then ctv else 0 end ) as ContoCorrente,
			sum(case  when (Upper(id_area)='CC' and ctv<0) then 0 else ctv end ) as PatrimonioSenzaCC,
			--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv,
			sum((isnull([C6MartPeriodico].PATRIMONIO_BF.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv
FROM         [C6MartPeriodico].PATRIMONIO_BF
*/
--atringali subquery non serve a nulla
--LEFT JOIN 
--(
--	SELECT a.rete, a.cod_fiscale, /*sum (a.PARTVIA_INV) AS PARTVIA_INV,*/ sum (a.PARTVIA_DISINV) AS PARTVIA_DISINV
--	FROM (
--		SELECT DISTINCT rete, cod_fiscale, id_contratto, /*partvia_inv,*/ partvia_disinv 
--		FROM C6MartPeriodico.PATRIMONIO_bf
--		--WHERE partvia_disinv IS NOT NULL
--	) a
--	GROUP BY rete, cod_fiscale
--) PART_VIAGG
--	ON 
--		PART_VIAGG.RETE = PATRIMONIO_bf.RETE
--		AND PART_VIAGG.COD_FISCALE = PATRIMONIO_bf.COD_FISCALE 
GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE

GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioBFAggregato_SenzaNobPrez]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE VIEW [C6MartPeriodico].[vPatrimonioBFAggregato_SenzaNobPrez]
AS

SELECT     PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE, 
			SUM(CTV) as CTV,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
			sum(case Upper(id_area) when 'CC' then ctv else 0 end ) as ContoCorrente,
--INIZIO INTERVENTI OMNIA
			sum(case Upper(id_area) when 'self' then ctv else 0 end ) as CTVSelf,
--			sum(case Upper(id_area) when 'CC' then 0 else ctv end ) as PatrimonioSenzaCC,
			sum(case Upper(id_area) when 'CC' then 0 
									when 'Self' then 0 
			else ctv end ) as PatrimonioSenzaCC,
--FINE INTERVENTI OMNIA
			--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv,
			sum((isnull([C6MartPeriodico].PATRIMONIO_BF.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv
FROM         [C6MartPeriodico].PATRIMONIO_BF
where		isnull(nob_prez,'')<>'N'



/* versione usata per l'estrazione della s80 per qc
SELECT     PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE, 
			SUM(CTV) as CTV,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
			sum(case when  (Upper(id_area)='CC' and ctv<0 )then ctv else 0 end ) as ContoCorrente,
			sum(case  when (Upper(id_area)='CC' and ctv<0) then 0 else ctv end ) as PatrimonioSenzaCC,
			--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv,
			sum((isnull([C6MartPeriodico].PATRIMONIO_BF.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv
FROM         [C6MartPeriodico].PATRIMONIO_BF
*/
--atringali subquery non serve a nulla
--LEFT JOIN 
--(
--	SELECT a.rete, a.cod_fiscale, /*sum (a.PARTVIA_INV) AS PARTVIA_INV,*/ sum (a.PARTVIA_DISINV) AS PARTVIA_DISINV
--	FROM (
--		SELECT DISTINCT rete, cod_fiscale, id_contratto, /*partvia_inv,*/ partvia_disinv 
--		FROM C6MartPeriodico.PATRIMONIO_bf
--		--WHERE partvia_disinv IS NOT NULL
--	) a
--	GROUP BY rete, cod_fiscale
--) PART_VIAGG
--	ON 
--		PART_VIAGG.RETE = PATRIMONIO_bf.RETE
--		AND PART_VIAGG.COD_FISCALE = PATRIMONIO_bf.COD_FISCALE 
GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE

GO
/****** Object:  View [C6MartPeriodico].[vW6CKADEG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






/* Nel giro di email di revoca non si devono recuperare i dati dal SEI (Fabrizio) --
AND (Cod_Fiscale = 'TBNMSM52C01E938I')*/
CREATE VIEW [C6MartPeriodico].[vW6CKADEG]
AS
select wsei.rete as Rete,
wsei.codfis as Chiave_Acn,
case when wsei.CODFIS like '%@%' then wsei.piva else wsei.CODFIS end as Codfis,
wsei.CODMAN as Codman,
wsei.DTTRIM as Dttrim,
case when ris.Ind_Rischio='S' then 'S'
	 when ris.Ind_Rischio='N' then 'N' else 'NA' end as Adeg_Rischio,
	 case when wsei.RISERVA='S' then 'S'
		  when wsei.RISERVA='N' then 'N'
		 else 'NA' end as Adeg_Riserva,
case when wsei.INVL_PERIOD='S' then 'S'
	 when wsei.INVL_PERIOD='N' then 'N'
	 else 'NA' end as Adeg_Invl_Period,
	 case
	when wsei.flgprof = 'S' then 'NR'
	when wsei.flagpg = 1 and wsei.flgprof = 'N' and  wsei.flagnqp = 'S' and wsei.flgprlrde = 'N' then 'NA' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
	when upper(wsei.clcompl) = 'N' and wsei.nocompl = 'S' then 'N'
	when upper(wsei.clcompl) = 'N' and wsei.flagpg = 0 then 'N'

		  when upper(wsei.clcompl) = 'N' and wsei.flagpg = 1 and wsei.flgprlrde = 'S' then 'N'
	when upper(wsei.clcompl) = 'S' then 'S'
	else 'NA' end as Adeg_Compl,
	case
    when wsei.flgprof = 'S' then 'NR'
	when upper(wsei.flgconc) = 'S' then 'S'
	when upper(wsei.flgconc) in ('N') then 'N'
	else 'NA' end as Adeg_Conc_ProdCompl,
	case
    when wsei.flgprof = 'S' then 'NR'
	when upper(wsei.freq) = 'S' then 'S'
	when upper(wsei.freq) = 'N' then 'N'
	else 'NA'	
end as Adeg_Freq_Oper,
case
	when wsei.flgprof = 'S' then 'NR'
	when upper(wsei.concemi) = 'S' then 'S'
	when upper(wsei.concemi) = 'N' then 'N'
	else 'NA' end as Adeg_Conc_Emitt,
	case
	when wsei.flgprof = 'S' then 'NR'
	when upper(wsei.ADEGCONC_VALUT) = 'S' then 'S'
	when upper(wsei.ADEGCONC_VALUT) = 'N' then 'N'
	else 'NA'end as Adeg_Conc_Valut,
	isnull(vbf.ctv,0.00) + isnull(ppvv.IMPORTO,0.00) as Rfa_tot,
	nob.CTV as Rfa_sei,
	wsei.IMP_RISERVA as Riserva,
	wsei.CODPROF as Profilo,
	wsei.COD_PROFEC AS Profilo_EC,
	wsei.CLCOMPL as Indicatore_ChiamataR4,
	wsei.FLGPRLRDE as Flg_Legali_Rappresentanti
		 from C6MartPeriodico.WSEIAN2 wsei
left join C6MartPeriodico.Indicatore_Rischio ris on RIS.rete=wsei.RETE and RIS.cod_fiscale=wsei.CODFIS
left join [C6MartPeriodico].[vPatrimonioBFAggregato] vbf on vbf.RETE=wsei.RETE and wsei.CODFIS=vbf.COD_FISCALE
left join [C6MartPeriodico].[vPatrimonioBFAggregato_SenzaNobPrez] nob on nob.RETE=wsei.RETE and wsei.CODFIS=nob.COD_FISCALE
left join  [C6MartPeriodico].[PARTITE_VIAGGIANTI] ppvv on wsei.RETE=ppvv.RETE and wsei.CODFIS=ppvv.COD_FISCALE
--and c6.cod_fiscale = 'BRZGPP39H08C352F'

GO
/****** Object:  View [C6Mart].[vIntermediari]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Mart].[vIntermediari] AS
SELECT DISTINCT RETE, COD_FISCALE, INTERMEDIARIO
FROM  C6Mart.PATRIMONIO_TERZI
GO
/****** Object:  View [C6MartPeriodico].[vTuttiIPortafogli_ccLiq_preASU2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- View

-- View
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[vTuttiIPortafogli_ccLiq_preASU2]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,

		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END
GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioNonRappresentabileAsset]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6MartPeriodico].[vPatrimonioNonRappresentabileAsset]
AS
SELECT 	
			RETE,
			COD_FISCALE,
			--SUM(Controvalore) as Controvalore
			SUM( cast(Controvalore as decimal(15,3))) as Controvalore
	FROM (
			SELECT 	
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					PATRBF.CTV as Controvalore
			FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
			INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
				ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE
				PATRBF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
				AND ASSETPERC.COD_PRODOTTO IS NULL
			UNION ALL
--			SELECT  
--					PATRBF.RETE,
--					PATRBF.COD_FISCALE,
--					ASUL.CTV as Controvalore
--			FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--			INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--			INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
--				ON PATRBF.RETE = ASUL.RETE
--					AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--					AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--			LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
--				ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--			WHERE 
--				PATRBF.TIPO_PRODOTTO = 'ASUL'
--				AND ASSETPERC.COD_PRODOTTO IS NULL


--
SELECT		ASUL.RETE,
            ASUL.COD_FISCALe,
			ASUL.CTV*isnull(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE

		ASSETPERC.COD_PRODOTTO IS NULL











	) PATR_NO_RAPPR
	GROUP BY 
			RETE,
			COD_FISCALE
GO
/****** Object:  View [dbo].[vPatrimonioTerziReteCodFisc]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vPatrimonioTerziReteCodFisc]
AS
SELECT     RETE, COD_FISCALE, INTERMEDIARIO
FROM         C6Mart.PATRIMONIO_TERZI
GROUP BY RETE, COD_FISCALE, INTERMEDIARIO
GO
/****** Object:  View [C6MartPeriodico].[vTuttiIPortafogli_preASU2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--modificata per i cc in liq Marianna & Valerio
CREAte VIEW [C6MartPeriodico].[vTuttiIPortafogli_preASU2]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')

-- levato 'cc'

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END
GO
/****** Object:  View [dbo].[vPatrimonioBFReteCodFisc]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vPatrimonioBFReteCodFisc]
AS
SELECT     RETE, COD_FISCALE
FROM         C6Mart.PATRIMONIO_BF
GROUP BY RETE, COD_FISCALE
GO
/****** Object:  View [C6Mart].[vContrattiNonGenerati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

/* Nel giro di email di revoca non si devono recuperare i dati dal SEI (Fabrizio) --
AND (Cod_Fiscale = 'TBNMSM52C01E938I')*/
CREATE VIEW [C6Mart].[vContrattiNonGenerati]
AS
SELECT		Rete, 
			Cod_Agente, 
			Cod_Fiscale, 
			PIva_Fiduciaria, 
			CodiceContratto, 
			Freq_Monitor, 
			Freq_Diagnosi, 
			TipoElaborazione, 
			AdesioneSuccessivaAvanzato, 
            InvioBenvenuto, 
			ClienteMigrato, 
			RisorseNa, 
			NumRevoche, 
			Data_Perf

FROM        C6Mart.vTuttiIContratti AS C6
WHERE		(1 = 1) 
			AND (InvioBenvenuto = 'N') 
			--AND (ClienteMigrato = 'S') 
			AND (ISNULL(NumRevoche, 0) = 0) 
			--and Cod_Fiscale='00359720281'
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_INLINE_20240427]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE   FUNCTION [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo_INLINE_20240427]
(
    @TipoProdotto varchar(5),
    @CodInterno varchar(13),
    @CodMAF varchar(13),
    @CodISIN varchar(16),
    @CodSottoprodotto varchar(13)
)
RETURNS TABLE
AS
RETURN
(
    SELECT TOP 1
        CATALOGUEID
    FROM C6StagingPeriodico.RP_CATALOGOPRODOTTI CAT
    WHERE 
        (
            (@TipoProdotto IN ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC', 'CC')
                AND (
                    (
                        @CodSottoprodotto NOT IN ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')
                        AND @CodInterno NOT IN ('RS','RB','RM','RV','RE','RF','IE','XP','3A','3L','1M','2M','3M','4M','5M','6M','7M','8M','9M')
                        AND ISNULL(CAT.CODINTERNO,'') = ISNULL(@CodInterno,'')
                        AND ISNULL(CAT.CODSOTTOPRODOTTO,'') = ISNULL(@CodSottoprodotto,'')
                    )
                    OR
                    (
                        @CodInterno IN ('RS','RB','RM','RV','RE','RF','IE','XP','3A','3L','1M','2M','3M','4M','5M','6M','7M','8M','9M')
                        AND ISNULL(CAT.CODINTERNO,'') = ISNULL(@CodInterno,'')
                        AND ISNULL(CAT.CODSOTTOPRODOTTO,'') = ISNULL(@CodSottoprodotto,'')
                        AND ISNULL(CAT.CODISIN,'') = ISNULL(@CodISIN,'')
                    )
                )
            )
            OR (@TipoProdotto IN ('ASU2', 'GP') 
                AND ISNULL(CAT.CODINTERNO,'') = ISNULL(@CodInterno,'')
                AND ISNULL(CAT.CODSOTTOPRODOTTO,'') = ISNULL(@CodSottoprodotto,'')
                AND ISNULL(CAT.CODISIN,'') = ISNULL(@CodISIN,'')
            )
            OR (@TipoProdotto IN ('DT', 'ASD')
                AND ISNULL(CAT.CODINTERNO,'') = ISNULL(@CodInterno,'')
            )
            OR (@TipoProdotto = 'GES'
                AND ISNULL(CAT.CODINTERNO,'') = ISNULL(@CodInterno,'')
                AND ISNULL(CAT.CODMAF,'') = ISNULL(@CodMAF,'')
            )
        )
    ORDER BY VISIBILITA DESC
)
GO
/****** Object:  View [C6MartPeriodico].[vNumeroIntermediari]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[vNumeroIntermediari] AS
SELECT RETE, COD_FISCALE, count(DISTINCT INTERMEDIARIO) as NumeroIntermediari
FROM  C6MartPeriodico.PATRIMONIO_TERZI
GROUP BY RETE, COD_FISCALE
GO
/****** Object:  View [dbo].[S1IMMOBILIARE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S1IMMOBILIARE]
AS
SELECT     SUM(VALORE_STIMATO) AS controvalore, RETE
FROM         C6Mart.PATRIMONIO_IMMOBILIARE
GROUP BY RETE
GO
/****** Object:  View [dbo].[S1ALTRO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S1ALTRO]
AS
SELECT     SUM(CTV) AS controvalore, RETE
FROM         C6Mart.PATRIMONIO_ALTRO
GROUP BY RETE
GO
/****** Object:  View [dbo].[S1SINTESI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S1SINTESI]
AS
SELECT     controvalore, RETE, 'ALTRO' AS descrizione
FROM         dbo.S1ALTRO
UNION
SELECT     controvalore, RETE, 'BF' AS descrizione
FROM         dbo.S1BF
UNION
SELECT     controvalore, RETE, 'IMMOBILIARE' AS DESCRIZIONE
FROM         dbo.S1IMMOBILIARE
UNION
SELECT     controvalore, RETE, 'TERZI' AS DESCRIZIONE
FROM         dbo.S1TERZI
GO
/****** Object:  View [dbo].[S1sintesitotale]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[S1sintesitotale]
AS
SELECT     SUM(controvalore) AS tOTALE, RETE
FROM         dbo.S1SINTESI
GROUP BY RETE
GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioTerziAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[vPatrimonioTerziAggregato]
AS
SELECT
	RETE,
	COD_FISCALE,
	SUM(ROUND(CTV, 2)) AS CTV,
	SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END, 2))  AS ControvaloreSenzaCC,
	SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN CTV ELSE 0 END, 2)) AS ControvaloreCC

FROM
	C6MartPeriodico.PATRIMONIO_TERZI
GROUP BY
	RETE,
	COD_FISCALE
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_V]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_V]
WITH
SCHEMABINDING
AS
SELECT distinct contr.[chiaveClientePB]
      ,contr.[COD_FISCALE]
      ,contr.[COD_MANDATO]
      ,contr.[PIVA_FIDUCIARIA]
      ,contr.[COD_AGENTE]
      ,contr.[rete]
      ,contr.[codiceContratto]
      ,contr.[flagRol]
      ,contr.[INDIRIZZO]
      ,contr.[cap]
      ,contr.[CITTA]
      ,contr.[PROVINCIA]
      ,contr.[NAZIONE]
      ,contr.[presso]
      ,contr.[email]
      ,contr.[FREQ_DIAGNOSI]
      ,contr.[FREQ_MONITORAGGIO]
      ,contr.[GENERAZIONEREPORT]
      ,contr.[DATA_INIZIOBASE]
      ,contr.[DATA_FINEBASE]
      ,contr.[DATA_PERF_BASE]
      ,contr.[DATA_PERF]
      ,contr.[DATA_INZIOAVANZATO]
      ,contr.[DATA_FINEAVANZATO]
      ,contr.[RIATTIVAZIONE]
      ,contr.[TIP_CONTRATTO]
      ,contr.[TIP_RIATTIVAZIONE]
      ,contr.[ClienteMIGRATO]
      ,contr.[RISORSENA]
      ,contr.[PROFILOATTIVO]
      ,contr.[NumSolleciti]
      ,contr.[NumRevoche]
      ,contr.[Data_ultimoSollecito]
      ,contr.[Data_ultimaRevoca]
      ,contr.[InvioBenvenuto]

-- LA APPO CONTRATTI E' QUELLA DEL SEI
-- Modifica del 10/9/2018 - Per gestire un elenco separato (e quindi comprendente i nuovi contratti,
--  quelli dell'ultimo mese di trimestrale), lavoriamo con un appo_contratti separata

   --from [C6StagingPeriodico].[APPO_CONTRATTI] contr
   from [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI] contr
-- fine modifica del 10/9/2018

left join  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null 
or 0 = (select count(*) 
from  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] with (nolock))
GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport]
AS

--select * from C6StagingPeriodico.APPO_CONTRATTI
--select * from vcontrcong0913 where bloccato is null
--* from appovcontratti0913

select
	distinct 
	a.[chiaveClientePB],
	a.[COD_FISCALE],
	[COD_MANDATO],
	[PIVA_FIDUCIARIA],
	[COD_AGENTE],
	a.[rete],
	[codiceContratto],
	[flagRol],
	[INDIRIZZO],
	[cap],
	[CITTA],
	[PROVINCIA],
	[NAZIONE],
	[presso],
	[email],
	[FREQ_DIAGNOSI],
	isnull([FREQ_MONITORAGGIO], 'T') AS FREQ_MONITORAGGIO,
	[GENERAZIONEREPORT],
	[DATA_INIZIOBASE],
	[DATA_FINEBASE],
	[DATA_PERF_BASE],
	[DATA_PERF],
	[DATA_INZIOAVANZATO],
	[DATA_FINEAVANZATO],
	[RIATTIVAZIONE],
	[TIP_CONTRATTO],
	[TIP_RIATTIVAZIONE],
    [ClienteMIGRATO],
	[RISORSENA],
	[PROFILOATTIVO],
	[NumSolleciti],
	[NumRevoche],
	[Data_ultimoSollecito],
	[Data_ultimaRevoca],
	[InvioBenvenuto]
FROM
C6StagingPeriodicoImmobiliare.APPO_CONTRATTI_v a
--LEFT JOIN
--	(
--		SELECT rete, codiceFiscale FROM [C6MartPeriodico].[tb_SegnalazioniDataQuality] 
--		GROUP BY rete, codiceFiscale
--	) t
--ON
--	a.rete = t.rete
--AND
--	a.cod_fiscale = t.codiceFiscale
--WHERE 1=1
--	and t.codiceFiscale is null



GO
/****** Object:  View [C6Mart].[zzzvContrattiPerGenerazioneReport_AND]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





/*

--select * from global_error select count(*) from c6mart.gestione_pdf_ftp where dataGenerazione >'20110218'
select * from c6mart.contrattosei where cod_fiscale = 'BCCGNN34E09I512K'
select * from [C6Mart].[vContrattiPerGenerazioneReport]
 Nel giro di email di revoca non si deve produrre il report (Fabrizio) --*/
CREATE VIEW [C6Mart].[zzzvContrattiPerGenerazioneReport_AND]
AS
SELECT  
--VALERIO TEST
--top 1 

C6.Rete, Cod_Agente, C6.Cod_Fiscale, CodiceContratto, Freq_Monitor, Freq_Diagnosi,TipoElaborazione,AdesioneSuccessivaAvanzato,InvioBenvenuto, 
                      ClienteMigrato, RisorseNa, NumRevoche,TIP_CONTRATTO,tip_riattivazione
FROM         C6Mart.vTuttiIContratti AS C6 
--LEFT JOIN	 C6Mart.MIFID AS MIFID
--ON	C6.RETE = MIFID.RETE AND C6.COD_FISCALE = MIFID.COD_FISCALE
WHERE     (1 = 1)	
                    and cod_agente not in ('015126')
                    AND (InvioBenvenuto = 'N') 
					AND (ClienteMigrato = 'S') 
					AND (ISNULL(RisorseNa, 'N') = 'N') 
					AND (ISNULL(NumRevoche, 0) = 0)
					--AND (DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT))
					--AND (
					--   (DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR tip_riattivazione = 2
					--)
					
					AND (ISNULL(PartViaDisinv, 'N') = 'N')
					AND	C6.Cod_Fiscale IN (
							SELECT	COD_FISCALE
							FROM    C6Mart.PIRAMIDE_MOD)
					--AND ProfiloAttivo = 1



--and cod_fiscale   in
--(
--'BCLMSM63T11C933E' --rimettere sulla contrattosei inviobenvenuto = S
----'BRZGPP39H08C352F'
--)
--
--begin tran
--update c6mart.contrattosei set inviobenvenuto = 'S' where cod_fiscale = 'BCLMSM63T11C933E'
--commit
--rollback




GO
/****** Object:  Table [dbo].[LogN]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LogN](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Application] [nvarchar](50) NOT NULL,
	[Logged] [datetime] NOT NULL,
	[Level] [nvarchar](50) NOT NULL,
	[Message] [nvarchar](max) NOT NULL,
	[UserName] [nvarchar](250) NULL,
	[ServerName] [nvarchar](max) NULL,
	[Port] [nvarchar](max) NULL,
	[Url] [nvarchar](max) NULL,
	[Https] [bit] NULL,
	[ServerAddress] [nvarchar](100) NULL,
	[RemoteAddress] [nvarchar](100) NULL,
	[Logger] [nvarchar](250) NULL,
	[Callsite] [nvarchar](max) NULL,
	[Exception] [nvarchar](max) NULL,
 CONSTRAINT [PK_dbo.LogN] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  View [dbo].[vDiscardedQuarterlyReports]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vDiscardedQuarterlyReports]
AS
SELECT Logged, LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(Message, 'constructing', ''), 'of', ''), 'finished', ''), ' does not finished due to the error', ''))) AS Expr1, 
               CASE WHEN message LIKE '%finished' THEN 'finished' WHEN message LIKE '%not finished%' THEN 'error' ELSE 'started' END AS process_status
FROM  dbo.LogN
WHERE (Message LIKE '%constructing%') AND ([Level] = 'Debug')
GO
/****** Object:  Table [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](256) NULL,
	[TIPOLOGIA] [varchar](100) NULL,
	[LOCALITA] [varchar](60) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[AFFITTO] [decimal](15, 3) NULL,
	[NOTE] [varchar](256) NULL,
	[DIV_RIFERIMENTO] [varchar](20) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioImmobAggregato]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6MartPeriodico].[vPatrimonioImmobAggregato]
AS
SELECT     RETE, COD_FISCALE, 
			SUM(VALORE_STIMATO) as PatrimonioImmob
FROM         C6MartPeriodico.PATRIMONIO_Immobiliare
GROUP BY RETE, COD_FISCALE


GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_20180612_PreMotorePrometeia]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_20180612_PreMotorePrometeia]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END

GO
/****** Object:  View [C6Mart].[RP_vTuttiIContratti_OnDemand_Adriano]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE VIEW [C6Mart].[RP_vTuttiIContratti_OnDemand_Adriano]
AS
SELECT    
	Rete, 
	Cod_Agente, 
	case
		when(isnull(cod_mandato,'') <> '')
			then 'FF@'+cod_mandato
			else Cod_Fiscale
	end as Cod_fiscale, 
	PIva_Fiduciaria, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi, 
	1 as ProfiloAttivo, 
	'G' AS TipoElaborazione, 
	CASE 
		WHEN (DATEDIFF(DAY,Data_InizioBase, Data_INZIOAVANZATO) > 0) 
			THEN 1 
			ELSE 0 END 
	AS AdesioneSuccessivaAvanzato, 
	InvioBenvenuto, 
	ClienteMigrato, 
	RisorseNa, 
	NumRevoche, 
    null as PartViaDisinv, --ma serve????
    Data_Perf 
    ,a.TIP_CONTRATTO --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,riattivazione as tip_riattivazione --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,a.chiaveClientePb --V Serve nella [C6Mart].[RP_AggiornaFlagContratto] per facilitare i join
	,a.TipoConsulenza
--select *
FROM 
    C6Mart.VCONTRATTI a
JOIN
	C6Mart.CONTRATTOSEI_METADATI b
ON
	a.chiaveClientePB = b.chiaveClientePB

	
WHERE     1 = 1 
--AND (InvioBenvenuto = 'N') 

AND (isnull(Data_FineAvanzato,'99990101') > getDate()) 

UNION ALL


SELECT  
	a.Rete, 
	Cod_Agente, 
	case
		when(isnull(cod_mandato,'') <> '')
			then 'FF@'+cod_mandato
			else a.Cod_Fiscale
	end as Cod_fiscale, 
	PIva_Fiduciaria, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi, 
	ProfiloAttivo, 
	'G' AS TipoElaborazione, 
	CASE 
		WHEN (DATEDIFF(DAY,Data_InizioBase, Data_INZIOAVANZATO) > 0) 
			THEN 1 
			ELSE 0 END 
	AS AdesioneSuccessivaAvanzato, 
	InvioBenvenuto, 
	ClienteMigrato, 
	RisorseNa, 
	NumRevoche, 
    null as PartViaDisinv, --ma serve????
    Data_Perf 
    ,a.TIP_CONTRATTO --DA REPLAT Rilascio nuova gestione Private/Affluent
    ,riattivazione as tip_riattivazione --DA REPLAT Rilascio nuova gestione Private/Affluent
	 ,a.chiaveClientePb --V Serve nella [C6Mart].[RP_AggiornaFlagContratto] per facilitare i join
	 ,a.TipoConsulenza
FROM 
    C6Mart.VCONTRATTI a
JOIN
	C6Mart.CONTRATTOSEI_METADATI b
ON
	a.chiaveClientePB = b.chiaveClientePB
JOIN
    C6Mart.GESTIONE_EMAIL AS ge 
ON a.Cod_Fiscale = ge.Cod_Fiscale AND a.Rete = ge.Rete AND ge.Tipo = 'PERF' AND ge.data_invio IS NULL

WHERE     1 = 1 
AND (InvioBenvenuto = 'S') 

AND (isnull(Data_FineAvanzato,'99990101') > getDate()) 




/*
UNION ALL
SELECT     C6.Rete, Cod_Agente, C6.Cod_Fiscale, PIva_Fiduciaria, CodiceContratto, Freq_Monitor, Freq_Diagnosi, ProfiloAttivo, 'G' AS TipoElaborazione, CASE WHEN (DATEDIFF(DAY, 
                      Data_InizioBase, Data_Sott) > 0) THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, InvioBenvenuto, ClienteMigrato, RisorseNa, NumRevoche, 
                      PartViaDisinv, Data_Perf, TIP_CONTRATTO,tip_riattivazione
FROM         C6Mart.CONTRATTOSEI AS C6 INNER JOIN
                      C6Mart.GESTIONE_EMAIL AS ge ON C6.Cod_Fiscale = ge.Cod_Fiscale AND C6.Rete = ge.Rete AND ge.Tipo = 'PERF' AND ge.data_invio IS NULL
WHERE     (1 = 1) AND InvioBenvenuto = 'S' AND (Data_FineAvanzato IS NULL)

*/





GO
/****** Object:  View [C6Mart].[RP_vContrattiPerGenerazioneReport_OnDemand_Adriano]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE VIEW [C6Mart].[RP_vContrattiPerGenerazioneReport_OnDemand_Adriano]
AS
SELECT  
	C6.Rete, 
	Cod_Agente, 
	C6.Cod_Fiscale, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi,
	TipoElaborazione,
	AdesioneSuccessivaAvanzato,
	InvioBenvenuto, 
    ClienteMigrato, 
    RisorseNa, 
    NumRevoche,
    tip_contratto,
    tip_riattivazione,
	TipoConsulenza
FROM C6Mart.[RP_vTuttiIContratti_OnDemand_Adriano] AS C6 
--WHERE  (1 = 1)
--        AND cod_agente not in ('015126')
--        --AND (InvioBenvenuto = 'N') 
--		--AND (ClienteMigrato = 'S')    /* en20161021 */
--		AND (ISNULL(RisorseNa, 'N') = 'N') 
--		AND (ISNULL(NumRevoche, 0) = 0)
--		AND ((DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR cod_agente='015312')
--		--OR cod_fiscale = 'FF@5117')
--		AND	C6.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
--		AND ProfiloAttivo = 1



GO
/****** Object:  View [C6Mart].[RP_vTuttiIPortafogli_ccLiq_20180612_PreMotorePrometeia]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[RP_vTuttiIPortafogli_ccLiq_20180612_PreMotorePrometeia]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL


---V Modifica per calcolo VaR prodotti ASU2
	SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END

GO
/****** Object:  View [C6StagingPeriodico].[APPO_CONTRATTI_V_20170407.SAVE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6StagingPeriodico].[APPO_CONTRATTI_V_20170407.SAVE]
WITH
SCHEMABINDING
AS
SELECT distinct contr.[chiaveClientePB]
      ,contr.[COD_FISCALE]
      ,contr.[COD_MANDATO]
      ,contr.[PIVA_FIDUCIARIA]
      ,contr.[COD_AGENTE]
      ,contr.[rete]
      ,contr.[codiceContratto]
      ,contr.[flagRol]
      ,contr.[INDIRIZZO]
      ,contr.[cap]
      ,contr.[CITTA]
      ,contr.[PROVINCIA]
      ,contr.[NAZIONE]
      ,contr.[presso]
      ,contr.[email]
      ,contr.[FREQ_DIAGNOSI]
      ,contr.[FREQ_MONITORAGGIO]
      ,contr.[GENERAZIONEREPORT]
      ,contr.[DATA_INIZIOBASE]
      ,contr.[DATA_FINEBASE]
      ,contr.[DATA_PERF_BASE]
      ,contr.[DATA_PERF]
      ,contr.[DATA_INZIOAVANZATO]
      ,contr.[DATA_FINEAVANZATO]
      ,contr.[RIATTIVAZIONE]
      ,contr.[TIP_CONTRATTO]
      ,contr.[TIP_RIATTIVAZIONE]
      ,contr.[ClienteMIGRATO]
      ,contr.[RISORSENA]
      ,contr.[PROFILOATTIVO]
      ,contr.[NumSolleciti]
      ,contr.[NumRevoche]
      ,contr.[Data_ultimoSollecito]
      ,contr.[Data_ultimaRevoca]
      ,contr.[InvioBenvenuto]
from [C6StagingPeriodico].[APPO_CONTRATTI] contr
left join  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null or 0 = (select count(*) from  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] with (nolock))
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL,
 CONSTRAINT [PK_SPB_CONTR_SINTESI] PRIMARY KEY CLUSTERED 
(
	[DTTRIM] ASC,
	[DTRIFE] ASC,
	[RETE] ASC,
	[CODFIS] ASC,
	[CODCONF] ASC,
	[CONTO] ASC,
	[RUBR] ASC,
	[CUSTGAR] ASC,
	[TIPPROD] ASC,
	[CODINT] ASC,
	[SUBPROD] ASC,
	[CODABI] ASC,
	[PCTKEY] ASC,
	[ISIN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
) ON [STAGING]
GO
/****** Object:  View [C6StagingPeriodico].[SPB_CONTR_SINTESI_v]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE view  [C6StagingPeriodico].[SPB_CONTR_SINTESI_v]
as
select s.* 
from C6StagingPeriodico.SPB_CONTR_SINTESI s 
left join C6StagingPeriodico.APPO_CONTRATTI_LIMITER l
on l.rete = s.rete and s.codfis = l.cod_fiscale
where l.rete is not null or 0 = (select count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER)


GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_20180612_preNewMotoreProm]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_20180612_preNewMotoreProm]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  Table [C6StagingPeriodico].[rp_Consulenza]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[rp_Consulenza](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6StagingPeriodico].[RP_CONSULENZA_v]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE view [C6StagingPeriodico].[RP_CONSULENZA_v]
as
select s.*
from C6StagingPeriodico.RP_CONSULENZA s
left join C6StagingPeriodico.APPO_CONTRATTI_LIMITER l
on l.rete = s.rete and s.cod_fiscale = l.cod_fiscale or 0 = (select count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER)


GO
/****** Object:  View [C6Mart].[RP_vTuttiIPortafogli_ccLiq_20180612_NewMotorePrometeia]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[RP_vTuttiIPortafogli_ccLiq_20180612_NewMotorePrometeia]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

			--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------


		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL


---V Modifica per calcolo VaR prodotti ASU2
	SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

			--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------


		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,

		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.01 end	AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|' + PATRIMONIO_BF.POSITION_ID

		END

GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- View

-- View
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014

CREATE      VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin]
AS
 
SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				
		END										AS Portafoglio,

		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ISNULL(ANAG_PRODOTTI.COD_ISIN,'')
			ELSE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceProdotto,

		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
			WHEN '$' THEN ''
			ELSE iSNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
	
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto

		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale ,

		'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,70,11) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		CASE 
			when isnull(core.fondocore,0) > 0 or (LEN(isnull(ANAG_PRODOTTI.cod_isin,''))<12 and isnull(core.fondocore,0)=0 and ANAG_PRODOTTI.tipo_prodotto not in ('GP','CC','DT'))then ''
			ELSE	ANAG_PRODOTTI.cod_isin 
		END as cod_isin,
		isnull(ANAG_PRODOTTI.cod_sottoprodotto,'') as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		Case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(cast(patrimonio_bf.chiave_progetto as varchar),'') 
		end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		--patrimonio_bf.position_id
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				               
        END + '@'  + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END)AS varchar ) as position_id
		,PATRIMONIO_BF.COD_PRODOTTO as Prodotto_id
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	left join (select distinct fondocore,catalogueid from c6stagingperiodico.rp_catalogoprodotti where isnull(fondocore,0)>0) as core
	on Patrimonio_BF.cod_prodotto = core.catalogueid

	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')

	UNION ALL

	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
			END										AS Portafoglio,	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA ,'')
			WHEN '$' THEN ''
			ELSE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto

		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			PATRIMONIO_BF.CTV						AS CtvReale,

				'COMPLESSIVO|BF' as tipoptf,
		ANAG_PRODOTTI.cod_maf as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,70,11) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		ANAG_PRODOTTI.cod_isin as cod_isin,
		ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
				Case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(cast(patrimonio_bf.chiave_progetto as varchar),'') 
		end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		--patrimonio_bf.position_id
		CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
			END	+ '@'  + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar ) as position_id
		,PATRIMONIO_BF.COD_PRODOTTO as Prodotto_id
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

union all

	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
			
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		CASE isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'') 
			WHEN '$' THEN ''
			ELSE isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale,

		'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		'ASUL' as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,70,11) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		ANAG_PRODOTTI.cod_isin as cod_isin,
		ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		--CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
		--	WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
		--	ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		--END				AS cod_sottoProdotto,						
		--CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
		--	WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
		--	ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		--END					AS cod_sottoProdotto,	 
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
				Case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(cast(patrimonio_bf.chiave_progetto as varchar),'') 
		end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		--patrimonio_bf.position_id as position_id
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
			
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID
				-- fine modifica del 19/10/2018
		END	+ '@'  + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END)AS varchar ) as position_id
		,PATRIMONIO_BF.COD_PRODOTTO as Prodotto_id
	--10106
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 	
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = DETTAGLIO_ASUL.COD_PRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')


	UNION ALL


		SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		ISNULL(INTERMEDIARIO.CODICEADEGUATEZZA,'')	AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
			CASE ISNULL(INTERMEDIARIO.CodiceAdeguatezza,'')
			WHEN '$' THEN ''
			ELSE replace(INTERMEDIARIO.CodiceAdeguatezza,'$','')
		END			AS CodiceAdeguatezza,
		---------------------------------------------------------------

		--INTERMEDIARIO.PIAZZA				
		''									AS codiceInterno_old,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale,

		INTERMEDIARIO.tipoptf as tipoptf,
		isnull(INTERMEDIARIO.codiceMaf,'') as cod_maf,
		INTERMEDIARIO.INTERMEDIARIO as intermediario,
		INTERMEDIARIO.FAMPRODT as famprodt,
		CASE INTERMEDIARIO.Asset_Terzi
			WHEN '$' THEN ''
			ELSE replace(INTERMEDIARIO.Asset_Terzi,'$','')
		END	as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		isnull(INTERMEDIARIO.codiceinterno,'') as cod_interno,
		'' as termid,
		'' as annos,
		'' as progs,
		INTERMEDIARIO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		isnull(intermediario.CODiceSOTTOPRODOTTO,'') AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		intermediario.COD_PRODOTTO_TERZI as chiave_prodotto_terzi,
		'' as numpolizza,
		--INTERMEDIARIO.PORTAFOGLIO 
		'COMPLESSIVO|TERZI' + '|' + INTERMEDIARIO.FAMPRODT + '|'+intermediario.COD_PRODOTTO_TERZI + '@' + CAST(ROW_NUMBER() OVER (ORDER BY INTERMEDIARIO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END )AS varchar ) as position_id
		,INTERMEDIARIO.COD_PRODOTTO as prodotto_id
	 FROM c6martperiodico.RP_VPROMETEIATERZIINTERMEDIARIO_aladdin INTERMEDIARIO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

union all


	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
	-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		ISNULL(CATEGORIAPRODOTTO.CODICEADEGUATEZZA,'')	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
			CASE ISNULL(CATEGORIAPRODOTTO.CodiceAdeguatezza,'')
			WHEN '$' THEN ''
			ELSE replace(CATEGORIAPRODOTTO.CodiceAdeguatezza,'$','')
		END	
				AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS codiceInterno_old,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale,

		CATEGORIAPRODOTTO.tipoptf as tipoptf,
		isnull(CATEGORIAPRODOTTO.codiceMaf,'') as cod_maf,
		'' as intermediario,
		CATEGORIAPRODOTTO.famprodt as famprodt,
		replace(CATEGORIAPRODOTTO.Asset_Terzi,'$','') as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		isnull(CATEGORIAPRODOTTO.codiceinterno,'') as cod_interno,
		'' as termid,
		'' as annos,
		'' as progs,
		CATEGORIAPRODOTTO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		isnull(CATEGORIAPRODOTTO.CODiceSOTTOPRODOTTO,'') AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		replace(CATEGORIAPRODOTTO.COD_PRODOTTO_TERZI,'$','') as chiave_prodotto_terzi,
		'' as numpolizza,
		CATEGORIAPRODOTTO.PORTAFOGLIO + '@' + CAST(ROW_NUMBER() OVER (ORDER BY CATEGORIAPRODOTTO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END )AS varchar ) as position_id
		,CATEGORIAPRODOTTO.COD_Prodotto as Prodotto_id

	FROM c6martperiodico.RP_VPROMETEIATERZICATEGORIAPRODOTTO_aladdin CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

union all

SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
	
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END										AS Portafoglio,
									
		'' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'EUR' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		'EUR' AS codiceInterno_old, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto

		case when(sum(PATRIMONIO_BF.CTV_NOMINALE)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale)
		--(sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale))>0 then	sum(PATRIMONIO_BF.CTV)	- c6stagingPeriodico.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale) + [C6StagingPeriodico].[getTermID](PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale)
		else 0.0001 end AS CtvReale,

		
		'COMPLESSIVO|BF' as								tipoptf,
		'' as						cod_maf,
		'' as											intermediario,
		'CC' as											famprodt,
		'' as											assetterzi,
		'' as	codconf,
		'' as	conto,
		'' as	rubr,
		'' as	custgar,
		'EUR' as					cod_interno,
		'' as	termid,
		'' as	annos,
		'' as	progs,
		'EUR' as						cod_isin,
		'' as				cod_sottoProdotto,
		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END as				area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		'' as numpolizza,
		CASE
	
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END	+ '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END)AS varchar )
		 as position_id
		 ,PATRIMONIO_BF.COD_PRODOTTO as Prodotto_ID


FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,

	--CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
	--	CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
	--	CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END,
	PATRIMONIO_BF.COD_FISCALE,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))),
	ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))),
	CASE

			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END ,

		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END
				,PATRIMONIO_BF.COD_PRODOTTO
		 
 













GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_20180612_NewMotorePrometeia]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_20180612_NewMotorePrometeia]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		--- 23//5/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,

		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------


		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END

GO
/****** Object:  Table [C6StagingPeriodico].[ALL_PROPOSTA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_PROPOSTA](
	[AGENTE] [varchar](138) NULL,
	[RETE] [varchar](10) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[CHIAVE_PROPOSTA] [varchar](35) NULL,
	[NOME_PROPOSTA] [varchar](128) NULL,
	[STATO_PROPOSTA] [varchar](256) NULL,
	[DATA_CREAZIONE_PROPOSTA] [datetime] NULL,
	[DATA_SCADENZA_PROPOSTA] [datetime] NULL,
	[NEED_BREVE] [varchar](512) NULL,
	[NEED_ESTESA] [varchar](512) NULL,
	[ORDINE_NEED] [decimal](19, 0) NULL,
	[CONTROVALORE_TOT_PER_NEED] [decimal](19, 7) NULL,
	[PERC_PER_NEED] [decimal](5, 2) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CONTROV_CONSULENZA] [decimal](19, 7) NULL,
	[CONTROV_PROPOSTA] [decimal](18, 0) NULL,
	[CONTROV_DA_DEFINIRE_LIQ] [decimal](19, 7) NULL,
	[ISANEWPOSITION] [decimal](1, 0) NULL,
	[STRINGONA_CLONEPOS] [varchar](256) NULL,
	[NOME_PRODOTTO_CLONEPOS] [varchar](512) NULL,
	[INVESTI] [decimal](19, 7) NULL,
	[DISINVESTI] [decimal](19, 7) NULL,
	[PTF_INIZ] [decimal](19, 7) NULL,
	[CTVOPERAZIONE] [decimal](19, 7) NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[POLIZZADECIMAL] [varchar](20) NULL,
	[CONTO] [varchar](512) NULL,
	[RUBRICATO] [varchar](512) NULL,
	[PR_COD_ISIN] [varchar](20) NULL,
	[PR_COD_MAF] [varchar](20) NULL,
	[PR_COD_INTERNO] [varchar](20) NULL,
	[PR_COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[PR_COD_ADEGUATEZZA] [varchar](20) NULL,
	[NOME_PRODOTTO_CATALOGO] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CHIAVE_PER_LA_CONSULENZA] [varchar](35) NULL,
	[RICONCILIATA] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_PROGETTO] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_AREA] [decimal](1, 0) NULL,
	[FLAG_SALVATAGGIO_MANUALE] [decimal](1, 0) NULL,
	[RAGGRUPPAMENTO_PROGETTO] [varchar](64) NULL
) ON [STAGING]
GO
/****** Object:  View [C6StagingPeriodico].[vNewPositionProposta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6StagingPeriodico].[vNewPositionProposta]
AS
SELECT     AGENTE, RETE, CODICEFISCALE, NEED_BREVE, NOME_PROGETTO, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, 
                      CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, 
                      PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, 
                      dbo.Crea_positionIDProposta(CHIAVE_CATITEMREF, CONTRACTCODE, CONTO, RUBRICATO, TIPOPRODOTTO, POLIZZADECIMAL) 
                      AS positionIDProposta
FROM         C6StagingPeriodico.ALL_PROPOSTA
WHERE     (ISANEWPOSITION = 1) AND (RICONCILIATA = 0) AND (STATO_PROPOSTA in ('InEsecuzione', 'ParzialmenteEseguita'))
and 1=0

GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq_20180612_preNewMotoreProm]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- View

-- View
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014

CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq_20180612_preNewMotoreProm]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
		SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

				ELSE
					'RISFIN|PIRAMIDE|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END											AS Portafoglio,
									
		 PATRIMONIO_BF.ISIN AS CodiceProdotto,

			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		 PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6Martperiodico.PATRIMONIO_BF
		INNER JOIN C6Martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6Martperiodico.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END




GO
/****** Object:  View [dbo].[FLRPT_Produzione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select * from FLRPT_Produzione
--select count(*) from FLRPT_Produzione

CREATE VIEW [dbo].[FLRPT_Produzione]
AS
SELECT DISTINCT 
                      C6.Rete, C6.Cod_Fiscale AS CODFISCALE, C6.Cod_Agente AS CodAgente, NULL AS CodMan, C6.Freq_Monitoraggio AS FrequenzaReport, 
                      C6.Freq_Diagnosi AS freqstampadiagnosi

FROM
c6martperiodico.rp_vcontrattipergenerazionereport c6

--V (Marianna, Serena) NON FUNZIONA CON LA DATA A MANO
--
--FROM         C6Mart.CONTRATTOSEI AS C6 INNER JOIN
--                      C6Mart.GESTIONE_PDF_FTP AS PDF ON C6.Cod_Fiscale = PDF.CodiceFiscale
--WHERE     (C6.InvioBenvenuto = 'S') AND (C6.Data_FineAvanzato IS NULL OR
--                      C6.Data_FineAvanzato > '2010-06-30') AND (PDF.DataGenerazione < CAST(YEAR(GETDATE()) AS varchar) + '-' + CAST(MONTH(GETDATE()) AS varchar) 
--                      + '-' + '01')
GO
/****** Object:  View [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport_20170407.SAVE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--select * from C6MartPeriodico.RP_vContrattiPerGenerazioneReport
--select count(*) from C6MartPeriodico.RP_vContrattiPerGenerazioneReport

CREATE VIEW [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport_20170407.SAVE]
AS

--select * from C6StagingPeriodico.APPO_CONTRATTI
--select * from vcontrcong0913 where bloccato is null
--* from appovcontratti0913

select
	distinct 
	a.[chiaveClientePB],
	a.[COD_FISCALE],
	[COD_MANDATO],
	[PIVA_FIDUCIARIA],
	[COD_AGENTE],
	a.[rete],
	[codiceContratto],
	[flagRol],
	[INDIRIZZO],
	[cap],
	[CITTA],
	[PROVINCIA],
	[NAZIONE],
	[presso],
	[email],
	[FREQ_DIAGNOSI],
	isnull([FREQ_MONITORAGGIO], 'T') AS FREQ_MONITORAGGIO,
	[GENERAZIONEREPORT],
	[DATA_INIZIOBASE],
	[DATA_FINEBASE],
	[DATA_PERF_BASE],
	[DATA_PERF],
	[DATA_INZIOAVANZATO],
	[DATA_FINEAVANZATO],
	[RIATTIVAZIONE],
	[TIP_CONTRATTO],
	[TIP_RIATTIVAZIONE],
    [ClienteMIGRATO],
	[RISORSENA],
	[PROFILOATTIVO],
	[NumSolleciti],
	[NumRevoche],
	[Data_ultimoSollecito],
	[Data_ultimaRevoca],
	[InvioBenvenuto]
FROM
C6StagingPeriodico.APPO_CONTRATTI a
LEFT JOIN
	(
		SELECT rete, codiceFiscale FROM [C6MartPeriodico].[tb_SegnalazioniDataQuality] 
		GROUP BY rete, codiceFiscale
	) t
ON
	a.rete = t.rete
AND
	a.cod_fiscale = t.codiceFiscale
WHERE 1=1
	and t.codiceFiscale is null




--and a.COD_FISCALE in
--(
--'GSTGPL59P03B586G',
--'SNTMLE45A22B300M',
--
--'BCHRRT54L12G999R',
--'BNCRRT34C30D612C',
--'BNIFNC55A04G999O',
--'BRGMSM68S20D869Z',
--'BRNLFR41R12B564B',
--'CHCLRA53P63C847G',
--'CRNPRZ46B14D612J',
--'CRZMRA47R50G337Y',
--'FBRDNL53E63L736K',
--'GTTNRC39H15F336S'
--)




GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_AND]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select * from [C6Mart].[rp_vTuttiIPortafogli_AND]  into #portafogli where cod_fiscale = 'VNTSVN48B09A859F'
--modificata per i cc in liq Marianna
CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_AND]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN = 'EURO00000009' then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport_AND VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport_AND VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport_AND VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport_AND  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport_AND VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale 
FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport_AND VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END
GO
/****** Object:  View [C6Mart].[vContrattiMigrati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/* Nel giro di email di revoca non si devono recuperare i dati dal SEI (Fabrizio) --
AND (Cod_Fiscale = 'TBNMSM52C01E938I')*/
CREATE VIEW [C6Mart].[vContrattiMigrati]
AS
SELECT		Rete, 
			Cod_Agente, 
			Cod_Fiscale, 
			PIva_Fiduciaria, 
			CodiceContratto, 
			isnull(Freq_Monitor, 'T') AS Freq_Monitor, 
			Freq_Diagnosi, 
			TipoElaborazione, 
			AdesioneSuccessivaAvanzato, 
            InvioBenvenuto, 
			ClienteMigrato, 
			RisorseNa, 
			NumRevoche, 
			Data_Perf

FROM        C6Mart.vTuttiIContratti AS C6
WHERE		(1 = 1) 
			AND (InvioBenvenuto = 'N') 
			AND (ClienteMigrato = 'S') 
			AND (ISNULL(NumRevoche, 0) = 0)
--and c6.cod_fiscale = 'BRZGPP39H08C352F'

GO
/****** Object:  View [C6StagingPeriodico].[vListaClientiTrimestrale_20161003]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6StagingPeriodico].[vListaClientiTrimestrale_20161003]
AS
SELECT
Rete
,Cod_Agente as [Codice Agente]
,Cod_Fiscale as [Codice Fiscale]
,CodiceContratto as [Codice Contratto]
,isnull(FREQ_MONITORAGGIO, 'T') as [Freq Monitoraggio]
,FREQ_DIAGNOSI as [Freq Diagnosi]
,CONVERT(varchar(8), Data_FineAvanzato, 112) as [Data Revoca]
,TIP_CONTRATTO as [Tipo Contratto]
,TIP_RIATTIVAZIONE as [Tipo Riattivazione]
FROM
C6StagingPERIODICO.APPO_CONTRATTI
GO
/****** Object:  View [C6MartPeriodico].[vW6clirep]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
CREATE VIEW [C6MartPeriodico].[vW6clirep]
AS

SELECT 
		'' as Banca
	  ,[FLGCLI]
      ,[FLGBL]
      ,[TIPOELA]
      ,[DTTRIM]
      ,[rete]
      ,[codfis]
      ,[piva]
      ,[codman]
      ,[CODFID]
      ,[CODAGE]
      ,[CODABI]
      ,[termid]
      ,[anno]
      ,[prog]
      ,[quote]
      ,[CTV]
      ,[codconf]
      ,[rubr]
      ,[custgar]
      ,[cod_interno]
      ,[codana]
      ,[FLAGPCT]
      ,[codprod]
      ,[cod_sottoprodotto]
      ,[cod_isin]
      ,[codlinea]
      ,[tipoptf]
      ,[area]
      ,[progetto]
      ,[codprj]
      ,[chiave_prodotto_terzi]
      ,[assetterzi]
      ,[famprodt]
      ,[intermediario]
      ,[codiceadeguatezza]
      ,[cod_maf]
      ,[conto]
      ,[numpolizza]
      ,[position_id]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
	  ,[prodotto_id]
  FROM [C6MartPeriodico].[W6CLIREP]

		


GO
/****** Object:  View [C6MartPeriodico].[vTuttiIPortafogli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select top 1 * from c6martperiodico.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[vTuttiIPortafogli]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')

	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6martperiodico.PATRIMONIO_BF
		INNER JOIN C6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM c6martperiodico.VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM c6martperiodico.VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0.0001 end AS CtvReale 
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END
GO
/****** Object:  View [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- View

-- View
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014

CREATE VIEW [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
		SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

				ELSE
					'RISFIN|PIRAMIDE|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END											AS Portafoglio,
									
		 PATRIMONIO_BF.ISIN AS CodiceProdotto,

		 	--- 12/6/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------


			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		 PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6Martperiodico.PATRIMONIO_BF
		INNER JOIN C6Martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6Martperiodico.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,

			--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------



		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END




GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20170919]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20170919]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'FFRNNCL87D25G224T'
	)












GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20171107]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20171107]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'FFRNNCL87D25G224T'
	,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FGLLFBA57R22F205P' /* temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'STZZFNC51B57D810T' /* temp 20171005 causa erorre in wrapper console di AllineaPortafoglioClienti */
	)

GO
/****** Object:  View [C6Mart].[vPatrimonioNonRappresentabileAsset]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6Mart].[vPatrimonioNonRappresentabileAsset]
AS
SELECT 	
			RETE,
			COD_FISCALE,
			--SUM(Controvalore) as Controvalore
			SUM( cast(Controvalore as decimal(15,3))) as Controvalore
	FROM (
			SELECT 	
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					PATRBF.CTV as Controvalore
			FROM c6mart.PATRIMONIO_BF PATRBF
			INNER JOIN c6mart.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			LEFT OUTER JOIN c6mart.ASSET_PERC ASSETPERC 
				ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE
				PATRBF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
				AND ASSETPERC.COD_PRODOTTO IS NULL
			UNION ALL
--			SELECT  
--					PATRBF.RETE,
--					PATRBF.COD_FISCALE,
--					ASUL.CTV as Controvalore
--			FROM c6mart.PATRIMONIO_BF PATRBF
--			INNER JOIN c6mart.ANAG_PRODOTTI ANAGP
--				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--			INNER JOIN c6mart.DETTAGLIO_ASUL ASUL
--				ON PATRBF.RETE = ASUL.RETE
--					AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--					AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--			LEFT OUTER JOIN c6mart.ASSET_PERC ASSETPERC
--				ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--			WHERE 
--				PATRBF.TIPO_PRODOTTO = 'ASUL'
--				AND ASSETPERC.COD_PRODOTTO IS NULL



SELECT		ASUL.RETE,
            ASUL.COD_FISCALe,
			ASUL.CTV*isnull(ASSETPERC.PERC,1) as Controvalore
		FROM 
			c6mart.DETTAGLIO_ASUL ASUL
		left JOIN 
			c6mart.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE

		ASSETPERC.COD_PRODOTTO IS NULL
   --     and cod_fiscale='RSSTLL57H56F839V'










		) PATR_NO_RAPPR
	GROUP BY 
			RETE,
			COD_FISCALE

GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20171110]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20171110]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'FFRNNCL87D25G224T'
	,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FGLLFBA57R22F205P' /* temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'STZZFNC51B57D810T' /* temp 20171005 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'SLVORSO76A65D711N' /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FFF@10105'		 /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
	)

GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
 CONSTRAINT [PK_SPB_CONTR_SINTESI] PRIMARY KEY CLUSTERED 
(
	[DTTRIM] ASC,
	[DTRIFE] ASC,
	[RETE] ASC,
	[CODFIS] ASC,
	[CODCONF] ASC,
	[CONTO] ASC,
	[RUBR] ASC,
	[CUSTGAR] ASC,
	[TIPPROD] ASC,
	[CODINT] ASC,
	[SUBPROD] ASC,
	[CODABI] ASC,
	[PCTKEY] ASC,
	[ISIN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
) ON [STAGING]
GO
/****** Object:  View [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI_v]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE view  [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI_v]
as
select s.* 
from C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI s 
left join C6StagingPeriodicoImmobiliare.APPO_CONTRATTI_LIMITER l
on l.rete = s.rete and s.codfis = l.cod_fiscale
where l.rete is not null or 0 = (select count(*) from C6StagingPeriodicoImmobiliare.APPO_CONTRATTI_LIMITER)



GO
/****** Object:  View [C6Staging].[vClientiContoCorrente_20170421]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- View
CREATE VIEW [C6Staging].[vClientiContoCorrente_20170421] as

select rete,codagente,codiceFiscale,conto,pivafiduciaria
from c6staging.spb_contr_sintesi
where tipoProdotto = 'CC'




GO
/****** Object:  View [C6MartPeriodico].[vTuttiIPortafogli_ccLiq]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- View

-- View
--modificata per i cc in liq Marianna & Valerio
CREATE VIEW [C6MartPeriodico].[vTuttiIPortafogli_ccLiq]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,

     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,

		PATRIMONIO_BF.CTV						AS CtvReale

	
	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')

	UNION ALL

	

	---V Modifica per calcolo VaR prodotti ASU2
		SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

				ELSE
					'RISFIN|PIRAMIDE|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END											AS Portafoglio,
									
		 PATRIMONIO_BF.ISIN AS CodiceProdotto,

			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		 PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6Martperiodico.PATRIMONIO_BF
		INNER JOIN C6Martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6Martperiodico.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM c6martperiodico.PATRIMONIO_BF
	INNER JOIN c6martperiodico.vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN c6martperiodico.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END
GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20171110_bonifica]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20171110_bonifica]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE 1=1    /* 20171110 */
	and (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	(
	/* 20171110
	----'FGRBNLT65D44A859X' /* temp 20161207 */
	----,'FPNDLCI41T49F205P' /* temp 20170317 */
	----,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	----,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SNVGMNL73A15H501Y'
	----,'SMTANDR70P22H501S'
	----,'SFLCNTN47B12F631K'
	----,'SFF@10093'
	----,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	----,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	*/
	/* ,'FFRNNCL87D25G224T'  20171110 nome+cognome aggiornato */
	/* ,'FGLLFBA57R22F205P'  temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti 
	,'STZZFNC51B57D810T' /* temp 20171005 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'SLVORSO76A65D711N' /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
				                        20171110 nome+cognome aggiornato */
	'FFF@10105'		 /* temp 20171107 causa erorre in wrapper console di AllineaPortafoglioClienti */
	                     /* 20171110 AllineaPortafoglioClienti non restiuisce record */
	)

GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20170922]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20170922]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'FFRNNCL87D25G224T'
	,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	)












GO
/****** Object:  View [C6Mart].[vPatrimonioNonRappresentabileAsset_2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create VIEW [C6Mart].[vPatrimonioNonRappresentabileAsset_2]
AS
SELECT 	
			RETE,
			COD_FISCALE,
			SUM(Controvalore) as Controvalore
	FROM (
			SELECT 	
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					PATRBF.CTV as Controvalore
			FROM C6MART.PATRIMONIO_BF PATRBF
			INNER JOIN C6Mart.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
				ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE
				PATRBF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
				AND ASSETPERC.COD_PRODOTTO IS NULL
			UNION ALL
			SELECT  
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					ASUL.CTV as Controvalore
			FROM C6MART.PATRIMONIO_BF PATRBF
			INNER JOIN C6Mart.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
				ON PATRBF.RETE = ASUL.RETE
					AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
					AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
			LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
				ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE 
				PATRBF.TIPO_PRODOTTO = 'ASUL'
				AND ASSETPERC.COD_PRODOTTO IS NULL
		) PATR_NO_RAPPR
	GROUP BY 
			RETE,
			COD_FISCALE
GO
/****** Object:  View [C6Mart].[vPrometeiaTerziIntermediario_aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6Mart].[vPrometeiaTerziIntermediario_aladdin]
AS
SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	----------------------------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	----------------------------------------------------------
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (
	--43887
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') then 'CONTI CORRENTI'
			else 'DATI NON IN CATALOGO' 
		end  AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then 'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC'
				else 'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI 
		end AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then ''
				else PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
		end as COD_PRODOTTO_TERZI,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then ''
				else ASSETCLASS_TERZI.COD_ADEGUATEZZA
		end	 as ASSET_TERZI,
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
				then ''
				else ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO)
		end	as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--V aggiunto nel caso di conti correnti non a catalogo
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') then 'EUR'
			else ASSETCLASS_TERZI.COD_ADEGUATEZZA 
		end AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--Modifica per valore VAR errato a causa della franchigia 29/4/2020
		case 
			when (PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti') 
			then (case when(PATRIMONIO_TERZI.CTV -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int))<0 then PATRIMONIO_TERZI.CTV else PATRIMONIO_TERZI.CTV -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end)
			else (PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) 
		end AS CONTROVALORE
		--(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM C6MART.ASSET_PERC_TERZI
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN C6MART.PATRIMONIO_TERZI ON PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI_TERZI ON ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			--PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			--AND 
----ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL

	--100923
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI ,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI 
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
		AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all

	--2919
	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		----------------------------------------------------------
		'COMPLESSIVO|TERZI' as TIPOptf,
		'' as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		'' as  FAMPRODT,
		----------------------------------------------------------
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		--sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE
		case when (sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int)<0) then sum(PATRIMONIO_TERZI.CTV) else sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) end AS CONTROVALORE --modifica 050520 per anomalie Levi
	FROM 
		C6MartPeriodico.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodico.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,PATRIMONIO_TERZI.cod_Fiscale,rete
	

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		----------------------------------------------------------
		tutti.TIPOptf,
		tutti.COD_PRODOTTO_TERZI,
		tutti.ASSET_TERZI,
		tutti.FAMPRODT	,
		----------------------------------------------------------
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE


GO
/****** Object:  View [C6Mart].[vPrometeiaTerziCategoriaProdotto_aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE VIEW [C6Mart].[vPrometeiaTerziCategoriaProdotto_aladdin]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	--------------------------------------
	tutti.TIPOptf			as TIPOptf,
	tutti.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
	tutti.ASSET_TERZI		as Asset_Terzi,
	tutti.FAMPRODT			as FAMPRODT,
	---------------------------------------
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (
	
	--39956
	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		--------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		------------------------
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM C6MART.ASSET_PERC_TERZI
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN C6MART.PATRIMONIO_TERZI ON PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI_TERZI ON ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE ASSET_PERC_TERZI.LIVELLO = 2
		AND NOT (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)


	UNION ALL

	--100923
	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
			------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
			------------------------
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI 
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
		AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
			---------------------------------
		'TIPOPRODTERZI|TERZI'  as TIPOptf,
		PATRIMONIO_TERZI.COD_PRODOTTO_TERZI as COD_PRODOTTO_TERZI,
		'' as ASSET_TERZI,
		ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) as FAMPRODT,
		----------------------------
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'$' AS COD_INTERNO,
		'$' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE
	FROM C6MART.PATRIMONIO_TERZI
	INNER JOIN C6MART.ANAG_PRODOTTI ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN C6MART.ASSET_PERC ON ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN C6MART.ASSETCLASS_TERZI ON ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE ANAG_PRODOTTI.COD_ADEGUATEZZA = '$'
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		-------------------
		tutti.TIPOptf	,		
		tutti.COD_PRODOTTO_TERZI,
		tutti.ASSET_TERZI		,
		tutti.FAMPRODT ,
		--------------------------
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE



GO
/****** Object:  View [C6MartPeriodico].[vControlliFabio]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select count(distinct cod_fiscale) from c6martperiodico.rischio_aggregato
--select * from c6martperiodico.scarti
-- FARE FUNZIONE GETPREVTRIMESTRE PER LA DATA DI REVOCA
--select c6martperiodico.gettrimestre2(getdate(),0) 
--select c6martperiodico.gettrimestre2(getdate(),1) 
--select * from [C6MartPeriodico].[vContrattiPerGenerazioneReport]
--select count(*) from [C6MartPeriodico].[vContrattiPerGenerazioneReport]
--select count(*) from [C6MartPeriodico].gestione_pdf_ftp where dataGenerazione > c6martperiodico.gettrimestre2(getDate(),1)
--select count(*) from [C6MartPeriodico].[vContrattiPerGenerazioneReport] where freq_diagnosi is not null
--select  c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
CREATE VIEW [C6MartPeriodico].[vControlliFabio]
AS
SELECT     
distinct --top 2000
C6.Rete, C6.Cod_Agente, C6.Cod_Fiscale, C6.CodiceContratto, C6.Freq_Monitor, C6.Freq_Diagnosi, 
						
						data_fineAvanzato--,pdf.dataGenerazione

FROM        C6Mart.CONTRATTOSEI AS C6
INNER JOIN  C6Mart.GESTIONE_PDF_FTP AS PDF ON C6.Rete = PDF.Rete AND C6.Cod_Fiscale = PDF.CodiceFiscale AND 
            C6.CodiceContratto = SUBSTRING(PDF.NomeFile, 1, 11) --SUBSTRING(PDF.NomeFile, 0, 12) 
/* */		inner JOIN c6Martperiodico.Mifid AS mi ON c6.rete=mi.rete AND c6.cod_fiscale=mi.cod_fiscale 
--			join c6stagingperiodico.spb_contr_sintesi bf on c6.rete = bf.rete and c6.cod_fiscale = bf.codfis
/* */		inner join c6martperiodico.patrimonio_bf bf on c6.rete = bf.rete and c6.cod_fiscale = bf.cod_fiscale
			--includi campione	
/* */		--INNER JOIN dbo.CampioneReport AS t ON t.Cod_fiscale = C6.Cod_Fiscale AND t.Rete = C6.Rete
--INNER JOIN c6martperiodico.selezionecampione_lele200 AS t ON t.Cod_fiscale = C6.Cod_Fiscale AND t.Rete = C6.Rete
WHERE		(1 = 1) 
			--AND ISNULL(C6.Data_FineAvanzato, CAST('99991231' AS datetime)) > '20111231'  /*Precedente Trimestrale*/ --select c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
			AND ISNULL(C6.Data_FineAvanzato, CAST('99991231' AS datetime)) > '20120331'  /*Precedente Trimestrale*/ --select c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
            --V commentare nel giro email
/* */		and isnull(mi.scaduto,1) = 0
			and PDF.DataGenerazione < c6martperiodico.gettrimestre2(getdate(),1) --'20110301'
		--	AND isnull(C6.Data_Invio_Monitoraggio_Trimestrale,cast('20091101' as datetime)) < c6martperiodico.gettrimestre2(getdate(),0)--'20110331' --cast(C6MartPeriodico.getTrimestre(GETDATE(), 0) as datetime)

		--and C6.cod_fiscale IN ('RSSPCD43P12A056Z')
--('PPSRNG57M61A217K', 'ZNCLSE35M71L840K', 'TRVSBN38R52F839X', 'LLAMGH27A43M058H')
-- 	and C6.cod_fiscale IN (
--
----'ZNCLSE35M71L840K'
--'PPSRNG57M61A217K',
--
--'LLAMGH27A43M058H',
--
--'CVARSO23C41B551C'
--
--



--'DBNMLS66H43A182U',
--'DLMFRZ38D50I728S',
--'LZZRNN46M71F130V',

--'BNSNRC50H09I207Z',
--'LNDNMR27B63D612R',

--'BBNMSM66H10L219F',
--'BCCLDR33D16H501R',
--'CSTPLA48C26H361L',
--'GNDLCU30C68D205Z',
--'MTTRND49P17I927W',
--'RSLREU41B12D809F',

--'CSTPLA48C26H361L',
--'RSLREU41B12D809F',

--'00101930519',
--'BCCGPL51P30D969V',

--'00101930519',
--'94009110068',
--'94033640015',
--'97176630156',
--'BAAMTR48C43I470Y'
--)
			--and C6.cod_fiscale IN ('LZZRNN46M71F130V')--LNDNMR27B63D612R')
			--and C6.cod_fiscale IN ('BRNGZN59C06C901O', 'BLTRNZ48M02F269I') --'GZZSLD52E20G869L')
			--and C6.cod_fiscale IN ('SDRFNC66T45D451P')--, 'VRRCLN23R50L847X')
			--stampa campione per dipartimento
			--and (provenienza = 'QC')
			--STAMPO SOLO CHI HA DIAGNOSI and c6.Freq_Diagnosi is not null
			--AND isnull(C6.Data_Invio_Monitoraggio_Trimestrale,cast('20091101' as datetime)) < c6martperiodico.gettrimestre2(getdate(),0)--'20110331' --cast(C6MartPeriodico.getTrimestre(GETDATE(), 0) as datetime)
			--and 
			--mi.rete is null
			--or 
			--bf.rete is null
			--)
			--AND C6.COD_FISCALE IN (
			--'BCCDCE46S22I068J',
			--'BCCDIA28B59E933Z')
--DA VALERIO CONTROLLA CHE RITORNI IL TRIMESTRE DI MARZO
--select c6martperiodico.gettrimestre2(getdate(),1)

--select * from campioneReport


GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioNonRappresentabileAsset_2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [C6MartPeriodico].[vPatrimonioNonRappresentabileAsset_2]
AS
SELECT 	
			RETE,
			COD_FISCALE,
			SUM(Controvalore) as Controvalore
	FROM (
			SELECT 	
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					PATRBF.CTV as Controvalore
			FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
			INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
				ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE
				PATRBF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
				AND ASSETPERC.COD_PRODOTTO IS NULL
			UNION ALL
			SELECT  
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					ASUL.CTV as Controvalore
			FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
			INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
				ON PATRBF.RETE = ASUL.RETE
					AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
					AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
			LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
				ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE 
				PATRBF.TIPO_PRODOTTO = 'ASUL'
				AND ASSETPERC.COD_PRODOTTO IS NULL
		) PATR_NO_RAPPR
	GROUP BY 
			RETE,
			COD_FISCALE
GO
/****** Object:  View [C6Mart].[vContrattiPerGenerazioneReport_old240413]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


/*

--select * from global_error select count(*) from c6mart.gestione_pdf_ftp where dataGenerazione >'20110218'
select * from c6mart.contrattosei where cod_fiscale = 'BCCGNN34E09I512K'
select * from [C6Mart].[vContrattiPerGenerazioneReport]
 Nel giro di email di revoca non si deve produrre il report (Fabrizio) --*/
CREATE VIEW [C6Mart].[vContrattiPerGenerazioneReport_old240413]
AS
SELECT  
--VALERIO TEST
--top 1 

C6.Rete, Cod_Agente, C6.Cod_Fiscale, CodiceContratto, Freq_Monitor, Freq_Diagnosi,TipoElaborazione,AdesioneSuccessivaAvanzato,InvioBenvenuto, 
                      ClienteMigrato, RisorseNa, NumRevoche
FROM         C6Mart.vTuttiIContratti AS C6 
--LEFT JOIN	 C6Mart.MIFID AS MIFID
--ON	C6.RETE = MIFID.RETE AND C6.COD_FISCALE = MIFID.COD_FISCALE
WHERE     (1 = 1)	
                    and cod_agente not in ('015126')
                    AND (InvioBenvenuto = 'N') 
					AND (ClienteMigrato = 'S') 
					AND (ISNULL(RisorseNa, 'N') = 'N') 
					AND (ISNULL(NumRevoche, 0) = 0)
					AND (DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT))
					AND (ISNULL(PartViaDisinv, 'N') = 'N')
					AND	C6.Cod_Fiscale IN (
							SELECT	COD_FISCALE
							FROM    C6Mart.PIRAMIDE_MOD)
					AND ProfiloAttivo = 1



--and cod_fiscale   in
--(
--'BCLMSM63T11C933E' --rimettere sulla contrattosei inviobenvenuto = S
----'BRZGPP39H08C352F'
--)
--
--begin tran
--update c6mart.contrattosei set inviobenvenuto = 'S' where cod_fiscale = 'BCLMSM63T11C933E'
--commit
--rollback

GO
/****** Object:  Table [C6Staging].[rp_Consulenza]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[rp_Consulenza](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[nob_prez] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--modificata per i cc in liq Marianna

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_aladdin]
AS
--349
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		--PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------

		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, '')))	AS codiceInterno,
		''										AS CodiceValuta,
		''										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale ,
--FINE INTERVENTO OMNIA
	'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,69,12) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		ANAG_PRODOTTI.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		--CASE 
		--	when core.fondocore > 0 then ''
		--	ELSE	ANAG_PRODOTTI.cod_isin 
		--END as cod_isin,
		CASE 
			when isnull(core.fondocore,0) > 0 or (LEN(isnull(ANAG_PRODOTTI.cod_isin,''))<12 and isnull(core.fondocore,0)=0 and ANAG_PRODOTTI.tipo_prodotto not in ('GP','CC','DT'))then ''
			ELSE	ANAG_PRODOTTI.cod_isin 
		END as cod_isin,
		isnull(ANAG_PRODOTTI.cod_sottoprodotto,'') as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(rep.chiaveProgetto,'') end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
	CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar )	as position_id

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	left join (select fondocore,catalogueid from c6stagingperiodico.rp_catalogoprodotti where fondocore>0) as core
	on Patrimonio_BF.cod_prodotto = core.catalogueid
	inner join C6Staging.RP_Consulenza rep
	on rep.position_id = PATRIMONIO_BF.POSITION_ID
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'
--FINE INTERVENTO OMNIA
UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		--PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		PATRIMONIO_BF.ISIN AS CodiceProdotto,

		--- 23//5/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,

		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale,
				'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,69,12) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		isnull(ANAG_PRODOTTI.cod_interno,'') as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		ANAG_PRODOTTI.cod_isin as cod_isin,
		isnull(ANAG_PRODOTTI.cod_sottoprodotto,'') as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(rep.chiaveProgetto,'') end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar )  as position_id

	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	inner join C6Staging.RP_Consulenza rep
	on rep.position_id = PATRIMONIO_BF.POSITION_ID
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')



	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		--PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,

		--- 10/5/2021 nuovo sviluppo aladdin-------------------------------------------------		
		CASE isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'') 
			WHEN '$' THEN ''
			ELSE isnull(ANAG_PRODOTTI.COD_ADEGUATEZZA,'')
		END										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS codiceInterno,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale,
			'COMPLESSIVO|BF' as tipoptf,
		isnull(DETTAGLIO_ASUL.cod_maf_sott,'') as cod_maf,
		'' as intermediario,
		'ASUL' as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,69,12) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		DETTAGLIO_ASUL.cod_interno as cod_interno,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		DETTAGLIO_ASUL.cod_isin_fittizio as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		ISNULL(DETTAGLIO_ASUL.cod_sottoprodotto, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
												AS cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		case when isnull(PATRIMONIO_BF.ID_AREA,'') = 'NA' then ''
		else isnull(rep.chiaveProgetto,'') end as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar ) as position_id

		FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN c6mart.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = DETTAGLIO_ASUL.COD_PRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	inner join C6Staging.RP_Consulenza rep
	on rep.position_id = PATRIMONIO_BF.POSITION_ID
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--old
		--FROM C6Mart.PATRIMONIO_BF
		--INNER JOIN C6MART.DETTAGLIO_ASUL 
		--	ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
		--INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		--	ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		--	AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		--WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')
	--fine_old
	--V S 20110823 Disabilitazione contratti liquidati in quanto sulla dettaglio asul il ctv rimane <> 0 
--	AND PATRIMONIO_BF.COD_STATO <> 'L' 
--	AND PATRIMONIO_BF.CTV <> 0

	UNION ALL

	--57
	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceAdeguatezza, --modifica 050520 per anomalie Levi
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale,
			INTERMEDIARIO.tipoptf as tipoptf,
		isnull(INTERMEDIARIO.codiceMaf,'') as cod_maf,
		INTERMEDIARIO.INTERMEDIARIO as intermediario,
		INTERMEDIARIO.FAMPRODT as famprodt,
		INTERMEDIARIO.Asset_Terzi as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		'' as cod_interno,
		'' as termid,
		'' as annos,
		'' as progs,
		INTERMEDIARIO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		isnull(intermediario.CODiceSOTTOPRODOTTO,'') AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		intermediario.COD_PRODOTTO_TERZI as chiave_prodotto_terzi,
		'' as numpolizza,
		INTERMEDIARIO.PORTAFOGLIO + '@' + CAST(ROW_NUMBER() OVER (ORDER BY INTERMEDIARIO.RETE ASC,CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END) AS varchar ) as position_id

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO_aladdin INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	--55
	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale,
		CATEGORIAPRODOTTO.tipoptf as tipoptf,
		isnull(CATEGORIAPRODOTTO.codiceMaf,'') as cod_maf,
		'' as intermediario,
		CATEGORIAPRODOTTO.famprodt as famprodt,
		CATEGORIAPRODOTTO.Asset_Terzi as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		'' as cod_interno,
		'' as termid,
		'' as annos,
		'' as progs,
		CATEGORIAPRODOTTO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		isnull(CATEGORIAPRODOTTO.CODiceSOTTOPRODOTTO,'') AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		CATEGORIAPRODOTTO.COD_PRODOTTO_TERZI as chiave_prodotto_terzi,
		'' as numpolizza,
		CATEGORIAPRODOTTO.PORTAFOGLIO + '@' + CAST(ROW_NUMBER() OVER (ORDER BY CATEGORIAPRODOTTO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END) AS varchar ) as position_id

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO_aladdin CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
--70
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		--PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'' AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		'EUR' AS CodiceAdeguatezza,
		-----------------------------------------------------------


		'EUR'									AS Piazza,
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- c6staging.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- c6staging.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale)
			else 0 end AS CtvNominale ,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	- c6staging.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale))>0 then	sum(PATRIMONIO_BF.CTV)	- c6staging.getImportoSpesa(PATRIMONIO_BF.RETE,PATRIMONIO_BF.Cod_Fiscale)
		else 0 end AS CtvReale ,
			
		'COMPLESSIVO|BF' as								tipoptf,
		'' as						cod_maf,
		'' as											intermediario,
		'CC' as											famprodt,
		'' as											assetterzi,
		'' as	codconf,
		'' as	conto,
		'' as	rubr,
		'' as	custgar,
		'EUR' as					cod_interno,
		'' as	termid,
		'' as	annos,
		'' as	progs,
		'EUR' as						cod_isin,
		'' as				cod_sottoProdotto,
		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END as				area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		'' as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar )
		as position_id

FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		--left join c6mart.mifid mifid
	--	on mifid.RETE=PATRIMONIO_BF.RETE
		--AND mifid.COD_FISCALE = mifid.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END,
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) , --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))),
		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END ,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
					end
				





GO
/****** Object:  View [C6MartPeriodico].[vBrsClienteESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE VIEW [C6MartPeriodico].[vBrsClienteESG]
AS
select * from (
select a.rete,case when isnull(a.codman,'') <> '' then 'FF@' + a.codman 
        when isnull(a.Piva,'') <> '' and isnull(a.codman,'') = '' then a.Piva
       else codicefiscale
end as cod_fiscale,
		[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[obiettivo_ESG_minimo]
      ,[ESG_Rating]
      ,[ESG_E_perc]
      ,[ESG_S_perc]
      ,[ESG_G_perc]
from c6stagingperiodico.ESG_Metriche_Cliente_IL a
) a

GO
/****** Object:  View [C6Mart].[vTuttiIContratti_old240413]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6Mart].[vTuttiIContratti_old240413]
AS
SELECT     Rete, Cod_Agente, Cod_Fiscale, PIva_Fiduciaria, CodiceContratto, Freq_Monitor, Freq_Diagnosi, ProfiloAttivo, 'G' AS TipoElaborazione, CASE WHEN (DATEDIFF(DAY, 
                      Data_InizioBase, Data_Sott) > 0) THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, InvioBenvenuto, ClienteMigrato, RisorseNa, NumRevoche, 
                      PartViaDisinv, Data_Perf
FROM         C6Mart.CONTRATTOSEI AS C6
WHERE     1 = 1 
AND (InvioBenvenuto = 'N') 

AND (Data_FineAvanzato IS NULL) 

UNION ALL
SELECT     C6.Rete, Cod_Agente, C6.Cod_Fiscale, PIva_Fiduciaria, CodiceContratto, Freq_Monitor, Freq_Diagnosi, ProfiloAttivo, 'G' AS TipoElaborazione, CASE WHEN (DATEDIFF(DAY, 
                      Data_InizioBase, Data_Sott) > 0) THEN 1 ELSE 0 END AS AdesioneSuccessivaAvanzato, InvioBenvenuto, ClienteMigrato, RisorseNa, NumRevoche, 
                      PartViaDisinv, Data_Perf
FROM         C6Mart.CONTRATTOSEI AS C6 INNER JOIN
                      C6Mart.GESTIONE_EMAIL AS ge ON C6.Cod_Fiscale = ge.Cod_Fiscale AND C6.Rete = ge.Rete AND ge.Tipo = 'PERF' AND ge.data_invio IS NULL
WHERE     (1 = 1) AND InvioBenvenuto = 'S' AND (Data_FineAvanzato IS NULL)

GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[blacklist]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[blacklist](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[PIVA] [varchar](16) NULL,
	[Codman] [varchar](10) NULL,
	[Motivazione_Blacklist] [varchar](128) NULL,
	[Data_Inserimento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[ExcludedList]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE VIEW  [C6MartPeriodicoImmobiliare].[ExcludedList]
AS

select rete as Rete,
case when codicefiscale is not null then CodiceFiscale 
	when piva is not null then PIVA
	when Codman is not null then 'FF@'+Codman
	end as codicefiscale,
	Motivazione_Blacklist as DescrErr,
	Data_Inserimento as DataIns,
	'1' as Bloccato
from C6MartPeriodicoImmobiliare.blacklist


GO
/****** Object:  View [C6Mart].[rp_vTuttiIPortafogli_newkey_aladdin]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--modificata per i cc in liq Marianna
-- 702
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
--select * from [C6Mart].[rp_vTuttiIPortafogli_newkey]
CREATE VIEW [C6Mart].[rp_vTuttiIPortafogli_newkey_aladdin]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
/*NKCD  CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END NKCD*/case when isnull(anag_prodotti.cod_isin,'')='' 
then isnull(anag_prodotti.cod_adeguatezza,'') else anag_prodotti.cod_isin end	 AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
/*NKCD		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END	NKCD*/case when isnull(anag_prodotti.cod_adeguatezza,'')='' 
then isnull(anag_prodotti.cod_isin,'') else anag_prodotti.cod_adeguatezza end	AS CodiceAdeguatezza,
		-----------------------------------------------------------

		/*NKCD''NKCD*/isnull(anag_prodotti.cod_interno,'')	AS COD_interno,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_maf,'')										AS CodiceValuta,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_sottoprodotto,'')										AS Classe,

--INIZIO INTERVENTO OMNIA
--  PATRIMONIO_BF.CTV_NOMINALE    AS CtvNominale,
--  PATRIMONIO_BF.CTV      AS CtvReale
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
  case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
  else PATRIMONIO_BF.CTV end AS CtvReale ,
--FINE INTERVENTO OMNIA
		'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,69,12) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		isnull(ANAG_PRODOTTI.cod_interno,'') as CODPROD,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		CASE 
			when core.fondocore > 0 then ''
			ELSE	isnull(ANAG_PRODOTTI.cod_isin,'') 
		END as cod_isin,
		isnull(ANAG_PRODOTTI.cod_sottoprodotto,'') as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar )	as position_id
	
	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	left join (select fondocore,catalogueid from c6stagingperiodico.rp_catalogoprodotti where fondocore>0) as core
	on Patrimonio_BF.cod_prodotto = core.catalogueid
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
--INIZIO INTERVENTO OMNIA
	AND PATRIMONIO_BF.ID_AREA <> 'SELF'

UNION ALL

---V Modifica per calcolo VaR prodotti ASU2
SELECT
		PATRIMONIO_BF.RETE						AS Rete,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
---- MODIFICA LUCA
--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
		/*NKCD PATRIMONIO_BF.ISIN NKCD*/case when isnull(anag_prodotti.cod_adeguatezza,'')='' 
then isnull(anag_prodotti.cod_isin,'') else anag_prodotti.cod_adeguatezza end AS CodiceProdotto,

		--- 23//5/2018
		/*NKCD CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END						NKCD*/	
		case when isnull(anag_prodotti.cod_isin,'')='' 
then isnull(anag_prodotti.cod_adeguatezza,'') else anag_prodotti.cod_isin end	AS CodiceAdeguatezza,

		/*NKCD''NKCD*/isnull(anag_prodotti.cod_interno,'')	AS COD_interno,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_maf,'')										AS CodiceValuta,
		/*NKCD''NKCD*/isnull(anag_prodotti.cod_sottoprodotto,'')										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
     PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		PATRIMONIO_BF.CTV						AS CtvReale,
		'COMPLESSIVO|BF' as tipoptf,
		isnull(ANAG_PRODOTTI.cod_maf,'') as cod_maf,
		'' as intermediario,
		ANAG_PRODOTTI.tipo_prodotto as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,69,12) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		isnull(ANAG_PRODOTTI.cod_interno,'') as CODPROD,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		isnull(ANAG_PRODOTTI.cod_isin,'') as cod_isin,
		isnull(ANAG_PRODOTTI.cod_sottoprodotto,'') as cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar )
		as position_id

	
	FROM C6Mart.PATRIMONIO_BF 
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
		AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')


	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		--PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		/*NKCD CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END		NKCD*/case when isnull(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO,'')='' 
then DETTAGLIO_ASUL.COD_ISIN_SOTT else DETTAGLIO_ASUL.COD_ISIN_FITTIZIO end		
						AS CodiceProdotto,

		--- 23//5/2018-------------------------------------------------		
		/*NKCD '' NKCD*/case when isnull(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO,'')='' 
then DETTAGLIO_ASUL.COD_ISIN_SOTT else DETTAGLIO_ASUL.COD_ISIN_FITTIZIO end		AS CodiceAdeguatezza,
		---------------------------------------------------------------

		/*NKCD '' NKCD*/isnull(DETTAGLIO_ASUL.COD_interno,'')		AS COD_interno,
		/*NKCD '' NKCD*/isnull(PATRIMONIO_BF.COD_MAF,'')		AS CodiceValuta,
		/*NKCD '' NKCDDETTAGLIO_ASUL.COD_ISIN_FITTIZIO*/isnull(PATRIMONIO_BF.COD_SOTTOPRODOTTO,'')									AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale,
		'COMPLESSIVO|BF' as tipoptf,
		DETTAGLIO_ASUL.cod_maf_sott as cod_maf,
		'' as intermediario,
		'ASUL' as famprodt,
		'' as assetterzi,
		substring(patrimonio_bf.position_id,58,11) as codconf,
		substring(patrimonio_bf.position_id,69,12) as conto,
		substring(patrimonio_bf.position_id,81,4) as rubr,
		substring(patrimonio_bf.position_id,85,1) as custgar,
		DETTAGLIO_ASUL.cod_interno as CODPROD,
		substring(patrimonio_bf.position_id,97,8) as termid,
		substring(patrimonio_bf.position_id,105,3) as annos,
		substring(patrimonio_bf.position_id,108,8) as progs,
		DETTAGLIO_ASUL.cod_isin_fittizio as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		ISNULL(DETTAGLIO_ASUL.cod_sottoprodotto, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
												AS cod_sottoProdotto,
		LEFT(PATRIMONIO_BF.ID_AREA,3) as area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		substring(patrimonio_bf.position_id,86,11) as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END + '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar ) as position_id

	FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 

		INTERMEDIARIO.RETE					AS Rete,
		--INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		/*NKCD INTERMEDIARIO.CODICEADEGUATEZZA NKCD*/isnull(INTERMEDIARIO.codiceisin,'')		AS CodiceProdotto,
		--- 23//5/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		/*NKCD INTERMEDIARIO.CODICEADEGUATEZZA	NKCD*/
		isnull(INTERMEDIARIO.CODICEADEGUATEZZA,'') 		AS CodiceAdeguatezza, --modifica 050520 per anomalie Levi
		/*NKCD INTERMEDIARIO.PIAZZA	NKCD*/ 
		CASE isnull(INTERMEDIARIO.codiceinterno,'')
            WHEN '$' THEN ''
            ELSE isnull(INTERMEDIARIO.codiceinterno,'')
        END  		AS COD_interno,
		/*NKCD INTERMEDIARIO.CODICEVALUTA 	NKCD*/	isnull(INTERMEDIARIO.CODICEMAF,'')		AS CodiceValuta,
		/*NKCD INTERMEDIARIO.CLASSE NKCD*/ isnull(INTERMEDIARIO.CODICESOTTOPRODOTTO,'')				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale,
				INTERMEDIARIO.tipoptf as tipoptf,
		isnull(INTERMEDIARIO.codiceMaf,'') as cod_maf,
		INTERMEDIARIO.INTERMEDIARIO as intermediario,
		INTERMEDIARIO.FAMPRODT as famprodt,
		INTERMEDIARIO.Asset_Terzi as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		'' as CODPROD,
		'' as termid,
		'' as annos,
		'' as progs,
		INTERMEDIARIO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		CASE isnull(intermediario.CODiceSOTTOPRODOTTO,'')
            WHEN '$' THEN ''
            ELSE isnull(intermediario.CODiceSOTTOPRODOTTO,'')
        END AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		intermediario.COD_PRODOTTO_TERZI as chiave_prodotto_terzi,
		'' as numpolizza,
		INTERMEDIARIO.PORTAFOGLIO + '@' + CAST(ROW_NUMBER() OVER (ORDER BY INTERMEDIARIO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 16 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) = 11 THEN INTERMEDIARIO.CODICEFISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(INTERMEDIARIO.CODICEFISCALE))) < 11 THEN substring(INTERMEDIARIO.CODICEFISCALE,4,6) ELSE '' END) AS varchar )
		as position_id

	FROM C6MART.VPROMETEIATERZIINTERMEDIARIO_aladdin INTERMEDIARIO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 

		CATEGORIAPRODOTTO.RETE				AS Rete,
		--CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		isnull(CATEGORIAPRODOTTO.CODICEisin,'') AS CodiceProdotto,
		isnull(CATEGORIAPRODOTTO.codiceadeguatezza,'')					AS CodiceAdeguatezza,
		CASE isnull(CATEGORIAPRODOTTO.CODICEinterno,'')
            WHEN '$' THEN ''
            ELSE isnull(CATEGORIAPRODOTTO.CODICEinterno,'')
        END		AS COD_interno,
		isnull(CATEGORIAPRODOTTO.codicemaf,'')			AS CodiceValuta,
		isnull(CATEGORIAPRODOTTO.codicesottoprodotto,'')			AS Classe,
		
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale,
		CATEGORIAPRODOTTO.tipoptf as tipoptf,
		isnull(CATEGORIAPRODOTTO.codiceMaf,'') as cod_maf,
		'' as intermediario,
		CATEGORIAPRODOTTO.famprodt as famprodt,
		CATEGORIAPRODOTTO.Asset_Terzi as assetterzi,
		'' as codconf,
		'' as conto,
		'' as rubr,
		'' as custgar,
		'' as CODPROD,
		'' as termid,
		'' as annos,
		'' as progs,
		CATEGORIAPRODOTTO.codiceisin as cod_isin,
		--ANAG_PRODOTTI.cod_sottoprodotto as cod_sottoProdotto,
		CASE isnull(CATEGORIAPRODOTTO.CODiceSOTTOPRODOTTO,'')
            WHEN '$' THEN ''
            ELSE isnull(CATEGORIAPRODOTTO.CODiceSOTTOPRODOTTO,'')
        END		 AS cod_sottoProdotto,
		'' as area,
		'' as Progetto,
		'' as codprj,
		CATEGORIAPRODOTTO.COD_PRODOTTO_TERZI as chiave_prodotto_terzi,
		'' as numpolizza,
		CATEGORIAPRODOTTO.PORTAFOGLIO + '@' + CAST(ROW_NUMBER() OVER (ORDER BY CATEGORIAPRODOTTO.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 16 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) = 11 THEN CATEGORIAPRODOTTO.CODICEFISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(CATEGORIAPRODOTTO.CODICEFISCALE))) < 11 THEN substring(CATEGORIAPRODOTTO.CODICEFISCALE,4,6) ELSE '' END) AS varchar )
		as position_id

	FROM C6MART.VPROMETEIATERZICATEGORIAPRODOTTO_aladdin CATEGORIAPRODOTTO
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE
--V Conti correnti Fideuram
union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		--PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			-------------------------------------------------- diff cf|Piva|fid codman
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS CODFIS,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END  AS PIVA,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END  AS CODMAN,
		------------------------------------------------
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'

		END										AS Portafoglio,									
		'EUR' AS CodiceProdotto,

		--- 23//5/2018 ----------------------------------------
		'EUR' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		'EUR'										AS COD_interno,
		'EUR'										AS CodiceValuta,
		'EUR'										AS Classe,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0 end AS CtvNominale ,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else 0 end AS CtvReale ,

		'COMPLESSIVO|BF' as								tipoptf,
		'EUR' as										cod_maf,
		'' as											intermediario,
		'CC' as											famprodt,
		'' as											assetterzi,
		'' as											codconf,
		'' as											conto,
		'' as											rubr,
		'' as											custgar,
		'EUR' as										CODPROD,
		'' as											termid,
		'' as											annos,
		'' as											progs,
		'EUR' as										cod_isin,
		'EUR' as										cod_sottoProdotto,
		case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END as				area,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END as Progetto,
		'' as codprj,
		'' as chiave_prodotto_terzi,
		'' as numpolizza,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'

		END	+ '@' + CAST(ROW_NUMBER() OVER (ORDER BY PATRIMONIO_BF.RETE ASC,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 16 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) = 11 THEN PATRIMONIO_BF.COD_FISCALE ELSE '' END ,
		CASE WHEN LEN(LTRIM(RTRIM(PATRIMONIO_BF.COD_FISCALE))) < 11 THEN substring(PATRIMONIO_BF.COD_FISCALE,4,6) ELSE '' END) AS varchar )	
		as position_id

FROM C6Mart.PATRIMONIO_BF
	INNER JOIN C6MART.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MART.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'

		END ,
	case WHEN LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Cc' THEN 
				'Liq'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (LEFT(PATRIMONIO_BF.ID_AREA,3) = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'Liq' 
				END,
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN PATRIMONIO_BF.NOME_PROGETTO 
					ELSE 'Progetto investimento'
				END





GO
/****** Object:  View [C6Mart].[RP_vContrattiPerGenerazioneReport_20170928_test]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE VIEW [C6Mart].[RP_vContrattiPerGenerazioneReport_20170928_test]
AS
SELECT  
	C6.Rete, 
	Cod_Agente, 
	C6.Cod_Fiscale, 
	CodiceContratto, 
	Freq_Monitoraggio, 
	Freq_Diagnosi,
	TipoElaborazione,
	AdesioneSuccessivaAvanzato,
	InvioBenvenuto, 
    ClienteMigrato, 
    RisorseNa, 
    NumRevoche,
    tip_contratto,
    tip_riattivazione
FROM C6Mart.RP_vTuttiIContratti AS C6 
WHERE  (1 = 1)	
        AND cod_agente not in ('015126')
        ------AND (InvioBenvenuto = 'N') --en20170928
		--AND (ClienteMigrato = 'S')    /* en20161021 */
		AND (ISNULL(RisorseNa, 'N') = 'N') 
		AND (ISNULL(NumRevoche, 0) = 0)
		----AND ((DATEDIFF(d,Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR cod_agente='015312') --en20170928
		--OR cod_fiscale = 'FF@5117')
		AND	C6.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND ProfiloAttivo = 1



GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[DETTAGLIO_ASUL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NULL,
	[CTV] [decimal](15, 3) NULL,
	[DATA_RIF] [datetime] NULL,
	[COD_ISIN_FITTIZIO] [varchar](16) NULL,
	[COD_ISIN_SOTT] [varchar](16) NULL,
	[COD_MAF_SOTT] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[PATRIMONIO_BF](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[STRTYPE] [varchar](10) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[CHIAVE_PROGETTO] [int] NULL,
 CONSTRAINT [PK_PATRIMONIO_BF] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[POSITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ANAG_PRODOTTI](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_ISIN] [varchar](12) NOT NULL,
	[PAESE] [varchar](30) NULL,
	[ID_AREA] [varchar](50) NULL,
	[CAT_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[DESCR_PRODOTTO] [varchar](128) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[COD_MAF] [varchar](20) NULL,
	[RATING] [varchar](50) NULL,
	[COD_ADEGUATEZZA] [varchar](12) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[DT_SCADENZA] [datetime] NULL,
	[TIPO_TASSO] [varchar](35) NULL,
	[TIPO_EMITTENTE] [varchar](35) NULL,
	[FLG_OB] [char](1) NULL,
 CONSTRAINT [PK__ANAG_PRODOTTI__07C12930] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[PATRIMONIO_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[TIPO_POLIZZA] [varchar](30) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO2] [varchar](50) NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[FREQ_RATA] [varchar](50) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[DATA_SOTT_FP] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [int] NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[DESCR_GRUPPO_PRODOTTO] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[STRTYPE] [varchar](50) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[CHIAVE_THR] [varchar](256) NULL,
	[ROW_NUM] [int] NULL,
 CONSTRAINT [PK_PATRIMONIO_TERZI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_PRODOTTO] ASC,
	[COD_PRODOTTO_TERZI] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ASSET_PERC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ASSET_PERC](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[COD_ISIN] [varchar](12) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[LIVELLO] [smallint] NULL,
	[PERC] [decimal](23, 20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSET_PERC] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC,
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ASSET_PERC_TERZI](
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[LIVELLO] [smallint] NOT NULL,
	[NOME_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PERC] [decimal](22, 20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSET_PERC_TERZI] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO_TERZI] ASC,
	[ID_ASSETCLASS] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ASSETCLASS_TERZI](
	[ID_ASSETCLASS] [varchar](8) NOT NULL,
	[COD_ISIN] [varchar](8) NULL,
	[COD_MAF] [varchar](8) NULL,
	[COD_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ASSETCLASS_TERZI] PRIMARY KEY CLUSTERED 
(
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ANAG_PRODOTTI_TERZI](
	[COD_PRODOTTO] [varchar](64) NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NULL,
	[NOME_PRODOTTO] [varchar](150) NULL,
	[ALBERO_PRODOTTI] [varchar](50) NULL,
	[COD_ISIN] [varchar](12) NULL,
	[DESCR_PRODOTTO] [varchar](50) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[PAESE] [varchar](30) NULL,
	[RATING] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[RP_vPrometeiaTerziIntermediario]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- View
CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vPrometeiaTerziIntermediario]
AS

SELECT 
	
	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.INTERMEDIARIO		AS Intermediario,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodicoImmobiliare.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE,
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		 
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodicoImmobiliare.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

	--V CC terzi
	union all

	SELECT 	
		--PATRIMONIO_TERZI.tipo_prodotto,
		'CONTI CORRENTI' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'COMPLESSIVO|TERZI|' + PATRIMONIO_TERZI.INTERMEDIARIO + '|CC',-- + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO,
		PATRIMONIO_TERZI.INTERMEDIARIO AS INTERMEDIARIO,
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		--ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		'EUR' AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--		sum(PATRIMONIO_TERZI.CTV) -CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') as int) AS CONTROVALORE
		case when (sum(PATRIMONIO_terzi.CTV)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_terzi.CTV)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else sum(PATRIMONIO_terzi.CTV) end AS Controvalore --modifica 050520 per anomalie Levi

	FROM 
		C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
		AND  (
			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
			or ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
		)
--and patrimonio_terzi.Cod_fiscale = 'BNCMRA47P12A944T'

	group by PATRIMONIO_TERZI.intermediario,ASSETCLASS_TERZI.COD_ISIN,cod_adeguatezza,cod_maf,PATRIMONIO_TERZI.cod_Fiscale,rete

	

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.INTERMEDIARIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE



GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[RP_vPrometeiaTerziCategoriaProdotto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vPrometeiaTerziCategoriaProdotto]
AS

SELECT 

	TUTTI.RETE				AS Rete,
	TUTTI.CODICEFISCALE 	AS CodiceFiscale,
	TUTTI.PORTAFOGLIO		AS Portafoglio,
	TUTTI.COD_ISIN			AS CodiceIsin,
	TUTTI.COD_ADEGUATEZZA	AS CodiceAdeguatezza,
	TUTTI.COD_MAF			AS CodiceMaf,
	TUTTI.COD_INTERNO		AS CodiceInterno,
	TUTTI.COD_SOTTOPRODOTTO	AS CodiceSottoprodotto,
	TUTTI.PIAZZA			AS Piazza, 
	TUTTI.CODICEVALUTA		AS Codicevaluta, 
	TUTTI.CLASSE			AS Classe, 
	SUM(TUTTI.CONTROVALORE)	AS Controvalore,
	TUTTI.ESTRAZIONE		AS Estrazione

FROM (

	-- 1. ASSET PER DATI PATRIMONIO TERZI NON IN CATALOGO
	SELECT 	
		'DATI NON IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ASSET_PERC_TERZI.PERC) AS CONTROVALORE
	FROM 
		C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSET_PERC_TERZI.ID_ASSETCLASS = ASSETCLASS_TERZI.ID_ASSETCLASS
	INNER JOIN 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
		ON 
			PATRIMONIO_TERZI.COD_PRODOTTO_TERZI  = ASSET_PERC_TERZI.COD_PRODOTTO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI_TERZI 
		ON 
			ANAG_PRODOTTI_TERZI.COD_PRODOTTO_TERZI = PATRIMONIO_TERZI.COD_PRODOTTO_TERZI
	WHERE 
		ASSET_PERC_TERZI.LIVELLO = 2
--		AND NOT (
--			PATRIMONIO_TERZI.TIPO_PRODOTTO = 'Conti correnti' 
--			AND ANAG_PRODOTTI_TERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.CurrentAccount'
--		)


	UNION ALL


	-- 2. ASSET PER DATI PATRIMONIO TERZI IN CATALOGO
	SELECT
		'DATI IN CATALOGO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE, 
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE, 
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ANAG_PRODOTTI.COD_ISIN AS COD_ISIN,
		ANAG_PRODOTTI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA, 
		ANAG_PRODOTTI.COD_MAF AS COD_MAF,
		ANAG_PRODOTTI.COD_INTERNO AS COD_INTERNO,
		ANAG_PRODOTTI.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI 
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO 
	LEFT OUTER JOIN 
		C6MartPeriodicoImmobiliare.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
			AND ASSET_PERC.LIVELLO = 2


	UNION ALL


	-- 3 ASSET NON ESISTENTI PER DATI PATRIMONIO TERZI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
	SELECT
		'DATI IN CATALOGO CON COD_ADEGUATEZZA NULL E ASSET NON VALORIZZATO' AS ESTRAZIONE,
		PATRIMONIO_TERZI.RETE AS RETE,
		PATRIMONIO_TERZI.COD_FISCALE AS CODICEFISCALE,
		'TIPOPRODTERZI|TERZI|' 
			+ ISNULL(PATRIMONIO_TERZI.DESCR_GRUPPO_PRODOTTO, PATRIMONIO_TERZI.TIPO_PRODOTTO) 
			+ '|' + PATRIMONIO_TERZI.COD_PRODOTTO_TERZI AS PORTAFOGLIO, 
		ASSETCLASS_TERZI.COD_ISIN AS COD_ISIN,
		ASSETCLASS_TERZI.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		ASSETCLASS_TERZI.COD_MAF AS COD_MAF,
		'' AS COD_INTERNO,
		'' AS COD_SOTTOPRODOTTO,
		'' AS PIAZZA, 
		'' AS CODICEVALUTA, 
		'' AS CLASSE, 
--INIZIO 09012014_MV Correzione anomalia
--		(PATRIMONIO_TERZI.CTV * ASSET_PERC.PERC) AS CONTROVALORE		
		(PATRIMONIO_TERZI.CTV * ISNULL(ASSET_PERC.PERC,1)) AS CONTROVALORE
--FINE   09012014_MV Correzione anomalia		
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON 
			ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	LEFT JOIN 
		C6MartPeriodicoImmobiliare.ASSET_PERC 
		ON 
			ASSET_PERC.COD_PRODOTTO = PATRIMONIO_TERZI.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI 
		ON 
			ASSETCLASS_TERZI.ID_ASSETCLASS = 'AL1'
	WHERE 
		ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') = ''
		AND ASSET_PERC.COD_PRODOTTO IS NULL

) TUTTI
GROUP BY 		
		TUTTI.ESTRAZIONE,
		TUTTI.RETE,
		TUTTI.CODICEFISCALE,
		TUTTI.PORTAFOGLIO,
		TUTTI.COD_ISIN,
		TUTTI.COD_ADEGUATEZZA,
		TUTTI.COD_MAF,
		TUTTI.COD_INTERNO,
		TUTTI.COD_SOTTOPRODOTTO,
		TUTTI.PIAZZA, 
		TUTTI.CODICEVALUTA, 
		TUTTI.CLASSE


GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli_Indicatore]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli_Indicatore]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento'
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,


		--- 23//5/2018 ----------------------------------------
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza, --codiceInterno
		--''										AS CodiceValuta, --codiceMAF
		--''										AS Classe, --codiceSottoprodotto
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '|Progetto investimento'
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
		
		------------------------------------------- 12/6/2018
		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA 
			WHEN '$' THEN ''
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceAdeguatezza,
		------------------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--	''										AS Piazza,
		--	''										AS CodiceValuta,
		--	''										AS Classe,
		-- fine modifica del 9/7/2018

			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
		INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN isnull(PATRIMONIO_BF.NOME_PROGETTO, '') <> '' THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '|Progetto investimento' 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		
		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------

		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018


		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
        --- 12/6/2018-------------------------------------------------		
		--''										AS CodiceAdeguatezza,
		---------------------------------------------------------------
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceAdeguatezza, --modifica 050520 per anomalie Levi
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MartPeriodicoImmobiliare.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,

		--- 12/6/2018-------------------------------------------------		
		''										AS CodiceAdeguatezza,
		---------------------------------------------------------------


		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MartPeriodicoImmobiliare.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		--- 12/6/2018 ----------------------------------------
		'' AS CodiceAdeguatezza,
		-----------------------------------------------------------
		-- modifica del 9/7/2018
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_INTERNO, ''))) AS Piazza, --codiceInterno
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_MAF, ''))) AS CodiceValuta, --codiceMAF
		ltrim(rtrim(ISNULL(PATRIMONIO_BF.COD_SOTTOPRODOTTO, ''))) AS Classe, --codiceSottoprodotto
		--''										AS Piazza,
		--''										AS CodiceValuta,
		-- ''										AS Classe,
		-- fine modifica del 9/7/2018

		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else sum(PATRIMONIO_BF.CTV_NOMINALE) end AS CtvNominale , --0505020 tolto 0.0001 per anomalie Levi
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else sum(PATRIMONIO_BF.CTV) end AS CtvReale --0505020 tolto 0.0001 per anomalie Levi
FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF 
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,
	PATRIMONIO_BF.COD_INTERNO,
	PATRIMONIO_BF.COD_MAF,
	PATRIMONIO_BF.COD_SOTTOPRODOTTO,
	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END


GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioBFAggregatoPerArea]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [C6MartPeriodico].[vPatrimonioBFAggregatoPerArea]
AS
SELECT     TOP (100) PERCENT RETE, COD_FISCALE, LEFT(ID_AREA, 3) AS ID_AREA,chiave_progetto as ORDINAMENTO_PROGETTO, SUM(CTV) AS CTV
FROM         C6MartPeriodico.PATRIMONIO_BF
WHERE LEFT(ID_AREA, 3) <> 'PRE'
GROUP BY RETE, COD_FISCALE, LEFT(ID_AREA, 3),chiave_progetto


union all


SELECT     TOP (100) PERCENT RETE, COD_FISCALE, LEFT(ID_AREA, 3) AS ID_AREA,max(chiave_progetto) as ORDINAMENTO_PROGETTO, SUM(CTV) AS CTV
FROM         C6MartPeriodico.PATRIMONIO_BF

where  LEFT(ID_AREA, 3) = 'PRE'
GROUP BY RETE, COD_FISCALE, LEFT(ID_AREA, 3)


 

 


GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select top 1 * from C6MartPeriodicoImmobiliare.anag_prodotti
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli]
AS
SELECT
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
		CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,

--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA

	FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA
	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
	SELECT
			ANAG_PRODOTTI.DESCR_PRODOTTO,
			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
			
	--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
	--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
				ELSE
					'COMPLESSIVO|BF|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END										AS Portafoglio,
	--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
	--			ELSE ANAG_PRODOTTI.COD_ISIN
	--		END										AS CodiceProdotto,
	---- MODIFICA LUCA
	--V Modifica per gli ASU2 CON IL COD_ADEGUATEZZA NON BECCA NESSUN PRODTTO PROMETEIA
	--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
	--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
	--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA END	
			PATRIMONIO_BF.ISIN AS CodiceProdotto,
			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
			--V FRANCHIGIA CC
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV_NOMINALE
	--		END AS CtvNominale,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
			--PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
	--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
	--			THEN 0
	--			ELSE PATRIMONIO_BF.CTV
	--		END AS CtvReale
			PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
		INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 
		ANAG_PRODOTTI.DESCR_PRODOTTO,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
--			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
--				'COMPLESSIVO|BF|CC|' + PATRIMONIO_BF.POSITION_ID
			ELSE
				'COMPLESSIVO|BF|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE ISNULL(DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, '') --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI  ANAG_PRODOTTI
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	INNER JOIN C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

	UNION ALL

	-- PATRIMONIO TERZI
	SELECT 
		'' as descr_prodotto,
		INTERMEDIARIO.RETE					AS Rete,
		INTERMEDIARIO.CODICEFISCALE			AS CodiceFiscale,
		INTERMEDIARIO.PORTAFOGLIO			AS Portafoglio,
		INTERMEDIARIO.CODICEADEGUATEZZA		AS CodiceProdotto,
		INTERMEDIARIO.PIAZZA				AS Piazza,
		INTERMEDIARIO.CODICEVALUTA			AS CodiceValuta,
		INTERMEDIARIO.CLASSE				AS Classe,
		INTERMEDIARIO.CONTROVALORE			AS CtvNominale,
		INTERMEDIARIO.CONTROVALORE			AS CtvReale

	FROM C6MartPeriodicoImmobiliare.RP_VPROMETEIATERZIINTERMEDIARIO INTERMEDIARIO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport  VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = INTERMEDIARIO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = INTERMEDIARIO.CODICEFISCALE

	UNION ALL 

	-- PATRIMONIO TERZI X TIPO PRODOTTO
	SELECT 
		'' as descr_prodotto,
		CATEGORIAPRODOTTO.RETE				AS Rete,
		CATEGORIAPRODOTTO.CODICEFISCALE		AS CodiceFiscale,
		CATEGORIAPRODOTTO.PORTAFOGLIO		AS Portafoglio,
		CATEGORIAPRODOTTO.CODICEADEGUATEZZA	AS CodiceProdotto,
		CATEGORIAPRODOTTO.PIAZZA			AS Piazza,
		CATEGORIAPRODOTTO.CODICEVALUTA		AS CodiceValuta,
		CATEGORIAPRODOTTO.CLASSE			AS Classe,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvNominale,
		CATEGORIAPRODOTTO.CONTROVALORE		AS CtvReale

	FROM C6MartPeriodicoImmobiliare.RP_VPROMETEIATERZICATEGORIAPRODOTTO CATEGORIAPRODOTTO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI 
		ON VCONTRATTIPERSEI.RETE = CATEGORIAPRODOTTO.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = CATEGORIAPRODOTTO.CODICEFISCALE

--V Conti correnti Fideuram
union all
SELECT
		'CC' as descr_prodotto,
		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,
--		CASE ANAG_PRODOTTI.COD_ISIN --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ADEGUATEZZA
--			ELSE ANAG_PRODOTTI.COD_ISIN
--		END										AS CodiceProdotto,
-- MODIFICA LUCA
--		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
--			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
--			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
--		END										
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		--V FRANCHIGIA CC
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND PATRIMONIO_BF.CTV_NOMINALE <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV_NOMINALE
--		END AS CtvNominale,
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else sum(PATRIMONIO_BF.CTV_NOMINALE) end AS CtvNominale , --0505020 tolto 0.0001 per anomalie Levi
--		CASE WHEN PATRIMONIO_BF.ID_AREA = 'Cc' AND  PATRIMONIO_BF.CTV <  CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
--			THEN 0
--			ELSE PATRIMONIO_BF.CTV
--		END AS CtvReale
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then	sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
		else sum(PATRIMONIO_BF.CTV_NOMINALE) end AS CtvReale --0505020 tolto 0.0001 per anomalie Levi
FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC')

group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ISNULL(ANAG_PRODOTTI.COD_ADEGUATEZZA, '') --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
--			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
--				'COMPLESSIVO|BF|NA|' + PATRIMONIO_BF.POSITION_ID	
--		
			WHEN PATRIMONIO_BF.ID_AREA = 'Cc' THEN 
				'COMPLESSIVO|BF|CC'-- + PATRIMONIO_BF.POSITION_ID
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'COMPLESSIVO|BF|CC'
--			ELSE
--				'COMPLESSIVO|BF|' + 
--				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
--				CASE 
--					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
--					ELSE '' 
--				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END



GO
/****** Object:  View [C6Mart].[vRpClientiNonMigrati_20171005]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












CREATE VIEW [C6Mart].[vRpClientiNonMigrati_20171005]
AS
    --FC
	--SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	--FROM         C6Mart.ANAG_CLIENTI
	--WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')

	SELECT      anag.RETE , anag.COD_FISCALE, anag.ID_PROMOTORE,contr.PIVA_FIDUCIARIA
	FROM         C6Mart.ANAG_CLIENTI anag
	inner join c6mart.vcontratti contr
	on contr.cod_fiscale=anag.cod_fiscale and contr.rete=anag.rete
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
	and contr.rete+contr.cod_fiscale not in 
	('FGRBNLT65D44A859X' /* temp 20161207 */
	,'FPNDLCI41T49F205P' /* temp 20170317 */
	,'FNTRSFN60A29F205X' /* temp 20170413 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FRMNSRN50B14G160L' /* temp 20170616 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SBLDMRK89A43H501E' /* temp 20170705 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'SNVGMNL73A15H501Y'
	,'SMTANDR70P22H501S'
	,'SFLCNTN47B12F631K'
	,'SFF@10093'
	,'FCGODTL56P51G224V' /* temp 20170825 causa erorre in wrapper console di AllineaPortafoglioClienti - upd C6Mart.ANAG_CLIENTI */
	,'FFRNNCL87D25G224T'
	,'SSCTGZM53R41C351H' /* temp 20170919 causa erorre in wrapper console di AllineaPortafoglioClienti */
	,'FGLLFBA57R22F205P' /* temp 20170922 causa erorre in wrapper console di AllineaPortafoglioClienti */
	)












GO
/****** Object:  View [C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli_ccLiq]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- View

-- View
--modificata per i cc in liq Marianna & Valerio
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014

CREATE VIEW [C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli_ccLiq]
AS
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END										AS Portafoglio,

		CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
		END										AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
--INIZIO INTERVENTO OMNIA
--		PATRIMONIO_BF.CTV_NOMINALE				AS CtvNominale,
--		PATRIMONIO_BF.CTV						AS CtvReale
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV_NOMINALE end AS CtvNominale ,
		case when PATRIMONIO_BF.ISIN in('EURO00000009', 'EURO10000007') then 0.0000
		else PATRIMONIO_BF.CTV end AS CtvReale 
--FINE INTERVENTO OMNIA
	FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
--INIZIO INTERVENTO OMNIA
--	WHERE PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')
	WHERE (PATRIMONIO_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC','ASU2')  
	AND	   PATRIMONIO_BF.ID_AREA <> 'SELF')
--FINE INTERVENTO OMNIA

	UNION ALL

	---V Modifica per calcolo VaR prodotti ASU2
		SELECT

			PATRIMONIO_BF.RETE						AS Rete,
			PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
			CASE
				WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
					'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

				ELSE
					'RISFIN|PIRAMIDE|' + 
					LEFT(PATRIMONIO_BF.ID_AREA,3) + 
					CASE 
						WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO
						+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
						ELSE '' 
					END + '|' + PATRIMONIO_BF.POSITION_ID	
			END											AS Portafoglio,
									
		 PATRIMONIO_BF.ISIN AS CodiceProdotto,

			''										AS Piazza,
			''										AS CodiceValuta,
			''										AS Classe,
		 PATRIMONIO_BF.CTV_NOMINALE AS CtvNominale,
		 PATRIMONIO_BF.CTV						AS CtvReale

		
		FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
		INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
			ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
			AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
		INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
			ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
			AND ANAG_PRODOTTI.COD_ISIN = PATRIMONIO_BF.ISIN
		WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASU2')

	

	UNION ALL

	-- PATRIMONIO ASUL
	SELECT 

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
			WHEN PATRIMONIO_BF.ID_AREA = 'NA' THEN 
				'RISFIN|NA|' + PATRIMONIO_BF.POSITION_ID	

			ELSE
				'RISFIN|PIRAMIDE|' + 
				LEFT(PATRIMONIO_BF.ID_AREA,3) + 
				CASE 
					WHEN PATRIMONIO_BF.NOME_PROGETTO IS NOT NULL THEN '|' + PATRIMONIO_BF.NOME_PROGETTO 
					+ '|' + isnull(cast(patrimonio_bf.chiave_progetto as varchar),'')
					ELSE '' 
				END + '|' + PATRIMONIO_BF.POSITION_ID	
		END											AS Portafoglio,
		CASE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO --SELEZIONE DEL CODICEPRODOTTO: DETTAGLIO_ASUL.COD_ISIN_FITTIZIO, DETTAGLIO_ASUL.COD_SOTTOPRODOTTO, '$'
			WHEN '' THEN DETTAGLIO_ASUL.COD_ISIN_SOTT
			ELSE DETTAGLIO_ASUL.COD_ISIN_FITTIZIO
		END										AS CodiceProdotto,
		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		DETTAGLIO_ASUL.CTV						AS CtvNominale,
		DETTAGLIO_ASUL.CTV						AS CtvReale

	FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL 
		ON DETTAGLIO_ASUL.ID_CONTRATTO = PATRIMONIO_BF.ID_CONTRATTO
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO IN ('ASUL')

union all
SELECT

		PATRIMONIO_BF.RETE						AS Rete,
		PATRIMONIO_BF.COD_FISCALE				AS CodiceFiscale,
		CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|'--V TOGLIERE + PATRIMONIO_BF.POSITION_ID

		END										AS Portafoglio,
								
		'EUR' AS CodiceProdotto,

		''										AS Piazza,
		''										AS CodiceValuta,
		''										AS Classe,
		
		case when (sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV_NOMINALE)	- CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end AS CtvNominale ,
		--PATRIMONIO_BF.CTV_NOMINALE,
		case when (sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT))>0 then sum(PATRIMONIO_BF.CTV)	-CAST(DBO.GETPARAMETRO('FRANCHIGIA_CC') AS INT)
			else 0.0001 end	AS CtvReale 
		--PATRIMONIO_BF.CTV
FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
	INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport VCONTRATTIPERSEI
		ON VCONTRATTIPERSEI.RETE = PATRIMONIO_BF.RETE
		AND VCONTRATTIPERSEI.COD_FISCALE = PATRIMONIO_BF.COD_FISCALE
	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI 
		ON ANAG_PRODOTTI.COD_PRODOTTO = PATRIMONIO_BF.COD_PRODOTTO
	WHERE PATRIMONIO_BF.TIPO_PRODOTTO  IN ('CC') and patrimonio_bf.ctv>0
group by 
	PATRIMONIO_BF.rete,
	PATRIMONIO_BF.cod_fiscale,
	CASE ANAG_PRODOTTI.COD_ADEGUATEZZA --SELEZIONE DEL CODICEPRODOTTO: COD_ISIN, COD_ADEGUATEZZA, '$'
			WHEN '$' THEN ANAG_PRODOTTI.COD_ISIN
			ELSE ANAG_PRODOTTI.COD_ADEGUATEZZA
	END,

	CASE
	
			WHEN (PATRIMONIO_BF.ID_AREA = 'Liq' and PATRIMONIO_BF.TIPO_PRODOTTO='CC') THEN 
				'RISFIN|PIRAMIDE|Liq'+ '|Cc|' --V TOGLIEREEEEEE + PATRIMONIO_BF.POSITION_ID

		END





GO
/****** Object:  View [C6StagingPeriodico].[vListaClientiTrimestrale_anag_pb]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE   VIEW [C6StagingPeriodico].[vListaClientiTrimestrale_anag_pb]
AS
SELECT
appo.Rete
,appo.Cod_Agente as [Codice Agente]
,(CASE
	when anag.id_promotore is null then '' 
	else
	anag.cognome+' '+anag.nome 
	END) as [Nominativo]
,appo.Cod_Fiscale as [Codice Fiscale]
,appo.CodiceContratto as [Codice Contratto]
,isnull(appo.FREQ_MONITORAGGIO, 'T') as [Freq Monitoraggio]
,appo.FREQ_DIAGNOSI as [Freq Diagnosi]
,CONVERT(varchar(8), appo.Data_FineAvanzato, 112) as [Data Revoca]
,appo.TIP_CONTRATTO as [Tipo Contratto]
,appo.TIP_RIATTIVAZIONE as [Tipo Riattivazione]
--mod 7/3/2019
,isnull(rol2.statorol,'') as [ROL]
,case when appo.TIP_CONTRATTO=3 then'S'else '' end as ClienteDB --FLAGCLIDB  

FROM
C6StagingPERIODICO.APPO_CONTRATTI appo
left join 
[C6MartPeriodico].[ANAG_PROMOTORI] anag
on appo.rete=anag.rete and appo.Cod_Agente=anag.id_promotore

---mod 7/3/2019
left join [C6StampeCentralizzate].[C6StagingPeriodico].[datiROL2] rol2
on 
appo.rete=rol2.rete and appo.cod_fiscale = rol2.codfis

GO
/****** Object:  Table [C6Staging].[ALL_PROPOSTA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_PROPOSTA](
	[AGENTE] [varchar](138) NULL,
	[RETE] [varchar](10) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[CHIAVE_PROPOSTA] [varchar](35) NULL,
	[NOME_PROPOSTA] [varchar](128) NULL,
	[STATO_PROPOSTA] [varchar](256) NULL,
	[DATA_CREAZIONE_PROPOSTA] [datetime] NULL,
	[DATA_SCADENZA_PROPOSTA] [datetime] NULL,
	[NEED_BREVE] [varchar](512) NULL,
	[NEED_ESTESA] [varchar](512) NULL,
	[ORDINE_NEED] [decimal](19, 0) NULL,
	[CONTROVALORE_TOT_PER_NEED] [decimal](19, 7) NULL,
	[PERC_PER_NEED] [decimal](5, 2) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CONTROV_CONSULENZA] [decimal](19, 7) NULL,
	[CONTROV_PROPOSTA] [decimal](18, 0) NULL,
	[CONTROV_DA_DEFINIRE_LIQ] [decimal](19, 7) NULL,
	[ISANEWPOSITION] [decimal](1, 0) NULL,
	[STRINGONA_CLONEPOS] [varchar](256) NULL,
	[NOME_PRODOTTO_CLONEPOS] [varchar](512) NULL,
	[INVESTI] [decimal](19, 7) NULL,
	[DISINVESTI] [decimal](19, 7) NULL,
	[PTF_INIZ] [decimal](19, 7) NULL,
	[CTVOPERAZIONE] [decimal](19, 7) NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[POLIZZADECIMAL] [varchar](20) NULL,
	[CONTO] [varchar](512) NULL,
	[RUBRICATO] [varchar](512) NULL,
	[PR_COD_ISIN] [varchar](20) NULL,
	[PR_COD_MAF] [varchar](20) NULL,
	[PR_COD_INTERNO] [varchar](20) NULL,
	[PR_COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[PR_COD_ADEGUATEZZA] [varchar](20) NULL,
	[NOME_PRODOTTO_CATALOGO] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CHIAVE_PER_LA_CONSULENZA] [varchar](35) NULL,
	[RICONCILIATA] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_PROGETTO] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_AREA] [decimal](1, 0) NULL,
	[FLAG_SALVATAGGIO_MANUALE] [decimal](1, 0) NULL,
	[RAGGRUPPAMENTO_PROGETTO] [varchar](64) NULL
) ON [STAGING]
GO
/****** Object:  View [C6Staging].[vNewPositionProposta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [C6Staging].[vNewPositionProposta]
AS
SELECT     AGENTE, RETE, CODICEFISCALE, NEED_BREVE, NOME_PROGETTO, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, 
                      CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, 
                      PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, 
                      dbo.Crea_positionIDProposta(CHIAVE_CATITEMREF, CONTRACTCODE, CONTO, RUBRICATO, TIPOPRODOTTO, POLIZZADECIMAL) 
                      AS positionIDProposta
FROM         C6Staging.ALL_PROPOSTA
WHERE     (ISANEWPOSITION = 1) AND (RICONCILIATA = 0) AND (STATO_PROPOSTA in ('InEsecuzione', 'ParzialmenteEseguita'))
and 1=0
GO
/****** Object:  UserDefinedFunction [C6StagingPeriodico].[GetContrattiChiusiFromSEI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE FUNCTION [C6StagingPeriodico].[GetContrattiChiusiFromSEI]
(
@startdate varchar(10),
@enddate varchar(10)
)
RETURNS table
AS
RETURN
 (
select 
b.chiaveClientePB
,b.CF
,b.PIVA
,b.PB
,b.RETE
,b.COD_CONF
,b.INDIRIZZO
,b.CAP
,b.CITTA
,b.PROV
,b.NAZIONE
,s.EMAIL
,v.FREQUENZA_DIAGNOSI
,v.FREQUENZA_MONITORAGGIO
,r.FLAG_STAMPA_REPORT
,b.DATA_SOTTOSCRIZIONE_CB
,b.DATA_PERFEZIONAMENTO_CB
,b.DATA_CHIUSURA_CB
,s.DATA_SOTTOSCRIZIONE_C6
,s.DATA_PERFEZIONAMENTO_C6
,s.DATA_CHIUSURA_C6
,s.ADESIONE_ROL
,s.TIPCONTRATTO
--into consulenzabasefl_cbs_AvanzatiChiusi
from 
	[CONSUNI].ConsulenzaUnicaFL.dbo.CBS_DbContrattoBase b 
inner join 
	[CONSUNI].ConsulenzaUnicaFL.dbo.CBS_DbContrattoSei s
on b.COD_CONF=s.COD_CONF
inner join [CONSUNI].ConsulenzaUnicaFL.dbo.CBS_DbVariazFreqContrSei v
on v.COD_CONF=b.COD_CONF  and 
--v.DATA_FINE_CARATTER_FREQ='99991231'
v.DATA_FINE_CARATTER_FREQ=
(select max(z.DATA_FINE_CARATTER_FREQ) from [CONSUNI].ConsulenzaUnicaFL.dbo.CBS_DbVariazFreqContrSei z
 where v.COD_CONF=z.COD_CONF)
inner join [CONSUNI].ConsulenzaUnicaFL.dbo.CBS_DbVariazStmrepContrSei r 
on r.COD_CONF=b.COD_CONF and
r.DATA_FINE_CARATTER_STMREP=
(select max(y.DATA_FINE_CARATTER_STMREP) from [CONSUNI].ConsulenzaUnicaFL.dbo.CBS_DbVariazStmrepContrSei y
 where r.COD_CONF=y.COD_CONF)
where b.DATA_CHIUSURA_CB!='99991231' and s.DATA_CHIUSURA_C6!='99991231'
-- and  r.DATA_FINE_CARATTER_STMREP='99991231'
and s.DATA_CHIUSURA_C6 between @startdate and @enddate
)
GO
/****** Object:  UserDefinedFunction [dbo].[Crea_positionID_INLINE_20240427]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE   FUNCTION [dbo].[Crea_positionID_INLINE_20240427]
(
    @TipoProdotto VARCHAR(5)='',
    @CodInterno VARCHAR(13)='', 
    @CodMAF VARCHAR(13)='', 
    @CodISIN VARCHAR(16)='', 
    @CodSottoprodotto VARCHAR(13)='',
    @CodiceContratto VARCHAR(11)='',
    @NumeroPolizza VARCHAR(11)= '', 
    @Conto VARCHAR(12)= '',
    @Rubricato VARCHAR(4)='',
    @CustodiaGaranzia VARCHAR(1)='',
    @Termid VARCHAR(8)='', 
    @Anno DECIMAL(3)=0, 
    @Prog DECIMAL(9)=0
)
RETURNS TABLE
AS
RETURN
(
    SELECT
        CONCAT(
            RIGHT('000000000000' + ISNULL(@CodiceContratto, 'e'), 11),
            RIGHT('000000000000' + ISNULL(@Conto, 'e'), 12),
            RIGHT('000' + ISNULL(@Rubricato, 'e'), 3),
            RIGHT('0' + ISNULL(@CustodiaGaranzia, 'e'), 1),
            RIGHT('00000000000' + ISNULL(@NumeroPolizza, 'e'), 11),
            RIGHT('00000000' + ISNULL(@Termid, 'e'), 8),
            RIGHT('000' + CAST(ISNULL(@Anno, 0) AS VARCHAR(3)), 3),
            RIGHT('000000000' + CAST(ISNULL(@Prog, 0) AS VARCHAR(9)), 9)
        ) AS PositionID
)
GO
/****** Object:  UserDefinedFunction [dbo].[udf_HexToRGB]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[udf_HexToRGB] (@hex char(6))
RETURNS TABLE
AS RETURN
    (
     SELECT 16 * (CHARINDEX(SUBSTRING(@hex, 1, 1), '0123456789abcdef') - 1) + (CHARINDEX(SUBSTRING(@hex, 2, 1),
                                                                                         '0123456789abcdef') - 1) AS R
           ,16 * (CHARINDEX(SUBSTRING(@hex, 3, 1), '0123456789abcdef') - 1) + (CHARINDEX(SUBSTRING(@hex, 4, 1),
                                                                                         '0123456789abcdef') - 1) AS G
           ,16 * (CHARINDEX(SUBSTRING(@hex, 5, 1), '0123456789abcdef') - 1) + (CHARINDEX(SUBSTRING(@hex, 6, 1),
                                                                                         '0123456789abcdef') - 1) AS B
    )
GO
/****** Object:  View [C6Mart].[vContrattiBase]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--select * from c6mart.vcontrattic6 where cod_fiscale='MSTMLN76S62H501P'



--select * from  [C6Mart].[vContrattiC6] where codicecontratto = '582372CO806'
CREATE VIEW [C6Mart].[vContrattiBase]
AS


SELECT    DISTINCT
	b.chiaveClientePB, 	
	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,   
 --   case when datediff(dd,isnull(z.dtaggiornamento,'1900-01-01 00:00:00.000'),getDate()) > 7
	--	 then  f.pb 
	--else
	--	case when(isnull(ltrim(rtrim(d.codage)),'') <> '') 
	--		then  d.codage
	--		else f.pb 
	--	END 
	--END AS COD_AGENTE, 
	isnull(d.codage,f.pb) as COD_AGENTE, -- modifica Ale
    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,   
	 --controlla prima questo
   -- WHEN e.tipcontratto = 'A' THEN 1
   -- WHEN e.tipcontratto = 'P' THEN 2

   -- ELSE 0 
   '1'
 AS TIP_CONTRATTO,
	 0   AS RIATTIVAZIONE,
	a.TipoConsulenza
FROM                               
	[CONSUNI].[consulenzaUnica].dbo.Contratto a
     	
JOIN 
	[CONSUNI].[consulenzaUnica].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
--	and a.status in ('SEI','AVANZATOBASE','REVOCASEI','DADVISORY')
JOIN [CONSUNI].[consulenzaUnica].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSUNI].[consulenzaUnica].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
 --JOIN --[CONSUNI].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	-- (
	--  SELECT *,row_number() over (partition by COD_CONF  order by DATA_CHIUSURA_C6 DESC )  AS ordine 
	--  FROM [CONSUNI].[consulenzaUnicaFL].dbo.cbs_dbcontrattosei	 
	-- ) e
	--ON a.codiceContratto = e.cod_conf AND e.ordine = 1
JOIN [CONSUNI].[consulenzaUnicaFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf
--12/12/2014 - INIZIO
--left join  [CONSUNI].ConsulenzaUnica.dbo.Pianificazione z
--     on z.chiaveClientePB = a.chiaveClientePB 
----12/12/2014 - FINE














GO
/****** Object:  View [C6Mart].[vContrattiC6]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--select * from c6mart.vcontrattic6 where cod_fiscale='MSTMLN76S62H501P'



--select * from  [C6Mart].[vContrattiC6] where codicecontratto = '582372CO806'
CREATE VIEW [C6Mart].[vContrattiC6]
AS


SELECT    DISTINCT
	b.chiaveClientePB, 	
	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,   
 --   case when datediff(dd,isnull(z.dtaggiornamento,'1900-01-01 00:00:00.000'),getDate()) > 7
	--	 then  f.pb 
	--else
	--	case when(isnull(ltrim(rtrim(d.codage)),'') <> '') 
	--		then  d.codage
	--		else f.pb 
	--	END 
	--END AS COD_AGENTE, 
	isnull(d.codage,f.pb) as COD_AGENTE, -- modifica Ale
    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 
	WHEN a.status = 'DADVISORY' THEN 3 --controlla prima questo
    ELSE 1
END AS TIP_CONTRATTO,
	CASE WHEN e.riattivazione = 1 THEN 1 ELSE 0  END AS RIATTIVAZIONE,
	a.TipoConsulenza
FROM                               
	[CONSUNI].[consulenzaUnica].dbo.Contratto a
     	
JOIN 
	[CONSUNI].[consulenzaUnica].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
	and a.status in ('SEI','AVANZATOBASE','REVOCASEI','DADVISORY')
JOIN [CONSUNI].[consulenzaUnica].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSUNI].[consulenzaUnica].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
 JOIN --[CONSUNI].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	 (
	  SELECT *,row_number() over (partition by COD_CONF  order by DATA_CHIUSURA_C6 DESC )  AS ordine 
	  FROM [CONSUNI].[consulenzaUnicaFL].dbo.cbs_dbcontrattosei	 
	 ) e
	ON a.codiceContratto = e.cod_conf AND e.ordine = 1
JOIN [CONSUNI].[consulenzaUnicaFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf
--12/12/2014 - INIZIO
--left join  [CONSUNI].ConsulenzaUnica.dbo.Pianificazione z
--     on z.chiaveClientePB = a.chiaveClientePB 
----12/12/2014 - FINE














GO
/****** Object:  View [C6Mart].[vContrattiC6_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--select * from c6mart.vcontrattic6 where cod_fiscale='MSTMLN76S62H501P'



--select * from  [C6Mart].[vContrattiC6] where codicecontratto = '582372CO806'
CREATE VIEW [C6Mart].[vContrattiC6_20240412]
AS


SELECT    DISTINCT
	b.chiaveClientePB, 	
	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,   
 --   case when datediff(dd,isnull(z.dtaggiornamento,'1900-01-01 00:00:00.000'),getDate()) > 7
	--	 then  f.pb 
	--else
	--	case when(isnull(ltrim(rtrim(d.codage)),'') <> '') 
	--		then  d.codage
	--		else f.pb 
	--	END 
	--END AS COD_AGENTE, 
	isnull(d.codage,f.pb) as COD_AGENTE, -- modifica Ale
    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 
	WHEN a.status = 'DADVISORY' THEN 3 --controlla prima questo
    WHEN e.tipcontratto = 'A' THEN 1
    WHEN e.tipcontratto = 'P' THEN 2

    ELSE 0 
END AS TIP_CONTRATTO,
	CASE WHEN e.riattivazione = 1 THEN 1 ELSE 0  END AS RIATTIVAZIONE,
	a.TipoConsulenza
FROM                               
	[CONSUNI].[consulenzaUnica].dbo.Contratto a
     	
JOIN 
	[CONSUNI].[consulenzaUnica].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
	and a.status in ('SEI','AVANZATOBASE','REVOCASEI','DADVISORY')
JOIN [CONSUNI].[consulenzaUnica].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSUNI].[consulenzaUnica].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
 JOIN --[CONSUNI].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	 (
	  SELECT *,row_number() over (partition by COD_CONF  order by DATA_CHIUSURA_C6 DESC )  AS ordine 
	  FROM [CONSUNI].[consulenzaUnicaFL].dbo.cbs_dbcontrattosei	 
	 ) e
	ON a.codiceContratto = e.cod_conf AND e.ordine = 1
JOIN [CONSUNI].[consulenzaUnicaFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf
--12/12/2014 - INIZIO
--left join  [CONSUNI].ConsulenzaUnica.dbo.Pianificazione z
--     on z.chiaveClientePB = a.chiaveClientePB 
----12/12/2014 - FINE














GO
/****** Object:  View [C6Mart].[vContrattiC6_CONG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
  
  
  
  
  
  
--select * from c6mart.vcontrattic6 where cod_fiscale='MSTMLN76S62H501P'  
  
  
  
--select * from  [C6Mart].[vContrattiC6] where codicecontratto = '582372CO806'  
CREATE VIEW [C6Mart].[vContrattiC6_CONG]  
AS  
  
  
SELECT    DISTINCT  
 b.chiaveClientePB,    
 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,     
 --   case when datediff(dd,isnull(z.dtaggiornamento,'1900-01-01 00:00:00.000'),getDate()) > 7  
 --  then  f.pb   
 --else  
 -- case when(isnull(ltrim(rtrim(d.codage)),'') <> '')   
 --  then  d.codage  
 --  else f.pb   
 -- END   
 --END AS COD_AGENTE,   
 isnull(d.codage,f.pb) as COD_AGENTE, -- modifica Ale  
    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   
 WHEN a.status = 'DADVISORY' THEN 3 --controlla prima questo  
    ELSE 1  
END AS TIP_CONTRATTO,  
 CASE WHEN e.riattivazione = 1 THEN 1 ELSE 0  END AS RIATTIVAZIONE,  
 a.TipoConsulenza  
FROM                                 
 [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Contratto a  
        
JOIN   
 [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ClientePB b   
 ON b.chiaveClientePB = a.chiaveClientePB   
 and a.status in ('SEI','AVANZATOBASE','REVOCASEI','DADVISORY')  
JOIN [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Cliente c   
 ON b.chiaveCliente = c.chiaveCliente   
JOIN [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PromotoreBancario d   
 ON b.chiavePB = d.chiavePB  
 JOIN --[CONSUNI_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e  
  (  
   SELECT *,row_number() over (partition by COD_CONF  order by DATA_CHIUSURA_C6 DESC )  AS ordine   
   FROM [CONSUNI_PERIODICO].[consulenzaUnicaFL].dbo.cbs_dbcontrattosei    
  ) e  
 ON a.codiceContratto = e.cod_conf AND e.ordine = 1  
JOIN [CONSUNI_PERIODICO].[consulenzaUnicaFL].dbo.cbs_dbcontrattobase f  
 ON a.codiceContratto = f.cod_conf  
--12/12/2014 - INIZIO  
--left join  [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.Pianificazione z  
--     on z.chiaveClientePB = a.chiaveClientePB   
----12/12/2014 - FINE  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  View [C6Mart].[vPatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE view [C6Mart].[vPatrimonioImmobiliare]
as
					select
								vInfo.Rete,
								vInfo.CodFis as Cod_Fiscale,
								dett.Descrizione,
								dett.tipologia as Tipologia,
					-- modifica del 14/2/2019 per far tornare anche il comune nella localita'
								dett.comune + ' (' + dett.codProvincia + ')' as Localita,
					-- fine modifica del 14/2/2019
								isnull(dett.renditaAnnua, 0) as AffittoPercepito,
								dett.valoreimmobiletotale as Valore,
								0 as Totale,
								0 as TotaleAffitto,		
								isnull(tCoin.tipologiaDiritto,'Proprietà') as TipologiaDiritto,
								case when pt.idimmobilecatasto is not null then tCoin.quotaDiritto else dett.quotaProprieta end ProQuota,

								case when isnull(tCoin.moltiplicatoreDiritto*dett.valoreImmobileTotale,0) = 0 
									then dett.valoreImmobile 
									else ROUND(CAST (dett.valoreImmobileTotale*tCoin.moltiplicatorediritto AS decimal (18,2)),2) 
								end as Valore_ProQuota,
								0 as TotaleProQuota
							from ( select distinct con.chiaveClientePBProprietario,con.chiaveprodottoterzi,condett.tipologiadiritto ,condett.quotaDiritto, condett.moltiplicatorediritto
									from [CONSUNI].consulenzaunica.dbo.cointestatari con
									inner join [CONSUNI].consulenzaunica.dbo.CointestatariDettaglioDiritto condett
									on condett.chiavecointestatari = con.chiavecointestatari
									and condett.chiaveprodottoterzi = con.chiaveprodottoterzi
									where con.chiaveclientepb=con.chiaveClientePBProprietario
									) tCoin
										inner join [CONSUNI].consulenzaunica.dbo.dettImmobiliare dett
										on tCoin.chiaveProdottoTerzi = dett.chiaveProdottoTerzi
											inner join [CONSUNI].consulenzaunica.dbo.PatrimonioTerzi pt
											on dett.chiaveProdottoTerzi = pt.chiaveProdottoTerzi
												left join [CONSUNI].consulenzaunica.dbo.dfinalita fin
												on fin.codfinalita=dett.codfinalita
													left join [CONSUNI].consulenzaunica.dbo.dtipoimmobile dti
													on dti.codtipologia=dett.codtipologia
														left join  [CONSUNI].consulenzaunica.dbo.DNazioneEstera dne
														on dne.codNazioneEstera = dett.codNazioneEstera
															inner join [CONSUNI].consulenzaunica.dbo.vInfoCliente vInfo
															on pt.chiaveClientePB = vInfo.chiaveClientePB
GO
/****** Object:  View [C6Mart].[vPatrimonioImmobiliare_20190116_errata]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE view [C6Mart].[vPatrimonioImmobiliare_20190116_errata]
as
	select 
		vInfo.Rete,
		vInfo.CodFis as Cod_Fiscale,

		dett.Descrizione,
		dett.tipologia as Tipologia,
		dett.comune as Localita,
		isnull(dett.renditaAnnua, 0) as AffittoPercepito,
		dett.valoreimmobiletotale as Valore,

		0 as Totale,
		0 as TotaleAffitto,
		
		isnull(coin.tipologiaDiritto,'Proprietà') as TipologiaDiritto,
		case when pt.idimmobilecatasto is not null then coin.quotaDiritto else dett.quotaProprieta end ProQuota,

		case when isnull(coin.moltiplicatoreDiritto*dett.valoreImmobileTotale,0) = 0 
			then dett.valoreImmobile 
			else ROUND(CAST (dett.valoreImmobileTotale*coin.moltiplicatorediritto AS decimal (18,2)),2) 
		end as Valore_ProQuota,
		0 as TotaleProQuota

	from [CONSUNI].consulenzaunica.dbo.PatrimonioTerzi pt
		inner join [CONSUNI].consulenzaunica.dbo.dettImmobiliare dett
		on dett.chiaveprodottoterzi = pt.chiaveprodottoterzi
		--and dtfinevalidita >getdate()
			left join ( select distinct con.chiaveClientePBProprietario,con.chiaveprodottoterzi,condett.tipologiadiritto ,condett.quotaDiritto, condett.moltiplicatorediritto
						from [CONSUNI].consulenzaunica.dbo.cointestatari con
						inner join [CONSUNI].consulenzaunica.dbo.CointestatariDettaglioDiritto condett
						on condett.chiavecointestatari = con.chiavecointestatari
						and condett.chiaveprodottoterzi = con.chiaveprodottoterzi
						where con.chiaveclientepb=con.chiaveClientePBProprietario
						) coin
			on  coin.chiaveprodottoterzi = dett.chiaveprodottoterzi
			and coin.chiaveClientePBProprietario=pt.chiaveClientePB
				left join [CONSUNI].consulenzaunica.dbo.dfinalita fin
				on fin.codfinalita=dett.codfinalita
					left join [CONSUNI].consulenzaunica.dbo.dtipoimmobile dti
					on dti.codtipologia=dett.codtipologia
						left join  [CONSUNI].consulenzaunica.dbo.DNazioneEstera dne
						on dne.codNazioneEstera = dett.codNazioneEstera
							inner join [CONSUNI].consulenzaunica.dbo.vInfoCliente vInfo
							on pt.chiaveClientePB = vInfo.chiaveClientePB
GO
/****** Object:  View [C6Mart].[vPatrimonioImmobiliare_20190214]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE view [C6Mart].[vPatrimonioImmobiliare_20190214]
as
					select
								vInfo.Rete,
								vInfo.CodFis as Cod_Fiscale,
								dett.Descrizione,
								dett.tipologia as Tipologia,
								dett.comune as Localita,
								isnull(dett.renditaAnnua, 0) as AffittoPercepito,
								dett.valoreimmobiletotale as Valore,
								0 as Totale,
								0 as TotaleAffitto,		
								isnull(tCoin.tipologiaDiritto,'Proprietà') as TipologiaDiritto,
								case when pt.idimmobilecatasto is not null then tCoin.quotaDiritto else dett.quotaProprieta end ProQuota,

								case when isnull(tCoin.moltiplicatoreDiritto*dett.valoreImmobileTotale,0) = 0 
									then dett.valoreImmobile 
									else ROUND(CAST (dett.valoreImmobileTotale*tCoin.moltiplicatorediritto AS decimal (18,2)),2) 
								end as Valore_ProQuota,
								0 as TotaleProQuota
							from ( select distinct con.chiaveClientePBProprietario,con.chiaveprodottoterzi,condett.tipologiadiritto ,condett.quotaDiritto, condett.moltiplicatorediritto
									from [CONSUNI].consulenzaunica.dbo.cointestatari con
									inner join [CONSUNI].consulenzaunica.dbo.CointestatariDettaglioDiritto condett
									on condett.chiavecointestatari = con.chiavecointestatari
									and condett.chiaveprodottoterzi = con.chiaveprodottoterzi
									where con.chiaveclientepb=con.chiaveClientePBProprietario
									) tCoin
										inner join [CONSUNI].consulenzaunica.dbo.dettImmobiliare dett
										on tCoin.chiaveProdottoTerzi = dett.chiaveProdottoTerzi
											inner join [CONSUNI].consulenzaunica.dbo.PatrimonioTerzi pt
											on dett.chiaveProdottoTerzi = pt.chiaveProdottoTerzi
												left join [CONSUNI].consulenzaunica.dbo.dfinalita fin
												on fin.codfinalita=dett.codfinalita
													left join [CONSUNI].consulenzaunica.dbo.dtipoimmobile dti
													on dti.codtipologia=dett.codtipologia
														left join  [CONSUNI].consulenzaunica.dbo.DNazioneEstera dne
														on dne.codNazioneEstera = dett.codNazioneEstera
															inner join [CONSUNI].consulenzaunica.dbo.vInfoCliente vInfo
															on pt.chiaveClientePB = vInfo.chiaveClientePB
GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE view [C6MartPeriodico].[vPatrimonioImmobiliare]
as
					select
								vInfo.Rete,
								vInfo.CodFis as Cod_Fiscale,
								dett.Descrizione,
								dett.tipologia as Tipologia,

								-- modifica del 14/2/2019 per far tornare anche il comune nella localita'
								dett.comune + ' (' + dett.codProvincia + ')' as Localita,
								-- fine modifica del 14/2/2019

								isnull(dett.renditaAnnua, 0) as AffittoPercepito,
								dett.valoreimmobiletotale as Valore,
								0 as Totale,
								0 as TotaleAffitto,		
								isnull(tCoin.tipologiaDiritto,'Proprietà') as TipologiaDiritto,
								case when pt.idimmobilecatasto is not null then tCoin.quotaDiritto else dett.quotaProprieta end ProQuota,

								case when isnull(tCoin.moltiplicatoreDiritto*dett.valoreImmobileTotale,0) = 0 
									then dett.valoreImmobile 
									else ROUND(CAST (dett.valoreImmobileTotale*tCoin.moltiplicatorediritto AS decimal (18,2)),2) 
								end as Valore_ProQuota,
								0 as TotaleProQuota
							from ( select distinct con.chiaveClientePBProprietario,con.chiaveprodottoterzi,condett.tipologiadiritto ,condett.quotaDiritto, condett.moltiplicatorediritto
									from [CONSUNI_PERIODICO].consulenzaunica.dbo.cointestatari con
									inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.CointestatariDettaglioDiritto condett
									on condett.chiavecointestatari = con.chiavecointestatari
									and condett.chiaveprodottoterzi = con.chiaveprodottoterzi
									where con.chiaveclientepb=con.chiaveClientePBProprietario
									) tCoin
										inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.dettImmobiliare dett
										on tCoin.chiaveProdottoTerzi = dett.chiaveProdottoTerzi
											inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.PatrimonioTerzi pt
											on dett.chiaveProdottoTerzi = pt.chiaveProdottoTerzi
												left join [CONSUNI_PERIODICO].consulenzaunica.dbo.dfinalita fin
												on fin.codfinalita=dett.codfinalita
													left join [CONSUNI_PERIODICO].consulenzaunica.dbo.dtipoimmobile dti
													on dti.codtipologia=dett.codtipologia
														left join  [CONSUNI_PERIODICO].consulenzaunica.dbo.DNazioneEstera dne
														on dne.codNazioneEstera = dett.codNazioneEstera
															inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.vInfoCliente vInfo
															on pt.chiaveClientePB = vInfo.chiaveClientePB
														
														


GO
/****** Object:  View [C6MartPeriodico].[vPatrimonioImmobiliare_20190214]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE view [C6MartPeriodico].[vPatrimonioImmobiliare_20190214]
as
					select
								vInfo.Rete,
								vInfo.CodFis as Cod_Fiscale,
								dett.Descrizione,
								dett.tipologia as Tipologia,
								dett.comune as Localita,
								isnull(dett.renditaAnnua, 0) as AffittoPercepito,
								dett.valoreimmobiletotale as Valore,
								0 as Totale,
								0 as TotaleAffitto,		
								isnull(tCoin.tipologiaDiritto,'Proprietà') as TipologiaDiritto,
								case when pt.idimmobilecatasto is not null then tCoin.quotaDiritto else dett.quotaProprieta end ProQuota,

								case when isnull(tCoin.moltiplicatoreDiritto*dett.valoreImmobileTotale,0) = 0 
									then dett.valoreImmobile 
									else ROUND(CAST (dett.valoreImmobileTotale*tCoin.moltiplicatorediritto AS decimal (18,2)),2) 
								end as Valore_ProQuota,
								0 as TotaleProQuota
							from ( select distinct con.chiaveClientePBProprietario,con.chiaveprodottoterzi,condett.tipologiadiritto ,condett.quotaDiritto, condett.moltiplicatorediritto
									from [CONSUNI_PERIODICO].consulenzaunica.dbo.cointestatari con
									inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.CointestatariDettaglioDiritto condett
									on condett.chiavecointestatari = con.chiavecointestatari
									and condett.chiaveprodottoterzi = con.chiaveprodottoterzi
									where con.chiaveclientepb=con.chiaveClientePBProprietario
									) tCoin
										inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.dettImmobiliare dett
										on tCoin.chiaveProdottoTerzi = dett.chiaveProdottoTerzi
											inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.PatrimonioTerzi pt
											on dett.chiaveProdottoTerzi = pt.chiaveProdottoTerzi
												left join [CONSUNI_PERIODICO].consulenzaunica.dbo.dfinalita fin
												on fin.codfinalita=dett.codfinalita
													left join [CONSUNI_PERIODICO].consulenzaunica.dbo.dtipoimmobile dti
													on dti.codtipologia=dett.codtipologia
														left join  [CONSUNI_PERIODICO].consulenzaunica.dbo.DNazioneEstera dne
														on dne.codNazioneEstera = dett.codNazioneEstera
															inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.vInfoCliente vInfo
															on pt.chiaveClientePB = vInfo.chiaveClientePB
GO
/****** Object:  View [dbo].[RICODIF_CF_PIVA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE VIEW [dbo].[RICODIF_CF_PIVA]
AS

SELECT CF_OLD, CF_NEW, DTINSERIMENTO from [CONSEVO].ConsulenzaBaseFL.dbo.RICODIF_CF_PIVA
WHERE
--	ISNULL(Base, 0) = 0
--AND
	RicodificatoContratto6 is null
GO
/****** Object:  View [dbo].[RICODIF_CF_PIVA_CU]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE VIEW [dbo].[RICODIF_CF_PIVA_CU]
AS

SELECT CF_OLD, CF_NEW, DTINSERIMENTO from [CONSUNI].ConsulenzaUnicaFL.dbo.RICODIF_CF_PIVA
WHERE
--	ISNULL(Base, 0) = 0
--AND
	RicodificatoContratto6 is null

GO
/****** Object:  Table [audit].[ChangesHeader]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [audit].[ChangesHeader](
	[HeaderID] [bigint] IDENTITY(1,1) NOT NULL,
	[SchemaName] [nvarchar](max) NULL,
	[ObjectName] [nvarchar](max) NULL,
	[EventType] [nvarchar](max) NULL,
	[ModificationDate] [datetime] NULL,
	[ResponsiblePerson] [nvarchar](max) NULL,
	[IP] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [audit].[ChangesLines]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [audit].[ChangesLines](
	[HeaderID] [bigint] NULL,
	[LineID] [bigint] NULL,
	[LineText] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ALBERO_PRODOTTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ALBERO_PRODOTTI](
	[DESCRIZIONE_ORIGINALE] [varchar](100) NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ALL_PATRIMONIO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ALL_PATRIMONIO](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[CATALOGUEID] [varchar](128) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COMPLESSITA] [varchar](18) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[PATRIMONIO_INTERMEDIARIO] [numeric](19, 7) NULL,
	[EMITTENTE] [varchar](512) NULL,
	[PATRIMONIO_EMITTENTE] [numeric](19, 7) NULL,
	[TIPO_PRODOTTO] [varchar](128) NULL,
	[CONTROVALORE_PRODOTTO] [numeric](19, 7) NULL,
	[AZ_OB] [varchar](2) NULL,
	[PATRIMONIO_AZ_OB_EMIT] [numeric](19, 7) NULL,
	[PATRIM_AZ_OB_EMIT_INTER] [numeric](19, 7) NULL,
	[PATRIMONIO_COMPLESSIVO] [numeric](19, 7) NULL,
	[CHIAVE_THR] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Mart].[ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CC_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](128) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDO] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_CLIENTI_FC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CLIENTI_FC](
	[RETE] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[NOME] [varchar](80) NULL,
	[COGNOME] [varchar](153) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [int] NULL,
	[NUM_COMPONENTI] [int] NULL,
	[NUM_FIGLI] [int] NULL,
	[ETA] [numeric](18, 0) NULL,
	[PARTITA_IVA] [int] NULL,
	[CITTADINANZA] [varchar](50) NULL,
	[PERSONA_FIS_GIUR] [int] NULL,
	[INDIRIZZO] [varchar](128) NOT NULL,
	[LOCALITA] [varchar](50) NOT NULL,
	[PROVINCIA] [varchar](50) NOT NULL,
	[CAP] [varchar](6) NOT NULL,
	[NAZIONE] [varchar](50) NOT NULL,
	[PRESSO] [varchar](1) NOT NULL,
	[TEL_RECAPITO] [int] NULL,
	[TEL_CELL] [int] NULL,
	[E_MAIL] [varchar](512) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [int] NULL,
	[STATO] [int] NULL,
	[RAG_SOC] [int] NULL,
	[SESSO] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [char](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_CLIENTI_TEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CLIENTI_TEST](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME] [varchar](50) NULL,
	[COGNOME] [varchar](50) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [varchar](20) NULL,
	[NUM_COMPONENTI] [smallint] NULL,
	[NUM_FIGLI] [smallint] NULL,
	[ETA] [smallint] NULL,
	[PARTITA_IVA] [varchar](20) NULL,
	[CITTADINANZA] [varchar](150) NULL,
	[PERSONA_FIS_GIUR] [varchar](20) NULL,
	[INDIRIZZO] [varchar](150) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](50) NULL,
	[PRESSO] [varchar](32) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[STATO] [varchar](20) NULL,
	[RAG_SOC] [varchar](20) NULL,
	[SESSO] [varchar](1) NULL,
	[ID_PROMOTORE] [varchar](6) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_CONTRATTI_ASS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_CONTRATTI_ASS](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NOT NULL,
	[ID_CONTRATTO] [varchar](20) NOT NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[IMPORTO_RATA] [decimal](15, 3) NULL,
	[FREQ_RATA] [smallint] NULL,
	[IMPORTO_ASSICURATO] [decimal](15, 3) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[COD_SOTTOPRODOTTO] [varchar](30) NOT NULL,
	[COD_INTERNO] [varchar](20) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[STATO] [varchar](20) NULL,
	[DIV_RIFERIMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__ANAG_CONTRATTI_A__2A164134] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[NUM_POLIZZA] ASC,
	[ID_CONTRATTO] ASC,
	[COD_SOTTOPRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_EMITTENTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_EMITTENTI](
	[ID_EMITTENTE] [varchar](30) NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[NOTE] [varchar](256) NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__ANAG_EMITTENTI__05D8E0BE] PRIMARY KEY CLUSTERED 
(
	[ID_EMITTENTE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_PRODOTTI_VALUTE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_PRODOTTI_VALUTE](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[DIVISA] [varchar](3) NOT NULL,
	[PESO] [decimal](6, 3) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_PRODOTTI_VALUTE] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC,
	[DIVISA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ANAG_SELF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ANAG_SELF](
	[Rete] [char](1) NULL,
	[CodFis] [char](16) NULL,
	[CodConf] [char](11) NULL,
	[NomeProdotto] [char](128) NULL,
	[Ctv] [decimal](15, 2) NULL,
	[DataSott] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodSottoprodotto] [varchar](5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[anag_self_bkp]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[anag_self_bkp](
	[Rete] [char](1) NULL,
	[CodFis] [char](16) NULL,
	[CodConf] [char](11) NULL,
	[Ctv] [decimal](15, 2) NULL,
	[DataSott] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[AREA_BISOGNO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[AREA_BISOGNO](
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_AREA] [varchar](30) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[AREA_BISOGNO.prev]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[AREA_BISOGNO.prev](
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_AREA] [varchar](30) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__AREA_BISOGNO__09A971A2] PRIMARY KEY CLUSTERED 
(
	[ID_AREA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ASSETCLASS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ASSETCLASS](
	[ID_ASSETCLASS] [varchar](20) NOT NULL,
	[DESCRIZIONE] [varchar](128) NULL,
	[LIVELLO] [smallint] NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK_ASSETCLASS] PRIMARY KEY CLUSTERED 
(
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[benvenuto_scarti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[benvenuto_scarti](
	[rete] [varchar](2) NULL,
	[cod_agente] [varchar](10) NULL,
	[Codice_Fiscale] [varchar](32) NULL,
	[Codice_Contratto] [varchar](16) NULL,
	[tipologia_cliente] [varchar](10) NULL,
	[motivazione] [varchar](512) NULL,
	[data_inserimento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[BrsClienteESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[BrsClienteESG](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CaratteriMappati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CaratteriMappati](
	[Carattere_Speciale] [varchar](3) NULL,
	[Carattere_Mappato] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CATEGORIE_PRODOTTO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CATEGORIE_PRODOTTO](
	[CAT_PRODOTTO] [varchar](20) NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[ORDINAMENTO] [smallint] NULL,
 CONSTRAINT [PK__CATEGORIE_PRODOT__0B91BA14] PRIMARY KEY CLUSTERED 
(
	[CAT_PRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[clienti_brochure]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[clienti_brochure](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[clientiDaSistemare]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[clientiDaSistemare](
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[clientiRepGiaInviati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[clientiRepGiaInviati](
	[CodiceFiscale] [varchar](16) NOT NULL,
	[conteggio] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CODICI_PROMOTORI_FITTIZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CODICI_PROMOTORI_FITTIZI](
	[Rete] [varchar](1) NOT NULL,
	[CodiceDA] [varchar](6) NOT NULL,
	[CodiceA] [varchar](6) NOT NULL,
 CONSTRAINT [PK_CODICI_PROMOTORI_FITTIZI] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[CodiceDA] ASC,
	[CodiceA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CODIFICA_CREDITRISK]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CODIFICA_CREDITRISK](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAL] [decimal](5, 2) NULL,
	[MAX_VAL] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CODIFICA_PIRAMIDI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CODIFICA_PIRAMIDI](
	[ID_PIRAMIDE] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](30) NULL,
	[NOTE] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__CODIFICA_PIRAMID__0D7A0286] PRIMARY KEY CLUSTERED 
(
	[ID_PIRAMIDE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[CODIFICA_RISCHIO](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAR] [decimal](5, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__CODIFICA_RISCHIO__0F624AF8] PRIMARY KEY CLUSTERED 
(
	[PROFILO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[COLORI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[COLORI](
	[Tipo] [varchar](50) NOT NULL,
	[Codice] [varchar](50) NOT NULL,
	[Ordinamento] [int] NULL,
	[Descrizione breve] [varchar](255) NULL,
	[Descrizione estesa] [varchar](255) NULL,
	[HexColor] [varchar](255) NULL,
	[Red] [smallint] NULL,
	[Green] [smallint] NULL,
	[Blue] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[Contratti_Da_Escludere_bkp]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Contratti_Da_Escludere_bkp](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[periodico] [char](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ELABORAZIONI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ELABORAZIONI](
	[ID_ELAB] [int] IDENTITY(1,1) NOT NULL,
	[TIPO_ELAB] [varchar](1) NOT NULL,
	[DATA_OPERAZIONE] [datetime] NOT NULL,
 CONSTRAINT [PK_ELABORAZIONI] PRIMARY KEY CLUSTERED 
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[EMAIL_ATTACHMENT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[EMAIL_ATTACHMENT](
	[Attachment_Id] [int] NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Attachment] [varbinary](1) NULL,
 CONSTRAINT [PK__EMAIL_ATTACHMENT__0B7CAB7B] PRIMARY KEY CLUSTERED 
(
	[Attachment_Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[EMAIL_PB]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[EMAIL_PB](
	[RETE] [varchar](1) NULL,
	[CODICE] [varchar](6) NULL,
	[PREFISSO] [varchar](1) NULL,
	[FIRMA] [varchar](7) NULL,
	[EMAIL] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ESITI_CARICAMENTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ESITI_CARICAMENTI](
	[PROGR] [int] NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[ESITO] [varchar](2) NULL,
	[NOTE] [varchar](256) NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ESTRAZ_GIORNALIERA_CC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ESTRAZ_GIORNALIERA_CC](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODICECONTRATTO] [varchar](11) NOT NULL,
	[DATAGENERAZIONE] [datetime] NOT NULL,
	[NUMERO_CC] [varchar](12) NOT NULL,
	[CTV_CC] [decimal](38, 3) NULL,
	[TOT_CTV] [decimal](38, 3) NULL,
	[TOT_CTV_NO_CC] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[Generator_Diagnosi]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Generator_Diagnosi](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[Generator_Diagnosi_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Generator_Diagnosi_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[Generator_Direct]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Generator_Direct](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[generator_direct_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[generator_direct_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[Generator_Direct_BKP_PRE_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Generator_Direct_BKP_PRE_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[generator_direct_PreMUA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[generator_direct_PreMUA](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[GER_PROMOTORI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GER_PROMOTORI](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[ID_MANAGER] [varchar](6) NULL,
	[SUBORDINATI] [varchar](10) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__GER_PROMOTORI__123EB7A3] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[ID_PROMOTORE] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[GESTIONE_EMAIL.sve]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GESTIONE_EMAIL.sve](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__GESTIONE_EMAIL__04CFADEC] PRIMARY KEY CLUSTERED 
(
	[Email_Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[gestione_email_1070413]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[gestione_email_1070413](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[gestione_email_RP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[gestione_email_RP](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[GESTIONE_PDF_FTP_20250502]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GESTIONE_PDF_FTP_20250502](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[gestione_pdf_ftp_bkp_20250504]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[gestione_pdf_ftp_bkp_20250504](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[GESTIONE_PDF_FTP_DaRecuperare_20250503]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GESTIONE_PDF_FTP_DaRecuperare_20250503](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[gestione_pdf_ftp_FD]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[gestione_pdf_ftp_FD](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[GESTIONE_ZIP_FTP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GESTIONE_ZIP_FTP](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK_C6Mart.GESTIONE_ZIP_FTP] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[GESTIONE_ZIP_FTP_BKP_20240506]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[GESTIONE_ZIP_FTP_BKP_20240506](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[InvioLetteraBenvenuto_excludedlist]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[InvioLetteraBenvenuto_excludedlist](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Desc_Richiesta] [varchar](500) NOT NULL,
	[Data_aggiornamento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[log_align_giornaliero]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[log_align_giornaliero](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[ExecutionDate] [datetime] NOT NULL,
	[LogLevel] [nvarchar](64) NULL,
	[Operation] [nvarchar](64) NULL,
	[Message] [nvarchar](max) NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[log_align_giornaliero_LUCA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[log_align_giornaliero_LUCA](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[ExecutionDate] [datetime] NOT NULL,
	[LogLevel] [nvarchar](64) NULL,
	[Operation] [nvarchar](64) NULL,
	[Message] [nvarchar](max) NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[LogVcontrattiseiAnd]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[LogVcontrattiseiAnd](
	[dtstamp] [datetime] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[MD_TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[MIFID]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[MIFID](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COMPILAZIONE] [varchar](1) NULL,
	[PROFILO_ASS] [smallint] NULL,
	[PROFILO_CALC] [smallint] NULL,
	[DATA_INIZIO_VAL] [datetime] NULL,
	[DATA_FINE_VAL] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[RISKCLASS] [varchar](50) NULL,
	[EXPERIENCE] [smallint] NULL,
	[COMPLESSITA] [varchar](100) NULL,
	[CSP] [varchar](16) NULL,
	[IMPORTOSPESA] [decimal](15, 2) NULL,
	[IMPORTORISERVA] [decimal](15, 2) NULL,
	[PERCLUNGOPERIODO] [decimal](5, 2) NULL,
	[ESIGENZEASS] [varchar](2) NULL,
	[SCADUTO] [bit] NULL,
 CONSTRAINT [PK_MIFID] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[MIFID_preMUA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[MIFID_preMUA](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COMPILAZIONE] [varchar](1) NULL,
	[PROFILO_ASS] [smallint] NULL,
	[PROFILO_CALC] [smallint] NULL,
	[DATA_INIZIO_VAL] [datetime] NULL,
	[DATA_FINE_VAL] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[RISKCLASS] [varchar](50) NULL,
	[EXPERIENCE] [smallint] NULL,
	[SCADUTO] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[param_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[param_20240412](
	[Parametro] [varchar](20) NOT NULL,
	[Valore] [varchar](max) NULL,
	[Descrizione] [varchar](200) NULL,
	[DtModifica] [date] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PARTITE_VIAGGIANTI](
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[IMPORTO] [decimal](18, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_PARTITE_VIAGGIANTI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PATRIMONIO_AGG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_AGG](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[LIQUIDATO] [decimal](15, 3) NULL,
	[INVESTITO] [decimal](15, 3) NULL,
	[ID_AREA] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PATRIMONIO_BF_BK]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_BF_BK](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_PATRIMONIO_BF_BK] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[POSITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PATRIMONIO_DUPLICATI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_DUPLICATI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[DtStamp] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PATRIMONIO_EMITTENTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_EMITTENTI](
	[COD_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[POSITION_ID] [varchar](512) NULL,
	[COD_PRODOTTO] [varchar](128) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[CTV_INTERMEDIARIO] [numeric](19, 7) NULL,
	[CTV_INTER_NOCC_NEG] [numeric](19, 7) NULL,
	[EMITTENTE] [varchar](512) NULL,
	[COMPLESSITA] [varchar](18) NULL,
	[CTV_EMITTENTE] [numeric](19, 7) NULL,
	[CTV_PRODOTTO] [numeric](19, 7) NULL,
	[FLG_AZ_OB] [varchar](2) NULL,
	[CREDITRISKCLASS] [varchar](50) NULL,
	[CTV_AZIONARIO] [numeric](19, 7) NULL,
	[CTV_OBBLIGAZIONARIO] [numeric](19, 7) NULL,
	[CTV_AZ_OB_EMIT] [numeric](19, 7) NULL,
	[CTV_AZ_OB_EMIT_INTER] [numeric](19, 7) NULL,
	[CTV_COMPLESSIVO] [numeric](19, 7) NULL,
	[CTV_COMPL_NOCC_NEG] [numeric](19, 7) NULL,
	[CONC_EMITTENTE] [numeric](8, 3) NULL,
	[CONC_EMIT_INTERM] [numeric](8, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Mart].[Patrimonio_Immobiliare_ProQuota]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Patrimonio_Immobiliare_ProQuota](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[Descrizione] [varchar](200) NULL,
	[Tipologia] [varchar](100) NULL,
	[Localita] [varchar](100) NULL,
	[AffittoPercepito] [decimal](15, 3) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[Totale] [decimal](15, 3) NULL,
	[TotaleAffitto] [decimal](15, 3) NULL,
	[TIPOLOGIA_DIRITTO] [varchar](100) NULL,
	[ProQuota] [decimal](15, 2) NULL,
	[VALORE_STIMATO_PROQUOTA] [decimal](15, 3) NULL,
	[TotaleProQuota] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[Patrimonio_Immobiliare_ProQuota_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[Patrimonio_Immobiliare_ProQuota_old](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[VALORE_STIMATO_PROQUOTA] [decimal](15, 3) NULL,
	[PROQUOTA] [decimal](15, 3) NULL,
	[TIPOLOGIA_DIRITTO] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PATRIMONIO_TERZI_Fc]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PATRIMONIO_TERZI_Fc](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[TIPO_POLIZZA] [varchar](30) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO2] [varchar](50) NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[FREQ_RATA] [varchar](50) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[DATA_SOTT_FP] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [int] NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[DESCR_GRUPPO_PRODOTTO] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[STRTYPE] [varchar](50) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[CHIAVE_THR] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[pezzotto]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[pezzotto](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](1) NOT NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[nob_prez] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PIRAMIDE_VERT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[PREVIDENZIALE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[PREVIDENZIALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ANNO_PENSIONE] [varchar](4) NULL,
	[ETA_PENSIONE] [int] NULL,
	[TOT_CONSUMI_ATTESI] [decimal](15, 3) NULL,
	[TOT_REDDITO_ANNUO] [decimal](15, 3) NULL,
	[REDDITO_CONSUMI_ESS] [decimal](15, 3) NULL,
	[PENSIONE_ATTESA_] [decimal](15, 3) NULL,
	[RENDITA_PREV_COMPL] [decimal](15, 3) NULL,
	[RENDITA_ASS] [decimal](15, 3) NULL,
	[REDDITO_CONSUMI_SEC] [decimal](15, 3) NULL,
	[RENDITA_ASS_TRAD] [decimal](15, 3) NULL,
	[RENDITA_ASS_UNIT] [decimal](15, 3) NULL,
	[RENDITA_IMMOB] [decimal](15, 3) NULL,
	[ALTRE_RENDITE] [decimal](15, 3) NULL,
	[DIV_RIFERIMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__PREVIDENZIALE__3F115E1A] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[RISCHIO_AGGREGATO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CREDITRISK] [int] NULL,
	[ully_perc] [decimal](10, 2) NULL,
	[CREDITRISKEMIT] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[RischioEmittenti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[RischioEmittenti](
	[Classe] [varchar](50) NULL,
	[Min] [numeric](18, 3) NULL,
	[Max] [numeric](18, 3) NULL,
	[Ordine] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[RP_ANAG_CLIENTI_FC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[RP_ANAG_CLIENTI_FC](
	[RETE] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[NOME] [varchar](80) NULL,
	[COGNOME] [varchar](153) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [int] NULL,
	[NUM_COMPONENTI] [int] NULL,
	[NUM_FIGLI] [int] NULL,
	[ETA] [numeric](18, 0) NULL,
	[PARTITA_IVA] [int] NULL,
	[CITTADINANZA] [varchar](50) NULL,
	[PERSONA_FIS_GIUR] [int] NULL,
	[INDIRIZZO] [varchar](128) NOT NULL,
	[LOCALITA] [varchar](50) NOT NULL,
	[PROVINCIA] [varchar](50) NOT NULL,
	[CAP] [varchar](6) NOT NULL,
	[NAZIONE] [varchar](50) NOT NULL,
	[PRESSO] [varchar](1) NOT NULL,
	[TEL_RECAPITO] [int] NULL,
	[TEL_CELL] [int] NULL,
	[E_MAIL] [varchar](512) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [int] NULL,
	[STATO] [int] NULL,
	[RAG_SOC] [int] NULL,
	[SESSO] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [char](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[RP_vContrattiNonGenerati_TEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[RP_vContrattiNonGenerati_TEST](
	[Rete] [char](1) NULL,
	[Cod_Agente] [char](6) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Freq_Monitoraggio] [varchar](512) NULL,
	[Freq_Diagnosi] [varchar](512) NULL,
	[TipoElaborazione] [varchar](1) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNa] [varchar](1) NULL,
	[NumRevoche] [smallint] NULL,
	[Data_Perf] [nvarchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[RP_vContrattiNonGenerati_TEST2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[RP_vContrattiNonGenerati_TEST2](
	[Rete] [char](1) NULL,
	[Cod_Agente] [char](6) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Freq_Monitoraggio] [varchar](512) NULL,
	[Freq_Diagnosi] [varchar](512) NULL,
	[TipoElaborazione] [varchar](1) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNa] [varchar](1) NULL,
	[NumRevoche] [smallint] NULL,
	[Data_Perf] [nvarchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[SPB_W6CatESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[SPB_W6CatESG](
	[PositionID] [varchar](255) NULL,
	[CatalogueID] [varchar](255) NULL,
	[Rete] [varchar](255) NULL,
	[Codice_Agente] [varchar](50) NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Piva_Fiduciaria] [varchar](11) NULL,
	[CodiceContratto] [varchar](255) NULL,
	[FamigliaProdotto] [varchar](255) NULL,
	[CodiceProdotto] [varchar](255) NULL,
	[DescrizioneProdotto] [varchar](255) NULL,
	[CodiceTitolo] [varchar](255) NULL,
	[Conto] [varchar](255) NULL,
	[Custgar] [varchar](1) NULL,
	[Asset] [varchar](255) NULL,
	[Pct] [int] NULL,
	[CodiceSottoprodotto] [varchar](255) NULL,
	[DescrizioneSottoprodotto] [varchar](255) NULL,
	[Isin] [varchar](255) NULL,
	[IsinProxy] [varchar](255) NULL,
	[TipoFondo] [varchar](255) NULL,
	[Controvalore] [decimal](18, 2) NULL,
	[Importo] [decimal](18, 8) NULL,
	[QuantitaValoreNominale] [decimal](18, 8) NULL,
	[VarComparto] [decimal](18, 8) NULL,
	[CodiceLinea] [varchar](255) NULL,
	[Sost_E] [varchar](255) NULL,
	[Sost_S] [varchar](255) NULL,
	[Sost_G] [varchar](255) NULL,
	[ClasseComplessita] [int] NULL,
	[DescrizioneClasseComplessita] [varchar](255) NULL,
	[OrizzonteTemporale] [decimal](18, 8) NULL,
	[FlagRiserva] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[SPB_W6CliESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[SPB_W6CliESG](
	[Rete] [varchar](255) NULL,
	[Codice_Agente] [varchar](50) NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Piva_Fiduciaria] [varchar](11) NULL,
	[Codman] [varchar](11) NULL,
	[BeneficioDiversificazione] [decimal](18, 8) NULL,
	[ValoreVaR] [decimal](18, 8) NULL,
	[Riserva] [decimal](18, 8) NULL,
	[PesoSostESG] [decimal](18, 8) NULL,
	[CSP] [varchar](255) NULL,
	[ConcLungoPeriodo] [decimal](18, 8) NULL,
	[Liquidita] [decimal](18, 8) NULL,
	[NoSostESG] [decimal](18, 8) NULL,
	[SostPercE] [decimal](18, 8) NULL,
	[SostPercS] [decimal](18, 8) NULL,
	[SostPercG] [decimal](18, 8) NULL,
	[SostESGInLinea] [decimal](18, 8) NULL,
	[SostPercEInLinea] [decimal](18, 8) NULL,
	[SostPercSInLinea] [decimal](18, 8) NULL,
	[SostPercGInLinea] [decimal](18, 8) NULL,
	[NoSostSFDR] [decimal](18, 8) NULL,
	[SostSFDR] [decimal](18, 8) NULL,
	[SostSFDRInLinea] [decimal](18, 8) NULL,
	[NoSostTaxonomy] [decimal](18, 8) NULL,
	[SostTaxonomy] [decimal](18, 8) NULL,
	[SostTaxonomyInLinea] [decimal](18, 8) NULL,
	[NoSostPaiE] [decimal](18, 8) NULL,
	[SostPaiE] [decimal](18, 8) NULL,
	[SostPaiEInLinea] [decimal](18, 8) NULL,
	[NoSostPaiS] [decimal](18, 8) NULL,
	[SostPaiS] [decimal](18, 8) NULL,
	[SostPaiSInLinea] [decimal](18, 8) NULL,
	[Sost_E] [varchar](8) NULL,
	[Sost_S] [varchar](8) NULL,
	[Sost_G] [varchar](8) NULL,
	[percESG] [decimal](18, 8) NULL,
	[UlterioriPrefSost] [char](1) NULL,
	[PercSFDR] [decimal](18, 8) NULL,
	[PercTaxonomy] [decimal](18, 8) NULL,
	[PAI_E] [varchar](255) NULL,
	[PAI_S] [varchar](255) NULL,
	[ListPAI_E] [varchar](max) NULL,
	[ListPAI_S] [varchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[STRUTTURA_RETE](
	[Rete] [varchar](1) NOT NULL,
	[PB] [varchar](6) NOT NULL,
	[CognomeNomePB] [varchar](64) NOT NULL,
	[SPV] [varchar](6) NOT NULL,
	[CognomeNomeSPV] [varchar](64) NOT NULL,
	[RM] [varchar](6) NOT NULL,
	[CognomeNomeRM] [varchar](64) NOT NULL,
	[DM] [varchar](6) NOT NULL,
	[CognomeNomeDM] [varchar](64) NOT NULL,
	[AM] [varchar](6) NOT NULL,
	[CognomeNomeAM] [varchar](64) NOT NULL,
	[Livello] [varchar](20) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[STRUTTURA_RETE_BkRest]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[STRUTTURA_RETE_BkRest](
	[Rete] [varchar](1) NOT NULL,
	[PB] [varchar](6) NOT NULL,
	[CognomeNomePB] [varchar](64) NOT NULL,
	[SPV] [varchar](6) NOT NULL,
	[CognomeNomeSPV] [varchar](64) NOT NULL,
	[RM] [varchar](6) NOT NULL,
	[CognomeNomeRM] [varchar](64) NOT NULL,
	[DM] [varchar](6) NOT NULL,
	[CognomeNomeDM] [varchar](64) NOT NULL,
	[AM] [varchar](6) NOT NULL,
	[CognomeNomeAM] [varchar](64) NOT NULL,
	[Livello] [varchar](20) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TabelleStoricizzate]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TabelleStoricizzate](
	[Nome] [varchar](50) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Durata] [int] NULL,
	[Vecchia_Durata] [int] NULL,
	[Storicizzata] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_Campione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_Campione](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_Campione_GB]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_Campione_GB](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_ClienticonCaratteriAnomali]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_ClienticonCaratteriAnomali](
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S148DistribuzioneAssetClass](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](32) NOT NULL,
	[ORDINAMENTO] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](38, 2) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[Totale] [decimal](19, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S178CasiParticolari_Testi]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S178CasiParticolari_Testi](
	[ID] [int] NOT NULL,
	[Descrizione] [varchar](100) NULL,
	[Testo] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S178CasiParticolari_Testi_bkp_20241129]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S178CasiParticolari_Testi_bkp_20241129](
	[ID] [int] NOT NULL,
	[Descrizione] [varchar](100) NULL,
	[Testo] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Indicatore] [varchar](100) NULL,
	[Adeguato] [int] NULL,
	[DescrizioneEsito] [varchar](500) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note](
	[Ordine] [smallint] NULL,
	[Indicatore] [varchar](100) NULL,
	[Adeguato] [varchar](5) NULL,
	[DescrizioneEsito] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note_preMUA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note_preMUA](
	[Ordine] [smallint] NULL,
	[Indicatore] [varchar](100) NULL,
	[Adeguato] [varchar](5) NULL,
	[DescrizioneEsito] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S179EmittentiConcentrazioneAlta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S179EmittentiConcentrazioneAlta](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Emittente] [varchar](250) NULL,
	[ctv] [decimal](15, 2) NULL,
	[flagAdeguatezza] [varchar](2) NULL,
	[franchigia] [decimal](15, 2) NULL,
	[percConcentrazione] [decimal](5, 2) NULL,
	[rating] [varchar](8) NULL,
	[sogliaConcentrazione] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S179EmittentiConcentrazioneAlta_preMUA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S179EmittentiConcentrazioneAlta_preMUA](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Emittente] [varchar](250) NULL,
	[ObbligazioniControvalore] [decimal](15, 2) NULL,
	[ObbligazioniConcentrazione] [decimal](5, 2) NULL,
	[AzioniControvalore] [decimal](15, 2) NULL,
	[AzioniConcentrazione] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S179EmittentiConcentrazioneAlta_TEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S179EmittentiConcentrazioneAlta_TEST](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Emittente] [varchar](250) NULL,
	[ctv] [decimal](15, 2) NULL,
	[flagAdeguatezza] [varchar](2) NULL,
	[franchigia] [decimal](15, 2) NULL,
	[percConcentrazione] [decimal](5, 2) NULL,
	[rating] [varchar](8) NULL,
	[sogliaConcentrazione] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S180ProdottiComplessitaAlta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S180ProdottiComplessitaAlta](
	[Rete] [varchar](1) NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Ordine] [int] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Controvalore] [decimal](15, 2) NULL,
	[Compl_Base] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S180ProdottiComplessitaAlta_note]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S180ProdottiComplessitaAlta_note](
	[id] [int] NULL,
	[descrizione] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S180ProdottiComplessitaAlta_note_complessita]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S180ProdottiComplessitaAlta_note_complessita](
	[id] [int] NULL,
	[descrizione] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_S180ProdottiComplessitaAlta_TEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_S180ProdottiComplessitaAlta_TEST](
	[Rete] [varchar](1) NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Ordine] [int] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Controvalore] [decimal](15, 2) NULL,
	[Compl_Base] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TB_Selettore_GetDataThreads]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TB_Selettore_GetDataThreads](
	[Reportistica] [varchar](64) NULL,
	[Note] [varchar](128) NULL,
	[Data] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[tbNotAllocatedResources]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[tbNotAllocatedResources](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[InsertDate] [datetime] NOT NULL,
 CONSTRAINT [PK_tbNotAllocatedResources] PRIMARY KEY CLUSTERED 
(
	[COD_FISCALE] ASC,
	[RETE] ASC,
	[InsertDate] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[test_logmd]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[test_logmd](
	[CMD] [varchar](100) NULL,
	[dtinsert] [datetime] NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL,
	[RIATTIVAZIONE_1] [int] NULL,
	[TIPOCONTRATTO_1] [int] NULL,
	[RIATTIVAZIONE_2] [int] NULL,
	[TIPOCONTRATTO_2] [int] NULL,
	[RIATTIVAZIONE_3] [int] NULL,
	[TIPOCONTRATTO_3] [int] NULL,
	[INVIO_3] [varchar](5) NULL,
	[note] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TEST_QUALITY]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TEST_QUALITY](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[MOTIVO] [varchar](250) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[test_Quality_Email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[test_Quality_Email](
	[data_perf] [nvarchar](10) NULL,
	[DATA_PERF_REV] [datetime] NULL,
	[rete] [char](1) NULL,
	[cod_agente] [char](6) NULL,
	[numSolleciti] [smallint] NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](255) NULL,
	[E_Cc] [varchar](500) NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](5000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TestEmail_Fc]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TestEmail_Fc](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TestEmailAnd]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TestEmailAnd](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TESTO_LETTERA_ACCETTAZIONE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TESTO_LETTERA_ACCETTAZIONE](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2100) NOT NULL,
	[OGGETTO] [varchar](300) NULL,
	[FIRMA] [varchar](200) NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TESTO_LETTERA_ACCETTAZIONE.obs]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TESTO_LETTERA_ACCETTAZIONE.obs](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2000) NOT NULL,
	[OGGETTO] [varchar](300) NULL,
	[FIRMA] [varchar](200) NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[testo_lettera_Accettazione_Rosaspina]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[testo_lettera_Accettazione_Rosaspina](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NULL,
	[OGGETTO] [varchar](300) NULL,
	[FIRMA] [varchar](200) NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_BKP_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_BKP_20240412](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NULL,
	[OGGETTO] [varchar](300) NULL,
	[FIRMA] [varchar](200) NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_BKP_20240422]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_BKP_20240422](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NULL,
	[OGGETTO] [varchar](300) NULL,
	[FIRMA] [varchar](200) NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[testo_lettera_Accettazione_Rosaspina_bkp_20241129]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[testo_lettera_Accettazione_Rosaspina_bkp_20241129](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NULL,
	[OGGETTO] [varchar](300) NULL,
	[FIRMA] [varchar](200) NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL.prev]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL.prev](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL,
 CONSTRAINT [PK__Tipo_Email__000AF8CF] PRIMARY KEY CLUSTERED 
(
	[Tipo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL_20240412](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL_bk]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL_bk](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](150) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL_bkp_20240527]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL_bkp_20240527](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL_BKP_20240531]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL_BKP_20240531](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL_pre_direct]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL_pre_direct](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[TIPO_EMAIL_pre_Fideuram_Direct]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[TIPO_EMAIL_pre_Fideuram_Direct](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](90) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](300) NULL,
	[Testo] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[VCONTRATTI_ST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[VCONTRATTI_ST](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[VCONTRATTI_TEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[VCONTRATTI_TEST](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[vContrattiC6_BKP_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[vContrattiC6_BKP_20240412](
	[chiaveClientePB] [bigint] NOT NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [varchar](6) NULL,
	[rete] [varchar](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [date] NULL,
	[DATA_PERF] [date] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NOT NULL,
	[RIATTIVAZIONE] [int] NOT NULL,
	[TipoConsulenza] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[W6CATESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[W6CATESG](
	[dttrim] [date] NOT NULL,
	[banca] [varchar](5) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codman] [varchar](50) NULL,
	[esg_e_prod_cli] [varchar](50) NULL,
	[esg_s_prod_cli] [varchar](50) NULL,
	[esg_g_prod_cli] [varchar](50) NULL,
	[prodotto_id] [nvarchar](256) NULL,
	[position_id] [nvarchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[W6CLIESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[W6CLIESG](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[CODMAN] [varchar](6) NULL,
	[U_PREFSOST] [varchar](1) NULL,
	[FLAGSFDR] [varchar](1) NULL,
	[FLAGTAXO] [varchar](1) NULL,
	[FLAGPAI] [varchar](1) NULL,
	[SFDR_PERC] [decimal](5, 2) NULL,
	[TAXO_PERC] [decimal](5, 2) NULL,
	[PAI_A01] [varchar](1) NULL,
	[PAI_A02] [varchar](1) NULL,
	[PAI_A03] [varchar](1) NULL,
	[PAI_A04] [varchar](1) NULL,
	[PAI_A05] [varchar](1) NULL,
	[PAI_A07] [varchar](1) NULL,
	[PAI_A08] [varchar](1) NULL,
	[PAI_S01] [varchar](1) NULL,
	[PAI_S02] [varchar](1) NULL,
	[PAI_A1] [varchar](100) NULL,
	[PAI_A2] [varchar](100) NULL,
	[PAI_A3] [varchar](100) NULL,
	[PAI_A4] [varchar](100) NULL,
	[PAI_A5] [varchar](100) NULL,
	[PAI_A7] [varchar](100) NULL,
	[PAI_A8] [varchar](100) NULL,
	[PAI_S1] [varchar](100) NULL,
	[PAI_S2] [varchar](100) NULL,
	[PAI_A] [varchar](150) NULL,
	[PAI_S] [varchar](150) NULL,
	[PAI_NO_DETT] [varchar](1) NULL,
	[PERC1ESG] [decimal](5, 2) NULL,
	[PERCAMB] [decimal](5, 2) NULL,
	[PERCSOC] [decimal](5, 2) NULL,
	[PERCGOV] [decimal](5, 2) NULL,
	[PERCAMB_OK] [decimal](5, 2) NULL,
	[PERCSOC_OK] [decimal](5, 2) NULL,
	[PERCGOV_OK] [decimal](5, 2) NULL,
	[SFDR_PERCT] [decimal](5, 2) NULL,
	[SFDR_PERC_OK] [decimal](5, 2) NULL,
	[TAXO_PERCT] [decimal](5, 2) NULL,
	[TAXO_PERC_OK] [decimal](5, 2) NULL,
	[PAIA_PERCT] [decimal](5, 2) NULL,
	[PAIA_PERC_OK] [decimal](5, 2) NULL,
	[PAIS_PERCT] [decimal](5, 2) NULL,
	[PAIS_PERC_OK] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[W6DAILY_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[W6DAILY_20240412](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[WSEICAP]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[WSEICAP](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NULL,
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [char](16) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NULL,
	[DTINIZ] [decimal](9, 0) NULL,
	[DTFINE] [decimal](9, 0) NULL,
	[CTV_COMMIT] [decimal](15, 3) NULL,
	[IMPVERS] [decimal](15, 3) NULL,
	[IMPRES] [decimal](15, 3) NULL,
	[DESCPROD] [varchar](128) NULL,
	[SGR] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[zzzgestione_email]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[zzzgestione_email](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Mart].[ZZZtold]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Mart].[ZZZtold](
	[chiaveClientePB] [int] NOT NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [varchar](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NOT NULL,
	[RIATTIVAZIONE] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ALL_PATRIMONIO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ALL_PATRIMONIO](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[CATALOGUEID] [varchar](128) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COMPLESSITA] [varchar](18) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[PATRIMONIO_INTERMEDIARIO] [numeric](19, 7) NULL,
	[EMITTENTE] [varchar](512) NULL,
	[PATRIMONIO_EMITTENTE] [numeric](19, 7) NULL,
	[TIPO_PRODOTTO] [varchar](128) NULL,
	[CONTROVALORE_PRODOTTO] [numeric](19, 7) NULL,
	[AZ_OB] [varchar](2) NULL,
	[PATRIMONIO_AZ_OB_EMIT] [numeric](19, 7) NULL,
	[PATRIM_AZ_OB_EMIT_INTER] [numeric](19, 7) NULL,
	[PATRIMONIO_COMPLESSIVO] [numeric](19, 7) NULL,
	[CHIAVE_THR] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_CAMBIO_RETE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_CAMBIO_RETE](
	[DTCHRETE] [datetime] NULL,
	[COGNOME] [varchar](50) NULL,
	[RETE_C] [varchar](1) NOT NULL,
	[RETE_R] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODAGE_C] [varchar](6) NOT NULL,
	[CODAGE_R] [varchar](6) NOT NULL,
	[FLAG_ELAB] [varchar](1) NOT NULL,
	[DT_ELAB] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_CC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_CC](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](12) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDOCONTABILE] [decimal](15, 3) NULL,
	[SALDODISPONIBILE] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_CC] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_CC] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_CC_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](128) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDO] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_CLIENTI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME] [varchar](50) NULL,
	[COGNOME] [varchar](50) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [varchar](20) NULL,
	[NUM_COMPONENTI] [smallint] NULL,
	[NUM_FIGLI] [smallint] NULL,
	[ETA] [smallint] NULL,
	[PARTITA_IVA] [varchar](20) NULL,
	[CITTADINANZA] [varchar](20) NULL,
	[PERSONA_FIS_GIUR] [varchar](20) NULL,
	[INDIRIZZO] [varchar](150) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](50) NULL,
	[PRESSO] [varchar](32) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[STATO] [varchar](20) NULL,
	[RAG_SOC] [varchar](20) NULL,
	[SESSO] [varchar](1) NULL,
	[ID_PROMOTORE] [varchar](6) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__ANAG_CLIENTI__245D67DE] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_CLIENTI_PREV](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[STATO_LAVORATIVO] [varchar](20) NULL,
	[PROFESSIONE] [varchar](30) NULL,
	[CAT_PROFESSIONALE] [varchar](30) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[RETRIB_LORDA] [decimal](15, 3) NULL,
	[PROFESSIONE_SEC] [varchar](30) NULL,
	[CAT_PROFESSIONALE_SEC] [varchar](30) NULL,
	[DATA_INIZIO_SEC] [datetime] NULL,
	[DATA_FINE_SEC] [datetime] NULL,
	[RETRIB_LORDA_SEC] [decimal](15, 3) NULL,
	[PROFESSIONE_PREC] [varchar](30) NULL,
	[CAT_PROFESSIONALE_PREC] [varchar](30) NULL,
	[DATA_INIZIO_PREC] [datetime] NULL,
	[DATA_FINE_PREC] [datetime] NULL,
	[RETRIB_LORDA_PREC] [decimal](15, 3) NULL,
	[RICONGIUNZIONE] [varchar](100) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__ANAG_CLIENTI_PRE__6F556E19] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_EXCEL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_EXCEL](
	[RETE] [varchar](50) NULL,
	[CODFIS] [varchar](50) NULL,
	[DTAVMON] [varchar](500) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_excel_appoggio]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_excel_appoggio](
	[cf2] [varchar](600) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_excel_txt_differenze]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_excel_txt_differenze](
	[cf] [varchar](600) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_excel_txt_differenze_appoggio]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_excel_txt_differenze_appoggio](
	[rete] [varchar](1) NULL,
	[cf] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_excel_txt_differenze_finale]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_excel_txt_differenze_finale](
	[cf] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_TXT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_TXT](
	[cf] [varchar](150) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_txt_appoggio]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_txt_appoggio](
	[cf] [varchar](25) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_prelievi_txt2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_prelievi_txt2](
	[cf] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[DIVISA] [varchar](3) NOT NULL,
	[PESO] [decimal](6, 3) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_ANAG_PRODOTTI_VALUTE] PRIMARY KEY CLUSTERED 
(
	[COD_PRODOTTO] ASC,
	[DIVISA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_promotori_bck]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_promotori_bck](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[PARTITA_IVA] [varchar](11) NULL,
	[COGNOME] [varchar](128) NULL,
	[NOME] [varchar](128) NULL,
	[RAG_SOC] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[LOCALITA] [varchar](50) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[COD_ABI] [varchar](5) NULL,
	[COD_CAB] [varchar](5) NULL,
	[COD_CIN] [varchar](1) NULL,
	[COD_CC] [varchar](12) NULL,
	[STATO] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ANAG_SELF]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ANAG_SELF](
	[Rete] [char](1) NULL,
	[CodFis] [char](16) NULL,
	[CodConf] [char](11) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Ctv] [decimal](15, 2) NULL,
	[DataSott] [decimal](9, 0) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodSottoprodotto] [varchar](5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[anag_self_bkp]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[anag_self_bkp](
	[Rete] [char](1) NULL,
	[CodFis] [char](16) NULL,
	[CodConf] [char](11) NULL,
	[Ctv] [decimal](15, 2) NULL,
	[DataSott] [decimal](9, 0) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[APPO_ADDRESS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[APPO_ADDRESS](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODICECONTRATTO] [varchar](11) NOT NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[PRESSO] [varchar](50) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROV] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[appo_selezione_campione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[appo_selezione_campione](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](255) NOT NULL,
	[c1] [int] NOT NULL,
	[c2] [int] NOT NULL,
	[c3] [int] NOT NULL,
	[c4] [int] NOT NULL,
	[c5] [int] NOT NULL,
	[c6] [int] NOT NULL,
	[c7] [int] NOT NULL,
	[c8] [int] NOT NULL,
	[c9] [int] NOT NULL,
	[c10] [int] NOT NULL,
	[c11] [int] NOT NULL,
	[c12] [int] NOT NULL,
	[c13] [int] NOT NULL,
	[c14] [int] NOT NULL,
	[c15] [int] NOT NULL,
	[c16] [int] NOT NULL,
	[c17] [int] NOT NULL,
	[c18] [int] NOT NULL,
	[c19] [int] NOT NULL,
	[c20] [int] NOT NULL,
	[c21] [int] NOT NULL,
	[c22] [int] NOT NULL,
	[c23] [int] NOT NULL,
	[c24] [int] NOT NULL,
	[c25] [int] NOT NULL,
	[c26] [int] NOT NULL,
	[c27] [int] NOT NULL,
	[c28] [int] NOT NULL,
	[c29] [int] NOT NULL,
	[c30] [int] NOT NULL,
	[c31] [int] NULL,
	[c32] [int] NULL,
	[c33] [int] NULL,
	[c34] [int] NULL,
	[c35] [int] NULL,
	[c36] [int] NULL,
	[c37] [int] NULL,
	[c38] [int] NULL,
	[c39] [int] NULL,
	[c40] [int] NULL,
	[c41] [int] NULL,
	[c42] [int] NULL,
	[c43] [int] NULL,
	[c44] [int] NULL,
	[c45] [int] NULL,
	[c46] [int] NULL,
	[c47] [int] NULL,
	[c48] [int] NULL,
	[c49] [int] NULL,
	[c50] [int] NULL,
	[c51] [int] NULL,
	[c52] [int] NULL,
	[c53] [int] NULL,
	[c54] [int] NULL,
	[c55] [int] NULL,
	[c56] [int] NULL,
	[c57] [int] NULL,
	[c58] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[APPREND_DTSX_Tabellone]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[APPREND_DTSX_Tabellone](
	[ChiaveClientePB] [int] NOT NULL,
	[Rete] [char](1) NULL,
	[Chiave_ACN] [varchar](16) NULL,
	[Tipo_Cliente] [varchar](15) NOT NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Partita_Iva] [varchar](16) NULL,
	[Codice_Mandato] [varchar](6) NULL,
	[Codice_Contratto] [varchar](11) NOT NULL,
	[Nome_Cliente] [varchar](50) NOT NULL,
	[Cognome_Cliente] [varchar](150) NOT NULL,
	[Data_Nascita_Cliente] [datetime] NOT NULL,
	[Indirizzo] [varchar](512) NULL,
	[Cap] [varchar](512) NOT NULL,
	[Citta] [varchar](512) NULL,
	[Provincia] [varchar](512) NULL,
	[Nazione] [varchar](512) NULL,
	[Agente] [char](6) NULL,
	[Nome_Agente] [varchar](128) NULL,
	[Cognome_Agente] [varchar](128) NULL,
	[Report_Monitoraggio] [varchar](2) NOT NULL,
	[Report_Diagnosi] [varchar](2) NOT NULL,
	[Data_Revoca] [datetime] NULL,
	[Flag_Private] [varchar](2) NOT NULL,
	[Flag_Professionale] [varchar](2) NOT NULL,
	[Data_Lettera_Benvenuto] [datetime] NULL,
	[Campione_SEI] [varchar](2) NOT NULL,
	[Campione_DA] [varchar](2) NOT NULL,
	[Lettera_Sostitutiva] [varchar](2) NOT NULL,
	[Blacklist_Temporanea] [varchar](2) NOT NULL,
	[Motivazione_Blacklist] [varchar](8000) NOT NULL,
	[Nome_PDF_Monitoraggio] [varchar](50) NOT NULL,
	[Nome_PDF_Diagnosi] [varchar](53) NOT NULL,
	[Nome_Zip] [varchar](331) NOT NULL,
	[Rol] [varchar](512) NOT NULL,
	[Preferenza_ESG] [varchar](2) NOT NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_esg_minimo] [decimal](6, 3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[Codice_Profilo] [smallint] NULL,
	[Codice_Profilo_EC] [decimal](5, 0) NULL,
	[Rischio] [varchar](1) NOT NULL,
	[Riserva] [char](1) NULL,
	[Investimento_Di_Lungo_Periodo] [char](1) NULL,
	[Complessita] [char](1) NULL,
	[Concentrazione_di_prodotti_complessi] [char](1) NULL,
	[Frequenza_delle_operazioni] [char](1) NULL,
	[Concentrazione_Emittenti] [char](1) NULL,
	[Persona_Giuridica] [decimal](1, 0) NULL,
	[Concentrazione_Valutaria] [char](1) NULL,
	[Esito_di_Coerenza] [char](1) NULL,
	[FLAGNQP] [char](1) NULL,
	[Flag_Privo_di_Legali_Rappresentanti_Delegati_Profilati] [char](1) NULL,
	[Soglia_ESG] [decimal](5, 2) NULL,
	[Max_Complessita_Prodotto] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[Spesa_Forzata] [decimal](13, 2) NULL,
	[Percentuale_Investimento_di_lungo_periodo] [decimal](5, 2) NULL,
	[Importo_Riserva] [decimal](13, 2) NULL,
	[Immobiliare] [varchar](2) NOT NULL,
	[Solo_Immobiliare] [varchar](2) NOT NULL,
	[VaR_Portafoglio] [decimal](13, 2) NULL,
	[RFA] [decimal](38, 3) NULL,
	[Tipo_Scaduto] [varchar](8) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[AREA_BISOGNO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[AREA_BISOGNO](
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_AREA] [varchar](30) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__AREA_BISOGNO__09A971A2] PRIMARY KEY CLUSTERED 
(
	[ID_AREA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ASSETCLASS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ASSETCLASS](
	[ID_ASSETCLASS] [varchar](20) NOT NULL,
	[DESCRIZIONE] [varchar](128) NULL,
	[LIVELLO] [int] NULL,
	[ORDINAMENTO] [int] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK_ASSETCLASS] PRIMARY KEY CLUSTERED 
(
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[AssetClassPrometeia]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[AssetClassPrometeia](
	[codIsin] [varchar](18) NULL,
	[codMaf] [varchar](18) NULL,
	[codAdeguatezza] [varchar](18) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Audit_RfaRendimenti_AreeProgetti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Audit_RfaRendimenti_AreeProgetti](
	[Data estrazione] [datetime] NULL,
	[Codice Pb] [varchar](6) NULL,
	[Rete] [varchar](1) NULL,
	[Codice Fiscale] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[Mandato] [varchar](6) NULL,
	[Area] [varchar](20) NULL,
	[Nome Progetto] [varchar](40) NULL,
	[RFA Area/Progetto] [decimal](15, 3) NULL,
	[Rendimento cumulato Area/Progetto] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Audit_RfaTot_AreeBisogno]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Audit_RfaTot_AreeBisogno](
	[Data estrazione] [datetime] NULL,
	[Codice Pb] [varchar](6) NULL,
	[Rete] [varchar](1) NULL,
	[Codice Fiscale] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[Mandato] [varchar](6) NULL,
	[Rfa Totale] [decimal](15, 3) NULL,
	[Extra Rendimento] [decimal](15, 3) NULL,
	[Investimento] [decimal](15, 3) NULL,
	[Previdenza] [decimal](15, 3) NULL,
	[Riserva] [decimal](15, 3) NULL,
	[Liquidità] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Benvenuto_Scarti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Benvenuto_Scarti](
	[rete] [varchar](2) NULL,
	[cod_agente] [varchar](10) NULL,
	[Codice_Fiscale] [varchar](32) NULL,
	[Codice_Contratto] [varchar](16) NULL,
	[tipologia_cliente] [varchar](10) NULL,
	[motivazione] [varchar](512) NULL,
	[data_inserimento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[bkUp_flagdefiniticoRepMetaDati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[bkUp_flagdefiniticoRepMetaDati](
	[id] [int] NOT NULL,
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[BONUS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[BONUS](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[CTV] [numeric](15, 2) NULL,
	[DT_TRIM] [datetime] NULL,
	[BONUS_M] [numeric](15, 2) NULL,
	[DTDEC_M] [datetime] NULL,
	[BONUS_5] [numeric](15, 2) NULL,
	[DTDEC_5] [datetime] NULL,
	[BONUS_10] [numeric](15, 2) NULL,
	[DTDEC_10] [datetime] NULL,
	[COD_CONF] [varchar](11) NULL,
	[COD_PROD] [varchar](2) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6MartPeriodico].[BrsClienteESG]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[BrsClienteESG](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[brsinddiv]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[brsinddiv](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](22) NOT NULL,
	[indicatore] [float] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[brsvarallaggr]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[brsvarallaggr](
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NULL,
	[portafoglio] [varchar](8000) NULL,
	[VaRAssolutoDiPortafoglio] [float] NULL,
	[VARPERCENTUIALEDIPORTAFOGLIO] [float] NULL,
	[CVARASSOLUTODIPORTAFOGLIO] [float] NULL,
	[CVARPERCENTUALEDIPORTAFOGLIO] [float] NULL,
	[risksize] [float] NULL,
	[mcvar] [float] NULL,
	[mcvarp] [float] NULL,
	[BENEFICIO] [float] NULL,
	[copertura] [float] NULL,
	[totale] [float] NULL,
	[clsint] [int] NOT NULL,
	[mdclcclsint] [varchar](3) NOT NULL,
	[clsr] [int] NOT NULL,
	[cicontroparte] [int] NOT NULL,
	[cltipo] [int] NOT NULL,
	[clmercato] [int] NOT NULL,
	[clliquidita] [int] NOT NULL,
	[isr] [int] NOT NULL,
	[indmercato] [int] NOT NULL,
	[indcontroparte] [int] NOT NULL,
	[indliquidita] [int] NOT NULL,
	[ully] [int] NOT NULL,
	[ully_perc] [int] NOT NULL,
	[elly_perc] [int] NOT NULL,
	[crc] [int] NOT NULL,
	[rctot] [int] NOT NULL,
	[ully_perc_rc] [int] NOT NULL,
	[ullyperc_se] [int] NOT NULL,
	[totale_coperto] [float] NULL,
	[coperturaproxyrc] [int] NOT NULL,
	[numtit] [int] NOT NULL,
	[numtitrc] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[C6MartPeriodico.controllo_trimestrale_20241028_preZip_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[C6MartPeriodico.controllo_trimestrale_20241028_preZip_old](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[C6MartPeriodico.cruscotto_contrattisei_20241028_preZip_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[C6MartPeriodico.cruscotto_contrattisei_20241028_preZip_old](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[C6MartPeriodico.elaborazioni_zip_20241028_preZip_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[C6MartPeriodico.elaborazioni_zip_20241028_preZip_old](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[C6MartPeriodico.gestione_pdf_ftp_20241028_preZip_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[C6MartPeriodico.gestione_pdf_ftp_20241028_preZip_old](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[C6MartPeriodico.gestione_zip_ftp_20241028_preZip_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[C6MartPeriodico.gestione_zip_ftp_20241028_preZip_old](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CampioneTestOttimizzazione]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CampioneTestOttimizzazione](
	[Rete] [varchar](1) NULL,
	[CF] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CAPPROT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CAPPROT](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DES_PROD] [varchar](128) NULL,
	[COD_CONF] [varchar](11) NOT NULL,
	[QUOTA] [decimal](15, 3) NULL,
	[NUMEROQUOTE] [decimal](15, 3) NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[DATARIF] [datetime] NOT NULL,
	[DES_MAX] [varchar](50) NOT NULL,
	[QUOTA_MAX] [decimal](15, 3) NULL,
	[QUOTA_MAX_PERC] [int] NOT NULL,
	[DATARIF_MAX] [datetime] NULL,
	[DES_PROT] [varchar](50) NOT NULL,
	[QUOTA_PROT] [decimal](15, 3) NULL,
	[NUMEROQUOTE_PROT] [decimal](15, 3) NULL,
	[CONTROVALORE_PROT] [decimal](15, 2) NULL,
	[DES_PROD_TIT] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[capprot_bkp]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[capprot_bkp](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DES_PROD] [varchar](128) NULL,
	[COD_CONF] [varchar](11) NOT NULL,
	[QUOTA] [decimal](15, 5) NULL,
	[NUMEROQUOTE] [decimal](15, 5) NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[DATARIF] [datetime] NOT NULL,
	[DES_MAX] [varchar](50) NOT NULL,
	[QUOTA_MAX] [decimal](15, 3) NULL,
	[QUOTA_MAX_PERC] [int] NOT NULL,
	[DATARIF_MAX] [datetime] NULL,
	[DES_PROT] [varchar](50) NOT NULL,
	[QUOTA_PROT] [decimal](15, 3) NULL,
	[NUMEROQUOTE_PROT] [decimal](15, 5) NULL,
	[CONTROVALORE_PROT] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CAPPROT_FVI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CAPPROT_FVI](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NULL,
	[DES_PROD] [varchar](128) NULL,
	[COD_CONF] [varchar](11) NOT NULL,
	[CONTROVALORE_RIFERIMENTO] [decimal](15, 2) NULL,
	[COMPONENTE_PERFORMANCE] [decimal](15, 2) NULL,
	[COMPONENTE_PROTEZIONE] [decimal](15, 2) NULL,
	[DES_PROT] [varchar](50) NOT NULL,
	[CONTROVALORE_PROT] [decimal](15, 2) NULL,
	[DATARIF] [datetime] NOT NULL,
	[DES_PROD_TIT] [varchar](128) NULL,
	[somma_ctv] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[catalogoprodotti2804]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[catalogoprodotti2804](
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[TipoVersamento] [int] NULL,
	[RischioPrSc] [int] NULL,
	[StatoProdotto] [int] NULL,
	[TipoPolizza] [varchar](20) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Visibilita] [bit] NOT NULL,
	[PrezzoInEuro] [numeric](13, 5) NULL,
	[Alberatura] [int] NOT NULL,
	[DtScadenza] [datetime] NULL,
	[Categoria] [int] NULL,
	[Istituto] [int] NULL,
	[Piazza] [varchar](128) NULL,
	[PrezzoInValuta] [numeric](13, 5) NULL,
	[PrezzoValuta] [varchar](3) NULL,
	[Codiceadb] [varchar](18) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[RatingObbligazioni] [varchar](128) NULL,
	[RischioMinimo] [int] NULL,
	[CapRisparmio] [int] NULL,
	[CapMinimo] [numeric](13, 5) NULL,
	[CapMinimoValuta] [varchar](3) NULL,
	[CapMinSucc] [numeric](13, 5) NULL,
	[CapMinSuccValuta] [varchar](3) NULL,
	[MinRispContr] [numeric](13, 5) NULL,
	[MinRispContrValuta] [varchar](3) NULL,
	[SuccRispContr] [numeric](13, 5) NULL,
	[SuccRispContrValuta] [varchar](3) NULL,
	[MinComm] [numeric](13, 5) NULL,
	[MinCommValuta] [varchar](3) NULL,
	[DelegaGestionale] [varchar](128) NULL,
	[TipologiaPerPick] [int] NULL,
	[RischioPrezzo] [int] NULL,
	[RegimeFiscale] [int] NULL,
	[Quotato] [int] NULL,
	[ClasseDiPrezzo] [varchar](10) NULL,
	[Lineefinacc] [varchar](128) NULL,
	[DurataContrattuale] [varchar](50) NULL,
	[RiscFinFaseAcc] [varchar](10) NULL,
	[OpzRendVital] [bit] NULL,
	[MetaA] [varchar](128) NULL,
	[MetaB] [varchar](128) NULL,
	[MetaC] [varchar](128) NULL,
	[DtRifPrezzo] [datetime] NULL,
	[CodTipoContratto] [varchar](128) NULL,
	[PrezzoNetto] [numeric](13, 5) NULL,
	[PrezzoNettoValuta] [varchar](3) NULL,
	[DtPrezzoNetto] [datetime] NULL,
	[CodBloomberg] [varchar](128) NULL,
	[DenomUnitLink] [varchar](128) NULL,
	[DtInizioValidita] [datetime] NULL,
	[Negoziabilita] [bit] NULL,
	[TassoTecnico] [numeric](13, 5) NULL,
	[TassoTecnicoValuta] [varchar](3) NULL,
	[CollSkandia] [bit] NULL,
	[CodAssetSatellite] [varchar](20) NULL,
	[Mercato] [varchar](3) NULL,
	[AzOb] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[Emittente] [varchar](13) NULL,
	[GaranziaDemografica] [int] NULL,
	[SocietaDiGestione] [int] NULL,
	[IndPrz] [varchar](1) NULL,
	[Differimento] [int] NULL,
	[DtPrezzo] [datetime] NULL,
	[TipoObbligazione] [varchar](50) NULL,
	[TaglioMinimo] [numeric](19, 6) NULL,
	[IsAttivoRc] [int] NULL,
	[RischioCredito] [varchar](20) NULL,
	[Copertura] [numeric](5, 2) NULL,
	[VarP] [numeric](19, 16) NULL,
	[Diversificazione] [numeric](19, 16) NULL,
	[FlagCoreSatellite] [int] NULL,
	[PerimetroCoreSatellite] [int] NULL,
	[FondoCore] [int] NULL,
	[ValutaProdotto] [varchar](3) NULL,
	[ControlliCategoria] [int] NULL,
	[percMax] [numeric](18, 2) NULL,
	[sottoprodottoSelf] [varchar](5) NULL,
	[distrprov] [int] NULL,
	[CatAssoGestioniFondi] [varchar](50) NULL,
	[moltiplicatore] [numeric](5, 2) NULL,
	[codTassoObbligazioni] [int] NULL,
	[codUlla] [varchar](6) NULL,
	[dtEmissione] [datetime] NULL,
	[tassoCedola] [numeric](18, 2) NULL,
	[valoreTMD] [int] NULL,
	[divisaEmissione] [varchar](3) NULL,
	[divisaTrattazione] [varchar](3) NULL,
	[MultipliSuccessivi] [varchar](20) NULL,
	[SavingMap] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CFTEST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CFTEST](
	[CFR] [varchar](17) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[clienti_allegato_selettivo]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[clienti_allegato_selettivo](
	[rete] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[clienti_brochure]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[clienti_brochure](
	[rete] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[clienti_brochure_backup]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[clienti_brochure_backup](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[clienti_brochure_bkp_20240507]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[clienti_brochure_bkp_20240507](
	[rete] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CLIENTI_CON_RNA_ALTO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CLIENTI_CON_RNA_ALTO](
	[Rete] [varchar](1) NULL,
	[CodicePB] [varchar](6) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Percentuale] [numeric](19, 3) NULL,
	[DataCalcolo] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CLIENTI_RISORSE_NA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CLIENTI_RISORSE_NA](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[CTV] [decimal](15, 3) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[CHIAVE_PROGETTO] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CODICI_PROMOTORI_FITTIZI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CODICI_PROMOTORI_FITTIZI](
	[Rete] [varchar](1) NOT NULL,
	[CodiceDA] [varchar](6) NOT NULL,
	[CodiceA] [varchar](6) NOT NULL,
 CONSTRAINT [PK_CODICI_PROMOTORI_FITTIZI_1] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[CodiceDA] ASC,
	[CodiceA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CODIFICA_CREDITRISK]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CODIFICA_CREDITRISK](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAL] [decimal](5, 2) NULL,
	[MAX_VAL] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CODIFICA_RISCHIO](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAR] [decimal](5, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__CODIFICA_RISCHIO__0F624AF8] PRIMARY KEY CLUSTERED 
(
	[PROFILO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CODIFICA_RISCHIO_BKP_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CODIFICA_RISCHIO_BKP_PRE_RAFFORZAMENTO](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAR] [decimal](5, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[COMPLESSITA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[COMPLESSITA](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COMPLESSITA] [char](4) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONFRONTO_RISCHIO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONFRONTO_RISCHIO](
	[Rete] [varchar](1) NULL,
	[Codfis] [varchar](64) NULL,
	[Piva] [varchar](64) NULL,
	[Codman] [varchar](64) NULL,
	[Chiave_acn] [varchar](64) NULL,
	[Rischio_Adeguatezza] [numeric](24, 9) NULL,
	[Rischio_IL] [decimal](12, 3) NULL,
	[Dif_rischio] [numeric](25, 9) NULL,
	[Val_Tol_Scarto] [numeric](30, 11) NULL,
	[Confronto_Ind_Rischio] [varchar](2) NOT NULL,
	[Flag_Rischio_Adeguatezza] [varchar](64) NULL,
	[Flag_Rischio_IL] [varchar](2) NULL,
	[Confronto_Flag_Ind_Rischio] [varchar](2) NOT NULL,
	[Perc_Var_KO] [decimal](5, 2) NULL,
	[Perc_Ind_Adeg_KO] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ConfrontoSelecta_PDFInviati]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ConfrontoSelecta_PDFInviati](
	[CodiceContratto] [varchar](12) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_fiscale] [varchar](16) NOT NULL,
	[TipoReport] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONGELAMENTO_SEI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONGELAMENTO_SEI](
	[DATA_CONGELAMENTO] [datetime] NOT NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK_CONGELAMENTO_SEI] PRIMARY KEY CLUSTERED 
(
	[DATA_CONGELAMENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONO_PIANIFICAZIONE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONO_PIANIFICAZIONE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_CONO] [datetime] NOT NULL,
	[SCENARIO_PESSIMISTICO] [decimal](19, 7) NULL,
	[SCENARIO_MEDIO] [decimal](19, 7) NULL,
	[SCENARIO_OTTIMISTICO] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL,
	[ordinamento_progetto] [int] NOT NULL,
 CONSTRAINT [PK_CONO_PIANIFICAZIONE] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[ID_AREA] ASC,
	[NOME_PROGETTO] ASC,
	[DATA_CONO] ASC,
	[ordinamento_progetto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONO_PIANIFICAZIONE_LL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONO_PIANIFICAZIONE_LL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_CONO] [datetime] NOT NULL,
	[SCENARIO_PESSIMISTICO] [decimal](19, 7) NULL,
	[SCENARIO_MEDIO] [decimal](19, 7) NULL,
	[SCENARIO_OTTIMISTICO] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL,
	[ordinamento_progetto] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONS_ATTIVAGGIORNATA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONS_ATTIVAGGIORNATA](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[ID_AREA] [varchar](512) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[PERC_AREA] [numeric](19, 0) NULL,
	[CTV_PROGETTO] [numeric](19, 7) NULL,
	[CTV_AREA] [numeric](19, 7) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[CTV_TOTALE] [int] NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [int] NULL,
	[ORDINAMENTO_PROGETTO] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONS_ATTIVAGGIORNATA_1407LVE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONS_ATTIVAGGIORNATA_1407LVE](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[ID_AREA] [varchar](512) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[PERC_AREA] [numeric](19, 0) NULL,
	[CTV_PROGETTO] [numeric](19, 7) NULL,
	[CTV_AREA] [numeric](19, 7) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[CTV_TOTALE] [int] NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [int] NULL,
	[ORDINAMENTO_PROGETTO] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONS_ATTIVAGGIORNATA_FC]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONS_ATTIVAGGIORNATA_FC](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[ID_AREA] [varchar](512) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[PERC_AREA] [numeric](19, 0) NULL,
	[CTV_PROGETTO] [numeric](19, 7) NULL,
	[CTV_AREA] [numeric](19, 7) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[CTV_TOTALE] [int] NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [int] NULL,
	[ORDINAMENTO_PROGETTO] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONTRATTOSEI_METADATI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONTRATTOSEI_METADATI](
	[CHIAVECLIENTEPB] [int] NOT NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240206_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240206_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240212_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240214_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240228_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240228_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240424_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240424_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240429_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240429_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240508_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240508_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240509_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240509_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240510_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240510_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240730_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240730_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240803_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240803_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240806_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240806_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20240807_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20240807_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20241028_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20241028_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20241031_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20241031_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20241106_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20241106_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250204_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250204_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250212_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250214_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250507_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250507_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250514_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250514_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250514o_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250514o_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_20250519_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_20250519_preZip](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[controllo_trimestrale_OBS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[controllo_trimestrale_OBS](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO](
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CONTROLLO_TRIMESTRALE_RFA_ZERO]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CONTROLLO_TRIMESTRALE_RFA_ZERO](
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240206_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240206_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240212_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240214_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240228_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240228_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240424_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240424_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240429_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240429_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240508_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240508_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240509_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240509_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240510_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240510_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240730_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240730_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240803_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240803_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240806_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240806_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20240807_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20240807_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20241028_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20241028_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20241031_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20241031_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20241106_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20241106_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250204_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250204_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250212_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250214_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250507_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250507_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250514_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250514_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250514o_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250514o_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_20250519_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_20250519_preZip](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[cruscotto_contrattisei_OBS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[cruscotto_contrattisei_OBS](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[DTSTAMP] [datetime] NOT NULL,
	[ERRORMESSAGE] [text] NULL,
PRIMARY KEY CLUSTERED 
(
	[CODICEFISCALE] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CRUSCOTTOSWITCH]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CRUSCOTTOSWITCH](
	[DTSTAMP] [datetime] NOT NULL,
	[ELAB] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[CruscottoTrimestrale_GestioneEmail]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[CruscottoTrimestrale_GestioneEmail](
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](1) NOT NULL,
	[E_Cc] [varchar](1) NOT NULL,
	[E_Subject] [varchar](8000) NULL,
	[E_Allegato] [varchar](1000) NULL,
	[Testo] [varchar](8000) NULL,
	[Param_Ext] [varchar](5000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[DATI_REPORT]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[DATI_REPORT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INDIRIZZO] [varchar](30) NULL,
	[LOCALITA] [varchar](30) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[FLAG_REPORT] [varchar](1) NULL,
	[REPORT_DIAGN] [varchar](1) NULL,
	[REPORT_MONIT] [varchar](1) NULL,
	[DATA_REPORT] [datetime] NULL,
	[REPORT_FREQ] [varchar](1) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__DATI_REPORT__7325FEFD] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Descrizione_Bonus]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Descrizione_Bonus](
	[cod_prod] [varchar](2) NOT NULL,
	[Descrizione] [varchar](128) NULL,
 CONSTRAINT [PK_Descizione_bonus] PRIMARY KEY CLUSTERED 
(
	[cod_prod] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Dettaglio_MOV]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Dettaglio_MOV](
	[Rete] [char](1) NOT NULL,
	[Cod_fiscale] [varchar](16) NOT NULL,
	[Dettaglio] [decimal](15, 2) NULL,
	[DataMovimento] [decimal](18, 0) NULL,
 CONSTRAINT [PK_Dettaglio_MOV] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[Cod_fiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[DettaglioMovimenti]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[DettaglioMovimenti](
	[RETE] [char](1) NULL,
	[COD_FIS] [varchar](16) NULL,
	[DETT_MOV_PREC] [decimal](15, 2) NULL,
	[DETT_MOV_CORR] [decimal](15, 2) NULL,
	[DETT_MOV_TRIMESTRE_PREC] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[DettaglioMovimenti_Fc]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[DettaglioMovimenti_Fc](
	[RETE] [char](1) NULL,
	[COD_FIS] [varchar](16) NULL,
	[DETT_MOV_PREC] [decimal](15, 2) NULL,
	[DETT_MOV_CORR] [decimal](15, 2) NULL,
	[DETT_MOV_TRIMESTRE_PREC] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[DettaglioMovimenti_OLD]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[DettaglioMovimenti_OLD](
	[RETE] [char](1) NULL,
	[COD_FIS] [varchar](16) NULL,
	[DETT_MOV] [decimal](15, 2) NULL,
	[FLAG_TRIM] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ELABORAZIONI]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ELABORAZIONI](
	[ID_ELAB] [int] IDENTITY(1,1) NOT NULL,
	[TIPO_ELAB] [varchar](1) NOT NULL,
	[DATA_OPERAZIONE] [datetime] NOT NULL,
 CONSTRAINT [PK_ELABORAZIONI] PRIMARY KEY CLUSTERED 
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ELABORAZIONI_EMAIL_RNA]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ELABORAZIONI_EMAIL_RNA](
	[Data_Elaborazione] [datetime] NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240206_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240206_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240212_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240214_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240228_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240228_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240424_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240424_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240429_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240429_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240508_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240508_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240509_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240509_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240510_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240510_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240730_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240730_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240803_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240803_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240806_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240806_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20240807_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20240807_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20241028_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20241028_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20241031_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20241031_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20241106_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20241106_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250204_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250204_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250212_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250214_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250507_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250507_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250514_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250514_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250514o_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250514o_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_20250519_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_20250519_preZip](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[elaborazioni_zip_bkp_20240508]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[elaborazioni_zip_bkp_20240508](
	[IDElaborazioneZIP] [int] IDENTITY(1,1) NOT NULL,
	[DataInizio] [datetime] NULL,
	[DataFine] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[EMAIL_PB]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[EMAIL_PB](
	[RETE] [varchar](1) NULL,
	[CODICE] [varchar](6) NULL,
	[PREFISSO] [varchar](1) NULL,
	[FIRMA] [varchar](7) NULL,
	[EMAIL] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20240126]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20240126](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20240205]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20240205](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20240412]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20240412](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20240424]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20240424](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20240722]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20240722](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20240805]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20240805](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20241030]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20241030](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_20250508]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_20250508](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_Quadratura]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_Quadratura](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NULL,
	[Bloccato] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[excludedlist_quaranta]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[excludedlist_quaranta](
	[cf] [varchar](51) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_sblocco]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_sblocco](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_testing]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_testing](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList_TrimDic23_Lotto1]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList_TrimDic23_Lotto1](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ExcludedList2904]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ExcludedList2904](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[FOI80]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[FOI80](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[DESPROD] [varchar](128) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[DESMAX] [varchar](50) NOT NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
	[DESPROT] [varchar](50) NOT NULL,
	[DESPRODTIT] [varchar](128) NULL,
	[QUOTA_MAX_PERC] [int] NOT NULL,
 CONSTRAINT [PK_F.FOI80] PRIMARY KEY CLUSTERED 
(
	[DTTRIM] ASC,
	[DTRIFE] ASC,
	[RETE] ASC,
	[CODCONF] ASC,
	[SUBPROD] ASC,
	[ISIN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[FOI80_old]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[FOI80_old](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[FOI80_test_1riga]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[FOI80_test_1riga](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[DESPROD] [varchar](128) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[DESMAX] [varchar](50) NOT NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
	[DESPROT] [varchar](50) NOT NULL,
	[DESPRODTIT] [varchar](128) NULL,
	[QUOTA_MAX_PERC] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_diagnosi]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_diagnosi](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_diagnosi_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_diagnosi_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_diagnosi_preEliminoRischioCredito]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_diagnosi_preEliminoRischioCredito](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Generator_direct]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Generator_direct](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Generator_direct__BKP_20250305_PreESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Generator_direct__BKP_20250305_PreESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_direct_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_direct_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NOT NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NOT NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NOT NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_monitoraggio]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_monitoraggio](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_monitoraggio_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_monitoraggio_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_monitoraggio_private]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_monitoraggio_private](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_monitoraggio_private_bkp_20241202]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_monitoraggio_private_bkp_20241202](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_monitoraggio_private_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_monitoraggio_private_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_monitoraggio_private_bkp_20250305_pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_monitoraggio_private_bkp_20250305_pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_PPVV]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_PPVV](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[generator_PPVV_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[generator_PPVV_bkp_20250228_Pre_ESG2024](
	[idCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL,
	[titoloCapitolo] [varchar](200) NOT NULL,
	[testoCapitolo] [varchar](2000) NULL,
	[testoCapitoloAlternativo] [varchar](2000) NULL,
	[nuovaPaginaCapitolo] [bit] NOT NULL,
	[querySqlCapitolo] [varchar](200) NULL,
	[idParagrafo] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[titoloParagrafo] [varchar](200) NULL,
	[sottoTitoloParagrafo] [varchar](2000) NULL,
	[testoParagrafo] [varchar](2000) NULL,
	[spazioNecessarioSezioneSuccessiva] [int] NULL,
	[querySqlParagrafo] [varchar](200) NULL,
	[indicizzatoParagrafo] [bit] NULL,
	[ordineSezione] [int] NULL,
	[idSezione] [int] NOT NULL,
	[codiceSezione] [varchar](10) NOT NULL,
	[querySqlSezione] [varchar](200) NULL,
	[indicizzatoSezione] [bit] NULL,
	[filtroSezione] [varchar](200) NULL,
	[titoloSezione] [varchar](200) NULL,
	[testoSezione] [varchar](2000) NOT NULL,
	[testoSezioneAlternativo] [varchar](2000) NOT NULL,
	[notaSezione] [varchar](2000) NOT NULL,
	[notaSezioneAlternativo] [varchar](2000) NOT NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_EMAIL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_EMAIL](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[CodicePB] [varchar](6) NOT NULL,
	[SistemiOperativi] [varchar](1) NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
 CONSTRAINT [PK_GESTIONE_EMAIL] PRIMARY KEY CLUSTERED 
(
	[Email_Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_EMAIL_HST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_EMAIL_HST](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[CodicePB] [varchar](6) NOT NULL,
	[SistemiOperativi] [varchar](1) NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[dt_hst] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Gestione_EmailBCK]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Gestione_EmailBCK](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[CodicePB] [varchar](6) NOT NULL,
	[SistemiOperativi] [varchar](1) NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[Data_Comunicazione_Host] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240206_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240206_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240212_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240214_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240228_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240228_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240424_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240424_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240429_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240429_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240508_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240508_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240509_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240509_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240510_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240510_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240730_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240730_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240803_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240803_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240806_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240806_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20240807_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20240807_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20241028_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20241028_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20241031_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20241031_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20241106_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20241106_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250204_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250204_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250212_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250214_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_PDF_FTP_20250422_DEL]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_PDF_FTP_20250422_DEL](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_PDF_FTP_20250422_DEL2]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_PDF_FTP_20250422_DEL2](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250507_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250507_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250514_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250514_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250514o_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250514o_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_20250519_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_20250519_preZip](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_bkp_20240508]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_bkp_20240508](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_generatiOct]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_generatiOct](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](16) NOT NULL,
	[tiporeport] [varchar](2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_PDF_FTP_HST]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_PDF_FTP_HST](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [bigint] IDENTITY(1,1) NOT NULL,
	[dt_hst] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_PDF_FTP_IDX]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_PDF_FTP_IDX](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_inviatiOct]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_inviatiOct](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](16) NOT NULL,
	[tiporeport] [varchar](2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_PDF_FTP_OBS]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_PDF_FTP_OBS](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_pdf_ftp_pq2704]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_pdf_ftp_pq2704](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_TESTO_PARTICOLARE_LETTERE_DA_INVIARE]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_TESTO_PARTICOLARE_LETTERE_DA_INVIARE](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [nvarchar](1) NULL,
	[CodFis] [nvarchar](20) NULL,
	[TipologiaLettera] [nvarchar](20) NULL,
	[dtDataInserimento] [datetime] NULL,
	[flagAttivo] [bit] NULL,
 CONSTRAINT [PK_C6MartPeriodico.GESTIONE_TESTO_PARTICOLARE_LETTERE_DA_INVIARE] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240206_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240206_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240212_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240214_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240228_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240228_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240424_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240424_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240429_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240429_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240508_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240508_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240509_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240509_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240510_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240510_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240730_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240730_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240803_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240803_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240806_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240806_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20240807_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20240807_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20241028_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20241028_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20241031_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20241031_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20241106_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20241106_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250204_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250204_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250212_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250212_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250214_preZip]    Script Date: 5/21/2025 3:35:55 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250214_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250507_preZip]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250507_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250514_preZip]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250514_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250514o_preZip]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250514o_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[gestione_zip_ftp_20250519_preZip]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[gestione_zip_ftp_20250519_preZip](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_ZIP_FTP_bkp_20240508]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_ZIP_FTP_bkp_20240508](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[GESTIONE_ZIP_FTP_IDX]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[GESTIONE_ZIP_FTP_IDX](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL,
	[DateCopyToSend] [datetime] NULL,
	[FKIDElaborazioneZIP] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[HIST_gestione_pdf_ftp]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[HIST_gestione_pdf_ftp](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[LOG_CAMBIO_RETE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[LOG_CAMBIO_RETE](
	[DTEXEC] [datetime] NULL,
	[RETE_C] [varchar](1) NOT NULL,
	[RETE_R] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[ESITO_ELAB] [varchar](500) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[LogOperazioniConvalidaAnnulla]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[LogOperazioniConvalidaAnnulla](
	[DATA] [datetime] NULL,
	[TIPO_OPERAZIONE] [varchar](15) NULL,
	[DATI_CONTROLLI_REPORT] [varchar](30) NULL,
	[Diagnosi] [int] NULL,
	[Monitoraggio] [int] NULL,
	[Totale] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MAIL_PROFILI_RISCHIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MAIL_PROFILI_RISCHIO](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[cod_agente] [varchar](6) NULL,
	[data_sott] [datetime] NULL,
	[data_perf] [datetime] NULL,
	[flag_invio_report] [varchar](1) NULL,
	[profilo] [varchar](2) NULL,
	[dt_creazione_profilo] [datetime] NULL,
	[flagScaduto] [bit] NULL,
	[flagScadenzaTrim] [bit] NULL,
	[flagScadenzaNextTrim] [bit] NULL,
 CONSTRAINT [PK_MAIL_PROFILI_RISCHIO] PRIMARY KEY CLUSTERED 
(
	[rete] ASC,
	[cod_fiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[mail_profili_rischio_bck]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[mail_profili_rischio_bck](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[cod_agente] [varchar](6) NULL,
	[data_sott] [datetime] NOT NULL,
	[data_perf] [datetime] NULL,
	[flag_invio_report] [varchar](1) NULL,
	[profilo] [varchar](2) NULL,
	[dt_creazione_profilo] [datetime] NULL,
	[flagScaduto] [bit] NULL,
	[flagScadenzaTrim] [bit] NULL,
	[flagScadenzaNextTrim] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MailAvvisoTrimestraleAiPB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MailAvvisoTrimestraleAiPB](
	[ID_ELAB] [int] NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](1) NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](1) NOT NULL,
	[E_Cc] [varchar](1) NOT NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](8000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO](
	[ID_ELAB] [int] NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](1) NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](1) NOT NULL,
	[E_Cc] [varchar](1) NOT NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](8000) NULL,
	[codicePB] [varchar](6) NOT NULL,
	[data_generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Execution_Time] [datetime] NULL,
	[ID] [bigint] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_ATTUALE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_ATTIVAZIONE] [datetime] NULL,
	[DATA_CTV] [datetime] NULL,
	[CTV_MONITORATO] [decimal](15, 2) NULL,
	[APPORTO_INIZIALE] [decimal](15, 2) NULL,
	[APPORTO_SUCCESSIVO] [decimal](15, 2) NULL,
	[LIQUIDAZIONI] [decimal](15, 2) NULL,
	[CEDOLE_DIVIDENDI] [decimal](15, 2) NULL,
	[MINUS_PLUSVALENZA] [decimal](15, 2) NULL,
	[RISORSE_ASSOCIATE] [decimal](15, 2) NULL,
	[RENDIMENTO_CUMULATO] [decimal](15, 2) NULL,
	[RENDIMENTO_ANNUALIZZATO] [decimal](15, 2) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_ATTUALE_corretta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE_corretta](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_ATTIVAZIONE] [datetime] NULL,
	[DATA_CTV] [datetime] NULL,
	[CTV_MONITORATO] [decimal](15, 2) NULL,
	[APPORTO_INIZIALE] [decimal](15, 2) NULL,
	[APPORTO_SUCCESSIVO] [decimal](15, 2) NULL,
	[LIQUIDAZIONI] [decimal](15, 2) NULL,
	[CEDOLE_DIVIDENDI] [decimal](15, 2) NULL,
	[MINUS_PLUSVALENZA] [decimal](15, 2) NULL,
	[RISORSE_ASSOCIATE] [decimal](15, 2) NULL,
	[RENDIMENTO_CUMULATO] [decimal](15, 2) NULL,
	[RENDIMENTO_ANNUALIZZATO] [decimal](15, 2) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[DATA_ASSOCIAZIONE] [datetime] NULL,
	[VERSATO_NETTO_DA_ASSOC] [decimal](15, 2) NULL,
	[UTILE_PERDITA_DA_ASSOC] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__MONITORAGGIO_DET__40857097] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[POSITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_INIZIALE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_FOTO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[PROFILO] [smallint] NULL,
	[VAR_MAX_PROFILO] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL,
	[ctvself] [decimal](18, 2) NULL,
	[CTVSelfFoglio] [decimal](18, 2) NULL,
 CONSTRAINT [PK__MONITORAGGIO_INI__341F99B2] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[DATA_FOTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_INIZIALE_Developing]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE_Developing](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_FOTO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[PROFILO] [smallint] NULL,
	[VAR_MAX_PROFILO] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_INIZIALE_Developing_RowsToUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE_Developing_RowsToUpdate](
	[Rete] [varchar](1) NOT NULL,
	[Cod_FIscale] [varchar](16) NOT NULL,
	[Ctv_Totale] [decimal](38, 3) NULL,
	[Ctv_Ext] [decimal](38, 3) NULL,
	[Ctv_Inv] [decimal](38, 3) NULL,
	[Ctv_Ris] [decimal](38, 3) NULL,
	[Ctv_Pre] [decimal](38, 3) NULL,
	[Ctv_Liq] [decimal](38, 3) NULL,
	[Ctv_Cc] [decimal](38, 3) NULL,
	[Ctv_Na] [decimal](38, 3) NULL,
	[ImportoPartiteViaggianti] [decimal](38, 3) NULL,
	[Var_Complessivo] [decimal](38, 3) NULL,
	[Var_Copertura] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_INIZIALE_PERC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE_PERC](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_FOTO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[PERC_EXT] [numeric](1, 1) NOT NULL,
	[PERC_INV] [numeric](1, 1) NOT NULL,
	[PERC_PRE] [numeric](1, 1) NOT NULL,
	[PERC_RIS] [numeric](1, 1) NOT NULL,
	[PERC_LIQ] [numeric](1, 1) NOT NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[PROFILO] [smallint] NULL,
	[VAR_MAX_PROFILO] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL,
	[ctvself] [decimal](18, 2) NULL,
	[CTVSelfFoglio] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_INIZIALE_PERCENTUALE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE_PERCENTUALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_FOTO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[PERC_EXT] [decimal](15, 2) NOT NULL,
	[PERC_INV] [decimal](15, 2) NOT NULL,
	[PERC_PRE] [decimal](15, 2) NOT NULL,
	[PERC_RIS] [decimal](15, 2) NOT NULL,
	[PERC_LIQ] [decimal](15, 2) NOT NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[PROFILO] [smallint] NULL,
	[VAR_MAX_PROFILO] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL,
	[ctvself] [decimal](18, 2) NULL,
	[CTVSelfFoglio] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_REPORT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_REPORT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_INVIO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[PROFILO] [smallint] NULL,
	[VAR_MAX_PROFILO] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL,
	[CTV_SELF] [decimal](15, 2) NULL,
	[CTV_SELF_FOGLIO] [decimal](15, 2) NULL,
 CONSTRAINT [PK__MONITORAGGIO_REP__3607E224] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[DATA_INVIO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[MONITORAGGIO_STORICO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[MONITORAGGIO_STORICO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_CTV] [datetime] NOT NULL,
	[CTV_MONITORATO] [decimal](15, 2) NULL,
	[RISORSE_ASSOCIATE] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL,
	[CEDOLE_DIV] [decimal](15, 2) NULL,
	[ordinamento_progetto] [int] NOT NULL,
 CONSTRAINT [PK__MONITORAGGIO_STO__3BC0BB7A] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[ID_AREA] ASC,
	[NOME_PROGETTO] ASC,
	[DATA_CTV] ASC,
	[ordinamento_progetto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[motivazioni_blacklist]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[motivazioni_blacklist](
	[id] [int] NULL,
	[descrizione] [varchar](255) NULL,
	[data_censimento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[OrdineMacroAsset]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[OrdineMacroAsset](
	[asset] [varchar](10) NULL,
	[descrizione] [varchar](30) NULL,
	[ordine] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PATRIMONIO_BF_20241115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PATRIMONIO_BF_20241115](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[STRTYPE] [varchar](10) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[CHIAVE_PROGETTO] [int] NULL,
	[ClienteDB] [char](2) NULL,
	[chiavePtfMod] [int] NULL,
	[Nob_Prez] [varchar](1) NULL,
	[Divisa] [varchar](3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PATRIMONIO_EMITTENTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PATRIMONIO_EMITTENTI](
	[COD_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[POSITION_ID] [varchar](512) NULL,
	[COD_PRODOTTO] [varchar](128) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[CTV_INTERMEDIARIO] [numeric](19, 7) NULL,
	[CTV_INTER_NOCC_NEG] [numeric](19, 7) NULL,
	[EMITTENTE] [varchar](512) NULL,
	[COMPLESSITA] [varchar](18) NULL,
	[CTV_EMITTENTE] [numeric](19, 7) NULL,
	[CTV_PRODOTTO] [numeric](19, 7) NULL,
	[FLG_AZ_OB] [varchar](2) NULL,
	[CREDITRISKCLASS] [varchar](50) NULL,
	[CTV_AZIONARIO] [numeric](19, 7) NULL,
	[CTV_OBBLIGAZIONARIO] [numeric](19, 7) NULL,
	[CTV_AZ_OB_EMIT] [numeric](19, 7) NULL,
	[CTV_AZ_OB_EMIT_INTER] [numeric](19, 7) NULL,
	[CTV_COMPLESSIVO] [numeric](19, 7) NULL,
	[CTV_COMPL_NOCC_NEG] [numeric](19, 7) NULL,
	[CONC_EMITTENTE] [numeric](8, 3) NULL,
	[CONC_EMIT_INTERM] [numeric](8, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6MartPeriodico].[Patrimonio_Immobiliare_ProQuota]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Patrimonio_Immobiliare_ProQuota](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[Descrizione] [varchar](200) NULL,
	[Tipologia] [varchar](100) NULL,
	[Localita] [varchar](100) NULL,
	[AffittoPercepito] [decimal](15, 3) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[Totale] [decimal](15, 3) NULL,
	[TotaleAffitto] [decimal](15, 3) NULL,
	[TIPOLOGIA_DIRITTO] [varchar](256) NULL,
	[ProQuota] [decimal](15, 3) NULL,
	[VALORE_STIMATO_PROQUOTA] [decimal](15, 3) NULL,
	[TotaleProQuota] [decimal](18, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[patrimonio_immobiliare_proquota_BRNFNC65C03I726I]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[patrimonio_immobiliare_proquota_BRNFNC65C03I726I](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[Descrizione] [varchar](200) NULL,
	[Tipologia] [varchar](100) NULL,
	[Localita] [varchar](100) NULL,
	[AffittoPercepito] [decimal](15, 3) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[Totale] [decimal](15, 3) NULL,
	[TotaleAffitto] [decimal](15, 3) NULL,
	[TIPOLOGIA_DIRITTO] [varchar](100) NULL,
	[ProQuota] [decimal](15, 3) NULL,
	[VALORE_STIMATO_PROQUOTA] [decimal](15, 3) NULL,
	[TotaleProQuota] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PIRAMIDE_MOD](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[TIPO_PROGETTO] [varchar](64) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CTV_PROGETTO] [decimal](15, 3) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ORIZZ_TEMP_NUM] [decimal](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](20) NULL,
	[CTV_TOTALE] [decimal](15, 3) NULL,
	[STATO_CONSULENZA] [varchar](30) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[piramide_mod_3009]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[piramide_mod_3009](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[TIPO_PROGETTO] [varchar](64) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CTV_PROGETTO] [decimal](15, 3) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ORIZZ_TEMP_NUM] [decimal](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](20) NULL,
	[CTV_TOTALE] [decimal](15, 3) NULL,
	[STATO_CONSULENZA] [varchar](30) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PIRAMIDE_VERT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[PROVENTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[PROVENTI](
	[RETE] [varchar](1) NOT NULL,
	[DTTRIM] [datetime] NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_INTERNO] [varchar](8) NOT NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NOT NULL,
	[DESPROD] [varchar](128) NOT NULL,
	[DTRIFE] [datetime] NOT NULL,
	[TIPMOV] [varchar](25) NOT NULL,
	[IMPORTO] [decimal](15, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[QD_VAR_RISK_WEEK2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[QD_VAR_RISK_WEEK2](
	[banca] [varchar](64) NULL,
	[rete] [varchar](1) NULL,
	[codfis] [varchar](64) NULL,
	[piva] [varchar](64) NULL,
	[codfid] [varchar](64) NULL,
	[codman] [varchar](64) NULL,
	[chiave_acn] [varchar](64) NULL,
	[isp_total_risk] [numeric](24, 9) NULL,
	[flag_risk] [varchar](64) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_20240229]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_20240229](
	[ChiaveClientePB] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20240217]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20240217](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20240521]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20240521](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20240824]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20240824](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20241115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20241115](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20250219]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[REP_S80_EVOL_STAMPA_C6_BKP_TRIM_PREC_20250219](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[report_trimestrali]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[report_trimestrali](
	[Rete] [varchar](1) NOT NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [varchar](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisinv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[generaDiagnosi] [int] NOT NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModelloMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RFA_SEGNALATI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RFA_SEGNALATI](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[CODMAN] [varchar](5) NULL,
	[BLACKLIST] [varchar](3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RISCHIO_AGGREGATO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NOT NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CREDITRISK] [int] NULL,
	[ULLY_PERC] [decimal](10, 2) NULL,
	[CREDITRISKEMIT] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RISCHIO_AGGREGATO_temp]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RISCHIO_AGGREGATO_temp](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RischioEmittenti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RischioEmittenti](
	[Classe] [varchar](50) NULL,
	[Min] [numeric](18, 3) NULL,
	[Max] [numeric](18, 3) NULL,
	[Ordine] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Risultato_RP_PROM_TuttiIPortafogli2_Indicatore]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Risultato_RP_PROM_TuttiIPortafogli2_Indicatore](
	[Rete] [nvarchar](max) NULL,
	[CodiceFiscale] [nvarchar](max) NULL,
	[Portafoglio] [nvarchar](max) NULL,
	[CodiceProdotto] [nvarchar](max) NULL,
	[CodiceAdeguatezza] [nvarchar](max) NULL,
	[Piazza] [nvarchar](max) NULL,
	[CodiceValuta] [nvarchar](max) NULL,
	[Classe] [nvarchar](max) NULL,
	[CtvNominale] [nvarchar](max) NULL,
	[CtvReale] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ANAG_CLIENTI](
	[RETE] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[NOME] [varchar](80) NULL,
	[COGNOME] [varchar](153) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [int] NULL,
	[NUM_COMPONENTI] [int] NULL,
	[NUM_FIGLI] [int] NULL,
	[ETA] [numeric](18, 0) NULL,
	[PARTITA_IVA] [int] NULL,
	[CITTADINANZA] [varchar](50) NULL,
	[PERSONA_FIS_GIUR] [int] NULL,
	[INDIRIZZO] [varchar](128) NOT NULL,
	[LOCALITA] [varchar](50) NOT NULL,
	[PROVINCIA] [varchar](50) NOT NULL,
	[CAP] [varchar](6) NOT NULL,
	[NAZIONE] [varchar](50) NOT NULL,
	[PRESSO] [varchar](1) NOT NULL,
	[TEL_RECAPITO] [int] NULL,
	[TEL_CELL] [int] NULL,
	[E_MAIL] [varchar](512) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [int] NULL,
	[STATO] [int] NULL,
	[RAG_SOC] [int] NULL,
	[SESSO] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [char](6) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20240917]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20240917](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241016]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241016](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241018]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241018](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241031]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241031](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20241115](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250122]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250122](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250131](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250211]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250211](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250212](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250214]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250214](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250218](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250319]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250319](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250418]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250418](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_ClientiPtfNonDiv_20250510](
	[AzioneMerge] [varchar](32) NULL,
	[Rete] [varchar](1) NULL,
	[Chiave_Acn] [varchar](16) NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NULL,
	[Credito] [decimal](9, 4) NULL,
	[Flg_NonDiv] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_REP_S80_EVOL_STAMPA_C6_TRIM_ATTUALE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_REP_S80_EVOL_STAMPA_C6_TRIM_ATTUALE](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [numeric](18, 2) NULL,
	[lineaSelfFoglio] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_TB_ESG_ANAG_STRUM_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_TB_ESG_ANAG_STRUM_bkp_20241221](
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [varchar](50) NULL,
	[ESGRating] [varchar](3) NULL,
	[TrendESGRating] [varchar](3) NULL,
	[TrendESGRating_val] [varchar](3) NULL,
	[dtInserimento] [datetime] NULL,
	[dtAggiornamento] [datetime] NULL,
	[UserIns] [nvarchar](50) NULL,
	[CLIENT_ID] [varchar](32) NULL,
	[C_TIPO_STRUMENTO] [varchar](5) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[SDG_06_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_07_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_12_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_13_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_14_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_15_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_01_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_02_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_03_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_04_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_05_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_08_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_09_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_10_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_11_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_16_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_17_NET_ALIGNMENT_SCORE] [int] NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PERC_INVEST_OTHER_E_NO_TAX] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_E] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_S] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](32) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](32) NULL,
	[PAI_LAB_A_Acqua] [varchar](32) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](32) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](32) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](32) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](32) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](32) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](32) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[AGGREG_PAI_LAB_A] [varchar](255) NULL,
	[AGGREG_PAI_LAB_S] [varchar](255) NULL,
	[AGGREG_BOND] [varchar](255) NULL,
	[REF_DATE] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_TB_Tipologia_Campione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_TB_Tipologia_Campione](
	[rete] [char](1) NULL,
	[codice_fiscale] [char](16) NULL,
	[flag_stampa] [int] NULL,
	[Diagnosi] [varchar](2) NOT NULL,
	[Segmento] [varchar](32) NULL,
	[Professionale] [varchar](2) NOT NULL,
	[ESG] [varchar](2) NOT NULL,
	[ASSICURATIVI] [varchar](2) NULL,
	[FAI] [varchar](2) NULL,
	[commento] [varchar](119) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[RP_TB_Tipologia_Tabellone]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[RP_TB_Tipologia_Tabellone](
	[rete] [char](1) NULL,
	[codice_fiscale] [char](16) NULL,
	[Diagnosi] [varchar](2) NOT NULL,
	[Segmento] [varchar](32) NULL,
	[Professionale] [varchar](2) NOT NULL,
	[ESG] [varchar](2) NOT NULL,
	[ASSICURATIVI] [varchar](2) NULL,
	[FAI] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[S184CoerenzaESG_ERR]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[S184CoerenzaESG_ERR](
	[Rete] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[percESG] [varchar](18) NOT NULL,
	[pesoSostESG] [decimal](10, 2) NULL,
	[Coerenza] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[S80_PIVA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[S80_PIVA](
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[piva] [numeric](18, 3) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[S80Alternativa_DidascalieNote]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[S80Alternativa_DidascalieNote](
	[NumeroAsterischi] [int] NOT NULL,
	[Descrizione] [nvarchar](4000) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Sblocco_Blacklist]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Sblocco_Blacklist](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[SCADENZE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[SCADENZE](
	[RETE] [varchar](1) NOT NULL,
	[DTTRIM] [datetime] NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_INTERNO] [varchar](8) NOT NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NOT NULL,
	[DESPROD] [varchar](128) NOT NULL,
	[DTSCAD] [datetime] NOT NULL,
	[TIPMOV] [varchar](25) NOT NULL
) ON [STAGING]
GO
/****** Object:  Table [C6MartPeriodico].[Scarico_percentuale_piramide_modello_ini]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Scarico_percentuale_piramide_modello_ini](
	[chiaveclientepb] [bigint] NULL,
	[sommatotale] [numeric](38, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Scarico_percentuale_piramide_modello_iniziale]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Scarico_percentuale_piramide_modello_iniziale](
	[chiaveClientePB] [bigint] NULL,
	[chiaveAreaMod] [bigint] NULL,
	[chiaveArea] [bigint] NULL,
	[somma] [numeric](38, 7) NULL,
	[area] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Scarti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Scarti](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[Cod_fiscale] [varchar](16) NOT NULL,
	[TipoReport] [char](1) NOT NULL,
	[ErrorText] [text] NULL,
	[DataInsRiga] [datetime] NULL,
 CONSTRAINT [PK_Scarti] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[selettore]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[selettore](
	[id_richiesta] [int] NOT NULL,
	[data_avvio] [datetime] NULL,
	[descrizione] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[selezionecampione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[selezionecampione](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](255) NOT NULL,
	[c1] [int] NOT NULL,
	[c2] [int] NOT NULL,
	[c3] [int] NOT NULL,
	[c4] [int] NOT NULL,
	[c5] [int] NOT NULL,
	[c6] [int] NOT NULL,
	[c7] [int] NOT NULL,
	[c8] [int] NOT NULL,
	[c9] [int] NOT NULL,
	[c10] [int] NOT NULL,
	[c11] [int] NOT NULL,
	[c12] [int] NOT NULL,
	[c13] [int] NOT NULL,
	[c14] [int] NOT NULL,
	[c15] [int] NOT NULL,
	[c16] [int] NOT NULL,
	[c17] [int] NOT NULL,
	[c18] [int] NOT NULL,
	[c19] [int] NOT NULL,
	[c20] [int] NOT NULL,
	[c21] [int] NOT NULL,
	[c22] [int] NOT NULL,
	[c23] [int] NOT NULL,
	[c24] [int] NOT NULL,
	[c25] [int] NOT NULL,
	[c26] [int] NOT NULL,
	[c27] [int] NOT NULL,
	[c28] [int] NOT NULL,
	[c29] [int] NOT NULL,
	[c30] [int] NOT NULL,
	[c31] [int] NULL,
	[c32] [int] NULL,
	[c33] [int] NULL,
	[c34] [int] NULL,
	[c35] [int] NULL,
	[c36] [int] NULL,
	[c37] [int] NULL,
	[c38] [int] NULL,
	[c39] [int] NULL,
	[c40] [int] NULL,
	[c41] [int] NULL,
	[c42] [int] NULL,
	[c43] [int] NULL,
	[c44] [int] NULL,
	[c45] [int] NULL,
	[c46] [int] NULL,
	[c47] [int] NULL,
	[c48] [int] NULL,
	[c49] [int] NULL,
	[c50] [int] NULL,
	[c51] [int] NULL,
	[c52] [int] NULL,
	[c53] [int] NULL,
	[c54] [int] NULL,
	[c55] [int] NULL,
	[c56] [int] NULL,
	[c57] [int] NULL,
	[c58] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[SELEZIONECAMPIONE2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[SELEZIONECAMPIONE2](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[C1] [int] NULL,
	[C2] [int] NULL,
	[C3] [int] NULL,
	[C4] [int] NULL,
	[C5] [int] NULL,
	[C6] [int] NULL,
	[C7] [int] NULL,
	[C8] [int] NULL,
	[C9] [int] NULL,
	[C10] [int] NULL,
	[C11] [int] NULL,
	[C12] [int] NULL,
	[C13] [int] NULL,
	[C14] [int] NULL,
	[C15] [int] NULL,
	[C16] [int] NULL,
	[C17] [int] NULL,
	[C18] [int] NULL,
	[C19] [int] NULL,
	[C20] [int] NULL,
	[C21] [int] NULL,
	[C22] [int] NULL,
	[C23] [int] NULL,
	[C24] [int] NULL,
	[C25] [int] NULL,
	[C26] [int] NULL,
	[C27] [int] NULL,
	[C28] [int] NULL,
	[C29] [int] NULL,
	[C30] [int] NULL,
	[C31] [int] NULL,
	[C32] [int] NULL,
	[C33] [int] NULL,
	[C34] [int] NULL,
	[C35] [int] NULL,
	[C36] [int] NULL,
	[C37] [int] NULL,
	[C38] [int] NULL,
	[C39] [int] NULL,
	[C40] [int] NULL,
	[C41] [int] NULL,
	[C42] [int] NULL,
	[C43] [int] NULL,
	[c44] [int] NULL,
	[c45] [int] NULL,
	[c46] [int] NULL,
	[c47] [int] NULL,
	[c48] [int] NULL,
	[c49] [int] NULL,
	[c50] [int] NULL,
	[c51] [int] NULL,
	[c52] [int] NULL,
	[c53] [int] NULL,
	[c54] [int] NULL,
	[c55] [int] NULL,
	[c56] [int] NULL,
	[c57] [int] NULL,
	[c58] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[Srv_Verifica_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[Srv_Verifica_PATRIMONIO_BF](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](10) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [bigint] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[STRTYPE] [varchar](10) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[CHIAVE_PROGETTO] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[statistiche_app_rendicontazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[statistiche_app_rendicontazione](
	[id] [int] NULL,
	[descrizione] [varchar](255) NULL,
	[numero] [int] NULL,
	[tipo_consul] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[stato_report]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[stato_report](
	[id_stato] [tinyint] NULL,
	[descrizione] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[STORICO_CAPPROT_FVI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[STORICO_CAPPROT_FVI](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[CODLINEA] [varchar](5) NULL,
	[COD_CONF] [varchar](11) NOT NULL,
	[DTSOTTOS] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[CTVPROT] [decimal](15, 2) NULL,
	[CTVMON] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[STRUTTURA_RETE](
	[Rete] [varchar](1) NOT NULL,
	[PB] [varchar](6) NOT NULL,
	[CognomeNomePB] [varchar](64) NOT NULL,
	[SPV] [varchar](6) NOT NULL,
	[CognomeNomeSPV] [varchar](64) NOT NULL,
	[RM] [varchar](6) NOT NULL,
	[CognomeNomeRM] [varchar](64) NOT NULL,
	[DM] [varchar](6) NOT NULL,
	[CognomeNomeDM] [varchar](64) NOT NULL,
	[AM] [varchar](6) NOT NULL,
	[CognomeNomeAM] [varchar](64) NOT NULL,
	[Livello] [varchar](20) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_STRUTTURA_RETE] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[PB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tab_semaforo]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tab_semaforo](
	[trim_corrente] [varchar](20) NULL,
	[tipo_reportistica] [varchar](20) NULL,
	[id_milestone] [varchar](3) NULL,
	[milestone] [varchar](40) NULL,
	[descrizione] [varchar](500) NULL,
	[inizio_milestone] [datetime] NULL,
	[fine_milestone] [datetime] NULL,
	[flg_stato] [int] NULL,
	[fase] [int] NULL,
	[inizio_lotto] [datetime] NULL,
	[fine_lotto] [datetime] NULL,
	[is_check] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TabelleStoricizzate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TabelleStoricizzate](
	[Nome] [varchar](50) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Durata] [int] NULL,
	[Vecchia_Durata] [int] NULL,
	[Storicizzata] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tabellone_20240301]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tabellone_20240301](
	[rete_acn] [char](1) NULL,
	[chiave_acn] [varchar](30) NULL,
	[chiave_cap] [varchar](30) NULL,
	[campione1] [varchar](2) NULL,
	[nome] [varchar](512) NULL,
	[cognome] [varchar](512) NULL,
	[dtnasci] [date] NULL,
	[indirizzo] [varchar](128) NULL,
	[cap] [char](5) NULL,
	[citta] [varchar](64) NULL,
	[provincia] [char](2) NULL,
	[nazione] [varchar](64) NULL,
	[codprof] [int] NULL,
	[dtinval] [varchar](10) NULL,
	[codconf] [char](11) NULL,
	[blacklist] [varchar](600) NULL,
	[lotto] [varchar](16) NULL,
	[zip] [varchar](150) NULL,
	[blacklist_imm] [varchar](600) NULL,
	[lotto_imm] [varchar](16) NULL,
	[zip_imm] [varchar](150) NULL,
	[lettera_sost] [varchar](3) NULL,
	[lettera_sost_imm] [varchar](3) NULL,
	[selecta_lettera] [varchar](64) NULL,
	[flag6kc] [char](1) NULL,
	[flgorig] [char](1) NULL,
	[flgimm] [char](1) NULL,
	[flgpe_perimetro_semestr] [char](1) NULL,
	[solo_rend_imm] [char](1) NULL,
	[anche_rend_sei] [char](1) NULL,
	[co_imm_puc] [char](11) NULL,
	[tipcons_imm_puc] [char](1) NULL,
	[addendum_puc] [char](2) NULL,
	[staimp_addendum_puc] [varchar](20) NULL,
	[dt_ultimo_cr] [date] NULL,
	[rete_c] [char](1) NULL,
	[rete_r] [char](1) NULL,
	[rete] [char](1) NULL,
	[codfis] [char](16) NULL,
	[codman] [varchar](10) NULL,
	[codana] [char](12) NULL,
	[classerc] [int] NULL,
	[codprofec] [int] NULL,
	[flagpg] [char](1) NULL,
	[clcompl] [char](1) NULL,
	[flgconc] [char](1) NULL,
	[flagnqp] [char](1) NULL,
	[flgprlrde] [char](1) NULL,
	[cocf_subprod] [char](2) NULL,
	[segmento] [varchar](32) NULL,
	[cocf_dtletbenv] [date] NULL,
	[cocf_dtades] [date] NULL,
	[cfm_dsottos] [date] NULL,
	[cfm_blocco] [char](1) NULL,
	[coric_causale] [char](3) NULL,
	[coric_dtins] [varchar](10) NULL,
	[coric_dtval] [varchar](10) NULL,
	[coric_dtstralcio] [varchar](10) NULL,
	[corfa_rfa] [decimal](38, 3) NULL,
	[cfm_statorol] [varchar](3) NULL,
	[wseidc_tipolett] [varchar](3) NULL,
	[wseidc_stato] [varchar](16) NULL,
	[wseips_flag] [varchar](3) NULL,
	[cfm_tipo_consul] [varchar](16) NULL,
	[flgprof] [varchar](3) NULL,
	[dtfinval] [varchar](10) NULL,
	[concemi] [varchar](3) NULL,
	[freq] [varchar](3) NULL,
	[lliquid] [varchar](3) NULL,
	[codice_agente] [varchar](8) NULL,
	[nominativo_pb] [varchar](256) NULL,
	[codice_fiscale] [char](16) NULL,
	[codice_contratto] [varchar](11) NULL,
	[freq_monitoraggio] [varchar](16) NULL,
	[freq_diagnosi] [varchar](16) NULL,
	[data_revoca] [varchar](10) NULL,
	[tipo_contratto] [char](1) NULL,
	[tipo_riattivazione] [char](1) NULL,
	[rol_effettiva] [char](1) NULL,
	[ade_rischio_mercato] [varchar](3) NULL,
	[ade_rischio_credito] [varchar](3) NULL,
	[var_portafoglio] [decimal](13, 2) NULL,
	[note1] [varchar](600) NULL,
	[ESG] [varchar](2) NULL,
	[Environmental] [varchar](2) NULL,
	[Social] [varchar](2) NULL,
	[Governance] [varchar](2) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[DTTRIM] [varchar](8) NULL,
	[Riserva] [varchar](2) NULL,
	[INVL_PERIOD] [varchar](2) NULL,
	[ADEGCONC_VALUT] [varchar](2) NULL,
	[Coerenza] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_campione_da_20240619]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_campione_da_20240619](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_campione_DA_HST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_campione_DA_HST](
	[DataBK] [datetime] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_campione_ESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_campione_ESG](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Campione_GB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Campione_GB](
	[rete] [char](1) NULL,
	[cod_fiscale] [nvarchar](32) NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Campione_GB_1]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Campione_GB_1](
	[rete] [char](1) NULL,
	[cod_fiscale] [nvarchar](32) NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_campione_HST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_campione_HST](
	[DataBK] [datetime] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_campione_rosaspina]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_campione_rosaspina](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_ClienticonCaratteriAnomali]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_ClienticonCaratteriAnomali](
	[val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto](
	[data_prima] [varchar](32) NULL,
	[conteggio_prima] [int] NULL,
	[data_dopo] [varchar](32) NULL,
	[conteggio_dopo] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Estrazione_Campione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Estrazione_Campione](
	[rete_acn] [char](1) NULL,
	[codice_fiscale] [char](16) NULL,
	[Nota] [varchar](65) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Estrazione_Campione_Cruscotto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Estrazione_Campione_Cruscotto](
	[rete] [char](1) NULL,
	[codice_fiscale] [char](16) NULL,
	[Nota] [varchar](65) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_FD190PatrimonioFinanziario_PTFRibilanciato]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_FD190PatrimonioFinanziario_PTFRibilanciato](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](32) NOT NULL,
	[Ordinamento] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[ChiavePtfMod] [int] NULL,
	[Controvalore] [decimal](19, 5) NULL,
	[Percentuale] [decimal](19, 5) NULL,
	[Totale] [decimal](19, 5) NULL,
	[Percentuale_Modello] [decimal](19, 5) NULL,
	[Var_Prog] [decimal](12, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_FD190PatrimonioFinanziario_PTFRibilanciato_test]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_FD190PatrimonioFinanziario_PTFRibilanciato_test](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Banca] [varchar](22) NOT NULL,
	[Ordinamento] [int] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[ChiavePtfMod] [int] NULL,
	[Controvalore] [decimal](38, 22) NULL,
	[percentuale] [decimal](38, 6) NULL,
	[Totale] [decimal](38, 22) NULL,
	[Percentuale_Modello] [decimal](18, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_FD200DistribuzioneAssetClass_PTFRibilanciato]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_FD200DistribuzioneAssetClass_PTFRibilanciato](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](32) NOT NULL,
	[ORDINAMENTO] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[ChiavePtfMod] [int] NULL,
	[Controvalore] [decimal](38, 2) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[Totale] [decimal](19, 5) NULL,
	[Percentuale_Modello] [decimal](38, 6) NULL,
	[Var_Prog] [decimal](12, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_GETDATATHREADS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_GETDATATHREADS](
	[Rete] [varchar](1) NULL,
	[NomeRete] [varchar](15) NULL,
	[Agente] [varchar](6) NULL,
	[CognomeAgente] [varchar](128) NULL,
	[NomeAgente] [varchar](128) NULL,
	[IndirizzoAgente] [varchar](255) NULL,
	[CapAgente] [varchar](5) NULL,
	[CittaAgente] [varchar](50) NULL,
	[TelefonoAgente] [varchar](20) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NULL,
	[PartiteViaggiantiDisinv] [decimal](38, 3) NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NULL,
	[ContoCorrente] [decimal](38, 3) NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NULL,
	[RisorseNonAssociate] [decimal](38, 3) NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[tip_contratto] [smallint] NULL,
	[contrattoold] [int] NULL,
	[NoMonitoraggio] [int] NULL,
	[descrizioneDiagnosi] [varchar](8) NULL,
	[idModelloDiagnosi] [int] NULL,
	[idReportDiagnosi] [int] NULL,
	[descrizioneMonitoraggio] [varchar](12) NULL,
	[idReportMonitoraggio] [int] NULL,
	[idModelloMonitoraggio] [int] NULL,
	[AdesioneSuccessivaAvanzato] [int] NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[IdReportPDFDiagnosi] [int] NULL,
	[IdReportPDFMonitoraggio] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_ListaCampioneDettaglioMovimenti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_ListaCampioneDettaglioMovimenti](
	[RETE] [char](1) NULL,
	[COD_FIS] [varchar](16) NULL,
	[DETT_MOV_PREC] [decimal](15, 2) NOT NULL,
	[DETT_MOV_CORR] [decimal](15, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_ListaCampioneDettaglioMovimenti_Parziale]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_ListaCampioneDettaglioMovimenti_Parziale](
	[RETE] [char](1) NULL,
	[COD_FIS] [varchar](16) NULL,
	[CASISTICA] [varchar](3) NULL,
	[DETT_MOV_PREC] [decimal](15, 2) NOT NULL,
	[DETT_MOV_CORR] [decimal](15, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Patrimonio_BF_Percentuale_Piramide]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Patrimonio_BF_Percentuale_Piramide](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[PERC_EXT] [decimal](38, 2) NOT NULL,
	[PERC_INV] [decimal](38, 2) NOT NULL,
	[PERC_PRE] [decimal](38, 2) NOT NULL,
	[PERC_RIS] [decimal](38, 2) NOT NULL,
	[PERC_LIQ] [decimal](38, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NULL,
	[Partita_viaggiante] [int] NOT NULL,
	[CTV_EXT] [decimal](38, 3) NULL,
	[CTV_INV] [decimal](38, 3) NULL,
	[CTV_PRE] [decimal](38, 3) NULL,
	[CTV_RIS] [decimal](38, 3) NULL,
	[CTV_LIQ] [decimal](38, 3) NULL,
	[PERC_EXT] [decimal](38, 2) NOT NULL,
	[PERC_INV] [decimal](38, 2) NOT NULL,
	[PERC_PRE] [decimal](38, 2) NOT NULL,
	[PERC_RIS] [decimal](38, 2) NOT NULL,
	[PERC_LIQ] [decimal](38, 2) NOT NULL,
	[CTV_RA] [decimal](38, 3) NULL,
	[CTV_NA] [decimal](38, 3) NULL,
	[CTV_RF] [decimal](38, 3) NULL,
	[CTV_CC] [decimal](38, 3) NULL,
	[CTV_SELF] [decimal](38, 3) NULL,
	[TotalePatrimonio] [decimal](38, 3) NULL,
	[DettMovS80] [int] NULL,
	[DettMovS129] [int] NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
	[sommaproventi] [int] NOT NULL,
	[CTV_SELF_FOGLIO] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_S10PatrimonioFinanziario](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](32) NULL,
	[Ordinamento] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](19, 5) NULL,
	[Percentuale] [decimal](19, 5) NULL,
	[Totale] [decimal](19, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S132ProfiloRischioAdeguatezza]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S132ProfiloRischioAdeguatezza](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[INSTITUTENAME] [varchar](26) NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [smallint] NULL,
	[DATAINIZIOVALIDITA] [varchar](10) NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[NOMEPROFILO] [varchar](20) NULL,
	[VAR] [numeric](12, 3) NULL,
	[VARSTRING] [varchar](4) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [varchar](4) NULL,
	[COVERAGE] [decimal](12, 3) NULL,
	[COVERAGESTRING] [int] NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[PERCENTAGE] [decimal](38, 3) NULL,
	[VarIsOk] [int] NULL,
	[RiskClassIsOk] [int] NULL,
	[ComplexityIsOk] [int] NULL,
	[Ully_perc] [decimal](10, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S133_S157DatiPiramide]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S133_S157DatiPiramide](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[NeedArea] [varchar](20) NULL,
	[AreaName] [varchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [varchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [varchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [varchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [varchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [varchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [varchar](4) NULL,
	[ordinamento] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S133_S157DatiPiramide_cf]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S133_S157DatiPiramide_cf](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[NeedArea] [varchar](20) NULL,
	[AreaName] [varchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [varchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [varchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [varchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [varchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [varchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [varchar](4) NULL,
	[ordinamento] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S148DistribuzioneAssetClass](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](32) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](38, 2) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[Totale] [decimal](19, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S178CasiParticolari_Testi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S178CasiParticolari_Testi](
	[ID] [int] NOT NULL,
	[Descrizione] [varchar](100) NULL,
	[Testo] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S178CasiParticolari_Testi_BKP_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S178CasiParticolari_Testi_BKP_PRE_RAFFORZAMENTO](
	[ID] [int] NOT NULL,
	[Descrizione] [varchar](100) NULL,
	[Testo] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Indicatore] [varchar](100) NULL,
	[Adeguato] [int] NULL,
	[DescrizioneEsito] [varchar](500) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note](
	[Ordine] [smallint] NULL,
	[Indicatore] [varchar](100) NULL,
	[Adeguato] [varchar](5) NULL,
	[DescrizioneEsito] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note_preMUA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note_preMUA](
	[Ordine] [smallint] NULL,
	[Indicatore] [varchar](100) NULL,
	[Adeguato] [varchar](5) NULL,
	[DescrizioneEsito] [varchar](1000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S179EmittentiConcentrazioneAlta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S179EmittentiConcentrazioneAlta](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Emittente] [varchar](250) NULL,
	[ctv] [decimal](15, 2) NULL,
	[flagAdeguatezza] [varchar](2) NULL,
	[franchigia] [decimal](15, 2) NULL,
	[percConcentrazione] [decimal](5, 2) NULL,
	[rating] [varchar](8) NULL,
	[sogliaConcentrazione] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S179EmittentiConcentrazioneAlta_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S179EmittentiConcentrazioneAlta_TEST](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[Ordine] [int] NULL,
	[Emittente] [varchar](250) NULL,
	[ObbligazioniControvalore] [decimal](15, 2) NULL,
	[ObbligazioniConcentrazione] [decimal](5, 2) NULL,
	[AzioniControvalore] [decimal](15, 2) NULL,
	[AzioniConcentrazione] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta](
	[Rete] [varchar](1) NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Ordine] [int] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Controvalore] [decimal](15, 2) NULL,
	[Compl_Base] [int] NULL,
	[Percentuale_CTV] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta_note]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta_note](
	[id] [int] NULL,
	[descrizione] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta_note_complessita]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta_note_complessita](
	[id] [int] NULL,
	[descrizione] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S25Anagrafica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S25Anagrafica](
	[Cliente] [varchar](101) NULL,
	[DatadiNascita] [varchar](10) NULL,
	[ETA] [smallint] NULL,
	[Professione] [varchar](30) NULL,
	[StatoCivile] [varchar](20) NULL,
	[NucleoFamiliare] [varchar](200) NULL,
	[Residenza] [varchar](300) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CodicePB] [varchar](6) NULL,
	[CodiceRete] [varchar](1) NULL,
	[CodiceContratto] [varchar](11) NULL,
	[StatoContratto] [int] NULL,
	[DataSottoscrizione] [varchar](10) NULL,
	[DataPerfezionamento] [varchar](10) NULL,
	[FasciaCPP] [varchar](5) NULL,
	[IndirizzoEmail] [varchar](50) NULL,
	[ProduzioneReport] [varchar](1) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Provincia] [varchar](35) NULL,
	[Nazione] [varchar](35) NULL,
	[PRESSO] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio](
	[RETE] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NOT NULL,
	[Partita_viaggiante] [decimal](15, 2) NOT NULL,
	[CTV_EXT] [decimal](15, 3) NOT NULL,
	[CTV_INV] [decimal](15, 3) NOT NULL,
	[CTV_PRE] [decimal](15, 3) NOT NULL,
	[CTV_RIS] [decimal](15, 3) NOT NULL,
	[CTV_LIQ] [decimal](15, 3) NOT NULL,
	[RisorseAllocate] [decimal](19, 3) NULL,
	[RisorseNonAllocate] [decimal](15, 3) NOT NULL,
	[RisorseFinanziarie] [decimal](20, 3) NULL,
	[Contocorrente] [decimal](15, 3) NOT NULL,
	[ctvself] [decimal](18, 3) NOT NULL,
	[TotalePatrimonio] [decimal](23, 3) NULL,
	[DettMovS80] [varchar](50) NULL,
	[DettMovS129] [varchar](50) NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
	[SommaProventi] [money] NULL,
	[CTVSelfFoglio] [decimal](18, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc](
	[RETE] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NOT NULL,
	[Partita_viaggiante] [decimal](15, 2) NOT NULL,
	[CTV_EXT] [decimal](15, 3) NOT NULL,
	[CTV_INV] [decimal](15, 3) NOT NULL,
	[CTV_PRE] [decimal](15, 3) NOT NULL,
	[CTV_RIS] [decimal](15, 3) NOT NULL,
	[CTV_LIQ] [decimal](15, 3) NOT NULL,
	[PERC_EXT] [decimal](16, 2) NOT NULL,
	[PERC_INV] [decimal](16, 2) NOT NULL,
	[PERC_PRE] [decimal](16, 2) NOT NULL,
	[PERC_RIS] [decimal](16, 2) NOT NULL,
	[PERC_LIQ] [decimal](16, 2) NOT NULL,
	[RisorseAllocate] [decimal](19, 3) NULL,
	[RisorseNonAllocate] [decimal](15, 3) NOT NULL,
	[RisorseFinanziarie] [decimal](20, 3) NULL,
	[Contocorrente] [decimal](15, 3) NOT NULL,
	[ctvself] [decimal](18, 3) NOT NULL,
	[TotalePatrimonio] [decimal](23, 3) NULL,
	[DettMovS80] [varchar](50) NULL,
	[DettMovS129] [varchar](50) NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
	[SommaProventi] [money] NULL,
	[CTVSelfFoglio] [decimal](18, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc_pez]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc_pez](
	[RETE] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NOT NULL,
	[Partita_viaggiante] [decimal](15, 2) NOT NULL,
	[CTV_EXT] [decimal](15, 3) NOT NULL,
	[CTV_INV] [decimal](15, 3) NOT NULL,
	[CTV_PRE] [decimal](15, 3) NOT NULL,
	[CTV_RIS] [decimal](15, 3) NOT NULL,
	[CTV_LIQ] [decimal](15, 3) NOT NULL,
	[PERC_EXT] [decimal](16, 2) NOT NULL,
	[PERC_INV] [decimal](16, 2) NOT NULL,
	[PERC_PRE] [decimal](16, 2) NOT NULL,
	[PERC_RIS] [decimal](16, 2) NOT NULL,
	[PERC_LIQ] [decimal](16, 2) NOT NULL,
	[RisorseAllocate] [decimal](19, 3) NULL,
	[RisorseNonAllocate] [decimal](15, 3) NOT NULL,
	[RisorseFinanziarie] [decimal](20, 3) NULL,
	[Contocorrente] [decimal](15, 3) NOT NULL,
	[ctvself] [decimal](18, 3) NOT NULL,
	[TotalePatrimonio] [decimal](23, 3) NULL,
	[DettMovS80] [varchar](50) NULL,
	[DettMovS129] [varchar](50) NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
	[SommaProventi] [money] NULL,
	[CTVSelfFoglio] [decimal](18, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_pez]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_pez](
	[RETE] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NOT NULL,
	[Partita_viaggiante] [decimal](15, 2) NOT NULL,
	[CTV_EXT] [decimal](15, 3) NOT NULL,
	[CTV_INV] [decimal](15, 3) NOT NULL,
	[CTV_PRE] [decimal](15, 3) NOT NULL,
	[CTV_RIS] [decimal](15, 3) NOT NULL,
	[CTV_LIQ] [decimal](15, 3) NOT NULL,
	[RisorseAllocate] [decimal](19, 3) NULL,
	[RisorseNonAllocate] [decimal](15, 3) NOT NULL,
	[RisorseFinanziarie] [decimal](20, 3) NULL,
	[Contocorrente] [decimal](15, 3) NOT NULL,
	[ctvself] [decimal](18, 3) NOT NULL,
	[TotalePatrimonio] [decimal](23, 3) NULL,
	[DettMovS80] [varchar](50) NULL,
	[DettMovS129] [varchar](50) NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
	[SommaProventi] [money] NULL,
	[CTVSelfFoglio] [decimal](18, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S80BisEvoluzioneRischio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S80BisEvoluzioneRischio](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Fase] [int] NULL,
	[DataFase] [datetime] NULL,
	[VarMassimoProfiloFinanziario] [decimal](15, 2) NULL,
	[VarComplessivo] [decimal](15, 3) NULL,
	[Copertura] [decimal](15, 3) NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL,
	[RiskClassString] [varchar](4) NULL,
	[RiskClassMaxString] [varchar](4) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_S80BisEvoluzioneRischio_pez]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_S80BisEvoluzioneRischio_pez](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Fase] [int] NULL,
	[DataFase] [datetime] NULL,
	[VarMassimoProfiloFinanziario] [decimal](15, 2) NULL,
	[VarComplessivo] [decimal](15, 3) NULL,
	[Copertura] [decimal](15, 3) NULL,
	[RISKCLASS] [decimal](15, 3) NULL,
	[RISKCLASSMAX] [decimal](15, 3) NULL,
	[RiskClassString] [varchar](4) NULL,
	[RiskClassMaxString] [varchar](4) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240119_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240119_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240123_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240123_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240124_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240124_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240125_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240125_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240201_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240201_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240209_165505_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240209_165505_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240209_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240209_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240214_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240214_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240217_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240217_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240225_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240225_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240318_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240318_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240416_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240416_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240419_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240419_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240507_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240507_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240509_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240509_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240510_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240510_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240513_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240513_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240521_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240521_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240618_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240618_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240718_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240718_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240802_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240802_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240806_184153_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240806_184153_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240806_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240806_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240824_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240824_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240912_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20240912_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241016_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241016_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241017]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241017](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241018_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241018_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241031_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241031_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241115_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20241115_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250122_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250122_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250131_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250131_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250211_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250211_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250212_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250212_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250214_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250214_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250218_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250218_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250319_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250319_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250418_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250418_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250508]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250508](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250510_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250510_preBonifica](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250512]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_20250512](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_segnalazionidataquality_bk20240318]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_segnalazionidataquality_bk20240318](
	[idSegnalzione] [int] IDENTITY(1,1) NOT NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_SegnalazioniDataQuality_HST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality_HST](
	[idSegnalzione] [int] NULL,
	[idTipoControllo] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[descSegnalazione] [varchar](250) NOT NULL,
	[idElaborazione] [int] NOT NULL,
	[richiesta] [varchar](100) NULL,
	[idFaseElaborazione] [int] NOT NULL,
	[dataInserimento] [datetime] NOT NULL,
	[Dt_hst] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TB_ST_Controlla_Stato_Stampa_Cruscotto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TB_ST_Controlla_Stato_Stampa_Cruscotto](
	[data_prima] [varchar](32) NULL,
	[conteggio_prima] [int] NULL,
	[data_dopo] [varchar](32) NULL,
	[conteggio_dopo] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_TipoControllo]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_TipoControllo](
	[idTipoControllo] [int] IDENTITY(1,1) NOT NULL,
	[DescTipoControllo] [varchar](30) NULL,
	[DescSegnalazione] [varchar](250) NULL,
PRIMARY KEY CLUSTERED 
(
	[idTipoControllo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tb_TipoFaseElaborazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tb_TipoFaseElaborazione](
	[idFaseElaborazione] [int] NOT NULL,
	[DescFaseElaborazione] [varchar](30) NULL,
PRIMARY KEY CLUSTERED 
(
	[idFaseElaborazione] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[test_icapital]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[test_icapital](
	[Codarea] [varchar](20) NOT NULL,
	[NomeArea] [varchar](30) NULL,
	[CodiceContratto] [char](11) NOT NULL,
	[ContrattoSGR] [varchar](128) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[DataInizio] [decimal](9, 0) NULL,
	[DataFine] [decimal](9, 0) NULL,
	[Totale] [decimal](15, 3) NULL,
	[ImportoVersato] [decimal](15, 3) NULL,
	[ImportoDaVersare] [decimal](15, 3) NULL,
	[rete] [char](1) NULL,
	[codicefiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TEST_REND_NON_RAPPR]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TEST_REND_NON_RAPPR](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](186) NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TEST_REND_NON_RAPPR_2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TEST_REND_NON_RAPPR_2](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](186) NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[test_w6catrf]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[test_w6catrf](
	[oid$] [nvarchar](50) NOT NULL,
	[cod_interno] [nvarchar](18) NOT NULL,
	[cod_sottoprodotto] [nvarchar](5) NOT NULL,
	[cod_isin] [nvarchar](18) NOT NULL,
	[cod_adeguatezza] [nvarchar](18) NOT NULL,
	[cod_maf] [nvarchar](18) NOT NULL,
	[cataloguename] [nvarchar](128) NOT NULL,
	[assetclassname] [nvarchar](128) NOT NULL,
	[bdpercentage] [numeric](10, 7) NOT NULL,
	[flgvisible] [numeric](9, 0) NOT NULL,
	[fcore] [numeric](3, 0) NOT NULL,
	[alberatura] [numeric](5, 0) NOT NULL,
	[esg_ambientale] [nvarchar](1) NOT NULL,
	[esg_sociale] [nvarchar](1) NOT NULL,
	[esg_governance] [nvarchar](1) NOT NULL,
	[cat_sfdr] [nvarchar](30) NOT NULL,
	[esg_rating] [nvarchar](3) NOT NULL,
	[trend_esg_rating] [nvarchar](3) NOT NULL,
	[descr_sgr] [nvarchar](250) NOT NULL,
	[perc_investimento_sfdr] [numeric](3, 2) NOT NULL,
	[perc_investimento_taxonomy] [numeric](3, 2) NOT NULL,
	[pai_lab_a_emissioni_gas_serra] [nvarchar](2) NOT NULL,
	[pai_lab_a_biodiversita] [nvarchar](2) NOT NULL,
	[pai_lab_a_acqua] [nvarchar](2) NOT NULL,
	[pai_lab_a_rifiuti] [nvarchar](2) NOT NULL,
	[pai_lab_a_gov_ambientale] [nvarchar](2) NOT NULL,
	[pai_lab_a_comb_fossili] [nvarchar](2) NOT NULL,
	[pai_lab_a_eff_energetica] [nvarchar](2) NOT NULL,
	[pai_lab_a_questioni_soc] [nvarchar](2) NOT NULL,
	[pai_lab_s_questioni_soc_dip] [nvarchar](2) NOT NULL,
	[pai_lab_s_gov_sociali] [nvarchar](2) NOT NULL,
	[label_green_bond] [nvarchar](2) NOT NULL,
	[label_social_bond] [nvarchar](2) NOT NULL,
	[label_sustainability_bond] [nvarchar](2) NOT NULL,
	[label_transition_bond] [nvarchar](2) NOT NULL,
	[label_sust_linked_bond] [nvarchar](2) NOT NULL,
	[label_eu_green_bond] [nvarchar](2) NOT NULL,
	[u_info_esg] [nvarchar](5) NOT NULL,
	[data_ora_inse] [datetime2](7) NULL,
	[data_ora_aggi] [datetime2](7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[test1]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[test1](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[PERC_EXT] [decimal](10, 2) NOT NULL,
	[PERC_INV] [decimal](10, 2) NOT NULL,
	[PERC_PRE] [decimal](10, 2) NOT NULL,
	[PERC_RIS] [decimal](10, 2) NOT NULL,
	[PERC_LIQ] [decimal](10, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TEST168]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TEST168](
	[CF] [varchar](16) NULL,
	[R] [char](1) NULL,
	[CTVASS] [decimal](19, 5) NULL,
	[CTVBF] [decimal](19, 5) NULL,
	[NORAP] [decimal](19, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[test2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[test2](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[perc_ext] [decimal](38, 2) NOT NULL,
	[perc_inv] [decimal](38, 2) NOT NULL,
	[perc_pre] [decimal](38, 2) NOT NULL,
	[perc_ris] [decimal](38, 2) NOT NULL,
	[perc_liq] [decimal](38, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[test3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[test3](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NULL,
	[Partita_viaggiante] [int] NOT NULL,
	[CTV_EXT] [decimal](38, 3) NULL,
	[CTV_INV] [decimal](38, 3) NULL,
	[CTV_PRE] [decimal](38, 3) NULL,
	[CTV_RIS] [decimal](38, 3) NULL,
	[CTV_LIQ] [decimal](38, 3) NULL,
	[PERC_EXT] [decimal](10, 2) NOT NULL,
	[PERC_INV] [decimal](10, 2) NOT NULL,
	[PERC_PRE] [decimal](10, 2) NOT NULL,
	[PERC_RIS] [decimal](10, 2) NOT NULL,
	[PERC_LIQ] [decimal](10, 2) NOT NULL,
	[CTV_RA] [decimal](38, 3) NULL,
	[CTV_NA] [decimal](38, 3) NULL,
	[CTV_RF] [decimal](38, 3) NULL,
	[CTV_CC] [decimal](38, 3) NULL,
	[CTV_SELF] [decimal](38, 3) NULL,
	[TotalePatrimonio] [decimal](38, 3) NULL,
	[DettMovS80] [int] NULL,
	[DettMovS129] [int] NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
	[sommaproventi] [int] NOT NULL,
	[CTV_SELF_FOGLIO] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2000) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL,
 CONSTRAINT [PK_C6MartPeriodico.TESTO_LETTERA_ACCETTAZIONE] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_20241003]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_20241003](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2000) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_20240621_preSPIcambio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_20240621_preSPIcambio](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_20240917]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_20240917](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_bkp_20241202]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina_bkp_20241202](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2500) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TIPO_ELABORAZIONE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TIPO_ELABORAZIONE](
	[TIPO_ELAB] [varchar](1) NOT NULL,
	[DESCRIZIONE] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TIPO_EMAIL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TIPO_EMAIL](
	[Tipo] [varchar](16) NOT NULL,
	[Descrizione] [varchar](255) NULL,
	[E_From] [varchar](80) NULL,
	[E_To] [varchar](4000) NULL,
	[E_Cc] [varchar](4000) NULL,
	[E_Ccn] [varchar](4000) NULL,
	[E_Subject] [varchar](150) NULL,
	[Testo] [text] NULL,
 CONSTRAINT [PK_TIPO_EMAIL] PRIMARY KEY CLUSTERED 
(
	[Tipo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[TRIMESTRALE_RUN_MASS_PARALLEL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[TRIMESTRALE_RUN_MASS_PARALLEL](
	[CODICEFISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[ID_PARALLEL] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tSegnala_Disallineamenti_Result]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tSegnala_Disallineamenti_Result](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](20) NULL,
	[Descrizione] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[tSegnala_ProdottiNonCensiti_Result]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[tSegnala_ProdottiNonCensiti_Result](
	[dtTrim] [varchar](8) NULL,
	[rete] [varchar](1) NULL,
	[codiceFiscale] [varchar](20) NULL,
	[TIPPROD] [varchar](100) NULL,
	[CODINT] [varchar](100) NULL,
	[CODPROD] [varchar](100) NULL,
	[SUBPROD] [varchar](100) NULL,
	[MAF] [varchar](100) NULL,
	[CODABI] [varchar](100) NULL,
	[ISIN] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[VCONTRATTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[VCONTRATTI](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[VerificaS80Campione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[VerificaS80Campione](
	[rete] [varchar](3) NULL,
	[cf] [varchar](32) NULL,
	[Type] [varchar](100) NULL,
	[Data riferimento] [datetime] NULL,
	[Extra rendimento] [varchar](100) NULL,
	[Investimento] [varchar](100) NULL,
	[Previdenza] [varchar](100) NULL,
	[Riserva] [varchar](100) NULL,
	[Liquidità] [varchar](100) NULL,
	[Totale risorse allocate] [varchar](100) NULL,
	[Risorse non allocate] [varchar](100) NULL,
	[Scoperto di Conto Corrente] [varchar](100) NULL,
	[Investimenti in corso] [varchar](100) NULL,
	[Totale patrimonio] [varchar](100) NULL,
	[VaR massimo profilo finanziario] [varchar](100) NULL,
	[Rischio Mercato (VaR%)] [varchar](100) NULL,
	[Copertura] [varchar](100) NULL,
	[Rischio Credito Massimo] [varchar](100) NULL,
	[Rischio Credito] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[VERIFICHECAMPIONE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[VERIFICHECAMPIONE](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CodAgente] [varchar](6) NULL,
	[UserModify] [varchar](10) NULL,
	[Verifica] [bit] NULL,
	[Esito] [varchar](2) NULL,
	[IdReport] [int] NULL,
	[datainizio] [datetime] NULL,
	[datafine] [datetime] NULL,
	[TipoReport] [varchar](3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[vTabellone_20240212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[vTabellone_20240212](
	[ChiaveClientePB] [int] NOT NULL,
	[Rete] [char](1) NULL,
	[Chiave_ACN] [varchar](16) NULL,
	[Tipo_Cliente] [varchar](15) NOT NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Partita_Iva] [varchar](16) NULL,
	[Codice_Mandato] [varchar](6) NULL,
	[Codice_Contratto] [varchar](11) NOT NULL,
	[Nome_Cliente] [varchar](50) NOT NULL,
	[Cognome_Cliente] [varchar](150) NOT NULL,
	[Data_Nascita_Cliente] [datetime] NOT NULL,
	[Indirizzo] [varchar](512) NULL,
	[Cap] [varchar](512) NOT NULL,
	[Citta] [varchar](512) NULL,
	[Provincia] [varchar](512) NULL,
	[Nazione] [varchar](512) NULL,
	[Agente] [char](6) NULL,
	[Nome_Agente] [varchar](128) NULL,
	[Cognome_Agente] [varchar](128) NULL,
	[Report_Monitoraggio] [varchar](2) NOT NULL,
	[Report_Diagnosi] [varchar](2) NOT NULL,
	[Data_Revoca] [datetime] NULL,
	[Flag_Private] [varchar](2) NOT NULL,
	[Flag_Professionale] [varchar](2) NOT NULL,
	[Data_Lettera_Benvenuto] [datetime] NULL,
	[Campione_SEI] [varchar](2) NOT NULL,
	[Campione_DA] [varchar](2) NOT NULL,
	[Lettera_Sostitutiva] [varchar](2) NOT NULL,
	[Blacklist_Temporanea] [varchar](2) NOT NULL,
	[Motivazione_Blacklist] [varchar](8000) NOT NULL,
	[Nome_PDF_Monitoraggio] [varchar](50) NOT NULL,
	[Nome_PDF_Diagnosi] [varchar](53) NOT NULL,
	[Nome_Zip] [varchar](331) NOT NULL,
	[Rol] [varchar](512) NOT NULL,
	[Preferenza_ESG] [varchar](2) NOT NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[Codice_Profilo] [smallint] NULL,
	[Codice_Profilo_EC] [decimal](5, 0) NULL,
	[Riserva] [char](1) NULL,
	[Investimento_Di_Lungo_Periodo] [char](1) NULL,
	[Complessita] [char](1) NULL,
	[Concentrazione_di_prodotti_complessi] [char](1) NULL,
	[Frequenza_delle_operazioni] [char](1) NULL,
	[Concentrazione_Emittenti] [char](1) NULL,
	[Persona_Giuridica] [decimal](1, 0) NULL,
	[Concentrazione_Valutaria] [char](1) NULL,
	[Esito_di_Coerenza] [char](1) NULL,
	[FLAGNQP] [char](1) NULL,
	[Flag_Privo_di_Legali_Rappresentanti_Delegati_Profilati] [char](1) NULL,
	[Soglia_ESG] [decimal](5, 2) NULL,
	[Max_Complessita_Prodotto] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[Spesa_Forzata] [decimal](13, 2) NULL,
	[Percentuale_Investimento_di_lungo_periodo] [decimal](5, 2) NULL,
	[Importo_Riserva] [decimal](13, 2) NULL,
	[Immobiliare] [varchar](2) NOT NULL,
	[Solo_Immobiliare] [varchar](2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[vTabellone_test]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[vTabellone_test](
	[ChiaveClientePB] [int] NOT NULL,
	[Rete] [char](1) NULL,
	[Chiave_ACN] [varchar](16) NULL,
	[Tipo_Cliente] [varchar](15) NOT NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Partita_Iva] [varchar](16) NULL,
	[Codice_Mandato] [varchar](6) NULL,
	[Codice_Contratto] [varchar](11) NOT NULL,
	[Nome_Cliente] [varchar](50) NOT NULL,
	[Cognome_Cliente] [varchar](150) NOT NULL,
	[Data_Nascita_Cliente] [datetime] NOT NULL,
	[Indirizzo] [varchar](512) NULL,
	[Cap] [varchar](512) NOT NULL,
	[Citta] [varchar](512) NULL,
	[Provincia] [varchar](512) NULL,
	[Nazione] [varchar](512) NULL,
	[Agente] [char](6) NULL,
	[Nome_Agente] [varchar](128) NULL,
	[Cognome_Agente] [varchar](128) NULL,
	[Report_Monitoraggio] [varchar](2) NOT NULL,
	[Report_Diagnosi] [varchar](2) NOT NULL,
	[Data_Revoca] [datetime] NULL,
	[Flag_Private] [varchar](2) NOT NULL,
	[Flag_Professionale] [varchar](2) NOT NULL,
	[Data_Lettera_Benvenuto] [datetime] NULL,
	[Campione_SEI] [varchar](2) NOT NULL,
	[Campione_DA] [varchar](2) NOT NULL,
	[Lettera_Sostitutiva] [varchar](2) NOT NULL,
	[Blacklist_Temporanea] [varchar](2) NOT NULL,
	[Motivazione_Blacklist] [varchar](8000) NOT NULL,
	[Nome_PDF_Monitoraggio] [varchar](50) NOT NULL,
	[Nome_PDF_Diagnosi] [varchar](53) NOT NULL,
	[Nome_Zip] [varchar](331) NOT NULL,
	[Rol] [varchar](512) NOT NULL,
	[Preferenza_ESG] [varchar](2) NOT NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_esg_minimo] [decimal](6, 3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[Codice_Profilo] [smallint] NULL,
	[Codice_Profilo_EC] [decimal](5, 0) NULL,
	[Adeg_Rischio] [varchar](2) NULL,
	[Riserva] [char](1) NULL,
	[Investimento_Di_Lungo_Periodo] [char](1) NULL,
	[Complessita] [char](1) NULL,
	[Concentrazione_di_prodotti_complessi] [char](1) NULL,
	[Frequenza_delle_operazioni] [char](1) NULL,
	[Concentrazione_Emittenti] [char](1) NULL,
	[Persona_Giuridica] [decimal](1, 0) NULL,
	[Concentrazione_Valutaria] [char](1) NULL,
	[Esito_di_Coerenza] [char](1) NULL,
	[FLAGNQP] [char](1) NULL,
	[Flag_Privo_di_Legali_Rappresentanti_Delegati_Profilati] [char](1) NULL,
	[Soglia_ESG] [decimal](5, 2) NULL,
	[Max_Complessita_Prodotto] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[Spesa_Forzata] [decimal](13, 2) NULL,
	[Percentuale_Investimento_di_lungo_periodo] [decimal](5, 2) NULL,
	[Importo_Riserva] [decimal](13, 2) NULL,
	[Immobiliare] [varchar](2) NOT NULL,
	[Solo_Immobiliare] [varchar](2) NOT NULL,
	[VaR_Portafoglio] [decimal](13, 2) NULL,
	[RFA] [decimal](38, 3) NULL,
	[Tipo_Scaduto] [varchar](8) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[vW6IndPtf_20240917]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[vW6IndPtf_20240917](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [varchar](1) NOT NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CATESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CATESG](
	[dttrim] [date] NOT NULL,
	[banca] [varchar](5) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codman] [varchar](50) NULL,
	[esg_e_prod_cli] [varchar](50) NULL,
	[esg_s_prod_cli] [varchar](50) NULL,
	[esg_g_prod_cli] [varchar](50) NULL,
	[prodotto_id] [nvarchar](256) NOT NULL,
	[position_id] [nvarchar](256) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20240912_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20240912_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241016_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241016_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241018_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241018_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241022_142301_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241022_142301_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241022_143236_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241022_143236_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241022_143618_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241022_143618_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241022_173355_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241022_173355_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241022_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241022_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241031_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241031_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20241115_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20241115_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250122_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250122_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250131_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250131_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250211_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250211_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250212_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250212_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250214_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250214_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250218_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250218_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250319_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250319_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250418_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250418_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CKADEG_20250510_preBonifica]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CKADEG_20250510_preBonifica](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6ckadeg_bkp_20240725]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6ckadeg_bkp_20240725](
	[Rete] [varchar](1) NOT NULL,
	[Chiave_Acn] [varchar](16) NOT NULL,
	[Codfis] [varchar](16) NULL,
	[Codman] [varchar](6) NULL,
	[Dttrim] [decimal](9, 0) NOT NULL,
	[Adeg_Check] [varchar](2) NOT NULL,
	[Adeg_Rischio] [varchar](2) NOT NULL,
	[Adeg_Riserva] [varchar](2) NOT NULL,
	[Adeg_Invl_Period] [varchar](2) NOT NULL,
	[Adeg_Compl] [varchar](2) NOT NULL,
	[Adeg_Conc_ProdCompl] [varchar](2) NOT NULL,
	[Adeg_Freq_Oper] [varchar](2) NOT NULL,
	[Adeg_Conc_Emitt] [varchar](2) NOT NULL,
	[Adeg_Conc_Valut] [varchar](2) NOT NULL,
	[Rfa_tot] [decimal](12, 2) NULL,
	[Rfa_sei] [decimal](12, 2) NULL,
	[Riserva] [decimal](12, 2) NULL,
	[Profilo] [varchar](2) NULL,
	[Profilo_EC] [varchar](2) NULL,
	[Indicatore_ChiamataR4] [varchar](2) NULL,
	[Flg_Legali_Rappresentanti] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLI_REK]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLI_REK](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL,
	[prodotto_id] [varchar](150) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIESG](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[U_PREFSOST] [varchar](1) NULL,
	[FLAGSFDR] [varchar](1) NOT NULL,
	[FLAGTAXO] [varchar](1) NOT NULL,
	[FLAGPAI] [varchar](1) NOT NULL,
	[SFDR_PERC] [decimal](5, 2) NOT NULL,
	[TAXO_PERC] [decimal](5, 2) NOT NULL,
	[PAI_A01] [varchar](1) NOT NULL,
	[PAI_A02] [varchar](1) NOT NULL,
	[PAI_A03] [varchar](1) NOT NULL,
	[PAI_A04] [varchar](1) NOT NULL,
	[PAI_A05] [varchar](1) NOT NULL,
	[PAI_A07] [varchar](1) NOT NULL,
	[PAI_A08] [varchar](1) NOT NULL,
	[PAI_S01] [varchar](1) NOT NULL,
	[PAI_S02] [varchar](1) NOT NULL,
	[PAI_A1] [varchar](100) NOT NULL,
	[PAI_A2] [varchar](100) NOT NULL,
	[PAI_A3] [varchar](100) NOT NULL,
	[PAI_A4] [varchar](100) NOT NULL,
	[PAI_A5] [varchar](100) NOT NULL,
	[PAI_A7] [varchar](100) NOT NULL,
	[PAI_A8] [varchar](100) NOT NULL,
	[PAI_S1] [varchar](100) NOT NULL,
	[PAI_S2] [varchar](100) NOT NULL,
	[PAI_A] [varchar](150) NOT NULL,
	[PAI_S] [varchar](150) NOT NULL,
	[PAI_NO_DETT] [varchar](1) NOT NULL,
	[PERC1ESG] [decimal](5, 2) NOT NULL,
	[PERCAMB] [decimal](5, 2) NOT NULL,
	[PERCSOC] [decimal](5, 2) NOT NULL,
	[PERCGOV] [decimal](5, 2) NOT NULL,
	[PERCAMB_OK] [decimal](5, 2) NOT NULL,
	[PERCSOC_OK] [decimal](5, 2) NOT NULL,
	[PERCGOV_OK] [decimal](5, 2) NOT NULL,
	[SFDR_PERCT] [decimal](5, 2) NOT NULL,
	[SFDR_PERC_OK] [decimal](5, 2) NOT NULL,
	[TAXO_PERCT] [decimal](5, 2) NOT NULL,
	[TAXO_PERC_OK] [decimal](5, 2) NOT NULL,
	[PAIA_PERCT] [decimal](5, 2) NOT NULL,
	[PAIA_PERC_OK] [decimal](5, 2) NOT NULL,
	[PAIS_PERCT] [decimal](5, 2) NOT NULL,
	[PAIS_PERC_OK] [decimal](5, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_2024011]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_2024011](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](18) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_20240115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_20240115](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_20240123_preTermID]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_20240123_preTermID](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_20240124]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_20240124](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_20250428]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_20250428](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL,
	[prodotto_id] [varchar](150) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_20250509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_20250509](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL,
	[prodotto_id] [varchar](150) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_B]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_B](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240202]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240202](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240206]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240206](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240227]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240227](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240227_101831]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240227_101831](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240228]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240228](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240228_102307]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240228_102307](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240502]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240502](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240802]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240802](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240802_161403]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240802_161403](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240802_161633]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240802_161633](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240802_162249]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240802_162249](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20240802_162853]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20240802_162853](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20241107]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20241107](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20241107_104558]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20241107_104558](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250217]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250217](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250217_154047]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250217_154047](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250401]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250401](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250401_170052]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250401_170052](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250401_170505]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250401_170505](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250513]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250513](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6clirep_b_20250513_155526]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6clirep_b_20250513_155526](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_B_20250513_2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_B_20250513_2](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](8) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](5) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_b_scartati]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_b_scartati](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_BK20240315]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_BK20240315](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_bkp_20241221](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_codman]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_codman](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_old]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_old](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_prova]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_prova](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_prova2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_prova2](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_sfilati_20240802]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_sfilati_20240802](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_staging]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_staging](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6clirep_timedeposit]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6clirep_timedeposit](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_timedeposit_2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_timedeposit_2](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6CLIREP_timedeposit_3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6CLIREP_timedeposit_3](
	[FLGCLI] [varchar](1) NOT NULL,
	[FLGBL] [varchar](1) NOT NULL,
	[TIPOELA] [varchar](1) NOT NULL,
	[DTTRIM] [int] NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[piva] [varchar](11) NOT NULL,
	[codman] [varchar](6) NULL,
	[CODFID] [varchar](1) NOT NULL,
	[CODAGE] [varchar](6) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[termid] [varchar](8) NULL,
	[anno] [int] NULL,
	[prog] [int] NULL,
	[quote] [int] NOT NULL,
	[CTV] [float] NULL,
	[codconf] [varchar](11) NULL,
	[rubr] [varchar](4) NULL,
	[custgar] [varchar](1) NULL,
	[cod_interno] [varchar](18) NULL,
	[codana] [varchar](12) NOT NULL,
	[FLAGPCT] [varchar](2) NOT NULL,
	[codprod] [varchar](2) NOT NULL,
	[cod_sottoprodotto] [varchar](5) NULL,
	[cod_isin] [varchar](12) NULL,
	[codlinea] [varchar](1) NOT NULL,
	[tipoptf] [varchar](20) NOT NULL,
	[area] [varchar](3) NULL,
	[progetto] [varchar](40) NULL,
	[codprj] [varchar](30) NOT NULL,
	[chiave_prodotto_terzi] [varchar](35) NULL,
	[assetterzi] [varchar](11) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](60) NULL,
	[codiceadeguatezza] [varchar](12) NULL,
	[cod_maf] [varchar](20) NULL,
	[conto] [varchar](12) NULL,
	[numpolizza] [varchar](11) NULL,
	[position_id] [varchar](250) NULL,
	[PREFSOST] [varchar](1) NULL,
	[FLAGAMB] [varchar](1) NULL,
	[FLAGSOC] [varchar](1) NULL,
	[FLAGGOV] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[w6indptf_20240802]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[w6indptf_20240802](
	[dttrim] [numeric](9, 0) NOT NULL,
	[rete] [nvarchar](1) NOT NULL,
	[codfis] [nvarchar](16) NOT NULL,
	[codman] [nvarchar](6) NOT NULL,
	[ptf_diversificato] [nvarchar](1) NOT NULL,
	[ptf_adeguato] [nvarchar](1) NOT NULL,
	[blacklist] [nvarchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20240917]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20240917](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241016]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241016](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241018]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241018](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241022]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241022](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241022_143603]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241022_143603](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241022_144255]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241022_144255](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241022_173439]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241022_173439](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241031]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241031](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20241115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20241115](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250122]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250122](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250131](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250211]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250211](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250212](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250214]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250214](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250218](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250319]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250319](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250418]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250418](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[W6IndPtf_20250510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[W6IndPtf_20250510](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [char](1) NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[WHITELIST_ZIP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[WHITELIST_ZIP](
	[Cod_Fiscale] [varchar](16) NULL,
	[Rete] [varchar](1) NULL,
	[Pacchetto_Zip] [int] NULL,
	[DATA_TRANSIZIONE] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[WHITELIST_ZIP_bk20240730]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[WHITELIST_ZIP_bk20240730](
	[Cod_Fiscale] [varchar](16) NULL,
	[Rete] [varchar](1) NULL,
	[Pacchetto_Zip] [int] NULL,
	[DATA_TRANSIZIONE] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250118]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250118](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250121]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250121](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250122]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250122](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250128]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250128](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250131](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250210](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250211]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250211](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250212](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250214]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250214](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250218](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250218_171830]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250218_171830](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250312]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250312](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250313]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250313](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250313_145146]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250313_145146](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250319]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250319](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250414]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250414](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250418]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250418](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250508]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250508](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseian2_20250510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseian2_20250510](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[PIVA] [varchar](15) NULL,
	[NOME] [varchar](34) NULL,
	[COGNOME] [varchar](64) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[WSEICAP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[WSEICAP](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NULL,
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [char](16) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NULL,
	[DTINIZ] [decimal](9, 0) NULL,
	[DTFINE] [decimal](9, 0) NULL,
	[CTV_COMMIT] [decimal](15, 3) NULL,
	[IMPVERS] [decimal](15, 3) NULL,
	[IMPRES] [decimal](15, 3) NULL,
	[DESCPROD] [varchar](128) NULL,
	[SGR] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[WSEICC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[WSEICC](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [char](16) NOT NULL,
	[CODCONFC] [char](11) NOT NULL,
	[CODCONFPR] [char](11) NOT NULL,
	[is_APC] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[WSEIRPF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[WSEIRPF](
	[dttrim] [numeric](9, 0) NULL,
	[rete] [varchar](2) NULL,
	[chiave_acn] [varchar](16) NULL,
	[codfis] [varchar](16) NULL,
	[codman] [varchar](8) NULL,
	[flgprof] [varchar](2) NULL,
	[flgec] [varchar](2) NULL,
	[data_ora_refresh] [datetime2](7) NULL,
	[data_ora_inse] [datetime2](7) NULL,
	[data_ora_aggi] [datetime2](7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[wseirpf_prefix]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[wseirpf_prefix](
	[dttrim] [numeric](9, 0) NULL,
	[rete] [varchar](2) NULL,
	[chiave_acn] [varchar](16) NULL,
	[codfis] [varchar](16) NULL,
	[codman] [varchar](8) NULL,
	[flgprof] [varchar](2) NULL,
	[flgec] [varchar](2) NULL,
	[data_ora_refresh] [datetime2](7) NULL,
	[data_ora_inse] [datetime2](7) NULL,
	[data_ora_aggi] [datetime2](7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ztmp_BL_NonDiversificati]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ztmp_BL_NonDiversificati](
	[RETE] [varchar](100) NULL,
	[codfis] [varchar](100) NULL,
	[DESCR_ANOM_VP] [varchar](100) NOT NULL,
	[DT] [datetime] NOT NULL,
	[Bloccato] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ztmp_tb_campione_da]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ztmp_tb_campione_da](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ztmp_tb_campione_Direct]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ztmp_tb_campione_Direct](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[ztmp_tb_campione_NoDirect]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[ztmp_tb_campione_NoDirect](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[flag_stampa] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodico].[zz2101_MONITORAGGIO_ATTUALE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodico].[zz2101_MONITORAGGIO_ATTUALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_ATTIVAZIONE] [datetime] NULL,
	[DATA_CTV] [datetime] NULL,
	[CTV_MONITORATO] [decimal](15, 2) NULL,
	[APPORTO_INIZIALE] [decimal](15, 2) NULL,
	[APPORTO_SUCCESSIVO] [decimal](15, 2) NULL,
	[LIQUIDAZIONI] [decimal](15, 2) NULL,
	[CEDOLE_DIVIDENDI] [decimal](15, 2) NULL,
	[MINUS_PLUSVALENZA] [decimal](15, 2) NULL,
	[RISORSE_ASSOCIATE] [decimal](15, 2) NULL,
	[RENDIMENTO_CUMULATO] [decimal](15, 2) NULL,
	[RENDIMENTO_ANNUALIZZATO] [decimal](15, 2) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ANAG_CLIENTI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME] [varchar](50) NULL,
	[COGNOME] [varchar](50) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [varchar](20) NULL,
	[NUM_COMPONENTI] [smallint] NULL,
	[NUM_FIGLI] [smallint] NULL,
	[ETA] [smallint] NULL,
	[PARTITA_IVA] [varchar](20) NULL,
	[CITTADINANZA] [varchar](20) NULL,
	[PERSONA_FIS_GIUR] [varchar](20) NULL,
	[INDIRIZZO] [varchar](150) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](50) NULL,
	[PRESSO] [varchar](32) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[STATO] [varchar](20) NULL,
	[RAG_SOC] [varchar](20) NULL,
	[SESSO] [varchar](1) NULL,
	[ID_PROMOTORE] [varchar](6) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK__ANAG_CLIENTI__245D67DE] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ANAG_SELF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ANAG_SELF](
	[Rete] [char](1) NULL,
	[CodFis] [char](16) NULL,
	[CodConf] [char](11) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Ctv] [decimal](15, 2) NULL,
	[DataSott] [decimal](9, 0) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodSottoprodotto] [varchar](5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[AREA_BISOGNO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[AREA_BISOGNO](
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_AREA] [varchar](30) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__AREA_BISOGNO__09A971A2] PRIMARY KEY CLUSTERED 
(
	[ID_AREA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[ASSETCLASS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[ASSETCLASS](
	[ID_ASSETCLASS] [varchar](20) NOT NULL,
	[DESCRIZIONE] [varchar](128) NULL,
	[LIVELLO] [smallint] NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK_ASSETCLASS] PRIMARY KEY CLUSTERED 
(
	[ID_ASSETCLASS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[CODIFICA_CREDITRISK]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[CODIFICA_CREDITRISK](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAL] [decimal](5, 2) NULL,
	[MAX_VAL] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[CODIFICA_RISCHIO](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAR] [decimal](5, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK__CODIFICA_RISCHIO__0F624AF8] PRIMARY KEY CLUSTERED 
(
	[PROFILO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[contrattosei]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[contrattosei](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[Data_Sott] [datetime] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Data_Perf_Base] [datetime] NULL,
	[Data_Perf] [datetime] NULL,
	[Fascia_CPP] [varchar](5) NULL,
	[Email] [varchar](50) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Prov] [varchar](2) NULL,
	[Nazione] [varchar](35) NULL,
	[Presso] [varchar](50) NULL,
	[Data_Inizio] [datetime] NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_DiagnosiPrec] [varchar](1) NULL,
	[Freq_MonitorPrec] [varchar](1) NULL,
	[Data_InizioConsInv] [datetime] NULL,
	[Data_InizioBase] [datetime] NULL,
	[Data_FineBase] [datetime] NULL,
	[Data_InizioAvanzato] [datetime] NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[ProgressivoInvio] [varchar](8) NULL,
	[GenerazioneReport] [varchar](1) NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[DataUltimoInvio] [datetime] NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[PartViaDisinv] [varchar](1) NULL,
	[NumSolleciti] [smallint] NULL,
	[Data_UltimoSollecito] [datetime] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_UltimaRevoca] [datetime] NULL,
	[Note] [varchar](1024) NULL,
	[Data_Invio_Diagnosi_Trimestrale] [datetime] NULL,
	[Data_Invio_Monitoraggio_Trimestrale] [datetime] NULL,
	[ProfiloAttivo] [bit] NULL,
	[Rol] [char](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
 CONSTRAINT [PK_contrattosei_1] PRIMARY KEY CLUSTERED 
(
	[Rete] ASC,
	[Cod_Fiscale] ASC,
	[CodiceContratto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF](
	[IDReport] [int] NOT NULL,
	[IDReportSemestrale] [int] NOT NULL,
	[IDChiaveRichiesta] [bigint] NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[ChiaveAgente] [varchar](8) NOT NULL,
	[NominativoAgente] [varchar](255) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[ChiaveCliente] [int] NOT NULL,
	[NominativoCliente] [varchar](255) NOT NULL,
	[DataRichiestaCatasto] [datetime] NULL,
	[DataRicezioneCatasto] [datetime] NULL,
	[DataRichiestaRischio] [datetime] NULL,
	[DataRicezioneRischio] [datetime] NULL,
	[Utente] [varchar](50) NULL,
	[Rfa] [decimal](19, 7) NULL,
	[Diversificazione] [decimal](19, 7) NULL,
	[Var] [decimal](19, 7) NULL,
	[DataRiferimento] [varchar](8) NULL,
	[CodiceContratto] [varchar](11) NULL,
	[TipoContratto] [varchar](1) NULL,
	[TipoReport] [varchar](2) NULL,
	[DataReport] [datetime] NULL,
	[DataReportUpdate] [datetime] NULL,
	[DataZip] [datetime] NULL,
	[DataZipUpdate] [datetime] NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioUpdate] [datetime] NULL,
	[FlagInvio] [varchar](1) NULL,
	[NomeFile] [varchar](50) NULL,
	[IDZip] [int] NULL,
 CONSTRAINT [PK__GESTIONEPDF] PRIMARY KEY CLUSTERED 
(
	[IDReport] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[Immobiliare_GestioneZIP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[Immobiliare_GestioneZIP](
	[IDZip] [int] NOT NULL,
	[NomeFile] [varchar](255) NOT NULL,
	[DataInvio] [datetime] NULL,
	[FlagInvio] [varchar](1) NULL,
	[NomeCartella] [varchar](255) NULL,
	[IDLottoElaborazione] [int] NOT NULL,
	[DataRiferimento] [varchar](8) NULL,
 CONSTRAINT [PK__GESTIONEZIP] PRIMARY KEY CLUSTERED 
(
	[IDZip] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 100, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[Maledetti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[Maledetti](
	[i_CodiceFiscale] [varchar](16) NOT NULL,
	[i_Rete] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[NomeRete] [varchar](30) NOT NULL,
	[Agente] [varchar](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisinv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[tip_contratto] [smallint] NULL,
	[contrattoold] [int] NOT NULL,
	[NoMonitoraggio] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModelloMonitoraggio] [int] NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[IdReportPDFDiagnosi] [int] NOT NULL,
	[IdReportPDFMonitoraggio] [int] NOT NULL,
	[scaduto] [int] NULL,
 CONSTRAINT [PK_Maledetti] PRIMARY KEY CLUSTERED 
(
	[i_CodiceFiscale] ASC,
	[i_Rete] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[MIFID]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[MIFID](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[PROFILO_ASS] [smallint] NULL,
	[DATA_INIZIO_VAL] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[RISKCLASS] [varchar](50) NULL,
	[EXPERIENCE] [smallint] NULL,
	[SCADUTO] [bit] NULL,
 CONSTRAINT [PK_MIFID] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[NuoviCasiImm_202411]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[NuoviCasiImm_202411](
	[Rete] [varchar](1) NULL,
	[CodFis] [varchar](20) NULL,
	[CodConf] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[PARTITE_VIAGGIANTI](
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[IMPORTO] [decimal](18, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
 CONSTRAINT [PK_PARTITE_VIAGGIANTI] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[PATRIMONIO_ALTRO](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[QUANTITA] [int] NULL,
	[DESCRIZIONE] [varchar](255) NULL,
	[CTV] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[PATRIMONIO_IMMOBILIARE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](256) NULL,
	[TIPOLOGIA] [varchar](100) NULL,
	[LOCALITA] [varchar](60) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[AFFITTO] [decimal](15, 3) NULL,
	[NOTE] [varchar](256) NULL,
	[DIV_RIFERIMENTO] [varchar](20) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[PIRAMIDE_MOD](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[TIPO_PROGETTO] [varchar](64) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CTV_PROGETTO] [decimal](15, 3) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ORIZZ_TEMP_NUM] [decimal](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](20) NULL,
	[CTV_TOTALE] [decimal](15, 3) NULL,
	[STATO_CONSULENZA] [varchar](30) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[RISCHIO_AGGREGATO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NOT NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CREDITRISK] [int] NULL,
	[ULLY_PERC] [decimal](10, 2) NULL,
	[CREDITRISKEMIT] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[RISCHIO_AGGREGATO_BED_20241125]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[RISCHIO_AGGREGATO_BED_20241125](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NOT NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[CREDITRISK] [int] NULL,
	[ULLY_PERC] [decimal](10, 2) NULL,
	[CREDITRISKEMIT] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[tab_semaforo]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[tab_semaforo](
	[trim_corrente] [varchar](20) NULL,
	[tipo_reportistica] [varchar](20) NULL,
	[id_milestone] [varchar](3) NULL,
	[milestone] [varchar](40) NULL,
	[descrizione] [varchar](500) NULL,
	[inizio_milestone] [datetime] NULL,
	[fine_milestone] [datetime] NULL,
	[flg_stato] [int] NULL,
	[fase] [int] NULL,
	[inizio_lotto] [datetime] NULL,
	[fine_lotto] [datetime] NULL,
	[is_check] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[TB_S133_S157DatiPiramide]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[TB_S133_S157DatiPiramide](
	[Rete] [varchar](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[NeedArea] [varchar](20) NULL,
	[AreaName] [varchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [varchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [varchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [varchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [varchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [varchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [varchar](4) NULL,
	[ordinamento] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6MartPeriodicoImmobiliare].[W6IMM_0110]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6MartPeriodicoImmobiliare].[W6IMM_0110](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CONTRATTO] [varchar](11) NOT NULL,
	[CONSULENZA] [varchar](10) NULL,
	[SERVIZIO_AGGIUNTIVO] [varchar](20) NULL,
	[STATO_ADD_IMMOBILIARE] [varchar](20) NULL,
	[STATO_IMPORTAZIONE] [varchar](10) NULL,
	[FLAG_IN_PERIMETRO] [varchar](1) NULL,
	[RENDICONTO_SEI] [varchar](1) NULL,
	[RENDICONTO_IMM] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[ACBDENOTH]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ACBDENOTH](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[BDPERCENTAGE] [numeric](22, 20) NULL,
	[BDBETA] [numeric](22, 20) NULL,
	[F_OID__PASSE_CDF1A] [varchar](35) NULL,
	[F_PFINANCIAL_815C0] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ACBDENTRY]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ACBDENTRY](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[F_PINDEXBREA_08079] [varchar](35) NULL,
	[F_PINSTRUMEN_FBCDE] [varchar](35) NULL,
	[BDPERCENTAGE] [decimal](23, 20) NULL,
	[BDBETA] [decimal](23, 20) NULL,
	[F_OID__PASSE_B8A1E] [varchar](35) NULL,
	[F_PFINANCIAL_65EBB] [varchar](35) NULL,
	[F_PFINANCIAL_C2FD3] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ADBKRELAT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ADBKRELAT](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[TYPE__TYPE_CAB4A] [varchar](128) NULL,
	[ADBKRELDESCR] [varchar](128) NULL,
	[ADBKRELNOTE] [varchar](128) NULL,
	[DEPENDANT] [varchar](35) NULL,
	[PHONEDECIMAL] [varchar](20) NULL,
	[F_OID__ADBKR_CBA9A] [varchar](35) NULL,
	[F_PADDRESSBO_24DA1] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ADS4WS_PROMOTORI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ADS4WS_PROMOTORI](
	[Rete] [varchar](1) NULL,
	[Codice] [varchar](6) NULL,
	[Cognome] [varchar](128) NULL,
	[Nome] [varchar](128) NULL,
	[Prefisso] [varchar](1) NULL,
	[Firma] [varchar](7) NULL,
	[DataInizioCollaborazione] [numeric](18, 0) NULL,
	[DataFineCollaborazione] [numeric](18, 0) NULL,
	[DataUltimaAggiornamento] [numeric](18, 0) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](50) NULL,
	[CittaNascita] [varchar](50) NULL,
	[DataNascita] [numeric](18, 0) NULL,
	[Indirizzo] [varchar](255) NULL,
	[Provincia] [varchar](2) NULL,
	[PrefissoTelefono] [varchar](20) NULL,
	[TelefonoAgenzia1] [varchar](20) NULL,
	[TelefonoAgenzia2] [varchar](20) NULL,
	[stato] [varchar](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ADS4WS_PROMOTORI_oldSchema]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ADS4WS_PROMOTORI_oldSchema](
	[Rete] [varchar](1) NULL,
	[Codice] [varchar](6) NULL,
	[Cognome] [varchar](128) NULL,
	[Nome] [varchar](128) NULL,
	[Prefisso] [varchar](1) NULL,
	[Firma] [varchar](7) NULL,
	[DataInizioCollaborazione] [datetime] NULL,
	[DataFineCollaborazione] [datetime] NULL,
	[DataUltimaAggiornamento] [datetime] NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](50) NULL,
	[CittaNascita] [varchar](50) NULL,
	[DataNascita] [datetime] NULL,
	[Indirizzo] [varchar](255) NULL,
	[Provincia] [varchar](2) NULL,
	[Telefono] [varchar](20) NULL,
	[TelefonoAgenzia1] [varchar](20) NULL,
	[TelefonoAgenzia2] [varchar](20) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ALL_ASSET_CLASS_PER_PROMET]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_ASSET_CLASS_PER_PROMET](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[ALL_CF_PB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_CF_PB](
	[ID_CLI] [varchar](35) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](138) NULL,
	[CHIAVE_PB] [varchar](35) NULL,
	[CHIAVE_CLIENTE] [varchar](35) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CODICE_PB] [varchar](128) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](35) NULL,
	[OID] [varchar](512) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ALL_CF_STATO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_CF_STATO](
	[CF_CLIENTE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[TOTALE_RIGHE] [int] NULL,
	[TOTALE_STATI] [int] NULL,
	[FLAG_UTILIZZO_STATO] [int] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ALL_CONSUL_ASUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_CONSUL_ASUL](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[AREASORTORDER] [decimal](19, 0) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[CONTROVALORE] [decimal](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [decimal](18, 0) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CODICEINTERNO] [varchar](50) NULL,
	[SOTTOPRODOTTO] [varchar](50) NULL,
	[CONTROVALORE_ASUL] [decimal](18, 0) NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[CATEGORIA] [varchar](17) NULL,
	[NUOVO_OID_CAT_PER_ASSET] [varchar](40) NULL,
	[CATEGORIA_2] [varchar](63) NULL,
	[COLO_JOIN] [varchar](40) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ALL_EMITTENTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_EMITTENTI](
	[CODICE_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[PATRIMONIO_INTERMEDIARIO] [numeric](18, 2) NULL,
	[EMITTENTE] [varchar](128) NULL,
	[PATRIMONIO_EMITTENTE] [numeric](18, 2) NULL,
	[CONTROVALORE_PRODOTTO] [numeric](18, 2) NULL,
	[AZ_OB] [varchar](2) NULL,
	[CTV_AZIONARIO] [numeric](18, 2) NULL,
	[CTV_OBBLIGAZIONARIO] [numeric](18, 2) NULL,
	[PATRIMONIO_AZ_OB_EMIT] [numeric](18, 2) NULL,
	[PATRIMONIO_AZ_OB_INTER] [numeric](18, 2) NULL,
	[PATRIMONIO_COMPLESSIVO] [numeric](18, 2) NULL,
	[CONCENTRAZIONE_EMITTENTE] [numeric](18, 2) NULL,
	[CONCENTRAZIONE_EMIT_INTERM] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[ALL_PATR_TERZI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_PATR_TERZI](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](20) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](64) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [decimal](19, 3) NULL,
	[C_VALUE_582FF] [decimal](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [decimal](18, 0) NULL,
	[CAPITALE_INVESTITO] [decimal](19, 3) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](128) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [decimal](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NULL,
	[ASSETID] [varchar](64) NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATETIME_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [decimal](19, 3) NULL,
	[LOCALITA] [varchar](128) NULL,
	[AFFITTOPERCEPITO] [decimal](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [decimal](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [decimal](19, 3) NULL,
	[DENOMINAZIONE] [varchar](128) NULL,
	[NUMEROQUOTE] [decimal](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESC] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](256) NULL,
	[TIPOLOGIA_RDESCR] [varchar](128) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ALL_PATRBF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_PATRBF](
	[AGENTE] [varchar](20) NULL,
	[CODICEFISCALE] [varchar](20) NULL,
	[PATRIMONIO_BF_CON_CC] [decimal](19, 2) NULL,
	[PATRIMONIOBF_SENZA_CC] [decimal](19, 2) NULL,
	[PATRIMONIOBF_SOLO_CC] [decimal](19, 2) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ALL_POS_CONS_CAT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ALL_POS_CONS_CAT](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONSULENZA] [varchar](8) NULL,
	[PK_ALTERNATIVA_CONS] [varchar](64) NULL,
	[DATA_MIGRAZIONE_CONS] [datetime] NULL,
	[PK_AREA] [varchar](35) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[C_PERCENTAGE_86095] [decimal](19, 7) NULL,
	[PK_PRC_] [varchar](35) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[C_CTVNEEDARE_EA4FB] [decimal](19, 7) NULL,
	[C_PROJECTCTV_39520] [decimal](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [decimal](19, 7) NULL,
	[C_RISORSELIQ_DF807] [decimal](19, 7) NULL,
	[PERCENTUALE_MODELLO] [decimal](19, 0) NULL,
	[ID_MONITORAGGIO_] [varchar](12) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[C_PERCENTUAL_12346] [decimal](19, 7) NULL,
	[DATA_ORDINAMENTO_INV] [datetime] NULL,
	[CONTRATTO] [varchar](20) NULL,
	[CONTROVALORE_PER_INV] [decimal](19, 7) NULL,
	[C_INVESTIMEN_60625] [decimal](19, 7) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[C_OUTCTV_B4FB8] [decimal](19, 7) NULL,
	[CONTROVALORE] [decimal](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [decimal](18, 0) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CONTO] [varchar](20) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[NUMPOL] [varchar](20) NULL,
	[TERMID] [varchar](7) NULL,
	[ANNO] [varchar](3) NULL,
	[PROG] [varchar](5) NULL,
	[NOME_PRODOTTO] [varchar](512) NULL,
	[NEED_AREA_ABBREVIATA_DI_POS] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_POS] [varchar](512) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[COD_ADEGUATEZZA] [varchar](20) NULL,
	[ALBERATURA] [varchar](45) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[ISNEGOTIABLE] [decimal](1, 0) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[AREASORTORDER] [decimal](19, 0) NULL,
	[ORIGINE_FILE_CATALOGO] [varchar](1) NULL,
	[FLAG_PRESENZA_MAPPATURA] [varchar](2) NULL,
	[RAGGRUPPAMEN_NOME_PROGET] [varchar](64) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[ASSETCLASS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ASSETCLASS](
	[VERSION_] [decimal](19, 0) NULL,
	[OID_] [varchar](35) NULL,
	[ASSETCLASSID] [varchar](20) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ASSETCLASSDESCR] [varchar](128) NULL,
	[ASSETCLASSLEV] [decimal](19, 0) NULL,
	[ORDINE] [smallint] NULL,
	[ISRESIDUAL] [decimal](1, 0) NULL,
	[F_PASSETCLAS_2FB94] [varchar](35) NULL,
	[F_OID__ASSET_B965C] [varchar](35) NULL,
	[CODICE_ISIN] [varchar](50) NULL,
	[CODICE_MAF] [varchar](50) NULL,
	[CODICE_ADEGUATEZZA] [varchar](50) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[brs_aggr_out_aladdin_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[brs_aggr_out_aladdin_bkp_20241221](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[C_BO_453FB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[C_BO_453FB](
	[OID$] [varchar](35) NOT NULL,
	[C_VALUE_7BD3C] [decimal](19, 0) NULL,
	[C_DESCRIZION_93ABE] [varchar](128) NULL,
	[PK_PRC] [varchar](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[CATINAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[CATINAREA](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [decimal](19, 0) NULL,
	[C_ISMAINNEED_9C780] [decimal](1, 0) NULL,
	[NEEDAREAVALUE] [varchar](10) NULL,
	[F_OID$_NEEDA_2C362] [varchar](35) NULL,
	[F_PCATALOGUE_5D024] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[CATITEMREF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[CATITEMREF](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [decimal](19, 0) NULL,
	[PRODUCTCURRENCY] [varchar](3) NULL,
	[PRODUCTCOUNTRY] [varchar](35) NULL,
	[PRODUCTREGION] [varchar](35) NULL,
	[CATALOGUEID] [varchar](128) NOT NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TYPE$_BCATAL_FC317] [varchar](128) NULL,
	[CATEGORY] [varchar](20) NULL,
	[INSTITUTIONS] [varchar](20) NULL,
	[COUNTRY] [varchar](3) NULL,
	[PIAZZA] [varchar](30) NULL,
	[ULTIMOPRZCURR] [varchar](3) NULL,
	[ULTIMOPRZ] [decimal](19, 3) NULL,
	[CAPITALERISPARMIO] [varchar](10) NULL,
	[LMINCAPCONTRCURR] [varchar](3) NULL,
	[LMINCAPCONTR] [decimal](19, 3) NULL,
	[LSUCCAPCONTRCURR] [varchar](3) NULL,
	[LSUCCAPCONTR] [decimal](19, 3) NULL,
	[LMINRISPCONTRCURR] [varchar](3) NULL,
	[LMINRISPCONTR] [decimal](19, 3) NULL,
	[LSUCRISPCONTRCURR] [varchar](3) NULL,
	[LSUCRISPCONTR] [decimal](19, 3) NULL,
	[LMINCOMMCURR] [varchar](3) NULL,
	[LMINCOMM] [decimal](19, 3) NULL,
	[DELEGAGESTIONALE] [varchar](128) NULL,
	[TIPOLOGIAPERPICK] [varchar](10) NULL,
	[EXPIRATIONDATE] [datetime] NULL,
	[RISKPRICE] [varchar](10) NULL,
	[FISCALREGIMENT] [varchar](10) NULL,
	[QUOTATO] [varchar](10) NULL,
	[CLASSEDIPREZZO] [varchar](10) NULL,
	[BONDRATING] [varchar](20) NULL,
	[BONDDURATION] [varchar](20) NULL,
	[TEMPMIN] [varchar](20) NULL,
	[TEMPMAX] [varchar](20) NULL,
	[PRIPRODCOM] [varchar](20) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[MACROACOBPERC] [decimal](19, 7) NULL,
	[MACROACALPERC] [decimal](19, 7) NULL,
	[MACROACAZPERC] [decimal](19, 7) NULL,
	[MACROACMNPERC] [decimal](19, 7) NULL,
	[LINEEFINACC] [varchar](128) NULL,
	[TIPOVERS] [varchar](35) NULL,
	[TIPOPOLIZRAM1] [varchar](35) NULL,
	[DURATACONTR] [varchar](20) NULL,
	[GARDEMO] [varchar](35) NULL,
	[RISKPRESSCAD] [varchar](35) NULL,
	[LIVFLUTDUR] [varchar](10) NULL,
	[OPZRENDVIT] [decimal](1, 0) NULL,
	[METAA] [varchar](20) NULL,
	[METAB] [varchar](20) NULL,
	[METAC] [varchar](20) NULL,
	[RATOBBLIG] [varchar](20) NULL,
	[ULTIMOPREZZOCURR] [varchar](3) NULL,
	[ULTIMOPREZZO] [decimal](19, 3) NULL,
	[DATARIFPREZZO] [datetime] NULL,
	[CODICEADB] [varchar](20) NULL,
	[AGGIORNFEED] [varchar](20) NULL,
	[DISTRPROV] [varchar](20) NULL,
	[CODTIPOCONTR] [varchar](20) NULL,
	[ULTPRZSECCURR] [varchar](3) NULL,
	[ULTPRZSEC] [decimal](19, 3) NULL,
	[DATAULTPRZSEC] [datetime] NULL,
	[CODBLOOMBERG] [varchar](20) NULL,
	[DENOMUNITLNK] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[GENERICDATA] [datetime] NULL,
	[GENERICCURCURR] [varchar](3) NULL,
	[GENERICCUR] [decimal](19, 3) NULL,
	[GENERICSTRING1] [varchar](20) NULL,
	[GENERICSTRING2] [varchar](20) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[PRODUCTSTATUS] [varchar](35) NULL,
	[ISVISIBLE] [decimal](1, 0) NULL,
	[ISNEGOTIABLE] [decimal](1, 0) NULL,
	[BRIEFDESCRIPTION] [varchar](20) NULL,
	[F_OID$_VAR_CDDF8] [varchar](35) NULL,
	[RISKPROFOFSUITCLS] [varchar](20) NULL,
	[OPINION] [varchar](35) NULL,
	[OPINIONDATE] [datetime] NULL,
	[F_OID$_CATAL_B3E14] [varchar](35) NULL,
	[F_OID$_PCATE_F3BF6] [varchar](35) NULL,
	[F_OID$_MAINA_76C35] [varchar](35) NULL,
	[F_OID$_INSTR_B5526] [varchar](35) NULL,
	[F_OID$_MAINS_5FCE5] [varchar](35) NULL,
	[F_OID$_MAINR_08A23] [varchar](35) NULL,
	[F_OID$_PRISK_AAC57] [varchar](35) NULL,
	[F_OID$_PRODU_F8FBB] [varchar](35) NULL,
	[F_OID$_MARKE_F3D2D] [varchar](35) NULL,
	[COLL_SKANDIA] [decimal](19, 0) NULL,
	[CODASSETSAT] [varchar](20) NULL,
	[STRTYPE] [varchar](2) NULL,
	[CODEMI] [varchar](13) NULL,
	[COMPLEX] [numeric](2, 0) NULL,
 CONSTRAINT [PK_CATITEMREF] PRIMARY KEY CLUSTERED 
(
	[OID$] ASC,
	[CATALOGUEID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[COMPTYPE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[COMPTYPE](
	[OID_] [varchar](35) NULL,
	[TYPE_] [varchar](30) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[CONO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[CONO](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [decimal](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [decimal](19, 7) NULL,
	[F_PPROJECT_P_46507] [varchar](35) NULL,
	[C_QUANTILE50_C47E0] [decimal](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[CONSAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[CONSAREA](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_7FBE3] [varchar](35) NULL,
	[C_CONSULENZA_A58F3] [varchar](64) NULL,
	[C_CONSULENZA_E94E3] [varchar](64) NULL,
	[C_NEEDAREA_V_46360] [varchar](512) NULL,
	[C_NEEDAREA_D_911D8] [varchar](512) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_OUTCTV_A27B5] [numeric](19, 7) NULL,
	[C_PATRIMONIO_F4B8E] [numeric](19, 7) NULL,
	[C_INVESTIMEN_AC24C] [numeric](19, 7) NULL,
	[C_CONSULENZA_0C219] [numeric](1, 0) NULL,
	[C_CONSULENZA_1C9D3] [numeric](1, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[CONSUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[CONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_CONSULENZA_EBDBE] [varchar](64) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_TIPOCO_1EA7C] [varchar](256) NULL,
	[C_CONTROVALO_C57EE] [numeric](19, 7) NULL,
	[C_PATRIMONIO_0BF30] [numeric](19, 7) NULL,
	[C_ALTROPATRI_E90EF] [numeric](19, 7) NULL,
	[C_ALTRO_5AD86] [numeric](19, 7) NULL,
	[C_DATAINIZIO_35C15] [datetime] NULL,
	[C_RISORSENON_A04BD] [numeric](19, 7) NULL,
	[C_INVESTIMEN_C4514] [numeric](19, 7) NULL,
	[C_INVESTIMEN_36DE3] [numeric](19, 7) NULL,
	[C_IDQUESTION_5549B] [varchar](512) NULL,
	[C_DATAQUESTI_5069A] [datetime] NULL,
	[C_VARCONSOB_28C92] [numeric](19, 7) NULL,
	[C_VALORIALLI_0CA23] [numeric](1, 0) NULL,
	[C_DATAPIRAMI_661DA] [datetime] NULL,
	[C_DATACONSVE_D3DE3] [datetime] NULL,
	[C_DATACONSOR_EA88E] [datetime] NULL,
	[C_PROFILOCON_81F5D] [numeric](19, 0) NULL,
	[C_DATAMIGRAZ_BF705] [datetime] NULL,
	[C_SALVADANAI_B156A] [numeric](19, 7) NULL,
	[C_CONSULENZA_2C1E1] [numeric](1, 0) NULL,
	[C_DATACONSVE_66B66] [datetime] NULL,
	[C_DATACAMBIO_79509] [datetime] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[emit]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[emit](
	[codemi] [varchar](13) NOT NULL,
	[descr] [varchar](123) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[ESG_ANAG_METRICHE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ESG_ANAG_METRICHE](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [nvarchar](50) NULL,
	[ESGRating] [nvarchar](3) NULL,
	[TrendESGRating] [nvarchar](3) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_E] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_S] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](64) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](64) NULL,
	[PAI_LAB_A_Acqua] [varchar](64) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](64) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](64) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](64) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](64) NULL,
	[PAI_LAB_A_Settore_Immobiliare] [varchar](64) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](64) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](64) NULL,
	[Label_PAI_A] [varchar](256) NULL,
	[Label_PAI_S] [varchar](256) NULL,
	[Label_U_INFO_ESG] [varchar](256) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[ESG_ANAG_METRICHE_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ESG_ANAG_METRICHE_bkp_20241221](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [nvarchar](50) NULL,
	[ESGRating] [nvarchar](3) NULL,
	[TrendESGRating] [nvarchar](3) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](64) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](64) NULL,
	[PAI_LAB_A_Acqua] [varchar](64) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](64) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](64) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](64) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](64) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](64) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](64) NULL,
	[Label_PAI_A] [varchar](256) NULL,
	[Label_PAI_S] [varchar](256) NULL,
	[Label_U_INFO_ESG] [varchar](256) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[ESG_ANAG_METRICHE_preESG3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[ESG_ANAG_METRICHE_preESG3](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [nvarchar](50) NULL,
	[ESGRating] [nvarchar](3) NULL,
	[TrendESGRating] [nvarchar](3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[esg_metriche_cliente_il_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[esg_metriche_cliente_il_20241221](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[INDREND]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[INDREND](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[C_VAR_A94EA] [decimal](19, 7) NULL,
	[C_TEMPOINVES_CE300] [decimal](19, 0) NULL,
	[C_COPERTURA_94818] [decimal](19, 7) NULL,
	[C_PERDITAMAX_F5B51] [decimal](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[INSTRBDS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[INSTRBDS](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[BDISIN] [varchar](20) NULL,
	[BDMAF] [varchar](20) NULL,
	[F_OID__PCATA_5DDA6] [varchar](35) NULL,
	[PROVENIENZA] [varchar](50) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[MACROASSETCLASS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[MACROASSETCLASS](
	[ASSETCLASSID] [varchar](128) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINE] [smallint] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[NEEDAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[NEEDAREA](
	[OID_] [varchar](35) NOT NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[AREAID] [varchar](128) NOT NULL,
	[AREANAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_PNEEDAREA__742D7] [varchar](35) NULL,
	[AREASORTORDER] [decimal](19, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[OTHINTRST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[OTHINTRST](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[INTERESTDESC] [varchar](128) NULL,
	[INTERESTCUR] [varchar](3) NULL,
	[INTERESTAMT] [decimal](19, 3) NULL,
	[F_PQUANTIFIC_76FF6] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[PORTMOD]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[PORTMOD](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[F_PPROJECT_P_EE748] [varchar](35) NULL,
	[C_ASSET_CD02D] [varchar](20) NULL,
	[C_PERCENTUAL_143B7] [decimal](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[POSITION]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[POSITION](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[F_PCONSULENZ_56F23] [varchar](35) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CONSULENZAID] [varchar](64) NULL,
	[TYPE__CATALO_35E2A] [varchar](256) NULL,
	[POSITIONNAME] [varchar](512) NULL,
	[CONTROVALORE] [decimal](19, 7) NULL,
	[C_OUTCTV_B4FB8] [decimal](19, 7) NULL,
	[C_NEEDAREASE_3D485] [varchar](512) NULL,
	[C_NEEDAREASE_30873] [varchar](512) NULL,
	[CATALOGUEITEMID] [varchar](128) NULL,
	[F_OID__POSIT_00526] [varchar](35) NULL,
	[F_PPROJECT_P_B5629] [varchar](35) NULL,
	[CTVINIZIALE] [decimal](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[PRCONSUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[PRCONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_B69E4] [varchar](35) NULL,
	[C_PROJECTID_9894C] [varchar](64) NULL,
	[C_CONSULENZA_CB331] [varchar](64) NULL,
	[C_CONSULENZA_A7FC6] [varchar](64) NULL,
	[NEEDAREAID] [varchar](128) NULL,
	[TYPE$_PROJEC_14674] [varchar](256) NULL,
	[C_PROJECTNAM_11D1A] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_CREATIONDA_732BD] [datetime] NULL,
	[C_LASTMODIFI_3BF4A] [datetime] NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[F_OID$_FREQU_A5FAB] [varchar](35) NULL,
	[C_IMPORTOPER_7A987] [numeric](19, 7) NULL,
	[F_OID$_RISKP_9CF4A] [varchar](35) NULL,
	[F_OID$_ORIZZ_4A868] [varchar](35) NULL,
	[C_PERDITAAVV_D414B] [numeric](19, 7) NULL,
	[C_PERDITAMAX_55078] [numeric](19, 7) NULL,
	[C_GUADAGNOAV_2BD07] [numeric](19, 7) NULL,
	[C_GUADAGNOMA_D14C4] [numeric](19, 7) NULL,
	[C_RISERVENON_CCD2D] [numeric](1, 0) NULL,
	[C_RISERVEMON_5E189] [numeric](1, 0) NULL,
	[C_RISERVEOBB_121FA] [numeric](1, 0) NULL,
	[C_RISERVEAZI_175C0] [numeric](1, 0) NULL,
	[C_CONSULENZA_ACEEE] [numeric](1, 0) NULL,
	[C_PROJECTIDM_1AF31] [varchar](12) NULL,
	[C_PROJECTIDR_51E22] [varchar](64) NULL,
	[C_DATAULTIMO_FFA71] [datetime] NULL,
	[C_PERDITAMAX_BEABF] [numeric](1, 0) NULL,
	[C_PERDITAMAX_AAB4C] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_43151] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_0F76F] [numeric](1, 0) NULL,
	[F_OID$_PROJE_CD4BB] [varchar](35) NULL,
	[C_NOTE_B4B97] [varchar](100) NULL,
	[C_PERCENTUAL_69019] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[F_OID$_RISKS_A3B54] [varchar](35) NULL,
	[C_ORDERTIMES_80019] [datetime] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[Prodotti_Fuori_Adeguatezza]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[Prodotti_Fuori_Adeguatezza](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[TipoProdotto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[PROMETEIA_AGGR](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](30) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](30) NOT NULL,
	[McVar] [varchar](30) NOT NULL,
	[McVarP] [varchar](30) NOT NULL,
	[Beneficio] [varchar](30) NOT NULL,
	[Copertura] [varchar](30) NOT NULL,
	[Totale] [varchar](40) NOT NULL,
	[Clsint] [varchar](40) NULL,
	[Mdclcclsint] [varchar](40) NULL,
	[Cllsr] [varchar](40) NULL,
	[ClControparte] [varchar](40) NULL,
	[Cltipo] [varchar](40) NULL,
	[ClMercato] [varchar](40) NULL,
	[ClLiquidita] [varchar](40) NULL,
	[ISR] [varchar](40) NULL,
	[IndMercato] [varchar](40) NULL,
	[IndControparte] [varchar](40) NULL,
	[IndLiquidita] [varchar](40) NULL,
	[Ully] [varchar](40) NULL,
	[Ully_perc] [varchar](40) NULL,
	[Elly_perc] [varchar](40) NULL,
	[CRC] [varchar](40) NULL,
	[RcTot] [varchar](40) NULL,
	[Ully_perc_rc] [varchar](40) NULL,
	[Ully_perc_se] [varchar](40) NULL,
	[CoperturaPortafoglio] [varchar](40) NULL,
	[CoperturaProxyRC] [varchar](40) NULL,
	[NumTit] [varchar](40) NULL,
	[NumTitRC] [varchar](40) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[PROMETEIA_AGGR_IndDiv]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[PROMETEIA_AGGR_IndDiv](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](50) NULL,
	[indicatore] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[prometeia_aggr_NUOVO_MOTORE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[prometeia_aggr_NUOVO_MOTORE](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](255) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](255) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](255) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](255) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](255) NOT NULL,
	[McVar] [varchar](255) NOT NULL,
	[McVarP] [varchar](255) NOT NULL,
	[Beneficio] [varchar](255) NOT NULL,
	[Copertura] [varchar](255) NOT NULL,
	[Totale] [varchar](255) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[PROMETEIA_DETT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[PROMETEIA_DETT](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[CodiceProdotto] [varchar](20) NOT NULL,
	[Piazza] [varchar](50) NULL,
	[CodVal] [varchar](50) NULL,
	[Classe] [varchar](50) NULL,
	[VarAssoluto] [varchar](255) NOT NULL,
	[VaRPercentuale] [varchar](255) NOT NULL,
	[CVarAssoluto] [varchar](255) NOT NULL,
	[CVarPercentuale] [varchar](255) NOT NULL,
	[RiskSize] [varchar](255) NOT NULL,
	[McVar] [varchar](255) NOT NULL,
	[McVarP] [varchar](255) NOT NULL,
	[TipoCopertura] [varchar](255) NOT NULL,
	[CtvNominale] [varchar](255) NOT NULL,
	[CtvReale] [varchar](255) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[QUANTIF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[QUANTIF](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[UPDATETIMEDATETIME] [datetime] NULL,
	[EXPNEEDSCUR] [varchar](3) NULL,
	[EXPNEEDSAMT] [decimal](19, 3) NULL,
	[GROSSINPRIMCUR] [varchar](3) NULL,
	[GROSSINPRIMAMT] [decimal](19, 3) NULL,
	[GROSSINSECCUR] [varchar](3) NULL,
	[GROSSINSECAMT] [decimal](19, 3) NULL,
	[RETIREMENTYEARS] [decimal](19, 0) NULL,
	[STATEPENSIONAMT] [decimal](19, 3) NULL,
	[PRIVATEPENSIONCUR] [varchar](3) NULL,
	[PRIVATEPENSIONAMT] [decimal](19, 3) NULL,
	[LIFEINTERESTCUR] [varchar](3) NULL,
	[LIFEINTERESTAMT] [decimal](19, 3) NULL,
	[C_FINANCIALI_8D659] [decimal](19, 0) NULL,
	[C_FINANCIALI_91C75] [decimal](19, 7) NULL,
	[INSINTERESTCUR] [varchar](3) NULL,
	[STATEPENSIONCUR] [varchar](3) NULL,
	[INSINTERESTAMT] [decimal](19, 3) NULL,
	[INVINTERESTCUR] [varchar](3) NULL,
	[INVINTERESTAMT] [decimal](19, 3) NULL,
	[REINTERESTCUR] [varchar](3) NULL,
	[REINTERESTAMT] [decimal](19, 3) NULL,
	[PRIMARYGAPCUR] [varchar](3) NULL,
	[PRIMARYGAPAMT] [decimal](19, 3) NULL,
	[SECONDARYGAPCUR] [varchar](3) NULL,
	[SECONDARYGAPAMT] [decimal](19, 3) NULL,
	[TOCONSUMPTIONETM] [decimal](1, 0) NULL,
	[TOINTERESTETM] [decimal](1, 0) NULL,
	[LOCKPERCFRSTBRNC] [decimal](1, 0) NULL,
	[PRFCONSUMPTIONS] [decimal](19, 7) NULL,
	[PRFGROSSAMOUNT] [decimal](19, 7) NULL,
	[PRFPERCFRSTBRNC] [decimal](19, 7) NULL,
	[PRFADDRETIREMENT] [decimal](19, 7) NULL,
	[PRFLIFEINTEREST] [decimal](19, 7) NULL,
	[PRFINTERFRSTBRNC] [decimal](19, 7) NULL,
	[PRFINTERUNIT] [decimal](19, 7) NULL,
	[F_OID__ADDRE_81D21] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[RISKCLASS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RISKCLASS](
	[COD] [smallint] NOT NULL,
	[MINVAL] [decimal](7, 2) NOT NULL,
	[MAXVAL] [decimal](7, 2) NOT NULL,
	[DESCR] [varchar](50) NOT NULL,
 CONSTRAINT [PK_RISKCLASS] PRIMARY KEY CLUSTERED 
(
	[COD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RiskEmit]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RiskEmit](
	[Classe] [varchar](50) NULL,
	[MinVal] [numeric](18, 3) NULL,
	[MaxVal] [numeric](18, 3) NULL,
	[Ordine] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_anagrafica_promotori]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_anagrafica_promotori](
	[RETE] [char](1) NULL,
	[STATO] [char](1) NULL,
	[CODAGE] [char](6) NULL,
	[DT_NASCITA] [int] NULL,
	[DT_INI_COLLAB] [int] NULL,
	[DT_TERMINAZIONE] [int] NULL,
	[NOME] [varchar](128) NULL,
	[COGNOME] [varchar](128) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[TELEFONO1] [varchar](20) NULL,
	[TELEFONO2] [varchar](20) NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[CAP] [varchar](5) NULL,
	[PREFISSO] [varchar](5) NULL,
	[CITTA_NASCITA] [varchar](50) NULL,
	[CITTA] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_AnAlberatura]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_AnAlberatura](
	[Alberatura] [int] NOT NULL,
	[Livello1] [varchar](50) NOT NULL,
	[Livello2] [varchar](50) NULL,
	[Livello3] [varchar](50) NULL,
	[Livello4] [varchar](50) NULL,
	[Livello5] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_AnEmittente]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_AnEmittente](
	[Emittente] [varchar](13) NOT NULL,
	[Descrizione] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_AssetClass]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_AssetClass](
	[Asset] [varchar](10) NOT NULL,
	[Madre] [varchar](10) NULL,
	[Livello] [int] NOT NULL,
	[Descrizione] [varchar](200) NULL,
	[codicergb] [varchar](15) NULL,
	[isresidual] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_CatalogoProdotti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_CatalogoProdotti](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[TipoVersamento] [int] NULL,
	[RischioPrSc] [int] NULL,
	[StatoProdotto] [int] NULL,
	[TipoPolizza] [varchar](20) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Visibilita] [bit] NOT NULL,
	[PrezzoInEuro] [numeric](13, 5) NULL,
	[Alberatura] [int] NOT NULL,
	[DtScadenza] [datetime] NULL,
	[Categoria] [int] NULL,
	[Istituto] [int] NULL,
	[Piazza] [varchar](128) NULL,
	[PrezzoInValuta] [numeric](13, 5) NULL,
	[PrezzoValuta] [varchar](3) NULL,
	[Codiceadb] [varchar](18) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[RatingObbligazioni] [varchar](128) NULL,
	[RischioMinimo] [int] NULL,
	[CapRisparmio] [int] NULL,
	[CapMinimo] [numeric](13, 5) NULL,
	[CapMinimoValuta] [varchar](3) NULL,
	[CapMinSucc] [numeric](13, 5) NULL,
	[CapMinSuccValuta] [varchar](3) NULL,
	[MinRispContr] [numeric](13, 5) NULL,
	[MinRispContrValuta] [varchar](3) NULL,
	[SuccRispContr] [numeric](13, 5) NULL,
	[SuccRispContrValuta] [varchar](3) NULL,
	[MinComm] [numeric](13, 5) NULL,
	[MinCommValuta] [varchar](3) NULL,
	[DelegaGestionale] [varchar](128) NULL,
	[TipologiaPerPick] [int] NULL,
	[RischioPrezzo] [int] NULL,
	[RegimeFiscale] [int] NULL,
	[Quotato] [int] NULL,
	[ClasseDiPrezzo] [varchar](10) NULL,
	[Lineefinacc] [varchar](128) NULL,
	[DurataContrattuale] [varchar](50) NULL,
	[RiscFinFaseAcc] [varchar](10) NULL,
	[OpzRendVital] [bit] NULL,
	[MetaA] [varchar](128) NULL,
	[MetaB] [varchar](128) NULL,
	[MetaC] [varchar](128) NULL,
	[DtRifPrezzo] [datetime] NULL,
	[CodTipoContratto] [varchar](128) NULL,
	[PrezzoNetto] [numeric](13, 5) NULL,
	[PrezzoNettoValuta] [varchar](3) NULL,
	[DtPrezzoNetto] [datetime] NULL,
	[CodBloomberg] [varchar](128) NULL,
	[DenomUnitLink] [varchar](128) NULL,
	[DtInizioValidita] [datetime] NULL,
	[Negoziabilita] [bit] NULL,
	[TassoTecnico] [numeric](13, 5) NULL,
	[TassoTecnicoValuta] [varchar](3) NULL,
	[CollSkandia] [bit] NULL,
	[CodAssetSatellite] [varchar](20) NULL,
	[Mercato] [varchar](3) NULL,
	[AzOb] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[Emittente] [varchar](13) NULL,
	[GaranziaDemografica] [int] NULL,
	[SocietaDiGestione] [int] NULL,
	[IndPrz] [varchar](1) NULL,
	[Differimento] [int] NULL,
	[DtPrezzo] [datetime] NULL,
	[TipoObbligazione] [varchar](50) NULL,
	[TaglioMinimo] [numeric](19, 6) NULL,
	[IsAttivoRc] [int] NULL,
	[RischioCredito] [varchar](20) NULL,
	[Copertura] [numeric](5, 2) NULL,
	[VarP] [numeric](19, 16) NULL,
	[Diversificazione] [numeric](19, 16) NULL,
	[FlagCoreSatellite] [int] NULL,
	[PerimetroCoreSatellite] [int] NULL,
	[FondoCore] [int] NULL,
	[DESCR_SGR] [varchar](255) NULL,
	[DOSSIER] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Cliente]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Cliente](
	[chiaveCliente] [int] NOT NULL,
	[codFis] [varchar](16) NULL,
	[pIva] [varchar](11) NULL,
	[codMan] [varchar](6) NULL,
	[nome] [varchar](50) NULL,
	[cognome] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[dtNascita] [datetime] NULL,
	[indirizzo] [varchar](100) NULL,
	[numCivico] [varchar](5) NULL,
	[citta] [varchar](50) NULL,
	[cap] [varchar](10) NULL,
	[nazione] [varchar](50) NULL,
	[idQuestionario] [int] NULL,
	[dtQuestionario] [datetime] NULL,
	[dtScadQuest] [datetime] NULL,
	[profilo] [varchar](2) NULL,
	[frequenza] [int] NULL,
	[rendicSemestrale] [char](10) NULL,
	[codStatoCivile] [varchar](50) NULL,
	[sesso] [varchar](10) NULL,
	[codTitoloStudio] [varchar](5) NULL,
	[flagCanOnLine] [int] NULL,
	[numFigli] [int] NULL,
	[codProvNasc] [varchar](512) NULL,
	[codComNasc] [varchar](512) NULL,
	[codNazNasc] [int] NULL,
	[fonte] [varchar](150) NULL,
	[pinCode] [varchar](128) NULL,
	[cittadinanza] [varchar](256) NULL,
	[provincia] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Cliente_FC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Cliente_FC](
	[chiaveCliente] [int] NOT NULL,
	[codFis] [varchar](16) NULL,
	[pIva] [varchar](11) NULL,
	[codMan] [varchar](5) NULL,
	[nome] [varchar](50) NULL,
	[cognome] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[dtNascita] [datetime] NULL,
	[indirizzo] [varchar](100) NULL,
	[numCivico] [varchar](5) NULL,
	[citta] [varchar](50) NULL,
	[cap] [varchar](10) NULL,
	[nazione] [varchar](50) NULL,
	[idQuestionario] [int] NULL,
	[dtQuestionario] [datetime] NULL,
	[dtScadQuest] [datetime] NULL,
	[profilo] [varchar](2) NULL,
	[frequenza] [int] NULL,
	[rendicSemestrale] [char](10) NULL,
	[codStatoCivile] [varchar](50) NULL,
	[sesso] [varchar](10) NULL,
	[codTitoloStudio] [varchar](5) NULL,
	[flagCanOnLine] [int] NULL,
	[numFigli] [int] NULL,
	[codProvNasc] [varchar](512) NULL,
	[codComNasc] [varchar](512) NULL,
	[codNazNasc] [int] NULL,
	[fonte] [varchar](150) NULL,
	[pinCode] [varchar](128) NULL,
	[cittadinanza] [varchar](256) NULL,
	[provincia] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_ClientePB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_ClientePB](
	[chiaveClientePB] [int] NOT NULL,
	[chiaveCliente] [int] NOT NULL,
	[chiavePB] [int] NOT NULL,
	[idQuestionario] [int] NULL,
	[profilo] [smallint] NULL,
	[frequenza] [int] NULL,
	[pirModAuto] [bit] NULL,
	[fonte] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[pirModModif] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Consulenza_Appoggio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Consulenza_Appoggio](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_DettaglioOperazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_DettaglioOperazione](
	[chiaveProposta] [bigint] NOT NULL,
	[codTipoOperazione] [varchar](2) NOT NULL,
	[chiavePosizionePtf] [bigint] NOT NULL,
	[chiavePosizionePro] [bigint] NOT NULL,
	[chiaveContratto] [bigint] NULL,
	[ctv] [numeric](18, 2) NULL,
	[ptfIniziale] [numeric](18, 2) NULL,
	[quantitaNominale] [numeric](18, 2) NULL,
	[ctvNonRappresentabile] [numeric](18, 2) NULL,
	[investi] [numeric](18, 2) NULL,
	[disinvesti] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[percOperazione] [numeric](18, 2) NULL,
	[gestPO] [bit] NULL,
	[relOperazione] [varchar](10) NULL,
	[opEseguita] [bit] NULL,
	[posRiallocata] [bit] NULL,
	[nomeProgettoProp] [varchar](512) NULL,
	[areaProp] [varchar](512) NULL,
	[isAttivoRC] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_DettaglioPosizionePortafoglio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_DettaglioPosizionePortafoglio](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[ctv] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[ctvNonAllocabile] [numeric](18, 2) NULL,
	[quantitaNominale] [numeric](18, 2) NULL,
	[partitaViaggiante] [numeric](18, 2) NULL,
	[dtAggiornamento] [datetime] NULL,
	[ctvOut] [numeric](18, 2) NULL,
	[ctvIni] [numeric](18, 2) NULL,
	[dtSaldo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_DettAltriProdotti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_DettAltriProdotti](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[idTipoExtra] [int] NULL,
	[descrizione] [varchar](512) NULL,
	[dtStima] [datetime] NULL,
	[valoreStimato] [numeric](19, 3) NULL,
	[valutaStima] [varchar](3) NULL,
	[dtAcquisto] [datetime] NULL,
	[dtVendita] [datetime] NULL,
	[flagAssicurativo] [bit] NULL,
	[compagnia] [varchar](50) NULL,
	[valoreAssicurato] [numeric](19, 3) NULL,
	[valutaAssicurato] [varchar](10) NULL,
	[premioAnnuo] [numeric](19, 3) NULL,
	[valutaPremio] [varchar](10) NULL,
	[dtScadenza] [datetime] NULL,
	[note] [varchar](250) NULL,
	[dtDecorrenza] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_DettImmobiliare]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_DettImmobiliare](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[descrizione] [varchar](512) NULL,
	[codProvincia] [varchar](15) NULL,
	[provincia] [varchar](512) NULL,
	[codComune] [varchar](15) NULL,
	[comune] [varchar](512) NULL,
	[codZona] [varchar](15) NULL,
	[zona] [varchar](512) NULL,
	[superficie] [numeric](19, 7) NULL,
	[dtEstinzioneMutuo] [datetime] NULL,
	[rataMutuoAnnuo] [numeric](19, 3) NULL,
	[valutaMutuo] [varchar](3) NULL,
	[valoreImmobileTotale] [numeric](19, 3) NULL,
	[valutaImmobile] [varchar](3) NULL,
	[renditaAnnua] [numeric](19, 3) NULL,
	[valutaRendita] [varchar](3) NULL,
	[flagFabbPrevidenza] [bit] NULL,
	[valoreCapitalizzato] [numeric](19, 3) NULL,
	[valutaValCap] [varchar](3) NULL,
	[dtDecorrenza] [datetime] NULL,
	[codTipologia] [varchar](15) NULL,
	[tipologia] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_DettPatrAziendale]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_DettPatrAziendale](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[tipoAzienda] [varchar](256) NULL,
	[denominazione] [varchar](516) NULL,
	[codTipoCompagnia] [varchar](256) NULL,
	[patrimonio] [numeric](19, 3) NULL,
	[valutaPatrimonio] [varchar](3) NULL,
	[titolari] [varchar](512) NULL,
	[cointestatari] [varchar](512) NULL,
	[idTipoAzienda] [int] NULL,
	[valutaFatturato] [varchar](3) NULL,
	[fatturato] [numeric](18, 2) NULL,
	[numQuote] [int] NULL,
	[valoreStimato] [numeric](18, 2) NULL,
	[valutaStimato] [varchar](10) NULL,
	[dtStima] [datetime] NULL,
	[dtAcquisto] [datetime] NULL,
	[dtVendita] [datetime] NULL,
	[dtDecorrenza] [datetime] NULL,
	[note] [varchar](1024) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_DettProdottiTerzi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_DettProdottiTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[idIntermediario] [int] NULL,
	[alberatura] [int] NULL,
	[nomeIntermediario] [varchar](128) NULL,
	[dtInizioInvest] [datetime] NULL,
	[totVersato] [numeric](18, 2) NULL,
	[totPrelevato] [numeric](18, 2) NULL,
	[valutaTotPrelevato] [varchar](3) NULL,
	[chiaveProdotto] [int] NULL,
	[numQuote] [numeric](18, 2) NULL,
	[divQuoteProd] [varchar](3) NULL,
	[dtSottoscrizione] [datetime] NULL,
	[valutaPremioVers] [varchar](3) NULL,
	[tipoPolizza] [varchar](256) NULL,
	[tipoVersamento] [varchar](256) NULL,
	[tipoFormaPensionistica] [varchar](256) NULL,
	[capitaleInvestito] [numeric](18, 2) NULL,
	[valutaCapInvestito] [varchar](3) NULL,
	[contoPrincipale] [bit] NULL,
	[addebitoUtenze] [bit] NULL,
	[accreditoStipPens] [bit] NULL,
	[cartaCredito] [bit] NULL,
	[addebitoMutuo] [bit] NULL,
	[isin] [varchar](256) NULL,
	[lineaFinanziaria] [varchar](256) NULL,
	[fabbisognoPrev] [bit] NULL,
	[dtDecorrenza] [datetime] NULL,
	[modalitaUso] [varchar](256) NULL,
	[ctvUltimaPrestNota] [numeric](18, 2) NULL,
	[dtUltimaPrestNota] [datetime] NULL,
	[flgPrestazioneScad] [bit] NULL,
	[dtTermineVers] [datetime] NULL,
	[dtUltimoPremioNoto] [datetime] NULL,
	[nomeCompagnia] [varchar](512) NULL,
	[valutaCtvUltPrestNota] [varchar](3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_GradoParentela]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_GradoParentela](
	[idParentela] [int] NOT NULL,
	[tipo] [varchar](50) NULL,
	[descParentela] [varchar](50) NULL,
	[descParentelaIng] [varchar](250) NULL,
	[ordinamento] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Mappatura]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Mappatura](
	[Asset] [varchar](10) NOT NULL,
	[Percentuale] [numeric](13, 5) NOT NULL,
	[Bdbeta] [numeric](13, 5) NOT NULL,
	[ChiaveProdotto] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Mappatura_PERCNEG_FC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Mappatura_PERCNEG_FC](
	[Asset] [varchar](10) NOT NULL,
	[Percentuale] [numeric](13, 5) NOT NULL,
	[Bdbeta] [numeric](13, 5) NOT NULL,
	[ChiaveProdotto] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_MappaturaPT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_MappaturaPT](
	[asset] [varchar](10) NOT NULL,
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[percentuale] [float] NULL,
	[bdbeta] [float] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Migraz_Pianificazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Migraz_Pianificazione](
	[chiaveConsulenza] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtUltimoAggiornamento] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieTerzi] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[partiteViaggianti] [numeric](18, 2) NULL,
	[dtPrimaMigrazione] [datetime] NULL,
	[token] [int] NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Migraz_Posizioni]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Migraz_Posizioni](
	[chiavePosizione] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[chiaveProdotto] [int] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtFineValidita] [datetime] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[ctv] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Migraz_Progetto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Migraz_Progetto](
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[dtCreazione] [datetime] NULL,
	[varProgetto] [numeric](18, 2) NULL,
	[coperturaProgetto] [numeric](18, 2) NULL,
	[ctvProgetto] [numeric](18, 2) NULL,
	[chiaveProgettoMod] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_NobPrez]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_NobPrez](
	[CHIAVECLIENTEPB] [int] NULL,
	[RETE] [char](1) NULL,
	[COD_AGENTE] [char](6) NULL,
	[CODFIS] [char](16) NULL,
	[PIVA] [char](20) NULL,
	[CODMAN] [char](32) NULL,
	[CODCONF] [char](11) NULL,
	[CODCONF_ES] [char](15) NULL,
	[DOSSIER] [varchar](32) NULL,
	[DTINI] [decimal](9, 0) NULL,
	[DTFIN] [decimal](9, 0) NULL,
	[CC] [char](15) NULL,
	[DT_AGGIORNAMENTO] [datetime] NULL,
	[DT_FIRMASEI] [decimal](9, 0) NULL,
	[DTEFFINI] [decimal](9, 0) NULL,
	[DTEFFFIN] [decimal](9, 0) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Parentela]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Parentela](
	[chiaveClientePB1] [bigint] NOT NULL,
	[chiaveClientePB2] [bigint] NOT NULL,
	[idParentela] [int] NOT NULL,
	[dtMatrimonio] [datetime] NULL,
	[aCarico] [bit] NULL,
	[dtCensimento] [datetime] NULL,
	[dtFine] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_PatrimonioTerzi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_PatrimonioTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[idTipoProdotto] [varchar](2) NULL,
	[nomeProdotto] [varchar](256) NULL,
	[rischioProd] [varchar](256) NULL,
	[valutaCtv] [varchar](3) NULL,
	[ctv] [numeric](18, 2) NULL,
	[ctvNonRappresentabile] [numeric](18, 2) NULL,
	[dataCtv] [datetime] NULL,
	[prezzoMedioCarico] [numeric](18, 2) NULL,
	[tipoProd] [varchar](256) NULL,
	[dtFine] [datetime] NULL,
	[divisa] [varchar](3) NULL,
	[ultimoPrezzo] [numeric](13, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Pianificazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Pianificazione](
	[chiaveConsulenza] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtUltimoAggiornamento] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieTerzi] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[partiteViaggianti] [numeric](18, 2) NULL,
	[dtPrimaMigrazione] [datetime] NULL,
	[dtPianificazioneOrizzontale] [datetime] NULL,
	[dtPianificazioneVerticale] [datetime] NULL,
	[token] [int] NULL,
	[varRisorseAllocate] [decimal](18, 2) NULL,
	[coperturaRisorseAllocate] [decimal](18, 2) NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_PosizioniPortafoglio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_PosizioniPortafoglio](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtFineValidita] [datetime] NULL,
	[chiaveProdotto] [int] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_PosizioniProposta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_PosizioniProposta](
	[chiavePosizionePro] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[chiaveProdotto] [int] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_ProgettiPiramideModello]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_ProgettiPiramideModello](
	[chiaveProgettoMod] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[percentualeProgetto] [numeric](19, 7) NULL,
	[tipoProgetto] [char](1) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[durata] [char](18) NULL,
	[note] [varchar](250) NULL,
	[dtFineValidita] [datetime] NULL,
	[dtCreazione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Progetto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Progetto](
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[dtCreazione] [datetime] NULL,
	[dtUltimaModifica] [datetime] NULL,
	[capLiquidoEntrata] [numeric](18, 2) NULL,
	[capLiquidoUscita] [numeric](18, 2) NULL,
	[varPianificato] [numeric](18, 2) NULL,
	[varProgetto] [numeric](18, 2) NULL,
	[coperturaProgetto] [numeric](18, 2) NULL,
	[profiloProgetto] [int] NULL,
	[orizzonteTemporale] [int] NULL,
	[ctvProgetto] [numeric](18, 2) NULL,
	[chiaveProgettoMod] [bigint] NULL,
	[flagAvviatoMonitoraggio] [bit] NULL,
	[percProgetto] [numeric](18, 2) NULL,
	[ctvPianificato] [numeric](18, 2) NULL,
	[chiavePtfMod] [int] NULL,
	[dtFineValidita] [datetime] NULL,
	[flagCambioParametri] [bit] NULL,
	[flagPianificazione] [bit] NULL,
	[dtReset] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Progetto_Robo]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Progetto_Robo](
	[chiaveProgetto] [bigint] NOT NULL,
	[flagUtilizzoLiquidita] [bit] NULL,
	[Iban_codiceContrattoCC] [varchar](50) NULL,
	[ctvSogliaCC] [numeric](18, 2) NULL,
	[minimoMantenimentoSuCC] [numeric](18, 2) NULL,
	[listTagFondiDaUtilizzare] [varchar](25) NULL,
	[percentualeFogli] [numeric](18, 2) NULL,
	[percentualeFondi] [numeric](18, 2) NULL,
	[chiaveclientepb] [int] NOT NULL,
	[dt_inserimento] [datetime] NULL,
	[dt_aggiornamento] [datetime] NULL,
	[FlagCsv] [bit] NULL,
	[isProgettoRobo] [char](2) NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](24) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_PromotoreBancario]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_PromotoreBancario](
	[chiavePB] [int] NOT NULL,
	[codage] [char](6) NULL,
	[nome] [varchar](40) NULL,
	[cognome] [varchar](40) NULL,
	[status] [char](2) NULL,
	[livello] [varchar](20) NULL,
	[rete] [char](1) NULL,
	[indirizzo] [varchar](100) NULL,
	[numCivico] [varchar](5) NULL,
	[citta] [varchar](50) NULL,
	[prov] [char](2) NULL,
	[cap] [char](5) NULL,
	[nazione] [varchar](50) NULL,
	[ptel] [char](4) NULL,
	[tel] [char](8) NULL,
	[tipologia] [varchar](3) NULL,
	[grado] [varchar](30) NULL,
	[codManager] [char](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_Proposta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_Proposta](
	[chiaveProposta] [bigint] NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[status] [varchar](2) NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[nomeProposta] [varchar](128) NULL,
	[dtProposta] [datetime] NULL,
	[dtValidazione] [datetime] NULL,
	[dtUltimoAgg] [datetime] NULL,
	[dtScadenza] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieBT] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[adeguatezza] [bit] NULL,
	[discesaRegime] [bit] NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[codValidazione] [varchar](10) NULL,
	[urlValidazione] [varchar](200) NULL,
	[urlSimulazione] [varchar](200) NULL,
	[urlReport] [varchar](200) NULL,
	[apporti] [numeric](18, 2) NULL,
	[prelievi] [numeric](18, 2) NULL,
	[flgScadenza] [bit] NULL,
	[flgInadRischioCredito] [bit] NULL,
	[flgInadRischioMercato] [bit] NULL,
	[flgInadComplessita] [bit] NULL,
	[flgInadFrequenza] [bit] NULL,
	[flgInadConcentrazione] [bit] NULL,
	[flgInadLiquidita] [bit] NULL,
	[isAttivoRC] [bit] NULL,
	[token] [int] NULL,
	[flagNuovoFlusso] [bit] NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_RDR_VALUTE_DB_DTGIORNALIERI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_RDR_VALUTE_DB_DTGIORNALIERI](
	[ChiaveProdotto] [char](35) NULL,
	[Divisa] [varchar](6) NULL,
	[Peso] [numeric](18, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_REP_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_REP_ASSET_1_E_2_ORDINATE](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINAMENTO_ASSET] [int] NULL,
	[ASSETCLASSNAME_REPORT] [varchar](128) NULL,
	[LIVELLO] [int] NULL,
	[CODICE_MACROASSET] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_S4_S5_S13_TRAD_UNTIL_LIV3](
	[alberatura] [int] NOT NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_TB_ESG_ANAG_STRUM]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_TB_ESG_ANAG_STRUM](
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [varchar](50) NULL,
	[ESGRating] [varchar](3) NULL,
	[TrendESGRating] [varchar](3) NULL,
	[TrendESGRating_val] [varchar](3) NULL,
	[dtInserimento] [datetime] NULL,
	[dtAggiornamento] [datetime] NULL,
	[UserIns] [nvarchar](50) NULL,
	[CLIENT_ID] [varchar](32) NULL,
	[C_TIPO_STRUMENTO] [varchar](5) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[SDG_06_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_07_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_12_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_13_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_14_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_15_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_01_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_02_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_03_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_04_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_05_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_08_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_09_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_10_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_11_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_16_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_17_NET_ALIGNMENT_SCORE] [int] NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PERC_INVEST_OTHER_E_NO_TAX] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_E] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_S] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](32) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](32) NULL,
	[PAI_LAB_A_Acqua] [varchar](32) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](32) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](32) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](32) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](32) NULL,
	[PAI_LAB_A_Settore_Immobiliare] [varchar](32) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](32) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](32) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[AGGREG_PAI_LAB_A] [varchar](255) NULL,
	[AGGREG_PAI_LAB_S] [varchar](255) NULL,
	[AGGREG_BOND] [varchar](255) NULL,
	[REF_DATE] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_V_clienti_contrsei_con_migraz]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_V_clienti_contrsei_con_migraz](
	[chiaveClientePb] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[dtprimaMigrazione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[RP_vNewPositionProposta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[RP_vNewPositionProposta](
	[chiaveClientePB] [int] NOT NULL,
	[nomeProgettoProp] [varchar](512) NULL,
	[areaProp] [varchar](512) NULL,
	[chiaveProgetto] [bigint] NULL,
	[codSottoprodotto] [varchar](5) NULL,
	[codInterno] [varchar](18) NULL,
	[codMaf] [varchar](18) NULL,
	[codIsin] [varchar](18) NULL,
	[tipoProdotto] [varchar](20) NULL,
	[positionIdProposta] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[S25_CLI_CLIENTE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[S25_CLI_CLIENTE](
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[DATANASCITA] [varchar](10) NULL,
	[ETA] [numeric](38, 0) NULL,
	[PROFESSIONE] [varchar](128) NULL,
	[NUMEROCOMPONENTI] [numeric](38, 0) NULL,
	[NUMEROFIGLI] [numeric](38, 0) NULL,
	[STATO_CIVILE] [varchar](10) NULL,
	[INDIRIZZO] [varchar](396) NULL,
	[RETE] [char](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[S4_S5_S13_TRAD_UNTIL_LIV3](
	[DESCRIZIONE_ORIGINALE] [varchar](100) NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [decimal](18, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[sintesi_fffwrs01]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[sintesi_fffwrs01](
	[POSITIONID] [varchar](123) NULL,
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[PIVAFIDUCIARIA] [varchar](11) NULL,
	[CODICECONTRATTO] [varchar](11) NULL,
	[NUMEROPOLIZZA] [varchar](11) NULL,
	[CONTO] [varchar](12) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTODIAGARANZIA] [varchar](1) NULL,
	[PCTTITOLOCOLLEGATO] [varchar](13) NULL,
	[TIPOPRODOTTO] [varchar](5) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEMAF] [varchar](13) NULL,
	[PCTKEY] [varchar](71) NULL,
	[PCTDESCRIZIONTETITOLOCOLLEGATO] [varchar](53) NULL,
	[QUOTE] [decimal](15, 2) NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [datetime] NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[DATADISOTTOSCRIZIONE] [datetime] NULL,
	[DATAVALNAVAL] [datetime] NULL,
	[CODICESTATO] [varchar](1) NULL,
	[DATAINIZIORENDIMENTO] [datetime] NULL,
	[RENDIMENTODASOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[DATATRIMESTRERENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOTRIMESTRE] [decimal](8, 5) NULL,
	[DATAANNORENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[CVN] [decimal](15, 2) NULL,
	[ISIN] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[sintesi_fffwrs01_no_dupl]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[sintesi_fffwrs01_no_dupl](
	[POSITIONID] [varchar](123) NULL,
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[PIVAFIDUCIARIA] [varchar](11) NULL,
	[CODICECONTRATTO] [varchar](11) NULL,
	[NUMEROPOLIZZA] [varchar](11) NULL,
	[CONTO] [varchar](12) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTODIAGARANZIA] [varchar](1) NULL,
	[PCTTITOLOCOLLEGATO] [varchar](13) NULL,
	[TIPOPRODOTTO] [varchar](5) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEMAF] [varchar](13) NULL,
	[PCTKEY] [varchar](71) NULL,
	[PCTDESCRIZIONTETITOLOCOLLEGATO] [varchar](53) NULL,
	[QUOTE] [decimal](15, 2) NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [datetime] NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[DATADISOTTOSCRIZIONE] [datetime] NULL,
	[DATAVALNAVAL] [datetime] NULL,
	[CODICESTATO] [varchar](1) NULL,
	[DATAINIZIORENDIMENTO] [datetime] NULL,
	[RENDIMENTODASOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[DATATRIMESTRERENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOTRIMESTRE] [decimal](8, 5) NULL,
	[DATAANNORENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[CVN] [decimal](15, 2) NULL,
	[ISIN] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_ASS_UNIT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_ASS_UNIT](
	[CODICECONTRATTO] [varchar](11) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CONTROVALORE] [decimal](15, 3) NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[ISINFITTIZIO] [varchar](16) NULL,
	[CODICEISINSOTTOSTANTE] [varchar](16) NULL,
	[CODICEMAFSOTTOSTANTE] [varchar](13) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[SPB_ASS_UNIT_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_ASS_UNIT_TEST](
	[CODICECONTRATTO] [varchar](11) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CONTROVALORE] [decimal](15, 3) NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[ISINFITTIZIO] [varchar](16) NULL,
	[CODICEISINSOTTOSTANTE] [varchar](16) NULL,
	[CODICEMAFSOTTOSTANTE] [varchar](13) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[spb_ass_unit_testBCK]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[spb_ass_unit_testBCK](
	[CODICECONTRATTO] [varchar](11) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CONTROVALORE] [decimal](15, 3) NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[ISINFITTIZIO] [varchar](16) NULL,
	[CODICEISINSOTTOSTANTE] [varchar](16) NULL,
	[CODICEMAFSOTTOSTANTE] [varchar](13) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_CLIENTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_CLIENTI](
	[CODICERETE] [varchar](20) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NULL,
	[NOME] [varchar](80) NULL,
	[COGNOME] [varchar](153) NULL,
	[DATADINASCITA] [datetime] NULL,
	[NAZIONEDINASCITA] [varchar](50) NULL,
	[COMUNEDINASCITA] [varchar](50) NULL,
	[SESSO] [varchar](1) NULL,
	[CITTADINANZA] [varchar](50) NULL,
	[TITOLODISTUDIOCODICE] [varchar](50) NULL,
	[TITOLODISTUDIODESCRIZIONE] [varchar](128) NULL,
	[TIPOCLIENTE] [varchar](50) NULL,
	[DATAATTIVAZIONECLIENTE] [datetime] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[SPB_CLIENTI_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_CLIENTI_TEST](
	[CODICERETE] [varchar](20) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NULL,
	[NOME] [varchar](80) NULL,
	[COGNOME] [varchar](153) NULL,
	[DATADINASCITA] [datetime] NULL,
	[NAZIONEDINASCITA] [varchar](50) NULL,
	[COMUNEDINASCITA] [varchar](50) NULL,
	[SESSO] [varchar](1) NULL,
	[CITTADINANZA] [varchar](50) NULL,
	[TITOLODISTUDIOCODICE] [varchar](50) NULL,
	[TITOLODISTUDIODESCRIZIONE] [varchar](128) NULL,
	[TIPOCLIENTE] [varchar](50) NULL,
	[DATAATTIVAZIONECLIENTE] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_CONTOCORRENTE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_CONTOCORRENTE](
	[CodiceContratto] [varchar](11) NULL,
	[Conto] [varchar](20) NULL,
	[SaldoDisponibile] [decimal](15, 3) NULL,
	[ImportoBloccato] [decimal](15, 3) NULL,
	[FidoDeliberato] [decimal](15, 3) NULL,
	[SaldoContabile] [decimal](15, 3) NULL,
	[ImportoInvestimenti] [decimal](15, 3) NULL,
	[ImportoDisinvestimenti] [decimal](15, 3) NULL,
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_CONTOCORRENTE_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_CONTOCORRENTE_TEST](
	[CodiceContratto] [varchar](11) NULL,
	[Conto] [varchar](20) NULL,
	[SaldoDisponibile] [decimal](15, 3) NULL,
	[ImportoBloccato] [decimal](15, 3) NULL,
	[FidoDeliberato] [decimal](15, 3) NULL,
	[SaldoContabile] [decimal](15, 3) NULL,
	[ImportoInvestimenti] [decimal](15, 3) NULL,
	[ImportoDisinvestimenti] [decimal](15, 3) NULL,
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_INDIRIZZI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_INDIRIZZI](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](200) NULL,
	[TIPOINDIRIZZO] [varchar](50) NULL,
	[INDIRIZZO] [varchar](128) NULL,
	[CAP] [varchar](6) NULL,
	[CITTA] [varchar](50) NULL,
	[PROVINCIA] [varchar](50) NULL,
	[NAZIONE] [varchar](50) NOT NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[SPB_MIFID]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_MIFID](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL,
	[EXPERIENCE] [smallint] NULL,
	[COMPLESSITA] [varchar](100) NULL,
	[CSP] [varchar](16) NULL,
	[IMPORTOSPESA] [decimal](15, 2) NULL,
	[IMPORTORISERVA] [decimal](15, 2) NULL,
	[PERCLUNGOPERIODO] [decimal](5, 2) NULL,
	[ESIGENZEASS] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_MIFID_post_blocco]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_MIFID_post_blocco](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL,
	[EXPERIENCE] [smallint] NULL,
	[COMPLESSITA] [varchar](100) NULL,
	[CSP] [varchar](16) NULL,
	[IMPORTOSPESA] [decimal](15, 2) NULL,
	[IMPORTORISERVA] [decimal](15, 2) NULL,
	[PERCLUNGOPERIODO] [decimal](5, 2) NULL,
	[ESIGENZEASS] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_MIFID_pre_blocco]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_MIFID_pre_blocco](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL,
	[EXPERIENCE] [smallint] NULL,
	[COMPLESSITA] [varchar](100) NULL,
	[CSP] [varchar](16) NULL,
	[IMPORTOSPESA] [decimal](15, 2) NULL,
	[IMPORTORISERVA] [decimal](15, 2) NULL,
	[PERCLUNGOPERIODO] [decimal](5, 2) NULL,
	[ESIGENZEASS] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_MIFID_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_MIFID_TEST](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL,
	[EXPERIENCE] [smallint] NULL,
	[COMPLESSITA] [varchar](100) NULL,
	[CSP] [varchar](16) NULL,
	[IMPORTOSPESA] [decimal](15, 2) NULL,
	[IMPORTORISERVA] [decimal](15, 2) NULL,
	[PERCLUNGOPERIODO] [decimal](5, 2) NULL,
	[ESIGENZEASS] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_NAC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_NAC](
	[COGNOMENOME] [varchar](128) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[RETE] [varchar](20) NULL,
	[CODICERETE] [varchar](1) NULL,
	[CODICEMANAGER] [varchar](7) NULL,
	[LIVELLONELLAGERARCHIA] [varchar](20) NULL,
	[SUBORDINATI] [bit] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[spb_nac_nodupl]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[spb_nac_nodupl](
	[COGNOMENOME] [varchar](128) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[RETE] [varchar](20) NULL,
	[CODICERETE] [varchar](1) NULL,
	[CODICEMANAGER] [varchar](7) NULL,
	[LIVELLONELLAGERARCHIA] [varchar](20) NULL,
	[SUBORDINATI] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_NAC_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_NAC_TEST](
	[COGNOMENOME] [varchar](128) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[RETE] [varchar](20) NULL,
	[CODICERETE] [varchar](1) NULL,
	[CODICEMANAGER] [varchar](7) NULL,
	[LIVELLONELLAGERARCHIA] [varchar](20) NULL,
	[SUBORDINATI] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_PARTITE_VIAGG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_PARTITE_VIAGG](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICECONFERIMENTO] [varchar](11) NULL,
	[DESCRPRODOTTO] [varchar](128) NULL,
	[IMPORTOVERSATO] [decimal](15, 3) NULL,
	[DATAACQUISIZIONE] [datetime] NULL,
	[DATAINCASSO] [datetime] NULL,
	[DATAVALUTAFONDO] [datetime] NULL,
	[NOTA] [varchar](256) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[SPB_PARTITE_VIAGG_DISINV]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_PARTITE_VIAGG_DISINV](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICECONFERIMENTO] [varchar](11) NULL,
	[DESCRPRODOTTO] [varchar](128) NULL,
	[IMPORTOVERSATO] [decimal](15, 3) NULL,
	[DATAACQUISIZIONE] [datetime] NULL,
	[DATAINCASSO] [datetime] NULL,
	[DATAVALUTAFONDO] [datetime] NULL,
	[NOTA] [varchar](256) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[SPB_PARTITE_VIAGG_DISINV_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_PARTITE_VIAGG_DISINV_TEST](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICECONFERIMENTO] [varchar](11) NULL,
	[DESCRPRODOTTO] [varchar](128) NULL,
	[IMPORTOVERSATO] [decimal](15, 3) NULL,
	[DATAACQUISIZIONE] [datetime] NULL,
	[DATAINCASSO] [datetime] NULL,
	[DATAVALUTAFONDO] [datetime] NULL,
	[NOTA] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_PARTITE_VIAGG_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_PARTITE_VIAGG_TEST](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICECONFERIMENTO] [varchar](11) NULL,
	[DESCRPRODOTTO] [varchar](128) NULL,
	[IMPORTOVERSATO] [decimal](15, 3) NULL,
	[DATAACQUISIZIONE] [datetime] NULL,
	[DATAINCASSO] [datetime] NULL,
	[DATAVALUTAFONDO] [datetime] NULL,
	[NOTA] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_PROF_RISCHIO](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[CODICECLASSERC] [varchar](80) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[SPB_PROF_RISCHIO_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_PROF_RISCHIO_TEST](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[CODICECLASSERC] [varchar](80) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_SCARTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_SCARTI](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PacchettoSSIS] [varchar](50) NOT NULL,
	[ID_Elab] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_W6CatESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_W6CatESG](
	[Rete] [varchar](255) NULL,
	[Codice_Agente] [varchar](50) NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Piva_Fiduciaria] [varchar](11) NULL,
	[CodiceContratto] [varchar](255) NULL,
	[FamigliaProdotto] [varchar](255) NULL,
	[CodiceProdotto] [varchar](255) NULL,
	[DescrizioneProdotto] [varchar](255) NULL,
	[CodiceTitolo] [varchar](255) NULL,
	[Conto] [varchar](255) NULL,
	[Custgar] [varchar](1) NULL,
	[Asset] [varchar](255) NULL,
	[Pct] [int] NULL,
	[CodiceSottoprodotto] [varchar](255) NULL,
	[DescrizioneSottoprodotto] [varchar](255) NULL,
	[Isin] [varchar](255) NULL,
	[IsinProxy] [varchar](255) NULL,
	[TipoFondo] [varchar](255) NULL,
	[Controvalore] [decimal](18, 2) NULL,
	[Importo] [decimal](18, 8) NULL,
	[QuantitaValoreNominale] [decimal](18, 2) NULL,
	[VarComparto] [decimal](18, 2) NULL,
	[CodiceLinea] [varchar](255) NULL,
	[Sost_E] [varchar](255) NULL,
	[Sost_S] [varchar](255) NULL,
	[Sost_G] [varchar](255) NULL,
	[ClasseComplessita] [int] NULL,
	[DescrizioneClasseComplessita] [varchar](255) NULL,
	[OrizzonteTemporale] [decimal](18, 2) NULL,
	[FlagRiserva] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_W6CliESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_W6CliESG](
	[Rete] [varchar](255) NULL,
	[Codice_Agente] [varchar](50) NULL,
	[Codice_Fiscale] [varchar](16) NULL,
	[Piva_Fiduciaria] [varchar](11) NULL,
	[Codman] [varchar](11) NULL,
	[BeneficioDiversificazione] [decimal](18, 8) NULL,
	[ValoreVaR] [decimal](18, 8) NULL,
	[Riserva] [decimal](18, 8) NULL,
	[PesoSostESG] [decimal](18, 8) NULL,
	[CSP] [varchar](255) NULL,
	[ConcLungoPeriodo] [decimal](18, 8) NULL,
	[Liquidita] [decimal](18, 8) NULL,
	[NoSostESG] [decimal](18, 8) NULL,
	[SostPercE] [decimal](18, 8) NULL,
	[SostPercS] [decimal](18, 8) NULL,
	[SostPercG] [decimal](18, 8) NULL,
	[SostESGInLinea] [decimal](18, 8) NULL,
	[SostPercEInLinea] [decimal](18, 8) NULL,
	[SostPercSInLinea] [decimal](18, 8) NULL,
	[SostPercGInLinea] [decimal](18, 8) NULL,
	[NoSostSFDR] [decimal](18, 8) NULL,
	[SostSFDR] [decimal](18, 8) NULL,
	[SostSFDRInLinea] [decimal](18, 8) NULL,
	[NoSostTaxonomy] [decimal](18, 8) NULL,
	[SostTaxonomy] [decimal](18, 8) NULL,
	[SostTaxonomyInLinea] [decimal](18, 8) NULL,
	[NoSostPaiE] [decimal](18, 8) NULL,
	[SostPaiE] [decimal](18, 8) NULL,
	[SostPaiEInLinea] [decimal](18, 8) NULL,
	[NoSostPaiS] [decimal](18, 8) NULL,
	[SostPaiS] [decimal](18, 8) NULL,
	[SostPaiSInLinea] [decimal](18, 8) NULL,
	[Sost_E] [varchar](8) NULL,
	[Sost_S] [varchar](8) NULL,
	[Sost_G] [varchar](8) NULL,
	[percESG] [decimal](18, 8) NULL,
	[UlterioriPrefSost] [char](1) NULL,
	[PercSFDR] [decimal](18, 8) NULL,
	[PercTaxonomy] [decimal](18, 8) NULL,
	[PAI_E] [varchar](255) NULL,
	[PAI_S] [varchar](255) NULL,
	[ListPAI_E] [varchar](max) NULL,
	[ListPAI_S] [varchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[SPB_WSEICAP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[SPB_WSEICAP](
	[codiceContratto] [char](11) NULL,
	[ISIN] [char](12) NULL,
	[controvaloreAttuale] [decimal](15, 3) NULL,
	[dataInizioCommitment] [decimal](9, 0) NULL,
	[dataFineCommitment] [decimal](9, 0) NULL,
	[totaleCommitment] [decimal](15, 3) NULL,
	[importoVersato] [decimal](15, 3) NULL,
	[importoDaVersare] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[TabelleStoricizzate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[TabelleStoricizzate](
	[Nome] [varchar](50) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Durata] [int] NULL,
	[Vecchia_Durata] [int] NULL,
	[Storicizzata] [bit] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[V_clienti_contrsei_con_migraz]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[V_clienti_contrsei_con_migraz](
	[CODICE_FISCALE] [varchar](16) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_CONTRATTO] [varchar](11) NULL,
	[STATO_CONTRATTO_SEI] [varchar](6) NULL,
	[DATA_SOTTOSCRIZIONE_C6] [datetime] NULL,
	[DATA_CHIUSURA_C6] [datetime] NULL,
	[FLAG_CLIENTE_MIGRATO] [varchar](2) NULL,
	[DATA_ULTIMA_MIGRAZIONE] [datetime] NULL,
	[PIVA] [varchar](11) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NOT NULL,
	[FiduMulitMand] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA_INDICATORI](
	[RETE] [varchar](1) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[RM_ADEGUATEZZA_INDICATORE] [int] NULL,
	[RM_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[RS_ADEGUATEZZA_INDICATORE] [int] NULL,
	[RS_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[TH_ADEGUATEZZA_INDICATORE] [int] NULL,
	[TH_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CM_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CM_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CC_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CC_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[FQ_ADEGUATEZZA_INDICATORE] [int] NULL,
	[FQ_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CE_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CE_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CV_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CV_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[ES_ADEGUATEZZA_INDICATORE] [int] NULL,
	[ES_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[sost_E] [varchar](10) NULL,
	[sost_S] [varchar](10) NULL,
	[sost_G] [varchar](10) NULL,
	[Profsost] [varchar](10) NULL,
	[percESG] [decimal](5, 2) NULL,
	[pesoSostESG] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA_INDICATORI_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA_INDICATORI_TEST](
	[RETE] [varchar](1) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[RM_ADEGUATEZZA_INDICATORE] [int] NULL,
	[RM_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[RS_ADEGUATEZZA_INDICATORE] [int] NULL,
	[RS_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[TH_ADEGUATEZZA_INDICATORE] [int] NULL,
	[TH_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CM_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CM_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CC_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CC_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[FQ_ADEGUATEZZA_INDICATORE] [int] NULL,
	[FQ_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CE_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CE_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[CV_ADEGUATEZZA_INDICATORE] [int] NULL,
	[CV_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[ES_ADEGUATEZZA_INDICATORE] [int] NULL,
	[ES_ADEGUATEZZA_DESCRIZIONE] [varchar](500) NULL,
	[sost_E] [varchar](10) NULL,
	[sost_S] [varchar](10) NULL,
	[sost_G] [varchar](10) NULL,
	[Profsost] [varchar](10) NULL,
	[percESG] [decimal](5, 2) NULL,
	[pesoSostESG] [decimal](5, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA_MAU]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA_MAU](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NOT NULL,
	[FiduMulitMand] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA_post_blocco]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA_post_blocco](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NOT NULL,
	[FiduMulitMand] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA_pre_blocco]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA_pre_blocco](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NOT NULL,
	[FiduMulitMand] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VAR_ADEGUATEZZA_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VAR_ADEGUATEZZA_TEST](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NOT NULL,
	[FiduMulitMand] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[VARIAZIONE_CONTRSEI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[VARIAZIONE_CONTRSEI](
	[CODICE_CONTRATTO] [varchar](11) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[RETE_PB] [varchar](1) NULL,
	[PB] [varchar](6) NULL,
	[DATA_PERFEZIONAMENTO_BASE] [datetime] NULL,
	[DATA_SOTTOSCRIZIONE_BASE] [datetime] NULL,
	[DATA_CHIUSURA_BASE] [datetime] NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](25) NULL,
	[PRESSO] [varchar](32) NULL,
	[CPP] [varchar](4) NULL,
	[FLAG_STAMPA_REPORT] [varchar](1) NULL,
	[FLAG_EMISSIONE_FATTURA] [varchar](1) NULL,
	[EMAIL] [varchar](50) NULL,
	[FREQUENZA_DIAGNOSI] [varchar](1) NULL,
	[FREQUENZA_MONITORAGGIO] [varchar](1) NULL,
	[DATA_PERFEZIONAMENTO_C6] [datetime] NULL,
	[DATA_SOTTOSCRIZIONE_C6] [datetime] NULL,
	[DATA_CHIUSURA_C6] [datetime] NULL,
	[ORDINE_DI_ELABORAZIONE_RIGA] [float] NULL,
	[ULTIMO_PROGRESSIVO_INVIO] [float] NULL,
	[ULTIMA_DATA_INVIO] [datetime] NULL,
	[ULTIMA_DATA_ELABORAZIONE] [datetime] NULL,
	[FLAG_ROL] [char](1) NULL,
	[RIATTIVAZIONE] [smallint] NULL,
	[TIP_CONTRATTO] [char](1) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [sortIndex]    Script Date: 5/21/2025 3:35:56 PM ******/
CREATE CLUSTERED INDEX [sortIndex] ON [C6Staging].[VARIAZIONE_CONTRSEI]
(
	[CODICE_CONTRATTO] ASC,
	[CODICE_FISCALE] ASC,
	[RETE_PB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[variazione_contrsei_lele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[variazione_contrsei_lele](
	[CODICE_CONTRATTO] [varchar](11) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[RETE_PB] [varchar](1) NULL,
	[PB] [varchar](6) NULL,
	[DATA_PERFEZIONAMENTO_BASE] [datetime] NULL,
	[DATA_SOTTOSCRIZIONE_BASE] [datetime] NULL,
	[DATA_CHIUSURA_BASE] [datetime] NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](25) NULL,
	[PRESSO] [varchar](32) NULL,
	[CPP] [varchar](4) NULL,
	[FLAG_STAMPA_REPORT] [varchar](1) NULL,
	[FLAG_EMISSIONE_FATTURA] [varchar](1) NULL,
	[EMAIL] [varchar](50) NULL,
	[FREQUENZA_DIAGNOSI] [varchar](1) NULL,
	[FREQUENZA_MONITORAGGIO] [varchar](1) NULL,
	[DATA_PERFEZIONAMENTO_C6] [datetime] NULL,
	[DATA_SOTTOSCRIZIONE_C6] [datetime] NULL,
	[DATA_CHIUSURA_C6] [datetime] NULL,
	[ORDINE_DI_ELABORAZIONE_RIGA] [float] NULL,
	[ULTIMO_PROGRESSIVO_INVIO] [float] NULL,
	[ULTIMA_DATA_INVIO] [datetime] NULL,
	[ULTIMA_DATA_ELABORAZIONE] [datetime] NULL,
	[FLAG_ROL] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[W6LogBatch]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[W6LogBatch](
	[BatchID] [int] IDENTITY(1,1) NOT NULL,
	[BatchName] [nvarchar](100) NOT NULL,
	[Status] [nvarchar](50) NOT NULL,
	[LogMessage] [nvarchar](max) NULL,
	[StartDate] [datetime] NOT NULL,
	[EndDate] [datetime] NULL,
	[DeltaMinutes] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[WANAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[WANAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[WRENAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[WRENAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[WSCABP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[WSCABP](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Staging].[WSROL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[WSROL](
	[CODFIS] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODCONTRATTO] [varchar](11) NOT NULL,
	[EMAIL] [varchar](512) NULL,
	[ALERTROL] [varchar](512) NULL,
	[STATOROL] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Staging].[WSROL_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Staging].[WSROL_TEST](
	[CODFIS] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODCONTRATTO] [varchar](11) NOT NULL,
	[EMAIL] [varchar](512) NULL,
	[ALERTROL] [varchar](512) NULL,
	[STATOROL] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ACBDENOTH]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ACBDENOTH](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[BDPERCENTAGE] [numeric](22, 20) NULL,
	[BDBETA] [numeric](22, 20) NULL,
	[F_OID$_PASSE_CDF1A] [varchar](35) NULL,
	[F_PFINANCIAL_815C0] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ACBDENTRY]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ACBDENTRY](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PINDEXBREA_08079] [varchar](35) NULL,
	[F_PINSTRUMEN_FBCDE] [varchar](35) NULL,
	[BDPERCENTAGE] [numeric](23, 20) NULL,
	[BDBETA] [numeric](23, 20) NULL,
	[F_OID$_PASSE_B8A1E] [varchar](35) NULL,
	[F_PFINANCIAL_65EBB] [varchar](35) NULL,
	[F_PFINANCIAL_C2FD3] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ADBKBASE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ADBKBASE](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_ADBKBASE_L_69013] [varchar](128) NULL,
	[TYPE$_ADBKST_AC419] [varchar](256) NULL,
	[C_CLIENTNAME_1A67C] [varchar](256) NULL,
	[C_CLIENTNAME_1E844] [varchar](256) NULL,
	[F_OID$_PERSO_06FCB] [varchar](35) NULL,
	[C_CLIENTNAME_8B1DB] [varchar](256) NULL,
	[C_CLIENTNAME_B4F69] [varchar](256) NULL,
	[C_CLIENTNAME_EA63A] [varchar](256) NULL,
	[C_ADBKBASE_D_C669E] [datetime] NULL,
	[C_ADBKBASE_L_1DD83] [varchar](256) NULL,
	[C_ADBKBASE_L_F8E21] [varchar](256) NULL,
	[C_ADBKBASE_L_2805C] [datetime] NULL,
	[C_ADBKBASE_T_C94F1] [varchar](16) NULL,
	[F_OID$_PROFI_98D05] [varchar](35) NULL,
	[F_OID$_TAXRE_4AC4C] [varchar](35) NULL,
	[C_CURRENCYSY_36ED7] [varchar](3) NULL,
	[F_OID$_REFER_66AC8] [varchar](35) NULL,
	[C_ADBKBASE_M_AE5A8] [numeric](19, 7) NULL,
	[C_ADBKBASE_A_36B89] [numeric](19, 7) NULL,
	[C_CURRENCYSY_0483B] [varchar](3) NULL,
	[C_VALUE_506AF] [numeric](19, 3) NULL,
	[F_OID$_SOURC_E66C5] [varchar](35) NULL,
	[F_OID$_QUALI_027C5] [varchar](35) NULL,
	[F_OID$_BLOCK_A4386] [varchar](35) NULL,
	[F_OID$_SOURC_3AA10] [varchar](35) NULL,
	[TYPE$_ADBKTY_20093] [varchar](256) NULL,
	[F_PCUSTOMGRO_9BC08] [varchar](35) NULL,
	[F_PENTITY_AD_29FE1] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ADS4WS_PROMOTORI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ADS4WS_PROMOTORI](
	[Rete] [varchar](1) NULL,
	[Codice] [varchar](6) NULL,
	[Cognome] [varchar](128) NULL,
	[Nome] [varchar](128) NULL,
	[Prefisso] [varchar](1) NULL,
	[Firma] [varchar](7) NULL,
	[DataInizioCollaborazione] [numeric](18, 0) NULL,
	[DataFineCollaborazione] [numeric](18, 0) NULL,
	[DataUltimaAggiornamento] [datetime] NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](50) NULL,
	[CittaNascita] [varchar](50) NULL,
	[DataNascita] [numeric](18, 0) NULL,
	[Indirizzo] [varchar](255) NULL,
	[Provincia] [varchar](2) NULL,
	[PrefissoTelefono] [varchar](20) NULL,
	[TelefonoAgenzia1] [varchar](20) NULL,
	[TelefonoAgenzia2] [varchar](20) NULL,
	[stato] [char](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[AGENTBASE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[AGENTBASE](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[AGENTBASEID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_AGENTT_4FF1A] [varchar](256) NULL,
	[AGENTBASESTATUS] [varchar](35) NULL,
	[CATEGORY] [varchar](35) NULL,
	[ROLE] [varchar](35) NULL,
	[COUNTRY] [varchar](128) NULL,
	[REGION] [varchar](128) NULL,
	[TAXPAYERID] [varchar](16) NULL,
	[C_AGENTNAME__D3943] [varchar](256) NULL,
	[C_AGENTNAME__B1EC3] [varchar](256) NULL,
	[F_OID$_PERSO_762E5] [varchar](35) NULL,
	[C_AGENTNAME__ABD50] [varchar](256) NULL,
	[C_AGENTNAME__7D056] [varchar](256) NULL,
	[C_AGENTNAME__722CD] [varchar](256) NULL,
	[LOGINID] [varchar](128) NULL,
	[ICEPATH] [varchar](256) NULL,
	[F_PAGENTBASE_7B96C] [varchar](35) NULL,
	[F_OID$_AGENT_DB156] [varchar](35) NULL,
	[F_PENTITY_AG_79C9C] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_ASSET_CLASS_PER_PROMET]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_ASSET_CLASS_PER_PROMET](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_CF_PB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_CF_PB](
	[ID_CLI] [varchar](18) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](7) NULL,
	[CHIAVE_PB] [varchar](7) NULL,
	[CHIAVE_CLIENTE] [varchar](18) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_PB] [varchar](6) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](25) NULL,
	[CODICEFISCALE] [varchar](16) NULL,
	[OID] [varchar](512) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[all_cf_pb_bk]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_cf_pb_bk](
	[ID_CLI] [varchar](18) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](7) NULL,
	[CHIAVE_PB] [varchar](7) NULL,
	[CHIAVE_CLIENTE] [varchar](18) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_PB] [varchar](6) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](25) NULL,
	[CODICEFISCALE] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[all_cf_pb_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_cf_pb_PrimaRecuperoLele](
	[ID_CLI] [varchar](18) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](7) NULL,
	[CHIAVE_PB] [varchar](7) NULL,
	[CHIAVE_CLIENTE] [varchar](18) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_PB] [varchar](6) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](25) NULL,
	[CODICEFISCALE] [varchar](16) NULL,
	[OID] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_CF_STATO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_CF_STATO](
	[CF_CLIENTE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[TOTALE_RIGHE] [int] NULL,
	[TOTALE_STATI] [int] NULL,
	[FLAG_UTILIZZO_STATO] [int] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[all_cf_stato_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_cf_stato_PrimaRecuperoLele](
	[CF_CLIENTE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[TOTALE_RIGHE] [int] NULL,
	[TOTALE_STATI] [int] NULL,
	[FLAG_UTILIZZO_STATO] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_CONSUL_ASUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_CONSUL_ASUL](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [float] NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CODICEINTERNO] [varchar](50) NULL,
	[SOTTOPRODOTTO] [varchar](50) NULL,
	[CONTROVALORE_ASUL] [float] NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[CATEGORIA] [varchar](17) NULL,
	[NUOVO_OID_CAT_PER_ASSET] [varchar](40) NULL,
	[CATEGORIA_2] [varchar](63) NULL,
	[COLO_JOIN] [varchar](40) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[all_consul_asul_bk]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_consul_asul_bk](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [float] NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CODICEINTERNO] [varchar](50) NULL,
	[SOTTOPRODOTTO] [varchar](50) NULL,
	[CONTROVALORE_ASUL] [float] NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[CATEGORIA] [varchar](17) NULL,
	[NUOVO_OID_CAT_PER_ASSET] [varchar](40) NULL,
	[CATEGORIA_2] [varchar](63) NULL,
	[COLO_JOIN] [varchar](40) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_PATR_TERZI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_PATR_TERZI](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CAPITALE_INVESTITO] [numeric](19, 3) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](128) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [numeric](19, 3) NULL,
	[C_VALUE_582FF] [numeric](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [numeric](22, 1) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](256) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [numeric](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NULL,
	[ASSETID] [varchar](64) NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [varchar](50) NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATE_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [numeric](19, 3) NULL,
	[LOCALITA] [varchar](512) NULL,
	[AFFITTOPERCEPITO] [numeric](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [numeric](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [numeric](19, 3) NULL,
	[DENOMINAZIONE] [varchar](512) NULL,
	[NUMEROQUOTE] [numeric](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[TIPO_BT_55768] [varchar](256) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797A] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESCR] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](512) NULL,
	[TIPOLOGIA_RDESCR] [varchar](256) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[all_patr_terzi_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_patr_terzi_PrimaRecuperoLele](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CAPITALE_INVESTITO] [numeric](19, 3) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](128) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [numeric](19, 3) NULL,
	[C_VALUE_582FF] [numeric](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [numeric](22, 1) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](256) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [numeric](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NULL,
	[ASSETID] [varchar](64) NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [varchar](50) NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATE_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [numeric](19, 3) NULL,
	[LOCALITA] [varchar](512) NULL,
	[AFFITTOPERCEPITO] [numeric](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [numeric](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [numeric](19, 3) NULL,
	[DENOMINAZIONE] [varchar](512) NULL,
	[NUMEROQUOTE] [numeric](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[TIPO_BT_55768] [varchar](256) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797A] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESCR] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](512) NULL,
	[TIPOLOGIA_RDESCR] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_PATR_TERZI_SENZA_ASSET]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_PATR_TERZI_SENZA_ASSET](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CAPITALE_INVESTITO] [numeric](19, 3) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](128) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [numeric](19, 3) NULL,
	[C_VALUE_582FF] [numeric](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [numeric](18, 0) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](256) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [numeric](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NOT NULL,
	[ASSETID] [varchar](64) NOT NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATE_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [numeric](19, 3) NULL,
	[LOCALITA] [varchar](512) NULL,
	[AFFITTOPERCEPITO] [numeric](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [numeric](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [numeric](19, 3) NULL,
	[DENOMINAZIONE] [varchar](512) NULL,
	[NUMEROQUOTE] [numeric](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[TIPO_BT_55768] [varchar](256) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797A] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESCR] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](12) NULL,
	[TIPOLOGIA_RDESCR] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ALL_POS_CONS_CAT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ALL_POS_CONS_CAT](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONSULENZA] [varchar](8) NULL,
	[PK_ALTERNATIVA_CONS] [varchar](64) NULL,
	[DATA_MIGRAZIONE_CONS] [datetime] NULL,
	[PK_AREA] [varchar](35) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[PK_PRC] [varchar](35) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[CONTROVALORE_PER_INV] [numeric](19, 7) NULL,
	[PERCENTUALE_MODELLO] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[DATA_ORDINAMENTO_INV] [datetime] NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[C_OUTCTV_B4FB8] [numeric](19, 7) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [numeric](22, 2) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CONTO] [varchar](11) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[NUMPOL] [varchar](11) NULL,
	[TERMID] [varchar](7) NULL,
	[ANNO] [varchar](3) NULL,
	[PROG] [varchar](5) NULL,
	[NOME_PRODOTTO] [varchar](512) NULL,
	[NEED_AREA_ABBREVIATA_DI_POS] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_POS] [varchar](512) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[ALBERATURA] [varchar](45) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[ISNEGOTIABLE] [numeric](1, 0) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[ORIGINE_FILE_CATALOGO] [varchar](1) NULL,
	[FLAG_PRESENZA_MAPPATURA] [varchar](2) NULL,
	[RAGGRUPPAMEN_NOME_PROGET] [varchar](64) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[all_pos_cons_cat_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_pos_cons_cat_PrimaRecuperoLele](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONSULENZA] [varchar](8) NULL,
	[PK_ALTERNATIVA_CONS] [varchar](64) NULL,
	[DATA_MIGRAZIONE_CONS] [datetime] NULL,
	[PK_AREA] [varchar](35) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[PK_PRC] [varchar](35) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[CONTROVALORE_PER_INV] [numeric](19, 7) NULL,
	[PERCENTUALE_MODELLO] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[DATA_ORDINAMENTO_INV] [datetime] NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[C_OUTCTV_B4FB8] [numeric](19, 7) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [numeric](22, 2) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CONTO] [varchar](11) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[NUMPOL] [varchar](11) NULL,
	[TERMID] [varchar](7) NULL,
	[ANNO] [varchar](3) NULL,
	[PROG] [varchar](5) NULL,
	[NOME_PRODOTTO] [varchar](512) NULL,
	[NEED_AREA_ABBREVIATA_DI_POS] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_POS] [varchar](512) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[ALBERATURA] [varchar](45) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[ISNEGOTIABLE] [numeric](1, 0) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[ORIGINE_FILE_CATALOGO] [varchar](1) NULL,
	[FLAG_PRESENZA_MAPPATURA] [varchar](2) NULL,
	[RAGGRUPPAMEN_NOME_PROGET] [varchar](64) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[all_proposta_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[all_proposta_PrimaRecuperoLele](
	[AGENTE] [varchar](138) NULL,
	[RETE] [varchar](10) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[CHIAVE_PROPOSTA] [varchar](35) NULL,
	[NOME_PROPOSTA] [varchar](128) NULL,
	[STATO_PROPOSTA] [varchar](256) NULL,
	[DATA_CREAZIONE_PROPOSTA] [datetime] NULL,
	[DATA_SCADENZA_PROPOSTA] [datetime] NULL,
	[NEED_BREVE] [varchar](512) NULL,
	[NEED_ESTESA] [varchar](512) NULL,
	[ORDINE_NEED] [decimal](19, 0) NULL,
	[CONTROVALORE_TOT_PER_NEED] [decimal](19, 7) NULL,
	[PERC_PER_NEED] [decimal](5, 2) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CONTROV_CONSULENZA] [decimal](19, 7) NULL,
	[CONTROV_PROPOSTA] [decimal](18, 0) NULL,
	[CONTROV_DA_DEFINIRE_LIQ] [decimal](19, 7) NULL,
	[ISANEWPOSITION] [decimal](1, 0) NULL,
	[STRINGONA_CLONEPOS] [varchar](256) NULL,
	[NOME_PRODOTTO_CLONEPOS] [varchar](512) NULL,
	[INVESTI] [decimal](19, 7) NULL,
	[DISINVESTI] [decimal](19, 7) NULL,
	[PTF_INIZ] [decimal](19, 7) NULL,
	[CTVOPERAZIONE] [decimal](19, 7) NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[POLIZZADECIMAL] [varchar](20) NULL,
	[CONTO] [varchar](512) NULL,
	[RUBRICATO] [varchar](512) NULL,
	[PR_COD_ISIN] [varchar](20) NULL,
	[PR_COD_MAF] [varchar](20) NULL,
	[PR_COD_INTERNO] [varchar](20) NULL,
	[PR_COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[PR_COD_ADEGUATEZZA] [varchar](20) NULL,
	[NOME_PRODOTTO_CATALOGO] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CHIAVE_PER_LA_CONSULENZA] [varchar](35) NULL,
	[RICONCILIATA] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_PROGETTO] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_AREA] [decimal](1, 0) NULL,
	[FLAG_SALVATAGGIO_MANUALE] [decimal](1, 0) NULL,
	[RAGGRUPPAMENTO_PROGETTO] [varchar](64) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[AM_OperazioniUltimoTrimestre]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[AM_OperazioniUltimoTrimestre](
	[RETE] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[DataOperazione] [varchar](30) NULL,
	[Contratto] [varchar](500) NULL,
	[NumeroContratto] [varchar](11) NULL,
	[Operazione] [varchar](50) NULL,
	[ImportoOperazione] [numeric](38, 2) NULL,
	[FirmaDigitale] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[appo_contratti_0110]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[appo_contratti_0110](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[appo_contratti_20240307]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[appo_contratti_20240307](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[APPO_CONTRATTI_20240401]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[APPO_CONTRATTI_20240401](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[APPO_CONTRATTI_BACKUP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[APPO_CONTRATTI_BACKUP](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[APPO_CONTRATTI_BACKUP_00805]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[APPO_CONTRATTI_BACKUP_00805](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[APPO_CONTRATTI_IMMOBILIARE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[APPO_CONTRATTI_IMMOBILIARE](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[appo_contratti_limiter_20240805]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[appo_contratti_limiter_20240805](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[AREEDIBISOGNO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[AREEDIBISOGNO](
	[AREAID] [varchar](128) NULL,
	[AREANAME] [varchar](128) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ASSET_1_E_2_ORDINATE](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINAMENTO_ASSET] [float] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ASSETCLASS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ASSETCLASS](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[ASSETCLASSID] [varchar](128) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ASSETCLASSDESCR] [varchar](2048) NULL,
	[ASSETCLASSLEV] [numeric](19, 0) NULL,
	[ISRESIDUAL] [numeric](1, 0) NULL,
	[F_PASSETCLAS_2FB94] [varchar](35) NULL,
	[F_OID$_ASSET_B965C] [varchar](35) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ORDINE] [float] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[BKP_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BKP_PRE_RAFFORZAMENTO](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[CODICECLASSERC] [varchar](80) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240108]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240108](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240108_122709]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240108_122709](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240109]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240109](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240109_122051]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240109_122051](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240109_125631]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240109_125631](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_115725]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_115725](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_115858]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_115858](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_120005]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_120005](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_120159]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_120159](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_123615]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_123615](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_133521]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_133521](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_134305]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_134305](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_141339]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_141339](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_142242]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_142242](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_145516]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240115_145516](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240117]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240117](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240117_095233]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240117_095233](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_152248]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_152248](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_154018]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_154018](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_154131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_154131](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_161526]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_161526](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_173000]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240124_173000](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240127]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240127](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240127_130027]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240127_130027](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240130]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240130](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240209]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240209](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240212](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240213]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240213](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240216]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240216](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240223]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240223](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240223_171138]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240223_171138](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240314]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240314](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_095043]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_095043](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_114432]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_114432](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_160443]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_160443](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_162330]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_162330](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_162705]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_162705](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_163024]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_163024](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_164202]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_164202](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_164517]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240315_164517](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240412]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240412](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240412_123944]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240412_123944](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240412_142310]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240412_142310](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240415]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240415](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240417]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240417](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240419]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240419](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240419_095043]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240419_095043](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240506]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240506](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240506_145527]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240506_145527](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240509](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240510](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240512]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240512](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240614]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240614](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240717]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240717](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240731]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240731](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240801]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240801](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240805]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240805](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240824]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240824](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240911]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20240911](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241014]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241014](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241030]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241030](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241030_111748]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241030_111748](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241114]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20241114](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250119]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250119](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250128]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250128](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250210](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250210_205910]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250210_205910](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250210_215655]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250210_215655](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250218](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250313]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250313](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250415]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250415](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250509](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250509_010250]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_20250509_010250](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_appoggio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_appoggio](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_bk_coperturaminus]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_bk_coperturaminus](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_bkp_20241221](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_duplicati]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_duplicati](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_giornaliero]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_giornaliero](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_pre_unione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[BRS_AGGR_OUT_ALADDIN_pre_unione](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[C_BO_453FB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[C_BO_453FB](
	[OID$] [varchar](35) NULL,
	[C_VALUE_7BD3C] [numeric](19, 0) NULL,
	[C_DESCRIZION_93ABE] [varchar](128) NULL,
	[PK_PRC] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA.obs]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA.obs](
	[ID] [decimal](2, 0) NULL,
	[COMPLESSITA] [varchar](2) NULL,
	[CONCENTRAZIONE] [varchar](2) NULL,
	[ESITO] [varchar](25) NULL,
	[TESTO_NOTA] [nvarchar](500) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF](
	[ID] [decimal](2, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[COMPLESSITA] [varchar](2) NULL,
	[CONCENTRAZIONE] [varchar](2) NULL,
	[ESITO] [varchar](25) NULL,
	[TESTO_NOTA] [nvarchar](500) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[CATINAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CATINAREA](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [decimal](19, 0) NULL,
	[C_ISMAINNEED_9C780] [decimal](1, 0) NULL,
	[NEEDAREAVALUE] [varchar](10) NULL,
	[F_OID$_NEEDA_2C362] [varchar](35) NULL,
	[F_PCATALOGUE_5D024] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CATITEMREF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CATITEMREF](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[PRODUCTCURRENCY] [varchar](3) NULL,
	[PRODUCTCOUNTRY] [varchar](35) NULL,
	[PRODUCTREGION] [varchar](35) NULL,
	[CATALOGUEID] [varchar](128) NOT NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TYPE$_BCATAL_FC317] [varchar](256) NULL,
	[CATEGORY] [varchar](20) NULL,
	[INSTITUTIONS] [varchar](20) NULL,
	[COUNTRY] [varchar](3) NULL,
	[PIAZZA] [varchar](128) NULL,
	[ULTIMOPRZCURR] [varchar](3) NULL,
	[ULTIMOPRZ] [numeric](19, 3) NULL,
	[CAPITALERISPARMIO] [varchar](10) NULL,
	[LMINCAPCONTRCURR] [varchar](3) NULL,
	[LMINCAPCONTR] [numeric](19, 3) NULL,
	[LSUCCAPCONTRCURR] [varchar](3) NULL,
	[LSUCCAPCONTR] [numeric](19, 3) NULL,
	[LMINRISPCONTRCURR] [varchar](3) NULL,
	[LMINRISPCONTR] [numeric](19, 3) NULL,
	[LSUCRISPCONTRCURR] [varchar](3) NULL,
	[LSUCRISPCONTR] [numeric](19, 3) NULL,
	[LMINCOMMCURR] [varchar](3) NULL,
	[LMINCOMM] [numeric](19, 3) NULL,
	[DELEGAGESTIONALE] [varchar](128) NULL,
	[TIPOLOGIAPERPICK] [varchar](10) NULL,
	[EXPIRATIONDATE] [datetime] NULL,
	[RISKPRICE] [varchar](10) NULL,
	[FISCALREGIMENT] [varchar](10) NULL,
	[QUOTATO] [varchar](10) NULL,
	[CLASSEDIPREZZO] [varchar](10) NULL,
	[BONDRATING] [varchar](128) NULL,
	[BONDDURATION] [varchar](128) NULL,
	[TEMPMIN] [varchar](128) NULL,
	[TEMPMAX] [varchar](128) NULL,
	[PRIPRODCOM] [varchar](128) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[MACROACOBPERC] [numeric](19, 7) NULL,
	[MACROACALPERC] [numeric](19, 7) NULL,
	[MACROACAZPERC] [numeric](19, 7) NULL,
	[MACROACMNPERC] [numeric](19, 7) NULL,
	[LINEEFINACC] [varchar](128) NULL,
	[TIPOVERS] [varchar](35) NULL,
	[TIPOPOLIZRAM1] [varchar](35) NULL,
	[DURATACONTR] [varchar](128) NULL,
	[GARDEMO] [varchar](35) NULL,
	[RISKPRESSCAD] [varchar](35) NULL,
	[LIVFLUTDUR] [varchar](10) NULL,
	[OPZRENDVIT] [numeric](1, 0) NULL,
	[METAA] [varchar](128) NULL,
	[METAB] [varchar](128) NULL,
	[METAC] [varchar](128) NULL,
	[RATOBBLIG] [varchar](128) NULL,
	[ULTIMOPREZZOCURR] [varchar](3) NULL,
	[ULTIMOPREZZO] [numeric](19, 3) NULL,
	[DATARIFPREZZO] [datetime] NULL,
	[CODICEADB] [varchar](128) NULL,
	[AGGIORNFEED] [varchar](128) NULL,
	[DISTRPROV] [varchar](128) NULL,
	[CODTIPOCONTR] [varchar](128) NULL,
	[ULTPRZSECCURR] [varchar](3) NULL,
	[ULTPRZSEC] [numeric](19, 3) NULL,
	[DATAULTPRZSEC] [datetime] NULL,
	[CODBLOOMBERG] [varchar](128) NULL,
	[DENOMUNITLNK] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[GENERICDATA] [datetime] NULL,
	[GENERICCURCURR] [varchar](3) NULL,
	[GENERICCUR] [numeric](19, 3) NULL,
	[GENERICSTRING1] [varchar](128) NULL,
	[GENERICSTRING2] [varchar](128) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[PRODUCTSTATUS] [varchar](35) NULL,
	[ISVISIBLE] [numeric](1, 0) NULL,
	[ISNEGOTIABLE] [numeric](1, 0) NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_OID$_VAR_CDDF8] [varchar](35) NULL,
	[RISKPROFOFSUITCLS] [varchar](2048) NULL,
	[OPINION] [varchar](35) NULL,
	[OPINIONDATE] [datetime] NULL,
	[F_OID$_CATAL_B3E14] [varchar](35) NULL,
	[F_OID$_PCATE_F3BF6] [varchar](35) NULL,
	[F_OID$_MAINA_76C35] [varchar](35) NULL,
	[F_OID$_INSTR_B5526] [varchar](35) NULL,
	[F_OID$_MAINS_5FCE5] [varchar](35) NULL,
	[F_OID$_MAINR_08A23] [varchar](35) NULL,
	[F_OID$_PRISK_AAC57] [varchar](35) NULL,
	[F_OID$_PRODU_F8FBB] [varchar](35) NULL,
	[F_OID$_MARKE_F3D2D] [varchar](35) NULL,
	[COLL_SKANDIA] [numeric](19, 0) NULL,
	[CODASSETSAT] [varchar](512) NULL,
	[STRTYPE] [varchar](2) NULL,
	[CODEMI] [varchar](13) NULL,
	[COMPLEX] [numeric](2, 0) NULL,
	[TIP_EMITTENTE] [varchar](35) NULL,
	[TIP_TASSO] [varchar](35) NULL,
 CONSTRAINT [PK_CATITEMREF_1] PRIMARY KEY CLUSTERED 
(
	[OID$] ASC,
	[CATALOGUEID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CATITEMREF_NOMATCH]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CATITEMREF_NOMATCH](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[PRODUCTCURRENCY] [varchar](3) NULL,
	[PRODUCTCOUNTRY] [varchar](35) NULL,
	[PRODUCTREGION] [varchar](35) NULL,
	[CATALOGUEID] [varchar](128) NOT NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TYPE$_BCATAL_FC317] [varchar](256) NULL,
	[CATEGORY] [varchar](20) NULL,
	[INSTITUTIONS] [varchar](20) NULL,
	[COUNTRY] [varchar](3) NULL,
	[PIAZZA] [varchar](128) NULL,
	[ULTIMOPRZCURR] [varchar](3) NULL,
	[ULTIMOPRZ] [numeric](19, 3) NULL,
	[CAPITALERISPARMIO] [varchar](10) NULL,
	[LMINCAPCONTRCURR] [varchar](3) NULL,
	[LMINCAPCONTR] [numeric](19, 3) NULL,
	[LSUCCAPCONTRCURR] [varchar](3) NULL,
	[LSUCCAPCONTR] [numeric](19, 3) NULL,
	[LMINRISPCONTRCURR] [varchar](3) NULL,
	[LMINRISPCONTR] [numeric](19, 3) NULL,
	[LSUCRISPCONTRCURR] [varchar](3) NULL,
	[LSUCRISPCONTR] [numeric](19, 3) NULL,
	[LMINCOMMCURR] [varchar](3) NULL,
	[LMINCOMM] [numeric](19, 3) NULL,
	[DELEGAGESTIONALE] [varchar](128) NULL,
	[TIPOLOGIAPERPICK] [varchar](10) NULL,
	[EXPIRATIONDATE] [datetime] NULL,
	[RISKPRICE] [varchar](10) NULL,
	[FISCALREGIMENT] [varchar](10) NULL,
	[QUOTATO] [varchar](10) NULL,
	[CLASSEDIPREZZO] [varchar](10) NULL,
	[BONDRATING] [varchar](128) NULL,
	[BONDDURATION] [varchar](128) NULL,
	[TEMPMIN] [varchar](128) NULL,
	[TEMPMAX] [varchar](128) NULL,
	[PRIPRODCOM] [varchar](128) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[MACROACOBPERC] [numeric](19, 7) NULL,
	[MACROACALPERC] [numeric](19, 7) NULL,
	[MACROACAZPERC] [numeric](19, 7) NULL,
	[MACROACMNPERC] [numeric](19, 7) NULL,
	[LINEEFINACC] [varchar](128) NULL,
	[TIPOVERS] [varchar](35) NULL,
	[TIPOPOLIZRAM1] [varchar](35) NULL,
	[DURATACONTR] [varchar](128) NULL,
	[GARDEMO] [varchar](35) NULL,
	[RISKPRESSCAD] [varchar](35) NULL,
	[LIVFLUTDUR] [varchar](10) NULL,
	[OPZRENDVIT] [numeric](1, 0) NULL,
	[METAA] [varchar](128) NULL,
	[METAB] [varchar](128) NULL,
	[METAC] [varchar](128) NULL,
	[RATOBBLIG] [varchar](128) NULL,
	[ULTIMOPREZZOCURR] [varchar](3) NULL,
	[ULTIMOPREZZO] [numeric](19, 3) NULL,
	[DATARIFPREZZO] [datetime] NULL,
	[CODICEADB] [varchar](128) NULL,
	[AGGIORNFEED] [varchar](128) NULL,
	[DISTRPROV] [varchar](128) NULL,
	[CODTIPOCONTR] [varchar](128) NULL,
	[ULTPRZSECCURR] [varchar](3) NULL,
	[ULTPRZSEC] [numeric](19, 3) NULL,
	[DATAULTPRZSEC] [datetime] NULL,
	[CODBLOOMBERG] [varchar](128) NULL,
	[DENOMUNITLNK] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[GENERICDATA] [datetime] NULL,
	[GENERICCURCURR] [varchar](3) NULL,
	[GENERICCUR] [numeric](19, 3) NULL,
	[GENERICSTRING1] [varchar](128) NULL,
	[GENERICSTRING2] [varchar](128) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[PRODUCTSTATUS] [varchar](35) NULL,
	[ISVISIBLE] [numeric](1, 0) NULL,
	[ISNEGOTIABLE] [numeric](1, 0) NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_OID$_VAR_CDDF8] [varchar](35) NULL,
	[RISKPROFOFSUITCLS] [varchar](2048) NULL,
	[OPINION] [varchar](35) NULL,
	[OPINIONDATE] [datetime] NULL,
	[F_OID$_CATAL_B3E14] [varchar](35) NULL,
	[F_OID$_PCATE_F3BF6] [varchar](35) NULL,
	[F_OID$_MAINA_76C35] [varchar](35) NULL,
	[F_OID$_INSTR_B5526] [varchar](35) NULL,
	[F_OID$_MAINS_5FCE5] [varchar](35) NULL,
	[F_OID$_MAINR_08A23] [varchar](35) NULL,
	[F_OID$_PRISK_AAC57] [varchar](35) NULL,
	[F_OID$_PRODU_F8FBB] [varchar](35) NULL,
	[F_OID$_MARKE_F3D2D] [varchar](35) NULL,
	[COLL_SKANDIA] [numeric](19, 0) NULL,
	[CODASSETSAT] [varchar](512) NULL,
	[STRTYPE] [varchar](2) NULL,
	[CODEMI] [varchar](13) NULL,
	[COMPLEX] [numeric](2, 0) NULL,
 CONSTRAINT [PK_CATITEMREF_1_nomatch] PRIMARY KEY CLUSTERED 
(
	[OID$] ASC,
	[CATALOGUEID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CLIENTI_CON_RNA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CLIENTI_CON_RNA](
	[Rete] [varchar](1) NULL,
	[CodicePB] [varchar](6) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Percentuale] [numeric](19, 3) NULL,
	[DataCalcolo] [datetime] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ClientIProfessionali]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ClientIProfessionali](
	[rete] [varchar](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[dataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[COMPLESSITA_POSITION]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[COMPLESSITA_POSITION](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COMPLESSITA] [char](1) NULL,
	[NOME_PRODOTTO] [varchar](400) NULL,
	[PRODUCT_ID] [varchar](128) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[ID_AREA] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[CONGELAMENTO_SEI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CONGELAMENTO_SEI](
	[DATA_CONGELAMENTO] [datetime] NOT NULL,
 CONSTRAINT [PK_CONGELAMENTO_SEI] PRIMARY KEY CLUSTERED 
(
	[DATA_CONGELAMENTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[CONO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CONO](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [numeric](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [numeric](19, 7) NULL,
	[F_PPROJECT_P_46507] [varchar](35) NULL,
	[C_QUANTILE50_C47E0] [numeric](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CONSAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CONSAREA](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_7FBE3] [varchar](35) NULL,
	[C_CONSULENZA_A58F3] [varchar](64) NULL,
	[C_CONSULENZA_E94E3] [varchar](64) NULL,
	[C_NEEDAREA_V_46360] [varchar](512) NULL,
	[C_NEEDAREA_D_911D8] [varchar](512) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_OUTCTV_A27B5] [numeric](19, 7) NULL,
	[C_PATRIMONIO_F4B8E] [numeric](19, 7) NULL,
	[C_INVESTIMEN_AC24C] [numeric](19, 7) NULL,
	[C_CONSULENZA_0C219] [numeric](1, 0) NULL,
	[C_CONSULENZA_1C9D3] [numeric](1, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[CONSUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_CONSULENZA_EBDBE] [varchar](64) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_TIPOCO_1EA7C] [varchar](256) NULL,
	[C_CONTROVALO_C57EE] [numeric](19, 7) NULL,
	[C_PATRIMONIO_0BF30] [numeric](19, 7) NULL,
	[C_ALTROPATRI_E90EF] [numeric](19, 7) NULL,
	[C_ALTRO_5AD86] [numeric](19, 7) NULL,
	[C_DATAINIZIO_35C15] [datetime] NULL,
	[C_RISORSENON_A04BD] [numeric](19, 7) NULL,
	[C_INVESTIMEN_C4514] [numeric](19, 7) NULL,
	[C_INVESTIMEN_36DE3] [numeric](19, 7) NULL,
	[C_IDQUESTION_5549B] [varchar](512) NULL,
	[C_DATAQUESTI_5069A] [datetime] NULL,
	[C_VARCONSOB_28C92] [numeric](19, 7) NULL,
	[C_VALORIALLI_0CA23] [numeric](1, 0) NULL,
	[C_DATAPIRAMI_661DA] [datetime] NULL,
	[C_DATACONSVE_D3DE3] [datetime] NULL,
	[C_DATACONSOR_EA88E] [datetime] NULL,
	[C_PROFILOCON_81F5D] [numeric](19, 0) NULL,
	[C_DATAMIGRAZ_BF705] [datetime] NULL,
	[C_SALVADANAI_B156A] [numeric](19, 7) NULL,
	[C_CONSULENZA_2C1E1] [numeric](1, 0) NULL,
	[C_DATACONSVE_66B66] [datetime] NULL,
	[C_DATACAMBIO_79509] [datetime] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ContrattiPreTrimestrale]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ContrattiPreTrimestrale](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ContrattiPreTrimestraleFineTrimestre]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ContrattiPreTrimestraleFineTrimestre](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ControlloROL_SEI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ControlloROL_SEI](
	[INSTID] [varchar](10) NULL,
	[ADBKID] [varchar](128) NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[EMAIL] [varchar](512) NULL,
	[FLAG_ROL] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[CONTRSEI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[CONTRSEI](
	[ADBKID] [varchar](256) NOT NULL,
	[INSTID] [varchar](2) NOT NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[CODAGE] [varchar](512) NULL,
	[STATUS] [varchar](512) NULL,
	[DTPROC_BASE] [decimal](19, 0) NULL,
	[DTSIGN_BASE] [decimal](19, 0) NULL,
	[DTEND_BASE] [decimal](19, 0) NULL,
	[ADDRESS] [varchar](512) NULL,
	[CAP] [varchar](512) NULL,
	[CITY] [varchar](512) NULL,
	[PROVINCE] [varchar](512) NULL,
	[NATION] [varchar](512) NULL,
	[PRESSO] [varchar](512) NULL,
	[RANGECPP] [varchar](512) NULL,
	[GEN_REPORT] [varchar](512) NULL,
	[GEN_BILLING] [varchar](512) NULL,
	[EMAIL] [varchar](512) NULL,
	[FREQREPDIA] [varchar](512) NULL,
	[FREQREPMON] [varchar](512) NULL,
	[DTPROC_AV] [decimal](19, 0) NULL,
	[DTSIGN_AV] [decimal](19, 0) NULL,
	[DTEND_AV] [decimal](19, 0) NULL,
	[DTFIRMA] [decimal](19, 0) NULL,
	[PROGLASTSENDING] [decimal](19, 0) NULL,
	[DTLASTSENDING] [decimal](19, 0) NULL,
	[DTLASTPROCESSING] [decimal](19, 0) NULL,
	[NEWFREQREPDIA] [varchar](512) NULL,
	[NEWFREQREPMON] [varchar](512) NULL,
	[DTSTARTFREQREP] [decimal](19, 0) NULL,
	[NEWDTSTARTFREQREP] [decimal](19, 0) NULL,
	[NOTE] [varchar](512) NULL,
	[DT_VALID] [decimal](18, 0) NULL,
	[FL_SRDEF] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[datiROL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[datiROL](
	[CODFIS] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODCONTRATTO] [varchar](11) NOT NULL,
	[EMAIL] [varchar](512) NULL,
	[ALERTROL] [varchar](512) NULL,
	[STATOROL] [varchar](512) NULL,
 CONSTRAINT [PK_datiROL] PRIMARY KEY CLUSTERED 
(
	[CODFIS] ASC,
	[RETE] ASC,
	[CODCONTRATTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[datiROL2_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[datiROL2_TEST](
	[CODFIS] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODCONTRATTO] [varchar](11) NOT NULL,
	[EMAIL] [varchar](512) NULL,
	[ALERTROL] [varchar](512) NULL,
	[STATOROL] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[DecodEmittente]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[DecodEmittente](
	[isin] [varchar](18) NOT NULL,
	[tipoEmittente] [varchar](35) NOT NULL,
	[tipoTasso] [varchar](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[emit]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[emit](
	[codemi] [varchar](13) NOT NULL,
	[descr] [varchar](123) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_ANAG_METRICHE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_ANAG_METRICHE](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [nvarchar](50) NULL,
	[ESGRating] [nvarchar](3) NULL,
	[TrendESGRating] [nvarchar](3) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_E] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_S] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](64) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](64) NULL,
	[PAI_LAB_A_Acqua] [varchar](64) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](64) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](64) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](64) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](64) NULL,
	[PAI_LAB_A_Settore_Immobiliare] [varchar](64) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](64) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](64) NULL,
	[Label_PAI_A] [varchar](256) NULL,
	[Label_PAI_S] [varchar](256) NULL,
	[Label_U_INFO_ESG] [varchar](256) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_ANAG_METRICHE_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_ANAG_METRICHE_bkp_20241221](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [nvarchar](50) NULL,
	[ESGRating] [nvarchar](3) NULL,
	[TrendESGRating] [nvarchar](3) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](64) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](64) NULL,
	[PAI_LAB_A_Acqua] [varchar](64) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](64) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](64) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](64) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](64) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](64) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](64) NULL,
	[Label_PAI_A] [varchar](256) NULL,
	[Label_PAI_S] [varchar](256) NULL,
	[Label_U_INFO_ESG] [varchar](256) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240108]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240108](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240108_122711]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240108_122711](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240109]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240109](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240109_122051]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240109_122051](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240109_125632]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240109_125632](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_115726]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_115726](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_115858]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_115858](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_120005]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_120005](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_120159]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_120159](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_123615]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_123615](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_133521]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_133521](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_134306]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_134306](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_141339]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_141339](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_142243]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_142243](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_145516]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240115_145516](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240117]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240117](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240117_095234]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240117_095234](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_152248]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_152248](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_154018]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_154018](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_154131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_154131](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_161526]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_161526](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_173000]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240124_173000](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240127]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240127](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240127_130027]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240127_130027](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240130]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240130](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240209]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240209](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240212](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240213]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240213](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240216]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240216](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240223]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240223](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240223_171138]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240223_171138](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240314]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240314](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_095043]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_095043](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_114433]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_114433](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_160443]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_160443](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_162330]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_162330](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_162705]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_162705](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_163024]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_163024](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_164202]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_164202](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_164517]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240315_164517](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240412]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240412](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240412_123944]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240412_123944](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240412_142310]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240412_142310](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240415]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240415](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240417]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240417](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240419]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240419](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240506]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240506](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240506_145527]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240506_145527](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240509](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240510](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240512]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240512](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240614]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240614](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240717]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240717](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240731]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240731](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240801]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240801](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240805]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240805](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240824]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240824](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240911]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20240911](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241014]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241014](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241030]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241030](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241030_111748]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241030_111748](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241114]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20241114](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250119]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250119](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250128]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250128](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250210](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250210_205910]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250210_205910](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250210_215655]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250210_215655](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250218](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250313]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250313](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250415]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250415](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250509](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250509_010250]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_20250509_010250](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ESG_Metriche_Cliente_IL_bkp_20241221](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](8) NOT NULL,
	[Preferenza_esg_cliente] [varchar](1) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[obiettivo_ESG_minimo] [decimal](6, 3) NULL,
	[ESG_Rating] [nvarchar](3) NULL,
	[ESG_E_perc] [decimal](6, 3) NULL,
	[ESG_S_perc] [decimal](6, 3) NULL,
	[ESG_G_perc] [decimal](6, 3) NULL,
	[dt_trim] [datetime] NULL,
	[dt_insert] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[INDREND]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[INDREND](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_VAR_A94EA] [numeric](19, 7) NULL,
	[C_TEMPOINVES_CE300] [numeric](19, 0) NULL,
	[C_COPERTURA_94818] [numeric](19, 7) NULL,
	[C_PERDITAMAX_F5B51] [numeric](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[INSTRBDS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[INSTRBDS](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[BDISIN] [varchar](128) NULL,
	[BDMAF] [varchar](128) NULL,
	[F_OID$_PCATA_5DDA6] [varchar](35) NULL,
	[PROVENIENZA] [varchar](50) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[MAIL_PROFILI_RISCHIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[MAIL_PROFILI_RISCHIO](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[cod_agente] [varchar](6) NULL,
	[data_sott] [datetime] NOT NULL,
	[data_perf] [datetime] NULL,
	[flag_invio_report] [varchar](1) NULL,
	[profilo] [varchar](2) NULL,
	[dt_creazione_profilo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[MAIL_PROFILI_RISCHIO_test]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[MAIL_PROFILI_RISCHIO_test](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[cod_agente] [varchar](6) NULL,
	[data_sott] [datetime] NOT NULL,
	[data_perf] [datetime] NULL,
	[flag_invio_report] [varchar](1) NULL,
	[profilo] [varchar](2) NULL,
	[dt_creazione_profilo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[NEEDAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[NEEDAREA](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[AREAID] [varchar](128) NULL,
	[AREANAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_PNEEDAREA__742D7] [varchar](35) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[NOME_PROGETTO_BOZZA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[NOME_PROGETTO_BOZZA](
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[NUOVO_NOME_PROGETTO] [varchar](512) NULL,
	[C_PROJECTIDR_51E22] [varchar](64) NULL,
	[NEEDAREA] [varchar](512) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[OTHINTRST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[OTHINTRST](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[INTERESTDESC] [varchar](128) NULL,
	[INTERESTCUR] [varchar](3) NULL,
	[INTERESTAMT] [numeric](19, 3) NULL,
	[F_PQUANTIFIC_76FF6] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[OutputSelecta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[OutputSelecta](
	[CodiceContratto] [varchar](12) NOT NULL,
	[NomeCognome] [varchar](255) NOT NULL,
	[Data] [varchar](20) NOT NULL,
	[NomeFile] [varchar](255) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[patr_terzi_lmt]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[patr_terzi_lmt](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CAPITALE_INVESTITO] [numeric](19, 3) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](128) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [numeric](19, 3) NULL,
	[C_VALUE_582FF] [numeric](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [numeric](22, 1) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](256) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [numeric](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NULL,
	[ASSETID] [varchar](64) NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [varchar](50) NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATE_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [numeric](19, 3) NULL,
	[LOCALITA] [varchar](512) NULL,
	[AFFITTOPERCEPITO] [numeric](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [numeric](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [numeric](19, 3) NULL,
	[DENOMINAZIONE] [varchar](512) NULL,
	[NUMEROQUOTE] [numeric](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[TIPO_BT_55768] [varchar](256) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797A] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESCR] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](512) NULL,
	[TIPOLOGIA_RDESCR] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[PHOTO_DATA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PHOTO_DATA](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[PHOTO_DATA_0]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PHOTO_DATA_0](
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_TIPOCO_1EA7C] [varchar](256) NULL,
	[DIFFPHOTOCONSUL] [varchar](30) NULL,
	[DIFFCONSULPHOTO] [varchar](30) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[C_DATACONSOR_EA88E] [datetime] NULL,
	[C_NEEDAREA_D_911D8] [varchar](512) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[POSITIONID] [varchar](512) NULL,
	[POSITIONNAME] [varchar](512) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[PHOTO_DATA_bck]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PHOTO_DATA_bck](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[PHOTO_DATA_Developing]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PHOTO_DATA_Developing](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[photo_data_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[photo_data_PrimaRecuperoLele](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[Popola_PiramideModello]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[Popola_PiramideModello](
	[Rete] [varchar](1) NOT NULL,
	[Cod_fiscale] [varchar](16) NOT NULL,
	[Data_foto] [datetime] NOT NULL,
	[PERC_EXT] [decimal](10, 2) NULL,
	[PERC_INV] [decimal](10, 2) NULL,
	[PERC_PRE] [decimal](10, 2) NULL,
	[PERC_RIS] [decimal](10, 2) NULL,
	[PERC_LIQ] [decimal](10, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[PORTMOD]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PORTMOD](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PPROJECT_P_EE748] [varchar](35) NULL,
	[C_ASSET_CD02D] [varchar](512) NULL,
	[C_PERCENTUAL_143B7] [numeric](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[POSITION]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[POSITION](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_56F23] [varchar](35) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CONSULENZAID] [varchar](64) NULL,
	[TYPE$_CATALO_35E2A] [varchar](256) NULL,
	[POSITIONNAME] [varchar](512) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[C_OUTCTV_B4FB8] [numeric](19, 7) NULL,
	[C_NEEDAREASE_3D485] [varchar](512) NULL,
	[C_NEEDAREASE_30873] [varchar](512) NULL,
	[CATALOGUEITEMID] [varchar](128) NULL,
	[F_OID$_POSIT_00526] [varchar](35) NULL,
	[F_PPROJECT_P_B5629] [varchar](35) NULL,
	[CTVINIZIALE] [numeric](19, 7) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[position_PrimaRecuperoLele]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[position_PrimaRecuperoLele](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_56F23] [varchar](35) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CONSULENZAID] [varchar](64) NULL,
	[TYPE$_CATALO_35E2A] [varchar](256) NULL,
	[POSITIONNAME] [varchar](512) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[C_OUTCTV_B4FB8] [numeric](19, 7) NULL,
	[C_NEEDAREASE_3D485] [varchar](512) NULL,
	[C_NEEDAREASE_30873] [varchar](512) NULL,
	[CATALOGUEITEMID] [varchar](128) NULL,
	[F_OID$_POSIT_00526] [varchar](35) NULL,
	[F_PPROJECT_P_B5629] [varchar](35) NULL,
	[CTVINIZIALE] [numeric](19, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[PRCONSUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PRCONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_B69E4] [varchar](35) NULL,
	[C_PROJECTID_9894C] [varchar](64) NULL,
	[C_CONSULENZA_CB331] [varchar](64) NULL,
	[C_CONSULENZA_A7FC6] [varchar](64) NULL,
	[NEEDAREAID] [varchar](128) NULL,
	[TYPE$_PROJEC_14674] [varchar](256) NULL,
	[C_PROJECTNAM_11D1A] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_CREATIONDA_732BD] [datetime] NULL,
	[C_LASTMODIFI_3BF4A] [datetime] NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[F_OID$_FREQU_A5FAB] [varchar](35) NULL,
	[C_IMPORTOPER_7A987] [numeric](19, 7) NULL,
	[F_OID$_RISKP_9CF4A] [varchar](35) NULL,
	[F_OID$_ORIZZ_4A868] [varchar](35) NULL,
	[C_PERDITAAVV_D414B] [numeric](19, 7) NULL,
	[C_PERDITAMAX_55078] [numeric](19, 7) NULL,
	[C_GUADAGNOAV_2BD07] [numeric](19, 7) NULL,
	[C_GUADAGNOMA_D14C4] [numeric](19, 7) NULL,
	[C_RISERVENON_CCD2D] [numeric](1, 0) NULL,
	[C_RISERVEMON_5E189] [numeric](1, 0) NULL,
	[C_RISERVEOBB_121FA] [numeric](1, 0) NULL,
	[C_RISERVEAZI_175C0] [numeric](1, 0) NULL,
	[C_CONSULENZA_ACEEE] [numeric](1, 0) NULL,
	[C_PROJECTIDM_1AF31] [varchar](12) NULL,
	[C_PROJECTIDR_51E22] [varchar](64) NULL,
	[C_DATAULTIMO_FFA71] [datetime] NULL,
	[C_PERDITAMAX_BEABF] [numeric](1, 0) NULL,
	[C_PERDITAMAX_AAB4C] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_43151] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_0F76F] [numeric](1, 0) NULL,
	[F_OID$_PROJE_CD4BB] [varchar](35) NULL,
	[C_NOTE_B4B97] [varchar](100) NULL,
	[C_PERCENTUAL_69019] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[F_OID$_RISKS_A3B54] [varchar](35) NULL,
	[C_ORDERTIMES_80019] [datetime] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[TipoProdotto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza_preMUA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza_preMUA](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[TipoProdotto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PROMETEIA_AGGR](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](30) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](30) NOT NULL,
	[McVar] [varchar](30) NOT NULL,
	[McVarP] [varchar](30) NOT NULL,
	[Beneficio] [varchar](30) NOT NULL,
	[Copertura] [varchar](30) NOT NULL,
	[Totale] [varchar](40) NOT NULL,
	[Clsint] [varchar](40) NULL,
	[Mdclcclsint] [varchar](40) NULL,
	[Cllsr] [varchar](40) NULL,
	[ClControparte] [varchar](40) NULL,
	[ClTipo] [varchar](40) NULL,
	[ClMercato] [varchar](40) NULL,
	[ClLiquidita] [varchar](40) NULL,
	[ISR] [varchar](40) NULL,
	[IndMercato] [varchar](40) NULL,
	[IndControparte] [varchar](40) NULL,
	[IndLiquidita] [varchar](40) NULL,
	[Ully] [varchar](40) NULL,
	[Ully_perc] [varchar](40) NULL,
	[Elly_perc] [varchar](40) NULL,
	[Crc] [varchar](40) NULL,
	[RcTot] [varchar](40) NULL,
	[Ully_perc_rc] [varchar](40) NULL,
	[Ully_perc_se] [varchar](40) NULL,
	[CoperturaPortafoglio] [varchar](40) NULL,
	[CoperturaProxyRC] [varchar](40) NULL,
	[NumTit] [varchar](40) NULL,
	[NumTitRC] [varchar](40) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](50) NULL,
	[indicatore] [varchar](30) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[QD_VAR_RISK_WEEK2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[QD_VAR_RISK_WEEK2](
	[banca] [varchar](64) NULL,
	[rete] [varchar](1) NULL,
	[codfis] [varchar](64) NULL,
	[piva] [varchar](64) NULL,
	[codfid] [varchar](64) NULL,
	[codman] [varchar](64) NULL,
	[isp_total_risk] [numeric](24, 9) NULL,
	[flag_risk] [varchar](64) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[QUANTIF]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[QUANTIF](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[UPDATEDATE] [datetime] NULL,
	[EXPNEEDSCUR] [varchar](3) NULL,
	[EXPNEEDSAMT] [numeric](19, 3) NULL,
	[GROSSINPRIMCUR] [varchar](3) NULL,
	[GROSSINPRIMAMT] [numeric](19, 3) NULL,
	[GROSSINSECCUR] [varchar](3) NULL,
	[GROSSINSECAMT] [numeric](19, 3) NULL,
	[RETIREMENTYEARS] [numeric](19, 0) NULL,
	[STATEPENSIONCUR] [varchar](3) NULL,
	[STATEPENSIONAMT] [numeric](19, 3) NULL,
	[PRIVATEPENSIONCUR] [varchar](3) NULL,
	[PRIVATEPENSIONAMT] [numeric](19, 3) NULL,
	[LIFEINTERESTCUR] [varchar](3) NULL,
	[LIFEINTERESTAMT] [numeric](19, 3) NULL,
	[C_FINANCIALI_8D659] [numeric](19, 0) NULL,
	[C_FINANCIALI_91C75] [numeric](19, 7) NULL,
	[INSINTERESTCUR] [varchar](3) NULL,
	[INSINTERESTAMT] [numeric](19, 3) NULL,
	[INVINTERESTCUR] [varchar](3) NULL,
	[INVINTERESTAMT] [numeric](19, 3) NULL,
	[REINTERESTCUR] [varchar](3) NULL,
	[REINTERESTAMT] [numeric](19, 3) NULL,
	[PRIMARYGAPCUR] [varchar](3) NULL,
	[PRIMARYGAPAMT] [numeric](19, 3) NULL,
	[SECONDARYGAPCUR] [varchar](3) NULL,
	[SECONDARYGAPAMT] [numeric](19, 3) NULL,
	[TOCONSUMPTIONETM] [numeric](1, 0) NULL,
	[TOINTERESTETM] [numeric](1, 0) NULL,
	[LOCKPERCFRSTBRNC] [numeric](1, 0) NULL,
	[PRFCONSUMPTIONS] [numeric](19, 7) NULL,
	[PRFGROSSAMOUNT] [numeric](19, 7) NULL,
	[PRFPERCFRSTBRNC] [numeric](19, 7) NULL,
	[PRFADDRETIREMENT] [numeric](19, 7) NULL,
	[PRFLIFEINTEREST] [numeric](19, 7) NULL,
	[PRFINTERFRSTBRNC] [numeric](19, 7) NULL,
	[PRFINTERUNIT] [numeric](19, 7) NULL,
	[F_OID$_ADDRE_81D21] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[RDR_VALUTE_DB_DTGIORNALIERI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RDR_VALUTE_DB_DTGIORNALIERI](
	[ChiaveProdotto] [varchar](35) NULL,
	[DtRiferimento] [varchar](10) NULL,
	[Divisa] [varchar](6) NULL,
	[Peso] [numeric](6, 3) NULL,
	[dtCaricamento] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RISKCLASS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RISKCLASS](
	[COD] [smallint] NOT NULL,
	[MINVAL] [decimal](7, 2) NOT NULL,
	[MAXVAL] [decimal](7, 2) NOT NULL,
	[DESCR] [varchar](50) NOT NULL,
 CONSTRAINT [PK_RISKCLASS] PRIMARY KEY CLUSTERED 
(
	[COD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RiskEmit]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RiskEmit](
	[Classe] [varchar](50) NULL,
	[MinVal] [numeric](18, 3) NULL,
	[MaxVal] [numeric](18, 3) NULL,
	[Ordine] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RMADBKROLE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RMADBKROLE](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PADDRESSBO_22C0C] [varchar](35) NULL,
	[RMGROUPROLE] [varchar](35) NULL,
	[F_OID$_RM_4A3B4] [varchar](35) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_anagrafica_promotori]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_anagrafica_promotori](
	[RETE] [char](1) NULL,
	[STATO] [char](1) NULL,
	[CODAGE] [char](6) NULL,
	[DT_NASCITA] [int] NULL,
	[DT_INI_COLLAB] [int] NULL,
	[DT_TERMINAZIONE] [int] NULL,
	[NOME] [varchar](128) NULL,
	[COGNOME] [varchar](128) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[TELEFONO1] [varchar](20) NULL,
	[TELEFONO2] [varchar](20) NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[CAP] [varchar](5) NULL,
	[PREFISSO] [varchar](5) NULL,
	[CITTA_NASCITA] [varchar](50) NULL,
	[CITTA] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_AnAlberatura]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_AnAlberatura](
	[Alberatura] [int] NOT NULL,
	[Livello1] [varchar](50) NOT NULL,
	[Livello2] [varchar](50) NULL,
	[Livello3] [varchar](50) NULL,
	[Livello4] [varchar](50) NULL,
	[Livello5] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_AnEmittente]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_AnEmittente](
	[Emittente] [varchar](13) NOT NULL,
	[Descrizione] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Area]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Area](
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[percArea] [numeric](19, 7) NULL,
	[coperturaArea] [numeric](18, 2) NULL,
	[ctvArea] [numeric](18, 2) NULL,
	[varArea] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_AssetClass]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_AssetClass](
	[Asset] [varchar](10) NOT NULL,
	[Madre] [varchar](10) NULL,
	[Livello] [int] NOT NULL,
	[Descrizione] [varchar](200) NULL,
	[codicergb] [varchar](15) NULL,
	[isresidual] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CatalogoProdotti_Prova]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CatalogoProdotti_Prova](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[TipoVersamento] [int] NULL,
	[RischioPrSc] [int] NULL,
	[StatoProdotto] [int] NULL,
	[TipoPolizza] [varchar](20) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Visibilita] [bit] NOT NULL,
	[PrezzoInEuro] [numeric](13, 5) NULL,
	[Alberatura] [int] NOT NULL,
	[DtScadenza] [datetime] NULL,
	[Categoria] [int] NULL,
	[Istituto] [int] NULL,
	[Piazza] [varchar](128) NULL,
	[PrezzoInValuta] [numeric](13, 5) NULL,
	[PrezzoValuta] [varchar](3) NULL,
	[Codiceadb] [varchar](18) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[RatingObbligazioni] [varchar](128) NULL,
	[RischioMinimo] [int] NULL,
	[CapRisparmio] [int] NULL,
	[CapMinimo] [numeric](13, 5) NULL,
	[CapMinimoValuta] [varchar](3) NULL,
	[CapMinSucc] [numeric](13, 5) NULL,
	[CapMinSuccValuta] [varchar](3) NULL,
	[MinRispContr] [numeric](13, 5) NULL,
	[MinRispContrValuta] [varchar](3) NULL,
	[SuccRispContr] [numeric](13, 5) NULL,
	[SuccRispContrValuta] [varchar](3) NULL,
	[MinComm] [numeric](13, 5) NULL,
	[MinCommValuta] [varchar](3) NULL,
	[DelegaGestionale] [varchar](128) NULL,
	[TipologiaPerPick] [int] NULL,
	[RischioPrezzo] [int] NULL,
	[RegimeFiscale] [int] NULL,
	[Quotato] [int] NULL,
	[ClasseDiPrezzo] [varchar](10) NULL,
	[Lineefinacc] [varchar](128) NULL,
	[DurataContrattuale] [varchar](50) NULL,
	[RiscFinFaseAcc] [varchar](10) NULL,
	[OpzRendVital] [bit] NULL,
	[MetaA] [varchar](128) NULL,
	[MetaB] [varchar](128) NULL,
	[MetaC] [varchar](128) NULL,
	[DtRifPrezzo] [datetime] NULL,
	[CodTipoContratto] [varchar](128) NULL,
	[PrezzoNetto] [numeric](13, 5) NULL,
	[PrezzoNettoValuta] [varchar](3) NULL,
	[DtPrezzoNetto] [datetime] NULL,
	[CodBloomberg] [varchar](128) NULL,
	[DenomUnitLink] [varchar](128) NULL,
	[DtInizioValidita] [datetime] NULL,
	[Negoziabilita] [bit] NULL,
	[TassoTecnico] [numeric](13, 5) NULL,
	[TassoTecnicoValuta] [varchar](3) NULL,
	[CollSkandia] [bit] NULL,
	[CodAssetSatellite] [varchar](20) NULL,
	[Mercato] [varchar](3) NULL,
	[AzOb] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[Emittente] [varchar](13) NULL,
	[GaranziaDemografica] [int] NULL,
	[SocietaDiGestione] [int] NULL,
	[IndPrz] [varchar](1) NULL,
	[Differimento] [int] NULL,
	[DtPrezzo] [datetime] NULL,
	[TipoObbligazione] [varchar](50) NULL,
	[TaglioMinimo] [numeric](19, 6) NULL,
	[IsAttivoRc] [int] NULL,
	[RischioCredito] [varchar](20) NULL,
	[Copertura] [numeric](5, 2) NULL,
	[VarP] [numeric](19, 16) NULL,
	[Diversificazione] [numeric](19, 16) NULL,
	[FlagCoreSatellite] [int] NULL,
	[PerimetroCoreSatellite] [int] NULL,
	[FondoCore] [int] NULL,
	[TIP_EMITTENTE] [varchar](35) NULL,
	[TIP_TASSO] [varchar](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CatDivPtf]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CatDivPtf](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[Credito] [decimal](9, 4) NULL,
	[TipoVersamento] [int] NULL,
	[RischioPrSc] [int] NULL,
	[StatoProdotto] [int] NULL,
	[TipoPolizza] [varchar](20) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Visibilita] [bit] NULL,
	[PrezzoInEuro] [numeric](13, 5) NULL,
	[Alberatura] [int] NULL,
	[DtScadenza] [datetime] NULL,
	[Categoria] [int] NULL,
	[Istituto] [int] NULL,
	[Piazza] [varchar](128) NULL,
	[PrezzoInValuta] [numeric](13, 5) NULL,
	[PrezzoValuta] [varchar](3) NULL,
	[Codiceadb] [varchar](18) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[RatingObbligazioni] [varchar](128) NULL,
	[RischioMinimo] [int] NULL,
	[CapRisparmio] [int] NULL,
	[CapMinimo] [numeric](13, 5) NULL,
	[CapMinimoValuta] [varchar](3) NULL,
	[CapMinSucc] [numeric](13, 5) NULL,
	[CapMinSuccValuta] [varchar](3) NULL,
	[MinRispContr] [numeric](13, 5) NULL,
	[MinRispContrValuta] [varchar](3) NULL,
	[SuccRispContr] [numeric](13, 5) NULL,
	[SuccRispContrValuta] [varchar](3) NULL,
	[MinComm] [numeric](13, 5) NULL,
	[MinCommValuta] [varchar](3) NULL,
	[DelegaGestionale] [varchar](128) NULL,
	[TipologiaPerPick] [int] NULL,
	[RischioPrezzo] [int] NULL,
	[RegimeFiscale] [int] NULL,
	[Quotato] [int] NULL,
	[ClasseDiPrezzo] [varchar](10) NULL,
	[Lineefinacc] [varchar](128) NULL,
	[DurataContrattuale] [varchar](50) NULL,
	[RiscFinFaseAcc] [varchar](10) NULL,
	[OpzRendVital] [bit] NULL,
	[MetaA] [varchar](128) NULL,
	[MetaB] [varchar](128) NULL,
	[MetaC] [varchar](128) NULL,
	[DtRifPrezzo] [datetime] NULL,
	[CodTipoContratto] [varchar](128) NULL,
	[PrezzoNetto] [numeric](13, 5) NULL,
	[PrezzoNettoValuta] [varchar](3) NULL,
	[DtPrezzoNetto] [datetime] NULL,
	[CodBloomberg] [varchar](128) NULL,
	[DenomUnitLink] [varchar](128) NULL,
	[DtInizioValidita] [datetime] NULL,
	[Negoziabilita] [bit] NULL,
	[TassoTecnico] [numeric](13, 5) NULL,
	[TassoTecnicoValuta] [varchar](3) NULL,
	[CollSkandia] [bit] NULL,
	[CodAssetSatellite] [varchar](20) NULL,
	[Mercato] [varchar](3) NULL,
	[AzOb] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[Emittente] [varchar](13) NULL,
	[GaranziaDemografica] [int] NULL,
	[SocietaDiGestione] [int] NULL,
	[IndPrz] [varchar](1) NULL,
	[Differimento] [int] NULL,
	[DtPrezzo] [datetime] NULL,
	[TipoObbligazione] [varchar](50) NULL,
	[TaglioMinimo] [numeric](19, 6) NULL,
	[IsAttivoRc] [int] NULL,
	[RischioCredito] [varchar](20) NULL,
	[Copertura] [numeric](5, 2) NULL,
	[VarP] [numeric](19, 16) NULL,
	[Diversificazione] [numeric](19, 16) NULL,
	[FlagCoreSatellite] [int] NULL,
	[PerimetroCoreSatellite] [int] NULL,
	[FondoCore] [int] NULL,
	[TIP_EMITTENTE] [varchar](35) NULL,
	[TIP_TASSO] [varchar](35) NULL,
	[Suitability_Perimeter] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CATINAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CATINAREA](
	[ValoreArea] [int] NOT NULL,
	[FlagMain] [bit] NOT NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[Area] [varchar](10) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_ChiaviMonitoraggio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_ChiaviMonitoraggio](
	[IdMonitoraggio] [bigint] NOT NULL,
	[ChiaveProgetto] [bigint] NULL,
	[DtCreazione] [datetime] NULL,
	[stato] [bit] NULL,
	[dtFineMonitoraggio] [nvarchar](10) NULL,
	[flagVisualizzaStor] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Cliente]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Cliente](
	[chiaveCliente] [int] NOT NULL,
	[codFis] [varchar](16) NULL,
	[pIva] [varchar](11) NULL,
	[codMan] [varchar](6) NULL,
	[nome] [varchar](50) NULL,
	[cognome] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[dtNascita] [datetime] NULL,
	[indirizzo] [varchar](100) NULL,
	[numCivico] [varchar](5) NULL,
	[citta] [varchar](50) NULL,
	[cap] [varchar](10) NULL,
	[nazione] [varchar](50) NULL,
	[idQuestionario] [int] NULL,
	[dtQuestionario] [datetime] NULL,
	[dtScadQuest] [datetime] NULL,
	[profilo] [varchar](2) NULL,
	[frequenza] [int] NULL,
	[rendicSemestrale] [char](10) NULL,
	[codStatoCivile] [varchar](50) NULL,
	[sesso] [varchar](10) NULL,
	[codTitoloStudio] [varchar](5) NULL,
	[flagCanOnLine] [int] NULL,
	[numFigli] [int] NULL,
	[codProvNasc] [varchar](512) NULL,
	[codComNasc] [varchar](512) NULL,
	[codNazNasc] [int] NULL,
	[fonte] [varchar](150) NULL,
	[pinCode] [varchar](128) NULL,
	[cittadinanza] [varchar](256) NULL,
	[provincia] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_ClientePB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_ClientePB](
	[chiaveClientePB] [int] NOT NULL,
	[chiaveCliente] [int] NOT NULL,
	[chiavePB] [int] NOT NULL,
	[idQuestionario] [int] NULL,
	[profilo] [smallint] NULL,
	[frequenza] [int] NULL,
	[pirModAuto] [bit] NULL,
	[fonte] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[pirModModif] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONO](
	[chiaveProgetto] [bigint] NOT NULL,
	[dtRiferimento] [datetime] NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[area] [varchar](10) NULL,
	[quantileSup] [numeric](19, 7) NULL,
	[quantileInf] [numeric](19, 7) NULL,
	[quantileInter] [numeric](19, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250118]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250118](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250121]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250121](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250128]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250128](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250131](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250210](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250211]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250211](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250212](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250214]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250214](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250217]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250217](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250218](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250312]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250312](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250319]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250319](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250414]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250414](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250418]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250418](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250508]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250508](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_CONSULENZA_20250510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_CONSULENZA_20250510](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[rp_consulenza_bck]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[rp_consulenza_bck](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Consulenza_temp]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Consulenza_temp](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[POSITION_ID] [varchar](1) NOT NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[rp_Consulenza2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[rp_Consulenza2](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL,
	[chiavePtfMod] [int] NULL,
 CONSTRAINT [pkid_rp_Consulenza2] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DettaglioOperazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DettaglioOperazione](
	[chiaveProposta] [bigint] NOT NULL,
	[codTipoOperazione] [varchar](2) NOT NULL,
	[chiavePosizionePtf] [bigint] NOT NULL,
	[chiavePosizionePro] [bigint] NOT NULL,
	[chiaveContratto] [bigint] NULL,
	[ctv] [numeric](18, 2) NULL,
	[ptfIniziale] [numeric](18, 2) NULL,
	[quantitaNominale] [numeric](18, 2) NULL,
	[ctvNonRappresentabile] [numeric](18, 2) NULL,
	[investi] [numeric](18, 2) NULL,
	[disinvesti] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[percOperazione] [numeric](18, 2) NULL,
	[gestPO] [bit] NULL,
	[relOperazione] [varchar](10) NULL,
	[opEseguita] [bit] NULL,
	[posRiallocata] [bit] NULL,
	[nomeProgettoProp] [varchar](512) NULL,
	[areaProp] [varchar](512) NULL,
	[isAttivoRC] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DettaglioPosizionePortafoglio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DettaglioPosizionePortafoglio](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[ctv] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[ctvNonAllocabile] [numeric](18, 2) NULL,
	[quantitaNominale] [numeric](18, 2) NULL,
	[partitaViaggiante] [numeric](18, 2) NULL,
	[dtAggiornamento] [datetime] NULL,
	[ctvOut] [numeric](18, 2) NULL,
	[ctvIni] [numeric](18, 2) NULL,
	[dtSaldo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DettAltriProdotti]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DettAltriProdotti](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[idTipoExtra] [int] NULL,
	[descrizione] [varchar](512) NULL,
	[dtStima] [datetime] NULL,
	[valoreStimato] [numeric](19, 3) NULL,
	[valutaStima] [varchar](3) NULL,
	[dtAcquisto] [datetime] NULL,
	[dtVendita] [datetime] NULL,
	[flagAssicurativo] [bit] NULL,
	[compagnia] [varchar](50) NULL,
	[valoreAssicurato] [numeric](19, 3) NULL,
	[valutaAssicurato] [varchar](10) NULL,
	[premioAnnuo] [numeric](19, 3) NULL,
	[valutaPremio] [varchar](10) NULL,
	[dtScadenza] [datetime] NULL,
	[note] [varchar](250) NULL,
	[dtDecorrenza] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DettImmobiliare]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DettImmobiliare](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[descrizione] [varchar](512) NULL,
	[codProvincia] [varchar](15) NULL,
	[provincia] [varchar](512) NULL,
	[codComune] [varchar](15) NULL,
	[comune] [varchar](512) NULL,
	[codZona] [varchar](15) NULL,
	[zona] [varchar](512) NULL,
	[superficie] [numeric](19, 7) NULL,
	[dtEstinzioneMutuo] [datetime] NULL,
	[rataMutuoAnnuo] [numeric](19, 3) NULL,
	[valutaMutuo] [varchar](3) NULL,
	[valoreImmobileTotale] [numeric](19, 3) NULL,
	[valutaImmobile] [varchar](3) NULL,
	[renditaAnnua] [numeric](19, 3) NULL,
	[valutaRendita] [varchar](3) NULL,
	[flagFabbPrevidenza] [bit] NULL,
	[valoreCapitalizzato] [numeric](19, 3) NULL,
	[valutaValCap] [varchar](3) NULL,
	[dtDecorrenza] [datetime] NULL,
	[codTipologia] [varchar](15) NULL,
	[tipologia] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DettPatrAziendale]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DettPatrAziendale](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[tipoAzienda] [varchar](256) NULL,
	[denominazione] [varchar](516) NULL,
	[codTipoCompagnia] [varchar](256) NULL,
	[patrimonio] [numeric](19, 3) NULL,
	[valutaPatrimonio] [varchar](3) NULL,
	[titolari] [varchar](512) NULL,
	[cointestatari] [varchar](512) NULL,
	[idTipoAzienda] [int] NULL,
	[valutaFatturato] [varchar](3) NULL,
	[fatturato] [numeric](18, 2) NULL,
	[numQuote] [int] NULL,
	[valoreStimato] [numeric](18, 2) NULL,
	[valutaStimato] [varchar](10) NULL,
	[dtStima] [datetime] NULL,
	[dtAcquisto] [datetime] NULL,
	[dtVendita] [datetime] NULL,
	[dtDecorrenza] [datetime] NULL,
	[note] [varchar](1024) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DettProdottiTerzi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DettProdottiTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[idIntermediario] [int] NULL,
	[alberatura] [int] NULL,
	[nomeIntermediario] [varchar](128) NULL,
	[dtInizioInvest] [datetime] NULL,
	[totVersato] [numeric](18, 2) NULL,
	[totPrelevato] [numeric](18, 2) NULL,
	[valutaTotPrelevato] [varchar](3) NULL,
	[chiaveProdotto] [int] NULL,
	[numQuote] [numeric](18, 2) NULL,
	[divQuoteProd] [varchar](3) NULL,
	[dtSottoscrizione] [datetime] NULL,
	[valutaPremioVers] [varchar](3) NULL,
	[tipoPolizza] [varchar](256) NULL,
	[tipoVersamento] [varchar](256) NULL,
	[tipoFormaPensionistica] [varchar](256) NULL,
	[capitaleInvestito] [numeric](18, 2) NULL,
	[valutaCapInvestito] [varchar](3) NULL,
	[contoPrincipale] [bit] NULL,
	[addebitoUtenze] [bit] NULL,
	[accreditoStipPens] [bit] NULL,
	[cartaCredito] [bit] NULL,
	[addebitoMutuo] [bit] NULL,
	[isin] [varchar](256) NULL,
	[lineaFinanziaria] [varchar](256) NULL,
	[fabbisognoPrev] [bit] NULL,
	[dtDecorrenza] [datetime] NULL,
	[modalitaUso] [varchar](256) NULL,
	[ctvUltimaPrestNota] [numeric](18, 2) NULL,
	[dtUltimaPrestNota] [datetime] NULL,
	[flgPrestazioneScad] [bit] NULL,
	[dtTermineVers] [datetime] NULL,
	[dtUltimoPremioNoto] [datetime] NULL,
	[nomeCompagnia] [varchar](512) NULL,
	[valutaCtvUltPrestNota] [varchar](3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass](
	[chiavePtfMod] [bigint] NOT NULL,
	[ordinamento] [varchar](32) NULL,
	[asset] [varchar](10) NOT NULL,
	[descrizione] [varchar](128) NULL,
	[percentuale] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass_preMua]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass_preMua](
	[chiavePtfMod] [bigint] NOT NULL,
	[asset] [varchar](10) NOT NULL,
	[percentuale] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_MacroAssetClass]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_MacroAssetClass](
	[chiavePtfMod] [bigint] NOT NULL,
	[ordinamento] [varchar](32) NULL,
	[asset] [varchar](10) NOT NULL,
	[descrizione] [varchar](128) NULL,
	[percentuale] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_GradoParentela]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_GradoParentela](
	[idParentela] [int] NOT NULL,
	[tipo] [varchar](50) NULL,
	[descParentela] [varchar](50) NULL,
	[descParentelaIng] [varchar](250) NULL,
	[ordinamento] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_InfoCliente]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_InfoCliente](
	[chiaveClientePB] [int] NOT NULL,
	[chiaveCliente] [int] NOT NULL,
	[codFis] [varchar](16) NULL,
	[pIva] [varchar](11) NULL,
	[codMan] [varchar](6) NULL,
	[NomeCliente] [varchar](50) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[dtScadQuest] [datetime] NULL,
	[profilo] [smallint] NULL,
	[dtQuestionario] [datetime] NULL,
	[frequenza] [int] NULL,
	[Agente] [char](6) NULL,
	[NomePb] [varchar](40) NULL,
	[CognomePb] [varchar](40) NULL,
	[StatoPb] [char](2) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NULL,
	[StatoContratto] [varchar](50) NULL,
	[dtFirmaBase] [datetime] NULL,
	[dtEndBase] [datetime] NULL,
	[dtFirmaSei] [datetime] NULL,
	[dtEndSei] [datetime] NULL,
	[rendicSemestrale] [char](10) NULL,
	[dtNascita] [datetime] NULL,
	[sesso] [varchar](10) NULL,
	[TipContratto] [varchar](1) NULL,
	[ModPagamento] [varchar](1) NULL,
	[chiavePB] [int] NOT NULL,
	[flagrol] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_MAIL_PROFILI_RISCHIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_MAIL_PROFILI_RISCHIO](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[cod_agente] [char](6) NULL,
	[data_sott] [int] NULL,
	[data_perf] [nvarchar](10) NULL,
	[flag_invio_report] [varchar](1) NULL,
	[Profilo] [smallint] NULL,
	[dt_creazione_profilo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_MAIL_PROFILI_RISCHIO_TEST]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_MAIL_PROFILI_RISCHIO_TEST](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[cod_agente] [char](6) NULL,
	[data_sott] [int] NULL,
	[data_perf] [nvarchar](10) NULL,
	[flag_invio_report] [varchar](1) NULL,
	[Profilo] [smallint] NULL,
	[dt_creazione_profilo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Mappatura]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Mappatura](
	[Asset] [varchar](10) NOT NULL,
	[Percentuale] [numeric](13, 5) NOT NULL,
	[Bdbeta] [numeric](13, 5) NOT NULL,
	[ChiaveProdotto] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_MappaturaPT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_MappaturaPT](
	[asset] [varchar](10) NOT NULL,
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[percentuale] [float] NULL,
	[bdbeta] [float] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_MappingTerzi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_MappingTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[Temp_oidProd] [char](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Migraz_Area]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Migraz_Area](
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[percArea] [numeric](19, 7) NULL,
	[ctvArea] [numeric](18, 2) NULL,
	[varArea] [numeric](18, 2) NULL,
	[note] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Migraz_Pianificazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Migraz_Pianificazione](
	[chiaveConsulenza] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtUltimoAggiornamento] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieTerzi] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[partiteViaggianti] [numeric](18, 2) NULL,
	[dtPrimaMigrazione] [datetime] NULL,
	[token] [int] NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Migraz_Posizioni]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Migraz_Posizioni](
	[chiavePosizione] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[chiaveProdotto] [int] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtFineValidita] [datetime] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[ctv] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Migraz_Progetto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Migraz_Progetto](
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[dtCreazione] [datetime] NULL,
	[varProgetto] [numeric](18, 2) NULL,
	[coperturaProgetto] [numeric](18, 2) NULL,
	[ctvProgetto] [numeric](18, 2) NULL,
	[chiaveProgettoMod] [bigint] NULL,
	[chiavePtfMod] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_MonitoraggioStorico]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_MonitoraggioStorico](
	[idMonitoraggio] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtAvvio] [datetime] NULL,
	[ctvExt] [decimal](18, 2) NULL,
	[ctvInv] [decimal](18, 2) NULL,
	[ctvRis] [decimal](18, 2) NULL,
	[ctvLiq] [decimal](18, 2) NULL,
	[ctvPre] [decimal](18, 2) NULL,
	[ctvNa] [decimal](18, 2) NULL,
	[ctvCC] [decimal](18, 2) NULL,
	[partiteViaggianti] [decimal](18, 2) NULL,
	[var] [decimal](18, 2) NULL,
	[copertura] [decimal](18, 2) NULL,
	[rischioCredito] [varchar](50) NULL,
	[codiceProfilo] [varchar](50) NULL,
	[stato] [int] NULL,
	[dtSalvataggio] [datetime] NULL,
	[classe_rischio_max] [varchar](50) NULL,
	[var_max_profilo] [decimal](18, 2) NULL,
	[ctvself] [decimal](18, 2) NULL,
	[CTVSelfFoglio] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_NEEDAREA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_NEEDAREA](
	[Area] [varchar](10) NOT NULL,
	[Descrizione] [varchar](100) NOT NULL,
	[Ordinamento] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Parentela]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Parentela](
	[chiaveClientePB1] [bigint] NOT NULL,
	[chiaveClientePB2] [bigint] NOT NULL,
	[idParentela] [int] NOT NULL,
	[dtMatrimonio] [datetime] NULL,
	[aCarico] [bit] NULL,
	[dtCensimento] [datetime] NULL,
	[dtFine] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_PatrimonioTerzi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_PatrimonioTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[idTipoProdotto] [varchar](2) NULL,
	[nomeProdotto] [varchar](256) NULL,
	[rischioProd] [varchar](256) NULL,
	[valutaCtv] [varchar](3) NULL,
	[ctv] [numeric](18, 2) NULL,
	[ctvNonRappresentabile] [numeric](18, 2) NULL,
	[dataCtv] [datetime] NULL,
	[prezzoMedioCarico] [numeric](18, 2) NULL,
	[tipoProd] [varchar](256) NULL,
	[dtFine] [datetime] NULL,
	[divisa] [varchar](3) NULL,
	[ultimoPrezzo] [numeric](13, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Pianificazione]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Pianificazione](
	[chiaveConsulenza] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtUltimoAggiornamento] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieTerzi] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[partiteViaggianti] [numeric](18, 2) NULL,
	[dtPrimaMigrazione] [datetime] NULL,
	[dtPianificazioneOrizzontale] [datetime] NULL,
	[dtPianificazioneVerticale] [datetime] NULL,
	[token] [int] NULL,
	[varRisorseAllocate] [decimal](18, 2) NULL,
	[coperturaRisorseAllocate] [decimal](18, 2) NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_PosizioniPortafoglio]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_PosizioniPortafoglio](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtFineValidita] [datetime] NULL,
	[chiaveProdotto] [int] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_PosizioniProposta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_PosizioniProposta](
	[chiavePosizionePro] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[chiaveProdotto] [int] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_PROGETTICLIENTE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_PROGETTICLIENTE](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_PROGETTICLIENTE_TEST_FC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_PROGETTICLIENTE_TEST_FC](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_ProgettiPiramideModello]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_ProgettiPiramideModello](
	[chiaveProgettoMod] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[percentualeProgetto] [numeric](19, 7) NULL,
	[tipoProgetto] [char](1) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[durata] [char](18) NULL,
	[note] [varchar](250) NULL,
	[dtFineValidita] [datetime] NULL,
	[dtCreazione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Progetto]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Progetto](
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[dtCreazione] [datetime] NULL,
	[dtUltimaModifica] [datetime] NULL,
	[capLiquidoEntrata] [numeric](18, 2) NULL,
	[capLiquidoUscita] [numeric](18, 2) NULL,
	[varPianificato] [numeric](18, 2) NULL,
	[varProgetto] [numeric](18, 2) NULL,
	[coperturaProgetto] [numeric](18, 2) NULL,
	[profiloProgetto] [int] NULL,
	[orizzonteTemporale] [int] NULL,
	[ctvProgetto] [numeric](18, 2) NULL,
	[chiaveProgettoMod] [bigint] NULL,
	[flagAvviatoMonitoraggio] [bit] NULL,
	[percProgetto] [numeric](18, 2) NULL,
	[ctvPianificato] [numeric](18, 2) NULL,
	[chiavePtfMod] [int] NULL,
	[dtFineValidita] [datetime] NULL,
	[flagCambioParametri] [bit] NULL,
	[flagPianificazione] [bit] NULL,
	[dtReset] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Progetto_Robo]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Progetto_Robo](
	[chiaveProgetto] [bigint] NOT NULL,
	[flagUtilizzoLiquidita] [bit] NULL,
	[Iban_codiceContrattoCC] [varchar](50) NULL,
	[ctvSogliaCC] [numeric](18, 2) NULL,
	[minimoMantenimentoSuCC] [numeric](18, 2) NULL,
	[listTagFondiDaUtilizzare] [varchar](25) NULL,
	[percentualeFogli] [numeric](18, 2) NULL,
	[percentualeFondi] [numeric](18, 2) NULL,
	[chiaveclientepb] [int] NOT NULL,
	[dt_inserimento] [datetime] NULL,
	[dt_aggiornamento] [datetime] NULL,
	[FlagCsv] [bit] NULL,
	[ChiavePtfMod] [int] NULL,
	[isProgettoRobo] [char](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_PromotoreBancario]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_PromotoreBancario](
	[chiavePB] [int] NOT NULL,
	[codage] [char](6) NULL,
	[nome] [varchar](40) NULL,
	[cognome] [varchar](40) NULL,
	[status] [char](2) NULL,
	[livello] [varchar](20) NULL,
	[rete] [char](1) NULL,
	[indirizzo] [varchar](100) NULL,
	[numCivico] [varchar](5) NULL,
	[citta] [varchar](50) NULL,
	[prov] [char](2) NULL,
	[cap] [char](5) NULL,
	[nazione] [varchar](50) NULL,
	[ptel] [char](4) NULL,
	[tel] [char](8) NULL,
	[tipologia] [varchar](3) NULL,
	[grado] [varchar](30) NULL,
	[codManager] [char](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_Proposta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_Proposta](
	[chiaveProposta] [bigint] NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[status] [varchar](2) NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[nomeProposta] [varchar](128) NULL,
	[dtProposta] [datetime] NULL,
	[dtValidazione] [datetime] NULL,
	[dtUltimoAgg] [datetime] NULL,
	[dtScadenza] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieBT] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[adeguatezza] [bit] NULL,
	[discesaRegime] [bit] NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[codValidazione] [varchar](10) NULL,
	[urlValidazione] [varchar](200) NULL,
	[urlSimulazione] [varchar](200) NULL,
	[urlReport] [varchar](200) NULL,
	[apporti] [numeric](18, 2) NULL,
	[prelievi] [numeric](18, 2) NULL,
	[flgScadenza] [bit] NULL,
	[flgInadRischioCredito] [bit] NULL,
	[flgInadRischioMercato] [bit] NULL,
	[flgInadComplessita] [bit] NULL,
	[flgInadFrequenza] [bit] NULL,
	[flgInadConcentrazione] [bit] NULL,
	[flgInadLiquidita] [bit] NULL,
	[isAttivoRC] [bit] NULL,
	[token] [int] NULL,
	[flagNuovoFlusso] [bit] NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI](
	[ChiaveProdotto] [char](35) NULL,
	[Divisa] [varchar](6) NULL,
	[Peso] [numeric](18, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI_4interi]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI_4interi](
	[ChiaveProdotto] [char](35) NULL,
	[Divisa] [varchar](6) NULL,
	[Peso] [numeric](18, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI_prova]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI_prova](
	[ChiaveProdotto] [char](35) NULL,
	[Divisa] [varchar](6) NULL,
	[Peso] [numeric](18, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_REP_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_REP_ASSET_1_E_2_ORDINATE](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINAMENTO_ASSET] [int] NULL,
	[ASSETCLASSNAME_REPORT] [varchar](128) NULL,
	[LIVELLO] [int] NULL,
	[CODICE_MACROASSET] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [decimal](18, 2) NULL,
	[LineaSelfFoglio] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6_TMP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6_TMP](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6_xxx]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6_xxx](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](3) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](18, 2) NULL,
	[RISORSEALLOCATE] [numeric](18, 2) NULL,
	[RISORSENONALLOCATE] [numeric](18, 2) NULL,
	[CONTOCORRENTE] [numeric](18, 2) NULL,
	[INVESTIMENTIINCORSO] [numeric](18, 2) NULL,
	[VAR_PERC_PTF] [numeric](18, 2) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_S4_S5_S13_TRAD_UNTIL_LIV3](
	[alberatura] [int] NOT NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_TB_ESG_ANAG_STRUM]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_TB_ESG_ANAG_STRUM](
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [varchar](50) NULL,
	[ESGRating] [varchar](3) NULL,
	[TrendESGRating] [varchar](3) NULL,
	[TrendESGRating_val] [varchar](3) NULL,
	[dtInserimento] [datetime] NULL,
	[dtAggiornamento] [datetime] NULL,
	[UserIns] [nvarchar](50) NULL,
	[CLIENT_ID] [varchar](32) NULL,
	[C_TIPO_STRUMENTO] [varchar](5) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[SDG_06_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_07_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_12_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_13_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_14_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_15_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_01_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_02_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_03_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_04_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_05_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_08_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_09_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_10_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_11_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_16_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_17_NET_ALIGNMENT_SCORE] [int] NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [numeric](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [numeric](10, 2) NULL,
	[PERC_INVEST_OTHER_E_NO_TAX] [numeric](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_E] [numeric](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_S] [numeric](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](32) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](32) NULL,
	[PAI_LAB_A_Acqua] [varchar](32) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](32) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](32) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](32) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](32) NULL,
	[PAI_LAB_A_Settore_Immobiliare] [varchar](32) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](32) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](32) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[AGGREG_PAI_LAB_A] [varchar](255) NULL,
	[AGGREG_PAI_LAB_S] [varchar](255) NULL,
	[AGGREG_BOND] [varchar](255) NULL,
	[REF_DATE] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_TB_ESG_ANAG_STRUM_bkp_20241221]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_TB_ESG_ANAG_STRUM_bkp_20241221](
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[ESG_E] [varchar](3) NULL,
	[ESG_S] [varchar](3) NULL,
	[ESG_G] [varchar](3) NULL,
	[CatSFDR] [varchar](50) NULL,
	[ESGRating] [varchar](3) NULL,
	[TrendESGRating] [varchar](3) NULL,
	[TrendESGRating_val] [varchar](3) NULL,
	[dtInserimento] [datetime] NULL,
	[dtAggiornamento] [datetime] NULL,
	[UserIns] [nvarchar](50) NULL,
	[CLIENT_ID] [varchar](32) NULL,
	[C_TIPO_STRUMENTO] [varchar](5) NULL,
	[LABEL_Green_Bond] [varchar](32) NULL,
	[LABEL_Social_Bond] [varchar](32) NULL,
	[LABEL_Sustainability_Bond] [varchar](32) NULL,
	[LABEL_Transition_Bond] [varchar](32) NULL,
	[LABEL_Sust_linked_bond] [varchar](32) NULL,
	[LABEL_EU_GREEN_BOND_STANDARD] [varchar](32) NULL,
	[SDG_06_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_07_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_12_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_13_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_14_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_15_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_01_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_02_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_03_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_04_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_05_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_08_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_09_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_10_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_11_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_16_NET_ALIGNMENT_SCORE] [int] NULL,
	[SDG_17_NET_ALIGNMENT_SCORE] [int] NULL,
	[PERC_INVESTIMENTO_TAXONOMY] [decimal](10, 2) NULL,
	[PERC_INVESTIMENTO_SFDR] [decimal](10, 2) NULL,
	[PERC_INVEST_OTHER_E_NO_TAX] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_E] [decimal](10, 2) NULL,
	[PERC_INVEST_SFDR_MIN_SUST_S] [decimal](10, 2) NULL,
	[PAI_LAB_A_Emissioni_Gas_Serra] [varchar](32) NULL,
	[PAI_LAB_A_Biodiversita] [varchar](32) NULL,
	[PAI_LAB_A_Acqua] [varchar](32) NULL,
	[PAI_LAB_A_Rifiuti] [varchar](32) NULL,
	[PAI_LAB_A_Gov_Ambientale] [varchar](32) NULL,
	[PAI_LAB_A_Comb_Fossili] [varchar](32) NULL,
	[PAI_LAB_A_Eff_energetica] [varchar](32) NULL,
	[PAI_LAB_S_Questioni_Soc_Dip] [varchar](32) NULL,
	[PAI_LAB_S_Gov_Sociali] [varchar](32) NULL,
	[U_INFO_ESG] [varchar](42) NULL,
	[AGGREG_PAI_LAB_A] [varchar](255) NULL,
	[AGGREG_PAI_LAB_S] [varchar](255) NULL,
	[AGGREG_BOND] [varchar](255) NULL,
	[REF_DATE] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_V_clienti_contrsei_con_migraz]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_V_clienti_contrsei_con_migraz](
	[chiaveClientePb] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[dtprimaMigrazione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[RP_vNewPositionProposta]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[RP_vNewPositionProposta](
	[chiaveClientePB] [int] NOT NULL,
	[nomeProgettoProp] [varchar](512) NULL,
	[areaProp] [varchar](512) NULL,
	[chiaveProgetto] [bigint] NULL,
	[codSottoprodotto] [varchar](5) NULL,
	[codInterno] [varchar](18) NULL,
	[codMaf] [varchar](18) NULL,
	[codIsin] [varchar](18) NULL,
	[tipoProdotto] [varchar](20) NULL,
	[positionIdProposta] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[S4_S5_S13_TRAD_UNTIL_LIV3](
	[DESCRIZIONE_ORIGINALE] [varchar](100) NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [decimal](18, 0) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[S80_evol_bck]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[S80_evol_bck](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [decimal](18, 0) NULL,
	[FASE] [decimal](18, 0) NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEALLOCATE] [decimal](15, 2) NULL,
	[RISORSENONALLOCATE] [decimal](15, 2) NULL,
	[CONTOCORRENTE] [decimal](15, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](15, 2) NULL,
	[VAR_PERC_PTF] [decimal](15, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [smallint] NULL,
	[RISKCLASSMAX] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[S80_EVOL_STAMPA_C6]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[S80_EVOL_STAMPA_C6](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [decimal](18, 0) NULL,
	[FASE] [decimal](18, 0) NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEALLOCATE] [decimal](15, 2) NULL,
	[RISORSENONALLOCATE] [decimal](15, 2) NULL,
	[CONTOCORRENTE] [decimal](15, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](15, 2) NULL,
	[VAR_PERC_PTF] [decimal](15, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [smallint] NULL,
	[RISKCLASSMAX] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTES2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTES2](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250118]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250118](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250128]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250128](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250210](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250218](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250312]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250312](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250313]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250313](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250313_145150]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250313_145150](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250414]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250414](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250508]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI_20250508](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[spb_contr_sintesi_prodotti_NO_PID]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[spb_contr_sintesi_prodotti_NO_PID](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_CONTR_SINTESI2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI2](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[SALRISC] [decimal](15, 3) NULL,
	[ISIN] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_MIFID]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_MIFID](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[ACCETTACOMPILAZIONE] [bit] NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEPROFILOCALCOLATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[CODICEAGENTERESPONSABILE] [varchar](7) NULL,
	[CODICEAGENTEREALE] [varchar](7) NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[SPB_PROF_RISCHIO](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[CODICECLASSERC] [varchar](80) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[ST_MON]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[ST_MON](
	[OID$] [varchar](35) NULL,
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[POSID] [varchar](512) NULL,
	[POSNAME] [varchar](512) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[VAR] [varchar](12) NULL,
	[CTV] [numeric](19, 7) NULL,
	[TMSTAMP] [datetime] NULL,
	[DATARIF] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TabelleStoricizzate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TabelleStoricizzate](
	[Nome] [varchar](50) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Durata] [int] NULL,
	[Vecchia_Durata] [int] NULL,
	[Storicizzata] [bit] NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_1103]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_1103](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240116_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240116_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240118_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240118_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240119_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240119_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240126_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240126_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240201_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240201_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240208_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240208_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240209_162706_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240209_162706_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240209_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240209_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240212_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240212_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240213_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240213_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240214_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240214_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240216_213027_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240216_213027_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240216_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240216_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240222](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240222_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240222_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240223_113327_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240223_113327_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240223_172034_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240223_172034_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240223_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240223_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240314_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240314_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240318_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240318_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240411_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240411_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240416_155940_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240416_155940_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240416_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240416_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240419_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240419_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240506_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240506_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240507_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240507_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240509_173206_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240509_173206_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240509_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240509_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240510_103927_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240510_103927_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240510_155202_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240510_155202_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240510_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240510_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240513_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240513_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240521_154218_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240521_154218_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240521_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240521_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240613_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240613_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240617_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240617_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240716_182318_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240716_182318_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240716_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240716_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240717_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240717_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240718_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240718_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240731_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240731_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240801_163334_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240801_163334_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240801_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240801_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240802_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240802_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240805_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240805_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240806_182130_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240806_182130_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240806_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240806_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240823_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240823_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240824_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240824_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240910_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240910_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20240912_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20240912_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241014_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241014_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241016_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241016_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241018_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241018_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241030_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241030_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241031_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241031_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241113_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241113_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20241114_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20241114_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250117_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250117_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250121_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250121_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250128_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250128_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250131_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250131_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250210_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250210_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250211_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250211_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250212_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250212_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250214_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250214_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250217_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250217_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250218_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250218_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250312_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250312_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250319_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250319_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250414_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250414_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250418_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250418_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250508_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250508_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TANAB_20250509_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TANAB_20250509_preUpdate](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TCPTAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TCPTAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_WADEG] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[NUMPOL] [varchar](11) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[SPROG] [decimal](3, 0) NOT NULL,
	[DTUSCITA] [decimal](9, 0) NOT NULL,
	[DTSOTT] [decimal](9, 0) NOT NULL,
	[CTVATT] [decimal](15, 2) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[CTVINGRESSO] [decimal](15, 2) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTININAC] [decimal](9, 0) NOT NULL,
	[RENDNAC] [decimal](8, 5) NOT NULL,
	[CTVVP] [decimal](15, 2) NOT NULL,
	[CVNTRIM] [decimal](15, 2) NOT NULL,
	[CVNANNO] [decimal](15, 2) NOT NULL,
	[CVNINIZ] [decimal](15, 2) NOT NULL,
	[CVNNAC] [decimal](15, 2) NOT NULL,
	[CODINT] [varchar](18) NOT NULL,
	[VALORE] [decimal](15, 2) NOT NULL,
	[STLIQ] [varchar](1) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TCPTAB_1103]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TCPTAB_1103](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_WADEG] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[NUMPOL] [varchar](11) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[SPROG] [decimal](3, 0) NOT NULL,
	[DTUSCITA] [decimal](9, 0) NOT NULL,
	[DTSOTT] [decimal](9, 0) NOT NULL,
	[CTVATT] [decimal](15, 2) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[CTVINGRESSO] [decimal](15, 2) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTININAC] [decimal](9, 0) NOT NULL,
	[RENDNAC] [decimal](8, 5) NOT NULL,
	[CTVVP] [decimal](15, 2) NOT NULL,
	[CVNTRIM] [decimal](15, 2) NOT NULL,
	[CVNANNO] [decimal](15, 2) NOT NULL,
	[CVNINIZ] [decimal](15, 2) NOT NULL,
	[CVNNAC] [decimal](15, 2) NOT NULL,
	[CODINT] [varchar](18) NOT NULL,
	[VALORE] [decimal](15, 2) NOT NULL,
	[STLIQ] [varchar](1) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TCPTAB_1706dup]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TCPTAB_1706dup](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_WADEG] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[NUMPOL] [varchar](11) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[SPROG] [decimal](3, 0) NOT NULL,
	[DTUSCITA] [decimal](9, 0) NOT NULL,
	[DTSOTT] [decimal](9, 0) NOT NULL,
	[CTVATT] [decimal](15, 2) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[CTVINGRESSO] [decimal](15, 2) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTININAC] [decimal](9, 0) NOT NULL,
	[RENDNAC] [decimal](8, 5) NOT NULL,
	[CTVVP] [decimal](15, 2) NOT NULL,
	[CVNTRIM] [decimal](15, 2) NOT NULL,
	[CVNANNO] [decimal](15, 2) NOT NULL,
	[CVNINIZ] [decimal](15, 2) NOT NULL,
	[CVNNAC] [decimal](15, 2) NOT NULL,
	[CODINT] [varchar](18) NOT NULL,
	[VALORE] [decimal](15, 2) NOT NULL,
	[STLIQ] [varchar](1) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TCPTAB_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TCPTAB_20240222](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_WADEG] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[NUMPOL] [varchar](11) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[SPROG] [decimal](3, 0) NOT NULL,
	[DTUSCITA] [decimal](9, 0) NOT NULL,
	[DTSOTT] [decimal](9, 0) NOT NULL,
	[CTVATT] [decimal](15, 2) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[CTVINGRESSO] [decimal](15, 2) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTININAC] [decimal](9, 0) NOT NULL,
	[RENDNAC] [decimal](8, 5) NOT NULL,
	[CTVVP] [decimal](15, 2) NOT NULL,
	[CVNTRIM] [decimal](15, 2) NOT NULL,
	[CVNANNO] [decimal](15, 2) NOT NULL,
	[CVNINIZ] [decimal](15, 2) NOT NULL,
	[CVNNAC] [decimal](15, 2) NOT NULL,
	[CODINT] [varchar](18) NOT NULL,
	[VALORE] [decimal](15, 2) NOT NULL,
	[STLIQ] [varchar](1) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TCPTAB_test]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TCPTAB_test](
	[RETE] [nvarchar](max) NOT NULL,
	[CODAREA] [nvarchar](max) NOT NULL,
	[CODPROG] [nvarchar](max) NOT NULL,
	[CODFIS] [nvarchar](max) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [nvarchar](max) NOT NULL,
	[ISIN] [nvarchar](max) NOT NULL,
	[ID_WADEG] [nvarchar](max) NOT NULL,
	[MAF] [nvarchar](max) NOT NULL,
	[CODCONF] [nvarchar](max) NOT NULL,
	[SUBPROD] [nvarchar](max) NOT NULL,
	[CODPROD] [nvarchar](max) NOT NULL,
	[NUMPOL] [nvarchar](max) NOT NULL,
	[CONTO] [nvarchar](max) NOT NULL,
	[CUSTGAR] [nvarchar](max) NOT NULL,
	[RUBR] [nvarchar](max) NOT NULL,
	[CODABI] [nvarchar](max) NOT NULL,
	[TERMID] [nvarchar](max) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[SPROG] [decimal](3, 0) NOT NULL,
	[DTUSCITA] [decimal](9, 0) NOT NULL,
	[DTSOTT] [decimal](9, 0) NOT NULL,
	[CTVATT] [decimal](15, 2) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[CTVINGRESSO] [decimal](15, 2) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTININAC] [decimal](9, 0) NOT NULL,
	[RENDNAC] [decimal](8, 5) NOT NULL,
	[CTVVP] [decimal](15, 2) NOT NULL,
	[CVNTRIM] [decimal](15, 2) NOT NULL,
	[CVNANNO] [decimal](15, 2) NOT NULL,
	[CVNINIZ] [decimal](15, 2) NOT NULL,
	[CVNNAC] [decimal](15, 2) NOT NULL,
	[CODINT] [nvarchar](max) NOT NULL,
	[VALORE] [decimal](15, 2) NOT NULL,
	[STLIQ] [nvarchar](max) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TEST_TRENAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TEST_TRENAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TEST_TRENAB2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TEST_TRENAB2](
	[RETE] [nvarchar](1) NOT NULL,
	[CODAREA] [nvarchar](4) NOT NULL,
	[CODPROG] [nvarchar](12) NOT NULL,
	[CODFIS] [nvarchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[test4]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[test4](
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CODINTERNO] [varchar](18) NULL,
	[CODMAF] [varchar](18) NULL,
	[CODISIN] [varchar](18) NOT NULL,
	[CODSOTTOPRODOTTO] [varchar](5) NULL,
	[position_id] [varchar](123) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[Test5]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[Test5](
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CODINTERNO] [varchar](18) NULL,
	[CODMAF] [varchar](18) NULL,
	[CODISIN] [varchar](18) NOT NULL,
	[CODSOTTOPRODOTTO] [varchar](5) NULL,
	[position_id] [varchar](123) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRENAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRENAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DTINIZ] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[DTTRIM] [decimal](9, 0) NULL,
	[RENDTRIM] [decimal](8, 5) NULL,
	[DTANNO] [decimal](9, 0) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[CVN] [decimal](15, 2) NULL,
	[CVN_IA] [decimal](15, 2) NULL,
	[CVN_IT] [decimal](15, 2) NULL,
	[APP_INI] [decimal](15, 2) NULL,
	[TOT_APP] [decimal](15, 2) NULL,
	[TOT_LIQ] [decimal](15, 2) NULL,
	[TOT_CED] [decimal](15, 2) NULL,
	[TOT_DIV] [decimal](15, 2) NULL,
	[DCD] [decimal](15, 2) NULL,
	[DCVN] [decimal](15, 2) NULL,
	[SCARTO] [decimal](15, 2) NULL,
	[NTOT_APP] [decimal](15, 2) NULL,
	[NTOT_LIQ] [decimal](15, 2) NULL,
	[RENDATTANN] [decimal](8, 5) NULL,
 CONSTRAINT [PK_TRENAB] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[CODAREA] ASC,
	[CODPROG] ASC,
	[CODFIS] ASC,
	[DTRIF] ASC,
	[DTVALORIZ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRENAB_20240116]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRENAB_20240116](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 9) NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRENAB_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRENAB_20240222](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DTINIZ] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[DTTRIM] [decimal](9, 0) NULL,
	[RENDTRIM] [decimal](8, 5) NULL,
	[DTANNO] [decimal](9, 0) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[CVN] [decimal](15, 2) NULL,
	[CVN_IA] [decimal](15, 2) NULL,
	[CVN_IT] [decimal](15, 2) NULL,
	[APP_INI] [decimal](15, 2) NULL,
	[TOT_APP] [decimal](15, 2) NULL,
	[TOT_LIQ] [decimal](15, 2) NULL,
	[TOT_CED] [decimal](15, 2) NULL,
	[TOT_DIV] [decimal](15, 2) NULL,
	[DCD] [decimal](15, 2) NULL,
	[DCVN] [decimal](15, 2) NULL,
	[SCARTO] [decimal](15, 2) NULL,
	[NTOT_APP] [decimal](15, 2) NULL,
	[NTOT_LIQ] [decimal](15, 2) NULL,
	[RENDATTANN] [decimal](8, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRENAB_NEW]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRENAB_NEW](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL,
 CONSTRAINT [PK_TRENAB_NEW] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[CODAREA] ASC,
	[CODPROG] ASC,
	[CODFIS] ASC,
	[DTRIF] ASC,
	[DTVALORIZ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240108]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240108](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240108_122709]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240108_122709](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240109]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240109](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240109_122051]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240109_122051](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240109_125631]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240109_125631](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_115725]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_115725](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_115858]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_115858](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_120005]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_120005](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_120159]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_120159](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_123615]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_123615](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_133521]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_133521](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_134305]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_134305](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_141339]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_141339](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_142242]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_142242](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_145516]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240115_145516](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240117]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240117](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240117_095233]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240117_095233](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_152248]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_152248](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_154018]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_154018](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_154131]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_154131](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_161526]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_161526](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_173000]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240124_173000](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240127]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240127](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240127_130027]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240127_130027](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240130]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240130](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240209]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240209](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240212]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240212](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240213]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240213](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240216]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240216](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240223]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240223](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240223_171138]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240223_171138](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240314]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240314](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_095042]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_095042](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_114431]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_114431](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_160443]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_160443](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_162330]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_162330](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_162705]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_162705](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_163024]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_163024](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_164202]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_164202](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_164517]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240315_164517](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240412]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240412](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240412_123944]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240412_123944](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240412_142310]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240412_142310](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240415]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240415](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240417]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240417](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240419]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240419](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240506]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240506](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240506_145527]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240506_145527](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240509](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240510]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240510](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240512]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240512](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240614]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240614](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240717]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240717](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240731]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240731](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240801]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240801](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240805]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240805](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240824]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240824](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240911]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20240911](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241014]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241014](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241030]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241030](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241030_111748]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241030_111748](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241114]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20241114](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250119]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250119](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250128]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250128](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250210](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250210_205910]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250210_205910](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250210_215655]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250210_215655](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250218]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250218](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250313]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250313](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250415]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250415](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250509]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250509](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250509_010250]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TRIMESTRALE_SCARTI_20250509_010250](
	[RETE] [varchar](1) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](11) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CODFID] [varchar](8) NULL,
	[ERRORMESSAGE] [varchar](5000) NULL,
	[BLACKLIST] [varchar](20) NULL,
	[DATAINSERT] [datetime] NULL,
	[DATATRIM] [date] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TSCABP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TSCABP](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL,
	[isin] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[TSCABP_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[TSCABP_20240222](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL,
	[isin] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6APAG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6APAG](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NOT NULL,
	[APPORTI] [decimal](15, 2) NULL,
	[PRELIEVI] [decimal](15, 2) NULL,
 CONSTRAINT [PK_W6APAG] PRIMARY KEY CLUSTERED 
(
	[DTTRIM] ASC,
	[CODFIS] ASC,
	[CODMAN] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[w6apag_test]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[w6apag_test](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NOT NULL,
	[APPORTI] [decimal](15, 2) NULL,
	[PRELIEVI] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6APTR]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6APTR](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[CTV_PREC] [decimal](15, 2) NULL,
	[CTV_ATT] [decimal](15, 2) NULL,
	[APPORTI] [decimal](15, 2) NULL,
	[PRELIEVI] [decimal](15, 2) NULL,
 CONSTRAINT [PK_W6APTR] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[DTTRIM] ASC,
	[DTRIFE] ASC,
	[CODFIS] ASC,
	[CODCONF] ASC,
	[CONTO] ASC,
	[RUBR] ASC,
	[CUSTGAR] ASC,
	[TIPPROD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6APUT]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6APUT](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[DTOPE] [decimal](9, 0) NOT NULL,
	[DESPROD] [varchar](30) NOT NULL,
	[PROGMOV] [decimal](5, 0) NOT NULL,
	[CODCAU] [varchar](5) NOT NULL,
	[CODSCAU] [varchar](5) NOT NULL,
	[DESCAU] [varchar](250) NULL,
	[IMPORTO] [decimal](15, 2) NULL,
	[FIRMA] [varchar](10) NOT NULL,
 CONSTRAINT [PK_W6APUT] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[DTTRIM] ASC,
	[CODFIS] ASC,
	[CODMAN] ASC,
	[CODCONF] ASC,
	[DTOPE] ASC,
	[DESPROD] ASC,
	[PROGMOV] ASC,
	[CODCAU] ASC,
	[CODSCAU] ASC,
	[FIRMA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6APUT_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6APUT_20240222](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[DTOPE] [decimal](9, 0) NOT NULL,
	[DESPROD] [varchar](30) NOT NULL,
	[PROGMOV] [decimal](5, 0) NOT NULL,
	[CODCAU] [varchar](5) NOT NULL,
	[CODSCAU] [varchar](5) NOT NULL,
	[DESCAU] [varchar](250) NULL,
	[IMPORTO] [decimal](15, 2) NULL,
	[FIRMA] [varchar](10) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6ASSETPERC_BACKUP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6ASSETPERC_BACKUP](
	[COD_INTERNO] [char](18) NULL,
	[COD_SOTTOPRODOTTO] [char](5) NULL,
	[COD_ISIN] [char](18) NULL,
	[COD_MAF] [char](18) NULL,
	[ID_ASSETCLASS] [char](50) NULL,
	[CATALOGUENAME] [char](128) NULL,
	[ASSETCLASSNAME] [char](128) NULL,
	[BDPERCENTAGE] [decimal](10, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6CATESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6CATESG](
	[dttrim] [varchar](12) NOT NULL,
	[banca] [varchar](5) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codman] [varchar](50) NULL,
	[esg_e_prod_cli] [varchar](50) NULL,
	[esg_s_prod_cli] [varchar](50) NULL,
	[esg_g_prod_cli] [varchar](50) NULL,
	[prodotto_id] [varchar](256) NOT NULL,
	[position_id] [varchar](256) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6CLIESG]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6CLIESG](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[U_PREFSOST] [varchar](1) NULL,
	[FLAGSFDR] [varchar](1) NOT NULL,
	[FLAGTAXO] [varchar](1) NOT NULL,
	[FLAGPAI] [varchar](1) NOT NULL,
	[SFDR_PERC] [decimal](5, 2) NOT NULL,
	[TAXO_PERC] [decimal](5, 2) NOT NULL,
	[PAI_A01] [varchar](1) NOT NULL,
	[PAI_A02] [varchar](1) NOT NULL,
	[PAI_A03] [varchar](1) NOT NULL,
	[PAI_A04] [varchar](1) NOT NULL,
	[PAI_A05] [varchar](1) NOT NULL,
	[PAI_A07] [varchar](1) NOT NULL,
	[PAI_A08] [varchar](1) NOT NULL,
	[PAI_S01] [varchar](1) NOT NULL,
	[PAI_S02] [varchar](1) NOT NULL,
	[PAI_NO_DETT] [varchar](1) NOT NULL,
	[PERC1ESG] [decimal](5, 2) NOT NULL,
	[PERCAMB] [decimal](5, 2) NOT NULL,
	[PERCSOC] [decimal](5, 2) NOT NULL,
	[PERCGOV] [decimal](5, 2) NOT NULL,
	[PERCAMB_OK] [decimal](5, 2) NOT NULL,
	[PERCSOC_OK] [decimal](5, 2) NOT NULL,
	[PERCGOV_OK] [decimal](5, 2) NOT NULL,
	[SFDR_PERCT] [decimal](5, 2) NOT NULL,
	[SFDR_PERC_OK] [decimal](5, 2) NOT NULL,
	[TAXO_PERCT] [decimal](5, 2) NOT NULL,
	[TAXO_PERC_OK] [decimal](5, 2) NOT NULL,
	[PAIA_PERCT] [decimal](5, 2) NOT NULL,
	[PAIA_PERC_OK] [decimal](5, 2) NOT NULL,
	[PAIS_PERCT] [decimal](5, 2) NOT NULL,
	[PAIS_PERC_OK] [decimal](5, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[W6LogBatch]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[W6LogBatch](
	[BatchID] [int] IDENTITY(1,1) NOT NULL,
	[BatchName] [nvarchar](100) NOT NULL,
	[Status] [nvarchar](50) NOT NULL,
	[LogMessage] [nvarchar](max) NULL,
	[StartDate] [datetime] NOT NULL,
	[EndDate] [datetime] NULL,
	[DeltaMinutes] [int] NULL,
PRIMARY KEY CLUSTERED 
(
	[BatchID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WADPRNA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WADPRNA](
	[CODPROD] [char](2) NULL,
	[SUBPROD] [char](25) NULL,
	[DTINIVAL] [decimal](9, 0) NULL,
	[DTFINVAL] [decimal](9, 0) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WANAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WANAB](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[DTFINE] [numeric](9, 0) NULL,
	[DTINI] [numeric](9, 0) NULL,
	[CTVINI] [numeric](15, 2) NULL,
	[DTRENDMAX] [numeric](9, 0) NULL,
	[RENDMAX] [numeric](8, 5) NULL,
	[DTRENDMIN] [numeric](9, 0) NULL,
	[RENDMIN] [numeric](8, 5) NULL,
	[DTCTV] [numeric](9, 0) NULL,
	[CTV] [numeric](15, 2) NULL,
	[RENDATT] [numeric](8, 5) NULL,
	[DTCTVMAX] [numeric](9, 0) NULL,
	[CTVMAX] [numeric](15, 2) NULL,
	[DTCTVMIN] [numeric](9, 0) NULL,
	[CTVMIN] [numeric](15, 2) NULL,
	[CVN] [numeric](15, 2) NULL,
	[CVN_IA] [numeric](15, 2) NULL,
	[CVN_IT] [numeric](15, 2) NULL,
	[APP_INI] [numeric](15, 2) NULL,
	[TOT_APP] [numeric](15, 2) NULL,
	[TOT_LIQ] [numeric](15, 2) NULL,
	[TOT_CED] [numeric](15, 2) NULL,
	[TOT_DIV] [numeric](15, 2) NULL,
	[DCD] [numeric](15, 2) NULL,
	[DCVN] [numeric](15, 2) NULL,
	[SCARTO] [numeric](15, 2) NULL,
	[NTOT_APP] [numeric](15, 2) NULL,
	[NTOT_LIQ] [numeric](15, 2) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WANVIPS]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WANVIPS](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODANA] [char](12) NOT NULL,
	[FLAG6KC] [char](1) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](22) NOT NULL,
	[FLGORIG] [char](1) NOT NULL,
	[FLGIMM] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WANVIPS_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WANVIPS_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODANA] [char](12) NOT NULL,
	[FLAG6KC] [char](1) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](22) NOT NULL,
	[FLGORIG] [char](1) NOT NULL,
	[FLGIMM] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WCPTAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WCPTAB](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[TIPPROD] [varchar](4) NULL,
	[ISIN] [varchar](12) NULL,
	[ID_WADEG] [varchar](12) NULL,
	[MAF] [varchar](14) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[CODPROD] [varchar](2) NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[RUBR] [varchar](3) NULL,
	[CODABI] [varchar](8) NULL,
	[TERMID] [varchar](8) NULL,
	[ANNO] [numeric](3, 0) NULL,
	[PROG] [numeric](9, 0) NULL,
	[SPROG] [numeric](3, 0) NULL,
	[DTUSCITA] [numeric](9, 0) NULL,
	[DTSOTT] [numeric](9, 0) NULL,
	[CTVATT] [numeric](15, 2) NULL,
	[DTINGRESSO] [numeric](9, 0) NULL,
	[CTVINGRESSO] [numeric](15, 2) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[RENDTRIM] [numeric](8, 5) NULL,
	[DTANNO] [numeric](9, 0) NULL,
	[RENDANNO] [numeric](8, 5) NULL,
	[DTINIZ] [numeric](9, 0) NULL,
	[RENDINIZ] [numeric](8, 5) NULL,
	[DTININAC] [numeric](9, 0) NULL,
	[RENDNAC] [numeric](8, 5) NULL,
	[CTVVP] [numeric](15, 2) NULL,
	[CVNTRIM] [numeric](15, 2) NULL,
	[CVNANNO] [numeric](15, 2) NULL,
	[CVNINIZ] [numeric](15, 2) NULL,
	[CVNNAC] [numeric](15, 2) NULL,
	[CODINT] [varchar](18) NULL,
	[VALORE] [numeric](15, 2) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WMANDATI]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WMANDATI](
	[PIVA] [varchar](11) NULL,
	[CODMAND] [varchar](6) NULL,
	[CODBREVE] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WRENAB]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WRENAB](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[DTVALORIZ] [numeric](9, 0) NULL,
	[CTV] [numeric](15, 2) NULL,
	[DTINIZ] [numeric](9, 0) NULL,
	[RENDINIZ] [numeric](8, 5) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[RENDTRIM] [numeric](8, 5) NULL,
	[DTANNO] [numeric](9, 0) NULL,
	[RENDANNO] [numeric](8, 5) NULL,
	[CVN] [numeric](15, 2) NULL,
	[CVN_IA] [numeric](15, 2) NULL,
	[CVN_IT] [numeric](15, 2) NULL,
	[APP_INI] [numeric](15, 2) NULL,
	[TOT_APP] [numeric](15, 2) NULL,
	[TOT_LIQ] [numeric](15, 2) NULL,
	[TOT_CED] [numeric](15, 2) NULL,
	[TOT_DIV] [numeric](15, 2) NULL,
	[DCD] [numeric](15, 2) NULL,
	[DCVN] [numeric](15, 2) NULL,
	[SCARTO] [numeric](15, 2) NULL,
	[NTOT_APP] [numeric](15, 2) NULL,
	[NTOT_LIQ] [numeric](15, 2) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WSCABP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSCABP](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[TIPPROD] [varchar](4) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[CODPROD] [varchar](2) NULL,
	[CONTO] [varchar](12) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[RUBR] [varchar](3) NULL,
	[CODABI] [varchar](8) NULL,
	[TERMID] [varchar](8) NULL,
	[ANNO] [numeric](3, 0) NULL,
	[PROG] [numeric](9, 0) NULL,
	[DTINGRESSO] [numeric](9, 0) NULL,
	[ISTITUTO] [numeric](5, 0) NULL,
	[TIPO_PRODOTT] [varchar](3) NULL,
	[CONTO_OP] [varchar](25) NULL,
	[STRUM_FIN] [varchar](15) NULL,
	[ID_MOVIM] [varchar](35) NULL,
	[TIPO_OP] [varchar](1) NULL,
	[RESTART] [varchar](1) NULL,
	[DT_ING_USC] [varchar](10) NULL,
	[ING_USC] [numeric](12, 3) NULL,
	[COD_ERR] [varchar](4) NULL,
	[DESCR_ERR] [varchar](60) NULL,
	[DT_ELAB] [varchar](10) NULL,
	[DT_INS] [varchar](10) NULL,
	[PCT] [varchar](3) NULL,
	[PROVENIENZA] [varchar](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAD]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAD](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBKEY] [char](22) NOT NULL,
	[CONTO] [char](12) NOT NULL,
	[CUSTGAR] [char](1) NOT NULL,
	[RUBR] [char](3) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[TIPPROD] [char](5) NOT NULL,
	[ISIN_PROXY] [char](12) NOT NULL,
	[ISIN_REALE] [char](12) NOT NULL,
	[COMPL_ISINR] [decimal](3, 0) NOT NULL,
	[COMPL_ISINP] [decimal](3, 0) NOT NULL,
	[COMPL_COMPARTO] [decimal](3, 0) NOT NULL,
	[PROD_CONT] [char](1) NOT NULL,
	[COMPL_BASE] [decimal](3, 0) NOT NULL,
	[COMPL_FINALE] [decimal](3, 0) NOT NULL,
	[FLG_CONCE] [decimal](3, 0) NOT NULL,
	[RETE] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAD_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAD_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBKEY] [char](22) NOT NULL,
	[CONTO] [char](12) NOT NULL,
	[CUSTGAR] [char](1) NOT NULL,
	[RUBR] [char](3) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[TIPPROD] [char](5) NOT NULL,
	[ISIN_PROXY] [char](12) NOT NULL,
	[ISIN_REALE] [char](12) NOT NULL,
	[COMPL_ISINR] [decimal](3, 0) NOT NULL,
	[COMPL_ISINP] [decimal](3, 0) NOT NULL,
	[COMPL_COMPARTO] [decimal](3, 0) NOT NULL,
	[PROD_CONT] [char](1) NOT NULL,
	[COMPL_BASE] [decimal](3, 0) NOT NULL,
	[COMPL_FINALE] [decimal](3, 0) NOT NULL,
	[FLG_CONCE] [decimal](3, 0) NOT NULL,
	[RETE] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[wseiad_2402]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[wseiad_2402](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBKEY] [char](22) NOT NULL,
	[CONTO] [char](12) NOT NULL,
	[CUSTGAR] [char](1) NOT NULL,
	[RUBR] [char](3) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[TIPPROD] [char](5) NOT NULL,
	[ISIN_PROXY] [char](12) NOT NULL,
	[ISIN_REALE] [char](12) NOT NULL,
	[COMPL_ISINR] [decimal](3, 0) NOT NULL,
	[COMPL_ISINP] [decimal](3, 0) NOT NULL,
	[COMPL_COMPARTO] [decimal](3, 0) NOT NULL,
	[PROD_CONT] [char](1) NOT NULL,
	[COMPL_BASE] [decimal](3, 0) NOT NULL,
	[COMPL_FINALE] [decimal](3, 0) NOT NULL,
	[FLG_CONCE] [decimal](3, 0) NOT NULL,
	[RETE] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAD2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAD2](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[DESCPROD] [char](128) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[PERCCTV] [decimal](5, 2) NOT NULL,
	[COMPL] [char](10) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAD2_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAD2_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[DESCPROD] [char](128) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[PERCCTV] [decimal](5, 2) NOT NULL,
	[COMPL] [char](10) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN_S170]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN_S170](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN_TEST_COMPLESSITA]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN_TEST_COMPLESSITA](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [varchar](1) NULL,
	[FLGCONC] [varchar](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240116_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240116_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240118_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240118_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240119_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240119_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240126_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240126_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240201_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240201_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240208_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240208_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240209_162706_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240209_162706_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240209_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240209_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240212_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240212_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240213_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240213_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240214_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240214_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240216_213029_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240216_213029_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240216_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240216_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240222_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240222_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240223_113327_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240223_113327_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240223_172034_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240223_172034_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240223_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240223_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240314_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240314_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240318_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240318_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240411_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240411_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240416_155941_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240416_155941_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240416_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240416_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240419_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240419_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240506_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240506_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240507_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240507_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240509_173207_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240509_173207_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240509_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240509_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240510_103927_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240510_103927_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240510_155202_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240510_155202_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240510_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240510_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240513_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240513_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240521_154218_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240521_154218_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240521_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240521_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240613_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240613_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240617_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240617_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240716_182318_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240716_182318_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240716_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240716_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240717_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240717_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240718_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240718_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240731_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240731_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240801_163334_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240801_163334_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240801_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240801_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240802_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240802_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240805_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240805_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240806_182130_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240806_182130_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240806_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240806_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240823_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240823_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240824_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240824_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240910_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240910_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20240912_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20240912_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241014_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241014_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241016_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241016_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241018_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241018_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241030_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241030_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241031_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241031_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241113_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241113_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20241114_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20241114_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250117_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250117_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250121_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250121_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250128_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250128_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250131_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250131_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250210_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250210_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250211_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250211_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250212_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250212_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250214_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250214_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250217_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250217_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250218_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250218_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250312_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250312_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250319_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250319_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250414_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250414_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250418_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250418_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250508_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250508_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIAN2_20250509_preUpdate]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIAN2_20250509_preUpdate](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIBO]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIBO](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NOT NULL,
	[NUMPOL] [char](11) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[BONUSM] [decimal](15, 2) NOT NULL,
	[DTDECM] [decimal](9, 0) NOT NULL,
	[BONUS5] [decimal](15, 2) NOT NULL,
	[DTDEC5] [decimal](9, 0) NOT NULL,
	[BONUS10] [decimal](15, 2) NOT NULL,
	[DTDEC10] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIBO_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIBO_20240222](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NOT NULL,
	[NUMPOL] [char](11) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[BONUSM] [decimal](15, 2) NOT NULL,
	[DTDECM] [decimal](9, 0) NOT NULL,
	[BONUS5] [decimal](15, 2) NOT NULL,
	[DTDEC5] [decimal](9, 0) NOT NULL,
	[BONUS10] [decimal](15, 2) NOT NULL,
	[DTDEC10] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICAP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICAP](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NULL,
	[DTINIZ] [decimal](9, 0) NULL,
	[DTFINE] [decimal](9, 0) NULL,
	[CTV_COMMIT] [decimal](15, 3) NULL,
	[IMPVERS] [decimal](15, 3) NULL,
	[IMPRES] [decimal](15, 3) NULL,
	[DESCPROD] [varchar](128) NULL,
	[SGR] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICAP_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICAP_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODCONF] [char](11) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NULL,
	[DTINIZ] [decimal](9, 0) NULL,
	[DTFINE] [decimal](9, 0) NULL,
	[CTV_COMMIT] [decimal](15, 3) NULL,
	[IMPVERS] [decimal](15, 3) NULL,
	[IMPRES] [decimal](15, 3) NULL,
	[DESCPROD] [varchar](128) NULL,
	[SGR] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICC]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICC](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NULL,
	[CODCONFC] [char](11) NOT NULL,
	[CODCONFPR] [char](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICC_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICC_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NULL,
	[CODCONFC] [char](11) NOT NULL,
	[CODCONFPR] [char](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICE]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICE](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[RAGGRUP] [char](30) NOT NULL,
	[ASSET] [char](1) NOT NULL,
	[IDTIPEMI] [decimal](5, 0) NOT NULL,
	[CODEMI] [char](13) NOT NULL,
	[TOTCTV] [decimal](15, 2) NOT NULL,
	[RFA] [decimal](15, 2) NOT NULL,
	[MINCTV] [decimal](15, 2) NOT NULL,
	[MAXINC] [decimal](5, 2) NOT NULL,
	[DESCEMI] [char](60) NOT NULL,
	[CONC] [decimal](5, 2) NOT NULL,
	[FLGCONC] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICE_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICE_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[RAGGRUP] [char](30) NOT NULL,
	[ASSET] [char](1) NOT NULL,
	[IDTIPEMI] [decimal](5, 0) NOT NULL,
	[CODEMI] [char](13) NOT NULL,
	[TOTCTV] [decimal](15, 2) NOT NULL,
	[RFA] [decimal](15, 2) NOT NULL,
	[MINCTV] [decimal](15, 2) NOT NULL,
	[MAXINC] [decimal](5, 2) NOT NULL,
	[DESCEMI] [char](60) NOT NULL,
	[CONC] [decimal](5, 2) NOT NULL,
	[FLGCONC] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICE2]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICE2](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODEMI] [char](13) NOT NULL,
	[TOTCTV] [decimal](15, 2) NOT NULL,
	[DESCEMI] [char](60) NOT NULL,
	[SOGLIACTV_CONC] [decimal](15, 2) NULL,
	[RATING] [char](5) NULL,
	[CONC] [decimal](5, 2) NOT NULL,
	[LIMITE_CONC] [decimal](5, 2) NULL,
	[FLGCONC] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICE2_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICE2_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[CODEMI] [char](13) NOT NULL,
	[TOTCTV] [decimal](15, 2) NOT NULL,
	[DESCEMI] [char](60) NOT NULL,
	[SOGLIACTV_CONC] [decimal](15, 2) NULL,
	[RATING] [char](5) NULL,
	[CONC] [decimal](5, 2) NOT NULL,
	[LIMITE_CONC] [decimal](5, 2) NULL,
	[FLGCONC] [char](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[wseics]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[wseics](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](8) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[CODMAN] [varchar](6) NULL,
	[SALRISC] [decimal](15, 2) NULL,
	[ATTIVO] [char](1) NULL,
	[PREZZO] [numeric](15, 7) NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[wseics_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[wseics_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[CODMAN] [varchar](6) NULL,
	[SALRISC] [decimal](15, 2) NULL,
	[ATTIVO] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEICS_ASUL]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEICS_ASUL](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[wseics_test]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[wseics_test](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[CODMAN] [varchar](6) NULL,
	[SALRISC] [decimal](15, 2) NULL,
	[ATTIVO] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[wseidc_bkp_20250210]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[wseidc_bkp_20250210](
	[RETE] [varchar](1) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[CODFIS] [varchar](16) NULL,
	[CODANA] [varchar](12) NULL,
	[CODMAN] [varchar](6) NULL,
	[CODAGE] [varchar](6) NULL,
	[CONTO] [varchar](12) NULL,
	[STATO] [varchar](1) NULL,
	[POSMAND] [varchar](2) NULL,
	[INTEST] [varchar](50) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[DTLETT] [numeric](9, 0) NULL,
	[DTLETBENV] [numeric](9, 0) NULL,
	[SEX] [varchar](1) NULL,
	[INDIR] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROV] [varchar](2) NULL,
	[NAZION] [varchar](25) NULL,
	[PRESSO] [varchar](32) NULL,
	[TIPCONTR] [varchar](1) NULL,
	[TEMPLATE] [varchar](1) NULL,
	[TIPOLETT] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIFP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIFP](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
 CONSTRAINT [PK_F.WSEIFP] PRIMARY KEY CLUSTERED 
(
	[DTTRIM] ASC,
	[DTRIFE] ASC,
	[RETE] ASC,
	[CODCONF] ASC,
	[SUBPROD] ASC,
	[ISIN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIFP_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIFP_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[SUBPROD] [char](5) NOT NULL,
	[ISIN] [char](12) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIGP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIGP](
	[RETE] [char](1) NULL,
	[DTTRIM] [decimal](9, 0) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NULL,
	[SUBPROG] [char](5) NULL,
	[AREAFIN] [char](11) NULL,
	[DTRIFE] [decimal](9, 0) NULL,
	[ISIN] [char](12) NULL,
	[MAF] [char](14) NULL,
	[MERCATO] [char](6) NULL,
	[CODLINEA] [char](5) NULL,
	[CTV] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[FLAGTRIM] [char](1) NULL,
	[ATTIVO] [char](1) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIGP_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIGP_20240222](
	[RETE] [char](1) NULL,
	[DTTRIM] [decimal](9, 0) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NULL,
	[SUBPROG] [char](5) NULL,
	[AREAFIN] [char](11) NULL,
	[DTRIFE] [decimal](9, 0) NULL,
	[ISIN] [char](12) NULL,
	[MAF] [char](14) NULL,
	[MERCATO] [char](6) NULL,
	[CODLINEA] [char](5) NULL,
	[CTV] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[FLAGTRIM] [char](1) NULL,
	[ATTIVO] [char](1) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEILP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEILP](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[CODLINEA] [char](5) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[CTV_PROT] [decimal](15, 2) NULL,
	[CTVMON] [decimal](15, 2) NULL,
	[FLAGTRIM] [char](1) NULL,
 CONSTRAINT [PK_F.WSEILP] PRIMARY KEY CLUSTERED 
(
	[DTTRIM] ASC,
	[DTRIFE] ASC,
	[RETE] ASC,
	[CODCONF] ASC,
	[CODLINEA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEILP_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEILP_20240222](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [char](1) NOT NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[CODCONF] [char](11) NOT NULL,
	[CODPROD] [char](2) NULL,
	[CODLINEA] [char](5) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[CTV_PROT] [decimal](15, 2) NULL,
	[CTVMON] [decimal](15, 2) NULL,
	[FLAGTRIM] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIPR]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIPR](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[FAMPROD] [char](2) NOT NULL,
	[CODPROD] [char](2) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[CODABI] [char](8) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[TIPMOV] [char](25) NOT NULL,
	[IMPORTO] [decimal](15, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIPR_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIPR_20240222](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[FAMPROD] [char](2) NOT NULL,
	[CODPROD] [char](2) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[CODABI] [char](8) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[TIPMOV] [char](25) NOT NULL,
	[IMPORTO] [decimal](15, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIPV]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIPV](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[IMPVER] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[SUBSET] [varchar](10) NULL,
	[CODMAN] [varchar](6) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIPV_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIPV_20240222](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[IMPVER] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[SUBSET] [varchar](10) NULL,
	[CODMAN] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIRP]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIRP](
	[NOMETAB] [char](8) NOT NULL,
	[PROCEDURA] [char](35) NOT NULL,
	[TSP_AGGIOR] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIRP_20240222]    Script Date: 5/21/2025 3:35:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIRP_20240222](
	[NOMETAB] [char](8) NOT NULL,
	[PROCEDURA] [char](35) NOT NULL,
	[TSP_AGGIOR] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIRPF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIRPF](
	[dttrim] [numeric](9, 0) NULL,
	[rete] [varchar](2) NULL,
	[codfis] [varchar](16) NULL,
	[codman] [varchar](8) NULL,
	[flgprof] [varchar](2) NULL,
	[flgec] [varchar](2) NULL,
	[data_ora_refresh] [datetime2](7) NULL,
	[data_ora_inse] [datetime2](7) NULL,
	[data_ora_aggi] [datetime2](7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEISC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEISC](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[FAMPROD] [char](2) NOT NULL,
	[CODPROD] [char](2) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[CODABI] [char](8) NOT NULL,
	[DTSCAD] [decimal](9, 0) NOT NULL,
	[TIPMOV] [char](25) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEISC_20240222]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEISC_20240222](
	[RETE] [char](1) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[CODFIS] [char](16) NOT NULL,
	[CODMAN] [char](6) NOT NULL,
	[FAMPROD] [char](2) NOT NULL,
	[CODPROD] [char](2) NOT NULL,
	[SUBPROD] [char](5) NOT NULL,
	[CODABI] [char](8) NOT NULL,
	[DTSCAD] [decimal](9, 0) NOT NULL,
	[TIPMOV] [char](25) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[wseiul]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[wseiul](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[CODINT] [varchar](2) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[ISINFIT] [varchar](12) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NULL,
	[SUBSET] [varchar](10) NULL,
	[CODMAN] [varchar](6) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[DIVISA] [varchar](3) NULL,
	[BASE_PREZZ] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSEIUL_20240222]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSEIUL_20240222](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[CODINT] [varchar](2) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[ISINFIT] [varchar](12) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NULL,
	[SUBSET] [varchar](10) NULL,
	[CODMAN] [varchar](6) NULL,
	[PREZZOMAX] [decimal](15, 3) NULL,
	[DTPREZZOMAX] [decimal](9, 0) NULL,
	[PREZZOPROT] [decimal](15, 3) NULL,
	[CTRVIMPPROT] [decimal](15, 2) NULL,
	[PREZZO] [decimal](15, 5) NULL,
	[QUOTE] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodico].[WSMOV_CONTRATTO_SCARICO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodico].[WSMOV_CONTRATTO_SCARICO](
	[WSMOV_PRODOTTO] [char](2) NOT NULL,
	[WSMOV_OPERAZIONE] [char](1) NOT NULL,
	[WSMOV_FIRMA_DIGITALE] [char](1) NOT NULL,
	[WSMOV_CONTRATTO] [char](11) NOT NULL,
	[WSMOV_PROGRESSIVO] [decimal](6, 0) NOT NULL,
	[WSMOV_DATA_ESEGUITO] [decimal](9, 0) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](30) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](30) NOT NULL,
	[McVar] [varchar](30) NOT NULL,
	[McVarP] [varchar](30) NOT NULL,
	[Beneficio] [varchar](30) NOT NULL,
	[Copertura] [varchar](30) NOT NULL,
	[Totale] [varchar](40) NOT NULL,
	[Clsint] [varchar](40) NULL,
	[Mdclcclsint] [varchar](40) NULL,
	[Cllsr] [varchar](40) NULL,
	[ClControparte] [varchar](40) NULL,
	[ClTipo] [varchar](40) NULL,
	[ClMercato] [varchar](40) NULL,
	[ClLiquidita] [varchar](40) NULL,
	[ISR] [varchar](40) NULL,
	[IndMercato] [varchar](40) NULL,
	[IndControparte] [varchar](40) NULL,
	[IndLiquidita] [varchar](40) NULL,
	[Ully] [varchar](40) NULL,
	[Ully_perc] [varchar](40) NULL,
	[Elly_perc] [varchar](40) NULL,
	[Crc] [varchar](40) NULL,
	[RcTot] [varchar](40) NULL,
	[Ully_perc_rc] [varchar](40) NULL,
	[Ully_perc_se] [varchar](40) NULL,
	[CoperturaPortafoglio] [varchar](40) NULL,
	[CoperturaProxyRC] [varchar](40) NULL,
	[NumTit] [varchar](40) NULL,
	[NumTitRC] [varchar](40) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR_IndDiv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR_IndDiv](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](2000) NULL,
	[indicatore] [varchar](2000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RISKCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RISKCLASS](
	[COD] [smallint] NOT NULL,
	[MINVAL] [decimal](7, 2) NOT NULL,
	[MAXVAL] [decimal](7, 2) NOT NULL,
	[DESCR] [varchar](50) NOT NULL,
 CONSTRAINT [PK_RISKCLASS] PRIMARY KEY CLUSTERED 
(
	[COD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_AnAlberatura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_AnAlberatura](
	[Alberatura] [int] NOT NULL,
	[Livello1] [varchar](50) NOT NULL,
	[Livello2] [varchar](50) NULL,
	[Livello3] [varchar](50) NULL,
	[Livello4] [varchar](50) NULL,
	[Livello5] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_AnEmittente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_AnEmittente](
	[Emittente] [varchar](13) NOT NULL,
	[Descrizione] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_AssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_AssetClass](
	[Asset] [varchar](10) NOT NULL,
	[Madre] [varchar](10) NULL,
	[Livello] [int] NOT NULL,
	[Descrizione] [varchar](200) NULL,
	[codicergb] [varchar](15) NULL,
	[isresidual] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti](
	[CatalogueID] [varchar](128) NULL,
	[ChiaveProdotto] [int] NOT NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[TipoVersamento] [int] NULL,
	[RischioPrSc] [int] NULL,
	[StatoProdotto] [int] NULL,
	[TipoPolizza] [varchar](20) NULL,
	[NomeProdotto] [varchar](128) NULL,
	[Visibilita] [bit] NOT NULL,
	[PrezzoInEuro] [numeric](13, 5) NULL,
	[Alberatura] [int] NOT NULL,
	[DtScadenza] [datetime] NULL,
	[Categoria] [int] NULL,
	[Istituto] [int] NULL,
	[Piazza] [varchar](128) NULL,
	[PrezzoInValuta] [numeric](13, 5) NULL,
	[PrezzoValuta] [varchar](3) NULL,
	[Codiceadb] [varchar](18) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[RatingObbligazioni] [varchar](128) NULL,
	[RischioMinimo] [int] NULL,
	[CapRisparmio] [int] NULL,
	[CapMinimo] [numeric](13, 5) NULL,
	[CapMinimoValuta] [varchar](3) NULL,
	[CapMinSucc] [numeric](13, 5) NULL,
	[CapMinSuccValuta] [varchar](3) NULL,
	[MinRispContr] [numeric](13, 5) NULL,
	[MinRispContrValuta] [varchar](3) NULL,
	[SuccRispContr] [numeric](13, 5) NULL,
	[SuccRispContrValuta] [varchar](3) NULL,
	[MinComm] [numeric](13, 5) NULL,
	[MinCommValuta] [varchar](3) NULL,
	[DelegaGestionale] [varchar](128) NULL,
	[TipologiaPerPick] [int] NULL,
	[RischioPrezzo] [int] NULL,
	[RegimeFiscale] [int] NULL,
	[Quotato] [int] NULL,
	[ClasseDiPrezzo] [varchar](10) NULL,
	[Lineefinacc] [varchar](128) NULL,
	[DurataContrattuale] [varchar](50) NULL,
	[RiscFinFaseAcc] [varchar](10) NULL,
	[OpzRendVital] [bit] NULL,
	[MetaA] [varchar](128) NULL,
	[MetaB] [varchar](128) NULL,
	[MetaC] [varchar](128) NULL,
	[DtRifPrezzo] [datetime] NULL,
	[CodTipoContratto] [varchar](128) NULL,
	[PrezzoNetto] [numeric](13, 5) NULL,
	[PrezzoNettoValuta] [varchar](3) NULL,
	[DtPrezzoNetto] [datetime] NULL,
	[CodBloomberg] [varchar](128) NULL,
	[DenomUnitLink] [varchar](128) NULL,
	[DtInizioValidita] [datetime] NULL,
	[Negoziabilita] [bit] NULL,
	[TassoTecnico] [numeric](13, 5) NULL,
	[TassoTecnicoValuta] [varchar](3) NULL,
	[CollSkandia] [bit] NULL,
	[CodAssetSatellite] [varchar](20) NULL,
	[Mercato] [varchar](3) NULL,
	[AzOb] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[Emittente] [varchar](13) NULL,
	[GaranziaDemografica] [int] NULL,
	[SocietaDiGestione] [int] NULL,
	[IndPrz] [varchar](1) NULL,
	[Differimento] [int] NULL,
	[DtPrezzo] [datetime] NULL,
	[TipoObbligazione] [varchar](50) NULL,
	[TaglioMinimo] [numeric](19, 6) NULL,
	[IsAttivoRc] [int] NULL,
	[RischioCredito] [varchar](20) NULL,
	[Copertura] [numeric](5, 2) NULL,
	[VarP] [numeric](19, 16) NULL,
	[Diversificazione] [numeric](19, 16) NULL,
	[FlagCoreSatellite] [int] NULL,
	[PerimetroCoreSatellite] [int] NULL,
	[FondoCore] [int] NULL,
	[TIP_EMITTENTE] [varchar](35) NULL,
	[TIP_TASSO] [varchar](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_ChiaviMonitoraggio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_ChiaviMonitoraggio](
	[IdMonitoraggio] [bigint] NOT NULL,
	[ChiaveProgetto] [bigint] NULL,
	[DtCreazione] [datetime] NULL,
	[stato] [bit] NULL,
	[dtFineMonitoraggio] [nvarchar](10) NULL,
	[flagVisualizzaStor] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[rp_Consulenza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[rp_Consulenza](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[position_id] [varchar](123) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [nchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_DettaglioPosizionePortafoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_DettaglioPosizionePortafoglio](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[ctv] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[ctvNonAllocabile] [numeric](18, 2) NULL,
	[quantitaNominale] [numeric](18, 2) NULL,
	[partitaViaggiante] [numeric](18, 2) NULL,
	[dtAggiornamento] [datetime] NULL,
	[ctvOut] [numeric](18, 2) NULL,
	[ctvIni] [numeric](18, 2) NULL,
	[dtSaldo] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_DettAltriProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_DettAltriProdotti](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[idTipoExtra] [int] NULL,
	[descrizione] [varchar](512) NULL,
	[dtStima] [datetime] NULL,
	[valoreStimato] [numeric](19, 3) NULL,
	[valutaStima] [varchar](3) NULL,
	[dtAcquisto] [datetime] NULL,
	[dtVendita] [datetime] NULL,
	[flagAssicurativo] [bit] NULL,
	[compagnia] [varchar](50) NULL,
	[valoreAssicurato] [numeric](19, 3) NULL,
	[valutaAssicurato] [varchar](10) NULL,
	[premioAnnuo] [numeric](19, 3) NULL,
	[valutaPremio] [varchar](10) NULL,
	[dtScadenza] [datetime] NULL,
	[note] [varchar](250) NULL,
	[dtDecorrenza] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_DettImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_DettImmobiliare](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[descrizione] [varchar](512) NULL,
	[codProvincia] [varchar](15) NULL,
	[provincia] [varchar](512) NULL,
	[codComune] [varchar](15) NULL,
	[comune] [varchar](512) NULL,
	[codZona] [varchar](15) NULL,
	[zona] [varchar](512) NULL,
	[superficie] [numeric](19, 7) NULL,
	[dtEstinzioneMutuo] [datetime] NULL,
	[rataMutuoAnnuo] [numeric](19, 3) NULL,
	[valutaMutuo] [varchar](3) NULL,
	[valoreImmobileTotale] [numeric](19, 3) NULL,
	[valutaImmobile] [varchar](3) NULL,
	[renditaAnnua] [numeric](19, 3) NULL,
	[valutaRendita] [varchar](3) NULL,
	[flagFabbPrevidenza] [bit] NULL,
	[valoreCapitalizzato] [numeric](19, 3) NULL,
	[valutaValCap] [varchar](3) NULL,
	[dtDecorrenza] [datetime] NULL,
	[codTipologia] [varchar](15) NULL,
	[tipologia] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_DettPatrAziendale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_DettPatrAziendale](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[tipoAzienda] [varchar](256) NULL,
	[denominazione] [varchar](516) NULL,
	[codTipoCompagnia] [varchar](256) NULL,
	[patrimonio] [numeric](19, 3) NULL,
	[valutaPatrimonio] [varchar](3) NULL,
	[titolari] [varchar](512) NULL,
	[cointestatari] [varchar](512) NULL,
	[idTipoAzienda] [int] NULL,
	[valutaFatturato] [varchar](3) NULL,
	[fatturato] [numeric](18, 2) NULL,
	[numQuote] [int] NULL,
	[valoreStimato] [numeric](18, 2) NULL,
	[valutaStimato] [varchar](10) NULL,
	[dtStima] [datetime] NULL,
	[dtAcquisto] [datetime] NULL,
	[dtVendita] [datetime] NULL,
	[dtDecorrenza] [datetime] NULL,
	[note] [varchar](1024) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_DettProdottiTerzi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_DettProdottiTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[idIntermediario] [int] NULL,
	[alberatura] [int] NULL,
	[nomeIntermediario] [varchar](128) NULL,
	[dtInizioInvest] [datetime] NULL,
	[totVersato] [numeric](18, 2) NULL,
	[totPrelevato] [numeric](18, 2) NULL,
	[valutaTotPrelevato] [varchar](3) NULL,
	[chiaveProdotto] [int] NULL,
	[numQuote] [numeric](18, 2) NULL,
	[divQuoteProd] [varchar](3) NULL,
	[dtSottoscrizione] [datetime] NULL,
	[valutaPremioVers] [varchar](3) NULL,
	[tipoPolizza] [varchar](256) NULL,
	[tipoVersamento] [varchar](256) NULL,
	[tipoFormaPensionistica] [varchar](256) NULL,
	[capitaleInvestito] [numeric](18, 2) NULL,
	[valutaCapInvestito] [varchar](3) NULL,
	[contoPrincipale] [bit] NULL,
	[addebitoUtenze] [bit] NULL,
	[accreditoStipPens] [bit] NULL,
	[cartaCredito] [bit] NULL,
	[addebitoMutuo] [bit] NULL,
	[isin] [varchar](256) NULL,
	[lineaFinanziaria] [varchar](256) NULL,
	[fabbisognoPrev] [bit] NULL,
	[dtDecorrenza] [datetime] NULL,
	[modalitaUso] [varchar](256) NULL,
	[ctvUltimaPrestNota] [numeric](18, 2) NULL,
	[dtUltimaPrestNota] [datetime] NULL,
	[flgPrestazioneScad] [bit] NULL,
	[dtTermineVers] [datetime] NULL,
	[dtUltimoPremioNoto] [datetime] NULL,
	[nomeCompagnia] [varchar](512) NULL,
	[valutaCtvUltPrestNota] [varchar](3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_InfoCliente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_InfoCliente](
	[chiaveClientePB] [int] NOT NULL,
	[chiaveCliente] [int] NOT NULL,
	[codFis] [varchar](16) NULL,
	[pIva] [varchar](11) NULL,
	[codMan] [varchar](6) NULL,
	[NomeCliente] [varchar](50) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[tipologia] [varchar](50) NULL,
	[dtScadQuest] [datetime] NULL,
	[profilo] [smallint] NULL,
	[dtQuestionario] [datetime] NULL,
	[frequenza] [int] NULL,
	[Agente] [char](6) NULL,
	[NomePb] [varchar](40) NULL,
	[CognomePb] [varchar](40) NULL,
	[StatoPb] [char](2) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NULL,
	[StatoContratto] [varchar](50) NULL,
	[dtFirmaBase] [datetime] NULL,
	[dtEndBase] [datetime] NULL,
	[dtFirmaSei] [datetime] NULL,
	[dtEndSei] [datetime] NULL,
	[rendicSemestrale] [char](10) NULL,
	[dtNascita] [datetime] NULL,
	[sesso] [varchar](10) NULL,
	[TipContratto] [varchar](1) NULL,
	[ModPagamento] [varchar](1) NULL,
	[chiavePB] [int] NOT NULL,
	[flagrol] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_Mappatura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_Mappatura](
	[Asset] [varchar](10) NOT NULL,
	[Percentuale] [numeric](13, 5) NOT NULL,
	[Bdbeta] [numeric](13, 5) NOT NULL,
	[ChiaveProdotto] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_MappaturaPT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_MappaturaPT](
	[asset] [varchar](10) NOT NULL,
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[percentuale] [float] NULL,
	[bdbeta] [float] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_MappingTerzi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_MappingTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[Temp_oidProd] [char](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_Migraz_Pianificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_Migraz_Pianificazione](
	[chiaveConsulenza] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtUltimoAggiornamento] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieTerzi] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[partiteViaggianti] [numeric](18, 2) NULL,
	[dtPrimaMigrazione] [datetime] NULL,
	[token] [int] NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_Migraz_Posizioni]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_Migraz_Posizioni](
	[chiavePosizione] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[chiaveProdotto] [int] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtFineValidita] [datetime] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[ctv] [numeric](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_Migraz_Progetto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_Migraz_Progetto](
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[dtCreazione] [datetime] NULL,
	[varProgetto] [numeric](18, 2) NULL,
	[coperturaProgetto] [numeric](18, 2) NULL,
	[ctvProgetto] [numeric](18, 2) NULL,
	[chiaveProgettoMod] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_NEEDAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_NEEDAREA](
	[Area] [varchar](10) NOT NULL,
	[Descrizione] [varchar](100) NOT NULL,
	[Ordinamento] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_PatrimonioTerzi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_PatrimonioTerzi](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[idTipoProdotto] [varchar](2) NULL,
	[nomeProdotto] [varchar](256) NULL,
	[rischioProd] [varchar](256) NULL,
	[valutaCtv] [varchar](3) NULL,
	[ctv] [numeric](18, 2) NULL,
	[ctvNonRappresentabile] [numeric](18, 2) NULL,
	[dataCtv] [datetime] NULL,
	[prezzoMedioCarico] [numeric](18, 2) NULL,
	[tipoProd] [varchar](256) NULL,
	[dtFine] [datetime] NULL,
	[divisa] [varchar](3) NULL,
	[ultimoPrezzo] [numeric](13, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_Pianificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_Pianificazione](
	[chiaveConsulenza] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[dtUltimoAggiornamento] [datetime] NULL,
	[risorseFinanziarieBF] [numeric](18, 2) NULL,
	[risorseFinanziarieTerzi] [numeric](18, 2) NULL,
	[contoCorrente] [numeric](18, 2) NULL,
	[rischioCredito] [numeric](18, 2) NULL,
	[rischioMercato] [numeric](18, 2) NULL,
	[diversificazione] [numeric](18, 2) NULL,
	[copertura] [numeric](18, 2) NULL,
	[isAttivoRC] [bit] NULL,
	[partiteViaggianti] [numeric](18, 2) NULL,
	[dtPrimaMigrazione] [datetime] NULL,
	[dtPianificazioneOrizzontale] [datetime] NULL,
	[dtPianificazioneVerticale] [datetime] NULL,
	[token] [int] NULL,
	[varRisorseAllocate] [decimal](18, 2) NULL,
	[coperturaRisorseAllocate] [decimal](18, 2) NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_PosizioniPortafoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_PosizioniPortafoglio](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtFineValidita] [datetime] NULL,
	[chiaveProdotto] [int] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_PROGETTICLIENTE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_PROGETTICLIENTE](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_ProgettiPiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_ProgettiPiramideModello](
	[chiaveProgettoMod] [bigint] NOT NULL,
	[chiaveClientePB] [int] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[percentualeProgetto] [numeric](19, 7) NULL,
	[tipoProgetto] [char](1) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[durata] [char](18) NULL,
	[note] [varchar](250) NULL,
	[dtFineValidita] [datetime] NULL,
	[dtCreazione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_Progetto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_Progetto](
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[chiaveConsulenza] [bigint] NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[dtCreazione] [datetime] NULL,
	[dtUltimaModifica] [datetime] NULL,
	[capLiquidoEntrata] [numeric](18, 2) NULL,
	[capLiquidoUscita] [numeric](18, 2) NULL,
	[varPianificato] [numeric](18, 2) NULL,
	[varProgetto] [numeric](18, 2) NULL,
	[coperturaProgetto] [numeric](18, 2) NULL,
	[profiloProgetto] [int] NULL,
	[orizzonteTemporale] [int] NULL,
	[ctvProgetto] [numeric](18, 2) NULL,
	[chiaveProgettoMod] [bigint] NULL,
	[flagAvviatoMonitoraggio] [bit] NULL,
	[percProgetto] [numeric](18, 2) NULL,
	[ctvPianificato] [numeric](18, 2) NULL,
	[chiavePtfMod] [int] NULL,
	[dtFineValidita] [datetime] NULL,
	[flagCambioParametri] [bit] NULL,
	[flagPianificazione] [bit] NULL,
	[dtReset] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_REP_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_REP_ASSET_1_E_2_ORDINATE](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINAMENTO_ASSET] [int] NULL,
	[ASSETCLASSNAME_REPORT] [varchar](128) NULL,
	[LIVELLO] [int] NULL,
	[CODICE_MACROASSET] [varchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[RP_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[RP_S4_S5_S13_TRAD_UNTIL_LIV3](
	[alberatura] [int] NOT NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StagingPeriodicoImmobiliare].[SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StagingPeriodicoImmobiliare].[SPB_PROF_RISCHIO](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[CODICECLASSERC] [varchar](80) NULL
) ON [STAGING]
GO
/****** Object:  Table [C6Storico].[ALBERO_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ALBERO_PRODOTTI](
	[DESCRIZIONE_ORIGINALE] [varchar](100) NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ALBERO_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ALBERO_PRODOTTI] ON [C6Storico].[ALBERO_PRODOTTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_CC](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](12) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDOCONTABILE] [decimal](15, 3) NULL,
	[SALDODISPONIBILE] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CC] ON [C6Storico].[ANAG_CC]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_CC_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](128) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDO] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CC_TERZI] ON [C6Storico].[ANAG_CC_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_CLIENTI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME] [varchar](50) NULL,
	[COGNOME] [varchar](50) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [varchar](20) NULL,
	[NUM_COMPONENTI] [smallint] NULL,
	[NUM_FIGLI] [smallint] NULL,
	[ETA] [smallint] NULL,
	[PARTITA_IVA] [varchar](20) NULL,
	[CITTADINANZA] [varchar](150) NULL,
	[PERSONA_FIS_GIUR] [varchar](20) NULL,
	[INDIRIZZO] [varchar](150) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](50) NULL,
	[PRESSO] [varchar](32) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[STATO] [varchar](20) NULL,
	[RAG_SOC] [varchar](20) NULL,
	[SESSO] [varchar](1) NULL,
	[ID_PROMOTORE] [varchar](6) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CLIENTI] ON [C6Storico].[ANAG_CLIENTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_CLIENTI_PREV](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[STATO_LAVORATIVO] [varchar](20) NULL,
	[PROFESSIONE] [varchar](30) NULL,
	[CAT_PROFESSIONALE] [varchar](30) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[RETRIB_LORDA] [decimal](15, 3) NULL,
	[PROFESSIONE_SEC] [varchar](30) NULL,
	[CAT_PROFESSIONALE_SEC] [varchar](30) NULL,
	[DATA_INIZIO_SEC] [datetime] NULL,
	[DATA_FINE_SEC] [datetime] NULL,
	[RETRIB_LORDA_SEC] [decimal](15, 3) NULL,
	[PROFESSIONE_PREC] [varchar](30) NULL,
	[CAT_PROFESSIONALE_PREC] [varchar](30) NULL,
	[DATA_INIZIO_PREC] [datetime] NULL,
	[DATA_FINE_PREC] [datetime] NULL,
	[RETRIB_LORDA_PREC] [decimal](15, 3) NULL,
	[RICONGIUNZIONE] [varchar](100) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CLIENTI_PREV] ON [C6Storico].[ANAG_CLIENTI_PREV]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_CONTRATTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_CONTRATTI](
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[STATO] [varchar](1) NULL,
	[COD_SOTTOPRODOTTO] [varchar](30) NOT NULL,
	[TIPO_PRODOTTO] [varchar](50) NOT NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[COD_MANDATO] [varchar](20) NULL,
	[COD_CC] [varchar](12) NULL,
	[RUBRICATO] [varchar](20) NULL,
	[CUSTODIA_GAR] [varchar](20) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_CONTRATTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CONTRATTI] ON [C6Storico].[ANAG_CONTRATTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_CONTRATTI_ASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_CONTRATTI_ASS](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NOT NULL,
	[ID_CONTRATTO] [varchar](20) NOT NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[IMPORTO_RATA] [decimal](15, 3) NULL,
	[FREQ_RATA] [smallint] NULL,
	[IMPORTO_ASSICURATO] [decimal](15, 3) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[COD_SOTTOPRODOTTO] [varchar](30) NOT NULL,
	[COD_INTERNO] [varchar](20) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[STATO] [varchar](20) NULL,
	[DIV_RIFERIMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_CONTRATTI_ASS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CONTRATTI_ASS] ON [C6Storico].[ANAG_CONTRATTI_ASS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_EMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_EMITTENTI](
	[ID_EMITTENTE] [varchar](30) NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[NOTE] [varchar](256) NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_EMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_EMITTENTI] ON [C6Storico].[ANAG_EMITTENTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_PRODOTTI](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_ISIN] [varchar](12) NOT NULL,
	[PAESE] [varchar](30) NULL,
	[ID_AREA] [varchar](50) NULL,
	[CAT_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[DESCR_PRODOTTO] [varchar](128) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[COD_MAF] [varchar](20) NULL,
	[RATING] [varchar](50) NULL,
	[COD_ADEGUATEZZA] [varchar](12) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_PRODOTTI] ON [C6Storico].[ANAG_PRODOTTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_PRODOTTI_TERZI](
	[COD_PRODOTTO] [varchar](64) NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NULL,
	[NOME_PRODOTTO] [varchar](150) NULL,
	[ALBERO_PRODOTTI] [varchar](50) NULL,
	[COD_ISIN] [varchar](12) NULL,
	[DESCR_PRODOTTO] [varchar](50) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[PAESE] [varchar](30) NULL,
	[RATING] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_PRODOTTI_TERZI] ON [C6Storico].[ANAG_PRODOTTI_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ANAG_PROMOTORI](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[PARTITA_IVA] [varchar](11) NULL,
	[COGNOME] [varchar](128) NULL,
	[NOME] [varchar](128) NULL,
	[RAG_SOC] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[LOCALITA] [varchar](50) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[COD_ABI] [varchar](5) NULL,
	[COD_CAB] [varchar](5) NULL,
	[COD_CIN] [varchar](1) NULL,
	[COD_CC] [varchar](12) NULL,
	[STATO] [varchar](20) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_PROMOTORI] ON [C6Storico].[ANAG_PROMOTORI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[AREA_BISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[AREA_BISOGNO](
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_AREA] [varchar](30) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_AREA_BISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_AREA_BISOGNO] ON [C6Storico].[AREA_BISOGNO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ASSET_PERC](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[COD_ISIN] [varchar](12) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[LIVELLO] [smallint] NULL,
	[PERC] [decimal](10, 7) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSET_PERC] ON [C6Storico].[ASSET_PERC]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ASSET_PERC_TERZI](
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[LIVELLO] [smallint] NOT NULL,
	[NOME_PRODOTTO] [varchar](100) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PERC] [decimal](10, 7) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSET_PERC_TERZI] ON [C6Storico].[ASSET_PERC_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ASSETCLASS](
	[ID_ASSETCLASS] [varchar](20) NOT NULL,
	[DESCRIZIONE] [varchar](128) NULL,
	[LIVELLO] [smallint] NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSETCLASS] ON [C6Storico].[ASSETCLASS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ASSETCLASS_TERZI](
	[ID_ASSETCLASS] [varchar](8) NOT NULL,
	[COD_ISIN] [varchar](8) NULL,
	[COD_MAF] [varchar](8) NULL,
	[COD_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSETCLASS_TERZI] ON [C6Storico].[ASSETCLASS_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[CODIFICA_PIRAMIDI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[CODIFICA_PIRAMIDI](
	[ID_PIRAMIDE] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](30) NULL,
	[NOTE] [varchar](50) NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_CODIFICA_PIRAMIDI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_CODIFICA_PIRAMIDI] ON [C6Storico].[CODIFICA_PIRAMIDI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[CODIFICA_RISCHIO](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAR] [decimal](5, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_CODIFICA_RISCHIO] ON [C6Storico].[CODIFICA_RISCHIO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[COLORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[COLORI](
	[Tipo] [varchar](50) NOT NULL,
	[Codice] [varchar](50) NOT NULL,
	[Ordinamento] [int] NULL,
	[Descrizione breve] [varchar](255) NULL,
	[Descrizione estesa] [varchar](255) NULL,
	[HexColor] [varchar](255) NULL,
	[Red] [smallint] NULL,
	[Green] [smallint] NULL,
	[Blue] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_COLORI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_COLORI] ON [C6Storico].[COLORI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[CONTRATTOSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[CONTRATTOSEI](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[Data_Sott] [datetime] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Data_Perf_Base] [datetime] NULL,
	[Data_Perf] [datetime] NULL,
	[Fascia_CPP] [varchar](5) NULL,
	[Email] [varchar](50) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Prov] [varchar](2) NULL,
	[Nazione] [varchar](35) NULL,
	[Presso] [varchar](50) NULL,
	[Data_Inizio] [datetime] NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_DiagnosiPrec] [varchar](1) NULL,
	[Freq_MonitorPrec] [varchar](1) NULL,
	[Data_InizioConsInv] [datetime] NULL,
	[Data_InizioBase] [datetime] NULL,
	[Data_FineBase] [datetime] NULL,
	[Data_InizioAvanzato] [datetime] NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[ProgressivoInvio] [varchar](8) NULL,
	[GenerazioneReport] [varchar](1) NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[DataUltimoInvio] [datetime] NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[NumSolleciti] [smallint] NULL,
	[Data_UltimoSollecito] [datetime] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_UltimaRevoca] [datetime] NULL,
	[Note] [varchar](1024) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_CONTRATTOSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_CONTRATTOSEI] ON [C6Storico].[CONTRATTOSEI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[DATI_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[DATI_REPORT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INDIRIZZO] [varchar](30) NULL,
	[LOCALITA] [varchar](30) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[FLAG_REPORT] [varchar](1) NULL,
	[REPORT_DIAGN] [varchar](1) NULL,
	[REPORT_MONIT] [varchar](1) NULL,
	[DATA_REPORT] [datetime] NULL,
	[REPORT_FREQ] [varchar](1) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_DATI_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_DATI_REPORT] ON [C6Storico].[DATI_REPORT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[DETTAGLIO_ASUL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NULL,
	[CTV] [decimal](15, 3) NULL,
	[DATA_RIF] [datetime] NULL,
	[COD_ISIN_FITTIZIO] [varchar](16) NULL,
	[COD_ISIN_SOTT] [varchar](16) NULL,
	[COD_MAF_SOTT] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_DETTAGLIO_ASUL] ON [C6Storico].[DETTAGLIO_ASUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ELABORAZIONI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ELABORAZIONI](
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NOT NULL,
	[DATA_OPERAZIONE] [datetime] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ELABORAZIONI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ELABORAZIONI] ON [C6Storico].[ELABORAZIONI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ESITI_CARICAMENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ESITI_CARICAMENTI](
	[PROGR] [int] NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[ESITO] [varchar](2) NULL,
	[NOTE] [varchar](256) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ESITI_CARICAMENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ESITI_CARICAMENTI] ON [C6Storico].[ESITI_CARICAMENTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[GER_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[GER_PROMOTORI](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[ID_MANAGER] [varchar](6) NULL,
	[SUBORDINATI] [varchar](10) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_GER_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_GER_PROMOTORI] ON [C6Storico].[GER_PROMOTORI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[GESTIONE_EMAIL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[GESTIONE_EMAIL](
	[Email_Id] [int] NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_GESTIONE_EMAIL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_GESTIONE_EMAIL] ON [C6Storico].[GESTIONE_EMAIL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[GESTIONE_PDF_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[GESTIONE_PDF_FTP](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[ID_ELAB] [int] NOT NULL,
	[numeropagine] [int] NULL,
	[id_Fk_zip] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_GESTIONE_PDF_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_GESTIONE_PDF_FTP] ON [C6Storico].[GESTIONE_PDF_FTP]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[GESTIONE_ZIP_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[GESTIONE_ZIP_FTP](
	[id] [int] NOT NULL,
	[nomefile] [varchar](255) NOT NULL,
	[dataInvio] [datetime] NULL,
	[flagInvio] [varchar](1) NOT NULL,
	[nomeCartella] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_GESTIONE_ZIP_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_GESTIONE_ZIP_FTP] ON [C6Storico].[GESTIONE_ZIP_FTP]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[GLOBAL_ERROR](
	[ID] [int] NOT NULL,
	[Cancel] [bit] NULL,
	[ErrorCode] [int] NULL,
	[ErrorDescription] [text] NULL,
	[EventHandlerStartTime] [datetime] NULL,
	[LocaleID] [int] NULL,
	[Propagate] [bit] NULL,
	[SourceDescription] [text] NULL,
	[SourceID] [varchar](50) NULL,
	[SourceName] [varchar](50) NULL,
	[Time] [datetime] NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICO] TEXTIMAGE_ON [STORICO]
GO
/****** Object:  Index [IX_GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_GLOBAL_ERROR] ON [C6Storico].[GLOBAL_ERROR]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[MIFID](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COMPILAZIONE] [varchar](1) NULL,
	[PROFILO_ASS] [smallint] NULL,
	[PROFILO_CALC] [smallint] NULL,
	[DATA_INIZIO_VAL] [datetime] NULL,
	[DATA_FINE_VAL] [datetime] NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_MIFID_1]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_MIFID_1] ON [C6Storico].[MIFID]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PARTITE_VIAGGIANTI](
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[IMPORTO] [decimal](18, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6Storico].[PATRIMONIO_AGG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PATRIMONIO_AGG](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[LIQUIDATO] [decimal](15, 3) NULL,
	[INVESTITO] [decimal](15, 3) NULL,
	[ID_AREA] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PATRIMONIO_AGG]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_AGG] ON [C6Storico].[PATRIMONIO_AGG]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PATRIMONIO_ALTRO](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[QUANTITA] [int] NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[CTV] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_ALTRO] ON [C6Storico].[PATRIMONIO_ALTRO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PATRIMONIO_BF](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_BF] ON [C6Storico].[PATRIMONIO_BF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PATRIMONIO_IMMOBILIARE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](100) NULL,
	[TIPOLOGIA] [varchar](100) NULL,
	[LOCALITA] [varchar](60) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[AFFITTO] [decimal](15, 3) NULL,
	[NOTE] [varchar](256) NULL,
	[DIV_RIFERIMENTO] [varchar](20) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_IMMOBILIARE] ON [C6Storico].[PATRIMONIO_IMMOBILIARE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PATRIMONIO_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[TIPO_POLIZZA] [varchar](30) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO2] [varchar](50) NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[FREQ_RATA] [varchar](50) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[DATA_SOTT_FP] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [int] NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[DESCR_GRUPPO_PRODOTTO] [varchar](50) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_TERZI] ON [C6Storico].[PATRIMONIO_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PIRAMIDE_MOD](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[TIPO_PROGETTO] [varchar](64) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CTV_PROGETTO] [decimal](15, 3) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ORIZZ_TEMP] [varchar](20) NULL,
	[CTV_TOTALE] [decimal](15, 3) NULL,
	[STATO_CONSULENZA] [varchar](30) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PIRAMIDE_MOD] ON [C6Storico].[PIRAMIDE_MOD]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PIRAMIDE_VERT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PIRAMIDE_VERT] ON [C6Storico].[PIRAMIDE_VERT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[PREVIDENZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[PREVIDENZIALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ANNO_PENSIONE] [varchar](4) NULL,
	[ETA_PENSIONE] [int] NULL,
	[TOT_CONSUMI_ATTESI] [decimal](15, 3) NULL,
	[TOT_REDDITO_ANNUO] [decimal](15, 3) NULL,
	[REDDITO_CONSUMI_ESS] [decimal](15, 3) NULL,
	[PENSIONE_ATTESA_] [decimal](15, 3) NULL,
	[RENDITA_PREV_COMPL] [decimal](15, 3) NULL,
	[RENDITA_ASS] [decimal](15, 3) NULL,
	[REDDITO_CONSUMI_SEC] [decimal](15, 3) NULL,
	[RENDITA_ASS_TRAD] [decimal](15, 3) NULL,
	[RENDITA_ASS_UNIT] [decimal](15, 3) NULL,
	[RENDITA_IMMOB] [decimal](15, 3) NULL,
	[ALTRE_RENDITE] [decimal](15, 3) NULL,
	[DIV_RIFERIMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_PREVIDENZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PREVIDENZIALE] ON [C6Storico].[PREVIDENZIALE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[RISCHIO_AGGREGATO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_RISCHIO_AGGREGATO] ON [C6Storico].[RISCHIO_AGGREGATO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[RISCHIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[RISCHIO_DETTAGLIO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](256) NULL,
	[CHIAVE_PRODOTTO] [varchar](128) NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[TIPO_COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[DIV_CONTRATT] [varchar](30) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_RISCHIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_RISCHIO_DETTAGLIO] ON [C6Storico].[RISCHIO_DETTAGLIO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ACBDENOTH]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ACBDENOTH](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[BDPERCENTAGE] [decimal](22, 20) NULL,
	[BDBETA] [decimal](22, 20) NULL,
	[F_OID__PASSE_CDF1A] [varchar](35) NULL,
	[F_PFINANCIAL_815C0] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ACBDENOTH]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ACBDENOTH] ON [C6Storico].[ST_ACBDENOTH]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ACBDENTRY]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ACBDENTRY](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[F_PINDEXBREA_08079] [varchar](35) NULL,
	[F_PINSTRUMEN_FBCDE] [varchar](35) NULL,
	[BDPERCENTAGE] [decimal](23, 20) NULL,
	[BDBETA] [decimal](23, 20) NULL,
	[F_OID__PASSE_B8A1E] [varchar](35) NULL,
	[F_PFINANCIAL_65EBB] [varchar](35) NULL,
	[F_PFINANCIAL_C2FD3] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ADBKRELAT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ADBKRELAT](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[TYPE__TYPE_CAB4A] [varchar](128) NULL,
	[ADBKRELDESCR] [varchar](128) NULL,
	[ADBKRELNOTE] [varchar](128) NULL,
	[DEPENDANT] [varchar](35) NULL,
	[PHONEDECIMAL] [varchar](20) NULL,
	[F_OID__ADBKR_CBA9A] [varchar](35) NULL,
	[F_PADDRESSBO_24DA1] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ADBKRELAT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ADBKRELAT] ON [C6Storico].[ST_ADBKRELAT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ADS4WS_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ADS4WS_PROMOTORI](
	[Rete] [varchar](1) NULL,
	[Codice] [varchar](6) NULL,
	[Cognome] [varchar](128) NULL,
	[Nome] [varchar](128) NULL,
	[Prefisso] [varchar](1) NULL,
	[Firma] [varchar](7) NULL,
	[DataInizioCollaborazione] [numeric](18, 0) NULL,
	[DataFineCollaborazione] [numeric](18, 0) NULL,
	[DataUltimaAggiornamento] [numeric](18, 0) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](50) NULL,
	[CittaNascita] [varchar](50) NULL,
	[DataNascita] [numeric](18, 0) NULL,
	[Indirizzo] [varchar](255) NULL,
	[Provincia] [varchar](2) NULL,
	[PrefissoTelefono] [varchar](20) NULL,
	[TelefonoAgenzia1] [varchar](20) NULL,
	[TelefonoAgenzia2] [varchar](20) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ADS4WS_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ADS4WS_PROMOTORI] ON [C6Storico].[ST_ADS4WS_PROMOTORI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_ASSET_CLASS_PER_PROMET]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_ASSET_CLASS_PER_PROMET](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_ASSET_CLASS_PER_PROMET]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_ASSET_CLASS_PER_PROMET] ON [C6Storico].[ST_ALL_ASSET_CLASS_PER_PROMET]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_CF_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_CF_PB](
	[ID_CLI] [varchar](35) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](138) NULL,
	[CHIAVE_PB] [varchar](35) NULL,
	[CHIAVE_CLIENTE] [varchar](35) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CODICE_PB] [varchar](128) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_CF_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_CF_PB] ON [C6Storico].[ST_ALL_CF_PB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_CF_STATO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_CF_STATO](
	[CF_CLIENTE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[TOTALE_RIGHE] [int] NULL,
	[TOTALE_STATI] [int] NULL,
	[FLAG_UTILIZZO_STATO] [int] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_CF_STATO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_CF_STATO] ON [C6Storico].[ST_ALL_CF_STATO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_CONSUL_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_CONSUL_ASUL](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[AREASORTORDER] [decimal](19, 0) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[CONTROVALORE] [decimal](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [decimal](18, 0) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CODICEINTERNO] [varchar](50) NULL,
	[SOTTOPRODOTTO] [varchar](50) NULL,
	[CONTROVALORE_ASUL] [decimal](18, 0) NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[CATEGORIA] [varchar](17) NULL,
	[NUOVO_OID_CAT_PER_ASSET] [varchar](40) NULL,
	[CATEGORIA_2] [varchar](63) NULL,
	[COLO_JOIN] [varchar](40) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_CONSUL_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_CONSUL_ASUL] ON [C6Storico].[ST_ALL_CONSUL_ASUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_PATR_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_PATR_TERZI](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](20) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](64) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [decimal](19, 3) NULL,
	[C_VALUE_582FF] [decimal](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [decimal](18, 0) NULL,
	[CAPITALE_INVESTITO] [decimal](19, 3) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](128) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [decimal](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NULL,
	[ASSETID] [varchar](64) NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATETIME_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [decimal](19, 3) NULL,
	[LOCALITA] [varchar](128) NULL,
	[AFFITTOPERCEPITO] [decimal](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [decimal](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [decimal](19, 3) NULL,
	[DENOMINAZIONE] [varchar](128) NULL,
	[NUMEROQUOTE] [decimal](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESC] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](128) NULL,
	[TIPOLOGIA_RDESCR] [varchar](128) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_PATR_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_PATR_TERZI] ON [C6Storico].[ST_ALL_PATR_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_PATRBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_PATRBF](
	[AGENTE] [varchar](20) NULL,
	[CODICEFISCALE] [varchar](20) NULL,
	[PATRIMONIO_BF_CON_CC] [decimal](19, 2) NULL,
	[PATRIMONIOBF_SENZA_CC] [decimal](19, 2) NULL,
	[PATRIMONIOBF_SOLO_CC] [decimal](19, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_PATRBF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_PATRBF] ON [C6Storico].[ST_ALL_PATRBF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_POS_CONS_CAT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_POS_CONS_CAT](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONSULENZA] [varchar](8) NULL,
	[PK_ALTERNATIVA_CONS] [varchar](64) NULL,
	[DATA_MIGRAZIONE_CONS] [datetime] NULL,
	[PK_AREA] [varchar](35) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[C_PERCENTAGE_86095] [decimal](19, 7) NULL,
	[PK_PRC_] [varchar](35) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[C_CTVNEEDARE_EA4FB] [decimal](19, 7) NULL,
	[C_PROJECTCTV_39520] [decimal](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [decimal](19, 7) NULL,
	[C_RISORSELIQ_DF807] [decimal](19, 7) NULL,
	[PERCENTUALE_MODELLO] [decimal](19, 0) NULL,
	[ID_MONITORAGGIO_] [varchar](12) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[C_PERCENTUAL_12346] [decimal](19, 7) NULL,
	[DATA_ORDINAMENTO_INV] [datetime] NULL,
	[CONTRATTO] [varchar](20) NULL,
	[CONTROVALORE_PER_INV] [decimal](19, 7) NULL,
	[C_INVESTIMEN_60625] [decimal](19, 7) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[C_OUTCTV_B4FB8] [decimal](19, 7) NULL,
	[CONTROVALORE] [decimal](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [decimal](18, 0) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CONTO] [varchar](20) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[NUMPOL] [varchar](20) NULL,
	[TERMID] [varchar](7) NULL,
	[ANNO] [varchar](3) NULL,
	[PROG] [varchar](5) NULL,
	[NOME_PRODOTTO] [varchar](512) NULL,
	[NEED_AREA_ABBREVIATA_DI_POS] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_POS] [varchar](512) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[COD_ADEGUATEZZA] [varchar](20) NULL,
	[ALBERATURA] [varchar](45) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[ISNEGOTIABLE] [decimal](1, 0) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[AREASORTORDER] [decimal](19, 0) NULL,
	[ORIGINE_FILE_CATALOGO] [varchar](1) NULL,
	[FLAG_PRESENZA_MAPPATURA] [varchar](2) NULL,
	[RAGGRUPPAMEN_NOME_PROGET] [varchar](64) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_POS_CONS_CAT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_POS_CONS_CAT] ON [C6Storico].[ST_ALL_POS_CONS_CAT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ALL_PROPOSTA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ALL_PROPOSTA](
	[AGENTE] [varchar](138) NULL,
	[RETE] [varchar](10) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[CHIAVE_PROPOSTA] [varchar](35) NULL,
	[NOME_PROPOSTA] [varchar](128) NULL,
	[STATO_PROPOSTA] [varchar](256) NULL,
	[DATA_CREAZIONE_PROPOSTA] [datetime] NULL,
	[DATA_SCADENZA_PROPOSTA] [datetime] NULL,
	[NEED_BREVE] [varchar](512) NULL,
	[NEED_ESTESA] [varchar](512) NULL,
	[ORDINE_NEED] [decimal](19, 0) NULL,
	[CONTROVALORE_TOT_PER_NEED] [decimal](19, 7) NULL,
	[PERC_PER_NEED] [decimal](5, 2) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CONTROV_CONSULENZA] [decimal](19, 7) NULL,
	[CONTROV_PROPOSTA] [decimal](18, 0) NULL,
	[CONTROV_DA_DEFINIRE_LIQ] [decimal](19, 7) NULL,
	[ISANEWPOSITION] [decimal](1, 0) NULL,
	[STRINGONA_CLONEPOS] [varchar](256) NULL,
	[NOME_PRODOTTO_CLONEPOS] [varchar](512) NULL,
	[INVESTI] [decimal](19, 7) NULL,
	[DISINVESTI] [decimal](19, 7) NULL,
	[PTF_INIZ] [decimal](19, 7) NULL,
	[CTVOPERAZIONE] [decimal](19, 7) NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[POLIZZADECIMAL] [varchar](20) NULL,
	[CONTO] [varchar](512) NULL,
	[RUBRICATO] [varchar](512) NULL,
	[PR_COD_ISIN] [varchar](20) NULL,
	[PR_COD_MAF] [varchar](20) NULL,
	[PR_COD_INTERNO] [varchar](20) NULL,
	[PR_COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[PR_COD_ADEGUATEZZA] [varchar](20) NULL,
	[NOME_PRODOTTO_CATALOGO] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CHIAVE_PER_LA_CONSULENZA] [varchar](35) NULL,
	[RICONCILIATA] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_PROGETTO] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_AREA] [decimal](1, 0) NULL,
	[FLAG_SALVATAGGIO_MANUALE] [decimal](1, 0) NULL,
	[RAGGRUPPAMENTO_PROGETTO] [varchar](64) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ALL_PROPOSTA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_PROPOSTA] ON [C6Storico].[ST_ALL_PROPOSTA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_ASSETCLASS](
	[VERSION_] [decimal](19, 0) NULL,
	[OID_] [varchar](35) NULL,
	[ASSETCLASSID] [varchar](20) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ASSETCLASSDESCR] [varchar](128) NULL,
	[ASSETCLASSLEV] [decimal](19, 0) NULL,
	[ORDINE] [smallint] NULL,
	[ISRESIDUAL] [decimal](1, 0) NULL,
	[F_PASSETCLAS_2FB94] [varchar](35) NULL,
	[F_OID__ASSET_B965C] [varchar](35) NULL,
	[CODICE_ISIN] [varchar](50) NULL,
	[CODICE_MAF] [varchar](50) NULL,
	[CODICE_ADEGUATEZZA] [varchar](50) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ASSETCLASS] ON [C6Storico].[ST_ASSETCLASS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_C_BO_453FB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_C_BO_453FB](
	[OID$] [varchar](35) NOT NULL,
	[C_VALUE_7BD3C] [decimal](19, 0) NULL,
	[C_DESCRIZION_93ABE] [varchar](128) NULL,
	[PK_PRC] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_C_BO_453FB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_C_BO_453FB] ON [C6Storico].[ST_C_BO_453FB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_CATINAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_CATINAREA](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [decimal](19, 0) NULL,
	[C_ISMAINNEED_9C780] [decimal](1, 0) NULL,
	[NEEDAREAVALUE] [varchar](10) NULL,
	[F_OID$_NEEDA_2C362] [varchar](35) NULL,
	[F_PCATALOGUE_5D024] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_CATINAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CATINAREA] ON [C6Storico].[ST_CATINAREA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_CATITEMREF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_CATITEMREF](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [decimal](19, 0) NULL,
	[PRODUCTCURRENCY] [varchar](3) NULL,
	[PRODUCTCOUNTRY] [varchar](35) NULL,
	[PRODUCTREGION] [varchar](35) NULL,
	[CATALOGUEID] [varchar](128) NOT NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TYPE$_BCATAL_FC317] [varchar](128) NULL,
	[CATEGORY] [varchar](20) NULL,
	[INSTITUTIONS] [varchar](20) NULL,
	[COUNTRY] [varchar](3) NULL,
	[PIAZZA] [varchar](30) NULL,
	[ULTIMOPRZCURR] [varchar](3) NULL,
	[ULTIMOPRZ] [decimal](19, 3) NULL,
	[CAPITALERISPARMIO] [varchar](10) NULL,
	[LMINCAPCONTRCURR] [varchar](3) NULL,
	[LMINCAPCONTR] [decimal](19, 3) NULL,
	[LSUCCAPCONTRCURR] [varchar](3) NULL,
	[LSUCCAPCONTR] [decimal](19, 3) NULL,
	[LMINRISPCONTRCURR] [varchar](3) NULL,
	[LMINRISPCONTR] [decimal](19, 3) NULL,
	[LSUCRISPCONTRCURR] [varchar](3) NULL,
	[LSUCRISPCONTR] [decimal](19, 3) NULL,
	[LMINCOMMCURR] [varchar](3) NULL,
	[LMINCOMM] [decimal](19, 3) NULL,
	[DELEGAGESTIONALE] [varchar](128) NULL,
	[TIPOLOGIAPERPICK] [varchar](10) NULL,
	[EXPIRATIONDATE] [datetime] NULL,
	[RISKPRICE] [varchar](10) NULL,
	[FISCALREGIMENT] [varchar](10) NULL,
	[QUOTATO] [varchar](10) NULL,
	[CLASSEDIPREZZO] [varchar](10) NULL,
	[BONDRATING] [varchar](20) NULL,
	[BONDDURATION] [varchar](20) NULL,
	[TEMPMIN] [varchar](20) NULL,
	[TEMPMAX] [varchar](20) NULL,
	[PRIPRODCOM] [varchar](20) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[MACROACOBPERC] [decimal](19, 7) NULL,
	[MACROACALPERC] [decimal](19, 7) NULL,
	[MACROACAZPERC] [decimal](19, 7) NULL,
	[MACROACMNPERC] [decimal](19, 7) NULL,
	[LINEEFINACC] [varchar](128) NULL,
	[TIPOVERS] [varchar](35) NULL,
	[TIPOPOLIZRAM1] [varchar](35) NULL,
	[DURATACONTR] [varchar](20) NULL,
	[GARDEMO] [varchar](35) NULL,
	[RISKPRESSCAD] [varchar](35) NULL,
	[LIVFLUTDUR] [varchar](10) NULL,
	[OPZRENDVIT] [decimal](1, 0) NULL,
	[METAA] [varchar](20) NULL,
	[METAB] [varchar](20) NULL,
	[METAC] [varchar](20) NULL,
	[RATOBBLIG] [varchar](20) NULL,
	[ULTIMOPREZZOCURR] [varchar](3) NULL,
	[ULTIMOPREZZO] [decimal](19, 3) NULL,
	[DATARIFPREZZO] [datetime] NULL,
	[CODICEADB] [varchar](20) NULL,
	[AGGIORNFEED] [varchar](20) NULL,
	[DISTRPROV] [varchar](20) NULL,
	[CODTIPOCONTR] [varchar](20) NULL,
	[ULTPRZSECCURR] [varchar](3) NULL,
	[ULTPRZSEC] [decimal](19, 3) NULL,
	[DATAULTPRZSEC] [datetime] NULL,
	[CODBLOOMBERG] [varchar](20) NULL,
	[DENOMUNITLNK] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[GENERICDATA] [datetime] NULL,
	[GENERICCURCURR] [varchar](3) NULL,
	[GENERICCUR] [decimal](19, 3) NULL,
	[GENERICSTRING1] [varchar](20) NULL,
	[GENERICSTRING2] [varchar](20) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[PRODUCTSTATUS] [varchar](35) NULL,
	[ISVISIBLE] [decimal](1, 0) NULL,
	[ISNEGOTIABLE] [decimal](1, 0) NULL,
	[BRIEFDESCRIPTION] [varchar](20) NULL,
	[F_OID$_VAR_CDDF8] [varchar](35) NULL,
	[RISKPROFOFSUITCLS] [varchar](20) NULL,
	[OPINION] [varchar](35) NULL,
	[OPINIONDATE] [datetime] NULL,
	[F_OID$_CATAL_B3E14] [varchar](35) NULL,
	[F_OID$_PCATE_F3BF6] [varchar](35) NULL,
	[F_OID$_MAINA_76C35] [varchar](35) NULL,
	[F_OID$_INSTR_B5526] [varchar](35) NULL,
	[F_OID$_MAINS_5FCE5] [varchar](35) NULL,
	[F_OID$_MAINR_08A23] [varchar](35) NULL,
	[F_OID$_PRISK_AAC57] [varchar](35) NULL,
	[F_OID$_PRODU_F8FBB] [varchar](35) NULL,
	[F_OID$_MARKE_F3D2D] [varchar](35) NULL,
	[COLL_SKANDIA] [decimal](19, 0) NULL,
	[CODASSETSAT] [varchar](20) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_CATITEMREF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CATITEMREF] ON [C6Storico].[ST_CATITEMREF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_COMPTYPE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_COMPTYPE](
	[OID_] [varchar](35) NULL,
	[TYPE_] [varchar](30) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_COMPTYPE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_COMPTYPE] ON [C6Storico].[ST_COMPTYPE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_CONO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_CONO](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [decimal](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [decimal](19, 7) NULL,
	[F_PPROJECT_P_46507] [varchar](35) NULL,
	[C_QUANTILE50_C47E0] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_CONO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CONO] ON [C6Storico].[ST_CONO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_CONSAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_CONSAREA](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_7FBE3] [varchar](35) NULL,
	[C_CONSULENZA_A58F3] [varchar](64) NULL,
	[C_CONSULENZA_E94E3] [varchar](64) NULL,
	[C_NEEDAREA_V_46360] [varchar](512) NULL,
	[C_NEEDAREA_D_911D8] [varchar](512) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_OUTCTV_A27B5] [numeric](19, 7) NULL,
	[C_PATRIMONIO_F4B8E] [numeric](19, 7) NULL,
	[C_INVESTIMEN_AC24C] [numeric](19, 7) NULL,
	[C_CONSULENZA_0C219] [numeric](1, 0) NULL,
	[C_CONSULENZA_1C9D3] [numeric](1, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_CONSAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CONSAREA] ON [C6Storico].[ST_CONSAREA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_CONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_CONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_CONSULENZA_EBDBE] [varchar](64) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_TIPOCO_1EA7C] [varchar](256) NULL,
	[C_CONTROVALO_C57EE] [numeric](19, 7) NULL,
	[C_PATRIMONIO_0BF30] [numeric](19, 7) NULL,
	[C_ALTROPATRI_E90EF] [numeric](19, 7) NULL,
	[C_ALTRO_5AD86] [numeric](19, 7) NULL,
	[C_DATAINIZIO_35C15] [datetime] NULL,
	[C_RISORSENON_A04BD] [numeric](19, 7) NULL,
	[C_INVESTIMEN_C4514] [numeric](19, 7) NULL,
	[C_INVESTIMEN_36DE3] [numeric](19, 7) NULL,
	[C_IDQUESTION_5549B] [varchar](512) NULL,
	[C_DATAQUESTI_5069A] [datetime] NULL,
	[C_VARCONSOB_28C92] [numeric](19, 7) NULL,
	[C_VALORIALLI_0CA23] [numeric](1, 0) NULL,
	[C_DATAPIRAMI_661DA] [datetime] NULL,
	[C_DATACONSVE_D3DE3] [datetime] NULL,
	[C_DATACONSOR_EA88E] [datetime] NULL,
	[C_PROFILOCON_81F5D] [numeric](19, 0) NULL,
	[C_DATAMIGRAZ_BF705] [datetime] NULL,
	[C_SALVADANAI_B156A] [numeric](19, 7) NULL,
	[C_CONSULENZA_2C1E1] [numeric](1, 0) NULL,
	[C_DATACONSVE_66B66] [datetime] NULL,
	[C_DATACAMBIO_79509] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_CONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CONSUL] ON [C6Storico].[ST_CONSUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_INDREND]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_INDREND](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[C_VAR_A94EA] [decimal](19, 7) NULL,
	[C_TEMPOINVES_CE300] [decimal](19, 0) NULL,
	[C_COPERTURA_94818] [decimal](19, 7) NULL,
	[C_PERDITAMAX_F5B51] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_INDREND]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_INDREND] ON [C6Storico].[ST_INDREND]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_INSTRBDS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_INSTRBDS](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[BDISIN] [varchar](20) NULL,
	[BDMAF] [varchar](20) NULL,
	[F_OID__PCATA_5DDA6] [varchar](35) NULL,
	[PROVENIENZA] [varchar](50) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_INSTRBDS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_INSTRBDS] ON [C6Storico].[ST_INSTRBDS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_MACROASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_MACROASSETCLASS](
	[ASSETCLASSID] [varchar](128) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINE] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_MACROASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_MACROASSETCLASS] ON [C6Storico].[ST_MACROASSETCLASS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_NEEDAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_NEEDAREA](
	[OID_] [varchar](35) NOT NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[AREAID] [varchar](128) NOT NULL,
	[AREANAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_PNEEDAREA__742D7] [varchar](35) NULL,
	[AREASORTORDER] [decimal](19, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_NEEDAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_NEEDAREA] ON [C6Storico].[ST_NEEDAREA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_OTHINTRST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_OTHINTRST](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[INTERESTDESC] [varchar](128) NULL,
	[INTERESTCUR] [varchar](3) NULL,
	[INTERESTAMT] [decimal](19, 3) NULL,
	[F_PQUANTIFIC_76FF6] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_OTHINTRST]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_OTHINTRST] ON [C6Storico].[ST_OTHINTRST]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_PORTMOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_PORTMOD](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[F_PPROJECT_P_EE748] [varchar](35) NULL,
	[C_ASSET_CD02D] [varchar](20) NULL,
	[C_PERCENTUAL_143B7] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_PORTMOD]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PORTMOD] ON [C6Storico].[ST_PORTMOD]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_POSITION]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_POSITION](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[F_PCONSULENZ_56F23] [varchar](35) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CONSULENZAID] [varchar](64) NULL,
	[TYPE__CATALO_35E2A] [varchar](256) NULL,
	[POSITIONNAME] [varchar](512) NULL,
	[CONTROVALORE] [decimal](19, 7) NULL,
	[C_OUTCTV_B4FB8] [decimal](19, 7) NULL,
	[C_NEEDAREASE_3D485] [varchar](512) NULL,
	[C_NEEDAREASE_30873] [varchar](512) NULL,
	[CATALOGUEITEMID] [varchar](128) NULL,
	[F_OID__POSIT_00526] [varchar](35) NULL,
	[F_PPROJECT_P_B5629] [varchar](35) NULL,
	[CTVINIZIALE] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_POSITION]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_POSITION] ON [C6Storico].[ST_POSITION]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_PRCONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_PRCONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_B69E4] [varchar](35) NULL,
	[C_PROJECTID_9894C] [varchar](64) NULL,
	[C_CONSULENZA_CB331] [varchar](64) NULL,
	[C_CONSULENZA_A7FC6] [varchar](64) NULL,
	[NEEDAREAID] [varchar](128) NULL,
	[TYPE$_PROJEC_14674] [varchar](256) NULL,
	[C_PROJECTNAM_11D1A] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_CREATIONDA_732BD] [datetime] NULL,
	[C_LASTMODIFI_3BF4A] [datetime] NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[F_OID$_FREQU_A5FAB] [varchar](35) NULL,
	[C_IMPORTOPER_7A987] [numeric](19, 7) NULL,
	[F_OID$_RISKP_9CF4A] [varchar](35) NULL,
	[F_OID$_ORIZZ_4A868] [varchar](35) NULL,
	[C_PERDITAAVV_D414B] [numeric](19, 7) NULL,
	[C_PERDITAMAX_55078] [numeric](19, 7) NULL,
	[C_GUADAGNOAV_2BD07] [numeric](19, 7) NULL,
	[C_GUADAGNOMA_D14C4] [numeric](19, 7) NULL,
	[C_RISERVENON_CCD2D] [numeric](1, 0) NULL,
	[C_RISERVEMON_5E189] [numeric](1, 0) NULL,
	[C_RISERVEOBB_121FA] [numeric](1, 0) NULL,
	[C_RISERVEAZI_175C0] [numeric](1, 0) NULL,
	[C_CONSULENZA_ACEEE] [numeric](1, 0) NULL,
	[C_PROJECTIDM_1AF31] [varchar](12) NULL,
	[C_PROJECTIDR_51E22] [varchar](64) NULL,
	[C_DATAULTIMO_FFA71] [datetime] NULL,
	[C_PERDITAMAX_BEABF] [numeric](1, 0) NULL,
	[C_PERDITAMAX_AAB4C] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_43151] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_0F76F] [numeric](1, 0) NULL,
	[F_OID$_PROJE_CD4BB] [varchar](35) NULL,
	[C_NOTE_B4B97] [varchar](100) NULL,
	[C_PERCENTUAL_69019] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[F_OID$_RISKS_A3B54] [varchar](35) NULL,
	[C_ORDERTIMES_80019] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_PRCONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PRCONSUL] ON [C6Storico].[ST_PRCONSUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_PROMETEIA_AGGR](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](255) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](255) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](255) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](255) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](255) NOT NULL,
	[McVar] [varchar](255) NOT NULL,
	[McVarP] [varchar](255) NOT NULL,
	[Beneficio] [varchar](255) NOT NULL,
	[Copertura] [varchar](255) NOT NULL,
	[Totale] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PROMETEIA_AGGR] ON [C6Storico].[ST_PROMETEIA_AGGR]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_PROMETEIA_DETT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_PROMETEIA_DETT](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[CodiceProdotto] [varchar](20) NOT NULL,
	[Piazza] [varchar](50) NULL,
	[CodVal] [varchar](50) NULL,
	[Classe] [varchar](50) NULL,
	[VarAssoluto] [varchar](255) NOT NULL,
	[VaRPercentuale] [varchar](255) NOT NULL,
	[CVarAssoluto] [varchar](255) NOT NULL,
	[CVarPercentuale] [varchar](255) NOT NULL,
	[RiskSize] [varchar](255) NOT NULL,
	[McVar] [varchar](255) NOT NULL,
	[McVarP] [varchar](255) NOT NULL,
	[TipoCopertura] [varchar](255) NOT NULL,
	[CtvNominale] [varchar](255) NOT NULL,
	[CtvReale] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_PROMETEIA_DETT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PROMETEIA_DETT] ON [C6Storico].[ST_PROMETEIA_DETT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_QUANTIF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_QUANTIF](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[UPDATETIMEDATETIME] [datetime] NULL,
	[EXPNEEDSCUR] [varchar](3) NULL,
	[EXPNEEDSAMT] [decimal](19, 3) NULL,
	[GROSSINPRIMCUR] [varchar](3) NULL,
	[GROSSINPRIMAMT] [decimal](19, 3) NULL,
	[GROSSINSECCUR] [varchar](3) NULL,
	[GROSSINSECAMT] [decimal](19, 3) NULL,
	[RETIREMENTYEARS] [decimal](19, 0) NULL,
	[STATEPENSIONAMT] [decimal](19, 3) NULL,
	[PRIVATEPENSIONCUR] [varchar](3) NULL,
	[PRIVATEPENSIONAMT] [decimal](19, 3) NULL,
	[LIFEINTERESTCUR] [varchar](3) NULL,
	[LIFEINTERESTAMT] [decimal](19, 3) NULL,
	[C_FINANCIALI_8D659] [decimal](19, 0) NULL,
	[C_FINANCIALI_91C75] [decimal](19, 7) NULL,
	[INSINTERESTCUR] [varchar](3) NULL,
	[STATEPENSIONCUR] [varchar](3) NULL,
	[INSINTERESTAMT] [decimal](19, 3) NULL,
	[INVINTERESTCUR] [varchar](3) NULL,
	[INVINTERESTAMT] [decimal](19, 3) NULL,
	[REINTERESTCUR] [varchar](3) NULL,
	[REINTERESTAMT] [decimal](19, 3) NULL,
	[PRIMARYGAPCUR] [varchar](3) NULL,
	[PRIMARYGAPAMT] [decimal](19, 3) NULL,
	[SECONDARYGAPCUR] [varchar](3) NULL,
	[SECONDARYGAPAMT] [decimal](19, 3) NULL,
	[TOCONSUMPTIONETM] [decimal](1, 0) NULL,
	[TOINTERESTETM] [decimal](1, 0) NULL,
	[LOCKPERCFRSTBRNC] [decimal](1, 0) NULL,
	[PRFCONSUMPTIONS] [decimal](19, 7) NULL,
	[PRFGROSSAMOUNT] [decimal](19, 7) NULL,
	[PRFPERCFRSTBRNC] [decimal](19, 7) NULL,
	[PRFADDRETIREMENT] [decimal](19, 7) NULL,
	[PRFLIFEINTEREST] [decimal](19, 7) NULL,
	[PRFINTERFRSTBRNC] [decimal](19, 7) NULL,
	[PRFINTERUNIT] [decimal](19, 7) NULL,
	[F_OID__ADDRE_81D21] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_QUANTIF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_QUANTIF] ON [C6Storico].[ST_QUANTIF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_S25_CLI_CLIENTE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_S25_CLI_CLIENTE](
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[DATANASCITA] [varchar](10) NULL,
	[ETA] [numeric](38, 0) NULL,
	[PROFESSIONE] [varchar](128) NULL,
	[NUMEROCOMPONENTI] [numeric](38, 0) NULL,
	[NUMEROFIGLI] [numeric](38, 0) NULL,
	[STATO_CIVILE] [varchar](10) NULL,
	[INDIRIZZO] [varchar](396) NULL,
	[RETE] [char](1) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_S25_CLI_CLIENTE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_S25_CLI_CLIENTE] ON [C6Storico].[ST_S25_CLI_CLIENTE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_S4_S5_S13_TRAD_UNTIL_LIV3](
	[DESCRIZIONE_ORIGINALE] [varchar](100) NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [decimal](18, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_S4_S5_S13_TRAD_UNTIL_LIV3] ON [C6Storico].[ST_S4_S5_S13_TRAD_UNTIL_LIV3]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_ASS_UNIT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_ASS_UNIT](
	[CODICECONTRATTO] [varchar](11) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CONTROVALORE] [decimal](15, 3) NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[ISINFITTIZIO] [varchar](16) NULL,
	[CODICEISINSOTTOSTANTE] [varchar](16) NULL,
	[CODICEMAFSOTTOSTANTE] [varchar](13) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_ASS_UNIT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_ASS_UNIT] ON [C6Storico].[ST_SPB_ASS_UNIT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_CLIENTI](
	[CODICERETE] [varchar](20) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NULL,
	[NOME] [varchar](80) NULL,
	[COGNOME] [varchar](153) NULL,
	[DATADINASCITA] [datetime] NULL,
	[NAZIONEDINASCITA] [varchar](50) NULL,
	[COMUNEDINASCITA] [varchar](50) NULL,
	[SESSO] [varchar](1) NULL,
	[CITTADINANZA] [varchar](50) NULL,
	[TITOLODISTUDIOCODICE] [varchar](50) NULL,
	[TITOLODISTUDIODESCRIZIONE] [varchar](128) NULL,
	[TIPOCLIENTE] [varchar](50) NULL,
	[DATAATTIVAZIONECLIENTE] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_CLIENTI] ON [C6Storico].[ST_SPB_CLIENTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_CONTR_SINTESI](
	[POSITIONID] [varchar](123) NULL,
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[PIVAFIDUCIARIA] [varchar](11) NULL,
	[CODICECONTRATTO] [varchar](11) NULL,
	[NUMEROPOLIZZA] [varchar](11) NULL,
	[CONTO] [varchar](12) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTODIAGARANZIA] [varchar](1) NULL,
	[PCTTITOLOCOLLEGATO] [varchar](13) NULL,
	[TIPOPRODOTTO] [varchar](5) NULL,
	[CODICEINTERNO] [varchar](13) NULL,
	[CODICESOTTOPRODOTTO] [varchar](13) NULL,
	[CODICEMAF] [varchar](13) NULL,
	[PCTKEY] [varchar](71) NULL,
	[PCTDESCRIZIONTETITOLOCOLLEGATO] [varchar](53) NULL,
	[QUOTE] [decimal](15, 2) NULL,
	[PREZZO] [decimal](13, 5) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [datetime] NULL,
	[DATADIRIFERIMENTO] [datetime] NULL,
	[DATADISOTTOSCRIZIONE] [datetime] NULL,
	[DATAVALNAVAL] [datetime] NULL,
	[CODICESTATO] [varchar](1) NULL,
	[DATAINIZIORENDIMENTO] [datetime] NULL,
	[RENDIMENTODASOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[DATATRIMESTRERENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOTRIMESTRE] [decimal](8, 5) NULL,
	[DATAANNORENDIMENTO] [datetime] NULL,
	[RENDIMENTODAINIZIOANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[CVN] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_CONTR_SINTESI] ON [C6Storico].[ST_SPB_CONTR_SINTESI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_INDIRIZZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_INDIRIZZI](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](200) NULL,
	[TIPOINDIRIZZO] [varchar](50) NULL,
	[INDIRIZZO] [varchar](128) NULL,
	[CAP] [varchar](6) NULL,
	[CITTA] [varchar](50) NULL,
	[PROVINCIA] [varchar](50) NULL,
	[NAZIONE] [varchar](50) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_INDIRIZZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_INDIRIZZI] ON [C6Storico].[ST_SPB_INDIRIZZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_MIFID](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[ACCETTACOMPILAZIONE] [bit] NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEPROFILOCALCOLATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[CODICEAGENTERESPONSABILE] [varchar](7) NULL,
	[CODICEAGENTEREALE] [varchar](7) NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_MIFID] ON [C6Storico].[ST_SPB_MIFID]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_NAC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_NAC](
	[COGNOMENOME] [varchar](128) NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[RETE] [varchar](20) NULL,
	[CODICERETE] [varchar](1) NULL,
	[CODICEMANAGER] [varchar](7) NULL,
	[LIVELLONELLAGERARCHIA] [varchar](20) NULL,
	[SUBORDINATI] [bit] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_NAC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_NAC] ON [C6Storico].[ST_SPB_NAC]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_PARTITE_VIAGG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_PARTITE_VIAGG](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[CODICECONFERIMENTO] [varchar](11) NULL,
	[DESCRPRODOTTO] [varchar](128) NULL,
	[IMPORTOVERSATO] [decimal](15, 3) NULL,
	[DATAACQUISIZIONE] [datetime] NULL,
	[DATAINCASSO] [datetime] NULL,
	[DATAVALUTAFONDO] [datetime] NULL,
	[NOTA] [varchar](256) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_PARTITE_VIAGG]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_PARTITE_VIAGG] ON [C6Storico].[ST_SPB_PARTITE_VIAGG]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_SPB_PROF_RISCHIO](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_PROF_RISCHIO] ON [C6Storico].[ST_SPB_PROF_RISCHIO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ](
	[CODICE_FISCALE] [varchar](16) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_CONTRATTO] [varchar](11) NULL,
	[STATO_CONTRATTO_SEI] [varchar](6) NULL,
	[DATA_SOTTOSCRIZIONE_C6] [datetime] NULL,
	[DATA_CHIUSURA_C6] [datetime] NULL,
	[FLAG_CLIENTE_MIGRATO] [varchar](2) NULL,
	[DATA_ULTIMA_MIGRAZIONE] [datetime] NULL,
	[PIVA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ] ON [C6Storico].[ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_VARIAZIONE_CONTRSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_VARIAZIONE_CONTRSEI](
	[CODICE_CONTRATTO] [varchar](11) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[RETE_PB] [varchar](1) NULL,
	[PB] [varchar](6) NULL,
	[DATA_PERFEZIONAMENTO_BASE] [datetime] NULL,
	[DATA_SOTTOSCRIZIONE_BASE] [datetime] NULL,
	[DATA_CHIUSURA_BASE] [datetime] NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](25) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](25) NULL,
	[PRESSO] [varchar](32) NULL,
	[CPP] [varchar](4) NULL,
	[FLAG_STAMPA_REPORT] [varchar](1) NULL,
	[FLAG_EMISSIONE_FATTURA] [varchar](1) NULL,
	[EMAIL] [varchar](50) NULL,
	[FREQUENZA_DIAGNOSI] [varchar](1) NULL,
	[FREQUENZA_MONITORAGGIO] [varchar](1) NULL,
	[DATA_PERFEZIONAMENTO_C6] [datetime] NULL,
	[DATA_SOTTOSCRIZIONE_C6] [datetime] NULL,
	[DATA_CHIUSURA_C6] [datetime] NULL,
	[ORDINE_DI_ELABORAZIONE_RIGA] [float] NULL,
	[ULTIMO_PROGRESSIVO_INVIO] [float] NULL,
	[ULTIMA_DATA_INVIO] [datetime] NULL,
	[ULTIMA_DATA_ELABORAZIONE] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_VARIAZIONE_CONTRSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_VARIAZIONE_CONTRSEI] ON [C6Storico].[ST_VARIAZIONE_CONTRSEI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_WANAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_WANAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_WANAB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WANAB] ON [C6Storico].[ST_WANAB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_WRENAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_WRENAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_WRENAB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WRENAB] ON [C6Storico].[ST_WRENAB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[ST_WSCABP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[ST_WSCABP](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_ST_WSCABP]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WSCABP] ON [C6Storico].[ST_WSCABP]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[STRUTTURA_RETE](
	[Rete] [varchar](1) NOT NULL,
	[PB] [varchar](6) NOT NULL,
	[CognomeNomePB] [varchar](64) NOT NULL,
	[SPV] [varchar](6) NOT NULL,
	[CognomeNomeSPV] [varchar](64) NOT NULL,
	[RM] [varchar](6) NOT NULL,
	[CognomeNomeRM] [varchar](64) NOT NULL,
	[DM] [varchar](6) NOT NULL,
	[CognomeNomeDM] [varchar](64) NOT NULL,
	[AM] [varchar](6) NOT NULL,
	[CognomeNomeAM] [varchar](64) NOT NULL,
	[Livello] [varchar](20) NOT NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICO]
GO
/****** Object:  Index [IX_STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_STRUTTURA_RETE] ON [C6Storico].[STRUTTURA_RETE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICO]
GO
/****** Object:  Table [C6Storico].[TESTO_LETTERA_ACCETTAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6Storico].[TESTO_LETTERA_ACCETTAZIONE](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2000) NOT NULL,
	[DESCRIZIONE] [varchar](300) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_CC](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](12) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDO] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CC] ON [C6StoricoPeriodico].[ANAG_CC]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_CC_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](50) NOT NULL,
	[COINTEST] [varchar](20) NULL,
	[COD_CC] [varchar](128) NOT NULL,
	[FASCIA_CPP] [varchar](5) NULL,
	[SALDO] [decimal](15, 3) NULL,
	[DATA_APERTURA] [datetime] NULL,
	[DATA_CHIUSURA] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CC_TERZI] ON [C6StoricoPeriodico].[ANAG_CC_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_CLIENTI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME] [varchar](50) NULL,
	[COGNOME] [varchar](50) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [varchar](20) NULL,
	[NUM_COMPONENTI] [smallint] NULL,
	[NUM_FIGLI] [smallint] NULL,
	[ETA] [smallint] NULL,
	[PARTITA_IVA] [varchar](20) NULL,
	[CITTADINANZA] [varchar](20) NULL,
	[PERSONA_FIS_GIUR] [varchar](20) NULL,
	[INDIRIZZO] [varchar](150) NULL,
	[LOCALITA] [varchar](100) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](50) NULL,
	[PRESSO] [varchar](32) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[STATO] [varchar](20) NULL,
	[RAG_SOC] [varchar](20) NULL,
	[SESSO] [varchar](1) NULL,
	[ID_PROMOTORE] [varchar](6) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CLIENTI] ON [C6StoricoPeriodico].[ANAG_CLIENTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_CLIENTI_PREV](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[STATO_LAVORATIVO] [varchar](20) NULL,
	[PROFESSIONE] [varchar](30) NULL,
	[CAT_PROFESSIONALE] [varchar](30) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[RETRIB_LORDA] [decimal](15, 3) NULL,
	[PROFESSIONE_SEC] [varchar](30) NULL,
	[CAT_PROFESSIONALE_SEC] [varchar](30) NULL,
	[DATA_INIZIO_SEC] [datetime] NULL,
	[DATA_FINE_SEC] [datetime] NULL,
	[RETRIB_LORDA_SEC] [decimal](15, 3) NULL,
	[PROFESSIONE_PREC] [varchar](30) NULL,
	[CAT_PROFESSIONALE_PREC] [varchar](30) NULL,
	[DATA_INIZIO_PREC] [datetime] NULL,
	[DATA_FINE_PREC] [datetime] NULL,
	[RETRIB_LORDA_PREC] [decimal](15, 3) NULL,
	[RICONGIUNZIONE] [varchar](100) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_CLIENTI_PREV] ON [C6StoricoPeriodico].[ANAG_CLIENTI_PREV]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_PRODOTTI](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_ISIN] [varchar](12) NOT NULL,
	[PAESE] [varchar](30) NULL,
	[ID_AREA] [varchar](50) NULL,
	[CAT_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[DESCR_PRODOTTO] [varchar](128) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[COD_MAF] [varchar](20) NULL,
	[RATING] [varchar](50) NULL,
	[COD_ADEGUATEZZA] [varchar](12) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NOT NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NOT NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_PRODOTTI] ON [C6StoricoPeriodico].[ANAG_PRODOTTI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_PRODOTTI_TERZI](
	[COD_PRODOTTO] [varchar](64) NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NULL,
	[NOME_PRODOTTO] [varchar](150) NULL,
	[ALBERO_PRODOTTI] [varchar](50) NULL,
	[COD_ISIN] [varchar](12) NULL,
	[DESCR_PRODOTTO] [varchar](50) NULL,
	[DIV_QUOTAZIONE] [varchar](3) NULL,
	[INTERMEDIARIO] [varchar](50) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[ID_EMITTENTE] [varchar](30) NULL,
	[MERCATO_CONTRATT] [varchar](30) NULL,
	[PAESE] [varchar](30) NULL,
	[RATING] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_PRODOTTI_TERZI] ON [C6StoricoPeriodico].[ANAG_PRODOTTI_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ANAG_PROMOTORI](
	[RETE] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [varchar](6) NOT NULL,
	[LIVELLO] [varchar](10) NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[PARTITA_IVA] [varchar](11) NULL,
	[COGNOME] [varchar](128) NULL,
	[NOME] [varchar](128) NULL,
	[RAG_SOC] [varchar](50) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[INDIRIZZO] [varchar](255) NULL,
	[LOCALITA] [varchar](50) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[TEL_RECAPITO] [varchar](20) NULL,
	[TEL_CELL] [varchar](20) NULL,
	[E_MAIL] [varchar](50) NULL,
	[COD_ABI] [varchar](5) NULL,
	[COD_CAB] [varchar](5) NULL,
	[COD_CIN] [varchar](1) NULL,
	[COD_CC] [varchar](12) NULL,
	[STATO] [varchar](20) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ANAG_PROMOTORI] ON [C6StoricoPeriodico].[ANAG_PROMOTORI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[AREA_BISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[AREA_BISOGNO](
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_AREA] [varchar](30) NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_AREA_BISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_AREA_BISOGNO] ON [C6StoricoPeriodico].[AREA_BISOGNO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ASSET_PERC](
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[COD_ISIN] [varchar](12) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[LIVELLO] [smallint] NULL,
	[PERC] [decimal](10, 7) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSET_PERC] ON [C6StoricoPeriodico].[ASSET_PERC]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ASSET_PERC_TERZI](
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[ID_ASSETCLASS] [varchar](50) NOT NULL,
	[LIVELLO] [smallint] NOT NULL,
	[NOME_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[PERC] [decimal](10, 7) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSET_PERC_TERZI] ON [C6StoricoPeriodico].[ASSET_PERC_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ASSETCLASS](
	[ID_ASSETCLASS] [varchar](20) NOT NULL,
	[DESCRIZIONE] [varchar](128) NULL,
	[LIVELLO] [smallint] NULL,
	[ORDINAMENTO] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSETCLASS] ON [C6StoricoPeriodico].[ASSETCLASS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ASSETCLASS_TERZI](
	[ID_ASSETCLASS] [varchar](8) NOT NULL,
	[COD_ISIN] [varchar](8) NULL,
	[COD_MAF] [varchar](8) NULL,
	[COD_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ASSETCLASS_TERZI] ON [C6StoricoPeriodico].[ASSETCLASS_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[CLIENTI_CON_RNA_ALTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[CLIENTI_CON_RNA_ALTO](
	[Rete] [varchar](1) NULL,
	[CodicePB] [varchar](6) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Percentuale] [numeric](19, 3) NULL,
	[DataCalcolo] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[CODICI_PROMOTORI_FITTIZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[CODICI_PROMOTORI_FITTIZI](
	[Rete] [varchar](1) NOT NULL,
	[CodiceDA] [varchar](6) NOT NULL,
	[CodiceA] [varchar](6) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_CODICI_PROMOTORI_FITTIZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_CODICI_PROMOTORI_FITTIZI] ON [C6StoricoPeriodico].[CODICI_PROMOTORI_FITTIZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[CODIFICA_RISCHIO](
	[PROFILO] [smallint] NOT NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[MIN_VAR] [decimal](5, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_CODIFICA_RISCHIO] ON [C6StoricoPeriodico].[CODIFICA_RISCHIO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[CONGELAMENTO_SEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[CONGELAMENTO_SEI](
	[DATA_CONGELAMENTO] [datetime] NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[CONO_PIANIFICAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[CONO_PIANIFICAZIONE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_CONO] [datetime] NOT NULL,
	[SCENARIO_PESSIMISTICO] [decimal](19, 7) NULL,
	[SCENARIO_MEDIO] [decimal](19, 7) NULL,
	[SCENARIO_OTTIMISTICO] [decimal](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_CONO_PIANIFICAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_CONO_PIANIFICAZIONE] ON [C6StoricoPeriodico].[CONO_PIANIFICAZIONE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[CONTRATTOSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[CONTRATTOSEI](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Data_Sott] [datetime] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Data_Perf_Base] [datetime] NULL,
	[Data_Perf] [datetime] NULL,
	[Fascia_CPP] [varchar](5) NULL,
	[Email] [varchar](50) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Prov] [varchar](2) NULL,
	[Nazione] [varchar](35) NULL,
	[Presso] [varchar](50) NULL,
	[Data_Inizio] [datetime] NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_DiagnosiPrec] [varchar](1) NULL,
	[Freq_MonitorPrec] [varchar](1) NULL,
	[Data_InizioConsInv] [datetime] NULL,
	[Data_InizioBase] [datetime] NULL,
	[Data_FineBase] [datetime] NULL,
	[Data_InizioAvanzato] [datetime] NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[ProgressivoInvio] [varchar](8) NULL,
	[GenerazioneReport] [varchar](1) NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[DataUltimoInvio] [datetime] NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[PartViaDisinv] [varchar](1) NULL,
	[NumSolleciti] [smallint] NULL,
	[Data_UltimoSollecito] [datetime] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_UltimaRevoca] [datetime] NULL,
	[Note] [varchar](1024) NULL,
	[Data_Invio_Diagnosi_Trimestrale] [datetime] NULL,
	[Data_Invio_Monitoraggio_Trimestrale] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[DATI_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[DATI_REPORT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INDIRIZZO] [varchar](30) NULL,
	[LOCALITA] [varchar](30) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[FLAG_REPORT] [varchar](1) NULL,
	[REPORT_DIAGN] [varchar](1) NULL,
	[REPORT_MONIT] [varchar](1) NULL,
	[DATA_REPORT] [datetime] NULL,
	[REPORT_FREQ] [varchar](1) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_DATI_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_DATI_REPORT] ON [C6StoricoPeriodico].[DATI_REPORT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[DETTAGLIO_ASUL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_INTERNO] [varchar](10) NULL,
	[CTV] [decimal](15, 3) NULL,
	[DATA_RIF] [datetime] NULL,
	[COD_ISIN_FITTIZIO] [varchar](16) NULL,
	[COD_ISIN_SOTT] [varchar](16) NULL,
	[COD_MAF_SOTT] [varchar](20) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_DETTAGLIO_ASUL] ON [C6StoricoPeriodico].[DETTAGLIO_ASUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ELABORAZIONI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ELABORAZIONI](
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NOT NULL,
	[DATA_OPERAZIONE] [datetime] NOT NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ELABORAZIONI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ELABORAZIONI] ON [C6StoricoPeriodico].[ELABORAZIONI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ELABORAZIONI_EMAIL_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ELABORAZIONI_EMAIL_RNA](
	[Data_Elaborazione] [datetime] NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[EMAIL_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[EMAIL_PB](
	[RETE] [varchar](1) NULL,
	[CODICE] [varchar](6) NULL,
	[PREFISSO] [varchar](1) NULL,
	[FIRMA] [varchar](7) NULL,
	[EMAIL] [varchar](50) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_EMAIL_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_EMAIL_PB] ON [C6StoricoPeriodico].[EMAIL_PB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[GESTIONE_EMAIL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[GESTIONE_EMAIL](
	[Email_Id] [int] NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[CodicePB] [varchar](6) NOT NULL,
	[SistemiOperativi] [varchar](1) NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[Data_Comunicazione_Host] [datetime] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[GESTIONE_PDF_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[GESTIONE_PDF_FTP](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeropagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[GLOBAL_ERROR](
	[ID] [int] NOT NULL,
	[Cancel] [bit] NULL,
	[ErrorCode] [int] NULL,
	[ErrorDescription] [text] NULL,
	[EventHandlerStartTime] [datetime] NULL,
	[LocaleID] [int] NULL,
	[Propagate] [bit] NULL,
	[SourceDescription] [text] NULL,
	[SourceID] [varchar](50) NULL,
	[SourceName] [varchar](50) NULL,
	[Time] [datetime] NULL,
	[ID_ELAB] [int] NOT NULL
) ON [STORICOPERIODICO] TEXTIMAGE_ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_GLOBAL_ERROR] ON [C6StoricoPeriodico].[GLOBAL_ERROR]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[MailAvvisoTrimestraleAiPB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MailAvvisoTrimestraleAiPB](
	[ID_ELAB] [int] NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](1) NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](1) NOT NULL,
	[E_Cc] [varchar](1) NOT NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](8000) NULL,
	[dtInserimento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MIFID](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[PROFILO_ASS] [smallint] NULL,
	[DATA_INIZIO_VAL] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[MONITORAGGIO_ATTUALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MONITORAGGIO_ATTUALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_ATTIVAZIONE] [datetime] NULL,
	[DATA_CTV] [datetime] NULL,
	[CTV_MONITORATO] [decimal](15, 2) NULL,
	[APPORTO_INIZIALE] [decimal](15, 2) NULL,
	[APPORTO_SUCCESSIVO] [decimal](15, 2) NULL,
	[LIQUIDAZIONI] [decimal](15, 2) NULL,
	[CEDOLE_DIVIDENDI] [decimal](15, 2) NULL,
	[MINUS_PLUSVALENZA] [decimal](15, 2) NULL,
	[RISORSE_ASSOCIATE] [decimal](15, 2) NULL,
	[RENDIMENTO_CUMULATO] [decimal](15, 2) NULL,
	[RENDIMENTO_ANNUALIZZATO] [decimal](15, 2) NULL,
	[ordinamento_progetto] [int] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[MONITORAGGIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MONITORAGGIO_DETTAGLIO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[DATA_ASSOCIAZIONE] [datetime] NULL,
	[VERSATO_NETTO_DA_ASSOC] [decimal](15, 2) NULL,
	[UTILE_PERDITA_DA_ASSOC] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_MONITORAGGIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_MONITORAGGIO_DETTAGLIO] ON [C6StoricoPeriodico].[MONITORAGGIO_DETTAGLIO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[MONITORAGGIO_INIZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MONITORAGGIO_INIZIALE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_FOTO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_MONITORAGGIO_INIZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_MONITORAGGIO_INIZIALE] ON [C6StoricoPeriodico].[MONITORAGGIO_INIZIALE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[MONITORAGGIO_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MONITORAGGIO_REPORT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DATA_INVIO] [datetime] NOT NULL,
	[CTV_TOTALE] [decimal](15, 2) NULL,
	[CTV_EXT] [decimal](15, 2) NULL,
	[CTV_INV] [decimal](15, 2) NULL,
	[CTV_RIS] [decimal](15, 2) NULL,
	[CTV_PRE] [decimal](15, 2) NULL,
	[CTV_LIQ] [decimal](15, 2) NULL,
	[CTV_CC] [decimal](15, 2) NULL,
	[CTV_NA] [decimal](15, 2) NULL,
	[PARTITA_VIAGGIANTE] [decimal](15, 2) NULL,
	[VAR_COMPLESSIVO] [decimal](15, 3) NULL,
	[VAR_COPERTURA] [decimal](15, 3) NULL,
	[PROFILO] [smallint] NULL,
	[VAR_MAX_PROFILO] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_MONITORAGGIO_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_MONITORAGGIO_REPORT] ON [C6StoricoPeriodico].[MONITORAGGIO_REPORT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[MONITORAGGIO_STORICO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[MONITORAGGIO_STORICO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[DATA_CTV] [datetime] NOT NULL,
	[CTV_MONITORATO] [decimal](15, 2) NULL,
	[RISORSE_ASSOCIATE] [decimal](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_MONITORAGGIO_STORICO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_MONITORAGGIO_STORICO] ON [C6StoricoPeriodico].[MONITORAGGIO_STORICO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PARTITE_VIAGGIANTI](
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[IMPORTO] [decimal](18, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PATRIMONIO_ALTRO](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[QUANTITA] [int] NULL,
	[DESCRIZIONE] [varchar](50) NULL,
	[CTV] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_ALTRO] ON [C6StoricoPeriodico].[PATRIMONIO_ALTRO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PATRIMONIO_BF](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_BF] ON [C6StoricoPeriodico].[PATRIMONIO_BF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PATRIMONIO_IMMOBILIARE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DESCRIZIONE] [varchar](100) NULL,
	[TIPOLOGIA] [varchar](100) NULL,
	[LOCALITA] [varchar](60) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[CAP] [varchar](5) NULL,
	[NAZIONE] [varchar](20) NULL,
	[VALORE_STIMATO] [decimal](15, 3) NULL,
	[AFFITTO] [decimal](15, 3) NULL,
	[NOTE] [varchar](256) NULL,
	[DIV_RIFERIMENTO] [varchar](20) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_IMMOBILIARE] ON [C6StoricoPeriodico].[PATRIMONIO_IMMOBILIARE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PATRIMONIO_TERZI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[TIPO_POLIZZA] [varchar](30) NULL,
	[TIPO_PRODOTTO] [varchar](50) NULL,
	[TIPO_PRODOTTO2] [varchar](50) NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[COD_PRODOTTO_TERZI] [varchar](35) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[FREQ_RATA] [varchar](50) NULL,
	[DURATA_POLIZZA] [smallint] NULL,
	[PREMIO] [decimal](15, 3) NULL,
	[ALIQUOTA] [decimal](5, 2) NULL,
	[DATA_SOTT_FP] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [int] NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[DIV_REGOLAMENTO] [varchar](3) NULL,
	[CAMBIO] [decimal](8, 3) NULL,
	[DESCR_GRUPPO_PRODOTTO] [varchar](50) NULL,
	[ID_ELAB] [int] NOT NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PATRIMONIO_TERZI] ON [C6StoricoPeriodico].[PATRIMONIO_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PIRAMIDE_MOD](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[TIPO_PROGETTO] [varchar](64) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CTV_PROGETTO] [decimal](15, 3) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ORIZZ_TEMP_NUM] [decimal](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](20) NULL,
	[CTV_TOTALE] [decimal](15, 3) NULL,
	[STATO_CONSULENZA] [varchar](30) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [varchar](11) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PIRAMIDE_MOD] ON [C6StoricoPeriodico].[PIRAMIDE_MOD]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[PIRAMIDE_VERT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[CTV_AREA] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_PIRAMIDE_VERT] ON [C6StoricoPeriodico].[PIRAMIDE_VERT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[RISCHIO_AGGREGATO](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_AGGREG] [varchar](255) NULL,
	[VAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[CVAR_ASSOLUTO_PTF] [decimal](12, 3) NULL,
	[CVAR_PERC_PTF] [decimal](12, 3) NULL,
	[MCVAR] [decimal](12, 3) NULL,
	[MCVARP] [decimal](12, 3) NULL,
	[BENEFICIO] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[CTV_AGGREG] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_RISCHIO_AGGREGATO] ON [C6StoricoPeriodico].[RISCHIO_AGGREGATO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ACBDENOTH]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ACBDENOTH](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[BDPERCENTAGE] [numeric](22, 20) NULL,
	[BDBETA] [numeric](22, 20) NULL,
	[F_OID$_PASSE_CDF1A] [varchar](35) NULL,
	[F_PFINANCIAL_815C0] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ACBDENOTH]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ACBDENOTH] ON [C6StoricoPeriodico].[ST_ACBDENOTH]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ACBDENTRY]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ACBDENTRY](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PINDEXBREA_08079] [varchar](35) NULL,
	[F_PINSTRUMEN_FBCDE] [varchar](35) NULL,
	[BDPERCENTAGE] [numeric](23, 20) NULL,
	[BDBETA] [numeric](23, 20) NULL,
	[F_OID$_PASSE_B8A1E] [varchar](35) NULL,
	[F_PFINANCIAL_65EBB] [varchar](35) NULL,
	[F_PFINANCIAL_C2FD3] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ADBKBASE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ADBKBASE](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_ADBKBASE_L_69013] [varchar](128) NULL,
	[TYPE$_ADBKST_AC419] [varchar](256) NULL,
	[C_CLIENTNAME_1A67C] [varchar](256) NULL,
	[C_CLIENTNAME_1E844] [varchar](256) NULL,
	[F_OID$_PERSO_06FCB] [varchar](35) NULL,
	[C_CLIENTNAME_8B1DB] [varchar](256) NULL,
	[C_CLIENTNAME_B4F69] [varchar](256) NULL,
	[C_CLIENTNAME_EA63A] [varchar](256) NULL,
	[C_ADBKBASE_D_C669E] [datetime] NULL,
	[C_ADBKBASE_L_1DD83] [varchar](256) NULL,
	[C_ADBKBASE_L_F8E21] [varchar](256) NULL,
	[C_ADBKBASE_L_2805C] [datetime] NULL,
	[C_ADBKBASE_T_C94F1] [varchar](16) NULL,
	[F_OID$_PROFI_98D05] [varchar](35) NULL,
	[F_OID$_TAXRE_4AC4C] [varchar](35) NULL,
	[C_CURRENCYSY_36ED7] [varchar](3) NULL,
	[F_OID$_REFER_66AC8] [varchar](35) NULL,
	[C_ADBKBASE_M_AE5A8] [numeric](19, 7) NULL,
	[C_ADBKBASE_A_36B89] [numeric](19, 7) NULL,
	[C_CURRENCYSY_0483B] [varchar](3) NULL,
	[C_VALUE_506AF] [numeric](19, 3) NULL,
	[F_OID$_SOURC_E66C5] [varchar](35) NULL,
	[F_OID$_QUALI_027C5] [varchar](35) NULL,
	[F_OID$_BLOCK_A4386] [varchar](35) NULL,
	[F_OID$_SOURC_3AA10] [varchar](35) NULL,
	[TYPE$_ADBKTY_20093] [varchar](256) NULL,
	[F_PCUSTOMGRO_9BC08] [varchar](35) NULL,
	[F_PENTITY_AD_29FE1] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ADBKBASE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ADBKBASE] ON [C6StoricoPeriodico].[ST_ADBKBASE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ADS4WS_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ADS4WS_PROMOTORI](
	[Rete] [varchar](1) NULL,
	[Codice] [varchar](6) NULL,
	[Cognome] [varchar](128) NULL,
	[Nome] [varchar](128) NULL,
	[Prefisso] [varchar](1) NULL,
	[Firma] [varchar](7) NULL,
	[DataInizioCollaborazione] [datetime] NULL,
	[DataFineCollaborazione] [datetime] NULL,
	[DataUltimaAggiornamento] [datetime] NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](50) NULL,
	[CittaNascita] [varchar](50) NULL,
	[DataNascita] [datetime] NULL,
	[Indirizzo] [varchar](255) NULL,
	[Provincia] [varchar](2) NULL,
	[Telefono] [varchar](20) NULL,
	[TelefonoAgenzia1] [varchar](20) NULL,
	[TelefonoAgenzia2] [varchar](20) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ADS4WS_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ADS4WS_PROMOTORI] ON [C6StoricoPeriodico].[ST_ADS4WS_PROMOTORI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_AGENTBASE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_AGENTBASE](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[AGENTBASEID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_AGENTT_4FF1A] [varchar](256) NULL,
	[AGENTBASESTATUS] [varchar](35) NULL,
	[CATEGORY] [varchar](35) NULL,
	[ROLE] [varchar](35) NULL,
	[COUNTRY] [varchar](128) NULL,
	[REGION] [varchar](128) NULL,
	[TAXPAYERID] [varchar](16) NULL,
	[C_AGENTNAME__D3943] [varchar](256) NULL,
	[C_AGENTNAME__B1EC3] [varchar](256) NULL,
	[F_OID$_PERSO_762E5] [varchar](35) NULL,
	[C_AGENTNAME__ABD50] [varchar](256) NULL,
	[C_AGENTNAME__7D056] [varchar](256) NULL,
	[C_AGENTNAME__722CD] [varchar](256) NULL,
	[LOGINID] [varchar](128) NULL,
	[ICEPATH] [varchar](256) NULL,
	[F_PAGENTBASE_7B96C] [varchar](35) NULL,
	[F_OID$_AGENT_DB156] [varchar](35) NULL,
	[F_PENTITY_AG_79C9C] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_AGENTBASE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_AGENTBASE] ON [C6StoricoPeriodico].[ST_AGENTBASE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_ASSET_CLASS_PER_PROMET]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_ASSET_CLASS_PER_PROMET](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ALL_ASSET_CLASS_PER_PROMET]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_ASSET_CLASS_PER_PROMET] ON [C6StoricoPeriodico].[ST_ALL_ASSET_CLASS_PER_PROMET]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_CF_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_CF_PB](
	[ID_CLI] [varchar](18) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](7) NULL,
	[CHIAVE_PB] [varchar](7) NULL,
	[CHIAVE_CLIENTE] [varchar](18) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_PB] [varchar](6) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](25) NULL,
	[CODICEFISCALE] [varchar](16) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ALL_CF_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_CF_PB] ON [C6StoricoPeriodico].[ST_ALL_CF_PB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_CF_STATO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_CF_STATO](
	[CF_CLIENTE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[TOTALE_RIGHE] [float] NULL,
	[TOTALE_STATI] [float] NULL,
	[FLAG_UTILIZZO_STATO] [float] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ALL_CF_STATO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_CF_STATO] ON [C6StoricoPeriodico].[ST_ALL_CF_STATO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_CONSUL_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_CONSUL_ASUL](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [float] NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CODICEINTERNO] [varchar](50) NULL,
	[SOTTOPRODOTTO] [varchar](50) NULL,
	[CONTROVALORE_ASUL] [float] NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[CATEGORIA] [varchar](17) NULL,
	[NUOVO_OID_CAT_PER_ASSET] [varchar](40) NULL,
	[CATEGORIA_2] [varchar](63) NULL,
	[COLO_JOIN] [varchar](40) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ALL_CONSUL_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_CONSUL_ASUL] ON [C6StoricoPeriodico].[ST_ALL_CONSUL_ASUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_PATR_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_PATR_TERZI](
	[CHIAVE_PER_CLIENTE] [varchar](35) NULL,
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE_PB] [varchar](10) NULL,
	[CAPITALE_INVESTITO] [numeric](19, 3) NULL,
	[CHIAVE_FNC] [varchar](35) NULL,
	[PRODOTTO_IN_CATALOGO] [varchar](128) NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[PREMIO_VERSAMENTO] [numeric](19, 3) NULL,
	[C_VALUE_582FF] [numeric](19, 3) NULL,
	[AMMONTARE_VERSAMENTO] [numeric](22, 1) NULL,
	[DESCRIZIONE_ALBERATURA] [varchar](256) NULL,
	[DATA_INIZIO_INV] [datetime] NULL,
	[PATRIMONIO_TERZI] [numeric](19, 3) NULL,
	[NOME_ISTITUTO] [varchar](128) NULL,
	[CHIAVE_THR] [varchar](35) NULL,
	[ASSETID] [varchar](64) NULL,
	[DESCRIZIONE_PRODOTTO] [varchar](256) NULL,
	[NOMEPRODOTTO] [varchar](128) NULL,
	[NOME_ISTITUTO_2] [varchar](128) NULL,
	[INTERMEDIARIO] [varchar](128) NULL,
	[DATA_SCADENZA] [datetime] NULL,
	[DATA2_UTILIZ_X_SOTTOSCRIZ] [datetime] NULL,
	[BALANCEDATE_DI_THR] [datetime] NULL,
	[CHIAVE_PR_31921] [varchar](35) NULL,
	[PATRIMONIO_IMMOBILIARE] [numeric](19, 3) NULL,
	[LOCALITA] [varchar](512) NULL,
	[AFFITTOPERCEPITO] [numeric](19, 3) NULL,
	[CHIAVE_F87B4] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PN_F87B4] [numeric](19, 3) NULL,
	[DENOMINAZIONE_PN_F87B4] [varchar](512) NULL,
	[ISCOVER] [varchar](35) NULL,
	[TIPO_ISCOVER] [varchar](256) NULL,
	[CHIAVE_E6F18] [varchar](35) NULL,
	[PATRIMONIO_ALTRO_PB_E6F18] [numeric](19, 3) NULL,
	[DENOMINAZIONE] [varchar](512) NULL,
	[NUMEROQUOTE] [numeric](19, 0) NULL,
	[COMPANYTYPE] [varchar](35) NULL,
	[CHIAVE_COMP] [varchar](35) NULL,
	[COMPANYNAME] [varchar](256) NULL,
	[CHIAVE_BT_49D5B] [varchar](35) NULL,
	[TIPO_BT_49D5B] [varchar](256) NULL,
	[CHIAVE_BT_55768] [varchar](35) NULL,
	[TIPO_BT_55768] [varchar](256) NULL,
	[CHIAVE_BT_B70F0] [varchar](35) NULL,
	[TIPO_BT_B70F0] [varchar](256) NULL,
	[CHIAVE_BT_6797A] [varchar](35) NULL,
	[TIPO_BT_6797A] [varchar](256) NULL,
	[TIPO_VERSAMENTO_BT_6797A] [varchar](256) NULL,
	[CHIAVE_BT_97BEE] [varchar](35) NULL,
	[TIPO_BT_97BEE] [varchar](256) NULL,
	[TIPO_POLIZZA_BT_97BEE] [varchar](256) NULL,
	[CHIAVE_RDESCR] [varchar](35) NULL,
	[TIPO_RDESCR] [varchar](256) NULL,
	[DESCRIZIONE_RDESCR] [varchar](12) NULL,
	[TIPOLOGIA_RDESCR] [varchar](256) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ALL_PATR_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_PATR_TERZI] ON [C6StoricoPeriodico].[ST_ALL_PATR_TERZI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_POS_CONS_CAT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_POS_CONS_CAT](
	[CODICE_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONSULENZA] [varchar](8) NULL,
	[PK_ALTERNATIVA_CONS] [varchar](64) NULL,
	[DATA_MIGRAZIONE_CONS] [datetime] NULL,
	[PK_AREA] [varchar](35) NULL,
	[NEED_AREA_ABBR_DI_AREA] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_AREA] [varchar](512) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[PK_PRC] [varchar](35) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ID_MONITORAGGIO] [varchar](12) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[CONTROVALORE_PER_INV] [numeric](19, 7) NULL,
	[PERCENTUALE_MODELLO] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[DATA_ORDINAMENTO_INV] [datetime] NULL,
	[CONTRATTO] [varchar](11) NULL,
	[OID_DI_CATITEMREF] [varchar](35) NULL,
	[C_OUTCTV_B4FB8] [numeric](19, 7) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[CONTROV_IN_POS_DEL_PRODOTTO] [numeric](22, 2) NULL,
	[STRINGONA_POS] [varchar](512) NULL,
	[CONTO] [varchar](11) NULL,
	[RUBRICATO] [varchar](3) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[NUMPOL] [varchar](11) NULL,
	[TERMID] [varchar](7) NULL,
	[ANNO] [varchar](3) NULL,
	[PROG] [varchar](5) NULL,
	[NOME_PRODOTTO] [varchar](512) NULL,
	[NEED_AREA_ABBREVIATA_DI_POS] [varchar](512) NULL,
	[NEED_AREA_ESTESA_DI_POS] [varchar](512) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[ALBERATURA] [varchar](45) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[ISNEGOTIABLE] [numeric](1, 0) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[ORIGINE_FILE_CATALOGO] [varchar](1) NULL,
	[FLAG_PRESENZA_MAPPATURA] [varchar](2) NULL,
	[RAGGRUPPAMEN_NOME_PROGET] [varchar](64) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ALL_POS_CONS_CAT]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ALL_POS_CONS_CAT] ON [C6StoricoPeriodico].[ST_ALL_POS_CONS_CAT]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ALL_PROPOSTA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ALL_PROPOSTA](
	[AGENTE] [varchar](138) NULL,
	[RETE] [varchar](10) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICEFISCALE] [varchar](128) NULL,
	[CHIAVE_PROPOSTA] [varchar](35) NULL,
	[NOME_PROPOSTA] [varchar](128) NULL,
	[STATO_PROPOSTA] [varchar](256) NULL,
	[DATA_CREAZIONE_PROPOSTA] [datetime] NULL,
	[DATA_SCADENZA_PROPOSTA] [datetime] NULL,
	[NEED_BREVE] [varchar](512) NULL,
	[NEED_ESTESA] [varchar](512) NULL,
	[ORDINE_NEED] [decimal](19, 0) NULL,
	[CONTROVALORE_TOT_PER_NEED] [decimal](19, 7) NULL,
	[PERC_PER_NEED] [decimal](5, 2) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[CONTROV_CONSULENZA] [decimal](19, 7) NULL,
	[CONTROV_PROPOSTA] [decimal](18, 0) NULL,
	[CONTROV_DA_DEFINIRE_LIQ] [decimal](19, 7) NULL,
	[ISANEWPOSITION] [decimal](1, 0) NULL,
	[STRINGONA_CLONEPOS] [varchar](256) NULL,
	[NOME_PRODOTTO_CLONEPOS] [varchar](512) NULL,
	[INVESTI] [decimal](19, 7) NULL,
	[DISINVESTI] [decimal](19, 7) NULL,
	[PTF_INIZ] [decimal](19, 7) NULL,
	[CTVOPERAZIONE] [decimal](19, 7) NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[POLIZZADECIMAL] [varchar](20) NULL,
	[CONTO] [varchar](512) NULL,
	[RUBRICATO] [varchar](512) NULL,
	[PR_COD_ISIN] [varchar](20) NULL,
	[PR_COD_MAF] [varchar](20) NULL,
	[PR_COD_INTERNO] [varchar](20) NULL,
	[PR_COD_SOTTOPRODOTTO] [varchar](20) NULL,
	[PR_COD_ADEGUATEZZA] [varchar](20) NULL,
	[NOME_PRODOTTO_CATALOGO] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CHIAVE_CATITEMREF] [varchar](35) NULL,
	[CHIAVE_PER_LA_CONSULENZA] [varchar](35) NULL,
	[RICONCILIATA] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_PROGETTO] [decimal](1, 0) NULL,
	[FLAG_PROPOSTA_PER_AREA] [decimal](1, 0) NULL,
	[FLAG_SALVATAGGIO_MANUALE] [decimal](1, 0) NULL,
	[RAGGRUPPAMENTO_PROGETTO] [varchar](64) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_AREEDIBISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_AREEDIBISOGNO](
	[AREAID] [varchar](128) NULL,
	[AREANAME] [varchar](128) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_AREEDIBISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_AREEDIBISOGNO] ON [C6StoricoPeriodico].[ST_AREEDIBISOGNO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ASSET_1_E_2_ORDINATE](
	[CODICE_ASSET_CLASS_INGRESSO] [varchar](8) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ORDINAMENTO_ASSET] [float] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ASSET_1_E_2_ORDINATE] ON [C6StoricoPeriodico].[ST_ASSET_1_E_2_ORDINATE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_ASSETCLASS](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[ASSETCLASSID] [varchar](128) NULL,
	[ASSETCLASSNAME] [varchar](128) NULL,
	[ASSETCLASSDESCR] [varchar](2048) NULL,
	[ASSETCLASSLEV] [numeric](19, 0) NULL,
	[ISRESIDUAL] [numeric](1, 0) NULL,
	[F_PASSETCLAS_2FB94] [varchar](35) NULL,
	[F_OID$_ASSET_B965C] [varchar](35) NULL,
	[CODICE_ISIN] [varchar](8) NULL,
	[CODICE_MAF] [varchar](8) NULL,
	[CODICE_ADEGUATEZZA] [varchar](11) NULL,
	[ORDINE] [float] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_ASSETCLASS] ON [C6StoricoPeriodico].[ST_ASSETCLASS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_C_BO_453FB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_C_BO_453FB](
	[OID$] [varchar](35) NULL,
	[C_VALUE_7BD3C] [numeric](19, 0) NULL,
	[C_DESCRIZION_93ABE] [varchar](128) NULL,
	[PK_PRC] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_C_BO_453FB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_C_BO_453FB] ON [C6StoricoPeriodico].[ST_C_BO_453FB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_CATINAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_CATINAREA](
	[OID$] [varchar](35) NOT NULL,
	[VERSION$] [decimal](19, 0) NULL,
	[C_ISMAINNEED_9C780] [decimal](1, 0) NULL,
	[NEEDAREAVALUE] [varchar](10) NULL,
	[F_OID$_NEEDA_2C362] [varchar](35) NULL,
	[F_PCATALOGUE_5D024] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_CATINAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CATINAREA] ON [C6StoricoPeriodico].[ST_CATINAREA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_CATITEMREF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_CATITEMREF](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[PRODUCTCURRENCY] [varchar](3) NULL,
	[PRODUCTCOUNTRY] [varchar](35) NULL,
	[PRODUCTREGION] [varchar](35) NULL,
	[CATALOGUEID] [varchar](128) NULL,
	[COD_ISIN] [varchar](18) NULL,
	[COD_ADEGUATEZZA] [varchar](18) NULL,
	[COD_MAF] [varchar](18) NULL,
	[COD_INTERNO] [varchar](18) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TYPE$_BCATAL_FC317] [varchar](256) NULL,
	[CATEGORY] [varchar](20) NULL,
	[INSTITUTIONS] [varchar](20) NULL,
	[COUNTRY] [varchar](3) NULL,
	[PIAZZA] [varchar](128) NULL,
	[ULTIMOPRZCURR] [varchar](3) NULL,
	[ULTIMOPRZ] [numeric](19, 3) NULL,
	[CAPITALERISPARMIO] [varchar](10) NULL,
	[LMINCAPCONTRCURR] [varchar](3) NULL,
	[LMINCAPCONTR] [numeric](19, 3) NULL,
	[LSUCCAPCONTRCURR] [varchar](3) NULL,
	[LSUCCAPCONTR] [numeric](19, 3) NULL,
	[LMINRISPCONTRCURR] [varchar](3) NULL,
	[LMINRISPCONTR] [numeric](19, 3) NULL,
	[LSUCRISPCONTRCURR] [varchar](3) NULL,
	[LSUCRISPCONTR] [numeric](19, 3) NULL,
	[LMINCOMMCURR] [varchar](3) NULL,
	[LMINCOMM] [numeric](19, 3) NULL,
	[DELEGAGESTIONALE] [varchar](128) NULL,
	[TIPOLOGIAPERPICK] [varchar](10) NULL,
	[EXPIRATIONDATE] [datetime] NULL,
	[RISKPRICE] [varchar](10) NULL,
	[FISCALREGIMENT] [varchar](10) NULL,
	[QUOTATO] [varchar](10) NULL,
	[CLASSEDIPREZZO] [varchar](10) NULL,
	[BONDRATING] [varchar](128) NULL,
	[BONDDURATION] [varchar](128) NULL,
	[TEMPMIN] [varchar](128) NULL,
	[TEMPMAX] [varchar](128) NULL,
	[PRIPRODCOM] [varchar](128) NULL,
	[MAINASSETCLASS] [varchar](2) NULL,
	[MACROACOBPERC] [numeric](19, 7) NULL,
	[MACROACALPERC] [numeric](19, 7) NULL,
	[MACROACAZPERC] [numeric](19, 7) NULL,
	[MACROACMNPERC] [numeric](19, 7) NULL,
	[LINEEFINACC] [varchar](128) NULL,
	[TIPOVERS] [varchar](35) NULL,
	[TIPOPOLIZRAM1] [varchar](35) NULL,
	[DURATACONTR] [varchar](128) NULL,
	[GARDEMO] [varchar](35) NULL,
	[RISKPRESSCAD] [varchar](35) NULL,
	[LIVFLUTDUR] [varchar](10) NULL,
	[OPZRENDVIT] [numeric](1, 0) NULL,
	[METAA] [varchar](128) NULL,
	[METAB] [varchar](128) NULL,
	[METAC] [varchar](128) NULL,
	[RATOBBLIG] [varchar](128) NULL,
	[ULTIMOPREZZOCURR] [varchar](3) NULL,
	[ULTIMOPREZZO] [numeric](19, 3) NULL,
	[DATARIFPREZZO] [datetime] NULL,
	[CODICEADB] [varchar](128) NULL,
	[AGGIORNFEED] [varchar](128) NULL,
	[DISTRPROV] [varchar](128) NULL,
	[CODTIPOCONTR] [varchar](128) NULL,
	[ULTPRZSECCURR] [varchar](3) NULL,
	[ULTPRZSEC] [numeric](19, 3) NULL,
	[DATAULTPRZSEC] [datetime] NULL,
	[CODBLOOMBERG] [varchar](128) NULL,
	[DENOMUNITLNK] [varchar](128) NULL,
	[TIPOPRODOTTO] [varchar](20) NULL,
	[GENERICDATA] [datetime] NULL,
	[GENERICCURCURR] [varchar](3) NULL,
	[GENERICCUR] [numeric](19, 3) NULL,
	[GENERICSTRING1] [varchar](128) NULL,
	[GENERICSTRING2] [varchar](128) NULL,
	[CATALOGUENAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[PRODUCTSTATUS] [varchar](35) NULL,
	[ISVISIBLE] [numeric](1, 0) NULL,
	[ISNEGOTIABLE] [numeric](1, 0) NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_OID$_VAR_CDDF8] [varchar](35) NULL,
	[RISKPROFOFSUITCLS] [varchar](2048) NULL,
	[OPINION] [varchar](35) NULL,
	[OPINIONDATE] [datetime] NULL,
	[F_OID$_CATAL_B3E14] [varchar](35) NULL,
	[F_OID$_PCATE_F3BF6] [varchar](35) NULL,
	[F_OID$_MAINA_76C35] [varchar](35) NULL,
	[F_OID$_INSTR_B5526] [varchar](35) NULL,
	[F_OID$_MAINS_5FCE5] [varchar](35) NULL,
	[F_OID$_MAINR_08A23] [varchar](35) NULL,
	[F_OID$_PRISK_AAC57] [varchar](35) NULL,
	[F_OID$_PRODU_F8FBB] [varchar](35) NULL,
	[F_OID$_MARKE_F3D2D] [varchar](35) NULL,
	[COLL_SKANDIA] [numeric](19, 0) NULL,
	[CODASSETSAT] [varchar](512) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_CATITEMREF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CATITEMREF] ON [C6StoricoPeriodico].[ST_CATITEMREF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_CLIENTI_CON_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_CLIENTI_CON_RNA](
	[Rete] [varchar](1) NULL,
	[CodicePB] [varchar](6) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[Percentuale] [numeric](19, 3) NULL,
	[DataCalcolo] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_CONO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_CONO](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [numeric](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [numeric](19, 7) NULL,
	[F_PPROJECT_P_46507] [varchar](35) NULL,
	[C_QUANTILE50_C47E0] [numeric](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_CONO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CONO] ON [C6StoricoPeriodico].[ST_CONO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_CONSAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_CONSAREA](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_7FBE3] [varchar](35) NULL,
	[C_CONSULENZA_A58F3] [varchar](64) NULL,
	[C_CONSULENZA_E94E3] [varchar](64) NULL,
	[C_NEEDAREA_V_46360] [varchar](512) NULL,
	[C_NEEDAREA_D_911D8] [varchar](512) NULL,
	[C_CTVNEEDARE_EA4FB] [numeric](19, 7) NULL,
	[C_PERCENTAGE_86095] [numeric](19, 7) NULL,
	[C_OUTCTV_A27B5] [numeric](19, 7) NULL,
	[C_PATRIMONIO_F4B8E] [numeric](19, 7) NULL,
	[C_INVESTIMEN_AC24C] [numeric](19, 7) NULL,
	[C_CONSULENZA_0C219] [numeric](1, 0) NULL,
	[C_CONSULENZA_1C9D3] [numeric](1, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_CONSAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CONSAREA] ON [C6StoricoPeriodico].[ST_CONSAREA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_CONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_CONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_CONSULENZA_EBDBE] [varchar](64) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[TYPE$_TIPOCO_1EA7C] [varchar](256) NULL,
	[C_CONTROVALO_C57EE] [numeric](19, 7) NULL,
	[C_PATRIMONIO_0BF30] [numeric](19, 7) NULL,
	[C_ALTROPATRI_E90EF] [numeric](19, 7) NULL,
	[C_ALTRO_5AD86] [numeric](19, 7) NULL,
	[C_DATAINIZIO_35C15] [datetime] NULL,
	[C_RISORSENON_A04BD] [numeric](19, 7) NULL,
	[C_INVESTIMEN_C4514] [numeric](19, 7) NULL,
	[C_INVESTIMEN_36DE3] [numeric](19, 7) NULL,
	[C_IDQUESTION_5549B] [varchar](512) NULL,
	[C_DATAQUESTI_5069A] [datetime] NULL,
	[C_VARCONSOB_28C92] [numeric](19, 7) NULL,
	[C_VALORIALLI_0CA23] [numeric](1, 0) NULL,
	[C_DATAPIRAMI_661DA] [datetime] NULL,
	[C_DATACONSVE_D3DE3] [datetime] NULL,
	[C_DATACONSOR_EA88E] [datetime] NULL,
	[C_PROFILOCON_81F5D] [numeric](19, 0) NULL,
	[C_DATAMIGRAZ_BF705] [datetime] NULL,
	[C_SALVADANAI_B156A] [numeric](19, 7) NULL,
	[C_CONSULENZA_2C1E1] [numeric](1, 0) NULL,
	[C_DATACONSVE_66B66] [datetime] NULL,
	[C_DATACAMBIO_79509] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_CONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_CONSUL] ON [C6StoricoPeriodico].[ST_CONSUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_INDREND]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_INDREND](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_VAR_A94EA] [numeric](19, 7) NULL,
	[C_TEMPOINVES_CE300] [numeric](19, 0) NULL,
	[C_COPERTURA_94818] [numeric](19, 7) NULL,
	[C_PERDITAMAX_F5B51] [numeric](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_INDREND]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_INDREND] ON [C6StoricoPeriodico].[ST_INDREND]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_INSTRBDS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_INSTRBDS](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[BDISIN] [varchar](128) NULL,
	[BDMAF] [varchar](128) NULL,
	[F_OID$_PCATA_5DDA6] [varchar](35) NULL,
	[PROVENIENZA] [varchar](50) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_INSTRBDS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_INSTRBDS] ON [C6StoricoPeriodico].[ST_INSTRBDS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_NEEDAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_NEEDAREA](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[AREAID] [varchar](128) NULL,
	[AREANAME] [varchar](128) NULL,
	[EFFECTIVEFROM] [datetime] NULL,
	[EFFECTIVETO] [datetime] NULL,
	[BRIEFDESCRIPTION] [varchar](1024) NULL,
	[F_PNEEDAREA__742D7] [varchar](35) NULL,
	[AREASORTORDER] [numeric](19, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_NEEDAREA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_NEEDAREA] ON [C6StoricoPeriodico].[ST_NEEDAREA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_NOME_PROGETTO_BOZZA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_NOME_PROGETTO_BOZZA](
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[NUOVO_NOME_PROGETTO] [varchar](512) NULL,
	[C_PROJECTIDR_51E22] [varchar](64) NULL,
	[NEEDAREA] [varchar](512) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_NOME_PROGETTO_BOZZA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_NOME_PROGETTO_BOZZA] ON [C6StoricoPeriodico].[ST_NOME_PROGETTO_BOZZA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_OTHINTRST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_OTHINTRST](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[INTERESTDESC] [varchar](128) NULL,
	[INTERESTCUR] [varchar](3) NULL,
	[INTERESTAMT] [numeric](19, 3) NULL,
	[F_PQUANTIFIC_76FF6] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_OTHINTRST]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_OTHINTRST] ON [C6StoricoPeriodico].[ST_OTHINTRST]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_PHOTO_DATA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_PHOTO_DATA](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_PHOTO_DATA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PHOTO_DATA] ON [C6StoricoPeriodico].[ST_PHOTO_DATA]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_PORTMOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_PORTMOD](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PPROJECT_P_EE748] [varchar](35) NULL,
	[C_ASSET_CD02D] [varchar](512) NULL,
	[C_PERCENTUAL_143B7] [numeric](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_PORTMOD]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PORTMOD] ON [C6StoricoPeriodico].[ST_PORTMOD]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_POSITION]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_POSITION](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_56F23] [varchar](35) NULL,
	[POSITIONID] [varchar](512) NULL,
	[CONSULENZAID] [varchar](64) NULL,
	[TYPE$_CATALO_35E2A] [varchar](256) NULL,
	[POSITIONNAME] [varchar](512) NULL,
	[CONTROVALORE] [numeric](19, 7) NULL,
	[C_OUTCTV_B4FB8] [numeric](19, 7) NULL,
	[C_NEEDAREASE_3D485] [varchar](512) NULL,
	[C_NEEDAREASE_30873] [varchar](512) NULL,
	[CATALOGUEITEMID] [varchar](128) NULL,
	[F_OID$_POSIT_00526] [varchar](35) NULL,
	[F_PPROJECT_P_B5629] [varchar](35) NULL,
	[CTVINIZIALE] [numeric](19, 7) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_POSITION]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_POSITION] ON [C6StoricoPeriodico].[ST_POSITION]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_PRCONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_PRCONSUL](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PCONSULENZ_B69E4] [varchar](35) NULL,
	[C_PROJECTID_9894C] [varchar](64) NULL,
	[C_CONSULENZA_CB331] [varchar](64) NULL,
	[C_CONSULENZA_A7FC6] [varchar](64) NULL,
	[NEEDAREAID] [varchar](128) NULL,
	[TYPE$_PROJEC_14674] [varchar](256) NULL,
	[C_PROJECTNAM_11D1A] [varchar](512) NULL,
	[C_PROJECTCTV_39520] [numeric](19, 7) NULL,
	[C_PROJECTOUT_9CFB8] [numeric](19, 7) NULL,
	[C_RISORSELIQ_DF807] [numeric](19, 7) NULL,
	[C_CREATIONDA_732BD] [datetime] NULL,
	[C_LASTMODIFI_3BF4A] [datetime] NULL,
	[C_INVESTIMEN_60625] [numeric](19, 7) NULL,
	[F_OID$_FREQU_A5FAB] [varchar](35) NULL,
	[C_IMPORTOPER_7A987] [numeric](19, 7) NULL,
	[F_OID$_RISKP_9CF4A] [varchar](35) NULL,
	[F_OID$_ORIZZ_4A868] [varchar](35) NULL,
	[C_PERDITAAVV_D414B] [numeric](19, 7) NULL,
	[C_PERDITAMAX_55078] [numeric](19, 7) NULL,
	[C_GUADAGNOAV_2BD07] [numeric](19, 7) NULL,
	[C_GUADAGNOMA_D14C4] [numeric](19, 7) NULL,
	[C_RISERVENON_CCD2D] [numeric](1, 0) NULL,
	[C_RISERVEMON_5E189] [numeric](1, 0) NULL,
	[C_RISERVEOBB_121FA] [numeric](1, 0) NULL,
	[C_RISERVEAZI_175C0] [numeric](1, 0) NULL,
	[C_CONSULENZA_ACEEE] [numeric](1, 0) NULL,
	[C_PROJECTIDM_1AF31] [varchar](12) NULL,
	[C_PROJECTIDR_51E22] [varchar](64) NULL,
	[C_DATAULTIMO_FFA71] [datetime] NULL,
	[C_PERDITAMAX_BEABF] [numeric](1, 0) NULL,
	[C_PERDITAMAX_AAB4C] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_43151] [numeric](1, 0) NULL,
	[C_GUADAGNOMA_0F76F] [numeric](1, 0) NULL,
	[F_OID$_PROJE_CD4BB] [varchar](35) NULL,
	[C_NOTE_B4B97] [varchar](100) NULL,
	[C_PERCENTUAL_69019] [numeric](19, 0) NULL,
	[C_PERCENTUAL_12346] [numeric](19, 7) NULL,
	[F_OID$_RISKS_A3B54] [varchar](35) NULL,
	[C_ORDERTIMES_80019] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_PRCONSUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PRCONSUL] ON [C6StoricoPeriodico].[ST_PRCONSUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_PROMETEIA_AGGR](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](255) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](255) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](255) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](255) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](255) NOT NULL,
	[McVar] [varchar](255) NOT NULL,
	[McVarP] [varchar](255) NOT NULL,
	[Beneficio] [varchar](255) NOT NULL,
	[Copertura] [varchar](255) NOT NULL,
	[Totale] [varchar](255) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_PROMETEIA_AGGR]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_PROMETEIA_AGGR] ON [C6StoricoPeriodico].[ST_PROMETEIA_AGGR]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_QUANTIF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_QUANTIF](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[UPDATEDATE] [datetime] NULL,
	[EXPNEEDSCUR] [varchar](3) NULL,
	[EXPNEEDSAMT] [numeric](19, 3) NULL,
	[GROSSINPRIMCUR] [varchar](3) NULL,
	[GROSSINPRIMAMT] [numeric](19, 3) NULL,
	[GROSSINSECCUR] [varchar](3) NULL,
	[GROSSINSECAMT] [numeric](19, 3) NULL,
	[RETIREMENTYEARS] [numeric](19, 0) NULL,
	[STATEPENSIONCUR] [varchar](3) NULL,
	[STATEPENSIONAMT] [numeric](19, 3) NULL,
	[PRIVATEPENSIONCUR] [varchar](3) NULL,
	[PRIVATEPENSIONAMT] [numeric](19, 3) NULL,
	[LIFEINTERESTCUR] [varchar](3) NULL,
	[LIFEINTERESTAMT] [numeric](19, 3) NULL,
	[C_FINANCIALI_8D659] [numeric](19, 0) NULL,
	[C_FINANCIALI_91C75] [numeric](19, 7) NULL,
	[INSINTERESTCUR] [varchar](3) NULL,
	[INSINTERESTAMT] [numeric](19, 3) NULL,
	[INVINTERESTCUR] [varchar](3) NULL,
	[INVINTERESTAMT] [numeric](19, 3) NULL,
	[REINTERESTCUR] [varchar](3) NULL,
	[REINTERESTAMT] [numeric](19, 3) NULL,
	[PRIMARYGAPCUR] [varchar](3) NULL,
	[PRIMARYGAPAMT] [numeric](19, 3) NULL,
	[SECONDARYGAPCUR] [varchar](3) NULL,
	[SECONDARYGAPAMT] [numeric](19, 3) NULL,
	[TOCONSUMPTIONETM] [numeric](1, 0) NULL,
	[TOINTERESTETM] [numeric](1, 0) NULL,
	[LOCKPERCFRSTBRNC] [numeric](1, 0) NULL,
	[PRFCONSUMPTIONS] [numeric](19, 7) NULL,
	[PRFGROSSAMOUNT] [numeric](19, 7) NULL,
	[PRFPERCFRSTBRNC] [numeric](19, 7) NULL,
	[PRFADDRETIREMENT] [numeric](19, 7) NULL,
	[PRFLIFEINTEREST] [numeric](19, 7) NULL,
	[PRFINTERFRSTBRNC] [numeric](19, 7) NULL,
	[PRFINTERUNIT] [numeric](19, 7) NULL,
	[F_OID$_ADDRE_81D21] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_QUANTIF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_QUANTIF] ON [C6StoricoPeriodico].[ST_QUANTIF]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_RMADBKROLE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_RMADBKROLE](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[F_PADDRESSBO_22C0C] [varchar](35) NULL,
	[RMGROUPROLE] [varchar](35) NULL,
	[F_OID$_RM_4A3B4] [varchar](35) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_RMADBKROLE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_RMADBKROLE] ON [C6StoricoPeriodico].[ST_RMADBKROLE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_S4_S5_S13_TRAD_UNTIL_LIV3](
	[DESCRIZIONE_ORIGINALE] [varchar](100) NULL,
	[ALBERO_GERARCHIA_1] [varchar](100) NULL,
	[ALBERO_GERARCHIA_2] [varchar](100) NULL,
	[ALBERO_GERARCHIA_3] [varchar](100) NULL,
	[ORDINAMENTO_GERARCHIA_2] [float] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_S4_S5_S13_TRAD_UNTIL_LIV3] ON [C6StoricoPeriodico].[ST_S4_S5_S13_TRAD_UNTIL_LIV3]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_SPB_CONTR_SINTESI](
	[POSITIONID] [varchar](123) NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_CONTR_SINTESI] ON [C6StoricoPeriodico].[ST_SPB_CONTR_SINTESI]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_SPB_MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_SPB_MIFID](
	[RETE] [char](1) NOT NULL,
	[CODAGENTE] [varchar](7) NULL,
	[CODICEFISCALE] [varchar](35) NOT NULL,
	[ACCETTACOMPILAZIONE] [bit] NULL,
	[CODICEPROFILOASSEGNATO] [smallint] NULL,
	[CODICEPROFILOCALCOLATO] [smallint] NULL,
	[CODICEQUESTIONARIO] [varchar](50) NULL,
	[DATAFINEVALIDITA] [datetime] NULL,
	[DATAINIZIOVALIDITA] [datetime] NULL,
	[CODICEAGENTE] [varchar](7) NULL,
	[CODICEAGENTERESPONSABILE] [varchar](7) NULL,
	[CODICEAGENTEREALE] [varchar](7) NULL,
	[TIPOQUESTIONARIO] [varchar](50) NULL,
	[STATUS] [smallint] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_SPB_MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_MIFID] ON [C6StoricoPeriodico].[ST_SPB_MIFID]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_SPB_PROF_RISCHIO](
	[CODICEPROFILO] [varchar](20) NULL,
	[DESCRIZIONEPROFILO] [varchar](128) NULL,
	[DESCRIZIONEPROFILOESTESA] [varchar](256) NULL,
	[PERCENTUALEASSETAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETOBBLIGAZIONARIO] [decimal](5, 2) NULL,
	[PERCENTUALEASSETMONETARIO] [decimal](5, 2) NULL,
	[VOLATILITADA] [decimal](5, 2) NULL,
	[VOLATILITAA] [decimal](5, 2) NULL,
	[RENDIMENTOATTESO] [decimal](5, 2) NULL,
	[VARTRIMESTRALE] [decimal](5, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_SPB_PROF_RISCHIO] ON [C6StoricoPeriodico].[ST_SPB_PROF_RISCHIO]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_TABELLESTORICIZZATE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_TABELLESTORICIZZATE](
	[Nome] [varchar](50) NULL,
	[Durata] [int] NULL,
	[Vecchia_Durata] [int] NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Storicizzata] [bit] NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_TABELLESTORICIZZATE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_TABELLESTORICIZZATE] ON [C6StoricoPeriodico].[ST_TABELLESTORICIZZATE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_TANAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_TANAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_TCPTAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_TCPTAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_WADEG] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[NUMPOL] [varchar](11) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[SPROG] [decimal](3, 0) NOT NULL,
	[DTUSCITA] [decimal](9, 0) NOT NULL,
	[DTSOTT] [decimal](9, 0) NOT NULL,
	[CTVATT] [decimal](15, 2) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[CTVINGRESSO] [decimal](15, 2) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTININAC] [decimal](9, 0) NOT NULL,
	[RENDNAC] [decimal](8, 5) NOT NULL,
	[CTVVP] [decimal](15, 2) NOT NULL,
	[CVNTRIM] [decimal](15, 2) NOT NULL,
	[CVNANNO] [decimal](15, 2) NOT NULL,
	[CVNINIZ] [decimal](15, 2) NOT NULL,
	[CVNNAC] [decimal](15, 2) NOT NULL,
	[CODINT] [varchar](18) NOT NULL,
	[VALORE] [decimal](15, 2) NOT NULL,
	[STLIQ] [varchar](1) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_TRENAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_TRENAB](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTVALORIZ] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[DTINIZ] [decimal](9, 0) NOT NULL,
	[RENDINIZ] [decimal](8, 5) NOT NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RENDTRIM] [decimal](8, 5) NOT NULL,
	[DTANNO] [decimal](9, 0) NOT NULL,
	[RENDANNO] [decimal](8, 5) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_TSCABP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_TSCABP](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WANAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WANAB](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[DTFINE] [numeric](9, 0) NULL,
	[DTINI] [numeric](9, 0) NULL,
	[CTVINI] [numeric](15, 2) NULL,
	[DTRENDMAX] [numeric](9, 0) NULL,
	[RENDMAX] [numeric](8, 5) NULL,
	[DTRENDMIN] [numeric](9, 0) NULL,
	[RENDMIN] [numeric](8, 5) NULL,
	[DTCTV] [numeric](9, 0) NULL,
	[CTV] [numeric](15, 2) NULL,
	[RENDATT] [numeric](8, 5) NULL,
	[DTCTVMAX] [numeric](9, 0) NULL,
	[CTVMAX] [numeric](15, 2) NULL,
	[DTCTVMIN] [numeric](9, 0) NULL,
	[CTVMIN] [numeric](15, 2) NULL,
	[CVN] [numeric](15, 2) NULL,
	[CVN_IA] [numeric](15, 2) NULL,
	[CVN_IT] [numeric](15, 2) NULL,
	[APP_INI] [numeric](15, 2) NULL,
	[TOT_APP] [numeric](15, 2) NULL,
	[TOT_LIQ] [numeric](15, 2) NULL,
	[TOT_CED] [numeric](15, 2) NULL,
	[TOT_DIV] [numeric](15, 2) NULL,
	[DCD] [numeric](15, 2) NULL,
	[DCVN] [numeric](15, 2) NULL,
	[SCARTO] [numeric](15, 2) NULL,
	[NTOT_APP] [numeric](15, 2) NULL,
	[NTOT_LIQ] [numeric](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WANAB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WANAB] ON [C6StoricoPeriodico].[ST_WANAB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WCPTAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WCPTAB](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[TIPPROD] [varchar](4) NULL,
	[ISIN] [varchar](12) NULL,
	[ID_WADEG] [varchar](12) NULL,
	[MAF] [varchar](14) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[CODPROD] [varchar](2) NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[RUBR] [varchar](3) NULL,
	[CODABI] [varchar](8) NULL,
	[TERMID] [varchar](8) NULL,
	[ANNO] [numeric](3, 0) NULL,
	[PROG] [numeric](9, 0) NULL,
	[SPROG] [numeric](3, 0) NULL,
	[DTUSCITA] [numeric](9, 0) NULL,
	[DTSOTT] [numeric](9, 0) NULL,
	[CTVATT] [numeric](15, 2) NULL,
	[DTINGRESSO] [numeric](9, 0) NULL,
	[CTVINGRESSO] [numeric](15, 2) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[RENDTRIM] [numeric](8, 5) NULL,
	[DTANNO] [numeric](9, 0) NULL,
	[RENDANNO] [numeric](8, 5) NULL,
	[DTINIZ] [numeric](9, 0) NULL,
	[RENDINIZ] [numeric](8, 5) NULL,
	[DTININAC] [numeric](9, 0) NULL,
	[RENDNAC] [numeric](8, 5) NULL,
	[CTVVP] [numeric](15, 2) NULL,
	[CVNTRIM] [numeric](15, 2) NULL,
	[CVNANNO] [numeric](15, 2) NULL,
	[CVNINIZ] [numeric](15, 2) NULL,
	[CVNNAC] [numeric](15, 2) NULL,
	[CODINT] [varchar](18) NULL,
	[VALORE] [numeric](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WCPTAB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WCPTAB] ON [C6StoricoPeriodico].[ST_WCPTAB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WMANDATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WMANDATI](
	[PIVA] [varchar](11) NULL,
	[CODMAND] [varchar](6) NULL,
	[CODBREVE] [varchar](2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WRENAB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WRENAB](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[DTVALORIZ] [numeric](9, 0) NULL,
	[CTV] [numeric](15, 2) NULL,
	[DTINIZ] [numeric](9, 0) NULL,
	[RENDINIZ] [numeric](8, 5) NULL,
	[DTTRIM] [numeric](9, 0) NULL,
	[RENDTRIM] [numeric](8, 5) NULL,
	[DTANNO] [numeric](9, 0) NULL,
	[RENDANNO] [numeric](8, 5) NULL,
	[CVN] [numeric](15, 2) NULL,
	[CVN_IA] [numeric](15, 2) NULL,
	[CVN_IT] [numeric](15, 2) NULL,
	[APP_INI] [numeric](15, 2) NULL,
	[TOT_APP] [numeric](15, 2) NULL,
	[TOT_LIQ] [numeric](15, 2) NULL,
	[TOT_CED] [numeric](15, 2) NULL,
	[TOT_DIV] [numeric](15, 2) NULL,
	[DCD] [numeric](15, 2) NULL,
	[DCVN] [numeric](15, 2) NULL,
	[SCARTO] [numeric](15, 2) NULL,
	[NTOT_APP] [numeric](15, 2) NULL,
	[NTOT_LIQ] [numeric](15, 2) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WRENAB]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WRENAB] ON [C6StoricoPeriodico].[ST_WRENAB]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WSCABP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WSCABP](
	[RETE] [varchar](1) NULL,
	[CODAREA] [varchar](4) NULL,
	[CODPROG] [varchar](12) NULL,
	[CODFIS] [varchar](16) NULL,
	[DTRIF] [numeric](9, 0) NULL,
	[TIPPROD] [varchar](4) NULL,
	[CODCONF] [varchar](11) NULL,
	[SUBPROD] [varchar](5) NULL,
	[CODPROD] [varchar](2) NULL,
	[CONTO] [varchar](12) NULL,
	[CUSTGAR] [varchar](1) NULL,
	[RUBR] [varchar](3) NULL,
	[CODABI] [varchar](8) NULL,
	[TERMID] [varchar](8) NULL,
	[ANNO] [numeric](3, 0) NULL,
	[PROG] [numeric](9, 0) NULL,
	[DTINGRESSO] [numeric](9, 0) NULL,
	[ISTITUTO] [numeric](5, 0) NULL,
	[TIPO_PRODOTT] [varchar](3) NULL,
	[CONTO_OP] [varchar](25) NULL,
	[STRUM_FIN] [varchar](15) NULL,
	[ID_MOVIM] [varchar](35) NULL,
	[TIPO_OP] [varchar](1) NULL,
	[RESTART] [varchar](1) NULL,
	[DT_ING_USC] [varchar](10) NULL,
	[ING_USC] [numeric](12, 3) NULL,
	[COD_ERR] [varchar](4) NULL,
	[DESCR_ERR] [varchar](60) NULL,
	[DT_ELAB] [varchar](10) NULL,
	[DT_INS] [varchar](10) NULL,
	[PCT] [varchar](3) NULL,
	[PROVENIENZA] [varchar](1) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WSCABP]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WSCABP] ON [C6StoricoPeriodico].[ST_WSCABP]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WSEIAN]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WSEIAN](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WSEIAN]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WSEIAN] ON [C6StoricoPeriodico].[ST_WSEIAN]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WSEICS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WSEICS](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[PCTKEY] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](15, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[QUOTE] [decimal](15, 3) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WSEICS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WSEICS] ON [C6StoricoPeriodico].[ST_WSEICS]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WSEIPV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WSEIPV](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[IMPVER] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[SUBSET] [varchar](10) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WSEIPV]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WSEIPV] ON [C6StoricoPeriodico].[ST_WSEIPV]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[ST_WSEIUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[ST_WSEIUL](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[CODINT] [varchar](2) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[ISINFIT] [varchar](12) NULL,
	[ISIN] [varchar](12) NULL,
	[MAF] [varchar](14) NULL,
	[SUBSET] [varchar](10) NULL,
	[ID_ELAB] [int] NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_ST_WSEIUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_ST_WSEIUL] ON [C6StoricoPeriodico].[ST_WSEIUL]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [C6StoricoPeriodico].[STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [C6StoricoPeriodico].[STRUTTURA_RETE](
	[Rete] [varchar](1) NOT NULL,
	[PB] [varchar](6) NOT NULL,
	[CognomeNomePB] [varchar](64) NOT NULL,
	[SPV] [varchar](6) NOT NULL,
	[CognomeNomeSPV] [varchar](64) NOT NULL,
	[RM] [varchar](6) NOT NULL,
	[CognomeNomeRM] [varchar](64) NOT NULL,
	[DM] [varchar](6) NOT NULL,
	[CognomeNomeDM] [varchar](64) NOT NULL,
	[AM] [varchar](6) NOT NULL,
	[CognomeNomeAM] [varchar](64) NOT NULL,
	[Livello] [varchar](20) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [STORICOPERIODICO]
GO
/****** Object:  Index [IX_STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE CLUSTERED INDEX [IX_STRUTTURA_RETE] ON [C6StoricoPeriodico].[STRUTTURA_RETE]
(
	[ID_ELAB] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STORICOPERIODICO]
GO
/****** Object:  Table [dbo].[_CONTROLLO_TRIMESTRALE_25]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_CONTROLLO_TRIMESTRALE_25](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [char](1) NOT NULL,
	[flag_diagnosi] [bit] NOT NULL,
	[id_report_m] [int] NULL,
	[id_report_d] [int] NULL,
	[stato_report] [tinyint] NULL,
	[pacchetto_zip] [int] NULL,
	[data_transizione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[_cruscotto_contrattisei_25]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_cruscotto_contrattisei_25](
	[CODICEFISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[ELAB] [int] NOT NULL,
	[DTSTAMP] [datetime] NULL,
	[TIPOCLIENTE] [int] NULL,
	[ISDIAGNOSI] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[_GESTIONE_PDF_FTP_25]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_GESTIONE_PDF_FTP_25](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL,
	[identityReport] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[575_appo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[575_appo](
	[F1] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[A]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[A](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITIONID] [varchar](123) NULL,
	[COD_PRODOTTO] [varchar](57) NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [int] NULL,
	[NUM_POLIZZA] [varchar](11) NULL,
	[COD_MAF] [varchar](14) NULL,
	[COD_INTERNO] [varchar](12) NOT NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NOT NULL,
	[TIPO_PRODOTTO] [varchar](5) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NULL,
	[TIPO_PROGETTO] [varchar](20) NOT NULL,
	[ID_AREA] [varchar](10) NOT NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [int] NULL,
	[DATA_REGOLAMENTO] [int] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [int] NULL,
	[CTV] [decimal](15, 2) NULL,
	[CTV_NOMINALE] [decimal](15, 2) NULL,
	[VERSATO_NETTO] [decimal](15, 2) NULL,
	[PARTVIA_DISINV] [decimal](15, 2) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [int] NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [int] NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[StrType] [varchar](2) NULL,
	[COMPLEX] [int] NULL,
	[EMITTENTE] [varchar](200) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[chiaveClientePB] [int] NOT NULL,
	[REND_NON_RAPPR] [int] NOT NULL,
	[ORDINAMENTO_PROGETTO] [bigint] NOT NULL,
	[ORIZZ_TEMP_NUM] [nchar](10) NULL,
	[ORIZZONTETEMPORALE] [nvarchar](15) NULL,
	[CHIAVEPROGETTO] [bigint] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[aggiornatiValerio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[aggiornatiValerio](
	[Rete] [char](1) NOT NULL,
	[Cod_fiscale] [varchar](16) NOT NULL,
	[Motivo] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[andrea]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[andrea](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL,
	[WSEICS_ASUL] [decimal](38, 2) NULL,
	[WSEIUL] [decimal](38, 2) NULL,
	[WSEICS_GP] [decimal](38, 2) NULL,
	[WSEIGP] [decimal](38, 2) NULL,
	[WSEICS_ALTRI] [decimal](38, 2) NULL,
	[WSEICS] [decimal](38, 2) NULL,
	[SINTESI] [decimal](38, 2) NULL,
	[BF] [decimal](38, 3) NULL,
	[WSEICS_ASULn] [int] NULL,
	[WSEIULn] [int] NULL,
	[WSEICS_GPn] [int] NULL,
	[WSEIGPn] [int] NULL,
	[WSEICS_ALTRIn] [int] NULL,
	[WSEICSn] [int] NULL,
	[SINTESIn] [int] NULL,
	[BFn] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ANDREA_RINO_CODICI_PATRIMONIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ANDREA_RINO_CODICI_PATRIMONIO](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[APPO_ESTR_TSCABP_NEW]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[APPO_ESTR_TSCABP_NEW](
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](186) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appo_freq]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appo_freq](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[freq_diagnosi] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appo_freq2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appo_freq2](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[freq_diagnosi] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[APPO_PRJ]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[APPO_PRJ](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME_PROGETTO] [varchar](40) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[APPO_PRJ2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[APPO_PRJ2](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME_PROGETTO] [varchar](40) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[APPO_PRJ3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[APPO_PRJ3](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME_PROGETTO] [varchar](40) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoASUL](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[id_contratto] [varchar](11) NULL,
	[ctv] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoCampioneReport]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoCampioneReport](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[provenienza] [varchar](50) NOT NULL,
	[TipoContratto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoCampioneReport_20240319]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoCampioneReport_20240319](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[provenienza] [varchar](50) NOT NULL,
	[TipoContratto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoCampioneReport_20240417]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoCampioneReport_20240417](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[provenienza] [varchar](50) NOT NULL,
	[TipoContratto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoCampioneReportNew]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoCampioneReportNew](
	[F1] [nvarchar](255) NULL,
	[F2] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoclienti_brochure]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoclienti_brochure](
	[PRGREC] [nvarchar](50) NULL,
	[RETE] [nvarchar](50) NULL,
	[CODFIS] [nvarchar](50) NULL,
	[CODMAN] [nvarchar](50) NULL,
	[FLAGREP] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoCO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoCO](
	[co] [varchar](11) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoDaRecuperare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoDaRecuperare](
	[rete] [nvarchar](1) NULL,
	[codfis] [nvarchar](16) NULL,
	[codconf] [nvarchar](11) NULL,
	[bloccato] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoDataValidazioneNull]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoDataValidazioneNull](
	[giorni trascorsi] [float] NULL,
	[CF] [nvarchar](255) NULL,
	[PIVA] [nvarchar](255) NULL,
	[rete] [nvarchar](255) NULL,
	[codiceContratto] [nvarchar](255) NULL,
	[chiaveClientePB] [float] NULL,
	[status] [nvarchar](255) NULL,
	[dtFirmaBase] [nvarchar](255) NULL,
	[dtEndBase] [nvarchar](255) NULL,
	[dtFirmaSei] [nvarchar](255) NULL,
	[dtEndSei] [nvarchar](255) NULL,
	[dtvalid] [nvarchar](255) NULL,
	[dtProcBase] [datetime] NULL,
	[dtProcAv] [datetime] NULL,
	[address] [nvarchar](255) NULL,
	[cap] [float] NULL,
	[city] [nvarchar](255) NULL,
	[province] [nvarchar](255) NULL,
	[nation] [nvarchar](255) NULL,
	[presso] [nvarchar](255) NULL,
	[rangeCpp] [nvarchar](255) NULL,
	[genReport] [nvarchar](255) NULL,
	[genBilling] [nvarchar](255) NULL,
	[email] [nvarchar](255) NULL,
	[freqRepDia] [nvarchar](255) NULL,
	[freqRepMon] [nvarchar](255) NULL,
	[dtFirma] [nvarchar](255) NULL,
	[progLastSending] [float] NULL,
	[dtLastSending] [datetime] NULL,
	[dtLastProcessing] [datetime] NULL,
	[newFreqRepDia] [nvarchar](255) NULL,
	[newFreqRepmon] [nvarchar](255) NULL,
	[dtStartFreqRep] [datetime] NULL,
	[newDtStartReqRep] [nvarchar](255) NULL,
	[note] [nvarchar](255) NULL,
	[flSrdef] [nvarchar](255) NULL,
	[flagRol] [nvarchar](255) NULL,
	[TipContratto] [nvarchar](255) NULL,
	[ModPagamento] [nvarchar](255) NULL,
	[COD_CONF] [nvarchar](255) NULL,
	[RETE1] [nvarchar](255) NULL,
	[PB] [float] NULL,
	[DATA_SOTTOSCRIZIONE_CB] [nvarchar](255) NULL,
	[DATA_PERFEZIONAMENTO_CB] [nvarchar](255) NULL,
	[DATA_CHIUSURA_CB] [nvarchar](255) NULL,
	[INDIRIZZO] [nvarchar](255) NULL,
	[CAP1] [float] NULL,
	[PROV] [nvarchar](255) NULL,
	[CITTA] [nvarchar](255) NULL,
	[NAZIONE] [nvarchar](255) NULL,
	[PRESSO1] [nvarchar](255) NULL,
	[CF1] [nvarchar](255) NULL,
	[PIVA1] [nvarchar](255) NULL,
	[chiaveClientePB1] [float] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoDifferenzeClientiMonitorati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoDifferenzeClientiMonitorati](
	[rete] [nvarchar](1) NULL,
	[codfis] [nvarchar](16) NULL,
	[dtavvmon] [nvarchar](8) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoEmailDaRecuperare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoEmailDaRecuperare](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[chiaveclientepb] [int] NOT NULL,
	[cod_agente] [char](6) NULL,
	[codicecontratto] [varchar](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoemailnopro]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoemailnopro](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appogestione_email]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appogestione_email](
	[Email_Id] [int] NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appogestione_email_group]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appogestione_email_group](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Appoggio_Cancellazione_CostoContratto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Appoggio_Cancellazione_CostoContratto](
	[idContratto] [bigint] NULL,
	[idCategoria] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Appoggio_Cancellazione_CostoOperazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Appoggio_Cancellazione_CostoOperazione](
	[idContratto] [bigint] NULL,
	[idOperazione] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Appoggio_Cancellazione_CostoPosizione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Appoggio_Cancellazione_CostoPosizione](
	[idOperazione] [bigint] NULL,
	[idPosizione] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Appoggio_Cancellazione_ST_DettaglioCostiPosizione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Appoggio_Cancellazione_ST_DettaglioCostiPosizione](
	[idPosizione] [bigint] NULL,
	[idCosto] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[AppoggioPrivate]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[AppoggioPrivate](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoGIOR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoGIOR](
	[Rete] [char](1) NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [char](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisInv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[tip_contratto] [int] NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModellotMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[NoMonitoraggio] [int] NOT NULL,
	[ContrattoOld] [int] NOT NULL,
	[IdReportPDFDiagnosi] [int] NOT NULL,
	[IdReportPDFMonitoraggio] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appolele]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appolele](
	[COD_FISCALE] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appolele2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appolele2](
	[COD_FISCALE] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appolelean]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appolelean](
	[RETE] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [int] NULL,
	[NUM_COMPONENTI] [int] NULL,
	[NUM_FIGLI] [int] NULL,
	[ETA] [int] NULL,
	[PARTITA_IVA] [varchar](16) NULL,
	[CITTADINANZA] [int] NULL,
	[PERSONA_FIS_GIUR] [int] NULL,
	[INDIRIZZO] [varchar](44) NOT NULL,
	[LOCALITA] [varchar](35) NOT NULL,
	[PROVINCIA] [varchar](2) NOT NULL,
	[CAP] [varchar](5) NOT NULL,
	[NAZIONE] [varchar](35) NOT NULL,
	[PRESSO] [varchar](1) NOT NULL,
	[TEL_RECAPITO] [int] NULL,
	[TEL_CELL] [int] NULL,
	[E_MAIL] [int] NULL,
	[DATA_INIZIO] [int] NULL,
	[DATA_FINE] [int] NULL,
	[STATO] [int] NULL,
	[RAG_SOC] [int] NULL,
	[SESSO] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [char](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appolelecontratti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appolelecontratti](
	[Rete] [char](1) NULL,
	[Cod_Fiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appolelemaledetti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appolelemaledetti](
	[rete] [varchar](10) NULL,
	[codfis] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoleles80]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoleles80](
	[Rete] [varchar](1) NOT NULL,
	[Codice fiscale] [varchar](16) NOT NULL,
	[Data fase] [varchar](8) NULL,
	[Extrarendimento] [decimal](15, 2) NULL,
	[Investimento] [decimal](15, 2) NULL,
	[Previdenza] [decimal](15, 2) NULL,
	[Riserva] [decimal](15, 2) NULL,
	[Liquidità] [decimal](15, 2) NULL,
	[Risorse non allocate] [decimal](15, 2) NULL,
	[Conto Corrente] [decimal](15, 2) NULL,
	[Partita viaggiante] [decimal](15, 2) NOT NULL,
	[Totale CTV] [decimal](16, 2) NULL,
	[Var complessivo] [decimal](15, 3) NULL,
	[Var copertura] [decimal](15, 3) NULL,
	[Var MAX profilo finanziario] [decimal](15, 2) NULL,
	[RisksClass] [decimal](15, 3) NOT NULL,
	[RisksClassMax] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appom]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appom](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL,
	[isin] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appomau]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appomau](
	[dttrim] [decimal](9, 0) NOT NULL,
	[dtrife] [decimal](9, 0) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codconf] [varchar](11) NOT NULL,
	[tipprod] [varchar](5) NOT NULL,
	[codint] [varchar](12) NOT NULL,
	[subprod] [varchar](5) NOT NULL,
	[CTV] [decimal](38, 2) NULL,
	[NUM] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appomau2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appomau2](
	[dttrim] [decimal](9, 0) NOT NULL,
	[dtrife] [decimal](9, 0) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codconf] [varchar](11) NOT NULL,
	[tipprod] [varchar](5) NOT NULL,
	[codint] [varchar](12) NOT NULL,
	[subprod] [varchar](5) NOT NULL,
	[CTV] [decimal](38, 2) NULL,
	[NUM] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apporevocanoass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apporevocanoass](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apporevocanomig]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apporevocanomig](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apporevocanopro]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apporevocanopro](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoRFAzero]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoRFAzero](
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apporicodificamassiva]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apporicodificamassiva](
	[Vecchio] [nvarchar](255) NULL,
	[Nuovo] [nvarchar](255) NULL,
	[DataRicodifica] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoROL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoROL](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[DescrErr] [varchar](50) NOT NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoROLnull]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoROLnull](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Freq_Monitor] [varchar](1) NOT NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ApportiPrelievi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ApportiPrelievi](
	[Rete] [varchar](1) NOT NULL,
	[CodFis] [varchar](16) NOT NULL,
	[Casistica] [varchar](2) NOT NULL,
	[DettMovTrimPrec] [decimal](15, 2) NOT NULL,
	[DettMovTrimCorr] [decimal](15, 2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appos80]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appos80](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [int] NOT NULL,
	[FASE] [int] NOT NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [numeric](38, 3) NULL,
	[RISORSEALLOCATE] [numeric](38, 3) NULL,
	[RISORSENONALLOCATE] [numeric](38, 3) NULL,
	[CONTOCORRENTE] [numeric](38, 3) NULL,
	[INVESTIMENTIINCORSO] [numeric](38, 3) NULL,
	[VAR_PERC_PTF] [numeric](12, 3) NULL,
	[MAX_VAR] [numeric](5, 2) NULL,
	[COPERTURA] [numeric](12, 3) NULL,
	[PROFILO] [smallint] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [varchar](5) NULL,
	[RISKCLASSMAX] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appos80_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appos80_2](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [int] NOT NULL,
	[FASE] [int] NOT NULL,
	[DATA_FASE] [varchar](8) NULL,
	[CONTROVALORE] [decimal](38, 3) NULL,
	[RISORSEALLOCATE] [decimal](38, 3) NULL,
	[RISORSENONALLOCATE] [decimal](38, 3) NULL,
	[CONTOCORRENTE] [decimal](38, 3) NULL,
	[INVESTIMENTIINCORSO] [decimal](38, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [smallint] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [varchar](5) NULL,
	[RISKCLASSMAX] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appos80_3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appos80_3](
	[chiaveclientepb] [int] NOT NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [int] NOT NULL,
	[FASE] [int] NOT NULL,
	[DATA_FASE] [varchar](8) NULL,
	[CONTROVALORE] [decimal](38, 3) NULL,
	[RISORSEALLOCATE] [decimal](38, 3) NULL,
	[RISORSENONALLOCATE] [decimal](38, 3) NULL,
	[CONTOCORRENTE] [decimal](38, 3) NULL,
	[INVESTIMENTIINCORSO] [decimal](38, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [smallint] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [varchar](5) NULL,
	[RISKCLASSMAX] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apposollecitonoass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apposollecitonoass](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apposollecitonomig]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apposollecitonomig](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[apposollecitonopro]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[apposollecitonopro](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[Data_Comunicazione_Host] [datetime] NULL,
	[ID_ELAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appotab]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appotab](
	[Rete] [char](1) NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[old_Rol] [char](1) NULL,
	[new_Rol] [varchar](1) NULL,
	[WS_Rol] [varchar](512) NOT NULL,
	[old_TipoContratto] [smallint] NULL,
	[new_TipoContratto] [int] NULL,
	[DataInvio] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appotodel]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appotodel](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appoultimilele]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appoultimilele](
	[identificativo] [int] NOT NULL,
	[rete] [char](1) NOT NULL,
	[cliente] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[AppoVContratti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[AppoVContratti](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[data_fineAvanzato] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[appovisibili]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[appovisibili](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](16) NOT NULL,
	[idreport] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[backup_testo_lettera_Accettazione_Rosaspina_Diagonsi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[backup_testo_lettera_Accettazione_Rosaspina_Diagonsi](
	[ID] [smallint] NOT NULL,
	[TESTO] [varchar](2000) NOT NULL,
	[OGGETTO] [varchar](300) NOT NULL,
	[FIRMA] [varchar](200) NOT NULL,
	[DESCRIZIONE] [varchar](300) NOT NULL,
	[ID_ELAB] [int] NULL,
	[pagina] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[bonifica_S80_fase2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bonifica_S80_fase2](
	[rischioCredito] [int] NULL,
	[rischioCreditoMax] [varchar](50) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [decimal](18, 0) NULL,
	[FASE] [decimal](18, 0) NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEALLOCATE] [decimal](15, 2) NULL,
	[RISORSENONALLOCATE] [decimal](15, 2) NULL,
	[CONTOCORRENTE] [decimal](15, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](15, 2) NULL,
	[VAR_PERC_PTF] [decimal](15, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [smallint] NULL,
	[RISKCLASSMAX] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[bonifica_s80_fase2_init]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bonifica_s80_fase2_init](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [decimal](18, 0) NULL,
	[FASE] [decimal](18, 0) NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEALLOCATE] [decimal](15, 2) NULL,
	[RISORSENONALLOCATE] [decimal](15, 2) NULL,
	[CONTOCORRENTE] [decimal](15, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](15, 2) NULL,
	[VAR_PERC_PTF] [decimal](15, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [smallint] NULL,
	[RISKCLASSMAX] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[bonifica_s80_Operazioni_In_corso]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bonifica_s80_Operazioni_In_corso](
	[codfis] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[operazioni_in_corso] [decimal](38, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[C6MART.PATRIMONIO_DUPLICATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[C6MART.PATRIMONIO_DUPLICATI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[DtStamp] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[C6MartPeriodico.AssetClassPrometeia]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[C6MartPeriodico.AssetClassPrometeia](
	[CodIsin] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodAdeguatezza] [varchar](18) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[C6MartPeriodico.OrdineMacroAsset]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[C6MartPeriodico.OrdineMacroAsset](
	[Asset] [varchar](10) NULL,
	[Descrizione] [varchar](30) NULL,
	[Ordine] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cambio_cap]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cambio_cap](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[acap] [varchar](5) NULL,
	[bcap] [nvarchar](255) NULL,
	[aindirizzo] [varchar](44) NULL,
	[bindirizzo] [nvarchar](255) NULL,
	[acitta] [varchar](25) NULL,
	[bcitta] [nvarchar](255) NULL,
	[aprov] [varchar](2) NULL,
	[bprovincia] [nvarchar](255) NULL,
	[apresso] [varchar](50) NULL,
	[bpresso] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cambio_indirizzi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cambio_indirizzi](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[acap] [varchar](5) NULL,
	[bcap] [nvarchar](255) NULL,
	[acitta] [varchar](25) NULL,
	[bcitta] [nvarchar](255) NULL,
	[aprov] [varchar](2) NULL,
	[bprovincia] [nvarchar](255) NULL,
	[apresso] [varchar](50) NULL,
	[bpresso] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cambio_presso]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cambio_presso](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[acap] [varchar](5) NULL,
	[bcap] [nvarchar](255) NULL,
	[aindirizzo] [varchar](44) NULL,
	[bindirizzo] [nvarchar](255) NULL,
	[acitta] [varchar](25) NULL,
	[bcitta] [nvarchar](255) NULL,
	[aprov] [varchar](2) NULL,
	[bprovincia] [nvarchar](255) NULL,
	[apresso] [varchar](50) NULL,
	[bpresso] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cambio_prov]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cambio_prov](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[acap] [varchar](5) NULL,
	[bcap] [nvarchar](255) NULL,
	[aindirizzo] [varchar](44) NULL,
	[bindirizzo] [nvarchar](255) NULL,
	[acitta] [varchar](25) NULL,
	[bcitta] [nvarchar](255) NULL,
	[aprov] [varchar](2) NULL,
	[bprovincia] [nvarchar](255) NULL,
	[apresso] [varchar](50) NULL,
	[bpresso] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cambio_tot]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cambio_tot](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[acap] [varchar](5) NULL,
	[bcap] [nvarchar](255) NULL,
	[aindirizzo] [varchar](44) NULL,
	[bindirizzo] [nvarchar](255) NULL,
	[acitta] [varchar](25) NULL,
	[bcitta] [nvarchar](255) NULL,
	[aprov] [varchar](2) NULL,
	[bprovincia] [nvarchar](255) NULL,
	[apresso] [varchar](50) NULL,
	[bpresso] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[campione_testlock]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[campione_testlock](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CampioneReport]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CampioneReport](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[C1] [int] NULL,
	[C2] [int] NULL,
	[C3] [int] NULL,
	[C4] [int] NULL,
	[C5] [int] NULL,
	[C6] [int] NULL,
	[C7] [int] NULL,
	[C8] [int] NULL,
	[C9] [int] NULL,
	[C10] [int] NULL,
	[C11] [int] NULL,
	[C12] [int] NULL,
	[C13] [int] NULL,
	[C14] [int] NULL,
	[C15] [int] NULL,
	[C16] [int] NULL,
	[C17] [int] NULL,
	[C18] [int] NULL,
	[C19] [int] NULL,
	[C20] [int] NULL,
	[C21] [int] NULL,
	[C22] [int] NULL,
	[C23] [int] NULL,
	[C24] [int] NULL,
	[C25] [int] NULL,
	[C26] [int] NULL,
	[C27] [int] NULL,
	[C28] [int] NULL,
	[C29] [int] NULL,
	[C30] [int] NULL,
	[C31] [int] NULL,
	[C32] [int] NULL,
	[C33] [int] NULL,
	[C34] [int] NULL,
	[C35] [int] NULL,
	[C36] [int] NULL,
	[C37] [int] NULL,
	[C38] [int] NULL,
	[C39] [int] NULL,
	[C40] [int] NULL,
	[C41] [int] NULL,
	[C42] [int] NULL,
	[C43] [int] NULL,
	[c44] [int] NULL,
	[c45] [int] NULL,
	[c46] [int] NULL,
	[c47] [int] NULL,
	[c48] [int] NULL,
	[c49] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CampioneReportBCKlele]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CampioneReportBCKlele](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[C1] [int] NULL,
	[C2] [int] NULL,
	[C3] [int] NULL,
	[C4] [int] NULL,
	[C5] [int] NULL,
	[C6] [int] NULL,
	[C7] [int] NULL,
	[C8] [int] NULL,
	[C9] [int] NULL,
	[C10] [int] NULL,
	[C11] [int] NULL,
	[C12] [int] NULL,
	[C13] [int] NULL,
	[C14] [int] NULL,
	[C15] [int] NULL,
	[C16] [int] NULL,
	[C17] [int] NULL,
	[C18] [int] NULL,
	[C19] [int] NULL,
	[C20] [int] NULL,
	[C21] [int] NULL,
	[C22] [int] NULL,
	[C23] [int] NULL,
	[C24] [int] NULL,
	[C25] [int] NULL,
	[C26] [int] NULL,
	[C27] [int] NULL,
	[C28] [int] NULL,
	[C29] [int] NULL,
	[C30] [int] NULL,
	[C31] [int] NULL,
	[C32] [int] NULL,
	[C33] [int] NULL,
	[C34] [int] NULL,
	[C35] [int] NULL,
	[C36] [int] NULL,
	[C37] [int] NULL,
	[C38] [int] NULL,
	[C39] [int] NULL,
	[C40] [int] NULL,
	[C41] [int] NULL,
	[C42] [int] NULL,
	[C43] [int] NULL,
	[c44] [int] NULL,
	[c45] [int] NULL,
	[c46] [int] NULL,
	[c47] [int] NULL,
	[c48] [int] NULL,
	[c49] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[campioneReportGiornaliero]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[campioneReportGiornaliero](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CampioneReportOld]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CampioneReportOld](
	[Cod_fiscale] [varchar](16) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[provenienza] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[campioneReportTemp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[campioneReportTemp](
	[Cod_fiscale] [varchar](16) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[provenienza] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CampioneTrimestrale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CampioneTrimestrale](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[provenienza] [varchar](50) NOT NULL,
	[TipoContratto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[campionetrimestrale_casi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[campionetrimestrale_casi](
	[tot] [int] NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[c1] [int] NULL,
	[c2] [int] NULL,
	[c3] [int] NULL,
	[c4] [int] NULL,
	[c5] [int] NULL,
	[c6] [int] NULL,
	[c7] [int] NULL,
	[c8] [int] NULL,
	[c9] [int] NULL,
	[c10] [int] NULL,
	[c11] [int] NULL,
	[c12] [int] NULL,
	[c13] [int] NULL,
	[c14] [int] NULL,
	[c15] [int] NULL,
	[c16] [int] NULL,
	[c17] [int] NULL,
	[c18] [int] NULL,
	[c19] [int] NULL,
	[c20] [int] NULL,
	[c21] [int] NULL,
	[c22] [int] NULL,
	[c23] [int] NULL,
	[c24] [int] NULL,
	[c25] [int] NULL,
	[c26] [int] NULL,
	[c27] [int] NULL,
	[c28] [int] NULL,
	[c29] [int] NULL,
	[c30] [int] NULL,
	[c31] [int] NULL,
	[c32] [int] NULL,
	[c33] [int] NULL,
	[c34] [int] NULL,
	[c35] [int] NULL,
	[c36] [int] NULL,
	[c37] [int] NULL,
	[c38] [int] NULL,
	[c39] [int] NULL,
	[c40] [int] NULL,
	[c41] [int] NULL,
	[c42] [int] NULL,
	[c43] [int] NULL,
	[c44] [int] NULL,
	[c45] [int] NULL,
	[c46] [int] NULL,
	[c47] [int] NULL,
	[c48] [int] NULL,
	[c49] [int] NULL,
	[c50] [int] NULL,
	[c51] [int] NULL,
	[c52] [int] NULL,
	[c53] [int] NULL,
	[c54] [int] NULL,
	[c55] [int] NULL,
	[c56] [int] NULL,
	[c57] [int] NULL,
	[c58] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[campionetrimestrale2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[campionetrimestrale2](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[provenienza] [varchar](50) NOT NULL,
	[TipoContratto] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CaricamentoMassivo_LUCA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CaricamentoMassivo_LUCA](
	[chiaveCaricamento] [bigint] IDENTITY(1,1) NOT NULL,
	[ChiaveClientePB] [bigint] NOT NULL,
	[Cod] [varchar](10) NULL,
	[Datariq] [datetime] NULL,
	[TokenSimPB] [decimal](18, 2) NULL,
	[Dataese] [datetime] NULL,
	[Esito] [int] NOT NULL,
	[Utente] [varchar](20) NULL,
	[Var_PTF] [float] NULL,
	[Dtscaque] [datetime] NULL,
	[Iscontr6] [float] NULL,
	[Movimentazioni] [float] NULL,
	[Div_PTF] [float] NULL,
	[Matrice] [float] NULL,
	[Errori] [varchar](4000) NULL,
	[operazione] [varchar](100) NULL,
 CONSTRAINT [PK_CaricamentoMassivo] PRIMARY KEY CLUSTERED 
(
	[chiaveCaricamento] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cf_patrimonio_imm]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cf_patrimonio_imm](
	[cod_fiscale] [varchar](16) NOT NULL,
	[maxid_elab] [int] NULL,
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CFdaRicodificare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CFdaRicodificare](
	[TRCOM_CODCONF] [nvarchar](255) NULL,
	[baseCF_vecchio] [nvarchar](255) NULL,
	[histCF_nuovo] [nvarchar](255) NULL,
	[vinfoCF] [nvarchar](255) NULL,
	[TRCOM_CAUSALE] [nvarchar](255) NULL,
	[res] [nvarchar](255) NULL,
	[F7] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CFProfScadNostriOtt]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CFProfScadNostriOtt](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CFProfScadOtt]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CFProfScadOtt](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODMAN] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL,
	[COGNOME] [nvarchar](255) NULL,
	[NOME] [nvarchar](255) NULL,
	[CODAGE] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CFRfaNostriOtt]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CFRfaNostriOtt](
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CFRFAOtt]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CFRFAOtt](
	[RETE] [nvarchar](255) NULL,
	[DTTRIM] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODANA] [nvarchar](255) NULL,
	[CODMAN] [nvarchar](255) NULL,
	[CODAGE] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL,
	[CONTO] [nvarchar](255) NULL,
	[STATO] [nvarchar](255) NULL,
	[POSMAND] [nvarchar](255) NULL,
	[COGNOME] [nvarchar](255) NULL,
	[NOME] [nvarchar](255) NULL,
	[SEX] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Check_DifferenceInCTVPerClient]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Check_DifferenceInCTVPerClient](
	[RETE] [varchar](1) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[S57CTV] [decimal](38, 3) NULL,
	[S43_S47CTV] [decimal](38, 3) NULL,
	[S10CTV] [decimal](38, 3) NULL,
	[S75CTV] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Check_DifferenceInCTVPerClientPerArea]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Check_DifferenceInCTVPerClientPerArea](
	[RETE] [varchar](1) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[NeedArea] [varchar](20) NULL,
	[S57CTV] [decimal](38, 3) NULL,
	[S43CTV] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Check_DifferenceInVARPerClient]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Check_DifferenceInVARPerClient](
	[RETE] [varchar](1) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[S57VAR] [decimal](38, 3) NULL,
	[S75VAR] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Check_TotalPercPerClient]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Check_TotalPercPerClient](
	[RETE] [varchar](1) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[S10Perc] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CheckMifidNostra]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CheckMifidNostra](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
 CONSTRAINT [PK_check_mifid] PRIMARY KEY CLUSTERED 
(
	[rete] ASC,
	[codfis] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CheckMifidScirocco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CheckMifidScirocco](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CheckQuadraturaProfiloRfaMifid]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CheckQuadraturaProfiloRfaMifid](
	[Rete] [varchar](1) NOT NULL,
	[Codice_Fiscale] [varchar](16) NOT NULL,
	[Tipo_Controllo] [varchar](50) NOT NULL,
	[Data_Operazione] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CheckQuadraturaProfiloRfaMifid_test]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CheckQuadraturaProfiloRfaMifid_test](
	[Rete] [varchar](1) NOT NULL,
	[Codice_Fiscale] [varchar](16) NOT NULL,
	[Tipo_Controllo] [varchar](50) NOT NULL,
	[Data_Operazione] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CheckRfaNostra]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CheckRfaNostra](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
 CONSTRAINT [PK_check_rfa] PRIMARY KEY CLUSTERED 
(
	[rete] ASC,
	[codfis] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CheckRfaScirocco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CheckRfaScirocco](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[clienti_doria]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[clienti_doria](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ClientiEsclusiNelCampione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientiEsclusiNelCampione](
	[Rete] [varchar](1) NULL,
	[FiscalCode] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ClientiMonitorati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientiMonitorati](
	[codfis] [nvarchar](16) NULL,
	[rete] [nvarchar](1) NULL,
	[dtavmon] [nvarchar](10) NULL,
	[altro] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[clientimonitoratiScirocco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[clientimonitoratiScirocco](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[DTAVMON] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ClientiMonitoratiTesi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientiMonitoratiTesi](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[DTAVMON] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ClientiRaccomandata]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientiRaccomandata](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[note] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[clientiRaccomandataTrimestrale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[clientiRaccomandataTrimestrale](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[a] [varchar](1) NOT NULL,
	[t] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ClientiSeiRaccomandata]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientiSeiRaccomandata](
	[Cognome] [nvarchar](50) NULL,
	[Nome] [nvarchar](50) NULL,
	[CodiceFiscale] [nvarchar](50) NULL,
	[Contratto] [nvarchar](50) NULL,
	[TipoReport] [nvarchar](50) NULL,
	[Rete] [nvarchar](50) NULL,
	[CognomePB] [nvarchar](50) NULL,
	[NomePB] [nvarchar](50) NULL,
	[CodicePB] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ClientiSettembre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientiSettembre](
	[Rete] [nvarchar](255) NULL,
	[Cod_Agente] [nvarchar](255) NULL,
	[Cod_Fiscale] [nvarchar](255) NULL,
	[CodiceContratto] [nvarchar](255) NULL,
	[Freq_Monitoraggio] [nvarchar](255) NULL,
	[FREQ_DIAGNOSI] [nvarchar](255) NULL,
	[Data_FineAvanzato] [nvarchar](255) NULL,
	[TIP_CONTRATTO] [nvarchar](255) NULL,
	[TIP_RIATTIVAZIONE] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[codageappo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[codageappo](
	[chiaveClientePB] [int] NOT NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[COD_AGENTE_OLD] [varchar](6) NULL,
	[COD_AGENTE_NEW] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Colori]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Colori](
	[Tipo] [nvarchar](50) NOT NULL,
	[Codice] [nvarchar](10) NOT NULL,
	[Ordinamento] [int] NULL,
	[Descrizione breve] [nvarchar](255) NULL,
	[Descrizione estesa] [nvarchar](255) NULL,
	[HexColor] [nvarchar](255) NULL,
	[Red] [smallint] NULL,
	[Green] [smallint] NULL,
	[Blue] [smallint] NULL,
 CONSTRAINT [PK_Sheet1$] PRIMARY KEY CLUSTERED 
(
	[Tipo] ASC,
	[Codice] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[cono_bck3112]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[cono_bck3112](
	[OID$] [varchar](35) NULL,
	[VERSION$] [numeric](19, 0) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [numeric](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [numeric](19, 7) NULL,
	[F_PPROJECT_P_46507] [varchar](35) NULL,
	[C_QUANTILE50_C47E0] [numeric](19, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[consulenza_fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[consulenza_fc](
	[chiaveClientePB] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[nomeProgetto] [varchar](50) NULL,
	[chiaveProgetto] [bigint] NOT NULL,
	[area] [varchar](10) NOT NULL,
	[tipoProgetto] [char](1) NULL,
	[StrType] [varchar](2) NULL,
	[Complessita] [int] NULL,
	[DescrizioneEmittente] [varchar](200) NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[TipoProdotto] [varchar](20) NULL,
	[CodSottoprodotto] [varchar](5) NULL,
	[CodInterno] [varchar](18) NULL,
	[CodMaf] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[POSITION_ID] [varchar](1) NOT NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[orizzonteTemporale] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ContrattoSEI_APPO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ContrattoSEI_APPO](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[PIva_Fiduciaria] [varchar](11) NULL,
	[Data_Sott] [datetime] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Data_Perf_Base] [datetime] NULL,
	[Data_Perf] [datetime] NULL,
	[Fascia_CPP] [varchar](5) NULL,
	[Email] [varchar](50) NULL,
	[Indirizzo] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[Citta] [varchar](25) NULL,
	[Prov] [varchar](2) NULL,
	[Nazione] [varchar](35) NULL,
	[Presso] [varchar](50) NULL,
	[Data_Inizio] [datetime] NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_DiagnosiPrec] [varchar](1) NULL,
	[Freq_MonitorPrec] [varchar](1) NULL,
	[Data_InizioConsInv] [datetime] NULL,
	[Data_InizioBase] [datetime] NULL,
	[Data_FineBase] [datetime] NULL,
	[Data_InizioAvanzato] [datetime] NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[ProgressivoInvio] [varchar](8) NULL,
	[GenerazioneReport] [varchar](1) NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[DataUltimoInvio] [datetime] NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[PartViaDisinv] [varchar](1) NULL,
	[NumSolleciti] [smallint] NULL,
	[Data_UltimoSollecito] [datetime] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_UltimaRevoca] [datetime] NULL,
	[Note] [varchar](1024) NULL,
	[Data_Invio_Diagnosi_Trimestrale] [datetime] NULL,
	[Data_Invio_Monitoraggio_Trimestrale] [datetime] NULL,
	[ProfiloAttivo] [bit] NULL,
	[Rol] [char](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[CORREZIONE_PV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[CORREZIONE_PV](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [decimal](18, 0) NULL,
	[FASE] [decimal](18, 0) NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEALLOCATE] [decimal](15, 2) NULL,
	[RISORSENONALLOCATE] [decimal](15, 2) NULL,
	[CONTOCORRENTE] [decimal](15, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](15, 2) NULL,
	[VAR_PERC_PTF] [decimal](15, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[correzione_pv2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[correzione_pv2](
	[cod_fiscale] [varchar](16) NULL,
	[rete] [varchar](1) NULL,
	[conto] [int] NULL,
	[area] [varchar](3) NULL,
	[investimentiincorso] [decimal](15, 2) NULL,
	[newpv] [decimal](26, 13) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Cruscotto_Archiviazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Cruscotto_Archiviazione](
	[flag_archiviazione] [smallint] NULL,
	[flag_nastro] [smallint] NULL,
	[flag_canc] [smallint] NULL,
	[num_report_da_elab] [int] NULL,
	[num_report_su_nastro] [int] NULL,
	[num_report_canc_da_db] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Cruscotto_Checklist_Trimestrale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Cruscotto_Checklist_Trimestrale](
	[scope] [varchar](20) NULL,
	[activity_type] [text] NULL,
	[quarterly] [varchar](5) NULL,
	[id_activity] [int] NULL,
	[activity] [text] NULL,
	[description] [text] NULL,
	[technical_details] [text] NULL,
	[period] [text] NULL,
	[necessary_checks] [text] NULL,
	[notes] [text] NULL,
	[actions] [text] NULL,
	[operation_call] [text] NULL,
	[date_of_the_action] [datetime] NULL,
	[outcome] [varchar](20) NULL,
	[status] [varchar](10) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Cruscotto_Trimestrale_SEI_Processi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Cruscotto_Trimestrale_SEI_Processi](
	[ID_STEP] [varchar](10) NULL,
	[ATTIVITA] [text] NULL,
	[DESC_ATTIVITA] [text] NULL,
	[SEMAFORO] [varchar](10) NULL,
	[DATA_INIZIO] [datetime] NULL,
	[DATA_FINE] [datetime] NULL,
	[NOTE] [text] NOT NULL,
	[VISIBILITA] [varchar](1) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[datathreadlelee]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[datathreadlelee](
	[Rete] [char](1) NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [char](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisInv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[tip_contratto] [int] NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModellotMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[NoMonitoraggio] [int] NOT NULL,
	[ContrattoOld] [int] NOT NULL,
	[IdReportPDFDiagnosi] [int] NOT NULL,
	[IdReportPDFMonitoraggio] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[datiRol2_vm]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[datiRol2_vm](
	[CODFIS] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODCONTRATTO] [varchar](11) NOT NULL,
	[EMAIL] [varchar](512) NULL,
	[ALERTROL] [varchar](512) NULL,
	[STATOROL] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[disallineati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[disallineati](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[ORDINAMENTO_PROGETTO] [int] NOT NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[disallineati_appomau]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[disallineati_appomau](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](19) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[mon_area] [varchar](4) NOT NULL,
	[bf_ordprorg] [int] NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[mon_codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[disallineati_originali]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[disallineati_originali](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](19) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[mon_area] [varchar](4) NOT NULL,
	[bf_ordprorg] [int] NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[mon_codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[disallineati2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[disallineati2](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](19) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[mon_area] [varchar](4) NOT NULL,
	[bf_ordprorg] [int] NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[mon_codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[disallineati2BCK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[disallineati2BCK](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](19) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[mon_area] [varchar](4) NOT NULL,
	[bf_ordprorg] [int] NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[mon_codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[disallineati2BCKandrea]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[disallineati2BCKandrea](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](19) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[mon_area] [varchar](4) NOT NULL,
	[bf_ordprorg] [int] NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[mon_codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[DisallineatiOrdProgNull]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DisallineatiOrdProgNull](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[ID_AREA] [varchar](512) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[PERC_AREA] [numeric](19, 0) NULL,
	[CTV_PROGETTO] [numeric](19, 7) NULL,
	[CTV_AREA] [numeric](19, 7) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[CTV_TOTALE] [int] NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[ID_CONTRATTO] [int] NULL,
	[ORDINAMENTO_PROGETTO] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[DiscordanzaPB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DiscordanzaPB](
	[chiaveclientepb] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[PB_PromotoreBancario] [varchar](6) NULL,
	[PB_ContrattoBase] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[DOPPIO_PROG_LIQ]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DOPPIO_PROG_LIQ](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[ordinamento_progetto] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[doppio_progetto_liquidita]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[doppio_progetto_liquidita](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[doria]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[doria](
	[rete] [varchar](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[commento] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[doria_catalogo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[doria_catalogo](
	[CodInterno] [varchar](18) NULL,
	[CodIsin] [varchar](18) NULL,
	[NomeProdotto] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[DRANACB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DRANACB](
	[DRANACB_DTSEM] [decimal](9, 0) NULL,
	[DRANACB_RETE] [char](1) NULL,
	[DRANACB_CODFIS] [char](16) NULL,
	[DRANACB_CODMAN] [char](6) NULL,
	[DRANACB_TPLETTERA] [char](1) NULL,
	[DRANACB_CODICEPB] [char](6) NULL,
	[DRANACB_CODCONF] [char](11) NULL,
	[DRANACB_TIPOREND] [char](1) NULL,
	[DRANACB_CLIPART] [char](1) NULL,
	[DRANACB_NOME] [char](25) NULL,
	[DRANACB_COGNOME] [char](25) NULL,
	[DRANACB_SEX] [char](1) NULL,
	[DRANACB_INDIR] [char](44) NULL,
	[DRANACB_CAP] [char](5) NULL,
	[DRANACB_CITTA] [char](25) NULL,
	[DRANACB_PROV] [char](2) NULL,
	[DRANACB_NAZION] [char](25) NULL,
	[DRANACB_PRESSO] [char](32) NULL,
	[DRANACB_FL_DIPEND] [char](1) NULL,
	[DRANACB_FL_ALLEGATO] [char](1) NULL,
	[DRANACB_STATOROL] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[dranacb_0306]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[dranacb_0306](
	[DRANACB_DTSEM] [decimal](9, 0) NULL,
	[DRANACB_RETE] [char](1) NULL,
	[DRANACB_CODFIS] [char](16) NULL,
	[DRANACB_CODMAN] [char](6) NULL,
	[DRANACB_TPLETTERA] [char](1) NULL,
	[DRANACB_CODICEPB] [char](6) NULL,
	[DRANACB_CODCONF] [char](11) NULL,
	[DRANACB_TIPOREND] [char](1) NULL,
	[DRANACB_CLIPART] [char](1) NULL,
	[DRANACB_NOME] [char](25) NULL,
	[DRANACB_COGNOME] [char](25) NULL,
	[DRANACB_SEX] [char](1) NULL,
	[DRANACB_INDIR] [char](44) NULL,
	[DRANACB_CAP] [char](5) NULL,
	[DRANACB_CITTA] [char](25) NULL,
	[DRANACB_PROV] [char](2) NULL,
	[DRANACB_NAZION] [char](25) NULL,
	[DRANACB_PRESSO] [char](32) NULL,
	[DRANACB_FL_DIPEND] [char](1) NULL,
	[DRANACB_FL_ALLEGATO] [char](1) NULL,
	[DRANACB_STATOROL] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[elenco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[elenco](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[TIPPROD] [varchar](4) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CODPROD] [varchar](2) NOT NULL,
	[CONTO] [varchar](12) NOT NULL,
	[CUSTGAR] [varchar](1) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[CODABI] [varchar](8) NOT NULL,
	[TERMID] [varchar](8) NOT NULL,
	[ANNO] [decimal](3, 0) NOT NULL,
	[PROG] [decimal](9, 0) NOT NULL,
	[DTINGRESSO] [decimal](9, 0) NOT NULL,
	[ISTITUTO] [decimal](5, 0) NOT NULL,
	[TIPO_PRODOTT] [varchar](3) NOT NULL,
	[CONTO_OP] [varchar](25) NOT NULL,
	[STRUM_FIN] [varchar](15) NOT NULL,
	[ID_MOVIM] [varchar](35) NOT NULL,
	[TIPO_OP] [varchar](1) NOT NULL,
	[RESTART] [varchar](1) NOT NULL,
	[DT_ING_USC] [varchar](10) NOT NULL,
	[ING_USC] [decimal](12, 3) NOT NULL,
	[COD_ERR] [varchar](4) NOT NULL,
	[DESCR_ERR] [varchar](60) NOT NULL,
	[DT_ELAB] [varchar](10) NOT NULL,
	[DT_INS] [varchar](10) NOT NULL,
	[PCT] [varchar](3) NOT NULL,
	[PROVENIENZA] [varchar](1) NOT NULL,
	[isin] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[EmailConfiguration]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[EmailConfiguration](
	[id] [nvarchar](128) NOT NULL,
	[from] [nvarchar](1024) NULL,
	[toTest] [nvarchar](1024) NULL,
	[toBank] [nvarchar](1024) NULL,
	[cc] [nvarchar](1024) NULL,
	[bcc] [nvarchar](1024) NULL,
	[subject] [nvarchar](1024) NULL,
	[body] [varchar](8000) NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[emailmigrazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[emailmigrazione](
	[codfis] [varchar](18) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[emailnoass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[emailnoass](
	[codfis] [varchar](18) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[emailnopro]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[emailnopro](
	[codfis] [varchar](18) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ErrorePrometia]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ErrorePrometia](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](220) NULL,
	[CodiceProdotto] [varchar](16) NULL,
	[Piazza] [varchar](1) NOT NULL,
	[CodiceValuta] [varchar](1) NOT NULL,
	[Classe] [varchar](1) NOT NULL,
	[CtvNominale] [numeric](38, 3) NULL,
	[CtvReale] [numeric](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ErroriGenerator]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ErroriGenerator](
	[rete] [varchar](1) NULL,
	[codfis] [varchar](16) NULL,
	[descrerr] [varchar](100) NULL,
	[datains] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[EsclusioneContrattiPerQuadratura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[EsclusioneContrattiPerQuadratura](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[codicecontratto] [varchar](11) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Excluded_luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Excluded_luca](
	[Rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[DescrErr] [varchar](8000) NULL,
	[DataIns] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[excludedlist]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[excludedlist](
	[Column 0] [nvarchar](50) NULL,
	[Column 1] [nvarchar](50) NULL,
	[Column 2] [nvarchar](50) NULL,
	[Column 3] [nvarchar](50) NULL,
	[Column 4] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[fase3_giugno]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[fase3_giugno](
	[fase] [int] NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[DataFase] [datetime] NULL,
	[VarMassimoProfiloFinanziario] [decimal](5, 2) NULL,
	[VarComplessivo] [numeric](12, 3) NULL,
	[Copertura] [decimal](12, 3) NOT NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RiskClassString] [varchar](4) NULL,
	[RiskClassMaxString] [varchar](4) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[fede233_na]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[fede233_na](
	[rete] [nvarchar](255) NULL,
	[agente] [nvarchar](255) NULL,
	[codfis] [nvarchar](255) NULL,
	[piva] [nvarchar](255) NULL,
	[codman] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[fiduciariecontrollare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[fiduciariecontrollare](
	[codiceContratto] [nvarchar](255) NULL,
	[presso] [nvarchar](255) NULL,
	[dtvalid] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[FiltroCruscottoGiornaliero]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[FiltroCruscottoGiornaliero](
	[Rete] [varchar](1) NULL,
	[Cod_Fiscale] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Foglio1$]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Foglio1$](
	[DTTRIM] [nvarchar](255) NULL,
	[DTRIFE] [nvarchar](255) NULL,
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODMAN] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL,
	[CODPROD] [nvarchar](255) NULL,
	[SUBPROD] [nvarchar](255) NULL,
	[ISIN] [nvarchar](255) NULL,
	[CTV] [nvarchar](255) NULL,
	[PREZZO] [nvarchar](255) NULL,
	[QUOTE] [nvarchar](255) NULL,
	[PREZZOMAX] [nvarchar](255) NULL,
	[DTPREZZOMAX] [nvarchar](255) NULL,
	[PREZZOPROT] [nvarchar](255) NULL,
	[CTRVIMPPROT] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GESTIONE_C6Parametri]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GESTIONE_C6Parametri](
	[Nome] [varchar](50) NOT NULL,
	[Valore] [varchar](255) NOT NULL,
	[Descrizione] [varchar](255) NULL,
 CONSTRAINT [PK_GESTIONE_Parametri] PRIMARY KEY CLUSTERED 
(
	[Nome] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GESTIONE_C6SezioneDatiComuni]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GESTIONE_C6SezioneDatiComuni](
	[id] [int] NOT NULL,
	[idReport] [varchar](50) NOT NULL,
	[queryOracle] [varchar](255) NULL,
	[ordineQuery] [int] NULL,
	[querySql] [varchar](255) NULL,
	[ordineQuerySql] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GESTIONE_EMAIL_bck0913]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GESTIONE_EMAIL_bck0913](
	[Email_Id] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[CodicePB] [varchar](6) NOT NULL,
	[SistemiOperativi] [varchar](1) NULL,
	[Tipo] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Inviata] [varchar](1) NULL,
	[Data_Invio] [datetime] NULL,
	[ID_ELAB] [int] NULL,
	[Data_Comunicazione_Host] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GESTIONE_PDF_FTP_bk07052025]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GESTIONE_PDF_FTP_bk07052025](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GESTIONE_Report]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GESTIONE_Report](
	[IdReport] [int] NOT NULL,
	[Nome] [varchar](70) NOT NULL,
	[IdReportModello] [int] NULL,
	[Descrizione] [varchar](250) NULL,
	[DtCreazione] [datetime] NULL,
	[DtCancellazione] [datetime] NULL,
	[FlgModello] [bit] NULL,
	[TpReport] [smallint] NOT NULL,
	[Utente] [varchar](13) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GETDATATHREAD_FC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GETDATATHREAD_FC](
	[Rete] [char](1) NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [char](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisInv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[tip_contratto] [int] NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModellotMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[NoMonitoraggio] [int] NOT NULL,
	[ContrattoOld] [int] NOT NULL,
	[IdReportPDFDiagnosi] [int] NOT NULL,
	[IdReportPDFMonitoraggio] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GETDATATHREAD_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GETDATATHREAD_OLD](
	[Rete] [varchar](1) NOT NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [varchar](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisInv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModellotMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[tip_contratto] [smallint] NULL,
	[ContrattoOld] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GETDATATHREAD_RP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GETDATATHREAD_RP](
	[Rete] [char](1) NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [char](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisInv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[tip_contratto] [int] NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModellotMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[ContrattoOld] [int] NOT NULL,
	[NoMonitoraggio] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[gets_temp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[gets_temp](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL,
	[CodiceContratto] [varchar](11) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GLOBAL_ERROR](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Cancel] [bit] NULL,
	[ErrorCode] [int] NULL,
	[ErrorDescription] [text] NULL,
	[EventHandlerStartTime] [datetime] NULL,
	[LocaleID] [int] NULL,
	[Propagate] [bit] NULL,
	[SourceDescription] [text] NULL,
	[SourceID] [varchar](50) NULL,
	[SourceName] [varchar](50) NULL,
	[Time] [datetime] NULL,
	[ID_ELAB] [int] NULL,
 CONSTRAINT [PK_GLOBAL_ERROR] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Holidays]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Holidays](
	[HolidayDate] [date] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[HolidayDate] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[import_cas_adeg]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[import_cas_adeg](
	[Column 0] [nvarchar](50) NULL,
	[Column 1] [nvarchar](50) NULL,
	[Column 2] [nvarchar](50) NULL,
	[Column 3] [nvarchar](50) NULL,
	[Column 4] [nvarchar](50) NULL,
	[Column 5] [nvarchar](50) NULL,
	[Column 6] [nvarchar](50) NULL,
	[Column 7] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Incl_SpecCdT_Campione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Incl_SpecCdT_Campione](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[descrizione] [char](250) NULL,
	[data_inserimneto] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Incl_SpecCdT_Campione_20240319]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Incl_SpecCdT_Campione_20240319](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[descrizione] [char](250) NULL,
	[data_inserimneto] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Incl_SpecCdT_Campione_20240417]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Incl_SpecCdT_Campione_20240417](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[descrizione] [char](250) NULL,
	[data_inserimneto] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Incl_SpecCdT_Campione_20240619]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Incl_SpecCdT_Campione_20240619](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](50) NOT NULL,
	[descrizione] [char](250) NULL,
	[data_inserimneto] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[IndirizziAllineati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[IndirizziAllineati](
	[RETE] [nvarchar](255) NULL,
	[CDFIS] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL,
	[INDIRIZZO] [nvarchar](255) NULL,
	[CAP] [nvarchar](255) NULL,
	[CITTA] [nvarchar](255) NULL,
	[PROV] [nvarchar](255) NULL,
	[NATION] [nvarchar](255) NULL,
	[PRESSO] [nvarchar](255) NULL,
	[INDIRIZZO1] [nvarchar](255) NULL,
	[CAP1] [nvarchar](255) NULL,
	[CITTA1] [nvarchar](255) NULL,
	[PROV1] [nvarchar](255) NULL,
	[NAZIONE] [nvarchar](255) NULL,
	[NOTA] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Input_RP_PROM_TuttiIPortafogli2_Aprile]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Input_RP_PROM_TuttiIPortafogli2_Aprile](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](220) NULL,
	[CodiceProdotto] [varchar](16) NULL,
	[Piazza] [varchar](50) NULL,
	[CodiceValuta] [varchar](20) NULL,
	[Classe] [varchar](5) NULL,
	[CtvNominale] [numeric](38, 3) NULL,
	[CtvReale] [numeric](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Input_RP_PROM_TuttiIPortafogli2_Indicatore_Aprile]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Input_RP_PROM_TuttiIPortafogli2_Indicatore_Aprile](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](22) NULL,
	[Portafoglio] [varchar](219) NULL,
	[CodiceProdotto] [varchar](16) NULL,
	[CodiceAdeguatezza] [varchar](16) NULL,
	[Piazza] [varchar](50) NULL,
	[CodiceValuta] [varchar](20) NULL,
	[Classe] [varchar](5) NULL,
	[CtvNominale] [varchar](20) NULL,
	[CtvReale] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Input_RP_PROM_TuttiIPortafogli2_Indicatore_Marzo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Input_RP_PROM_TuttiIPortafogli2_Indicatore_Marzo](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](22) NULL,
	[Portafoglio] [varchar](219) NULL,
	[CodiceProdotto] [varchar](16) NULL,
	[CodiceAdeguatezza] [varchar](16) NULL,
	[Piazza] [varchar](50) NULL,
	[CodiceValuta] [varchar](20) NULL,
	[Classe] [varchar](5) NULL,
	[CtvNominale] [varchar](20) NULL,
	[CtvReale] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Input_RP_PROM_TuttiIPortafogli2_Marzo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Input_RP_PROM_TuttiIPortafogli2_Marzo](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](220) NULL,
	[CodiceProdotto] [varchar](16) NULL,
	[Piazza] [varchar](50) NULL,
	[CodiceValuta] [varchar](20) NULL,
	[Classe] [varchar](5) NULL,
	[CtvNominale] [numeric](38, 3) NULL,
	[CtvReale] [numeric](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Inreportfisico]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Inreportfisico](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[tip_contratto] [int] NULL,
	[datainvio] [datetime] NULL,
	[newRol] [varchar](512) NULL,
	[codicecontratto] [varchar](1) NOT NULL,
	[idreport] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Lanci]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Lanci](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[uid] [uniqueidentifier] NOT NULL,
	[Data] [datetime] NOT NULL,
	[MachineName] [nvarchar](32) NULL,
	[Username] [nvarchar](32) NOT NULL,
	[Tipo] [nvarchar](32) NOT NULL,
	[Client] [nvarchar](32) NOT NULL,
 CONSTRAINT [pkdbolanci] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[leledoppistampatiappo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[leledoppistampatiappo](
	[codicefiscale] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ListaClientiConIndicatori]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ListaClientiConIndicatori](
	[RETE] [varchar](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[PATRIMONIO] [varchar](255) NOT NULL,
	[CTV_AGGREG] [decimal](12, 2) NULL,
	[profiloCode] [smallint] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [varchar](16) NULL,
	[CREDITRISK] [int] NULL,
	[RISKCLASSSTRING] [varchar](10) NULL,
	[coperturaString] [varchar](16) NULL,
	[COVERAGESTRING] [varchar](10) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[PERCENTAGE] [decimal](12, 6) NULL,
	[Ordine] [smallint] NULL,
	[ULLY_PERC] [decimal](10, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[listaDaBloccare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[listaDaBloccare](
	[rete] [char](1) NULL,
	[codicefiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ListaDiagnosoDoppi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ListaDiagnosoDoppi](
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](16) NOT NULL,
	[tiporeport] [varchar](2) NOT NULL,
	[conteggio] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LOG_ESECUZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LOG_ESECUZIONE](
	[Nome] [varchar](128) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Tipo] [varchar](16) NULL,
	[Righe] [int] NULL,
	[Nota] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LOG_ESECUZIONE_ltmp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LOG_ESECUZIONE_ltmp](
	[Nome] [varchar](128) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Tipo] [varchar](16) NULL,
	[Righe] [int] NULL,
	[Nota] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LOG_ESECUZIONE_PERIODICO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LOG_ESECUZIONE_PERIODICO](
	[Nome] [varchar](128) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Tipo] [varchar](16) NULL,
	[Righe] [int] NULL,
	[Nota] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LOG_ESECUZIONE_PERIODICO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LOG_ESECUZIONE_PERIODICO_IMMOBILIARE](
	[Nome] [varchar](128) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Tipo] [varchar](16) NULL,
	[Righe] [int] NULL,
	[Nota] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[log_fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[log_fc](
	[Nome] [varchar](128) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Tipo] [varchar](16) NULL,
	[Righe] [int] NULL,
	[Nota] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LOG_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LOG_FTP](
	[Date] [datetime] NOT NULL,
	[WelcomeMessage] [varchar](150) NOT NULL,
	[BannerMessage] [varchar](150) NOT NULL,
	[ResponseURI] [varchar](150) NOT NULL,
	[StatusDescription] [varchar](150) NOT NULL,
	[StatusCode] [varchar](150) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Log_InvioSelectaTrimestrale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Log_InvioSelectaTrimestrale](
	[ID_Report] [int] NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Data_Generazione] [datetime] NOT NULL,
	[Data_Invio] [datetime] NOT NULL,
	[Tipo_Report] [varchar](1) NOT NULL,
 CONSTRAINT [PK_Log_InvioSelectaTrimestrale] PRIMARY KEY CLUSTERED 
(
	[ID_Report] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[LOTTO2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[LOTTO2](
	[Column 0] [nvarchar](50) NULL,
	[Column 1] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmp](
	[Nome] [varchar](128) NULL,
	[Inizio] [datetime] NULL,
	[Fine] [datetime] NULL,
	[Tipo] [varchar](16) NULL,
	[Righe] [int] NULL,
	[Nota] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmp_allmass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmp_allmass](
	[chiaveCaricamento] [bigint] NOT NULL,
	[ChiaveClientePB] [bigint] NOT NULL,
	[Cod] [varchar](10) NULL,
	[Datariq] [datetime] NULL,
	[TokenSimPB] [numeric](18, 2) NULL,
	[Dataese] [datetime] NULL,
	[Esito] [int] NOT NULL,
	[Utente] [varchar](20) NULL,
	[Var_PTF] [float] NULL,
	[Dtscaque] [datetime] NULL,
	[Iscontr6] [float] NULL,
	[Movimentazioni] [float] NULL,
	[Div_PTF] [float] NULL,
	[Matrice] [float] NULL,
	[Errori] [varchar](4000) NULL,
	[operazione] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmp_stampate_al_07_05_2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmp_stampate_al_07_05_2024](
	[RETE] [nvarchar](50) NULL,
	[COD_FISCALE_PIVA] [nvarchar](50) NULL,
	[CODICE_MANDATO] [nvarchar](50) NULL,
	[NOMINATIVO_CLIENTE] [nvarchar](100) NULL,
	[CONTRATTO] [nvarchar](50) NULL,
	[SERVIZIO] [nvarchar](50) NULL,
	[DTLETTBENV] [nvarchar](50) NULL,
	[DT_INSERT] [datetime2](7) NULL,
	[DT_VALIDAZ] [nvarchar](50) NULL,
	[DT_INV_PDC] [nvarchar](50) NULL,
	[CODAGE] [int] NULL,
	[GRADO] [int] NULL,
	[NOMINATIVO_CODAGE] [nvarchar](100) NULL,
	[CODAGE_50] [int] NULL,
	[NOMINATIVO_CODAGE_50] [nvarchar](100) NULL,
	[CODAGE_60] [int] NULL,
	[NOMINATIVO_CODAGE_60] [nvarchar](100) NULL,
	[CODAGE_70] [int] NULL,
	[NOMINATIVO_CODAGE_70] [nvarchar](100) NULL,
	[CODAGE_80] [int] NULL,
	[NOMINATIVO_CODAGE_80] [nvarchar](100) NULL,
	[column22] [nvarchar](1) NULL,
	[column23] [nvarchar](1) NULL,
	[column24] [nvarchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmp_tbNotAllocatedResources]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmp_tbNotAllocatedResources](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[InsertDate] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmp2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmp2](
	[RETE] [nvarchar](50) NULL,
	[COD_FISCALE_PIVA] [nvarchar](50) NULL,
	[CODICE_MANDATO] [nvarchar](50) NULL,
	[NOMINATIVO_CLIENTE] [nvarchar](100) NULL,
	[CONTRATTO] [nvarchar](50) NULL,
	[SERVIZIO] [nvarchar](50) NULL,
	[DTLETTBENV] [nvarchar](50) NULL,
	[DT_INSERT] [datetime2](7) NULL,
	[DT_VALIDAZ] [nvarchar](50) NULL,
	[DT_INV_PDC] [nvarchar](50) NULL,
	[CODAGE] [int] NULL,
	[GRADO] [int] NULL,
	[NOMINATIVO_CODAGE] [nvarchar](100) NULL,
	[CODAGE_50] [int] NULL,
	[NOMINATIVO_CODAGE_50] [nvarchar](100) NULL,
	[CODAGE_60] [int] NULL,
	[NOMINATIVO_CODAGE_60] [nvarchar](100) NULL,
	[CODAGE_70] [int] NULL,
	[NOMINATIVO_CODAGE_70] [nvarchar](100) NULL,
	[CODAGE_80] [int] NULL,
	[NOMINATIVO_CODAGE_80] [nvarchar](100) NULL,
	[column22] [nvarchar](1) NULL,
	[column23] [nvarchar](1) NULL,
	[column24] [nvarchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmp3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmp3](
	[RETE] [nvarchar](50) NULL,
	[COD_FISCALE_PIVA] [nvarchar](50) NULL,
	[CODICE_MANDATO] [nvarchar](50) NULL,
	[NOMINATIVO_CLIENTE] [nvarchar](100) NULL,
	[CONTRATTO] [nvarchar](50) NULL,
	[SERVIZIO] [nvarchar](50) NULL,
	[DTLETTBENV] [nvarchar](50) NULL,
	[DT_INSERT] [datetime2](7) NULL,
	[DT_VALIDAZ] [nvarchar](50) NULL,
	[DT_INV_PDC] [nvarchar](50) NULL,
	[CODAGE] [int] NULL,
	[GRADO] [int] NULL,
	[NOMINATIVO_CODAGE] [nvarchar](100) NULL,
	[CODAGE_50] [int] NULL,
	[NOMINATIVO_CODAGE_50] [nvarchar](100) NULL,
	[CODAGE_60] [int] NULL,
	[NOMINATIVO_CODAGE_60] [nvarchar](100) NULL,
	[CODAGE_70] [int] NULL,
	[NOMINATIVO_CODAGE_70] [nvarchar](100) NULL,
	[CODAGE_80] [int] NULL,
	[NOMINATIVO_CODAGE_80] [nvarchar](100) NULL,
	[column22] [nvarchar](1) NULL,
	[column23] [nvarchar](1) NULL,
	[column24] [nvarchar](1) NULL,
	[MOTIVAZIONE] [varchar](77) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmpRfaMin0]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmpRfaMin0](
	[DtModFlag] [datetime] NOT NULL,
	[Flagval] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_agente] [char](6) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[Piva_Fiduciaria] [varchar](11) NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[chiaveclientepb] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ltmpRfaMin1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ltmpRfaMin1](
	[DtModFlag] [datetime] NOT NULL,
	[Flagval] [int] NOT NULL,
	[rete] [char](1) NULL,
	[cod_agente] [char](6) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[Piva_Fiduciaria] [varchar](11) NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[chiaveclientepb] [int] NOT NULL,
	[Decod_Cososp] [varchar](4) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[maledetti2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[maledetti2](
	[Rete] [varchar](1) NOT NULL,
	[NomeRete] [varchar](15) NOT NULL,
	[Agente] [varchar](6) NULL,
	[CognomeAgente] [varchar](128) NOT NULL,
	[NomeAgente] [varchar](128) NOT NULL,
	[IndirizzoAgente] [varchar](255) NOT NULL,
	[CapAgente] [varchar](5) NOT NULL,
	[CittaAgente] [varchar](50) NOT NULL,
	[TelefonoAgente] [varchar](20) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[CognomeCliente] [varchar](50) NULL,
	[NomeCliente] [varchar](50) NULL,
	[ProfiloIsAct] [int] NOT NULL,
	[PatrimonioNonRappresentabile] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiDisinv] [decimal](38, 3) NOT NULL,
	[PartiteViaggiantiInv] [decimal](18, 3) NOT NULL,
	[ContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioBancaFideuramCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[RisorseNonAssociate] [decimal](38, 3) NOT NULL,
	[Patrimonioaltroctv] [decimal](38, 3) NOT NULL,
	[Patrimonioimmobiliarectv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerzictv] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziCtvAlNettoContoCorrente] [decimal](38, 3) NOT NULL,
	[PatrimonioTerziContoCorrente] [decimal](38, 3) NOT NULL,
	[Patrimoniobancafideuramctv] [decimal](38, 3) NOT NULL,
	[Patrimoniocomplessivototalectv] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[generaDiagnosi] [int] NOT NULL,
	[idModelloDiagnosi] [int] NOT NULL,
	[idReportDiagnosi] [int] NOT NULL,
	[descrizioneDiagnosi] [varchar](8) NOT NULL,
	[idReportMonitoraggio] [int] NOT NULL,
	[idModelloMonitoraggio] [int] NOT NULL,
	[descrizioneMonitoraggio] [varchar](12) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[VaRRisorseNonAssociate] [decimal](12, 3) NULL,
	[CoperturaRisorseNonAssociate] [decimal](12, 3) NULL,
	[VaRTotaleRisorseFinanziarie] [decimal](12, 3) NULL,
	[CoperturaTotaleRisorseFinanziarie] [decimal](12, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Mark]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Mark](
	[codiceFiscale] [varchar](16) NULL,
	[pb] [varchar](50) NULL,
	[rete] [char](1) NULL,
	[cod_pb] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Mifid_Scad]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Mifid_Scad](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[MIFID_Scirocco2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MIFID_Scirocco2](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODMAN] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL,
	[COGNOME] [nvarchar](255) NULL,
	[NOME] [nvarchar](255) NULL,
	[CODAGE] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[minny]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[minny](
	[ID_CLI] [varchar](18) NULL,
	[NOME] [varchar](256) NULL,
	[COGNOME] [varchar](256) NULL,
	[TIPO] [varchar](256) NULL,
	[AGENTE] [varchar](7) NULL,
	[CHIAVE_PB] [varchar](7) NULL,
	[CHIAVE_CLIENTE] [varchar](18) NULL,
	[NOME_CLIENTE] [varchar](256) NULL,
	[COGNOME_CLIENTE] [varchar](256) NULL,
	[CODICE_FISCALE] [varchar](16) NULL,
	[TIPO_CLIENTE] [varchar](256) NULL,
	[RETE_PB] [varchar](1) NULL,
	[CODICE_PB] [varchar](6) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[MARITALSTATUS] [varchar](25) NULL,
	[CODICEFISCALE] [varchar](16) NULL,
	[OID] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[old$]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[old$](
	[rete] [nvarchar](255) NULL,
	[cf] [nvarchar](255) NULL,
	[cc] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[OLE DB Destination]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OLE DB Destination](
	[IdCaric] [int] NULL,
	[NomeBatch] [varchar](50) NULL,
	[DtEsecuzione] [datetime] NULL,
	[Stato] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Output_PROMETEIA_AGGR_Aprile]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Output_PROMETEIA_AGGR_Aprile](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](30) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](30) NOT NULL,
	[McVar] [varchar](30) NOT NULL,
	[McVarP] [varchar](30) NOT NULL,
	[Beneficio] [varchar](30) NOT NULL,
	[Copertura] [varchar](30) NOT NULL,
	[Totale] [varchar](40) NOT NULL,
	[Clsint] [varchar](40) NULL,
	[Mdclcclsint] [varchar](40) NULL,
	[Cllsr] [varchar](40) NULL,
	[ClControparte] [varchar](40) NULL,
	[ClTipo] [varchar](40) NULL,
	[ClMercato] [varchar](40) NULL,
	[ClLiquidita] [varchar](40) NULL,
	[ISR] [varchar](40) NULL,
	[IndMercato] [varchar](40) NULL,
	[IndControparte] [varchar](40) NULL,
	[IndLiquidita] [varchar](40) NULL,
	[Ully] [varchar](40) NULL,
	[Ully_perc] [varchar](40) NULL,
	[Elly_perc] [varchar](40) NULL,
	[Crc] [varchar](40) NULL,
	[RcTot] [varchar](40) NULL,
	[Ully_perc_rc] [varchar](40) NULL,
	[Ully_perc_se] [varchar](40) NULL,
	[CoperturaPortafoglio] [varchar](40) NULL,
	[CoperturaProxyRC] [varchar](40) NULL,
	[NumTit] [varchar](40) NULL,
	[NumTitRC] [varchar](40) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Output_PROMETEIA_AGGR_IndDiv_Aprile]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Output_PROMETEIA_AGGR_IndDiv_Aprile](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](50) NULL,
	[indicatore] [varchar](30) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Output_PROMETEIA_AGGR_IndDiv_Marzo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Output_PROMETEIA_AGGR_IndDiv_Marzo](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](50) NULL,
	[indicatore] [varchar](30) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Output_PROMETEIA_AGGR_Marzo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Output_PROMETEIA_AGGR_Marzo](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[Portafoglio] [varchar](255) NOT NULL,
	[VaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[VaRPercentuialeDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRAssolutoDiPortafoglio] [varchar](30) NOT NULL,
	[CVaRPercentualeDiPortafoglio] [varchar](30) NOT NULL,
	[RisksizeDiPortafoglio] [varchar](30) NOT NULL,
	[McVar] [varchar](30) NOT NULL,
	[McVarP] [varchar](30) NOT NULL,
	[Beneficio] [varchar](30) NOT NULL,
	[Copertura] [varchar](30) NOT NULL,
	[Totale] [varchar](40) NOT NULL,
	[Clsint] [varchar](40) NULL,
	[Mdclcclsint] [varchar](40) NULL,
	[Cllsr] [varchar](40) NULL,
	[ClControparte] [varchar](40) NULL,
	[ClTipo] [varchar](40) NULL,
	[ClMercato] [varchar](40) NULL,
	[ClLiquidita] [varchar](40) NULL,
	[ISR] [varchar](40) NULL,
	[IndMercato] [varchar](40) NULL,
	[IndControparte] [varchar](40) NULL,
	[IndLiquidita] [varchar](40) NULL,
	[Ully] [varchar](40) NULL,
	[Ully_perc] [varchar](40) NULL,
	[Elly_perc] [varchar](40) NULL,
	[Crc] [varchar](40) NULL,
	[RcTot] [varchar](40) NULL,
	[Ully_perc_rc] [varchar](40) NULL,
	[Ully_perc_se] [varchar](40) NULL,
	[CoperturaPortafoglio] [varchar](40) NULL,
	[CoperturaProxyRC] [varchar](40) NULL,
	[NumTit] [varchar](40) NULL,
	[NumTitRC] [varchar](40) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PATR1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PATR1](
	[EE] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[TMP] [varchar](189) NULL,
	[needarea] [varchar](20) NOT NULL,
	[needareades] [varchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [varchar](40) NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [varchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 3) NULL,
	[MinusPlusValenza_needareaString] [varchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [varchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 3) NULL,
	[MinusPlusValenza_need_progString] [varchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](15, 2) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [varchar](8000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [varchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[dataSottoscrizione] [varchar](10) NULL,
	[ContrattoDossier] [varchar](11) NOT NULL,
	[Descrizione] [varchar](144) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](15, 3) NULL,
	[VersatoNettoString] [varchar](4) NULL,
	[MinusPlusValenza] [decimal](16, 3) NULL,
	[MinusPlusValenzaString] [varchar](4) NULL,
	[VaRprodotto] [decimal](12, 3) NULL,
	[varProdottoString] [varchar](4) NULL,
	[Coperturaprodotto] [decimal](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [varchar](1) NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NULL,
	[creditriskemit] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[patrimonio_bf_backup]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[patrimonio_bf_backup](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[STRTYPE] [varchar](10) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL,
	[ISIN] [varchar](12) NULL,
	[CHIAVE_PROGETTO] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[patrimonio_bf_SETTEMBRE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[patrimonio_bf_SETTEMBRE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITION_ID] [varchar](128) NOT NULL,
	[COD_PRODOTTO] [varchar](64) NOT NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [varchar](20) NULL,
	[NUM_POLIZZA] [varchar](20) NULL,
	[COD_MAF] [varchar](20) NULL,
	[COD_INTERNO] [varchar](50) NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NULL,
	[TIPO_PRODOTTO] [varchar](5) NULL,
	[NOME_PROGETTO] [varchar](40) NULL,
	[ID_AREA] [varchar](20) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [datetime] NULL,
	[DATA_REGOLAMENTO] [datetime] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [decimal](8, 3) NULL,
	[CTV] [decimal](15, 3) NULL,
	[CTV_NOMINALE] [decimal](15, 3) NULL,
	[VERSATO_NETTO] [decimal](15, 3) NULL,
	[PARTVIA_DISINV] [decimal](15, 3) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [decimal](15, 3) NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [decimal](8, 5) NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [bit] NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[EXTRANAC] [int] NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[STRTYPE] [varchar](10) NULL,
	[COMPLEX] [smallint] NULL,
	[EMITTENTE] [varchar](256) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[patrimonio_terzi_temp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[patrimonio_terzi_temp](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[rete] [varchar](1) NULL,
	[cf] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PATRIMONIOlele]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PATRIMONIOlele](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITIONID] [varchar](123) NULL,
	[COD_PRODOTTO] [varchar](57) NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [int] NULL,
	[NUM_POLIZZA] [varchar](11) NULL,
	[COD_MAF] [varchar](14) NULL,
	[COD_INTERNO] [varchar](12) NOT NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NOT NULL,
	[TIPO_PRODOTTO] [varchar](5) NOT NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[TIPO_PROGETTO] [varchar](256) NULL,
	[ID_AREA] [varchar](512) NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [int] NULL,
	[DATA_REGOLAMENTO] [int] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [int] NULL,
	[CTV] [decimal](15, 2) NULL,
	[CTV_NOMINALE] [decimal](15, 2) NULL,
	[VERSATO_NETTO] [int] NULL,
	[PARTVIA_DISINV] [decimal](15, 2) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [int] NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [int] NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[REND_NON_RAPPR] [int] NOT NULL,
	[ORDINAMENTO_PROGETTO] [varchar](12) NULL,
	[ORIZZ_TEMP_NUM] [numeric](19, 0) NULL,
	[ORIZZ_TEMP] [varchar](128) NULL,
	[STATO_CONSULENZA] [varchar](256) NULL,
	[DATA_STATO_CONS] [datetime] NULL,
	[DATA_MIGR_CONS] [datetime] NULL,
	[DATA_PIANIF] [datetime] NULL,
	[EXTRANAC] [int] NOT NULL,
	[STRTYPE] [varchar](2) NULL,
	[COMPLEX] [numeric](2, 0) NULL,
	[EMITTENTE] [varchar](123) NULL,
	[ISIN] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[pdf_ftp_levi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[pdf_ftp_levi](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[pdf_stampate_al_07_05_2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[pdf_stampate_al_07_05_2024](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PDFTemplateConfiguration]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PDFTemplateConfiguration](
	[PDFConfigurationID] [bigint] NULL,
	[TemplateReportPath] [varchar](200) NULL,
	[TemplateCopertinaPath] [varchar](200) NULL,
	[TemplateGlossarioPath] [varchar](200) NULL,
	[TemplateWelcomeLetterPath] [varchar](200) NULL,
	[ReportTypeFontColor_R] [int] NULL,
	[ReportTypeFontColor_G] [int] NULL,
	[ReportTypeFontColor_B] [int] NULL,
	[ChapterBackground_R] [int] NULL,
	[ChapterBackground_G] [int] NULL,
	[ChapterBackground_B] [int] NULL,
	[ChapterFontColor_R] [int] NULL,
	[ChapterFontColor_G] [int] NULL,
	[ChapterFontColor_B] [int] NULL,
	[TableHeaderFontColor_R] [int] NULL,
	[TableHeaderFontColor_G] [int] NULL,
	[TableHeaderFontColor_B] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PDFTemplateConfiguration_Rosaspina]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PDFTemplateConfiguration_Rosaspina](
	[PDFConfigurationID] [bigint] NULL,
	[TemplateReportPath] [varchar](200) NULL,
	[TemplateCopertinaPath] [varchar](200) NULL,
	[TemplateGlossarioPath] [varchar](200) NULL,
	[TemplateWelcomeLetterPath] [varchar](200) NULL,
	[ReportTypeFontColor_R] [int] NULL,
	[ReportTypeFontColor_G] [int] NULL,
	[ReportTypeFontColor_B] [int] NULL,
	[ChapterBackground_R] [int] NULL,
	[ChapterBackground_G] [int] NULL,
	[ChapterBackground_B] [int] NULL,
	[ChapterFontColor_R] [int] NULL,
	[ChapterFontColor_G] [int] NULL,
	[ChapterFontColor_B] [int] NULL,
	[TableHeaderFontColor_R] [int] NULL,
	[TableHeaderFontColor_G] [int] NULL,
	[TableHeaderFontColor_B] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[pdfTorec_fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[pdfTorec_fc](
	[idreport] [int] NOT NULL,
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](16) NOT NULL,
	[datainvio] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[photo_data_bck]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[photo_data_bck](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[photo_data_imp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[photo_data_imp](
	[Column 0] [nvarchar](50) NULL,
	[Column 1] [nvarchar](50) NULL,
	[Column 2] [nvarchar](50) NULL,
	[Column 3] [nvarchar](50) NULL,
	[Column 4] [nvarchar](50) NULL,
	[Column 5] [nvarchar](50) NULL,
	[Column 6] [nvarchar](50) NULL,
	[Column 7] [nvarchar](50) NULL,
	[Column 8] [nvarchar](50) NULL,
	[Column 9] [nvarchar](50) NULL,
	[Column 10] [nvarchar](50) NULL,
	[Column 11] [nvarchar](50) NULL,
	[Column 12] [nvarchar](50) NULL,
	[Column 13] [nvarchar](50) NULL,
	[Column 14] [nvarchar](50) NULL,
	[Column 15] [nvarchar](50) NULL,
	[Column 16] [nvarchar](50) NULL,
	[Column 17] [nvarchar](50) NULL,
	[Column 18] [nvarchar](50) NULL,
	[Column 19] [nvarchar](50) NULL,
	[Column 20] [nvarchar](50) NULL,
	[Column 21] [nvarchar](50) NULL,
	[Column 22] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[photo_data_new]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[photo_data_new](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[photo_data_trimestrale_oct]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[photo_data_trimestrale_oct](
	[OID_] [varchar](35) NULL,
	[VERSION_] [decimal](19, 0) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[C_DATAREQ_EB2B5] [datetime] NULL,
	[TYPE__TYPE_7CAB6] [varchar](256) NULL,
	[TYPE__STATUS_1E30E] [varchar](256) NULL,
	[C_DATASALVAT_D40E3] [datetime] NULL,
	[C_CTVINV_990D8] [decimal](19, 7) NULL,
	[C_CTVRIS_43FEA] [decimal](19, 7) NULL,
	[C_CTVLIQ_54D1B] [decimal](19, 7) NULL,
	[C_CTVPRE_A0E49] [decimal](19, 7) NULL,
	[C_CTVEXT_34DCC] [decimal](19, 7) NULL,
	[C_CTVCC_E242D] [decimal](19, 7) NULL,
	[C_CTVNA_473EA] [decimal](19, 7) NULL,
	[C_VAR_16494] [decimal](19, 7) NULL,
	[C_COPVAR_5C6E5] [decimal](19, 7) NULL,
	[C_INVESTIMEN_5F936] [decimal](19, 7) NULL,
	[CODICE_PROFILO] [decimal](18, 0) NULL,
	[VAR_MAX_PROFILO] [decimal](18, 2) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[RISKCLASS] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Pictures]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Pictures](
	[pictureName] [nvarchar](40) NOT NULL,
	[picFileName] [nvarchar](100) NULL,
	[PictureData] [varbinary](max) NULL,
PRIMARY KEY CLUSTERED 
(
	[pictureName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PIRAMIDE_VERT](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[ID_AREA] [varchar](20) NULL,
	[PERC_AREA] [decimal](5, 2) NULL,
	[CONTROVALORE] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[piramidemodello_da_agg_manualmente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[piramidemodello_da_agg_manualmente](
	[somma] [numeric](38, 7) NULL,
	[area] [varchar](10) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[chiaveclientepb] [bigint] NOT NULL,
	[fase] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[piramidemodello_da_agg_manualmente_1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[piramidemodello_da_agg_manualmente_1](
	[somma] [numeric](38, 7) NULL,
	[area] [varchar](10) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[chiaveclientepb] [bigint] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[piramidemodello_da_agg_manualmente_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[piramidemodello_da_agg_manualmente_2](
	[somma] [numeric](38, 7) NULL,
	[area] [varchar](10) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[chiaveclientepb] [bigint] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[piramidemodello_da_agg_manualmente_3]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[piramidemodello_da_agg_manualmente_3](
	[somma] [numeric](38, 7) NULL,
	[area] [varchar](10) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[chiaveclientepb] [bigint] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[port_errati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[port_errati](
	[rete] [char](1) NULL,
	[cod_conf] [varchar](11) NULL,
	[cod_fiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PosizioniPortafogliocong3001]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PosizioniPortafogliocong3001](
	[chiavePosizionePtf] [bigint] NOT NULL,
	[chiaveProgetto] [bigint] NULL,
	[chiaveProdotto] [int] NULL,
	[conto] [varchar](12) NULL,
	[rubricato] [varchar](5) NULL,
	[codConf] [varchar](11) NULL,
	[numPolizza] [varchar](11) NULL,
	[custGar] [varchar](1) NULL,
	[codAbi] [varchar](18) NULL,
	[termId] [varchar](7) NULL,
	[anno] [varchar](4) NULL,
	[prog] [varchar](6) NULL,
	[dtSottoscrizione] [datetime] NULL,
	[dataInizioRendimento] [datetime] NULL,
	[dtInizioValidita] [datetime] NULL,
	[dtAggiornamento] [datetime] NULL,
	[allocataAutomaticamente] [bit] NULL,
	[dataAllocazione] [datetime] NULL,
	[chiavePosizioneptfMIG] [bigint] NULL,
	[chiavePrgBase] [bigint] NULL,
	[daRiallocare] [bit] NULL,
	[IBAN] [varchar](27) NULL,
	[SavingMap] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[PostalDataForReport]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PostalDataForReport](
	[Rete] [nvarchar](5) NULL,
	[FiscalCode] [nvarchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[prdand]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[prdand](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [char](1) NULL,
	[WSEICS] [decimal](38, 2) NULL,
	[WSEICS_ASUL] [decimal](38, 2) NULL,
	[SINTESI] [decimal](38, 2) NULL,
	[BF] [decimal](38, 3) NULL,
	[WSEICS_Nd] [int] NULL,
	[WSEICS_N] [int] NULL,
	[SPB_CONTR_SINTESI_N] [int] NULL,
	[RP_CONSULENZA_N] [int] NULL,
	[PATRIMONIO_BF_N] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[preparazioneperapi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[preparazioneperapi](
	[FLGCLI] [varchar](50) NULL,
	[FLGBL] [varchar](50) NULL,
	[TIPOELA] [varchar](50) NULL,
	[DTTRIM] [varchar](50) NULL,
	[rete] [varchar](50) NULL,
	[codfis] [varchar](50) NULL,
	[piva] [varchar](50) NULL,
	[codman] [varchar](50) NULL,
	[CODFID] [varchar](50) NULL,
	[CODAGE] [varchar](50) NULL,
	[CODABI] [varchar](50) NULL,
	[termid] [varchar](50) NULL,
	[anno] [varchar](50) NULL,
	[prog] [varchar](50) NULL,
	[quote] [varchar](50) NULL,
	[CTV] [varchar](50) NULL,
	[codconf] [varchar](50) NULL,
	[rubr] [varchar](50) NULL,
	[custgar] [varchar](50) NULL,
	[cod_interno] [varchar](50) NULL,
	[codana] [varchar](50) NULL,
	[FLAGPCT] [varchar](50) NULL,
	[codprod] [varchar](50) NULL,
	[cod_sottoprodotto] [varchar](50) NULL,
	[cod_isin] [varchar](50) NULL,
	[codlinea] [varchar](50) NULL,
	[tipoptf] [varchar](50) NULL,
	[area] [varchar](50) NULL,
	[progetto] [varchar](50) NULL,
	[codprj] [varchar](50) NULL,
	[chiave_prodotto_terzi] [varchar](50) NULL,
	[assetterzi] [varchar](50) NULL,
	[famprodt] [varchar](50) NULL,
	[intermediario] [varchar](150) NULL,
	[codiceadeguatezza] [varchar](50) NULL,
	[cod_maf] [varchar](50) NULL,
	[conto] [varchar](50) NULL,
	[numpolizza] [varchar](50) NULL,
	[position_id] [varchar](350) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ProfiliDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProfiliDiRischio](
	[CodiceProfilo] [int] NOT NULL,
	[NomeProfilo] [varchar](20) NOT NULL,
	[DescrizioneProfilo] [varchar](500) NULL,
 CONSTRAINT [PK_C6Staging.ProfiliDiRischio] PRIMARY KEY CLUSTERED 
(
	[CodiceProfilo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ProfiliDiRischio_BKP_PRERAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProfiliDiRischio_BKP_PRERAFFORZAMENTO](
	[CodiceProfilo] [int] NOT NULL,
	[NomeProfilo] [varchar](20) NOT NULL,
	[DescrizioneProfilo] [varchar](500) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ProfiliDiRischio_preMUA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ProfiliDiRischio_preMUA](
	[CodiceProfilo] [int] NOT NULL,
	[NomeProfilo] [varchar](20) NOT NULL,
	[DescrizioneProfilo] [varchar](500) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[provaclientimonitorati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[provaclientimonitorati](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[DTAVMON] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[provaClientiMonitoratinostri]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[provaClientiMonitoratinostri](
	[codfis] [nvarchar](16) NULL,
	[rete] [nvarchar](1) NULL,
	[dtavvmon] [nvarchar](8) NULL,
	[altro] [nvarchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[quintolotto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[quintolotto](
	[COD_FISCALE] [nvarchar](255) NULL,
	[RETE] [nvarchar](255) NULL,
	[DESCRIZIONE] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6_SezioneR6Capitolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6_SezioneR6Capitolo](
	[IdSezione] [int] NULL,
	[IdCapitoloPDF] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6_SezioneR6Paragrafo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6_SezioneR6Paragrafo](
	[IdSezione] [int] NULL,
	[IdParagrafoPDF] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6_SezioneR6Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6_SezioneR6Sezione](
	[id] [int] NOT NULL,
	[idFkC6Sezione] [int] NOT NULL,
	[idFkSezione] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6_Vincolo_SezioneFisica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6_Vincolo_SezioneFisica](
	[IDVincoloSezioneFisica] [int] NOT NULL,
	[SezioneFisica] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Capitolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Capitolo](
	[id] [int] NOT NULL,
	[titolo] [varchar](200) NOT NULL,
	[testo] [varchar](2000) NULL,
	[testoAlternativo] [varchar](2000) NULL,
	[nuovapagina] [bit] NOT NULL,
	[queryOracle] [varchar](200) NULL,
	[querySql] [varchar](200) NULL,
	[querySqlPeriodico] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6CapitoloR6Paragrafo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6CapitoloR6Paragrafo](
	[id] [int] NOT NULL,
	[idFkCapitolo] [int] NOT NULL,
	[idFkParagrafo] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[indicizzato] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Cardinalita_VincoloApplicativo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Cardinalita_VincoloApplicativo](
	[ID] [int] NOT NULL,
	[IDCardinalita] [int] NULL,
	[CodiceVincoloApplicativo] [varchar](50) NULL,
	[VincoloApplicativo] [nvarchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6CardinalitaVincolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6CardinalitaVincolo](
	[id] [int] NOT NULL,
	[IDVincolo] [int] NOT NULL,
	[Cardinalita] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Paragrafo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Paragrafo](
	[id] [int] NOT NULL,
	[titolo] [varchar](200) NULL,
	[testo] [varchar](2000) NULL,
	[queryOracle] [varchar](200) NULL,
	[querySql] [varchar](200) NULL,
	[querySqlPeriodico] [varchar](200) NULL,
	[SottoTitoloQuery] [varchar](2000) NULL,
	[SpazioNecessarioSezioneSuccessiva] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6ParagrafoR6Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6ParagrafoR6Sezione](
	[id] [int] NOT NULL,
	[idFkParagrafo] [int] NOT NULL,
	[idFkSezione] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[filtroDataView] [varchar](200) NULL,
	[titolo] [varchar](200) NULL,
	[testo] [varchar](2000) NULL,
	[testo1] [varchar](2000) NULL,
	[nota] [varchar](2000) NULL,
	[nota1] [varchar](2000) NULL,
	[vincolata] [bit] NOT NULL,
	[ordineSezione] [int] NULL,
	[indicizzato] [bit] NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6ParagrafoR6Sezione__]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6ParagrafoR6Sezione__](
	[id] [int] NOT NULL,
	[idFkParagrafo] [int] NOT NULL,
	[idFkSezione] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[filtroDataView] [varchar](200) NULL,
	[titolo] [varchar](200) NULL,
	[testo] [varchar](2000) NULL,
	[testo1] [varchar](2000) NULL,
	[nota] [varchar](2000) NULL,
	[nota1] [varchar](2000) NULL,
	[vincolata] [bit] NOT NULL,
	[ordineSezione] [int] NULL,
	[indicizzato] [bit] NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Report]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Report](
	[id] [int] NOT NULL,
	[nome] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6ReportR6Capitolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6ReportR6Capitolo](
	[id] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[idFkCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Sezione](
	[id] [int] NOT NULL,
	[codice] [varchar](10) NOT NULL,
	[queryOracle] [varchar](400) NULL,
	[querySql] [varchar](200) NULL,
	[querySqlPeriodico] [varchar](200) NULL,
	[ordineQueryOracle] [int] NULL,
	[ordineQuerySql] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Sezione_Vincolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Sezione_Vincolo](
	[IDSezione] [int] NULL,
	[IDVincolo] [int] NULL,
	[IDVincoloSezioneFisica] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[R6Vincolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[R6Vincolo](
	[id] [int] NOT NULL,
	[Descrizione] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Ready4Lot]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Ready4Lot](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [nvarchar](1) NULL,
	[CodiceFiscale] [nvarchar](16) NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Ready4Lot_luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Ready4Lot_luca](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [nvarchar](1) NULL,
	[CodFiscale] [nvarchar](16) NULL,
	[Codman] [nvarchar](255) NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[recftp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[recftp](
	[CodiceContratto] [varchar](11) NULL,
	[rete] [char](1) NOT NULL,
	[Cliente] [varchar](16) NOT NULL,
	[NomeCliente] [varchar](50) NULL,
	[CognomeCliente] [varchar](50) NULL,
	[TipoReport] [varchar](12) NOT NULL,
	[Data] [datetime] NOT NULL,
	[StatoVerifica] [int] NOT NULL,
	[StatoLock] [int] NOT NULL,
	[Image] [int] NULL,
	[CodicePB] [varchar](6) NULL,
	[NomePB] [varchar](128) NOT NULL,
	[CognomePB] [varchar](128) NOT NULL,
	[NumeroPagine] [int] NULL,
	[FlagPeriodico] [int] NOT NULL,
	[idInrepository] [int] NOT NULL,
	[tipoReportMETA] [int] NOT NULL,
	[id_fk_zip] [int] NOT NULL,
	[nomefile] [varchar](50) NOT NULL,
	[NOMEZIP] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RecuperoPdfIdx]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RecuperoPdfIdx](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[tip_contratto] [smallint] NULL,
	[rol] [char](1) NULL,
	[data_fineAvanzato] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RecuperoPdfIdx_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RecuperoPdfIdx_2](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[tip_contratto] [smallint] NULL,
	[rol] [char](1) NULL,
	[data_fineAvanzato] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RecuperoPdfSelecta]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RecuperoPdfSelecta](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[tip_contratto] [int] NULL,
	[datainvio] [datetime] NULL,
	[flagrol] [varchar](1) NULL,
	[codicecontratto] [varchar](11) NOT NULL,
	[data_fineavanzato] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RecuperoPdfSelecta_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RecuperoPdfSelecta_2](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[tip_contratto] [int] NULL,
	[datainvio] [datetime] NULL,
	[newRol] [varchar](512) NULL,
	[codicecontratto] [varchar](1) NOT NULL,
	[idreport] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RecuperoPhotoDataVeronica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RecuperoPhotoDataVeronica](
	[CODFIS] [nvarchar](255) NULL,
	[RETE] [nvarchar](255) NULL,
	[DT] [float] NULL,
	[STATO] [nvarchar](255) NULL,
	[DTCHIUSURAAVANZATO] [float] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[REP_S80_EVOL_STAMPA_C6_PARZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[REP_S80_EVOL_STAMPA_C6_PARZIALE](
	[chiaveclientepb] [int] NOT NULL,
	[area] [varchar](10) NULL,
	[ORDINE] [int] NULL,
	[FASE] [int] NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](18, 2) NULL,
	[RISORSEALLOCATE] [decimal](18, 2) NULL,
	[RISORSENONALLOCATE] [decimal](18, 2) NULL,
	[CONTOCORRENTE] [decimal](18, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](18, 2) NULL,
	[VAR_PERC_PTF] [decimal](18, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL,
	[CRISK] [varchar](50) NULL,
	[CRISKMAX] [varchar](50) NULL,
	[lineaself] [decimal](18, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ReportDaCancellare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ReportDaCancellare](
	[rete] [varchar](1) NULL,
	[codfis] [varchar](16) NULL,
	[codconf] [varchar](11) NULL,
	[idreport] [int] NULL,
	[dtgenera] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ReportDaCancellareBCK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ReportDaCancellareBCK](
	[rete] [varchar](1) NULL,
	[codfis] [varchar](16) NULL,
	[codconf] [varchar](11) NULL,
	[idreport] [int] NULL,
	[dtgenera] [datetime] NULL,
	[dtcanc] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[reportDainserire_recupero]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[reportDainserire_recupero](
	[identificativo] [int] NOT NULL,
	[rete] [char](1) NOT NULL,
	[cliente] [varchar](16) NOT NULL,
	[tiporeport] [varchar](50) NOT NULL,
	[data] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[reportDainserire_recupero_MAU]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[reportDainserire_recupero_MAU](
	[identificativo] [int] NOT NULL,
	[rete] [char](1) NOT NULL,
	[cliente] [varchar](16) NOT NULL,
	[tiporeport] [varchar](50) NOT NULL,
	[data] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[reportrestore]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[reportrestore](
	[nomefile] [varchar](14) NULL,
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[id] [int] NOT NULL,
	[idreport] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ReportSezionePers]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ReportSezionePers](
	[DtCreazione] [datetime] NULL,
	[DtCancellazione] [datetime] NULL,
	[IdReport] [int] NOT NULL,
	[IdSezione] [int] NOT NULL,
	[Utente] [varchar](13) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[reporttab1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[reporttab1](
	[idreport] [int] NOT NULL,
	[rete] [char](1) NOT NULL,
	[codicefiscale] [varchar](16) NOT NULL,
	[tipo] [varchar](1) NOT NULL,
	[data] [varchar](1) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ReportTemplate]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ReportTemplate](
	[TemplateID] [int] NOT NULL,
	[Rete] [varchar](1) NULL,
	[ContractType] [int] NULL,
	[IsTrimestrale] [int] NULL,
	[PDFConfigurationID] [int] NULL,
PRIMARY KEY CLUSTERED 
(
	[TemplateID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RepositoryStorico_fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RepositoryStorico_fc](
	[id] [int] NOT NULL,
	[dataRichiesta] [datetime] NOT NULL,
	[caricamentoInStorico] [datetime] NULL,
	[cancellazioneDaStorico] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RFA_Scirocco2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RFA_Scirocco2](
	[RETE] [nvarchar](255) NULL,
	[DTTRIM] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODANA] [nvarchar](255) NULL,
	[CODMAN] [nvarchar](255) NULL,
	[CODAGE] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL,
	[CONTO] [nvarchar](255) NULL,
	[STATO] [nvarchar](255) NULL,
	[POSMAND] [nvarchar](255) NULL,
	[COGNOME] [nvarchar](255) NULL,
	[NOME] [nvarchar](255) NULL,
	[SEX] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RFA_ZERO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RFA_ZERO](
	[RETE] [nvarchar](255) NULL,
	[CODFIS] [nvarchar](255) NULL,
	[CODCONF] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RichiestaPdfStorico]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RichiestaPdfStorico](
	[nomeFile] [varchar](30) NOT NULL,
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[richiestaEvasa] [bit] NOT NULL,
	[numeroRichiesta] [smallint] IDENTITY(1,1) NOT NULL,
	[idMetadato] [int] NOT NULL,
 CONSTRAINT [PK_RichiestaPdfStorico] PRIMARY KEY CLUSTERED 
(
	[numeroRichiesta] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RichiestaPdfStorico_BkRecPDF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RichiestaPdfStorico_BkRecPDF](
	[nomeFile] [varchar](30) NOT NULL,
	[rete] [char](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[richiestaEvasa] [bit] NOT NULL,
	[numeroRichiesta] [smallint] IDENTITY(1,1) NOT NULL,
	[idMetadato] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RichiestaRestorePDF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RichiestaRestorePDF](
	[idRichiesta] [bigint] IDENTITY(1,1) NOT NULL,
	[idPdf] [bigint] NOT NULL,
	[idStatoRichiesta] [int] NOT NULL,
	[dataRichiesta] [datetime] NOT NULL,
 CONSTRAINT [PK_RichiestaRestorePDF] PRIMARY KEY CLUSTERED 
(
	[idRichiesta] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[RicodificaMassiva]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[RicodificaMassiva](
	[Vecchio] [varchar](16) NULL,
	[Nuovo] [varchar](16) NULL,
	[DataRicodifica] [datetime] NULL,
	[DataOperazione] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ripristino]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ripristino](
	[Rete] [varchar](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[PIva] [varchar](11) NOT NULL,
	[CodMan] [varchar](6) NOT NULL,
	[CONCAT_AGGREGAZIONE] [varchar](255) NOT NULL,
	[SLEEVETAG] [varchar](40) NULL,
	[SLEEVETAG_VALUE] [varchar](75) NULL,
	[TOTALE] [float] NULL,
	[TOTALE_COPERTO] [float] NULL,
	[RISCHIO_CREDITO] [float] NULL,
	[NumTitRC] [int] NULL,
	[DT_TRIM] [datetime] NULL,
	[DT_INSERT] [datetime] NULL,
	[VAR] [float] NULL,
	[VARP] [float] NULL,
	[CVAR] [float] NULL,
	[CVARP] [float] NULL,
	[MCVAR] [float] NULL,
	[MCVARP] [float] NULL,
	[RISKSIZE] [float] NULL,
	[COPERTURA] [float] NULL,
	[DIVERSIFICATIONINDEX] [float] NULL,
	[NORMMARKETRISKDIVERSIFICATION] [float] NULL,
	[NORMAMMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMGESCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMCREDITRISKDIVERSIFICATION] [float] NULL,
	[NORMFUNDHOUSESTRATEGYDIVERSIFICATION] [float] NULL,
	[NORMNUMBEROFINSTRUMENTSDIVERSIFICATION] [float] NULL,
	[NORMCONCENTRATIONDIVERSIFICATION] [float] NULL,
	[WEALTHPROJECTIONMAXLOSS] [float] NULL,
	[WEALTHPROJECTIONMINTIMEREAL] [float] NULL,
	[WEALTHPROJECTIONMINTIME] [float] NULL,
	[TIPOPTF] [varchar](40) NULL,
	[AREA] [varchar](40) NULL,
	[PROGETTO] [varchar](72) NULL,
	[FAMPRD] [varchar](50) NULL,
	[WRAPPER_TYPE] [varchar](40) NULL,
	[position_id] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[roldiff]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[roldiff](
	[codfis] [varchar](17) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[roldiff2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[roldiff2](
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codcontratto] [varchar](11) NOT NULL,
	[emailWS] [varchar](512) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[S80_EVOL_STAMPA_C6_BCK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[S80_EVOL_STAMPA_C6_BCK](
	[COD_FISCALE] [varchar](16) NULL,
	[RETE] [varchar](1) NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [decimal](18, 0) NULL,
	[FASE] [decimal](18, 0) NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEALLOCATE] [decimal](15, 2) NULL,
	[RISORSENONALLOCATE] [decimal](15, 2) NULL,
	[CONTOCORRENTE] [decimal](15, 2) NULL,
	[INVESTIMENTIINCORSO] [decimal](15, 2) NULL,
	[VAR_PERC_PTF] [decimal](15, 2) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [int] NULL,
	[AGENTE] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ScartiQuadratura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ScartiQuadratura](
	[rete] [char](1) NULL,
	[codfis] [varchar](16) NULL,
	[codcontratto] [varchar](11) NULL,
	[bloccato] [bit] NULL,
	[gestito] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[senzaprofilo$]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[senzaprofilo$](
	[codicefiscale] [nvarchar](255) NULL,
	[rete] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[senzaprofilo118$]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[senzaprofilo118$](
	[codicefiscale] [nvarchar](255) NULL,
	[rete] [nvarchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Sezione](
	[IdSezione] [int] NOT NULL,
	[internalSectionCode] [varchar](50) NULL,
	[Descrizione] [varchar](250) NULL,
	[DtCancellazione] [datetime] NOT NULL,
	[IdSezionePadre] [int] NULL,
	[DtCreazione] [datetime] NULL,
	[Nome] [varchar](250) NULL,
	[FlgSezione] [bit] NOT NULL,
	[ClasseRealizzazione] [varchar](70) NULL,
	[IdReport] [int] NOT NULL,
	[TpSezione] [smallint] NOT NULL,
	[Utente] [varchar](13) NULL,
	[Ordine] [smallint] NULL,
	[TpInclusione] [smallint] NULL,
	[ClasseVisualizzazione] [char](18) NULL,
	[NomeControlloGruppo] [varchar](70) NULL,
	[IsDefault] [int] NULL,
	[IsMandatory] [int] NULL,
	[IsBold] [int] NULL,
	[Theme] [varchar](100) NULL,
	[idFkTipoCheck] [int] NOT NULL,
	[NomeImmagine] [varchar](50) NULL,
	[CSSClass] [varchar](50) NULL,
	[NoParentBehaviour] [bit] NULL,
	[IsSectionPrinting] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[situazioneNEW]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[situazioneNEW](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[AgenteContrattoOLD] [char](6) NULL,
	[agenteContrattoNEW] [varchar](6) NULL,
	[cod_agente_NEW] [varchar](6) NULL,
	[DATA_FINEAVANZATO] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[situazioneOLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[situazioneOLD](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[AgenteContrattoOLD] [char](6) NULL,
	[agenteContrattoNEW] [varchar](6) NULL,
	[cod_agente_NEW] [varchar](6) NULL,
	[DATA_FINEAVANZATO] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SPBAPP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SPBAPP](
	[POSITIONID] [int] NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[custgar] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[pctkey] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](38, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](15, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[SALRISC] [decimal](15, 2) NULL,
	[ISIN] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[spbapp2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[spbapp2](
	[POSITIONID] [int] NULL,
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[NUMPOL] [varchar](11) NULL,
	[CONTO] [varchar](12) NOT NULL,
	[RUBR] [varchar](3) NOT NULL,
	[custgar] [varchar](1) NOT NULL,
	[TIPPROD] [varchar](5) NOT NULL,
	[CODINT] [varchar](12) NOT NULL,
	[CODPROD] [varchar](2) NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[MAF] [varchar](14) NULL,
	[CODABI] [varchar](8) NOT NULL,
	[pctkey] [varchar](22) NOT NULL,
	[DESTIT] [varchar](30) NULL,
	[CTV] [decimal](38, 2) NULL,
	[PARTVIA] [decimal](15, 2) NULL,
	[PARTVIAAL] [decimal](9, 0) NULL,
	[DTSOTTOS] [decimal](9, 0) NULL,
	[RENDINIZ] [decimal](8, 5) NULL,
	[RENDANNO] [decimal](8, 5) NULL,
	[VALORE] [decimal](38, 2) NULL,
	[SUBSET] [varchar](10) NULL,
	[CVN] [decimal](15, 2) NULL,
	[SALRISC] [decimal](15, 2) NULL,
	[ISIN] [varchar](12) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[squadratiTSCABP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[squadratiTSCABP](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[countBF] [int] NULL,
	[countTCPTAB] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SRV_LOG_PreCalcoloDatiGenerator]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SRV_LOG_PreCalcoloDatiGenerator](
	[generator] [varchar](60) NULL,
	[durata] [float] NULL,
	[numeroClientiElaborati] [int] NULL,
	[dataInserimento] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SubscribedCustomer_Bank]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SubscribedCustomer_Bank](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [nchar](16) NULL,
	[FiscalCode] [nchar](32) NULL,
	[DateOfMonitoring] [datetime] NULL,
 CONSTRAINT [PK_SubscribedCustomer_Bank] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SubscribedCustomer_ComparedResults]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SubscribedCustomer_ComparedResults](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [nchar](16) NULL,
	[FiscalCode] [nchar](32) NULL,
	[DateOfMonitoring] [datetime] NULL,
	[Description] [nchar](256) NULL,
 CONSTRAINT [PK_SubscribedCustomer_ComparedResults] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[SubscribedCustomer_HP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SubscribedCustomer_HP](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Rete] [nchar](16) NULL,
	[FiscalCode] [nchar](32) NULL,
	[DateOfMonitoring] [datetime] NULL,
 CONSTRAINT [PK_SubscribedCustomer_HP] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[sysdtslog90]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[sysdtslog90](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[event] [sysname] NOT NULL,
	[computer] [nvarchar](128) NOT NULL,
	[operator] [nvarchar](128) NOT NULL,
	[source] [nvarchar](1024) NOT NULL,
	[sourceid] [uniqueidentifier] NOT NULL,
	[executionid] [uniqueidentifier] NOT NULL,
	[starttime] [datetime] NOT NULL,
	[endtime] [datetime] NOT NULL,
	[datacode] [int] NOT NULL,
	[databytes] [image] NULL,
	[message] [nvarchar](2048) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TAB_test]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TAB_test](
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CODINTERNO] [varchar](18) NULL,
	[CODMAF] [varchar](18) NULL,
	[CODISIN] [varchar](18) NOT NULL,
	[CODSOTTOPRODOTTO] [varchar](5) NULL,
	[position_id] [varchar](123) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TAB1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TAB1](
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CODINTERNO] [varchar](18) NULL,
	[CODMAF] [varchar](18) NULL,
	[CODISIN] [varchar](18) NOT NULL,
	[CODSOTTOPRODOTTO] [varchar](5) NULL,
	[position_id] [varchar](123) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TAB2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TAB2](
	[TIPOPRODOTTO] [varchar](20) NULL,
	[CODINTERNO] [varchar](18) NULL,
	[CODMAF] [varchar](18) NULL,
	[CODISIN] [varchar](18) NULL,
	[CODSOTTOPRODOTTO] [varchar](5) NULL,
	[POSITION_ID] [varchar](123) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Table_1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[prova] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tanab_settembre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tanab_settembre](
	[RETE] [varchar](1) NOT NULL,
	[CODAREA] [varchar](4) NOT NULL,
	[CODPROG] [varchar](12) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[DTRIF] [decimal](9, 0) NOT NULL,
	[DTFINE] [decimal](9, 0) NOT NULL,
	[DTINI] [decimal](9, 0) NOT NULL,
	[CTVINI] [decimal](15, 2) NOT NULL,
	[DTRENDMAX] [decimal](9, 0) NOT NULL,
	[RENDMAX] [decimal](8, 5) NOT NULL,
	[DTRENDMIN] [decimal](9, 0) NOT NULL,
	[RENDMIN] [decimal](8, 5) NOT NULL,
	[DTCTV] [decimal](9, 0) NOT NULL,
	[CTV] [decimal](15, 2) NOT NULL,
	[RENDATT] [decimal](8, 5) NOT NULL,
	[DTCTVMAX] [decimal](9, 0) NOT NULL,
	[CTVMAX] [decimal](15, 2) NOT NULL,
	[DTCTVMIN] [decimal](9, 0) NOT NULL,
	[CTVMIN] [decimal](15, 2) NOT NULL,
	[CVN] [decimal](15, 2) NOT NULL,
	[CVN_IA] [decimal](15, 2) NOT NULL,
	[CVN_IT] [decimal](15, 2) NOT NULL,
	[APP_INI] [decimal](15, 2) NOT NULL,
	[TOT_APP] [decimal](15, 2) NOT NULL,
	[TOT_LIQ] [decimal](15, 2) NOT NULL,
	[TOT_CED] [decimal](15, 2) NOT NULL,
	[TOT_DIV] [decimal](15, 2) NOT NULL,
	[DCD] [decimal](15, 2) NOT NULL,
	[DCVN] [decimal](15, 2) NOT NULL,
	[SCARTO] [decimal](15, 2) NOT NULL,
	[NTOT_APP] [decimal](15, 2) NOT NULL,
	[NTOT_LIQ] [decimal](15, 2) NOT NULL,
	[RENDATTANN] [decimal](8, 5) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tb_104_fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_104_fc](
	[CHIAVECLIENTEPB] [int] NOT NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TB_Controlli_Mattina_View]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TB_Controlli_Mattina_View](
	[IdCaric] [int] NULL,
	[NomeBatch] [varchar](50) NULL,
	[DtEsecuzione] [datetime] NULL,
	[Stato] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TB_Flussi_Mappatura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TB_Flussi_Mappatura](
	[idcaric] [int] NULL,
	[DtEsecuzione] [datetime] NULL,
	[NomeBatch] [varchar](50) NULL,
	[nomeprocedura] [varchar](50) NULL,
	[Stato] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tb_ReportDaRecuperare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_ReportDaRecuperare](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[ListaContratti] [varchar](250) NOT NULL,
	[DataInizio] [datetime] NOT NULL,
	[DataFine] [datetime] NOT NULL,
	[TipoDocumento] [varchar](100) NULL,
	[CodiceApplicazione] [varchar](250) NOT NULL,
	[id] [int] NOT NULL,
	[FlagElab] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tb_ReportDaRecuperare_appo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_ReportDaRecuperare_appo](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[ListaContratti] [varchar](250) NOT NULL,
	[DataInizio] [datetime] NOT NULL,
	[DataFine] [datetime] NOT NULL,
	[TipoDocumento] [varchar](100) NULL,
	[CodiceApplicazione] [varchar](250) NOT NULL,
	[id] [int] NOT NULL,
	[FlagElab] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TB_scartiClientiMonitorati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TB_scartiClientiMonitorati](
	[rete] [nchar](1) NULL,
	[codfis] [nchar](16) NULL,
	[dtavmon] [datetime] NULL,
	[descrizione] [nvarchar](150) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tb_verifica_soft_base]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_verifica_soft_base](
	[rete] [varchar](1) NULL,
	[conf] [varchar](11) NULL,
	[cf] [varchar](16) NULL,
	[mand] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tb_verifica_soft_sei]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tb_verifica_soft_sei](
	[rete] [varchar](1) NULL,
	[conf] [varchar](11) NULL,
	[cf] [varchar](16) NULL,
	[mand] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tcptab_POSID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tcptab_POSID](
	[TCP_RETE] [varchar](1) NOT NULL,
	[TCP_CODFIS] [varchar](19) NOT NULL,
	[codprog] [varchar](12) NOT NULL,
	[id_area] [varchar](4) NOT NULL,
	[POS_ID] [varchar](186) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_black_list]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_black_list](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](50) NOT NULL,
	[DescrizioneErrore] [varchar](8000) NULL,
	[DataInserimento] [datetime] NOT NULL,
	[Bloccato] [bit] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_c6mart_vcontratti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_c6mart_vcontratti](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_CONTRSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_CONTRSEI](
	[ADBKID] [varchar](255) NOT NULL,
	[INSTID] [varchar](255) NOT NULL,
	[CONTRACTCODE] [varchar](512) NULL,
	[CODAGE] [varchar](512) NULL,
	[STATUS] [varchar](512) NULL,
	[DTPROC_BASE] [int] NULL,
	[DTSIGN_BASE] [int] NULL,
	[DTEND_BASE] [int] NULL,
	[ADDRESS] [varchar](512) NULL,
	[CAP] [varchar](512) NULL,
	[CITY] [varchar](512) NULL,
	[PROVINCE] [varchar](512) NULL,
	[NATION] [varchar](512) NULL,
	[PRESSO] [varchar](512) NULL,
	[RANGECPP] [varchar](512) NULL,
	[GEN_REPORT] [varchar](512) NULL,
	[GEN_BILLING] [varchar](512) NULL,
	[EMAIL] [varchar](512) NULL,
	[FREQREPDIA] [varchar](512) NULL,
	[FREQREPMON] [varchar](512) NULL,
	[DTPROC_AV] [int] NULL,
	[DTSIGN_AV] [int] NULL,
	[DTEND_AV] [int] NULL,
	[DTFIRMA] [int] NULL,
	[PROGLASTSENDING] [int] NULL,
	[DTLASTSENDING] [int] NULL,
	[DTLASTPROCESSING] [int] NULL,
	[NEWFREQREPDIA] [varchar](512) NULL,
	[NEWFREQREPMON] [varchar](512) NULL,
	[DTSTARTFREQREP] [int] NULL,
	[NEWDTSTARTFREQREP] [int] NULL,
	[NOTE] [varchar](512) NULL,
	[DT_VALID] [int] NULL,
	[FL_SRDEF] [varchar](1) NULL,
	[FLAG_ROL] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_DETTAGLIO_ASUL](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[COD_PRODOTTO] [varchar](255) NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NOT NULL,
	[COD_INTERNO] [varchar](2) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DATA_RIF] [datetime] NULL,
	[COD_ISIN_FITTIZIO] [varchar](12) NULL,
	[COD_ISIN_SOTT] [varchar](12) NOT NULL,
	[COD_MAF_SOTT] [varchar](14) NULL,
	[SPB_POSITIONID] [varchar](123) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_DISALLINEATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_DISALLINEATI](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](19) NOT NULL,
	[ID_AREA] [varchar](4) NULL,
	[mon_area] [varchar](4) NOT NULL,
	[bf_ordprorg] [int] NULL,
	[CTV_MONIT] [decimal](15, 2) NOT NULL,
	[SUM_CTV] [decimal](38, 3) NULL,
	[delta] [decimal](38, 3) NULL,
	[mon_codprog] [varchar](12) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_doppi_brochure]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_doppi_brochure](
	[Rete] [char](1) NOT NULL,
	[CodiceFiscale] [varchar](16) NOT NULL,
	[IdReport] [int] NOT NULL,
	[TipoReport] [varchar](2) NOT NULL,
	[DataGenerazione] [datetime] NOT NULL,
	[DataInvio] [datetime] NULL,
	[DataInvioRistampa] [datetime] NULL,
	[FlagInvio] [varchar](1) NOT NULL,
	[NomeFile] [varchar](50) NOT NULL,
	[numeroPagine] [int] NULL,
	[RFA] [decimal](18, 2) NULL,
	[ID_ELAB] [int] NULL,
	[id_Fk_zip] [int] NOT NULL,
	[Definitivo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_DOPPI_PROG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_DOPPI_PROG](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_DOPPI_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_DOPPI_ZIP](
	[rete] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[tipoReport] [varchar](2) NOT NULL,
	[molt] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_email]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_email](
	[rete] [varchar](1) NOT NULL,
	[cod_agente] [varchar](6) NULL,
	[numSolleciti] [smallint] NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](255) NULL,
	[E_Cc] [varchar](500) NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](5000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_email_gior_bck]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_email_gior_bck](
	[rete] [char](1) NULL,
	[cod_agente] [char](6) NULL,
	[numSolleciti] [smallint] NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](255) NULL,
	[E_Cc] [varchar](500) NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](5000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_esclusi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_esclusi](
	[Rete] [nvarchar](50) NULL,
	[CF] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_mail]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_mail](
	[ID_ELAB] [int] NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](1) NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](1) NOT NULL,
	[E_Cc] [varchar](1) NOT NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](8000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_mail_bck0913]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_mail_bck0913](
	[ID_ELAB] [int] NULL,
	[rete] [varchar](1) NOT NULL,
	[cod_agente] [varchar](6) NOT NULL,
	[TIPO] [varchar](16) NOT NULL,
	[Email_Id] [int] NOT NULL,
	[Cod_Fiscale] [varchar](1) NOT NULL,
	[E_From] [varchar](5000) NULL,
	[E_To] [varchar](5000) NULL,
	[E_Ccn] [varchar](1) NOT NULL,
	[E_Cc] [varchar](1) NOT NULL,
	[E_Subject] [varchar](8000) NULL,
	[Testo] [varchar](8000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_PATRIMONIO_CAMPIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_PATRIMONIO_CAMPIONE](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[POSITIONID] [varchar](123) NULL,
	[COD_PRODOTTO] [varchar](57) NULL,
	[ID_CONTRATTO] [varchar](11) NOT NULL,
	[DATA_SOTTOSCRIZIONE] [datetime] NULL,
	[COD_STATO] [int] NULL,
	[NUM_POLIZZA] [varchar](11) NULL,
	[COD_MAF] [varchar](14) NULL,
	[COD_INTERNO] [varchar](12) NOT NULL,
	[COD_SOTTOPRODOTTO] [varchar](5) NOT NULL,
	[TIPO_PRODOTTO] [varchar](5) NOT NULL,
	[NOME_PROGETTO] [varchar](8000) NULL,
	[TIPO_PROGETTO] [varchar](20) NOT NULL,
	[ID_AREA] [varchar](10) NOT NULL,
	[DATA_OPERAZIONE] [datetime] NULL,
	[DATA_VALUTA] [int] NULL,
	[DATA_REGOLAMENTO] [int] NULL,
	[QUANTITA] [decimal](15, 3) NULL,
	[PREZZO] [int] NULL,
	[CTV] [decimal](15, 2) NULL,
	[CTV_NOMINALE] [decimal](15, 2) NULL,
	[VERSATO_NETTO] [decimal](15, 2) NULL,
	[PARTVIA_DISINV] [decimal](15, 2) NULL,
	[DATA_PARTVIA_DISINV] [datetime] NULL,
	[PARTVIA_INV] [int] NULL,
	[REND_SOTTOSCRIZIONE] [decimal](8, 5) NULL,
	[REND_TRIMESTRE] [int] NULL,
	[REND_ANNO] [decimal](8, 5) NULL,
	[StrType] [varchar](2) NULL,
	[COMPLEX] [int] NULL,
	[EMITTENTE] [varchar](200) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL,
	[chiaveClientePB] [int] NOT NULL,
	[REND_NON_RAPPR] [int] NOT NULL,
	[ORDINAMENTO_PROGETTO] [bigint] NOT NULL,
	[ORIZZ_TEMP_NUM] [nchar](10) NULL,
	[ORIZZONTETEMPORALE] [nvarchar](15) NULL,
	[CHIAVEPROGETTO] [bigint] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_promotori]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_promotori](
	[agente] [varchar](7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_pv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_pv](
	[RETE] [char](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[IMPORTO] [decimal](18, 3) NULL,
	[ID_ELAB] [int] NULL,
	[TIPO_ELAB] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_ReportRigenerare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_ReportRigenerare](
	[rete] [char](1) NOT NULL,
	[codiceFiscale] [varchar](16) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEMP_RP_MAPPINGTERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEMP_RP_MAPPINGTERZI](
	[chiaveProdottoTerzi] [bigint] NOT NULL,
	[Temp_oidProd] [char](35) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[temp_trimestrale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[temp_trimestrale](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[TipoElaborazione] [varchar](1) NOT NULL,
	[AdesioneSuccessivaAvanzato] [int] NOT NULL,
	[InvioBenvenuto] [varchar](1) NULL,
	[ClienteMigrato] [varchar](1) NULL,
	[RisorseNA] [varchar](1) NULL,
	[NumRevoche] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tempBlackList_4col]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tempBlackList_4col](
	[RETE] [varchar](100) NULL,
	[CODFIS] [varchar](100) NULL,
	[CODMAN] [varchar](100) NULL,
	[BLACKLIST] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tempBlackList_7col]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tempBlackList_7col](
	[RETE] [varchar](100) NULL,
	[CODFIS] [varchar](100) NULL,
	[CODMAN] [varchar](100) NULL,
	[COD_PROG_VP] [varchar](100) NULL,
	[OWNER_ALIM] [varchar](100) NULL,
	[BLOCCO] [varchar](100) NULL,
	[DESCR_ANOM_VP] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tempBlackList2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tempBlackList2](
	[RETE] [varchar](100) NULL,
	[CODFIS] [varchar](100) NULL,
	[DESCR] [varchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TempLotto2Francesco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TempLotto2Francesco](
	[RETE] [nvarchar](50) NULL,
	[CODICEFISCALE] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tesi1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tesi1](
	[cod_fiscale] [varchar](16) NULL,
	[rete] [varchar](1) NULL,
	[commento] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tesi2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tesi2](
	[cod_fiscale] [varchar](16) NULL,
	[rete] [varchar](1) NULL,
	[commento] [varchar](255) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TEST_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TEST_CONTR_SINTESI](
	[codicefiscale] [varchar](35) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[testAnag_Fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[testAnag_Fc](
	[RETE] [char](1) NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DATA_NASCITA] [datetime] NULL,
	[STATO_CIVILE] [int] NULL,
	[NUM_COMPONENTI] [int] NULL,
	[NUM_FIGLI] [int] NULL,
	[ETA] [int] NULL,
	[PARTITA_IVA] [varchar](16) NULL,
	[CITTADINANZA] [int] NULL,
	[PERSONA_FIS_GIUR] [int] NULL,
	[INDIRIZZO] [varchar](44) NOT NULL,
	[LOCALITA] [varchar](35) NOT NULL,
	[PROVINCIA] [varchar](2) NOT NULL,
	[CAP] [varchar](5) NOT NULL,
	[NAZIONE] [varchar](35) NOT NULL,
	[PRESSO] [varchar](1) NOT NULL,
	[TEL_RECAPITO] [int] NULL,
	[TEL_CELL] [int] NULL,
	[E_MAIL] [int] NULL,
	[DATA_INIZIO] [int] NULL,
	[DATA_FINE] [int] NULL,
	[STATO] [int] NULL,
	[RAG_SOC] [int] NULL,
	[SESSO] [varchar](1) NOT NULL,
	[ID_PROMOTORE] [char](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[testapp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[testapp](
	[chiaveClientePB] [int] NULL,
	[COD_FISCALE] [varchar](19) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [varchar](6) NULL,
	[rete] [varchar](1) NULL,
	[codiceContratto] [varchar](11) NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [datetime] NULL,
	[DATA_PERF] [datetime] NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [int] NULL,
	[NumSolleciti] [int] NULL,
	[NumRevoche] [int] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TextReplacementVariables]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TextReplacementVariables](
	[variableName] [nvarchar](128) NOT NULL,
	[variableValue] [text] NOT NULL,
	[flagnqp] [nvarchar](1) NOT NULL,
	[flagprlrde] [nvarchar](1) NULL,
	[flagpg] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TextTemplateConfiguration]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TextTemplateConfiguration](
	[TextFieldID] [int] NOT NULL,
	[TextFieldName] [varchar](64) NOT NULL,
	[TextValue] [varchar](max) NULL,
PRIMARY KEY CLUSTERED 
(
	[TextFieldID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[TextTemplateConfigurationMapping]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TextTemplateConfigurationMapping](
	[TemplateID] [int] NOT NULL,
	[TextFieldID] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tmp_lista_rep]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tmp_lista_rep](
	[Rete] [varchar](1) NOT NULL,
	[Cod_Agente] [varchar](6) NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[CodiceContratto] [varchar](11) NOT NULL,
	[Freq_Monitor] [varchar](1) NULL,
	[Freq_Diagnosi] [varchar](1) NULL,
	[data_perf] [datetime] NULL,
	[datagenerazione] [datetime] NOT NULL,
	[data_revoca] [datetime] NULL,
	[flg_monit] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[tmp_table]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tmp_table](
	[codFis] [varchar](16) NULL,
	[rete] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[V_ALL_PALTRIMONIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[V_ALL_PALTRIMONIO](
	[agente] [varchar](7) NULL,
	[rete] [varchar](10) NULL,
	[codice_fiscale] [varchar](128) NULL,
	[cataloguename] [varchar](128) NULL,
	[catalogueid] [varchar](128) NOT NULL,
	[positionid] [varchar](512) NULL,
	[cod_adeguatezza] [varchar](8000) NULL,
	[complessita] [numeric](2, 0) NULL,
	[tipoprodotto] [varchar](20) NULL,
	[controvalore_prodotto] [numeric](38, 19) NULL,
	[az_ob] [varchar](2) NULL,
	[paLTRIMonio_az_ob] [numeric](38, 19) NULL,
	[paLTRIMonio_az_ob_emit] [numeric](38, 19) NULL,
	[intermediario] [varchar](128) NULL,
	[paLTRIM_az_ob_emit_inter] [numeric](38, 19) NULL,
	[paLTRIMonio_intermediario] [numeric](38, 19) NULL,
	[emittente] [varchar](123) NOT NULL,
	[paLTRIMonio_emittente] [numeric](38, 19) NULL,
	[provenienza] [varchar](3) NOT NULL,
	[paLTRIMonio_bf_ppt] [numeric](38, 19) NULL,
	[paLTRIMonio_complessivo] [numeric](38, 19) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[valerio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[valerio](
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[AREA] [varchar](3) NULL,
	[ORDINE] [int] NOT NULL,
	[FASE] [int] NOT NULL,
	[DATA_FASE] [datetime] NULL,
	[CONTROVALORE] [decimal](38, 3) NULL,
	[RISORSEALLOCATE] [decimal](38, 3) NULL,
	[RISORSENONALLOCATE] [decimal](38, 3) NULL,
	[CONTOCORRENTE] [decimal](38, 3) NULL,
	[INVESTIMENTIINCORSO] [decimal](38, 3) NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[MAX_VAR] [decimal](5, 2) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PROFILO] [smallint] NULL,
	[AGENTE] [varchar](6) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSMAX] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[VAR_CHECK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[VAR_CHECK](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[VaRDiscordanti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[VaRDiscordanti](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NULL,
	[VAR_CORRETTO] [varchar](2) NOT NULL,
	[DataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[VaRDiscordanti_appo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[VaRDiscordanti_appo](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[VAR_PERC_PTF] [decimal](12, 3) NULL,
	[VAR_COMPLESSIVO_BF] [decimal](12, 3) NULL,
	[VAR_CORRETTO] [varchar](2) NOT NULL,
	[DataInserimento] [datetime] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[vcontratti_testpb]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[vcontratti_testpb](
	[chiaveClientePB] [int] NOT NULL,
	[Cod_fiscale] [varchar](16) NULL,
	[COD_MANDATO] [varchar](5) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NOT NULL,
	[RIATTIVAZIONE] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Vcontratti_VM]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Vcontratti_VM](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[TIP_CONTRATTO] [int] NULL,
	[RIATTIVAZIONE] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[vContrCong0913]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[vContrCong0913](
	[Rete] [varchar](1) NULL,
	[Cod_Agente] [varchar](50) NULL,
	[Cod_Fiscale] [varchar](16) NULL,
	[CodiceContratto] [varchar](11) NULL,
	[Freq_Monitoraggio] [varchar](1) NULL,
	[FREQ_DIAGNOSI] [varchar](1) NULL,
	[Data_FineAvanzato] [datetime] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [bit] NULL,
	[bloccato] [bit] NULL,
	[recuperati] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ver_dati_aggiornati]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ver_dati_aggiornati](
	[oid_cono] [varchar](35) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [numeric](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [numeric](19, 7) NULL,
	[F_PPROJECT_P_46507] [varchar](35) NULL,
	[C_QUANTILE50_C47E0] [numeric](19, 7) NULL,
	[ADBKID] [varchar](128) NULL,
	[INSTID] [varchar](10) NULL,
	[stato] [varchar](256) NULL,
	[C_PROJECTIDM_1AF31] [varchar](12) NULL,
	[needareaid] [varchar](128) NULL,
	[classifica] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ver_dati_cono]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ver_dati_cono](
	[oid_cono_da_aggiornare] [varchar](35) NULL,
	[C_DATA_FD2A6] [datetime] NULL,
	[C_QUANTILE5_BF710] [numeric](19, 7) NULL,
	[C_QUANTILE95_0D6CE] [numeric](19, 7) NULL,
	[C_QUANTILE50_C47E0] [numeric](19, 7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[verifica_trim]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[verifica_trim](
	[rete] [char](1) NULL,
	[cod_fiscale] [varchar](16) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[verificaFc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[verificaFc](
	[CF] [varchar](16) NULL,
	[R] [char](1) NULL,
	[CTVASS] [decimal](19, 5) NULL,
	[CTVBF] [decimal](19, 5) NULL,
	[NORAP] [decimal](19, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[verificafc_bf]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[verificafc_bf](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[ctv] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[verificafc_NoRapp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[verificafc_NoRapp](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[ctv] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[verificafc_perc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[verificafc_perc](
	[rete] [varchar](1) NOT NULL,
	[cod_fiscale] [varchar](16) NOT NULL,
	[ctv] [decimal](38, 22) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[VERIFICHE_LETTERE_090125]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[VERIFICHE_LETTERE_090125](
	[RETE] [nvarchar](50) NULL,
	[AM] [nvarchar](50) NULL,
	[CODAGE] [nvarchar](50) NULL,
	[CODCONF] [nvarchar](50) NULL,
	[ACQUISIZIONE] [int] NULL,
	[MESE_ACQUISIZIONE] [nvarchar](50) NULL,
	[Note] [varchar](max) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](16) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[verifiche90]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[verifiche90](
	[RETE] [nvarchar](50) NULL,
	[CODFIS] [varchar](16) NULL,
	[PIVA] [varchar](16) NULL,
	[CODCONF] [nvarchar](50) NULL,
	[note] [varchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[W6APUT_AnaFirma]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[W6APUT_AnaFirma](
	[FIRMA] [varchar](10) NOT NULL,
	[DESCRIZIONE_COMPLETA] [varchar](200) NULL,
	[DESCRIZIONE_REPORT] [varchar](200) NULL,
 CONSTRAINT [PK_W6APUT_AnaFirma] PRIMARY KEY CLUSTERED 
(
	[FIRMA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[w6catrf]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[w6catrf](
	[OID$] [char](35) NULL,
	[COD_INTERNO] [char](18) NULL,
	[COD_SOTTOPRODOTTO] [char](5) NULL,
	[COD_ISIN] [char](18) NULL,
	[COD_ADEGUATEZZA] [char](18) NULL,
	[COD_MAF] [char](18) NULL,
	[CATALOGUENAME] [char](128) NULL,
	[ASSETCLASSNAME] [char](128) NULL,
	[BDPERCENTAGE] [decimal](10, 7) NULL,
	[FLGVISIBLE] [decimal](9, 0) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[w6catrf_PG_20250430]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[w6catrf_PG_20250430](
	[oid$] [nvarchar](50) NOT NULL,
	[cod_interno] [nvarchar](18) NOT NULL,
	[cod_sottoprodotto] [nvarchar](5) NOT NULL,
	[cod_isin] [nvarchar](18) NOT NULL,
	[cod_adeguatezza] [nvarchar](18) NOT NULL,
	[cod_maf] [nvarchar](18) NOT NULL,
	[cataloguename] [nvarchar](128) NOT NULL,
	[assetclassname] [nvarchar](128) NOT NULL,
	[bdpercentage] [numeric](10, 7) NOT NULL,
	[flgvisible] [numeric](9, 0) NOT NULL,
	[fcore] [numeric](3, 0) NOT NULL,
	[alberatura] [numeric](5, 0) NOT NULL,
	[esg_ambientale] [nvarchar](1) NOT NULL,
	[esg_sociale] [nvarchar](1) NOT NULL,
	[esg_governance] [nvarchar](1) NOT NULL,
	[cat_sfdr] [nvarchar](30) NOT NULL,
	[esg_rating] [nvarchar](3) NOT NULL,
	[trend_esg_rating] [nvarchar](3) NOT NULL,
	[descr_sgr] [nvarchar](250) NOT NULL,
	[perc_investimento_sfdr] [numeric](3, 2) NOT NULL,
	[perc_investimento_taxonomy] [numeric](3, 2) NOT NULL,
	[pai_lab_a_emissioni_gas_serra] [nvarchar](2) NOT NULL,
	[pai_lab_a_biodiversita] [nvarchar](2) NOT NULL,
	[pai_lab_a_acqua] [nvarchar](2) NOT NULL,
	[pai_lab_a_rifiuti] [nvarchar](2) NOT NULL,
	[pai_lab_a_gov_ambientale] [nvarchar](2) NOT NULL,
	[pai_lab_a_comb_fossili] [nvarchar](2) NOT NULL,
	[pai_lab_a_eff_energetica] [nvarchar](2) NOT NULL,
	[pai_lab_a_questioni_soc] [nvarchar](2) NOT NULL,
	[pai_lab_s_questioni_soc_dip] [nvarchar](2) NOT NULL,
	[pai_lab_s_gov_sociali] [nvarchar](2) NOT NULL,
	[label_green_bond] [nvarchar](2) NOT NULL,
	[label_social_bond] [nvarchar](2) NOT NULL,
	[label_sustainability_bond] [nvarchar](2) NOT NULL,
	[label_transition_bond] [nvarchar](2) NOT NULL,
	[label_sust_linked_bond] [nvarchar](2) NOT NULL,
	[label_eu_green_bond] [nvarchar](2) NOT NULL,
	[u_info_esg] [nvarchar](5) NOT NULL,
	[data_ora_inse] [datetime2](7) NULL,
	[data_ora_aggi] [datetime2](7) NULL,
	[perc_investimento_sfdr_e] [numeric](5, 2) NOT NULL,
	[perc_investimento_sfdr_s] [numeric](5, 2) NOT NULL,
	[pai_lab_a_settore_immobiliare] [nvarchar](2) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[W6IndPtf_PG_pre20241016]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[W6IndPtf_PG_pre20241016](
	[dttrim] [numeric](9, 0) NOT NULL,
	[rete] [nvarchar](1) NOT NULL,
	[codfis] [nvarchar](16) NOT NULL,
	[codman] [nvarchar](6) NOT NULL,
	[ptf_diversificato] [nvarchar](1) NOT NULL,
	[ptf_adeguato] [nvarchar](1) NOT NULL,
	[blacklist] [nvarchar](1) NOT NULL,
	[data_ora_inse] [datetime2](7) NULL,
	[data_ora_aggi] [datetime2](7) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[W6IndPtf_pre20241016]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[W6IndPtf_pre20241016](
	[DTTRIM] [numeric](9, 0) NULL,
	[RETE] [char](1) NULL,
	[CHIAVE_ACN] [varchar](32) NULL,
	[CODFIS] [char](16) NULL,
	[CODMAN] [char](6) NULL,
	[PTF_DIVERSIFICATO] [char](1) NULL,
	[PTF_ADEGUATO] [char](1) NULL,
	[BLACKLIST] [varchar](1) NOT NULL,
	[DATA_ORA_INSE] [datetime] NULL,
	[DATA_ORA_AGGI] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[W6TRCLI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[W6TRCLI](
	[Rete] [char](1) NULL,
	[Codice_Agente] [char](6) NULL,
	[Nominativo_ Agente] [char](50) NULL,
	[CodiceFiscale] [char](16) NULL,
	[CodiceContratto] [char](11) NULL,
	[Freq_Monitoraggio] [char](1) NULL,
	[Freq_ Diagnosi] [char](1) NULL,
	[Data_Revoca] [decimal](9, 0) NULL,
	[TipoContratto] [char](1) NULL,
	[TipoRiattivazione] [char](1) NULL,
	[ROL] [char](1) NULL,
	[ClienteDB] [char](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[WSEIAN_settembre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WSEIAN_settembre](
	[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[WSEIPV_settembre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WSEIPV_settembre](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[IMPVER] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[SUBSET] [varchar](10) NULL,
	[CODMAN] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[WseiToDel]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WseiToDel](
	[dttrim] [decimal](9, 0) NOT NULL,
	[dtrife] [decimal](9, 0) NOT NULL,
	[rete] [varchar](1) NOT NULL,
	[codfis] [varchar](16) NOT NULL,
	[codconf] [varchar](11) NOT NULL,
	[tipprod] [varchar](5) NOT NULL,
	[codint] [varchar](12) NOT NULL,
	[subprod] [varchar](5) NOT NULL,
	[ctv] [decimal](15, 2) NULL,
	[RowNumber] [bigint] NULL,
	[max] [bigint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[WSEIUL_settembre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[WSEIUL_settembre](
	[DTTRIM] [decimal](9, 0) NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NULL,
	[CODCONF] [varchar](11) NOT NULL,
	[CODINT] [varchar](2) NOT NULL,
	[SUBPROD] [varchar](5) NOT NULL,
	[CTV] [decimal](15, 2) NULL,
	[DTRIFE] [decimal](9, 0) NOT NULL,
	[ISINFIT] [varchar](12) NULL,
	[ISIN] [varchar](12) NOT NULL,
	[MAF] [varchar](14) NULL,
	[SUBSET] [varchar](10) NULL,
	[CODMAN] [varchar](6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ZETA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ZETA](
	[rete] [char](1) NOT NULL,
	[codagente] [varchar](7) NULL,
	[codiceFiscale] [varchar](35) NOT NULL,
	[conto] [varchar](12) NULL,
	[pivafiduciaria] [varchar](11) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ztmp_ContrattiPreTrimestrale]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ztmp_ContrattiPreTrimestrale](
	[chiaveClientePB] [int] NOT NULL,
	[COD_FISCALE] [varchar](16) NULL,
	[COD_MANDATO] [varchar](6) NULL,
	[PIVA_FIDUCIARIA] [varchar](11) NULL,
	[COD_AGENTE] [char](6) NULL,
	[rete] [char](1) NULL,
	[codiceContratto] [varchar](11) NOT NULL,
	[flagRol] [varchar](1) NULL,
	[INDIRIZZO] [varchar](512) NULL,
	[cap] [varchar](512) NULL,
	[CITTA] [varchar](512) NULL,
	[PROVINCIA] [varchar](512) NULL,
	[NAZIONE] [varchar](512) NULL,
	[presso] [varchar](512) NULL,
	[email] [varchar](512) NULL,
	[FREQ_DIAGNOSI] [varchar](512) NULL,
	[FREQ_MONITORAGGIO] [varchar](512) NULL,
	[GENERAZIONEREPORT] [varchar](512) NULL,
	[DATA_INIZIOBASE] [datetime] NULL,
	[DATA_FINEBASE] [datetime] NULL,
	[DATA_PERF_BASE] [nvarchar](10) NULL,
	[DATA_PERF] [nvarchar](10) NULL,
	[DATA_INZIOAVANZATO] [datetime] NULL,
	[DATA_FINEAVANZATO] [datetime] NULL,
	[RIATTIVAZIONE] [int] NULL,
	[TIP_CONTRATTO] [smallint] NULL,
	[TIP_RIATTIVAZIONE] [smallint] NULL,
	[ClienteMIGRATO] [varchar](1) NULL,
	[RISORSENA] [varchar](1) NULL,
	[PROFILOATTIVO] [bit] NULL,
	[NumSolleciti] [smallint] NULL,
	[NumRevoche] [smallint] NULL,
	[Data_ultimoSollecito] [datetime] NULL,
	[Data_ultimaRevoca] [datetime] NULL,
	[InvioBenvenuto] [varchar](1) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ztmp_FotoDimensioneTabelle]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ztmp_FotoDimensioneTabelle](
	[DB_NAME] [nvarchar](128) NULL,
	[DataEstraz] [datetime] NOT NULL,
	[name] [nvarchar](128) NULL,
	[schema_name] [sysname] NOT NULL,
	[create_date] [datetime] NOT NULL,
	[modify_date] [datetime] NOT NULL,
	[rows] [char](11) NULL,
	[reserved_KB] [varchar](15) NULL,
	[it_reserved_KB] [varchar](15) NULL,
	[tot_reserved_KB] [varchar](15) NULL,
	[data_KB] [varchar](15) NULL,
	[data_MB] [varchar](15) NULL,
	[index_size_KB] [varchar](15) NULL,
	[it_index_size_KB] [varchar](15) NULL,
	[tot_index_size_KB] [varchar](15) NULL,
	[unused_KB] [varchar](15) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ztmp_FotoDimensioneTabelle_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ztmp_FotoDimensioneTabelle_2](
	[DB_NAME] [nvarchar](128) NULL,
	[DataEstraz] [datetime] NOT NULL,
	[name] [nvarchar](128) NULL,
	[schema_name] [sysname] NOT NULL,
	[create_date] [datetime] NOT NULL,
	[modify_date] [datetime] NOT NULL,
	[rows] [char](11) NULL,
	[reserved_KB] [varchar](15) NULL,
	[it_reserved_KB] [varchar](15) NULL,
	[tot_reserved_KB] [varchar](15) NULL,
	[data_KB] [varchar](15) NULL,
	[data_MB] [varchar](15) NULL,
	[index_size_KB] [varchar](15) NULL,
	[it_index_size_KB] [varchar](15) NULL,
	[tot_index_size_KB] [varchar](15) NULL,
	[unused_KB] [varchar](15) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ztmp_SCARTIQUADRATURA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ztmp_SCARTIQUADRATURA](
	[rete] [char](1) NULL,
	[codfis] [varchar](16) NULL,
	[codcontratto] [varchar](11) NULL,
	[bloccato] [bit] NULL,
	[gestito] [bit] NULL,
	[DATA_CHIUSURA_CB] [datetime] NULL,
	[DATA_CHIUSURA_C6] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[ztmpfa_wseics]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ztmpfa_wseics](
	[dttrim] [numeric](9, 0) NULL,
	[dtrife] [numeric](9, 0) NULL,
	[rete] [nvarchar](20) NULL,
	[codfis] [nvarchar](20) NULL,
	[codconf] [nvarchar](40) NULL,
	[numpol] [nvarchar](4000) NULL,
	[conto] [nvarchar](4000) NULL,
	[rubr] [nvarchar](4000) NULL,
	[custgar] [nvarchar](4000) NULL,
	[tipprod] [nvarchar](20) NULL,
	[codint] [nvarchar](4000) NULL,
	[codprod] [nvarchar](4000) NULL,
	[subprod] [nvarchar](4000) NULL,
	[maf] [nvarchar](4000) NULL,
	[codabi] [nvarchar](4000) NULL,
	[pctkey] [nvarchar](4000) NULL,
	[destit] [nvarchar](4000) NULL,
	[ctv] [numeric](28, 6) NULL,
	[partvia] [numeric](15, 2) NULL,
	[partviaal] [numeric](9, 0) NULL,
	[dtsottos] [numeric](9, 0) NULL,
	[rendiniz] [numeric](28, 6) NULL,
	[rendanno] [numeric](28, 6) NULL,
	[valore] [numeric](28, 6) NULL,
	[subset] [nvarchar](40) NULL,
	[cvn] [int] NULL,
	[quote] [numeric](28, 6) NULL,
	[codman] [nvarchar](4000) NULL,
	[flagtrim] [nvarchar](4000) NULL,
	[salrisc] [numeric](28, 6) NULL,
	[attivo] [nvarchar](4000) NULL,
	[prezzo] [numeric](28, 6) NULL,
	[divisa] [nvarchar](4000) NULL,
	[base_prezz] [nvarchar](4000) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[GESTIONE_Report]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[GESTIONE_Report](
	[IdReport] [int] NOT NULL,
	[Nome] [varchar](70) NOT NULL,
	[IdReportModello] [int] NULL,
	[Descrizione] [varchar](250) NULL,
	[DtCreazione] [datetime] NULL,
	[DtCancellazione] [datetime] NULL,
	[FlgModello] [bit] NULL,
	[TpReport] [smallint] NOT NULL,
	[Utente] [varchar](13) NULL,
 CONSTRAINT [PK_GESTIONE_Report] PRIMARY KEY CLUSTERED 
(
	[IdReport] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6_SezioneR6Capitolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6_SezioneR6Capitolo](
	[IdSezione] [int] NULL,
	[IdCapitoloPDF] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6_SezioneR6Paragrafo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6_SezioneR6Paragrafo](
	[IdSezione] [int] NULL,
	[IdParagrafoPDF] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6_SezioneR6Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6_SezioneR6Sezione](
	[id] [int] NOT NULL,
	[idFkC6Sezione] [int] NOT NULL,
	[idFkSezione] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6_Vincolo_SezioneFisica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6_Vincolo_SezioneFisica](
	[IDVincoloSezioneFisica] [int] NOT NULL,
	[SezioneFisica] [varchar](50) NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Capitolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Capitolo](
	[id] [int] NOT NULL,
	[titolo] [varchar](200) NOT NULL,
	[testo] [varchar](2000) NULL,
	[testoAlternativo] [varchar](2000) NULL,
	[nuovapagina] [bit] NOT NULL,
	[queryOracle] [varchar](200) NULL,
	[querySql] [varchar](200) NULL,
	[querySqlPeriodico] [varchar](200) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6CapitoloR6Paragrafo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6CapitoloR6Paragrafo](
	[id] [int] NOT NULL,
	[idFkCapitolo] [int] NOT NULL,
	[idFkParagrafo] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[ordineParagrafo] [int] NULL,
	[indicizzato] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Cardinalita_VincoloApplicativo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Cardinalita_VincoloApplicativo](
	[ID] [int] NOT NULL,
	[IDCardinalita] [int] NULL,
	[CodiceVincoloApplicativo] [varchar](50) NULL,
	[VincoloApplicativo] [nvarchar](100) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6CardinalitaVincolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6CardinalitaVincolo](
	[id] [int] NOT NULL,
	[IDVincolo] [int] NOT NULL,
	[Cardinalita] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Paragrafo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Paragrafo](
	[id] [int] NOT NULL,
	[titolo] [varchar](200) NULL,
	[testo] [varchar](2000) NULL,
	[queryOracle] [varchar](200) NULL,
	[querySql] [varchar](200) NULL,
	[querySqlPeriodico] [varchar](200) NULL,
	[SottoTitoloQuery] [varchar](2000) NULL,
	[SpazioNecessarioSezioneSuccessiva] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6ParagrafoR6Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6ParagrafoR6Sezione](
	[id] [int] NOT NULL,
	[idFkParagrafo] [int] NOT NULL,
	[idFkSezione] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[filtroDataView] [varchar](200) NULL,
	[titolo] [varchar](200) NULL,
	[testo] [varchar](2000) NULL,
	[testo1] [varchar](2000) NULL,
	[nota] [varchar](2000) NULL,
	[nota1] [varchar](2000) NULL,
	[vincolata] [bit] NOT NULL,
	[ordineSezione] [int] NULL,
	[indicizzato] [bit] NULL,
	[nuovaPaginaDopo] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Report]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Report](
	[id] [int] NOT NULL,
	[nome] [varchar](50) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6ReportR6Capitolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6ReportR6Capitolo](
	[id] [int] NOT NULL,
	[idFkReport] [int] NOT NULL,
	[idFkCapitolo] [int] NOT NULL,
	[ordineCapitolo] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Sezione](
	[id] [int] NOT NULL,
	[codice] [varchar](10) NOT NULL,
	[queryOracle] [varchar](400) NULL,
	[querySql] [varchar](200) NULL,
	[querySqlPeriodico] [varchar](200) NULL,
	[ordineQueryOracle] [int] NULL,
	[ordineQuerySql] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Sezione_Vincolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Sezione_Vincolo](
	[IDSezione] [int] NULL,
	[IDVincolo] [int] NULL,
	[IDVincoloSezioneFisica] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[R6Vincolo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[R6Vincolo](
	[id] [int] NOT NULL,
	[Descrizione] [varchar](250) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[ReportSezionePers]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[ReportSezionePers](
	[DtCreazione] [datetime] NULL,
	[DtCancellazione] [datetime] NULL,
	[IdReport] [int] NOT NULL,
	[IdSezione] [int] NOT NULL,
	[Utente] [varchar](13) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [dboPeriodico].[Sezione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dboPeriodico].[Sezione](
	[IdSezione] [int] NOT NULL,
	[internalSectionCode] [varchar](50) NULL,
	[Descrizione] [varchar](250) NULL,
	[DtCancellazione] [datetime] NOT NULL,
	[IdSezionePadre] [int] NULL,
	[DtCreazione] [datetime] NULL,
	[Nome] [varchar](250) NULL,
	[FlgSezione] [bit] NOT NULL,
	[ClasseRealizzazione] [varchar](70) NULL,
	[IdReport] [int] NOT NULL,
	[TpSezione] [smallint] NOT NULL,
	[Utente] [varchar](13) NULL,
	[Ordine] [smallint] NULL,
	[TpInclusione] [smallint] NULL,
	[ClasseVisualizzazione] [char](18) NULL,
	[NomeControlloGruppo] [varchar](70) NULL,
	[IsDefault] [int] NULL,
	[IsMandatory] [int] NULL,
	[IsBold] [int] NULL,
	[Theme] [varchar](100) NULL,
	[idFkTipoCheck] [int] NOT NULL,
	[NomeImmagine] [varchar](50) NULL,
	[CSSClass] [varchar](50) NULL,
	[NoParentBehaviour] [bit] NULL,
	[IsSectionPrinting] [bit] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [level2martperiodico].[PatrimonioBFAggregato]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [level2martperiodico].[PatrimonioBFAggregato](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[PatrimonioNonAssociato] [decimal](38, 3) NULL,
	[ContoCorrente] [decimal](38, 3) NULL,
	[PatrimonioSenzaCC] [decimal](38, 3) NULL,
	[PartiteViaggiantiDisinv] [decimal](38, 3) NULL,
 CONSTRAINT [PK_PatrimonioBFAggregato] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [level2martperiodico].[PatrimonioNonRappresentabileAsset]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [level2martperiodico].[PatrimonioNonRappresentabileAsset](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[Controvalore] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [level2martperiodico].[PatrimonioTerziAggregato]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [level2martperiodico].[PatrimonioTerziAggregato](
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[ControvaloreSenzaCC] [decimal](38, 3) NULL,
	[ControvaloreCC] [decimal](38, 3) NULL,
	[NumeroIntermediari] [int] NULL,
 CONSTRAINT [PK_PatrimonioTerziAggregato] PRIMARY KEY CLUSTERED 
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_AreeMonitorate]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_AreeMonitorate](
	[ProcedureName] [varchar](33) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NEED_AREA] [varchar](512) NULL,
	[NEED_ESTESA] [varchar](35) NULL,
	[NOME_PROGETTO] [varchar](512) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ORDINE] [int] NULL,
	[AREAPROGETTOSOTTOMONITORAGGIO] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D_S170RischioDiversificazione](
	[ProcedureName] [varchar](128) NOT NULL,
	[i_rete] [varchar](1) NOT NULL,
	[i_codiceFiscale] [varchar](16) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CTV_AGGREG] [decimal](38, 3) NULL,
	[CREDITRISK] [int] NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [varchar](4) NULL,
	[coperturaString] [varchar](8000) NULL,
	[diversificazione] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PATRIMONIO] [varchar](26) NOT NULL,
	[profiloCode] [int] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[Ordine] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S151ProfiloDiRischio](
	[ProcedureName] [varchar](42) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[codiceProfilo] [smallint] NULL,
	[dataInizioValidita] [datetime] NULL,
	[varMassimo] [decimal](5, 2) NULL,
	[varBF] [decimal](12, 2) NOT NULL,
	[coperturaBF] [decimal](12, 2) NOT NULL,
	[nomeProfilo] [varchar](50) NULL,
	[riskclass] [varchar](50) NULL,
	[experince] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S152Patrimonio](
	[ProcedureName] [varchar](36) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[BFCTV] [decimal](15, 2) NULL,
	[PatrimonioTerziCTV] [decimal](15, 2) NULL,
	[FinanziarioCTV] [decimal](16, 2) NULL,
	[FinanziarioPerc] [decimal](6, 2) NULL,
	[ImmobiliareCTV] [decimal](15, 2) NULL,
	[ImmobiliarePerc] [decimal](6, 2) NULL,
	[AltroCTV] [decimal](15, 2) NULL,
	[AltroPerc] [decimal](6, 2) NULL,
	[TotaleCTV] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S153PatrimonioFinanziario](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Intermediario] [varchar](60) NULL,
	[Ordine] [int] NOT NULL,
	[Banca] [varchar](15) NOT NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[Percentuale] [decimal](38, 6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S154PatrimonioFinanziario](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](15) NOT NULL,
	[Ordinamento] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](38, 6) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[PatrimonioFinanziarioCTV] [decimal](38, 6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S155PatrimonioImmobiliare](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Descrizione] [varchar](256) NULL,
	[Tipologia] [varchar](100) NULL,
	[Localita] [varchar](60) NULL,
	[AffittoPercepito] [decimal](15, 3) NOT NULL,
	[Valore] [decimal](15, 3) NULL,
	[Totale] [decimal](38, 3) NULL,
	[TotaleAffitto] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S156ALtroPatrimonio](
	[ProcedureName] [varchar](41) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Denominazione] [varchar](255) NULL,
	[NumeroQuote] [int] NULL,
	[Valore] [decimal](15, 3) NULL,
	[Totale] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S157ConfrontoPiramidi](
	[ProcedureName] [varchar](43) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NeedArea] [varchar](20) NULL,
	[AreaName] [varchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [varchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [varchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [varchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [varchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [varchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [varchar](4) NULL,
	[ordinamento] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S158PiramideModello](
	[ProcedureName] [varchar](41) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NomePrg] [varchar](40) NULL,
	[OrizzTempPrg] [varchar](20) NULL,
	[VarPrg] [decimal](12, 3) NULL,
	[ControvalorePrg] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S159PatrimonioFinanziario](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Banca] [varchar](15) NOT NULL,
	[Ordinamento] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](38, 6) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[Totale] [decimal](38, 6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S160DettaglioProdottiBF](
	[ProcedureName] [varchar](45) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[needarea] [varchar](20) NOT NULL,
	[needareades] [varchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [varchar](40) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [varchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 2) NULL,
	[MinusPlusValenza_needareaString] [varchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [varchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 2) NULL,
	[MinusPlusValenza_need_progString] [varchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [varchar](8000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [varchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[dataSottoscrizione] [varchar](10) NULL,
	[ContrattoDossier] [varchar](11) NOT NULL,
	[Descrizione] [varchar](144) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](17, 3) NULL,
	[VersatoNettoString] [varchar](4) NULL,
	[MinusPlusValenza] [decimal](15, 2) NULL,
	[MinusPlusValenzaString] [varchar](4) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[varProdottoString] [varchar](4) NULL,
	[Coperturaprodotto] [numeric](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [varchar](1) NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NULL,
	[creditriskemit] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S162DettaglioProdotti](
	[ProcedureName] [varchar](43) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[TipoProdotto] [varchar](50) NULL,
	[Intermediario] [varchar](60) NULL,
	[DataDiSottoscrizioni] [varchar](10) NULL,
	[Descrizione] [varchar](150) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](15, 3) NULL,
	[MinusPlusValenza] [decimal](16, 3) NULL,
	[VarPerc] [decimal](12, 3) NULL,
	[VersatoNettoString] [varchar](4) NULL,
	[MinusPlusValenzaString] [varchar](4) NULL,
	[VarPercString] [varchar](4) NULL,
	[TotaleCTV] [decimal](38, 3) NULL,
	[TotaleVersatoNetto] [decimal](38, 3) NULL,
	[TotaleVersatoNettoString] [varchar](4) NULL,
	[TotaleMinus] [decimal](38, 3) NULL,
	[TotaleMinusString] [varchar](4) NULL,
	[TotaleVar] [decimal](12, 3) NULL,
	[TotaleVarString] [varchar](4) NULL,
	[Copertura_Tot] [decimal](12, 3) NULL,
	[Aggiornamento] [int] NULL,
	[Copertura_Totale] [varchar](8000) NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Tipo] [varchar](33) NOT NULL,
	[Note] [varchar](1) NOT NULL,
	[ProdNonInCatalogo] [int] NOT NULL,
	[OrdinamentoProdotti] [int] NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NULL,
	[creditriskemit] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S163PatrimonioFinanziarioMAssetClass](
	[ProcedureName] [varchar](58) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Ordinamento] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](19, 6) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[PatrimonioFinanziarioCTV] [decimal](19, 6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S164PolizzeAltriIstituti](
	[ProcedureName] [varchar](46) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Intermediario] [varchar](60) NULL,
	[DataDiSottoscrizione] [varchar](10) NULL,
	[DataDiScadenza] [varchar](10) NULL,
	[TipologiaPolizza] [varchar](30) NULL,
	[Descrizione] [varchar](150) NULL,
	[Aggiornamento] [int] NULL,
	[PrestazioneAssicurata] [decimal](15, 3) NULL,
	[TipoVersamento] [varchar](50) NULL,
	[AmmontareVersamento] [decimal](15, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S165FondiAltriIstituti](
	[ProcedureName] [varchar](44) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Intermediario] [varchar](60) NULL,
	[descrizione_prodotto] [varchar](150) NULL,
	[DataSottoscrizione] [varchar](10) NULL,
	[tipo_versamento] [varchar](50) NULL,
	[controvalore] [decimal](15, 3) NULL,
	[ammontare] [decimal](15, 3) NULL,
	[somma_controval] [decimal](38, 3) NULL,
	[Var_Prodotto] [decimal](12, 3) NULL,
	[Var_ProdottoString] [varchar](4) NULL,
	[Var_Totale] [decimal](12, 3) NULL,
	[Var_TotaleString] [varchar](4) NULL,
	[copertura_totale] [varchar](8000) NULL,
	[Nota] [varchar](1) NOT NULL,
	[ProdNonInCatalogo] [int] NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S167DistribuzioneRischioCredito](
	[ProcedureName] [varchar](53) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](15) NOT NULL,
	[ORDINE] [int] NOT NULL,
	[CTV_TOT] [decimal](38, 3) NULL,
	[CTV_notCovered] [decimal](38, 3) NULL,
	[CTV_CreditRisk] [decimal](38, 3) NULL,
	[CTV_na] [decimal](38, 3) NULL,
	[PERC_CreditRisk] [decimal](38, 6) NULL,
	[PERC_NA] [decimal](38, 6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S168TabellaEmittenti](
	[ProcedureName] [varchar](42) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[COD_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[RATING_AAA] [int] NULL,
	[RATING_AAp] [int] NULL,
	[RATING_AA] [int] NULL,
	[RATING_AAm] [int] NULL,
	[RATING_Ap] [int] NULL,
	[RATING_A] [int] NULL,
	[RATING_Am] [int] NULL,
	[RATING_BBBp] [int] NULL,
	[RATING_BBB] [int] NULL,
	[RATING_BBBm] [int] NULL,
	[RATING_BBp] [int] NULL,
	[RATING_BB] [int] NULL,
	[RATING_BBm] [int] NULL,
	[RATING_Bp] [int] NULL,
	[RATING_B] [int] NULL,
	[RATING_Bm] [int] NULL,
	[RATING_CCCp] [int] NULL,
	[RATING_CCC] [int] NULL,
	[RATING_CCCm] [int] NULL,
	[RATING_CC] [int] NULL,
	[RATING_C] [int] NULL,
	[RATING_D] [int] NULL,
	[RATING_na] [int] NULL,
	[FLG_RISKCLASS1] [int] NULL,
	[FLG_RISKCLASS2] [int] NULL,
	[FLG_RISKCLASS3] [int] NULL,
	[FLG_RISKCLASS4] [int] NULL,
	[FLG_RISKCLASS5] [int] NULL,
	[FLG_RISKCLASS6] [int] NULL,
	[FLG_RISKCLASS7] [int] NULL,
	[FLG_RISKCLASS8] [int] NULL,
	[FLG_RISKCLASS9] [int] NULL,
	[FLG_RISKCLASS10] [int] NULL,
	[INTERMEDIARIO] [varchar](128) NOT NULL,
	[ISSUER] [varchar](512) NULL,
	[STOCKSCounterValue] [numeric](38, 7) NULL,
	[bondsCounterValue] [numeric](38, 7) NULL,
	[CONCENTRATION_ISSUER] [numeric](38, 6) NULL,
	[CONCENTRATION] [numeric](38, 6) NULL,
	[NC] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S169RischiomercatoRischiocredito](
	[ProcedureName] [varchar](54) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INSTITUTENAME] [varchar](26) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [smallint] NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[VAR] [decimal](12, 3) NULL,
	[VARSTRING] [varchar](4) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [varchar](4) NULL,
	[COVERAGE] [decimal](12, 3) NULL,
	[COVERAGESTRING] [varchar](4) NULL,
	[RISKCLASSMAX] [varchar](50) NULL,
	[PERCENTAGE] [decimal](38, 6) NULL,
	[ORDINE] [int] NOT NULL,
	[Ully_perc] [decimal](10, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S170RischioDiversificazione](
	[ProcedureName] [varchar](49) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CTV_AGGREG] [decimal](13, 2) NULL,
	[CREDITRISK] [int] NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [varchar](4) NULL,
	[coperturaString] [varchar](8000) NULL,
	[diversificazione] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PATRIMONIO] [varchar](26) NOT NULL,
	[profiloCode] [int] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[Ordine] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_D2_S171PatrimonioNonRappresentabileAssettClass](
	[ProcedureName] [varchar](65) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Contratto] [varchar](11) NOT NULL,
	[DataSottoscrizione] [varchar](10) NULL,
	[Descrizione] [varchar](128) NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[controvalore_contratto] [decimal](15, 3) NULL,
	[PartitaViaggiante] [decimal](38, 3) NULL,
	[Intermediario] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S133AreeBisognoPrincProd]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S133AreeBisognoPrincProd](
	[ProcedureName] [varchar](46) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NeedArea] [varchar](20) NULL,
	[AreaName] [varchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [varchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [varchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [varchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [varchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [varchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [varchar](4) NULL,
	[ordinamento] [smallint] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S133BISPrincipaliProdotti](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[descrProdotto] [varchar](128) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[rischioRelativo] [numeric](38, 6) NULL,
	[pesoRelativo] [decimal](38, 19) NULL,
	[codAreaBisogno] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S134BISMonitoraggioLiqInv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S134BISMonitoraggioLiqInv](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NEED_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DATAVALORIZZAZIONE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEASSOCIATE] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S134MonitoraggioLiquidita]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S134MonitoraggioLiquidita](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[cf_rendim_non_rappr] [int] NOT NULL,
	[Need_Area] [varchar](20) NOT NULL,
	[Nome_Progetto] [varchar](50) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DataAttivazioneMonitoraggio] [varchar](10) NULL,
	[ControvaloreMonitorato] [decimal](15, 2) NULL,
	[ApportoIniziale] [decimal](15, 2) NULL,
	[ApportoSuccessivo] [decimal](15, 2) NULL,
	[LIQUIDAZIONI] [decimal](15, 2) NULL,
	[CedoleEDividendi] [decimal](15, 2) NULL,
	[MinusPlusAreaProgetto] [decimal](15, 2) NULL,
	[Rendimento_Attuale] [decimal](15, 2) NULL,
	[RisorseApportate] [decimal](15, 2) NULL,
	[DataControvalore] [varchar](10) NULL,
	[RENDIMENTO_ANNUALIZZATO] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S135MonitoraggioInvestimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S135MonitoraggioInvestimento](
	[ProcedureName] [varchar](50) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NEED_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DATAVALORIZZAZIONE] [datetime] NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEASSOCIATE] [decimal](15, 2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S137BISCapitaleProtetto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S137BISCapitaleProtetto](
	[ProcedureName] [varchar](45) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[DES_PROD] [varchar](128) NULL,
	[COD_CONF] [varchar](11) NOT NULL,
	[QUOTA] [decimal](15, 3) NULL,
	[NUMEROQUOTE] [decimal](15, 3) NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[DATARIF] [datetime] NOT NULL,
	[DES_MAX] [varchar](50) NOT NULL,
	[QUOTA_MAX] [decimal](15, 3) NULL,
	[QUOTA_MAX_PERC] [int] NOT NULL,
	[DATARIF_MAX] [datetime] NULL,
	[DES_PROT] [varchar](50) NOT NULL,
	[QUOTA_PROT] [decimal](15, 3) NULL,
	[NUMEROQUOTE_PROT] [decimal](15, 3) NULL,
	[CONTROVALORE_PROT] [decimal](15, 2) NULL,
	[DES_PROD_TIT] [varchar](128) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S137Bonus]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S137Bonus](
	[ProcedureName] [varchar](31) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[DES_PROD] [varchar](128) NULL,
	[COD_CONF] [varchar](11) NULL,
	[CTV] [numeric](15, 2) NULL,
	[DT_TRIM] [datetime] NULL,
	[DESBONUS_M] [varchar](14) NOT NULL,
	[BONUS_M] [numeric](15, 2) NULL,
	[DTDEC_M] [datetime] NULL,
	[DESBONUS_5] [varchar](23) NOT NULL,
	[BONUS_5] [numeric](15, 2) NULL,
	[DTDEC_5] [datetime] NULL,
	[DESBONUS_10] [varchar](24) NOT NULL,
	[BONUS_10] [numeric](15, 2) NULL,
	[DTDEC_10] [datetime] NULL,
	[COD_PROD] [varchar](2) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S140AnalisiRisparmioCharts]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S140AnalisiRisparmioCharts](
	[ProcedureName] [varchar](48) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INTERMEDIARIO] [varchar](60) NULL,
	[ORDINE] [int] NOT NULL,
	[CTV_TOT] [decimal](38, 3) NULL,
	[CTV_notCovered] [decimal](38, 3) NULL,
	[CTV_CreditRisk] [decimal](38, 3) NULL,
	[CTV_na] [decimal](38, 3) NULL,
	[PERC_CreditRisk] [decimal](38, 6) NULL,
	[PERC_NA] [decimal](38, 6) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S141AnalisiRisparmioTable]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S141AnalisiRisparmioTable](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[COD_FISCALE] [varchar](128) NULL,
	[RETE] [varchar](10) NULL,
	[RATING_AAA] [int] NULL,
	[RATING_AAp] [int] NULL,
	[RATING_AA] [int] NULL,
	[RATING_AAm] [int] NULL,
	[RATING_Ap] [int] NULL,
	[RATING_A] [int] NULL,
	[RATING_Am] [int] NULL,
	[RATING_BBBp] [int] NULL,
	[RATING_BBB] [int] NULL,
	[RATING_BBBm] [int] NULL,
	[RATING_BBp] [int] NULL,
	[RATING_BB] [int] NULL,
	[RATING_BBm] [int] NULL,
	[RATING_Bp] [int] NULL,
	[RATING_B] [int] NULL,
	[RATING_Bm] [int] NULL,
	[RATING_CCCp] [int] NULL,
	[RATING_CCC] [int] NULL,
	[RATING_CCCm] [int] NULL,
	[RATING_CC] [int] NULL,
	[RATING_C] [int] NULL,
	[RATING_D] [int] NULL,
	[RATING_na] [int] NULL,
	[FLG_RISKCLASS1] [int] NULL,
	[FLG_RISKCLASS2] [int] NULL,
	[FLG_RISKCLASS3] [int] NULL,
	[FLG_RISKCLASS4] [int] NULL,
	[FLG_RISKCLASS5] [int] NULL,
	[FLG_RISKCLASS6] [int] NULL,
	[FLG_RISKCLASS7] [int] NULL,
	[FLG_RISKCLASS8] [int] NULL,
	[FLG_RISKCLASS9] [int] NULL,
	[FLG_RISKCLASS10] [int] NULL,
	[INTERMEDIARIO] [varchar](128) NOT NULL,
	[ISSUER] [varchar](512) NULL,
	[STOCKSCounterValue] [numeric](38, 7) NULL,
	[bondsCounterValue] [numeric](38, 7) NULL,
	[CONCENTRATION_ISSUER] [numeric](38, 6) NULL,
	[CONCENTRATION] [numeric](38, 6) NULL,
	[NC] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_MP_S146RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_MP_S146RischioDiversificazione](
	[ProcedureName] [varchar](49) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [varchar](4) NULL,
	[coperturaString] [varchar](8000) NULL,
	[diversificazione] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PATRIMONIO] [varchar](26) NOT NULL,
	[profiloCode] [int] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[Ordine] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_Prodotti_Non_Associati_Area_Inv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_Prodotti_Non_Associati_Area_Inv](
	[ProcedureName] [varchar](50) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[NOME_PROGETTO] [varchar](40) NOT NULL,
	[NEED_AREA] [varchar](20) NULL,
	[CONTROVALOREATTUALE] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[var_needareaString] [varchar](4) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S10PatrimonioFinanziario](
	[ProcedureName] [varchar](43) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[BANCA] [varchar](15) NOT NULL,
	[ORDINAMENTO] [smallint] NULL,
	[AssetClassId] [varchar](50) NOT NULL,
	[AssetClassName] [varchar](128) NULL,
	[Controvalore] [decimal](19, 5) NULL,
	[Percentuale] [decimal](19, 5) NULL,
	[Totale] [decimal](19, 5) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S43BISDettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S43BISDettaglioProdottiBF](
	[ProcedureName] [varchar](44) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[needarea] [varchar](20) NOT NULL,
	[needareades] [varchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [varchar](40) NOT NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [varchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 2) NULL,
	[MinusPlusValenza_needareaString] [varchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [varchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 2) NULL,
	[MinusPlusValenza_need_progString] [varchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [varchar](8000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [varchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[copertura_need_progString] [varchar](8000) NULL,
	[dataAssociazione] [varchar](10) NULL,
	[ContrattoDossier] [varchar](11) NOT NULL,
	[Descrizione] [varchar](144) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](15, 2) NULL,
	[VersatoNettoString] [varchar](4) NULL,
	[MinusPlusValenza] [decimal](15, 2) NULL,
	[MinusPlusValenzaString] [varchar](4) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[varProdottoString] [varchar](4) NULL,
	[Coperturaprodotto] [numeric](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [varchar](1) NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NULL,
	[creditriskemit] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S43ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S43ContoCorrenteBF](
	[ProcedureName] [varchar](37) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[datadiSottoscrizione] [varchar](10) NULL,
	[conto] [varchar](12) NOT NULL,
	[Controvalore] [decimal](15, 2) NULL,
	[SALDO_DISPONIBILE] [decimal](15, 2) NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NOT NULL,
	[var] [int] NOT NULL,
	[varString] [int] NULL,
	[totaleVar] [int] NOT NULL,
	[totaleVarString] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S43DettaglioProdottiBF](
	[ProcedureName] [varchar](41) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[needarea] [varchar](20) NOT NULL,
	[needareades] [varchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [varchar](40) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [varchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 2) NULL,
	[MinusPlusValenza_needareaString] [varchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [varchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 2) NULL,
	[MinusPlusValenza_need_progString] [varchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [varchar](8000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [varchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[dataSottoscrizione] [varchar](10) NULL,
	[ContrattoDossier] [varchar](11) NOT NULL,
	[Descrizione] [varchar](144) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](17, 3) NULL,
	[VersatoNettoString] [varchar](4) NULL,
	[MinusPlusValenza] [decimal](15, 2) NULL,
	[MinusPlusValenzaString] [varchar](4) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[varProdottoString] [varchar](4) NULL,
	[Coperturaprodotto] [numeric](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [varchar](1) NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [varchar](4) NULL,
	[creditriskemit] [int] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S43LineaSelfBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S43LineaSelfBF](
	[ProcedureName] [varchar](33) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NumContratto] [char](11) NULL,
	[Controvalore] [decimal](15, 2) NOT NULL,
	[NomeProdotto] [varchar](128) NULL,
	[DataSott] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass](
	[ProcedureName] [varchar](72) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Contratto] [varchar](11) NOT NULL,
	[Area] [varchar](30) NULL,
	[NEEDAREA] [varchar](20) NOT NULL,
	[Progetto] [varchar](40) NULL,
	[ord_progetto] [int] NULL,
	[DataSottoscrizione] [varchar](10) NULL,
	[Descrizione] [varchar](128) NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[controvalore_contratto] [decimal](38, 3) NULL,
	[PartitaViaggiante] [decimal](15, 3) NULL,
	[Intermediario] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S80Alternativa]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S80Alternativa](
	[ProcedureName] [varchar](33) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[RETE] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NOT NULL,
	[Partita_viaggiante] [decimal](15, 2) NOT NULL,
	[CTV_EXT] [decimal](15, 3) NOT NULL,
	[CTV_INV] [decimal](15, 3) NOT NULL,
	[CTV_PRE] [decimal](15, 3) NOT NULL,
	[CTV_RIS] [decimal](15, 3) NOT NULL,
	[CTV_LIQ] [decimal](15, 3) NOT NULL,
	[RisorseAllocate] [decimal](19, 3) NULL,
	[RisorseNonAllocate] [decimal](15, 3) NOT NULL,
	[RisorseFinanziarie] [decimal](20, 3) NULL,
	[Contocorrente] [decimal](15, 3) NOT NULL,
	[ctvself] [decimal](18, 3) NOT NULL,
	[TotalePatrimonio] [decimal](23, 3) NULL,
	[DettMov] [varchar](50) NULL,
	[NumeroAsterischiNota] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S82BisDatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S82BisDatiSintetici](
	[ProcedureName] [varchar](38) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[need_area] [varchar](3) NOT NULL,
	[NOME_PROGETTO] [varchar](30) NULL,
	[var_needarea] [decimal](12, 3) NOT NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NOT NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[orizzonte_Pianificato] [varchar](20) NULL,
	[durataResidua] [varchar](128) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S82DatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S82DatiSintetici](
	[ProcedureName] [varchar](35) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[need_area] [varchar](3) NULL,
	[var_needarea] [decimal](12, 3) NOT NULL,
	[var_needareaString] [varchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NOT NULL,
	[copertura_needareaString] [varchar](4) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S85RendimentoPortafoglioCono]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S85RendimentoPortafoglioCono](
	[ProcedureName] [varchar](47) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[NEED_AREA] [varchar](20) NOT NULL,
	[NOME_PROGETTO] [varchar](50) NOT NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DATA_CONO] [datetime] NOT NULL,
	[OTTIMISTICO] [decimal](19, 7) NULL,
	[PESSIMISTICO] [decimal](19, 7) NULL,
	[ORIZZONTE_MESI] [decimal](22, 0) NULL,
	[RENDIMENTO] [decimal](15, 2) NULL,
	[DATA_MONIT] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento](
	[ProcedureName] [varchar](69) NOT NULL,
	[i_rete] [char](1) NULL,
	[i_codiceFiscale] [varchar](16) NULL,
	[Need_Area] [varchar](20) NULL,
	[Contratto] [varchar](11) NOT NULL,
	[Area_O_Nome_Progetto] [varchar](40) NULL,
	[Descrizione] [varchar](144) NULL,
	[PartitaViaggiante] [decimal](15, 3) NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[DataSottoscrizione] [varchar](10) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [test].[PL_S96RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [test].[PL_S96RischiomercatoRischiocredito](
	[ProcedureName] [nvarchar](max) NOT NULL,
	[i_rete] [varchar](1) NOT NULL,
	[i_codiceFiscale] [varchar](16) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[COD_FISCALE] [varchar](16) NOT NULL,
	[INSTITUTENAME] [nvarchar](max) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [int] NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[VAR] [decimal](12, 3) NULL,
	[VARSTRING] [nvarchar](max) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [nvarchar](max) NULL,
	[COVERAGE] [decimal](12, 3) NULL,
	[COVERAGESTRING] [nvarchar](max) NULL,
	[RISKCLASSMAX] [nvarchar](max) NULL,
	[PERCENTAGE] [decimal](38, 6) NULL,
	[ORDINE] [int] NOT NULL,
	[Ully_perc] [decimal](10, 2) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [wh].[MERGED_PROCEDURE_LIST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[MERGED_PROCEDURE_LIST](
	[FiscalCode] [varchar](20) NULL
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_AreeMonitorate]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_AreeMonitorate](
	[ProcedureName] [nvarchar](33) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NEED_AREA] [nvarchar](20) NOT NULL,
	[NEED_ESTESA] [nvarchar](35) NULL,
	[NOME_PROGETTO] [nvarchar](512) NULL,
	[ORDINAMENTO_PROGETTO] [int] NOT NULL,
	[ORDINE] [int] NULL,
	[AREAPROGETTOSOTTOMONITORAGGIO] [int] NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[NEED_AREA] ASC,
	[ORDINAMENTO_PROGETTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D_S170RischioDiversificazione](
	[ProcedureName] [nvarchar](128) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[CTV_AGGREG] [decimal](38, 3) NULL,
	[CREDITRISK] [int] NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [nvarchar](4) NULL,
	[coperturaString] [nvarchar](4000) NULL,
	[diversificazione] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PATRIMONIO] [nvarchar](26) NOT NULL,
	[profiloCode] [int] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[Ordine] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Ordine] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D_S178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D_S178IndicatoriEsitoAdeguatezza](
	[ProcedureName] [nvarchar](54) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[RM_Adeguatezza] [varchar](5) NULL,
	[RM_Descrizione] [varchar](1000) NULL,
	[RC_Adeguatezza] [varchar](5) NULL,
	[RC_Descrizione] [varchar](1000) NULL,
	[CE_Adeguatezza] [varchar](5) NULL,
	[CE_Descrizione] [varchar](1000) NULL,
	[CM_Adeguatezza] [varchar](5) NULL,
	[CM_Descrizione] [varchar](1000) NULL,
	[CC_Adeguatezza] [varchar](5) NULL,
	[CC_Descrizione] [varchar](1000) NULL,
	[FQ_Adeguatezza] [varchar](5) NULL,
	[FQ_Descrizione] [varchar](1000) NULL,
	[LQ_Adeguatezza] [varchar](5) NULL,
	[LQ_Descrizione] [varchar](1000) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S151ProfiloDiRischio](
	[ProcedureName] [nvarchar](42) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[codiceProfilo] [smallint] NOT NULL,
	[dataInizioValidita] [nvarchar](20) NULL,
	[varMassimo] [decimal](5, 2) NULL,
	[varBF] [decimal](12, 2) NOT NULL,
	[coperturaBF] [decimal](12, 2) NOT NULL,
	[nomeProfilo] [nvarchar](50) NULL,
	[riskclass] [nvarchar](50) NULL,
	[experince] [smallint] NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[codiceProfilo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S152Patrimonio](
	[ProcedureName] [nvarchar](36) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[BFCTV] [decimal](15, 2) NULL,
	[PatrimonioTerziCTV] [decimal](15, 2) NULL,
	[FinanziarioCTV] [decimal](16, 2) NULL,
	[FinanziarioPerc] [decimal](6, 2) NULL,
	[ImmobiliareCTV] [decimal](15, 2) NULL,
	[ImmobiliarePerc] [decimal](6, 2) NULL,
	[AltroCTV] [decimal](15, 2) NULL,
	[AltroPerc] [decimal](6, 2) NULL,
	[TotaleCTV] [decimal](15, 2) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S153PatrimonioFinanziario](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Intermediario] [nvarchar](60) NOT NULL,
	[Ordine] [int] NOT NULL,
	[Banca] [nvarchar](15) NOT NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[Percentuale] [decimal](38, 6) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Ordine] ASC,
	[Banca] ASC,
	[Intermediario] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S154PatrimonioFinanziario](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Banca] [nvarchar](15) NOT NULL,
	[Ordinamento] [smallint] NOT NULL,
	[AssetClassId] [nvarchar](50) NOT NULL,
	[AssetClassName] [nvarchar](128) NULL,
	[Controvalore] [decimal](38, 6) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[PatrimonioFinanziarioCTV] [decimal](38, 6) NULL,
PRIMARY KEY CLUSTERED 
(
	[Ordinamento] ASC,
	[i_codiceFiscale] ASC,
	[i_rete] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S155PatrimonioImmobiliare](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Descrizione] [nvarchar](256) NULL,
	[Tipologia] [nvarchar](100) NOT NULL,
	[Localita] [nvarchar](60) NULL,
	[AffittoPercepito] [decimal](15, 3) NOT NULL,
	[Valore] [decimal](15, 3) NULL,
	[Totale] [decimal](38, 3) NULL,
	[TotaleAffitto] [decimal](38, 3) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S156ALtroPatrimonio](
	[ProcedureName] [nvarchar](41) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Denominazione] [nvarchar](255) NULL,
	[NumeroQuote] [int] NULL,
	[Valore] [decimal](15, 3) NULL,
	[Totale] [decimal](38, 3) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S157ConfrontoPiramidi](
	[ProcedureName] [nvarchar](43) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NeedArea] [nvarchar](20) NULL,
	[AreaName] [nvarchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [nvarchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [nvarchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [nvarchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [nvarchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [nvarchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [nvarchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [nvarchar](4) NULL,
	[ordinamento] [smallint] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S158PiramideModello](
	[ProcedureName] [nvarchar](41) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NomePrg] [nvarchar](40) NOT NULL,
	[OrizzTempPrg] [nvarchar](20) NOT NULL,
	[VarPrg] [decimal](12, 3) NULL,
	[ControvalorePrg] [decimal](38, 3) NULL,
PRIMARY KEY CLUSTERED 
(
	[NomePrg] ASC,
	[i_codiceFiscale] ASC,
	[i_rete] ASC,
	[OrizzTempPrg] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S159PatrimonioFinanziario](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Banca] [nvarchar](15) NOT NULL,
	[Ordinamento] [smallint] NOT NULL,
	[AssetClassId] [nvarchar](50) NOT NULL,
	[AssetClassName] [nvarchar](128) NULL,
	[Controvalore] [decimal](38, 6) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[Totale] [decimal](38, 6) NULL,
PRIMARY KEY CLUSTERED 
(
	[Ordinamento] ASC,
	[i_codiceFiscale] ASC,
	[i_rete] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S160DettaglioProdottiBF](
	[ProcedureName] [nvarchar](45) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[needarea] [nvarchar](20) NOT NULL,
	[needareades] [nvarchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [nvarchar](40) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [nvarchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 2) NULL,
	[MinusPlusValenza_needareaString] [nvarchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [nvarchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 2) NULL,
	[MinusPlusValenza_need_progString] [nvarchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [nvarchar](4000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [nvarchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[dataSottoscrizione] [varchar](32) NULL,
	[ContrattoDossier] [nvarchar](11) NOT NULL,
	[Descrizione] [nvarchar](144) NOT NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](17, 3) NULL,
	[VersatoNettoString] [nvarchar](4) NULL,
	[MinusPlusValenza] [decimal](15, 2) NULL,
	[MinusPlusValenzaString] [nvarchar](4) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[varProdottoString] [nvarchar](4) NULL,
	[Coperturaprodotto] [numeric](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [nvarchar](1) NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [nvarchar](4) NULL,
	[creditriskemit] [int] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S162DettaglioProdotti](
	[ProcedureName] [nvarchar](43) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[TipoProdotto] [nvarchar](50) NOT NULL,
	[Intermediario] [nvarchar](60) NOT NULL,
	[DataDiSottoscrizioni] [nvarchar](10) NOT NULL,
	[Descrizione] [nvarchar](150) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](15, 3) NULL,
	[MinusPlusValenza] [decimal](16, 3) NULL,
	[VarPerc] [decimal](12, 3) NULL,
	[VersatoNettoString] [nvarchar](4) NULL,
	[MinusPlusValenzaString] [nvarchar](4) NULL,
	[VarPercString] [nvarchar](4) NULL,
	[TotaleCTV] [decimal](38, 3) NULL,
	[TotaleVersatoNetto] [decimal](38, 3) NULL,
	[TotaleVersatoNettoString] [nvarchar](4) NULL,
	[TotaleMinus] [decimal](38, 3) NULL,
	[TotaleMinusString] [nvarchar](4) NULL,
	[TotaleVar] [decimal](12, 3) NULL,
	[TotaleVarString] [nvarchar](4) NULL,
	[Copertura_Tot] [decimal](12, 3) NULL,
	[Aggiornamento] [int] NULL,
	[Copertura_Totale] [nvarchar](4000) NULL,
	[Rete] [nvarchar](1) NOT NULL,
	[Cod_Fiscale] [nvarchar](16) NOT NULL,
	[Tipo] [nvarchar](33) NOT NULL,
	[Note] [nvarchar](1) NOT NULL,
	[ProdNonInCatalogo] [int] NOT NULL,
	[OrdinamentoProdotti] [int] NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [nvarchar](4) NULL,
	[creditriskemit] [int] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S163PatrimonioFinanziarioMAssetClass](
	[ProcedureName] [nvarchar](58) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Ordinamento] [smallint] NOT NULL,
	[AssetClassId] [nvarchar](50) NOT NULL,
	[AssetClassName] [nvarchar](128) NULL,
	[Controvalore] [decimal](19, 6) NULL,
	[Percentuale] [decimal](38, 6) NULL,
	[PatrimonioFinanziarioCTV] [decimal](19, 6) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Ordinamento] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S164PolizzeAltriIstituti](
	[ProcedureName] [nvarchar](46) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Intermediario] [nvarchar](60) NULL,
	[DataDiSottoscrizione] [varchar](30) NULL,
	[DataDiScadenza] [varchar](30) NULL,
	[TipologiaPolizza] [nvarchar](30) NULL,
	[Descrizione] [nvarchar](150) NOT NULL,
	[Aggiornamento] [int] NULL,
	[PrestazioneAssicurata] [decimal](15, 3) NULL,
	[TipoVersamento] [nvarchar](50) NULL,
	[AmmontareVersamento] [decimal](15, 3) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S165FondiAltriIstituti](
	[ProcedureName] [nvarchar](44) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Intermediario] [nvarchar](60) NULL,
	[descrizione_prodotto] [nvarchar](150) NULL,
	[DataSottoscrizione] [nvarchar](30) NULL,
	[tipo_versamento] [nvarchar](50) NULL,
	[controvalore] [decimal](15, 3) NULL,
	[ammontare] [decimal](15, 3) NULL,
	[somma_controval] [decimal](38, 3) NULL,
	[Var_Prodotto] [decimal](12, 3) NULL,
	[Var_ProdottoString] [nvarchar](4) NULL,
	[Var_Totale] [decimal](12, 3) NULL,
	[Var_TotaleString] [nvarchar](4) NULL,
	[copertura_totale] [nvarchar](4000) NULL,
	[Nota] [nvarchar](1) NOT NULL,
	[ProdNonInCatalogo] [int] NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [nvarchar](4) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S167DistribuzioneRischioCredito](
	[ProcedureName] [nvarchar](53) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[INTERMEDIARIO] [nvarchar](15) NOT NULL,
	[ORDINE] [int] NOT NULL,
	[CTV_TOT] [decimal](38, 3) NULL,
	[CTV_notCovered] [decimal](38, 3) NULL,
	[CTV_CreditRisk] [decimal](38, 3) NULL,
	[CTV_na] [decimal](38, 3) NULL,
	[PERC_CreditRisk] [decimal](38, 6) NULL,
	[PERC_NA] [decimal](38, 6) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[ORDINE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S168TabellaEmittenti](
	[ProcedureName] [nvarchar](42) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[COD_FISCALE] [nvarchar](128) NULL,
	[RETE] [nvarchar](10) NULL,
	[RATING_AAA] [int] NULL,
	[RATING_AAp] [int] NULL,
	[RATING_AA] [int] NULL,
	[RATING_AAm] [int] NULL,
	[RATING_Ap] [int] NULL,
	[RATING_A] [int] NULL,
	[RATING_Am] [int] NULL,
	[RATING_BBBp] [int] NULL,
	[RATING_BBB] [int] NULL,
	[RATING_BBBm] [int] NULL,
	[RATING_BBp] [int] NULL,
	[RATING_BB] [int] NULL,
	[RATING_BBm] [int] NULL,
	[RATING_Bp] [int] NULL,
	[RATING_B] [int] NULL,
	[RATING_Bm] [int] NULL,
	[RATING_CCCp] [int] NULL,
	[RATING_CCC] [int] NULL,
	[RATING_CCCm] [int] NULL,
	[RATING_CC] [int] NULL,
	[RATING_C] [int] NULL,
	[RATING_D] [int] NULL,
	[RATING_na] [int] NULL,
	[FLG_RISKCLASS1] [int] NULL,
	[FLG_RISKCLASS2] [int] NULL,
	[FLG_RISKCLASS3] [int] NULL,
	[FLG_RISKCLASS4] [int] NULL,
	[FLG_RISKCLASS5] [int] NULL,
	[FLG_RISKCLASS6] [int] NULL,
	[FLG_RISKCLASS7] [int] NULL,
	[FLG_RISKCLASS8] [int] NULL,
	[FLG_RISKCLASS9] [int] NULL,
	[FLG_RISKCLASS10] [int] NULL,
	[INTERMEDIARIO] [nvarchar](128) NOT NULL,
	[ISSUER] [nvarchar](512) NULL,
	[STOCKSCounterValue] [numeric](38, 7) NULL,
	[bondsCounterValue] [numeric](38, 7) NULL,
	[CONCENTRATION_ISSUER] [numeric](38, 6) NOT NULL,
	[CONCENTRATION] [numeric](38, 6) NULL,
	[NC] [int] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S169RischiomercatoRischiocredito](
	[ProcedureName] [nvarchar](54) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[INSTITUTENAME] [nvarchar](26) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [smallint] NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[VAR] [decimal](12, 3) NULL,
	[VARSTRING] [nvarchar](4) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [nvarchar](4) NULL,
	[COVERAGE] [decimal](12, 3) NULL,
	[COVERAGESTRING] [nvarchar](4) NULL,
	[RISKCLASSMAX] [nvarchar](50) NULL,
	[PERCENTAGE] [decimal](38, 6) NULL,
	[ORDINE] [int] NOT NULL,
	[Ully_perc] [decimal](10, 2) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[ORDINE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S169RischiomercatoRischiocredito_Orig]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S169RischiomercatoRischiocredito_Orig](
	[ProcedureName] [nvarchar](54) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[INSTITUTENAME] [nvarchar](26) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [smallint] NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[VAR] [decimal](12, 3) NULL,
	[VARSTRING] [nvarchar](4) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [nvarchar](4) NULL,
	[COVERAGE] [decimal](12, 3) NULL,
	[COVERAGESTRING] [nvarchar](4) NULL,
	[RISKCLASSMAX] [nvarchar](50) NULL,
	[PERCENTAGE] [decimal](38, 6) NULL,
	[ORDINE] [int] NOT NULL,
	[Ully_perc] [decimal](10, 2) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[ORDINE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S170RischioDiversificazione](
	[ProcedureName] [nvarchar](49) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[CTV_AGGREG] [decimal](13, 2) NULL,
	[CREDITRISK] [int] NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [nvarchar](4) NULL,
	[coperturaString] [nvarchar](4000) NULL,
	[diversificazione] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PATRIMONIO] [nvarchar](26) NOT NULL,
	[profiloCode] [int] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[complessita] [nvarchar](100) NULL,
	[Ordine] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Ordine] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D2_S171PatrimonioNonRappresentabileAssettClass](
	[ProcedureName] [nvarchar](65) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Contratto] [nvarchar](11) NOT NULL,
	[DataSottoscrizione] [nvarchar](20) NULL,
	[Descrizione] [nvarchar](128) NOT NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[controvalore_contratto] [decimal](15, 3) NULL,
	[PartitaViaggiante] [decimal](38, 3) NULL,
	[Intermediario] [nvarchar](20) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_D3_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_D3_S151ProfiloDiRischio](
	[ProcedureName] [nvarchar](42) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[codiceProfilo] [smallint] NOT NULL,
	[dataInizioValidita] [nvarchar](20) NULL,
	[dataScadenzaProfilo] [nvarchar](20) NULL,
	[varMassimo] [decimal](5, 2) NULL,
	[varBF] [decimal](12, 2) NOT NULL,
	[coperturaBF] [decimal](12, 2) NOT NULL,
	[nomeProfilo] [nvarchar](50) NULL,
	[descrizioneProfilo] [nvarchar](50) NULL,
	[riskclass] [nvarchar](50) NULL,
	[experince] [smallint] NULL,
	[descrizioneEsperienza] [nvarchar](2000) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[codiceProfilo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S133AreeBisognoPrincProd]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S133AreeBisognoPrincProd](
	[ProcedureName] [nvarchar](46) NOT NULL,
	[i_rete] [nvarchar](1) NULL,
	[i_codiceFiscale] [nvarchar](16) NULL,
	[NeedArea] [nvarchar](20) NOT NULL,
	[AreaName] [nvarchar](30) NULL,
	[PercentualeModello] [decimal](5, 2) NULL,
	[PercentualeAttuale] [decimal](38, 3) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[ControvaloreModello] [decimal](38, 3) NULL,
	[Totale_Percentuale] [decimal](5, 2) NULL,
	[DifferenzaEuro] [decimal](38, 3) NULL,
	[DifferenzaPercentuale] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NULL,
	[copertura_needareaString] [nvarchar](4) NULL,
	[Nota] [int] NULL,
	[somma_controvalAttuale] [decimal](20, 2) NULL,
	[somma_controvalModello] [decimal](20, 2) NULL,
	[somma_percentualeAttuale] [numeric](2, 2) NULL,
	[somma_percentualeModello] [numeric](2, 2) NULL,
	[var_tot] [decimal](12, 3) NULL,
	[var_totString] [nvarchar](4) NULL,
	[var_tot_pir] [decimal](12, 3) NULL,
	[var_tot_pirString] [nvarchar](4) NULL,
	[copertura_tot] [decimal](12, 3) NULL,
	[copertura_totString] [nvarchar](4) NULL,
	[copertura_tot_pir] [decimal](12, 3) NULL,
	[copertura_tot_pirString] [nvarchar](4) NULL,
	[VAR_RISFIN] [decimal](12, 3) NULL,
	[VAR_RISFINSTRING] [nvarchar](4) NULL,
	[copertura_risfin] [decimal](12, 3) NULL,
	[copertura_risfinString] [nvarchar](4) NULL,
	[ordinamento] [smallint] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S133BISPrincipaliProdotti](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[descrProdotto] [nvarchar](128) NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[rischioRelativo] [numeric](38, 6) NULL,
	[pesoRelativo] [decimal](38, 19) NULL,
	[codAreaBisogno] [nvarchar](20) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S134BISMonitoraggioLiqInv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S134BISMonitoraggioLiqInv](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NEED_AREA] [nvarchar](20) NOT NULL,
	[NOME_PROGETTO] [nvarchar](50) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DATAVALORIZZAZIONE] [datetime] NOT NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEASSOCIATE] [decimal](15, 2) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S134MonitoraggioLiquidita]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S134MonitoraggioLiquidita](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[cf_rendim_non_rappr] [int] NOT NULL,
	[Need_Area] [nvarchar](20) NOT NULL,
	[Nome_Progetto] [nvarchar](50) NOT NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DataAttivazioneMonitoraggio] [varchar](20) NULL,
	[ControvaloreMonitorato] [decimal](15, 2) NULL,
	[ApportoIniziale] [decimal](15, 2) NULL,
	[ApportoSuccessivo] [decimal](15, 2) NULL,
	[LIQUIDAZIONI] [decimal](15, 2) NULL,
	[CedoleEDividendi] [decimal](15, 2) NULL,
	[MinusPlusAreaProgetto] [decimal](15, 2) NULL,
	[Rendimento_Attuale] [decimal](15, 2) NULL,
	[RisorseApportate] [decimal](15, 2) NULL,
	[DataControvalore] [nvarchar](10) NULL,
	[RENDIMENTO_ANNUALIZZATO] [decimal](15, 2) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Need_Area] ASC,
	[ordinamento_progetto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S135MonitoraggioInvestimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S135MonitoraggioInvestimento](
	[ProcedureName] [nvarchar](50) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NEED_AREA] [nvarchar](20) NOT NULL,
	[NOME_PROGETTO] [nvarchar](50) NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DATAVALORIZZAZIONE] [datetime] NOT NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[RISORSEASSOCIATE] [decimal](15, 2) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S137BISCapitaleProtetto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S137BISCapitaleProtetto](
	[ProcedureName] [nvarchar](45) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[DES_PROD] [nvarchar](128) NULL,
	[COD_CONF] [nvarchar](11) NOT NULL,
	[QUOTA] [decimal](15, 3) NULL,
	[NUMEROQUOTE] [decimal](15, 3) NULL,
	[CONTROVALORE] [decimal](15, 2) NULL,
	[DATARIF] [datetime] NOT NULL,
	[DES_MAX] [nvarchar](50) NOT NULL,
	[QUOTA_MAX] [decimal](15, 3) NULL,
	[QUOTA_MAX_PERC] [int] NOT NULL,
	[DATARIF_MAX] [datetime] NULL,
	[DES_PROT] [nvarchar](50) NOT NULL,
	[QUOTA_PROT] [decimal](15, 3) NULL,
	[NUMEROQUOTE_PROT] [decimal](15, 3) NULL,
	[CONTROVALORE_PROT] [decimal](15, 2) NULL,
	[DES_PROD_TIT] [nvarchar](128) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S137Bonus]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S137Bonus](
	[ProcedureName] [nvarchar](31) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[DES_PROD] [nvarchar](128) NULL,
	[COD_CONF] [nvarchar](11) NULL,
	[CTV] [numeric](15, 2) NULL,
	[DT_TRIM] [datetime] NULL,
	[DESBONUS_M] [nvarchar](14) NOT NULL,
	[BONUS_M] [numeric](15, 2) NULL,
	[DTDEC_M] [datetime] NULL,
	[DESBONUS_5] [nvarchar](23) NOT NULL,
	[BONUS_5] [numeric](15, 2) NULL,
	[DTDEC_5] [datetime] NULL,
	[DESBONUS_10] [nvarchar](24) NOT NULL,
	[BONUS_10] [numeric](15, 2) NULL,
	[DTDEC_10] [datetime] NULL,
	[COD_PROD] [nvarchar](2) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S140AnalisiRisparmioCharts]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S140AnalisiRisparmioCharts](
	[ProcedureName] [nvarchar](48) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[INTERMEDIARIO] [nvarchar](60) NULL,
	[ORDINE] [int] NOT NULL,
	[CTV_TOT] [decimal](38, 3) NULL,
	[CTV_notCovered] [decimal](38, 3) NULL,
	[CTV_CreditRisk] [decimal](38, 3) NULL,
	[CTV_na] [decimal](38, 3) NULL,
	[PERC_CreditRisk] [decimal](38, 6) NULL,
	[PERC_NA] [decimal](38, 6) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S141AnalisiRisparmioTable]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S141AnalisiRisparmioTable](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[COD_FISCALE] [nvarchar](128) NULL,
	[RETE] [nvarchar](10) NULL,
	[RATING_AAA] [int] NULL,
	[RATING_AAp] [int] NULL,
	[RATING_AA] [int] NULL,
	[RATING_AAm] [int] NULL,
	[RATING_Ap] [int] NULL,
	[RATING_A] [int] NULL,
	[RATING_Am] [int] NULL,
	[RATING_BBBp] [int] NULL,
	[RATING_BBB] [int] NULL,
	[RATING_BBBm] [int] NULL,
	[RATING_BBp] [int] NULL,
	[RATING_BB] [int] NULL,
	[RATING_BBm] [int] NULL,
	[RATING_Bp] [int] NULL,
	[RATING_B] [int] NULL,
	[RATING_Bm] [int] NULL,
	[RATING_CCCp] [int] NULL,
	[RATING_CCC] [int] NULL,
	[RATING_CCCm] [int] NULL,
	[RATING_CC] [int] NULL,
	[RATING_C] [int] NULL,
	[RATING_D] [int] NULL,
	[RATING_na] [int] NULL,
	[FLG_RISKCLASS1] [int] NULL,
	[FLG_RISKCLASS2] [int] NULL,
	[FLG_RISKCLASS3] [int] NULL,
	[FLG_RISKCLASS4] [int] NULL,
	[FLG_RISKCLASS5] [int] NULL,
	[FLG_RISKCLASS6] [int] NULL,
	[FLG_RISKCLASS7] [int] NULL,
	[FLG_RISKCLASS8] [int] NULL,
	[FLG_RISKCLASS9] [int] NULL,
	[FLG_RISKCLASS10] [int] NULL,
	[INTERMEDIARIO] [nvarchar](128) NOT NULL,
	[ISSUER] [nvarchar](512) NOT NULL,
	[STOCKSCounterValue] [numeric](38, 7) NULL,
	[bondsCounterValue] [numeric](38, 7) NULL,
	[CONCENTRATION_ISSUER] [numeric](38, 6) NULL,
	[CONCENTRATION] [numeric](38, 6) NULL,
	[NC] [int] NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[INTERMEDIARIO] ASC,
	[ISSUER] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_MP_S146RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_MP_S146RischioDiversificazione](
	[ProcedureName] [nvarchar](49) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[VAR] [decimal](12, 3) NULL,
	[varString] [nvarchar](4) NULL,
	[coperturaString] [nvarchar](4000) NULL,
	[diversificazione] [decimal](12, 3) NULL,
	[COPERTURA] [decimal](12, 3) NULL,
	[PATRIMONIO] [nvarchar](26) NOT NULL,
	[profiloCode] [int] NULL,
	[var_profilo] [decimal](5, 2) NULL,
	[Ordine] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Ordine] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_Prodotti_Non_Associati_Area_Inv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_Prodotti_Non_Associati_Area_Inv](
	[ProcedureName] [nvarchar](50) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[NOME_PROGETTO] [nvarchar](40) NOT NULL,
	[NEED_AREA] [nvarchar](20) NULL,
	[CONTROVALOREATTUALE] [decimal](38, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[ORDINAMENTO_PROGETTO] [int] NOT NULL,
	[var_needareaString] [nvarchar](4) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[ORDINAMENTO_PROGETTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S10PatrimonioFinanziario](
	[ProcedureName] [nvarchar](43) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[BANCA] [nvarchar](15) NOT NULL,
	[ORDINAMENTO] [smallint] NOT NULL,
	[AssetClassId] [nvarchar](50) NOT NULL,
	[AssetClassName] [nvarchar](128) NULL,
	[Controvalore] [decimal](19, 5) NULL,
	[Percentuale] [decimal](19, 5) NULL,
	[Totale] [decimal](19, 5) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[ORDINAMENTO] ASC,
	[BANCA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S43BISDettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S43BISDettaglioProdottiBF](
	[ProcedureName] [nvarchar](44) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[needarea] [nvarchar](20) NOT NULL,
	[needareades] [nvarchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [nvarchar](40) NOT NULL,
	[ORDINAMENTO_PROGETTO] [int] NOT NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [nvarchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 2) NULL,
	[MinusPlusValenza_needareaString] [nvarchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [nvarchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 2) NULL,
	[MinusPlusValenza_need_progString] [nvarchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [nvarchar](4000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [nvarchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[copertura_need_progString] [nvarchar](4000) NULL,
	[dataAssociazione] [nvarchar](20) NULL,
	[ContrattoDossier] [nvarchar](11) NOT NULL,
	[Descrizione] [nvarchar](144) NOT NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](15, 2) NULL,
	[VersatoNettoString] [nvarchar](4) NULL,
	[MinusPlusValenza] [decimal](15, 2) NULL,
	[MinusPlusValenzaString] [nvarchar](4) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[varProdottoString] [nvarchar](4) NULL,
	[Coperturaprodotto] [numeric](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [nvarchar](1) NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [nvarchar](4) NULL,
	[creditriskemit] [int] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S43ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S43ContoCorrenteBF](
	[ProcedureName] [nvarchar](37) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[datadiSottoscrizione] [nvarchar](10) NULL,
	[conto] [nvarchar](12) NOT NULL,
	[Controvalore] [decimal](15, 2) NULL,
	[SALDO_DISPONIBILE] [decimal](15, 2) NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [nvarchar](4) NOT NULL,
	[var] [int] NOT NULL,
	[varString] [int] NULL,
	[totaleVar] [int] NOT NULL,
	[totaleVarString] [int] NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[conto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S43DettaglioProdottiBF](
	[ProcedureName] [nvarchar](41) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[needarea] [nvarchar](20) NOT NULL,
	[needareades] [nvarchar](30) NULL,
	[areasortorder] [int] NULL,
	[nome_progetto] [nvarchar](40) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[somma_controval_needarea] [decimal](38, 3) NULL,
	[versato_needarea] [decimal](38, 3) NULL,
	[versato_needareaString] [nvarchar](4) NULL,
	[MinusPlusValenza_needarea] [decimal](38, 2) NULL,
	[MinusPlusValenza_needareaString] [nvarchar](4) NULL,
	[somma_controval_need_prog] [decimal](38, 3) NULL,
	[versato_need_prog] [decimal](38, 3) NULL,
	[versato_need_progString] [nvarchar](4) NULL,
	[MinusPlusValenza_need_prog] [decimal](38, 2) NULL,
	[MinusPlusValenza_need_progString] [nvarchar](4) NULL,
	[somma_var_need_prog] [decimal](12, 3) NULL,
	[somma_copertura_need_prog] [decimal](12, 3) NULL,
	[var_needarea] [decimal](12, 3) NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](5, 2) NULL,
	[copertura_needareaString] [nvarchar](4000) NULL,
	[var_need_prog] [decimal](12, 3) NULL,
	[var_need_progString] [nvarchar](4) NULL,
	[copertura_need_prog] [decimal](12, 3) NULL,
	[dataSottoscrizione] [varchar](30) NULL,
	[ContrattoDossier] [nvarchar](11) NOT NULL,
	[Descrizione] [nvarchar](144) NOT NULL,
	[Controvalore] [decimal](15, 3) NULL,
	[VersatoNetto] [decimal](17, 3) NULL,
	[VersatoNettoString] [nvarchar](4) NULL,
	[MinusPlusValenza] [decimal](15, 2) NULL,
	[MinusPlusValenzaString] [nvarchar](4) NULL,
	[VaRprodotto] [numeric](12, 3) NULL,
	[varProdottoString] [nvarchar](4) NULL,
	[Coperturaprodotto] [numeric](12, 3) NULL,
	[PerformanceYTD] [decimal](8, 5) NULL,
	[performanceDS] [decimal](8, 5) NULL,
	[partitaViaggiante] [decimal](15, 3) NULL,
	[nota_needarea] [nvarchar](1) NOT NULL,
	[creditrisk] [int] NULL,
	[creditriskstring] [nvarchar](4) NULL,
	[creditriskemit] [int] NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S43LineaSelfBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S43LineaSelfBF](
	[ProcedureName] [nvarchar](33) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NumContratto] [nvarchar](11) NOT NULL,
	[Controvalore] [decimal](15, 2) NOT NULL,
	[NomeProdotto] [nvarchar](128) NULL,
	[DataSott] [varchar](10) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[NumContratto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass](
	[ProcedureName] [nvarchar](72) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Contratto] [nvarchar](11) NOT NULL,
	[Area] [nvarchar](30) NULL,
	[NEEDAREA] [nvarchar](20) NOT NULL,
	[Progetto] [nvarchar](40) NULL,
	[ord_progetto] [int] NULL,
	[DataSottoscrizione] [varchar](15) NULL,
	[Descrizione] [nvarchar](128) NOT NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[controvalore_contratto] [decimal](38, 3) NULL,
	[PartitaViaggiante] [decimal](15, 3) NULL,
	[Intermediario] [nvarchar](20) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S80Alternativa]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S80Alternativa](
	[ProcedureName] [nvarchar](33) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[Cod_Fiscale] [nvarchar](16) NOT NULL,
	[Fase] [int] NOT NULL,
	[DataFase] [datetime] NOT NULL,
	[Partita_viaggiante] [decimal](15, 2) NOT NULL,
	[CTV_EXT] [decimal](15, 3) NOT NULL,
	[CTV_INV] [decimal](15, 3) NOT NULL,
	[CTV_PRE] [decimal](15, 3) NOT NULL,
	[CTV_RIS] [decimal](15, 3) NOT NULL,
	[CTV_LIQ] [decimal](15, 3) NOT NULL,
	[RisorseAllocate] [decimal](19, 3) NULL,
	[RisorseNonAllocate] [decimal](15, 3) NOT NULL,
	[RisorseFinanziarie] [decimal](20, 3) NULL,
	[Contocorrente] [decimal](15, 3) NOT NULL,
	[ctvself] [decimal](18, 3) NOT NULL,
	[TotalePatrimonio] [decimal](23, 3) NULL,
	[DettMov] [nvarchar](50) NULL,
	[NumeroAsterischiNota] [int] NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[Fase] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S82BisDatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S82BisDatiSintetici](
	[ProcedureName] [nvarchar](38) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[need_area] [nvarchar](3) NOT NULL,
	[NOME_PROGETTO] [nvarchar](30) NOT NULL,
	[var_needarea] [decimal](12, 3) NOT NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NOT NULL,
	[copertura_needareaString] [nvarchar](4) NULL,
	[orizzonte_Pianificato] [nvarchar](20) NULL,
	[durataResidua] [nvarchar](128) NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S82DatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S82DatiSintetici](
	[ProcedureName] [nvarchar](35) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[need_area] [nvarchar](3) NOT NULL,
	[var_needarea] [decimal](12, 3) NOT NULL,
	[var_needareaString] [nvarchar](4) NULL,
	[copertura_needarea] [decimal](12, 3) NOT NULL,
	[copertura_needareaString] [nvarchar](4) NULL,
	[ORDINAMENTO_PROGETTO] [int] NULL,
	[ControvaloreAttuale] [decimal](38, 3) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[need_area] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S85RendimentoPortafoglioCono]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S85RendimentoPortafoglioCono](
	[ProcedureName] [nvarchar](47) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[NEED_AREA] [nvarchar](20) NOT NULL,
	[NOME_PROGETTO] [nvarchar](50) NOT NULL,
	[ordinamento_progetto] [int] NOT NULL,
	[DATA_CONO] [datetime] NOT NULL,
	[OTTIMISTICO] [decimal](19, 7) NULL,
	[PESSIMISTICO] [decimal](19, 7) NULL,
	[ORIZZONTE_MESI] [decimal](22, 0) NULL,
	[RENDIMENTO] [decimal](15, 2) NULL,
	[DATA_MONIT] [datetime] NULL
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento](
	[ProcedureName] [nvarchar](69) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[Need_Area] [nvarchar](20) NOT NULL,
	[Contratto] [nvarchar](11) NOT NULL,
	[Area_O_Nome_Progetto] [nvarchar](40) NULL,
	[Descrizione] [nvarchar](144) NOT NULL,
	[PartitaViaggiante] [decimal](15, 3) NULL,
	[Controvalore] [decimal](38, 3) NULL,
	[DataSottoscrizione] [nvarchar](15) NULL,
	[Id] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [wh].[PL_S96RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [wh].[PL_S96RischiomercatoRischiocredito](
	[ProcedureName] [nvarchar](max) NOT NULL,
	[i_rete] [nvarchar](1) NOT NULL,
	[i_codiceFiscale] [nvarchar](16) NOT NULL,
	[RETE] [nvarchar](1) NOT NULL,
	[COD_FISCALE] [nvarchar](16) NOT NULL,
	[INSTITUTENAME] [nvarchar](max) NOT NULL,
	[CTV] [decimal](38, 3) NULL,
	[CODICEPROFILO] [int] NULL,
	[VARMAX] [decimal](5, 2) NULL,
	[VAR] [decimal](12, 3) NULL,
	[VARSTRING] [nvarchar](max) NULL,
	[RISKCLASS] [int] NULL,
	[RISKCLASSSTRING] [nvarchar](max) NULL,
	[COVERAGE] [decimal](12, 3) NULL,
	[COVERAGESTRING] [nvarchar](max) NULL,
	[RISKCLASSMAX] [nvarchar](max) NULL,
	[PERCENTAGE] [decimal](38, 6) NULL,
	[ORDINE] [int] NOT NULL,
	[Ully_perc] [decimal](10, 2) NULL,
PRIMARY KEY CLUSTERED 
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC,
	[ORDINE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [PATRIMONIO_TERZI_CF_IDX]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [PATRIMONIO_TERZI_CF_IDX] ON [C6Mart].[PATRIMONIO_TERZI]
(
	[COD_FISCALE] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_ASSET_PERC] ON [C6MartPeriodico].[ASSET_PERC]
(
	[COD_PRODOTTO] ASC,
	[LIVELLO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_DETTAGLIO_ASUL] ON [C6MartPeriodico].[DETTAGLIO_ASUL]
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_PRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PATRIMONIO_BF] ON [C6MartPeriodico].[PATRIMONIO_BF]
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[TIPO_PRODOTTO] ASC,
	[COD_PRODOTTO] ASC
)
INCLUDE([CTV]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PATRIMONIO_BF_169]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PATRIMONIO_BF_169] ON [C6MartPeriodico].[PATRIMONIO_BF]
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[CTV] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PATRIMONIO_BF_IDArea]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PATRIMONIO_BF_IDArea] ON [C6MartPeriodico].[PATRIMONIO_BF]
(
	[ID_AREA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_PATRIMONIO_EMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_PATRIMONIO_EMITTENTI] ON [C6MartPeriodico].[PATRIMONIO_EMITTENTI]
(
	[COD_FISCALE] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RISCHIO_AGGREGATO_169]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RISCHIO_AGGREGATO_169] ON [C6MartPeriodico].[RISCHIO_AGGREGATO]
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[COD_AGGREG] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [Chiave_Acn_idx]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [Chiave_Acn_idx] ON [C6MartPeriodico].[tabellone]
(
	[chiave_acn] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixTB_Campione_GB1]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE UNIQUE NONCLUSTERED INDEX [ixTB_Campione_GB1] ON [C6MartPeriodico].[TB_Campione_GB]
(
	[rete] ASC,
	[cod_fiscale] ASC,
	[flag_stampa] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixTB_Campione_GB1]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE UNIQUE NONCLUSTERED INDEX [ixTB_Campione_GB1] ON [C6MartPeriodico].[TB_Campione_GB_1]
(
	[rete] ASC,
	[cod_fiscale] ASC,
	[flag_stampa] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_TB_S10PatrimonioFinanziario_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_TB_S10PatrimonioFinanziario_ReteCF] ON [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
(
	[Rete] ASC,
	[CodiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_TB_S132ProfiloRiskAdeg_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE UNIQUE NONCLUSTERED INDEX [IDX_TB_S132ProfiloRiskAdeg_ReteCF] ON [C6MartPeriodico].[TB_S132ProfiloRischioAdeguatezza]
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_Tb_S133_S157DatiPiramide_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_Tb_S133_S157DatiPiramide_ReteCF] ON [C6MartPeriodico].[TB_S133_S157DatiPiramide]
(
	[Rete] ASC,
	[CodiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_TB_S148DistribAssetClass_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_TB_S148DistribAssetClass_ReteCF] ON [C6MartPeriodico].[TB_S148DistribuzioneAssetClass]
(
	[Rete] ASC,
	[CodiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDS_TB_S25Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDS_TB_S25Anagrafica] ON [C6MartPeriodico].[TB_S25Anagrafica]
(
	[CodiceRete] ASC,
	[CodiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_TB_S80_S129]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_TB_S80_S129] ON [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
(
	[RETE] ASC,
	[Cod_Fiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_TB_S80BisEvolRischio_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_TB_S80BisEvolRischio_ReteCF] ON [C6MartPeriodico].[TB_S80BisEvoluzioneRischio]
(
	[Rete] ASC,
	[CodiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_Test_Quality]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_Test_Quality] ON [C6MartPeriodico].[TEST_QUALITY]
(
	[RETE] ASC,
	[COD_FISCALE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [TRIMESTRALE_RUN_MASS_PARALLEL_idx]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [TRIMESTRALE_RUN_MASS_PARALLEL_idx] ON [C6MartPeriodico].[TRIMESTRALE_RUN_MASS_PARALLEL]
(
	[ID_PARALLEL] ASC,
	[CODICEFISCALE] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [WSEIAN2_CodFis]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [WSEIAN2_CodFis] ON [C6MartPeriodico].[WSEIAN2]
(
	[CODFIS] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [WSEIAN2_PIva]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [WSEIAN2_PIva] ON [C6MartPeriodico].[WSEIAN2]
(
	[PIVA] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PATRIMONIO_BF] ON [C6MartPeriodicoImmobiliare].[PATRIMONIO_BF]
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[TIPO_PRODOTTO] ASC,
	[COD_PRODOTTO] ASC
)
INCLUDE([CTV]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PATRIMONIO_BF_169]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PATRIMONIO_BF_169] ON [C6MartPeriodicoImmobiliare].[PATRIMONIO_BF]
(
	[RETE] ASC,
	[COD_FISCALE] ASC,
	[CTV] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PATRIMONIO_BF_IDArea]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PATRIMONIO_BF_IDArea] ON [C6MartPeriodicoImmobiliare].[PATRIMONIO_BF]
(
	[ID_AREA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [RISCHIO_AGGREGATO_IDX]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [RISCHIO_AGGREGATO_IDX] ON [C6MartPeriodicoImmobiliare].[RISCHIO_AGGREGATO]
(
	[COD_FISCALE] ASC,
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [W6IMM_CodFis_Idx]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [W6IMM_CodFis_Idx] ON [C6MartPeriodicoImmobiliare].[W6IMM]
(
	[RETE] ASC,
	[CODFIS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CATITEMREF_CODINT_CODMAF_ISVIS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CATITEMREF_CODINT_CODMAF_ISVIS] ON [C6Staging].[CATITEMREF]
(
	[COD_INTERNO] ASC,
	[COD_MAF] ASC,
	[ISVISIBLE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CATITEMREF_CODINT_CODSOT_ISVIS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CATITEMREF_CODINT_CODSOT_ISVIS] ON [C6Staging].[CATITEMREF]
(
	[COD_INTERNO] ASC,
	[COD_SOTTOPRODOTTO] ASC,
	[ISVISIBLE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CATITEMREF_CODINT_ISVIS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CATITEMREF_CODINT_ISVIS] ON [C6Staging].[CATITEMREF]
(
	[COD_INTERNO] ASC,
	[ISVISIBLE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_ALL_CF_STATO_CF_CLIENTE_FLAG_UTILIZZO_STATO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_ALL_CF_STATO_CF_CLIENTE_FLAG_UTILIZZO_STATO] ON [C6StagingPeriodico].[ALL_CF_STATO]
(
	[CF_CLIENTE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
/****** Object:  Index [IX_ALL_CF_STATO_FLAG_UTILIZZO_STATO]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_ALL_CF_STATO_FLAG_UTILIZZO_STATO] ON [C6StagingPeriodico].[ALL_CF_STATO]
(
	[FLAG_UTILIZZO_STATO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_ALL_CF_STATO_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_ALL_CF_STATO_RETE] ON [C6StagingPeriodico].[ALL_CF_STATO]
(
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_ALL_CF_STATO_STATO_CONSULENZA]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_ALL_CF_STATO_STATO_CONSULENZA] ON [C6StagingPeriodico].[ALL_CF_STATO]
(
	[STATO_CONSULENZA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_C_BO_453FB_PX_PRC]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_C_BO_453FB_PX_PRC] ON [C6StagingPeriodico].[C_BO_453FB]
(
	[PK_PRC] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CATITEMREF_CODINT_CODMAF_ISVIS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CATITEMREF_CODINT_CODMAF_ISVIS] ON [C6StagingPeriodico].[CATITEMREF]
(
	[COD_INTERNO] ASC,
	[COD_MAF] ASC,
	[ISVISIBLE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CATITEMREF_CODINT_CODSOT_ISVIS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CATITEMREF_CODINT_CODSOT_ISVIS] ON [C6StagingPeriodico].[CATITEMREF]
(
	[COD_INTERNO] ASC,
	[COD_SOTTOPRODOTTO] ASC,
	[ISVISIBLE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CATITEMREF_CODINT_ISVIS]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CATITEMREF_CODINT_ISVIS] ON [C6StagingPeriodico].[CATITEMREF]
(
	[COD_INTERNO] ASC,
	[ISVISIBLE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CONSAREA_F_PCONSULENZ_7FBE3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CONSAREA_F_PCONSULENZ_7FBE3] ON [C6StagingPeriodico].[CONSAREA]
(
	[F_PCONSULENZ_7FBE3] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CONSAREA_OID$]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CONSAREA_OID$] ON [C6StagingPeriodico].[CONSAREA]
(
	[OID$] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CONSUL_ADBKID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CONSUL_ADBKID] ON [C6StagingPeriodico].[CONSUL]
(
	[ADBKID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CONSUL_INSTID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CONSUL_INSTID] ON [C6StagingPeriodico].[CONSUL]
(
	[INSTID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CONSUL_OID$]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CONSUL_OID$] ON [C6StagingPeriodico].[CONSUL]
(
	[OID$] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_CONSUL_TYPE$_TIPOCO_1EA7C]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_CONSUL_TYPE$_TIPOCO_1EA7C] ON [C6StagingPeriodico].[CONSUL]
(
	[TYPE$_TIPOCO_1EA7C] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_NOME_PROGETTO_BOZZA_ADBKID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_NOME_PROGETTO_BOZZA_ADBKID] ON [C6StagingPeriodico].[NOME_PROGETTO_BOZZA]
(
	[ADBKID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_NOME_PROGETTO_BOZZA_C_PROJECTIDR_51E22]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_NOME_PROGETTO_BOZZA_C_PROJECTIDR_51E22] ON [C6StagingPeriodico].[NOME_PROGETTO_BOZZA]
(
	[C_PROJECTIDR_51E22] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_NOME_PROGETTO_BOZZA_INSTID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_NOME_PROGETTO_BOZZA_INSTID] ON [C6StagingPeriodico].[NOME_PROGETTO_BOZZA]
(
	[INSTID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_POSITION_F_PCONSULENZ_56F23]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_POSITION_F_PCONSULENZ_56F23] ON [C6StagingPeriodico].[POSITION]
(
	[F_PCONSULENZ_56F23] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_POSITION_F_PPROJECT_P_B5629]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_POSITION_F_PPROJECT_P_B5629] ON [C6StagingPeriodico].[POSITION]
(
	[F_PPROJECT_P_B5629] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PRCONSUL_C_PROJECTIDR_51E22]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PRCONSUL_C_PROJECTIDR_51E22] ON [C6StagingPeriodico].[PRCONSUL]
(
	[C_PROJECTIDR_51E22] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PRCONSUL_F_PCONSULENZ_B69E4]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PRCONSUL_F_PCONSULENZ_B69E4] ON [C6StagingPeriodico].[PRCONSUL]
(
	[F_PCONSULENZ_B69E4] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_PRCONSUL_OID$]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_PRCONSUL_OID$] ON [C6StagingPeriodico].[PRCONSUL]
(
	[OID$] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CodInterno]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CodInterno] ON [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza]
(
	[CodInterno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CodIntSottoProd]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CodIntSottoProd] ON [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CodSottoprodotto]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CodSottoprodotto] ON [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza]
(
	[CodSottoprodotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti] ON [C6StagingPeriodico].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti_2]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti_2] ON [C6StagingPeriodico].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC,
	[TipoProdotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti_3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti_3] ON [C6StagingPeriodico].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC,
	[CodIsin] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti_4]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti_4] ON [C6StagingPeriodico].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodMaf] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_RP_Consulenza]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_RP_Consulenza] ON [C6StagingPeriodico].[rp_Consulenza]
(
	[rete] ASC,
	[cod_fiscale] ASC,
	[position_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixrp_Consulenza2_1]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixrp_Consulenza2_1] ON [C6StagingPeriodico].[rp_Consulenza2]
(
	[TipoProdotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixrp_Consulenza2_2]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixrp_Consulenza2_2] ON [C6StagingPeriodico].[rp_Consulenza2]
(
	[CodInterno] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixrp_Consulenza2_3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixrp_Consulenza2_3] ON [C6StagingPeriodico].[rp_Consulenza2]
(
	[CodMaf] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixrp_Consulenza2_4]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixrp_Consulenza2_4] ON [C6StagingPeriodico].[rp_Consulenza2]
(
	[CodSottoprodotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixrp_Consulenza2_5]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixrp_Consulenza2_5] ON [C6StagingPeriodico].[rp_Consulenza2]
(
	[position_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_SPB_CONTR_SINTESI_AggiornaPositionID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_SPB_CONTR_SINTESI_AggiornaPositionID] ON [C6StagingPeriodico].[SPB_CONTR_SINTESI]
(
	[TIPPROD] ASC,
	[CODINT] ASC,
	[MAF] ASC,
	[ISIN] ASC,
	[SUBPROD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_SPB_CONTR_SINTESI_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_SPB_CONTR_SINTESI_ReteCF] ON [C6StagingPeriodico].[SPB_CONTR_SINTESI]
(
	[RETE] ASC,
	[CODFIS] ASC,
	[POSITIONID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_SPB_CONTR_SINTESI] ON [C6StagingPeriodico].[SPB_CONTR_SINTESI]
(
	[POSITIONID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_W6APAG]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_W6APAG] ON [C6StagingPeriodico].[W6APAG]
(
	[RETE] ASC,
	[CODFIS] ASC,
	[CODMAN] ASC,
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CodFis]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CodFis] ON [C6StagingPeriodico].[WSEIAD]
(
	[CODFIS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CodMan]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CodMan] ON [C6StagingPeriodico].[WSEIAD]
(
	[CODMAN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
/****** Object:  Index [ix_ComplBase]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_ComplBase] ON [C6StagingPeriodico].[WSEIAD]
(
	[COMPL_BASE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
/****** Object:  Index [ix_DtTrim]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_DtTrim] ON [C6StagingPeriodico].[WSEIAD]
(
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_Rete]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_Rete] ON [C6StagingPeriodico].[WSEIAD]
(
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CodFis]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CodFis] ON [C6StagingPeriodico].[WSEIAN]
(
	[CODFIS] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CODFISCALE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CODFISCALE] ON [C6StagingPeriodico].[WSEIAN]
(
	[RETE] ASC,
	[CODFIS] ASC,
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
/****** Object:  Index [ix_DtTrim]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_DtTrim] ON [C6StagingPeriodico].[WSEIAN]
(
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_mandato]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_mandato] ON [C6StagingPeriodico].[WSEIAN]
(
	[RETE] ASC,
	[CODMAN] ASC,
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_Rete]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_Rete] ON [C6StagingPeriodico].[WSEIAN]
(
	[RETE] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_WSEIAN_1]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_WSEIAN_1] ON [C6StagingPeriodico].[WSEIAN]
(
	[RETE] ASC,
	[CODMAN] ASC,
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CODFISCALE]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CODFISCALE] ON [C6StagingPeriodico].[WSEIAN_S170]
(
	[RETE] ASC,
	[CODFIS] ASC,
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ix_CODMAN]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ix_CODMAN] ON [C6StagingPeriodico].[WSEIAN_S170]
(
	[RETE] ASC,
	[CODFIS] ASC,
	[DTTRIM] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
/****** Object:  Index [id_prezzo]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [id_prezzo] ON [C6StagingPeriodico].[WSEIGP]
(
	[PREZZO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti] ON [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti_2]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti_2] ON [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC,
	[TipoProdotto] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti_3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti_3] ON [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodSottoprodotto] ASC,
	[CodIsin] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_RP_CatalogoProdotti_4]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_RP_CatalogoProdotti_4] ON [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
(
	[CodInterno] ASC,
	[CodMaf] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_RP_Consulenza]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_RP_Consulenza] ON [C6StagingPeriodicoImmobiliare].[rp_Consulenza]
(
	[rete] ASC,
	[cod_fiscale] ASC,
	[position_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_SPB_CONTR_SINTESI_AggiornaPositionID]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_SPB_CONTR_SINTESI_AggiornaPositionID] ON [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]
(
	[TIPPROD] ASC,
	[CODINT] ASC,
	[MAF] ASC,
	[ISIN] ASC,
	[SUBPROD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IDX_SPB_CONTR_SINTESI_ReteCF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IDX_SPB_CONTR_SINTESI_ReteCF] ON [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]
(
	[RETE] ASC,
	[CODFIS] ASC,
	[POSITIONID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [STAGING]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [IX_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [IX_SPB_CONTR_SINTESI] ON [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]
(
	[POSITIONID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
/****** Object:  Index [ixdbolanci_uid]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE UNIQUE NONCLUSTERED INDEX [ixdbolanci_uid] ON [dbo].[Lanci]
(
	[uid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [TAB1_idx]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [TAB1_idx] ON [dbo].[TAB1]
(
	[CODMAF] ASC,
	[CODISIN] ASC,
	[TIPOPRODOTTO] ASC,
	[CODSOTTOPRODOTTO] ASC,
	[CODINTERNO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixtab2_1]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixtab2_1] ON [dbo].[TAB2]
(
	[TIPOPRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixtab2_2]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixtab2_2] ON [dbo].[TAB2]
(
	[CODINTERNO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixtab2_3]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixtab2_3] ON [dbo].[TAB2]
(
	[CODMAF] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixtab2_4]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixtab2_4] ON [dbo].[TAB2]
(
	[CODISIN] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixtab2_5]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixtab2_5] ON [dbo].[TAB2]
(
	[CODSOTTOPRODOTTO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [ixtab2_6]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [ixtab2_6] ON [dbo].[TAB2]
(
	[POSITION_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_AreeMonitorate]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_AreeMonitorate] ON [wh].[PL_AreeMonitorate]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D_S170RischioDiversificazione] ON [wh].[PL_D_S170RischioDiversificazione]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S151ProfiloDiRischio] ON [wh].[PL_D2_S151ProfiloDiRischio]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S152Patrimonio] ON [wh].[PL_D2_S152Patrimonio]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S153PatrimonioFinanziario] ON [wh].[PL_D2_S153PatrimonioFinanziario]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S154PatrimonioFinanziario] ON [wh].[PL_D2_S154PatrimonioFinanziario]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S155PatrimonioImmobiliare] ON [wh].[PL_D2_S155PatrimonioImmobiliare]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S156ALtroPatrimonio] ON [wh].[PL_D2_S156ALtroPatrimonio]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S157ConfrontoPiramidi] ON [wh].[PL_D2_S157ConfrontoPiramidi]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S158PiramideModello] ON [wh].[PL_D2_S158PiramideModello]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S159PatrimonioFinanziario] ON [wh].[PL_D2_S159PatrimonioFinanziario]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S160DettaglioProdottiBF] ON [wh].[PL_D2_S160DettaglioProdottiBF]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S162DettaglioProdotti] ON [wh].[PL_D2_S162DettaglioProdotti]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S163PatrimonioFinanziarioMAssetClass] ON [wh].[PL_D2_S163PatrimonioFinanziarioMAssetClass]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S164PolizzeAltriIstituti] ON [wh].[PL_D2_S164PolizzeAltriIstituti]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S165FondiAltriIstituti] ON [wh].[PL_D2_S165FondiAltriIstituti]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S167DistribuzioneRischioCredito] ON [wh].[PL_D2_S167DistribuzioneRischioCredito]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S168TabellaEmittenti] ON [wh].[PL_D2_S168TabellaEmittenti]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S169RischiomercatoRischiocredito] ON [wh].[PL_D2_S169RischiomercatoRischiocredito_Orig]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_D2_S171PatrimonioNonRappresentabileAssettClass] ON [wh].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S133AreeBisognoPrincProd]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S133AreeBisognoPrincProd] ON [wh].[PL_MP_S133AreeBisognoPrincProd]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S133BISPrincipaliProdotti] ON [wh].[PL_MP_S133BISPrincipaliProdotti]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S134BISMonitoraggioLiqInv]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S134BISMonitoraggioLiqInv] ON [wh].[PL_MP_S134BISMonitoraggioLiqInv]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S134MonitoraggioLiquidita]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S134MonitoraggioLiquidita] ON [wh].[PL_MP_S134MonitoraggioLiquidita]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S135MonitoraggioInvestimento]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S135MonitoraggioInvestimento] ON [wh].[PL_MP_S135MonitoraggioInvestimento]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S137BISCapitaleProtetto]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S137BISCapitaleProtetto] ON [wh].[PL_MP_S137BISCapitaleProtetto]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S137Bonus]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S137Bonus] ON [wh].[PL_MP_S137Bonus]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S140AnalisiRisparmioCharts]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S140AnalisiRisparmioCharts] ON [wh].[PL_MP_S140AnalisiRisparmioCharts]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S141AnalisiRisparmioTable]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S141AnalisiRisparmioTable] ON [wh].[PL_MP_S141AnalisiRisparmioTable]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_MP_S146RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_MP_S146RischioDiversificazione] ON [wh].[PL_MP_S146RischioDiversificazione]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_Prodotti_Non_Associati_Area_Inv]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_Prodotti_Non_Associati_Area_Inv] ON [wh].[PL_Prodotti_Non_Associati_Area_Inv]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S10PatrimonioFinanziario] ON [wh].[PL_S10PatrimonioFinanziario]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S43BISDettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S43BISDettaglioProdottiBF] ON [wh].[PL_S43BISDettaglioProdottiBF]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S43ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S43ContoCorrenteBF] ON [wh].[PL_S43ContoCorrenteBF]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S43DettaglioProdottiBF] ON [wh].[PL_S43DettaglioProdottiBF]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S43LineaSelfBF]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S43LineaSelfBF] ON [wh].[PL_S43LineaSelfBF]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] ON [wh].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S80Alternativa]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S80Alternativa] ON [wh].[PL_S80Alternativa]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S82BisDatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S82BisDatiSintetici] ON [wh].[PL_S82BisDatiSintetici]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S82DatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S82DatiSintetici] ON [wh].[PL_S82DatiSintetici]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento] ON [wh].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
/****** Object:  Index [NONCLUSTEREDIndex-PL_S96RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
CREATE NONCLUSTERED INDEX [NONCLUSTEREDIndex-PL_S96RischiomercatoRischiocredito] ON [wh].[PL_S96RischiomercatoRischiocredito]
(
	[i_rete] ASC,
	[i_codiceFiscale] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO
ALTER TABLE [C6Mart].[CONTRATTOSEI] ADD  CONSTRAINT [DF_CONTRATTOSEI_NumSolleciti]  DEFAULT ((0)) FOR [NumSolleciti]
GO
ALTER TABLE [C6Mart].[ELABORAZIONI] ADD  CONSTRAINT [DF_ELABORAZIONI_DATA_OPERAZIONE]  DEFAULT (getdate()) FOR [DATA_OPERAZIONE]
GO
ALTER TABLE [C6Mart].[GESTIONE_ZIP_FTP] ADD  CONSTRAINT [DF_GESTIONE_ZIP_FTP_flagInvio]  DEFAULT ('N') FOR [flagInvio]
GO
ALTER TABLE [C6Mart].[log_align_giornaliero] ADD  DEFAULT (getdate()) FOR [ExecutionDate]
GO
ALTER TABLE [C6Mart].[log_align_giornaliero_LUCA] ADD  DEFAULT (getdate()) FOR [ExecutionDate]
GO
ALTER TABLE [C6Mart].[TB_Campione] ADD  DEFAULT ((1)) FOR [flag_stampa]
GO
ALTER TABLE [C6Mart].[TB_Campione_GB] ADD  DEFAULT ((1)) FOR [flag_stampa]
GO
ALTER TABLE [C6Mart].[tbNotAllocatedResources] ADD  DEFAULT (getdate()) FOR [InsertDate]
GO
ALTER TABLE [C6MartPeriodico].[ELABORAZIONI] ADD  CONSTRAINT [DF_ELABORAZIONI_DATA_OPERAZIONE]  DEFAULT (getdate()) FOR [DATA_OPERAZIONE]
GO
ALTER TABLE [C6MartPeriodico].[MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO] ADD  DEFAULT (getdate()) FOR [Execution_Time]
GO
ALTER TABLE [C6MartPeriodico].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO]
GO
ALTER TABLE [C6MartPeriodico].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO_TERZI]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO_TERZI]
GO
ALTER TABLE [C6MartPeriodico].[Scarti] ADD  CONSTRAINT [DF_Scarti_DataInsRiga]  DEFAULT (getdate()) FOR [DataInsRiga]
GO
ALTER TABLE [C6MartPeriodico].[tab_semaforo] ADD  DEFAULT ((1)) FOR [flg_stato]
GO
ALTER TABLE [C6MartPeriodico].[tab_semaforo] ADD  DEFAULT ((0)) FOR [is_check]
GO
ALTER TABLE [C6MartPeriodico].[TB_Campione] ADD  DEFAULT ((1)) FOR [flag_stampa]
GO
ALTER TABLE [C6MartPeriodico].[TB_Campione_GB] ADD  DEFAULT ((1)) FOR [flag_stampa]
GO
ALTER TABLE [C6MartPeriodico].[TB_Campione_GB_1] ADD  DEFAULT ((1)) FOR [flag_stampa]
GO
ALTER TABLE [C6MartPeriodico].[tb_SegnalazioniDataQuality] ADD  CONSTRAINT [DQ_Default_dataInserimento]  DEFAULT (getdate()) FOR [dataInserimento]
GO
ALTER TABLE [C6MartPeriodicoImmobiliare].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO]
GO
ALTER TABLE [C6MartPeriodicoImmobiliare].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO_TERZI]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO_TERZI]
GO
ALTER TABLE [C6Staging].[WANAB] ADD  CONSTRAINT [DF__WANAB__DCD__1D114BD1]  DEFAULT ((0)) FOR [DCD]
GO
ALTER TABLE [C6Staging].[WANAB] ADD  CONSTRAINT [DF__WANAB__DCVN__1E05700A]  DEFAULT ((0)) FOR [DCVN]
GO
ALTER TABLE [C6Staging].[WANAB] ADD  CONSTRAINT [DF__WANAB__SCARTO__1EF99443]  DEFAULT ((0)) FOR [SCARTO]
GO
ALTER TABLE [C6Staging].[WANAB] ADD  CONSTRAINT [DF__WANAB__NTOT_APP__1FEDB87C]  DEFAULT ((0)) FOR [NTOT_APP]
GO
ALTER TABLE [C6Staging].[WANAB] ADD  CONSTRAINT [DF__WANAB__NTOT_LIQ__20E1DCB5]  DEFAULT ((0)) FOR [NTOT_LIQ]
GO
ALTER TABLE [C6Staging].[WRENAB] ADD  CONSTRAINT [DF__WRENAB__DCD__22CA2527]  DEFAULT ((0)) FOR [DCD]
GO
ALTER TABLE [C6Staging].[WRENAB] ADD  CONSTRAINT [DF__WRENAB__DCVN__23BE4960]  DEFAULT ((0)) FOR [DCVN]
GO
ALTER TABLE [C6Staging].[WRENAB] ADD  CONSTRAINT [DF__WRENAB__SCARTO__24B26D99]  DEFAULT ((0)) FOR [SCARTO]
GO
ALTER TABLE [C6Staging].[WRENAB] ADD  CONSTRAINT [DF__WRENAB__NTOT_APP__25A691D2]  DEFAULT ((0)) FOR [NTOT_APP]
GO
ALTER TABLE [C6Staging].[WRENAB] ADD  CONSTRAINT [DF__WRENAB__NTOT_LIQ__269AB60B]  DEFAULT ((0)) FOR [NTOT_LIQ]
GO
ALTER TABLE [C6StagingPeriodico].[ClientIProfessionali] ADD  CONSTRAINT [DF_ClientIProfessionali_dataInserimento]  DEFAULT (getdate()) FOR [dataInserimento]
GO
ALTER TABLE [C6StagingPeriodico].[WSEIAN] ADD  DEFAULT ('') FOR [CLCOMPL]
GO
ALTER TABLE [C6StagingPeriodico].[WSEIAN] ADD  DEFAULT ('') FOR [FLGCONC]
GO
ALTER TABLE [C6StagingPeriodico].[WSEIAN2] ADD  DEFAULT ('') FOR [CLCOMPL]
GO
ALTER TABLE [C6StagingPeriodico].[WSEIAN2] ADD  DEFAULT ('') FOR [FLGCONC]
GO
ALTER TABLE [C6Storico].[ELABORAZIONI] ADD  CONSTRAINT [DF_ELABORAZIONI_DATA_OPERAZIONE]  DEFAULT (getdate()) FOR [DATA_OPERAZIONE]
GO
ALTER TABLE [C6Storico].[GESTIONE_PDF_FTP] ADD  CONSTRAINT [DF_GESTIONE_FTP_FlagInvio]  DEFAULT ('N') FOR [FlagInvio]
GO
ALTER TABLE [C6Storico].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO]
GO
ALTER TABLE [C6Storico].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO_TERZI]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO_TERZI]
GO
ALTER TABLE [C6StoricoPeriodico].[CONTRATTOSEI] ADD  CONSTRAINT [DF_CONTRATTOSEI_NumSolleciti]  DEFAULT ((0)) FOR [NumSolleciti]
GO
ALTER TABLE [C6StoricoPeriodico].[ELABORAZIONI] ADD  CONSTRAINT [DF_ELABORAZIONI_DATA_OPERAZIONE]  DEFAULT (getdate()) FOR [DATA_OPERAZIONE]
GO
ALTER TABLE [C6StoricoPeriodico].[GESTIONE_PDF_FTP] ADD  CONSTRAINT [DF_GESTIONE_FTP_FlagInvio]  DEFAULT ('N') FOR [FlagInvio]
GO
ALTER TABLE [C6StoricoPeriodico].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO]
GO
ALTER TABLE [C6StoricoPeriodico].[PATRIMONIO_TERZI] ADD  CONSTRAINT [DF_PATRIMONIO_TERZI_COD_PRODOTTO_TERZI]  DEFAULT ('NON PRESENTE') FOR [COD_PRODOTTO_TERZI]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [from]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [toTest]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [toBank]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [cc]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [bcc]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [subject]
GO
ALTER TABLE [dbo].[EmailConfiguration] ADD  DEFAULT ('') FOR [body]
GO
ALTER TABLE [dbo].[ErroriGenerator] ADD  CONSTRAINT [DF_ErroriGenerator_datains]  DEFAULT (getdate()) FOR [datains]
GO
ALTER TABLE [dbo].[GLOBAL_ERROR] ADD  CONSTRAINT [DF_GLOBAL_ERROR_Time]  DEFAULT (getdate()) FOR [Time]
GO
ALTER TABLE [dbo].[GLOBAL_ERROR] ADD  CONSTRAINT [DF_GLOBAL_ERROR_ID_ELAB]  DEFAULT ([C6MART].[getIdElab]()) FOR [ID_ELAB]
GO
ALTER TABLE [dbo].[Incl_SpecCdT_Campione] ADD  CONSTRAINT [DF_Incl_SpecCdT_Campione_data_inserimneto]  DEFAULT (getdate()) FOR [data_inserimneto]
GO
ALTER TABLE [dbo].[Lanci] ADD  DEFAULT (newid()) FOR [uid]
GO
ALTER TABLE [dbo].[Lanci] ADD  DEFAULT (getdate()) FOR [Data]
GO
ALTER TABLE [dbo].[Lanci] ADD  DEFAULT (host_name()) FOR [MachineName]
GO
ALTER TABLE [dbo].[Lanci] ADD  DEFAULT (user_name()) FOR [Username]
GO
ALTER TABLE [dbo].[ReportDaCancellareBCK] ADD  CONSTRAINT [DF_ReportDaCancellareBCK_dtcanc]  DEFAULT (getdate()) FOR [dtcanc]
GO
ALTER TABLE [dbo].[RichiestaRestorePDF] ADD  DEFAULT ((0)) FOR [idStatoRichiesta]
GO
ALTER TABLE [dbo].[RichiestaRestorePDF] ADD  DEFAULT (getdate()) FOR [dataRichiesta]
GO
ALTER TABLE [C6Mart].[EMAIL_ATTACHMENT]  WITH CHECK ADD  CONSTRAINT [FK__EMAIL_ATT__Email__0C70CFB4] FOREIGN KEY([Email_Id])
REFERENCES [C6Mart].[GESTIONE_EMAIL.sve] ([Email_Id])
GO
ALTER TABLE [C6Mart].[EMAIL_ATTACHMENT] CHECK CONSTRAINT [FK__EMAIL_ATT__Email__0C70CFB4]
GO
ALTER TABLE [C6Mart].[GESTIONE_EMAIL.sve]  WITH CHECK ADD  CONSTRAINT [FK__GESTIONE_E__Tipo__05C3D225] FOREIGN KEY([Tipo])
REFERENCES [C6Mart].[TIPO_EMAIL.prev] ([Tipo])
GO
ALTER TABLE [C6Mart].[GESTIONE_EMAIL.sve] CHECK CONSTRAINT [FK__GESTIONE_E__Tipo__05C3D225]
GO
ALTER TABLE [C6MartPeriodico].[GESTIONE_EMAIL]  WITH CHECK ADD  CONSTRAINT [FK_GESTIONE_EMAIL_TIPO_EMAIL] FOREIGN KEY([Tipo])
REFERENCES [C6MartPeriodico].[TIPO_EMAIL] ([Tipo])
GO
ALTER TABLE [C6MartPeriodico].[GESTIONE_EMAIL] CHECK CONSTRAINT [FK_GESTIONE_EMAIL_TIPO_EMAIL]
GO
ALTER TABLE [dbo].[TextTemplateConfigurationMapping]  WITH CHECK ADD  CONSTRAINT [fk_templateID] FOREIGN KEY([TemplateID])
REFERENCES [dbo].[ReportTemplate] ([TemplateID])
GO
ALTER TABLE [dbo].[TextTemplateConfigurationMapping] CHECK CONSTRAINT [fk_templateID]
GO
ALTER TABLE [dbo].[TextTemplateConfigurationMapping]  WITH CHECK ADD  CONSTRAINT [fk_textFieldID] FOREIGN KEY([TextFieldID])
REFERENCES [dbo].[TextTemplateConfiguration] ([TextFieldID])
GO
ALTER TABLE [dbo].[TextTemplateConfigurationMapping] CHECK CONSTRAINT [fk_textFieldID]
GO
/****** Object:  StoredProcedure [C6Mart].[aggiornaDataValidazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[aggiornaDataValidazione] as
begin

select 
	DataGenerazione as data,
	SUBSTRING(NomeFile, 1, 11) as codiceContratto, --SUBSTRING(NomeFile, 0, 12)
	case 
		when (id_fk_zip = -1) then 0
		else 1
	end as definitivo,
	getDate() as dataAggiornamento
from 
(
select 
datagenerazione, nomefile,id_fk_zip, 
row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc ) pippo from --SUBSTRING(NomeFile, 0, 12)
c6mart.gestione_pdf_ftp
)l where pippo =1

end



GO
/****** Object:  StoredProcedure [C6Mart].[AL_AggiornaPortafoglioCliente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[AL_AggiornaPortafoglioCliente]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'AL_AggiornaPortafoglioCliente',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6Mart.PIRAMIDE_VERT

	--RICALCOLO AGGREGATI
	INSERT INTO C6Mart.PIRAMIDE_VERT
	(
		RETE,
		COD_FISCALE,
		ID_AREA,
		CTV_AREA
	)
	SELECT
		PATR.RETE,
		PATR.COD_FISCALE,
		PATR.ID_AREA,
		SUM(CTV)
	FROM C6Mart.PATRIMONIO_BF PATR
	GROUP BY
		PATR.RETE,
		PATR.COD_FISCALE,
		PATR.ID_AREA
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'AL_AggiornaPortafoglioCliente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'AL_AggiornaPortafoglioCliente'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'AL_AggiornaPortafoglioCliente',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	--AGGIORNAMENTO TABELLA CONTRATTOSEI
	--FLAG RISORSE NON ASSOCIATE
	--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
	UPDATE C6Mart.ContrattoSEI
	SET 
		RisorseNA =
			CASE
				WHEN CLIENTIRISNA.percRisorseNA >= CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2)) THEN 'S'
				ELSE 'N'
			END
	--AGGIUNTA perchè mancava, FABRIZIO E VALERIO per Azzeramento numero solleciti email
		,NumSolleciti =
			CASE
				WHEN (C6.ClienteMigrato = 'S') and (CLIENTIRISNA.percRisorseNA < CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2))) THEN 0
				ELSE NumSolleciti
			END
	FROM C6Mart.ContrattoSEI C6
	LEFT JOIN (

		SELECT 
			NA.RETE, 
			NA.COD_FISCALE, 
			CASE
				WHEN TOT.CTVTOTALE = 0 THEN 0
				ELSE 100 * NA.CTVNA / TOT.CTVTOTALE
			END AS percRisorseNA
		FROM (
			SELECT
				ISNULL(SUM(PATRBF.CTV),0) AS CTVNA,
				PATRBF.RETE,
				PATRBF.COD_FISCALE
			FROM C6Mart.PATRIMONIO_BF PATRBF
			INNER JOIN C6Mart.vTuttiIContratti VCONTRATTIPERSEI
				ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
				AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
			WHERE ID_AREA = 'Na'
			GROUP BY
				PATRBF.RETE,
				PATRBF.COD_FISCALE
		) NA
		INNER JOIN (
			SELECT
				SUM(PATRBF.CTV) AS CTVTOTALE,
				PATRBF.RETE,
				PATRBF.COD_FISCALE
			FROM C6Mart.PATRIMONIO_BF PATRBF
			INNER JOIN C6Mart.vTuttiIContratti VCONTRATTIPERSEI
				ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
				AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
			WHERE ID_AREA <> 'Cc'
			GROUP BY
				PATRBF.RETE,
				PATRBF.COD_FISCALE
		) TOT 
			ON TOT.RETE = NA.RETE
			AND TOT.COD_FISCALE = NA.COD_FISCALE

	) CLIENTIRISNA
		ON C6.RETE = CLIENTIRISNA.RETE
		AND C6.COD_FISCALE = CLIENTIRISNA.COD_FISCALE


	--V Aggiorna il flag Profilo Attivo per i clienti che non hanno ricevuto il report	
	UPDATE C6MART.CONTRATTOSEI
	SET profiloAttivo = CASE WHEN (ISNULL(MIFID.SCADUTO,1) = 1) THEN 0 ELSE 1 end
	FROM C6MART.CONTRATTOSEI 
	LEFT JOIN C6MART.MIFID
	ON CONTRATTOSEI.RETE = MIFID.RETE 
	AND CONTRATTOSEI.COD_FISCALE = MIFID.COD_FISCALE
	WHERE InvioBenvenuto = 'N' 


		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'AL_AggiornaPortafoglioCliente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'AL_AggiornaPortafoglioCliente'
		)

	/*INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'AL_AggiornaPortafoglioCliente',
		GETDATE(),
		'Elaborazione giornaliera'
	)*/

	--FLAG PARTITE VIAGGIANTI DISINVESTIMENTO
	--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
	--disabilitato, pv vengono estratte dal CTV

	/*UPDATE C6Mart.CONTRATTOSEI
	SET
		PartViaDisinv =
			CASE
				WHEN PARTVIA.PARTVIADISINV > 0 THEN 'S'
				ELSE 'N'
			END
	FROM C6Mart.CONTRATTOSEI C6
	LEFT JOIN (
		SELECT
			ISNULL(SUM(PATRBF.PARTVIA_DISINV),0) AS PARTVIADISINV,
			PATRBF.RETE,
			PATRBF.COD_FISCALE
		FROM C6Mart.PATRIMONIO_BF PATRBF
		INNER JOIN C6Mart.vTuttiIContratti VCONTRATTIPERSEI
			ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
			AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
		WHERE ID_AREA <> 'Cc'
		GROUP BY
			PATRBF.RETE,
			PATRBF.COD_FISCALE
	) PARTVIA
		ON C6.RETE = PARTVIA.RETE
		AND C6.COD_FISCALE = PARTVIA.COD_FISCALE
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'AL_AggiornaPortafoglioCliente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'AL_AggiornaPortafoglioCliente'
		)*/
END 


GO
/****** Object:  StoredProcedure [C6Mart].[CercaCaratteriAnomali]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6Mart].[CercaCaratteriAnomali]
AS
BEGIN


declare @num int 
set @num = 1

CREATE TABLE #tab_temp(
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL)


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(email,@num,1)),
       substring(email,@num,1),
       rete,
       Cod_Fiscale,
       'EMAIL',
       email
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(email,@num,len(email))) not between 64 and 90 
and ascii(substring(email,@num,len(email))) not between 97 and 122
and ascii(substring(email,@num,len(email))) not between 48 and 57
and ascii(substring(email,@num,len(email))) <> 32
and ascii(substring(email,@num,len(email))) <> 40
and ascii(substring(email,@num,len(email))) <> 41
and ascii(substring(email,@num,len(email))) <> 43
and ascii(substring(email,@num,len(email))) <> 44
and ascii(substring(email,@num,len(email))) <> 45
and ascii(substring(email,@num,len(email))) <> 46
and ascii(substring(email,@num,len(email))) <> 95
and ascii(substring(email,@num,len(email))) <> 39
and ascii(substring(email,@num,len(email))) <> 47
and ascii(substring(email,@num,len(email))) <> 63


set @num = @num + 1	
end	

--inizio intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6mart.ANAG_CLIENTI
set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nome+Cognome,@num,1)),
       substring(Nome+Cognome,@num,1),
       rete,
       Cod_Fiscale,
       'Nome+Cognome',
       Nome+Cognome
FROM C6Mart.ANAG_CLIENTI
WHERE 
	ascii(substring(Nome+Cognome,@num,len(Nome))) not between 64 and 90 
and ascii(substring(Nome+Cognome,@num,len(Nome))) not between 97 and 122
and ascii(substring(Nome+Cognome,@num,len(Nome))) not between 48 and 57
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 32
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 40
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 41
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 43
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 44
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 45
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 46
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 95
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 39
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 38
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 47
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 63


set @num = @num + 1	
	
end	
--fine intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6mart.ANAG_CLIENTI

set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Indirizzo,@num,1)),
       substring(Indirizzo,@num,1),
       rete,
       Cod_Fiscale,
       'INDIRIZZO',
       Indirizzo
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 64 and 90 
and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 97 and 122
and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 48 and 57
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 32
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 40
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 41
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 43
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 44
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 45
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 46
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 95
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 39
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 47
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(CAP,@num,1)),
       substring(CAP,@num,1),
       rete,
       Cod_Fiscale,
       'CAP',
       CAP
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(CAP,@num,len(CAP))) not between 64 and 90 
and ascii(substring(CAP,@num,len(CAP))) not between 97 and 122
and ascii(substring(CAP,@num,len(CAP))) not between 48 and 57
and ascii(substring(CAP,@num,len(CAP))) <> 32
and ascii(substring(CAP,@num,len(CAP))) <> 40
and ascii(substring(CAP,@num,len(CAP))) <> 41
and ascii(substring(CAP,@num,len(CAP))) <> 43
and ascii(substring(CAP,@num,len(CAP))) <> 44
and ascii(substring(CAP,@num,len(CAP))) <> 45
and ascii(substring(CAP,@num,len(CAP))) <> 46
and ascii(substring(CAP,@num,len(CAP))) <> 95
and ascii(substring(CAP,@num,len(CAP))) <> 39
and ascii(substring(CAP,@num,len(CAP))) <> 47
and ascii(substring(CAP,@num,len(CAP))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Citta,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Citta',
       Citta
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Citta,@num,len(Citta))) not between 64 and 90 
and ascii(substring(Citta,@num,len(Citta))) not between 97 and 122
and ascii(substring(Citta,@num,len(Citta))) not between 48 and 57
and ascii(substring(Citta,@num,len(Citta))) <> 32
and ascii(substring(Citta,@num,len(Citta))) <> 40
and ascii(substring(Citta,@num,len(Citta))) <> 41
and ascii(substring(Citta,@num,len(Citta))) <> 43
and ascii(substring(Citta,@num,len(Citta))) <> 44
and ascii(substring(Citta,@num,len(Citta))) <> 45
and ascii(substring(Citta,@num,len(Citta))) <> 46
and ascii(substring(Citta,@num,len(Citta))) <> 95
and ascii(substring(Citta,@num,len(Citta))) <> 39
and ascii(substring(Citta,@num,len(Citta))) <> 47
and ascii(substring(Citta,@num,len(Citta))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Provincia,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Provincia',
       Provincia
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Provincia,@num,len(Provincia))) not between 64 and 90 
and ascii(substring(Provincia,@num,len(Provincia))) not between 97 and 122
and ascii(substring(Provincia,@num,len(Provincia))) not between 48 and 57
and ascii(substring(Provincia,@num,len(Provincia))) <> 32
and ascii(substring(Provincia,@num,len(Provincia))) <> 40
and ascii(substring(Provincia,@num,len(Provincia))) <> 41
and ascii(substring(Provincia,@num,len(Provincia))) <> 43
and ascii(substring(Provincia,@num,len(Provincia))) <> 44
and ascii(substring(Provincia,@num,len(Provincia))) <> 45
and ascii(substring(Provincia,@num,len(Provincia))) <> 46
and ascii(substring(Provincia,@num,len(Provincia))) <> 95
and ascii(substring(Provincia,@num,len(Provincia))) <> 39
and ascii(substring(Provincia,@num,len(Provincia))) <> 47
and ascii(substring(Provincia,@num,len(Provincia))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nazione,@num,1)),
       substring(Nazione,@num,1),
       rete,
       Cod_Fiscale,
       'Nazione',
       Nazione
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Nazione,@num,len(Nazione))) not between 64 and 90 
and ascii(substring(Nazione,@num,len(Nazione))) not between 97 and 122
and ascii(substring(Nazione,@num,len(Nazione))) not between 48 and 57
and ascii(substring(Nazione,@num,len(Nazione))) <> 32
and ascii(substring(Nazione,@num,len(Nazione))) <> 40
and ascii(substring(Nazione,@num,len(Nazione))) <> 41
and ascii(substring(Nazione,@num,len(Nazione))) <> 43
and ascii(substring(Nazione,@num,len(Nazione))) <> 44
and ascii(substring(Nazione,@num,len(Nazione))) <> 45
and ascii(substring(Nazione,@num,len(Nazione))) <> 46
and ascii(substring(Nazione,@num,len(Nazione))) <> 95
and ascii(substring(Nazione,@num,len(Nazione))) <> 39
and ascii(substring(Nazione,@num,len(Nazione))) <> 47
and ascii(substring(Nazione,@num,len(Nazione))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Presso,@num,1)),
       substring(Presso,@num,1),
       rete,
       Cod_Fiscale,
       'Presso',
       Presso
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Presso,@num,len(Presso))) not between 64 and 90 
and ascii(substring(Presso,@num,len(Presso))) not between 97 and 122
and ascii(substring(Presso,@num,len(Presso))) not between 48 and 57
and ascii(substring(Presso,@num,len(Presso))) <> 32
and ascii(substring(Presso,@num,len(Presso))) <> 40
and ascii(substring(Presso,@num,len(Presso))) <> 41
and ascii(substring(Presso,@num,len(Presso))) <> 43
and ascii(substring(Presso,@num,len(Presso))) <> 44
and ascii(substring(Presso,@num,len(Presso))) <> 45
and ascii(substring(Presso,@num,len(Presso))) <> 46
and ascii(substring(Presso,@num,len(Presso))) <> 95
and ascii(substring(Presso,@num,len(Presso))) <> 39
and ascii(substring(Presso,@num,len(Presso))) <> 47
and ascii(substring(Presso,@num,len(Presso))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(flagRol,@num,1)),
       substring(flagRol,@num,1),
       rete,
       Cod_Fiscale,
       'flagRol',
       flagRol
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(flagRol,@num,len(flagRol))) not between 64 and 90 
and ascii(substring(flagRol,@num,len(flagRol))) not between 97 and 122
and ascii(substring(flagRol,@num,len(flagRol))) not between 48 and 57
and ascii(substring(flagRol,@num,len(flagRol))) <> 32
and ascii(substring(flagRol,@num,len(flagRol))) <> 40
and ascii(substring(flagRol,@num,len(flagRol))) <> 41
and ascii(substring(flagRol,@num,len(flagRol))) <> 43
and ascii(substring(flagRol,@num,len(flagRol))) <> 44
and ascii(substring(flagRol,@num,len(flagRol))) <> 45
and ascii(substring(flagRol,@num,len(flagRol))) <> 46
and ascii(substring(flagRol,@num,len(flagRol))) <> 95
and ascii(substring(flagRol,@num,len(flagRol))) <> 39
and ascii(substring(flagRol,@num,len(flagRol))) <> 47
and ascii(substring(flagRol,@num,len(flagRol))) <> 63


set @num = @num + 1	
	
end	


select distinct a.* from #tab_temp a
inner join c6mart.gestione_pdf_ftp b on a.rete=b.rete and a.cod_fiscale=b.codicefiscale 
order by a.cod_fiscale






--fine aggiunta

--where flaginvio = 'N'
--where (DATEDIFF(DAY,b.DataInvio,GETDATE()) = 1)

-------------------------------------------------------

--SELECT * FROM C6MartPeriodico.ContrattoSEI
--WHERE
--	Email like '%¿%'
--OR
--	Indirizzo like '%¿%'
--OR
--	CAP like '%¿%'
--OR
--	Citta like '%¿%'
--OR
--	Prov like '%¿%'
--OR
--	Nazione like '%¿%'
--OR
--	Presso like '%¿%'
--OR
--	Rol like '%¿%'
--OR
--	Email like '%Ç%'
--OR
--	Indirizzo like '%Ç%'
--OR
--	CAP like '%Ç%'
--OR
--	Citta like '%Ç%'
--OR
--	Prov like '%Ç%'
--OR
--	Nazione like '%Ç%'
--OR
--	Presso like '%Ç%'
--OR
--	Rol like '%Ç%'
--OR
--	Email like '%À%'
--OR
--	Indirizzo like '%À%'
--OR
--	CAP like '%À%'
--OR
--	Citta like '%À%'
--OR
--	Prov like '%À%'
--OR
--	Nazione like '%À%'
--OR
--	Presso like '%À%'
--OR
--	Rol like '%À%'
--OR
--	Email like '%É%'
--OR
--	Indirizzo like '%É%'
--OR
--	CAP like '%É%'
--OR
--	Citta like '%É%'
--OR
--	Prov like '%É%'
--OR
--	Nazione like '%É%'
--OR
--	Presso like '%É%'
--OR
--	Rol like '%É%'
--OR
--	Email like '%µ%'
--OR
--	Indirizzo like '%µ%'
--OR
--	CAP like '%µ%'
--OR
--	Citta like '%µ%'
--OR
--	Prov like '%µ%'
--OR
--	Nazione like '%µ%'
--OR
--	Presso like '%µ%'
--OR
--	Rol like '%µ%'


END


GO
/****** Object:  StoredProcedure [C6Mart].[Controlli_RepGiornaliera]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE  procedure [C6Mart].[Controlli_RepGiornaliera]
AS
BEGIN

--------------------------
--prima parte
--------------------------

		drop table if exists C6Mart.clientidasistemare
		drop table if exists c6mart.TB_ClienticonCaratteriAnomali
		drop table if exists #tab_temp
		declare @num int 
		set @num = 1

		CREATE TABLE #tab_temp(
			[Val_Ascii] [smallint] NOT NULL,
			[Val_Char] [varchar](1) NOT NULL,
			[Rete] [varchar](1) NOT NULL,
			[Cod_Fiscale] [varchar](16) NOT NULL,
			[Nome_Campo] [varchar](50) NOT NULL,
			[Val_Campo] [varchar](150) NOT NULL)


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(email,@num,1)),
			   substring(email,@num,1),
			   rete,
			   Cod_Fiscale,
			   'EMAIL',
			   email
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(email,@num,len(email))) not between 64 and 90 
		and ascii(substring(email,@num,len(email))) not between 97 and 122
		and ascii(substring(email,@num,len(email))) not between 48 and 57
		and ascii(substring(email,@num,len(email))) <> 32
		and ascii(substring(email,@num,len(email))) <> 40
		and ascii(substring(email,@num,len(email))) <> 41
		and ascii(substring(email,@num,len(email))) <> 43
		and ascii(substring(email,@num,len(email))) <> 44
		and ascii(substring(email,@num,len(email))) <> 45
		and ascii(substring(email,@num,len(email))) <> 46
		and ascii(substring(email,@num,len(email))) <> 95
		and ascii(substring(email,@num,len(email))) <> 39
		and ascii(substring(email,@num,len(email))) <> 47
		and ascii(substring(email,@num,len(email))) <> 63


		set @num = @num + 1	
		end	

		--inizio intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6mart.ANAG_CLIENTI
		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(Nome,@num,1)),
			   substring(Nome,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Nome',
			   Nome
		FROM C6Mart.ANAG_CLIENTI
		WHERE 
			ascii(substring(Nome,@num,len(Nome))) not between 64 and 90 
		and ascii(substring(Nome,@num,len(Nome))) not between 97 and 122
		and ascii(substring(Nome,@num,len(Nome))) not between 48 and 57
		and ascii(substring(Nome,@num,len(Nome))) <> 32
		and ascii(substring(Nome,@num,len(Nome))) <> 40
		and ascii(substring(Nome,@num,len(Nome))) <> 41
		and ascii(substring(Nome,@num,len(Nome))) <> 43
		and ascii(substring(Nome,@num,len(Nome))) <> 44
		and ascii(substring(Nome,@num,len(Nome))) <> 45
		and ascii(substring(Nome,@num,len(Nome))) <> 46
		and ascii(substring(Nome,@num,len(Nome))) <> 95
		and ascii(substring(Nome,@num,len(Nome))) <> 39
		and ascii(substring(Nome,@num,len(Nome))) <> 38
		and ascii(substring(Nome,@num,len(Nome))) <> 47
		and ascii(substring(Nome,@num,len(Nome))) <> 63


		set @num = @num + 1	
	
		end	
		--aggiunta 30/07/2022 per il cognome
		set @num = 1
		while @num < 150
		begin	
		insert into #tab_temp
		SELECT ascii(substring(Cognome,@num,1)),
			   substring(Cognome,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Cognome',
			   Cognome
		FROM C6Mart.ANAG_CLIENTI
		WHERE 
			ascii(substring(Cognome,@num,len(Cognome))) not between 64 and 90 
		and ascii(substring(Cognome,@num,len(Cognome))) not between 97 and 122
		and ascii(substring(Cognome,@num,len(Cognome))) not between 48 and 57
		and ascii(substring(Cognome,@num,len(Cognome))) <> 32
		and ascii(substring(Cognome,@num,len(Cognome))) <> 40
		and ascii(substring(Cognome,@num,len(Cognome))) <> 41
		and ascii(substring(Cognome,@num,len(Cognome))) <> 43
		and ascii(substring(Cognome,@num,len(Cognome))) <> 44
		and ascii(substring(Cognome,@num,len(Cognome))) <> 45
		and ascii(substring(Cognome,@num,len(Cognome))) <> 46
		and ascii(substring(Cognome,@num,len(Cognome))) <> 95
		and ascii(substring(Cognome,@num,len(Cognome))) <> 39
		and ascii(substring(Cognome,@num,len(Cognome))) <> 38
		and ascii(substring(Cognome,@num,len(Cognome))) <> 47
		and ascii(substring(Cognome,@num,len(Cognome))) <> 63


		set @num = @num + 1	
	
		end	

		--fine aggiunta 30/07/2022 per il cognome
		--fine intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6mart.ANAG_CLIENTI

		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(Indirizzo,@num,1)),
			   substring(Indirizzo,@num,1),
			   rete,
			   Cod_Fiscale,
			   'INDIRIZZO',
			   Indirizzo
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 64 and 90 
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 97 and 122
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 48 and 57
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 32
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 40
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 41
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 43
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 44
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 45
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 46
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 95
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 39
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 47
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 63


		set @num = @num + 1	
	
		end	


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(CAP,@num,1)),
			   substring(CAP,@num,1),
			   rete,
			   Cod_Fiscale,
			   'CAP',
			   CAP
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(CAP,@num,len(CAP))) not between 64 and 90 
		and ascii(substring(CAP,@num,len(CAP))) not between 97 and 122
		and ascii(substring(CAP,@num,len(CAP))) not between 48 and 57
		and ascii(substring(CAP,@num,len(CAP))) <> 32
		and ascii(substring(CAP,@num,len(CAP))) <> 40
		and ascii(substring(CAP,@num,len(CAP))) <> 41
		and ascii(substring(CAP,@num,len(CAP))) <> 43
		and ascii(substring(CAP,@num,len(CAP))) <> 44
		and ascii(substring(CAP,@num,len(CAP))) <> 45
		and ascii(substring(CAP,@num,len(CAP))) <> 46
		and ascii(substring(CAP,@num,len(CAP))) <> 95
		and ascii(substring(CAP,@num,len(CAP))) <> 39
		and ascii(substring(CAP,@num,len(CAP))) <> 47
		and ascii(substring(CAP,@num,len(CAP))) <> 63


		set @num = @num + 1	
	
		end	


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(Citta,@num,1)),
			   substring(Citta,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Citta',
			   Citta
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Citta,@num,len(Citta))) not between 64 and 90 
		and ascii(substring(Citta,@num,len(Citta))) not between 97 and 122
		and ascii(substring(Citta,@num,len(Citta))) not between 48 and 57
		and ascii(substring(Citta,@num,len(Citta))) <> 32
		and ascii(substring(Citta,@num,len(Citta))) <> 40
		and ascii(substring(Citta,@num,len(Citta))) <> 41
		and ascii(substring(Citta,@num,len(Citta))) <> 43
		and ascii(substring(Citta,@num,len(Citta))) <> 44
		and ascii(substring(Citta,@num,len(Citta))) <> 45
		and ascii(substring(Citta,@num,len(Citta))) <> 46
		and ascii(substring(Citta,@num,len(Citta))) <> 95
		and ascii(substring(Citta,@num,len(Citta))) <> 39
		and ascii(substring(Citta,@num,len(Citta))) <> 47
		and ascii(substring(Citta,@num,len(Citta))) <> 63


		set @num = @num + 1	
	
		end	


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(Provincia,@num,1)),
			   substring(Citta,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Provincia',
			   Provincia
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Provincia,@num,len(Provincia))) not between 64 and 90 
		and ascii(substring(Provincia,@num,len(Provincia))) not between 97 and 122
		and ascii(substring(Provincia,@num,len(Provincia))) not between 48 and 57
		and ascii(substring(Provincia,@num,len(Provincia))) <> 32
		and ascii(substring(Provincia,@num,len(Provincia))) <> 40
		and ascii(substring(Provincia,@num,len(Provincia))) <> 41
		and ascii(substring(Provincia,@num,len(Provincia))) <> 43
		and ascii(substring(Provincia,@num,len(Provincia))) <> 44
		and ascii(substring(Provincia,@num,len(Provincia))) <> 45
		and ascii(substring(Provincia,@num,len(Provincia))) <> 46
		and ascii(substring(Provincia,@num,len(Provincia))) <> 95
		and ascii(substring(Provincia,@num,len(Provincia))) <> 39
		and ascii(substring(Provincia,@num,len(Provincia))) <> 47
		and ascii(substring(Provincia,@num,len(Provincia))) <> 63


		set @num = @num + 1	
	
		end	


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(Nazione,@num,1)),
			   substring(Nazione,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Nazione',
			   Nazione
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Nazione,@num,len(Nazione))) not between 64 and 90 
		and ascii(substring(Nazione,@num,len(Nazione))) not between 97 and 122
		and ascii(substring(Nazione,@num,len(Nazione))) not between 48 and 57
		and ascii(substring(Nazione,@num,len(Nazione))) <> 32
		and ascii(substring(Nazione,@num,len(Nazione))) <> 40
		and ascii(substring(Nazione,@num,len(Nazione))) <> 41
		and ascii(substring(Nazione,@num,len(Nazione))) <> 43
		and ascii(substring(Nazione,@num,len(Nazione))) <> 44
		and ascii(substring(Nazione,@num,len(Nazione))) <> 45
		and ascii(substring(Nazione,@num,len(Nazione))) <> 46
		and ascii(substring(Nazione,@num,len(Nazione))) <> 95
		and ascii(substring(Nazione,@num,len(Nazione))) <> 39
		and ascii(substring(Nazione,@num,len(Nazione))) <> 47
		and ascii(substring(Nazione,@num,len(Nazione))) <> 63


		set @num = @num + 1	
	
		end	


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(Presso,@num,1)),
			   substring(Presso,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Presso',
			   Presso
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Presso,@num,len(Presso))) not between 64 and 90 
		and ascii(substring(Presso,@num,len(Presso))) not between 97 and 122
		and ascii(substring(Presso,@num,len(Presso))) not between 48 and 57
		and ascii(substring(Presso,@num,len(Presso))) <> 32
		and ascii(substring(Presso,@num,len(Presso))) <> 40
		and ascii(substring(Presso,@num,len(Presso))) <> 41
		and ascii(substring(Presso,@num,len(Presso))) <> 43
		and ascii(substring(Presso,@num,len(Presso))) <> 44
		and ascii(substring(Presso,@num,len(Presso))) <> 45
		and ascii(substring(Presso,@num,len(Presso))) <> 46
		and ascii(substring(Presso,@num,len(Presso))) <> 95
		and ascii(substring(Presso,@num,len(Presso))) <> 39
		and ascii(substring(Presso,@num,len(Presso))) <> 47
		and ascii(substring(Presso,@num,len(Presso))) <> 63


		set @num = @num + 1	
	
		end	


		set @num = 1
		while @num < 150

		begin	
		insert into #tab_temp
		SELECT ascii(substring(flagRol,@num,1)),
			   substring(flagRol,@num,1),
			   rete,
			   Cod_Fiscale,
			   'flagRol',
			   flagRol
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(flagRol,@num,len(flagRol))) not between 64 and 90 
		and ascii(substring(flagRol,@num,len(flagRol))) not between 97 and 122
		and ascii(substring(flagRol,@num,len(flagRol))) not between 48 and 57
		and ascii(substring(flagRol,@num,len(flagRol))) <> 32
		and ascii(substring(flagRol,@num,len(flagRol))) <> 40
		and ascii(substring(flagRol,@num,len(flagRol))) <> 41
		and ascii(substring(flagRol,@num,len(flagRol))) <> 43
		and ascii(substring(flagRol,@num,len(flagRol))) <> 44
		and ascii(substring(flagRol,@num,len(flagRol))) <> 45
		and ascii(substring(flagRol,@num,len(flagRol))) <> 46
		and ascii(substring(flagRol,@num,len(flagRol))) <> 95
		and ascii(substring(flagRol,@num,len(flagRol))) <> 39
		and ascii(substring(flagRol,@num,len(flagRol))) <> 47
		and ascii(substring(flagRol,@num,len(flagRol))) <> 63


		set @num = @num + 1	
	
		end	




		select distinct a.Val_Ascii,a.Val_Char,a.Rete,a.Cod_Fiscale,a.Nome_Campo,a.Val_Campo 
		into c6mart.TB_ClienticonCaratteriAnomali
		from #tab_temp a
		inner join c6mart.gestione_pdf_ftp b on a.rete=b.rete and a.cod_fiscale=b.codicefiscale 
		order by a.cod_fiscale

		select * from c6mart.TB_ClienticonCaratteriAnomali order by Cod_Fiscale


		select a.Val_Ascii,a.Val_Char,a.Rete,a.Cod_Fiscale,a.Nome_Campo,a.Val_Campo 
		into c6mart.clientiDaSistemare
		from c6mart.TB_ClienticonCaratteriAnomali a
		inner join c6mart.gestione_pdf_ftp f on f.rete+f.CodiceFiscale=a.Rete+a.Cod_Fiscale
		where f.DataInvio is null

		--creare varchar per update
		declare @x varchar(max) = 'Val_Campo'
		select @x = 'replace('+@x+', ''' + Carattere_Speciale + ''','''+Carattere_Mappato+''')'  
		from C6Mart.CaratteriMappati
		set @x = 'update c6mart.clientidaSistemare set Val_Campo=' + @x +' from c6mart.clientidaSistemare'

		exec (@x)


--------------------------
--seconda parte
--------------------------
		select * from c6mart.clientiDaSistemare

		UPDATE c6mart.clientiDaSistemare SET Val_Campo = replace(Val_Campo, '''', ''); --questo update serve per togliere gli apici che possono dare fastidio negli update

--------------------------
--terza parte
--------------------------
		
		
		declare @update varchar(max) = ''   --ltmp
		declare @rete char(1)
		declare @cod_fiscale nvarchar(32)
		declare @nome_campo nvarchar(64)
		declare @val_campo nvarchar(max)

		declare ClientiDaSistCurs Cursor for 
		select rete,cod_fiscale,nome_campo,val_campo from c6mart.clientiDaSistemare

		open ClientiDaSistCurs

		fetch next from ClientiDaSistCurs into @rete,@cod_fiscale,@nome_campo,@val_campo

		while(@@FETCH_STATUS=0)
		begin
		if(@nome_campo not like '%Cognome%' or @nome_campo not like '%Nome%')
		begin 
		print 'update c6mart.vcontratti 
				set '+ @nome_campo +'='''+ @val_campo +''' 
				where cod_fiscale = '''+ @cod_fiscale+''''
		--ltmpInizio

		--versione precedente, ora sql non legge \n quindi si sostituisce con la versione con i char
		/* set @update = @update + 'update c6mart.vcontratti 
				set '+ @nome_campo +'='''+ @val_campo +''' 
				where cod_fiscale = '''+ @cod_fiscale+'''\n' */ 

				set @update = @update + 'update c6mart.vcontratti 
				set '+ @nome_campo +'='''+ @val_campo +''' 
				where cod_fiscale = '''+ @cod_fiscale+'''' + CHAR(13) + CHAR(10)
		--ltmpFine
		end

		else 

		begin
		print 'update c6mart.anag_clienti 
				set '+ @nome_campo +'='''+ @val_campo +''' 
				where cod_fiscale = '''+ @cod_fiscale+''''

		--ltmpInizio

		--versione precedente, ora sql non legge \n quindi si sostituisce con la versione con i char
		/* set @update = @update + 
				'update c6mart.anag_clienti 
				set '+ @nome_campo +'='''+ @val_campo +'''
				where cod_fiscale = '''+ @cod_fiscale+'''\n' */

	set @update = @update +'update c6mart.anag_clienti     
		set '+ @nome_campo +'='''+ @val_campo +'''     
		where cod_fiscale = '''+ @cod_fiscale+'''' + CHAR(13) + CHAR(10)
		

		--ltmpFine
		end
		 fetch next from ClientiDaSistCurs into @rete,@cod_fiscale,@nome_campo,@val_campo
		end

		close ClientiDaSistCurs

	--	select @update  --ltmp

		exec (@update)   --ltmp
--------------------------
--quarta parte
--------------------------
		exec  [C6Mart].[InvioLetteraBenvenuto_ExcludedListApply] 

--------------------------
--quinta parte
--------------------------
		drop table if exists #inviati
		select *
		into #inviati
		from c6mart.gestione_pdf_ftp where codicefiscale in (select distinct riatt_post18.trcom_codfisc--,riatt_post18.trcom_dtinvio 
		from 
		(select distinct trcom_codconf,trcom_codfisc,trcom_rete,trcom_dtinvio
		from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_HistDatiIngresso 
		where trcom_causale='RCO'
		and substring(cast(trcom_dtinvio as varchar),8,4)>2018) revoc_post18 inner join 
		(select distinct trcom_codconf,trcom_codfisc,trcom_rete,trcom_dtinvio
		from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_HistDatiIngresso 
		where trcom_causale='ACO'
		and substring(cast(trcom_dtinvio as varchar),8,4)>2018) riatt_post18
		on revoc_post18.trcom_codconf<>riatt_post18.trcom_codconf
		and revoc_post18.trcom_codfisc=riatt_post18.trcom_codfisc --order by 2 desc
		) and datainvio is null order by 2,6

		drop table if exists #conta
		select CodiceFiscale,count(codicefiscale) as conteggio
		into #conta
		from C6Mart.GESTIONE_PDF_FTP where CodiceFiscale in (select CodiceFiscale from #inviati)
		group by CodiceFiscale


		drop table if exists c6mart.clientiRepGiaInviati

		select CodiceFiscale,conteggio
		into c6mart.clientiRepGiaInviati
		from #conta
		where conteggio >1


		select * from c6mart.clientiRepGiaInviati

--------------------------
--sesta parte
--------------------------

		declare @update2 varchar(max) =''	--ltmp 
		declare @cod_fiscaleINV nvarchar(32)

		declare ClientiGiaInviatiCurs Cursor for 
		select codicefiscale from c6mart.clientiRepGiaInviati

		open ClientiGiaInviatiCurs

		fetch next from ClientiGiaInviatiCurs into @cod_fiscaleINV

		while(@@FETCH_STATUS=0)
		begin

		print 'update p
		set p.[DataInvio] = getdate()
			,p.[FlagInvio] = ''S''
			,p.[id_fk_zip] = 999999
		from [C6Mart].[GESTIONE_PDF_FTP] p where codicefiscale='''+ @cod_fiscaleINV +''' and datainvio is null

		'
		--ltmpInizio
		set @update2 = @update2 + 
		'update p
		set p.[DataInvio] = getdate()
			,p.[FlagInvio] = ''S''
			,p.[id_fk_zip] = 999999
		from [C6Mart].[GESTIONE_PDF_FTP] p where codicefiscale='''+ @cod_fiscaleINV +''' and datainvio is null

		'
		--ltmpFine
		 fetch next from ClientiGiaInviatiCurs into @cod_fiscaleINV
		end

		close ClientiGiaInviatiCurs

	--	select @update2  --ltmp

		exec (@update2)  --ltmp
--fine SP

-------------------------------------------------------

--SELECT * FROM C6MartPeriodico.ContrattoSEI
--WHERE
--	Email like '%¿%'
--OR
--	Indirizzo like '%¿%'
--OR
--	CAP like '%¿%'
--OR
--	Citta like '%¿%'
--OR
--	Prov like '%¿%'
--OR
--	Nazione like '%¿%'
--OR
--	Presso like '%¿%'
--OR
--	Rol like '%¿%'
--OR
--	Email like '%Ç%'
--OR
--	Indirizzo like '%Ç%'
--OR
--	CAP like '%Ç%'
--OR
--	Citta like '%Ç%'
--OR
--	Prov like '%Ç%'
--OR
--	Nazione like '%Ç%'
--OR
--	Presso like '%Ç%'
--OR
--	Rol like '%Ç%'
--OR
--	Email like '%À%'
--OR
--	Indirizzo like '%À%'
--OR
--	CAP like '%À%'
--OR
--	Citta like '%À%'
--OR
--	Prov like '%À%'
--OR
--	Nazione like '%À%'
--OR
--	Presso like '%À%'
--OR
--	Rol like '%À%'
--OR
--	Email like '%É%'
--OR
--	Indirizzo like '%É%'
--OR
--	CAP like '%É%'
--OR
--	Citta like '%É%'
--OR
--	Prov like '%É%'
--OR
--	Nazione like '%É%'
--OR
--	Presso like '%É%'
--OR
--	Rol like '%É%'
--OR
--	Email like '%µ%'
--OR
--	Indirizzo like '%µ%'
--OR
--	CAP like '%µ%'
--OR
--	Citta like '%µ%'
--OR
--	Prov like '%µ%'
--OR
--	Nazione like '%µ%'
--OR
--	Presso like '%µ%'
--OR
--	Rol like '%µ%'


END


GO
/****** Object:  StoredProcedure [C6Mart].[Decodifica_Concentrazione_Prodotti_Complessi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6Mart].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225'
CREATE    procedure [C6Mart].[Decodifica_Concentrazione_Prodotti_Complessi] --'W','PSTFNC40D10I992T'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

declare @adeguato int
select @adeguato=cc_adeguatezza_indicatore from c6staging.VAR_ADEGUATEZZA_INDICATORI where RETE=@Rete and CODICE_FISCALE=@CodiceFiscale

if(@adeguato=0)
begin

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @TotalePatrimonio = ctv
	FROM
		C6Mart.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
--
 SELECT
    1 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
	into #temp
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 3

	union all
	SELECT
    2 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 2

	union all
	SELECT
    3 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 1

	-- --20180905 Fine modifica
	order by ordine,Compl_Base desc

	delete from #temp where ordine=1 and SommaPesi<20 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta è <20 
	delete from #temp where ordine=2 and SommaPesi<30 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta è <30 
	delete from #temp where ordine=3 and SommaPesi<50 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta e medio-bassa è <50 

DECLARE @countLimMax VARCHAR(50)
SELECT @countLimMax = count(*) FROM #temp 

DECLARE @maxCompl VARCHAR(50)
select @maxCompl = max(compl_base) from [C6Mart].[TB_S180ProdottiComplessitaAlta] where rete=@rete and Cod_fiscale=@CodiceFiscale

declare @IndPatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @IndPatrimonio = case when ctv>50000 then 2 
								 when ctv>75000 then 3
								 when ctv>150000 then 4
								else 0 end 
	FROM
		C6Mart.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale


if (@countLimMax=0 and @maxCompl>@IndPatrimonio)
begin
update C6Staging.VAR_ADEGUATEZZA_INDICATORI
set cc_adeguatezza_descrizione = 'Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto non coerente rispetto al patrimonio minimo richiesto per la sottoscrizione di tali prodotti.'
where rete=@Rete
and codice_fiscale=@CodiceFiscale
--print('Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto non coerente rispetto al patrimonio minimo richiesto per la sottoscrizione di tali prodotti.')
end


if (@countLimMax>0 and @maxCompl<=@IndPatrimonio)
begin
update C6Staging.VAR_ADEGUATEZZA_INDICATORI
set cc_adeguatezza_descrizione = 'Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto superiore ai limiti massimi stabiliti dalla Banca.'
where rete=@Rete
and CODICE_FISCALE=@CodiceFiscale
--print('Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto superiore ai limiti massimi stabiliti dalla Banca.')
end

if (@countLimMax>0 and @maxCompl>@IndPatrimonio)
begin
update C6Staging.VAR_ADEGUATEZZA_INDICATORI
set cc_adeguatezza_descrizione = 'Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto superiore ai limiti massimi stabiliti dalla Banca e non coerente rispetto al patrimonio minimo richiesto per la sottoscrizione di tali prodotti.'
where rete=@Rete
and CODICE_FISCALE=@CodiceFiscale
--print('Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto superiore ai limiti massimi stabiliti dalla Banca e non coerente rispetto al patrimonio minimo richiesto per la sottoscrizione di tali prodotti.')
end





end
end
GO
/****** Object:  StoredProcedure [C6Mart].[DM_AGGIORNA_CLIENTE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_AGGIORNA_CLIENTE]
	@Rete char(1),
	@CodiceFiscale varchar(16),
	@Nome varchar(50),
	@Cognome varchar(50),
	@DataNascita datetime=NULL,
	@Cittadinanza varchar(150),
	@Indirizzo varchar(150),
	@Localita varchar(100),
	@Provincia varchar(2),
	@CAP varchar(5),
	@Nazione varchar(50),
	@DataInizio datetime=NULL,
	@Sesso varchar(1)
AS
BEGIN

declare @eta smallint


set @eta = CASE 
		      when @DataNascita IS NULL then null
		 ELSE DATEDIFF(YY, @DataNascita, GETDATE()) 
		 END
		 
	UPDATE C6MART.ANAG_CLIENTI
	SET
		NOME = @Nome,
		COGNOME = @Cognome,
		DATA_NASCITA = @DataNascita,
		ETA =@eta,		
		CITTADINANZA = @Cittadinanza,
		INDIRIZZO = @Indirizzo,
		LOCALITA = @Localita,
		PROVINCIA = @Provincia,
		CAP = @CAP,
		NAZIONE = @Nazione,
		DATA_INIZIO = @DataInizio,
		SESSO = @Sesso
	WHERE
		RETE = @Rete AND COD_FISCALE = @CodiceFiscale
END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ALBERO_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ALBERO_PRODOTTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	
	SET @ID_ELAB = C6MART.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ALBERO_PRODOTTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ALBERO_PRODOTTI
	
	INSERT INTO [C6Mart].[ALBERO_PRODOTTI]
		   ([DESCRIZIONE_ORIGINALE]
		   ,[ALBERO_GERARCHIA_1]
		   ,[ALBERO_GERARCHIA_2]
		   ,[ALBERO_GERARCHIA_3]
		   ,[ID_ELAB])
	SELECT [DESCRIZIONE_ORIGINALE]
		  ,[ALBERO_GERARCHIA_1]
		  ,[ALBERO_GERARCHIA_2]
		  ,[ALBERO_GERARCHIA_3]
		  , @ID_ELAB AS ID_ELAB
	FROM [C6Staging].[S4_S5_S13_TRAD_UNTIL_LIV3]

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ALBERO_PRODOTTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ALBERO_PRODOTTI'
		)
END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ALL_PATRIMONIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- AUTHOR:		ALESSANDRO TRINGALI
-- CREATE DATE: 18 SETTEMBRE 2009
-- DESCRIPTION:	
-- =============================================
CREATE procedure [C6Mart].[DM_ALL_PATRIMONIO]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6Mart].GETIDELAB()

	-- LOG ESECUZIONE
	INSERT INTO LOG_ESECUZIONE
		(NOME, INIZIO, NOTA)
	VALUES (
		'DM_ALL_PATRIMONIO',
		GETDATE(),
		'ELABORAZIONE TRIMESTRALE'
	)


	TRUNCATE TABLE [C6Mart].[ALL_PATRIMONIO] 

	INSERT INTO [C6Mart].[ALL_PATRIMONIO]

           (
           [CODICE_FISCALE]
           ,[RETE]
           ,[POSITIONID]
           ,[CATALOGUENAME]
           ,[CATALOGUEID]
           ,[COD_ADEGUATEZZA]
           ,[INTERMEDIARIO]
           ,[PATRIMONIO_INTERMEDIARIO]
           ,[EMITTENTE]
           ,[PATRIMONIO_EMITTENTE]
           ,[COMPLESSITA]
           ,[TIPO_PRODOTTO]
           ,[CONTROVALORE_PRODOTTO]
           ,[AZ_OB]
           ,[PATRIMONIO_AZ_OB_EMIT]
           ,[PATRIM_AZ_OB_EMIT_INTER]   
           ,[PATRIMONIO_COMPLESSIVO] 
           ,[CHIAVE_THR]
           )

SELECT 
       CODICE_FISCALE,
       RETE,
       POSITIONID,
       DATI.CATALOGUENAME,
       CAT.CATALOGUEID,
       CASE
            WHEN ADEGUATEZZA IS NULL
                 THEN CAT.COD_ADEGUATEZZA
            ELSE ADEGUATEZZA
       END AS COD_ADEGUATEZZA,
       INTERMEDIARIO,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,INTERMEDIARIO) AS PATRIMONIO_INTERMEDIARIO,
       EMIT.DESCR AS EMITTENTE,
       CASE
            WHEN EMIT.DESCR IS NULL THEN NULL
            ELSE SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,EMIT.DESCR)
       END AS PATRIMONIO_EMITTENTE,
       CAT.COMPLEX AS COMPLESSITA,
       CAT.TIPOPRODOTTO,
       CONTROVALORE  AS CONTROVALORE_PRODOTTO,
       CASE WHEN CAT.STRTYPE IS NULL
            THEN AZ_OB
            ELSE CAT.STRTYPE
       END AS AZ_OB,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,CASE WHEN CAT.STRTYPE IS NULL THEN AZ_OB ELSE CAT.STRTYPE END,EMIT.DESCR) AS PATRIMONIO_AZ_OB_EMIT,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,INTERMEDIARIO,CASE WHEN CAT.STRTYPE IS NULL THEN AZ_OB ELSE CAT.STRTYPE END,EMIT.DESCR, POSITIONID) AS PATRIM_AZ_OB_EMIT_INTER,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE) AS PATRIMONIO_COMPLESSIVO,
       CHIAVE_THR

  FROM (

       SELECT NULL AS AGENTE,
               C.RETE,
               C.CODICE_FISCALE,
               C.CATALOGUENAME,
               C.CONTROVALORE,
               'BF' AS INTERMEDIARIO,
               SUBSTRING(C.STRINGONA_POS, 1, 57) AS CATALOGUEID,
               C.STRINGONA_POS AS POSITIONID,
               NULL AS ADEGUATEZZA,
               'BF' AS PROVENIENZA,
               NULL AZ_OB,
               '' AS CHIAVE_THR
          FROM C6STAGING.ALL_CONSUL_ASUL C
         
        union all
        SELECT agente,
               substring(agente,1,1) as rete,
               codicefiscale as codice_FISCALE,
               nome_prodotto as cataloguename,
               SUM(controvalore) AS controvalore,
               intermediario,
				case when codiceisin =  '' then '############' else  codiceisin + replicate(' ', 12-len(codiceisin))  end
				 +
				case when codicemaf =  '' then '###############' else  codicemaf + replicate(' ', 15-len(codicemaf))   end
				+
				case when codiceinterno =  '' then '###############' else  codiceinterno + replicate(' ', 15-len(codiceinterno))   end
				+
				case when codicesottoprodotto =  '' then '###############' else  codicesottoprodotto + replicate(' ', 15-len(codicesottoprodotto))   end

				 as catalogueid,
                      null as positionid,
                      codiceadeguatezza as ADEGUATEZZA ,
                      'PPT' as provenienza,
                      --alberatura,
                      case
                          when substring( alberatura,1,13)='Amm.Titoli.Ob'
                               OR substring( alberatura,1,15)='Amm.Strutturati'
                          then 'OB'
                          when substring( alberatura,1,17)='Amm.Titoli.Azioni'
                               OR substring( alberatura,1,18)='Amm.Titoli.Diritti'
                               OR substring( alberatura,1,20)='Amm.Derivati.Warrant'
                               OR substring( alberatura,1,19)='Amm.Derivati.CovWar'
                          then 'AZ'
                          else null
                       end as az_ob, 
                       CHIAVE_THR
          FROM (SELECT cf_e_pb.agente AS agente,
                       cf_e_pb.codice_fiscale AS codicefiscale,
                       nome_istituto AS intermediario,
                       SUM(paTRIMonio) AS controvalore,
                       REPLACE(codice_isin, '$', '') AS codiceisin,
                       REPLACE(codice_adeguatezza, '$', '') AS codiceadeguatezza,
                       REPLACE(codice_maf, '$', '') AS codicemaf,
                       REPLACE(codice_interno, '$', '') AS codiceinterno,
                       REPLACE(codice_sottoprodotto,
                              '$',
                              ''    ) AS codicesottoprodotto,
                       CASE
                         WHEN traduz_alberat.albero_gerarchia_3 =
                              'Conti correnti' AND
                              tipo_prodotto =
                              'Assets.FinancialAssets.CurrentAccount' THEN
                          'Cc'
                         ELSE
                          'xxx'
                       END AS need_si_o_no_cc,
                       provenienza,
                       CASE
                         WHEN provenienza = 'dati NON in catalogo' THEN
                          1
                         ELSE
                          0
                       END AS prodotti_non_in_catalogo,
                       tipo_prodotto,
                       nome_prodotto,
                       alberatura,
                       CHIAVE_THR
                  FROM (
                        -- asset per dati NON in catalogo
                        SELECT aa.paTRIMonio,
                                aa.chiave_cliente,
                                aa.nome_istituto,
                                bb.codice_isin,
                                bb.codice_adeguatezza,
                                bb.codice_maf,
                                NULL AS codice_interno,
                                NULL AS codice_sottoprodotto,
                                aa.alberatura,
                                aa.provenienza,
                                tipo_prodotto,
                                nomeprodotto AS nome_prodotto,
                                CHIAVE_THR
                          FROM (SELECT patr_tp.paTRIMonio_terzi *
                                        acb.bdpercentage AS paTRIMonio,
                                        patr_tp.chiave_per_cliente AS chiave_cliente,
                                        patr_tp.intermediario AS nome_istituto,
                                        ass.assetclassid,
                                        substring(patr_tp.descrizione_alberatura,
                                               1,
                                               45) AS alberatura,
                                        'dati NON in catalogo' AS provenienza,
                                        patr_tp.descrizione_prodotto AS tipo_prodotto,
                                        patr_tp.nomeprodotto,
                                        CHIAVE_THR
                                   FROM C6STAGING.All_patr_terzi patr_tp,
                                        C6STAGING.acbdenoth                    acb,
                                        C6STAGING.assetclass                   ass
                                  WHERE ass.assetclasslev = 2
                                    AND patr_tp.prodotto_in_catalogo IS NULL
                                    AND patr_tp.chiave_fnc IS NOT NULL
                                    AND acb.f_pfinancial_815c0 = patr_tp.chiave_fnc
                                    AND acb.f_oid__passe_cdf1a = ass.oid_
                                    ) aa,
                                C6STAGING.all_asset_class_per_promet bb
                         WHERE bb.codice_asset_class_ingresso = aa.assetclassid
                        UNION ALL
                        -- asset per dati in catalogo che hanno cod_adeguatezza valorizzato
                        SELECT patr_tp.paTRIMonio_terzi AS paTRIMonio,
                               patr_tp.chiave_per_cliente AS chiave_cliente,
                               patr_tp.intermediario AS nome_istituto,
                               cat.cod_isin,
                               cat.cod_adeguatezza,
                               cat.cod_maf,
                               cat.cod_interno,
                               cat.cod_sottoprodotto,
                               substring(cat.type$_bcatal_fc317, 64, 45) AS alberatura,
                               'dati in catalogo che hanno cod_adeguatezza valorizzato' AS provenienza,
                               patr_tp.descrizione_prodotto AS tipo_prodotto,
                               patr_tp.nomeprodotto,
								CHIAVE_THR
                          FROM C6STAGING.all_patr_terzi patr_tp,
                               C6STAGING.catitemref                   cat
                         WHERE patr_tp.chiave_fnc IS NOT NULL
                           AND cat.cod_adeguatezza != '$'
                           AND patr_tp.prodotto_in_catalogo = cat.catalogueid
                        UNION ALL
                        SELECT a.paTRIMonio,
                               a.chiave_cliente,
                               a.nome_istituto,
                               b.codice_isin,
                               b.codice_adeguatezza,
                               b.codice_maf,
                               NULL AS codice_interno,
                               NULL AS codice_sottoprodotto,
                               a.alberatura,
                               a.provenienza,
                               tipo_prodotto,
                               nomeprodotto AS nome_prodotto,
                               CHIAVE_THR
                          FROM (
                                -- ASSET ESISTENTI PER DATI DEL CATALOGO CON ADEGUATEZZA A NULL
                                SELECT PATR_TP.PATRIMONIO_TERZI *
                                        ACB.BDPERCENTAGE AS PATRIMONIO,
                                        PATR_TP.CHIAVE_PER_CLIENTE AS CHIAVE_CLIENTE,
                                        PATR_TP.INTERMEDIARIO AS NOME_ISTITUTO,
                                        LTRIM(ASS.ASSETCLASSID) AS ASSETCLASSID,
                                        ASS.ASSETCLASSLEV,
                                        SUBSTRING(CAT.TYPE$_BCATAL_FC317, 64, 45) AS ALBERATURA,
                                        'DATI IN CATALOGO CHE HANNO COD_ADEGUATEZZA A NULL E ASSET VALORIZZATO' AS PROVENIENZA,
                                        PATR_TP.DESCRIZIONE_PRODOTTO AS TIPO_PRODOTTO,
                                        PATR_TP.NOMEPRODOTTO,
                                        patr_tp.CHIAVE_THR
                                  FROM  C6STAGING.ASSETCLASS                   ASS,
                                        C6STAGING.ALL_PATR_TERZI PATR_TP,
                                        C6STAGING.CATITEMREF                   CAT,
                                        C6STAGING.INSTRBDS                     INS,
                                        C6STAGING.ACBDENTRY                    ACB
                                 WHERE CAT.COD_ADEGUATEZZA = '$'
                                   AND ASS.ASSETCLASSLEV = 2
                                   AND PATR_TP.PRODOTTO_IN_CATALOGO = CAT.CATALOGUEID
                                   AND PATR_TP.CHIAVE_FNC IS NOT NULL
                                   AND CAT.OID$ = INS.F_OID__PCATA_5DDA6
                                   AND INS.OID_ = ACB.F_PINSTRUMEN_FBCDE
                                   AND ACB.F_OID__PASSE_B8A1E = ASS.OID_
                                UNION ALL
                                -- ASSET NON ESISTENTI PER DATI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
                                SELECT PATR_TP.PATRIMONIO_TERZI AS PATRIMONIO,
                                       PATR_TP.CHIAVE_PER_CLIENTE AS CHIAVE_CLIENTE,
                                       PATR_TP.INTERMEDIARIO AS NOME_ISTITUTO,
                                       'AL1' AS ASSETCLASSID,
                                       2,
                                       SUBSTRING(CAT.TYPE$_BCATAL_FC317, 64, 45) AS ALBERATURA,
                                       'DATI IN CATALOGO CHE HANNO COD_ADEGUATEZZA A NULL E ASSET NON VALORIZZATO',
                                       PATR_TP.DESCRIZIONE_PRODOTTO AS TIPO_PRODOTTO,
                                       PATR_TP.NOMEPRODOTTO,
                                       	patr_tp.CHIAVE_THR
                                  FROM C6STAGING.ALL_PATR_TERZI  PATR_TP,
                                       C6STAGING.CATITEMREF                   CAT,
                                       C6STAGING.INSTRBDS                     INS
                                 WHERE CAT.COD_ADEGUATEZZA = '$'
                                   AND PATR_TP.CHIAVE_FNC IS NOT NULL
                                   AND PATR_TP.PRODOTTO_IN_CATALOGO = CAT.CATALOGUEID
                                   AND CAT.OID$ = INS.F_OID__PCATA_5DDA6  --(+)
                                   AND INS.F_OID__PCATA_5DDA6 IS NULL
                                ) A,
                               C6STAGING.ALL_ASSET_CLASS_PER_PROMET B
                         WHERE B.CODICE_ASSET_CLASS_INGRESSO = A.ASSETCLASSID
                         ) patrimonio_PT,
                       C6STAGING.ALL_CF_PB CF_E_PB,
                       C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 TRADUZ_ALBERAT
                 WHERE CF_E_PB.oid = patrimonio_PT.CHIAVE_CLIENTE
                   AND TRADUZ_ALBERAT.DESCRIZIONE_ORIGINALE = patrimonio_PT.ALBERATURA
                 GROUP BY CF_E_PB.AGENTE,
                          CF_E_PB.CODICE_FISCALE,
                          NOME_ISTITUTO,
                          REPLACE(codice_isin, '$', ''),
                          REPLACE(codice_adeguatezza,
                                 '$',
                                 ''
                                 ),
                          REPLACE(codice_maf, '$', ''),
                          REPLACE(codice_interno, '$', ''),
                          REPLACE(codice_sottoprodotto,
                                 '$',
                                 ''
                                 ),
                          PROVENIENZA,
                          TRADUZ_ALBERAT.ALBERO_GERARCHIA_3,
                          TIPO_PRODOTTO,
                          NOME_PRODOTTO,
                          ALBERATURA,
                          CHIAVE_THR) TUTTO_PPT
         GROUP BY AGENTE,
                  CODICEFISCALE,
                  INTERMEDIARIO,
                  NOME_PRODOTTO,
                  CODICEISIN,
                  CODICEADEGUATEZZA,
                  CODICEMAF,
                  CODICEINTERNO,
                  CODICESOTTOPRODOTTO,
                  PRODOTTI_NON_IN_CATALOGO,
                  ALBERATURA,
                  CHIAVE_THR
                  ) DATI,
       C6STAGING.CATITEMREF CAT,
       C6STAGING.EMIT
 WHERE CAT.CATALOGUEID = DATI.CATALOGUEID
   AND CAT.CODEMI = EMIT.CODEMI




	-- LOG ESECUZIONE
	UPDATE
		LOG_ESECUZIONE
	SET
		FINE = GETDATE(),
		TIPO = 'INSERT',
		RIGHE = @@ROWCOUNT
	WHERE
		NOME = 'DM_ALL_PATRIMONIO' AND
		INIZIO = (
			SELECT
				MAX(INIZIO)
			FROM
				LOG_ESECUZIONE
			WHERE
				NOME = 'DM_ALL_PATRIMONIO'
		)

END













GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CC]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CC

	INSERT INTO [C6Mart].[ANAG_CC]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[INTERMEDIARIO]
		   ,[COINTEST]
		   ,[COD_CC]
		   ,[FASCIA_CPP]
		   ,[SALDOCONTABILE]
		   ,[SALDODISPONIBILE]
		   ,[DATA_APERTURA]
		   ,[DATA_CHIUSURA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		'BANCA FIDEURAM' AS INTERMEDIARIO,
		NULL AS COINTEST,
		SPB_CONTR_SINTESI.CONTO AS COD_CC,
		CONTRATTOSEI.FASCIA_CPP AS FASCIA_CPP,
		SPB_CONTR_SINTESI.CTV AS SALDOCONTABILE,
		-- è diverso da quello restituito dalla contratto sintesi CC.SALDOCONTABILE AS SALDOCONTABILE,
		CC.SALDODISPONIBILE AS SALDODISPONIBILE,
		SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI
	LEFT JOIN C6MART.CONTRATTOSEI ON CONTRATTOSEI.CODICECONTRATTO = SPB_CONTR_SINTESI.CODICECONTRATTO
	--V Aggiunta del saldo contabile e disponibile
	JOIN C6STAGING.SPB_CONTOCORRENTE CC 
		ON SPB_CONTR_SINTESI.CONTO = CC.CONTO
		AND SPB_CONTR_SINTESI.RETE = CC.RETE
		AND SPB_CONTR_SINTESI.CODICEFISCALE = CC.CODICEFISCALE
	
	WHERE SPB_CONTR_SINTESI.TIPOPRODOTTO = 'Cc'  AND CONTRATTOSEI.DATA_FINEAVANZATO is null

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CC'
		)

END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CC_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	--DECLARE @TIPO_ELAB VARCHAR(1)

    SET @ID_ELAB = C6MART.GETIDELAB()
	--SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CC_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CC_TERZI

	INSERT INTO [C6Mart].[ANAG_CC_TERZI]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[INTERMEDIARIO]
		   ,[COINTEST]
		   ,[COD_CC]
		   ,[FASCIA_CPP]
		   ,[SALDO]
		   ,[DATA_APERTURA]
		   ,[DATA_CHIUSURA]
		   ,[ID_ELAB])
	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
		NULL AS COINTEST,
		ALL_PATR_TERZI.NOMEPRODOTTO AS COD_CC,
		CONTRATTOSEI.FASCIA_CPP AS FASCIA_CPP,
		ALL_PATR_TERZI.PATRIMONIO_TERZI AS SALDO,
		NULL AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGING.ALL_PATR_TERZI 
	LEFT JOIN C6MART.CONTRATTOSEI 
		ON CONTRATTOSEI.COD_FISCALE =ALL_PATR_TERZI.CODICE_FISCALE
		AND CONTRATTOSEI.RETE = ALL_PATR_TERZI.RETE_PB
	WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_FNC
		AND DESCRIZIONE_PRODOTTO LIKE '%CURRENTACCOUNT%'
		AND DESCRIZIONE_ALBERATURA LIKE '%CONTICORRENTI%' 
		AND CONTRATTOSEI.DATA_FINEAVANZATO is null

--	SELECT 
--		ALL_PATR_TERZI.RETE_PB AS RETE,
--		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
--		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
--		NULL AS COINTEST,
--		ALL_PATR_TERZI.NOMEPRODOTTO AS COD_CC,
--		CONTRATTOSEI.FASCIA_CPP AS FASCIA_CPP,
--		ALL_PATR_TERZI.PATRIMONIO_TERZI AS SALDO,
--		NULL AS DATA_APERTURA,
--		NULL AS DATA_CHIUSURA,
--		@ID_ELAB AS ID_ELAB
--	FROM C6STAGING.ALL_PATR_TERZI 
--	INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 
--		ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
--	LEFT JOIN C6MART.CONTRATTOSEI 
--		ON CONTRATTOSEI.COD_FISCALE =ALL_PATR_TERZI.CODICE_FISCALE
--		AND CONTRATTOSEI.RETE = ALL_PATR_TERZI.RETE_PB
--	WHERE S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CC_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CC_TERZI'
		)

END

GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CLIENTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CLIENTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	DELETE C6MART.ANAG_CLIENTI 
	FROM C6MART.ANAG_CLIENTI
	INNER JOIN C6STAGING.ALL_CF_PB 
		ON ANAG_CLIENTI.RETE = ALL_CF_PB.RETE_PB
		AND ANAG_CLIENTI.COD_FISCALE = ALL_CF_PB.CODICEFISCALE

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CLIENTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CLIENTI'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CLIENTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	INSERT INTO [C6Mart].[ANAG_CLIENTI]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[NOME]
		   ,[COGNOME]
		   ,[DATA_NASCITA]
		   ,[STATO_CIVILE]
		   ,[NUM_COMPONENTI]
		   ,[NUM_FIGLI]
		   ,[ETA]
		   ,[PARTITA_IVA]
		   ,[CITTADINANZA]
		   ,[PERSONA_FIS_GIUR]
		   ,[INDIRIZZO]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[PRESSO]
		   ,[TEL_RECAPITO]
		   ,[TEL_CELL]
		   ,[E_MAIL]
		   ,[DATA_INIZIO]
		   ,[DATA_FINE]
		   ,[STATO]
		   ,[RAG_SOC]
		   ,[SESSO]
		   ,[ID_PROMOTORE]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT
		distinct
		CONTRATTOSEI.RETE AS RETE,
		CONTRATTOSEI.COD_FISCALE AS COD_FISCALE,
		ISNULL(SPB_CLIENTI.NOME,ALL_CF_PB.NOME) AS NOME,
		ISNULL(SPB_CLIENTI.COGNOME,ALL_CF_PB.COGNOME) AS COGNOME,
		ISNULL(ALL_CF_PB.DATA_NASCITA,SPB_CLIENTI.DATADINASCITA) AS DATA_NASCITA,
		CASE
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
				AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugato'
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
				AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
				AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libero'
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
				AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugata'
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
				AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
				AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libera'
 			ELSE NULL
		END AS STATO_CIVILE,
		S25.NUMEROCOMPONENTI AS NUM_COMPONENTI,
		S25.NUMEROFIGLI AS NUM_FIGLI,
		S25.ETA AS ETA,
		NULL AS PARTITA_IVA,
		SPB_CLIENTI.CITTADINANZA AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(SPB_INDIRIZZI.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(SPB_INDIRIZZI.CITTA, '') AS LOCALITA,
		ISNULL(SPB_INDIRIZZI.PROVINCIA, '') AS PROVINCIA,
		ISNULL(SPB_INDIRIZZI.CAP, '') AS CAP,
		ISNULL(SPB_INDIRIZZI.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		CONTRATTOSEI.EMAIL AS E_MAIL,
		SPB_CLIENTI.DATAATTIVAZIONECLIENTE AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		CASE
 			WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		ALL_CF_PB.CODICE_PB AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6MART.CONTRATTOSEI  
	INNER JOIN 
		C6STAGING.ALL_CF_PB 
		ON 
			CONTRATTOSEI.RETE = ALL_CF_PB.RETE_PB
			AND CONTRATTOSEI.COD_FISCALE = ALL_CF_PB.CODICEFISCALE
	LEFT OUTER JOIN 
		C6STAGING.S25_CLI_CLIENTE S25
		ON 
			S25.CODICEFISCALE = CONTRATTOSEI.COD_FISCALE
			AND S25.RETE = CONTRATTOSEI.RETE
	LEFT OUTER JOIN 
		C6STAGING.SPB_CLIENTI 
		ON 
			C6STAGING.SPB_CLIENTI.CODICERETE = CONTRATTOSEI.RETE
			AND C6STAGING.SPB_CLIENTI.CODICEFISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6STAGING.SPB_INDIRIZZI 
		ON 
			C6STAGING.SPB_INDIRIZZI.RETE = CONTRATTOSEI.RETE
			AND C6STAGING.SPB_INDIRIZZI.CODICEFISCALE = CONTRATTOSEI.COD_FISCALE
	WHERE
		CONTRATTOSEI.DATA_FINEAVANZATO IS NULL

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CLIENTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CLIENTI'
		)

END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CLIENTI_PREV]
AS
BEGIN

	SET NOCOUNT ON;

   	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	TRUNCATE TABLE C6MART.ANAG_CLIENTI_PREV;

	INSERT INTO [C6Mart].[ANAG_CLIENTI_PREV]
           ([RETE]
           ,[COD_FISCALE]
           ,[STATO_LAVORATIVO]
           ,[PROFESSIONE]
           ,[CAT_PROFESSIONALE]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[RETRIB_LORDA]
           ,[PROFESSIONE_SEC]
           ,[CAT_PROFESSIONALE_SEC]
           ,[DATA_INIZIO_SEC]
           ,[DATA_FINE_SEC]
           ,[RETRIB_LORDA_SEC]
           ,[PROFESSIONE_PREC]
           ,[CAT_PROFESSIONALE_PREC]
           ,[DATA_INIZIO_PREC]
           ,[DATA_FINE_PREC]
           ,[RETRIB_LORDA_PREC]
           ,[RICONGIUNZIONE]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT 
		SUBSTRING(C6STAGING.ALL_CF_PB.RETE_PB,1,1) AS RETE,
		SUBSTRING(C6STAGING.ALL_CF_PB.CODICE_FISCALE,1,16) AS COD_FISCALE,
		NULL AS  STATO_LAVORATIVO,
		NULL AS  PROFESSIONE,
		NULL AS  CAT_PROFESSIONALE,
		NULL AS  DATA_INIZIO,
		NULL AS  DATA_FINE,
		NULL AS  RETRIB_LORDA,
		NULL AS  PROFESSIONE_SEC,
		NULL AS  CAT_PROFESSIONALE_SEC,
		NULL AS  DATA_INIZIO_SEC,
		NULL AS  DATA_FINE_SEC,
		NULL AS  RETRIB_LORDA_SEC,
		NULL AS  PROFESSIONE_PREC,
		NULL AS  CAT_PROFESSIONALE_PREC,
		NULL AS  DATA_INIZIO_PREC,
		NULL AS  DATA_FINE_PREC,
		NULL AS  RETRIB_LORDA_PREC,
		NULL AS  RICONGIUNZIONE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_CF_PB

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_CONTRATTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CONTRATTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CONTRATTI

	INSERT INTO [C6Mart].[ANAG_CONTRATTI]
		   ([ID_CONTRATTO]
		   ,[RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_PERF]
		   ,[DATA_CHIUSURA]
		   ,[STATO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[TIPO_PRODOTTO]
		   ,[COD_INTERNO]
		   ,[COD_MANDATO]
		   ,[COD_CC]
		   ,[RUBRICATO]
		   ,[CUSTODIA_GAR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		CAST(ROW_NUMBER() OVER (ORDER BY SPB_CONTR_SINTESI.CODICEFISCALE) AS VARCHAR(64)) AS COD_PRODOTTO,
		NULL AS INTERMEDIARIO,
		SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_SOTTOSCRIZIONE,
		NULL AS DATA_PERF,
		NULL AS DATA_CHIUSURA,
		SPB_CONTR_SINTESI.CODICESTATO AS STATO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		NULL AS COD_MANDATO,
		SPB_CONTR_SINTESI.CONTO AS COD_CC,
		SPB_CONTR_SINTESI.RUBRICATO AS RUBRICATO,
		SPB_CONTR_SINTESI.CUSTODIAGARANZIA AS CUSTODIA_GAR,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CONTRATTI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_CONTRATTI_ASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CONTRATTI_ASS]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CONTRATTI_ASS',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CONTRATTI_ASS

	INSERT INTO [C6Mart].[ANAG_CONTRATTI_ASS]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[ID_CONTRATTO]
		   ,[TIPO_PRODOTTO]
		   ,[PREMIO]
		   ,[IMPORTO_RATA]
		   ,[FREQ_RATA]
		   ,[IMPORTO_ASSICURATO]
		   ,[DURATA_POLIZZA]
		   ,[ALIQUOTA]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[DATA_APERTURA]
		   ,[DATA_CHIUSURA]
		   ,[INTERMEDIARIO]
		   ,[STATO]
		   ,[DIV_RIFERIMENTO]
		   ,[CAMBIO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,		
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		NULL AS PREMIO,
		NULL AS IMPORTO_RATA,
		NULL AS FREQ_RATA,
		SPB_CONTR_SINTESI.CTV AS IMPORTO_ASSICURATO,
		NULL AS DURATA_POLIZZA,
		NULL AS ALIQUOTA,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE,103) AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		NULL AS INTERMEDIARIO,
		SPB_CONTR_SINTESI.CODICESTATO AS STATO,
		NULL AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI
	WHERE TIPOPRODOTTO LIKE 'AS%' AND NUMEROPOLIZZA <>  '' 

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CONTRATTI_ASS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CONTRATTI_ASS'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_EMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_EMITTENTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT	
	SET @ID_ELAB = C6MART.GETIDELAB()

	TRUNCATE TABLE C6MART.ANAG_EMITTENTI

	INSERT INTO [C6Mart].[ANAG_EMITTENTI]
           ([ID_EMITTENTE]
           ,[DESCRIZIONE]
           ,[NOTE]
           ,[ID_ELAB])
	SELECT DISTINCT
		NULL AS ID_EMITTENTE,
		NULL AS DESCRIZIONE,
		NULL AS NOTE,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGING.ALL_CF_PB
	WHERE 1 = 0

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_PRODOTTI]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PRODOTTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_PRODOTTI
	
	INSERT INTO [C6Mart].[ANAG_PRODOTTI]
		   ([COD_PRODOTTO]
		   ,[COD_ISIN]
		   ,[PAESE]
		   ,[ID_AREA]
		   ,[CAT_PRODOTTO]
		   ,[TIPO_PRODOTTO]
		   ,[DESCR_PRODOTTO]
		   ,[DIV_QUOTAZIONE]
		   ,[DIV_REGOLAMENTO]
		   ,[ID_EMITTENTE]
		   ,[MERCATO_CONTRATT]
		   ,[COD_MAF]
		   ,[RATING]
		   ,[COD_ADEGUATEZZA]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		CATITEMREF.COD_ISIN AS COD_ISIN,
		CATITEMREF.COUNTRY AS PAESE,
		'' AS ID_AREA,
		(SELECT CASE SUBSTRING(CATITEMREF.TYPE$_BCATAL_FC317,64,3)
			WHEN 'Ges' THEN 'Gestito Finanziario'
			WHEN 'Amm' THEN 'Amministrato'
			WHEN 'Ass' THEN 'Assicurativo'
		END) AS CAT_PRODOTTO,
		CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
		CATITEMREF.CATALOGUENAME AS DESCR_PRODOTTO,
		CATITEMREF.PRODUCTCURRENCY AS DIV_QUOTAZIONE,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		CATITEMREF.PIAZZA AS MERCATO_CONTRATT,
		CATITEMREF.COD_MAF AS COD_MAF,
		CATITEMREF.RATOBBLIG AS RATING,
		CATITEMREF.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		CATITEMREF.COD_INTERNO AS COD_INTERNO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.CATITEMREF
	INNER JOIN (
		SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID
		FROM C6STAGING.CATITEMREF
		GROUP BY CATITEMREF.CATALOGUEID
	) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PRODOTTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PRODOTTI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_PRODOTTI_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PRODOTTI_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_PRODOTTI_TERZI

	INSERT INTO [C6Mart].[ANAG_PRODOTTI_TERZI]
		   ([COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[NOME_PRODOTTO]
		   ,[ALBERO_PRODOTTI]
		   ,[COD_ISIN]
		   ,[DESCR_PRODOTTO]
		   ,[DIV_QUOTAZIONE]
		   ,[INTERMEDIARIO]
		   ,[DIV_REGOLAMENTO]
		   ,[ID_EMITTENTE]
		   ,[MERCATO_CONTRATT]
		   ,[PAESE]
		   ,[RATING]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO AS COD_PRODOTTO,
		ALL_PATR_TERZI.CHIAVE_THR AS COD_PRODOTTO_TERZI,
		ALL_PATR_TERZI.NOMEPRODOTTO AS NOME_PRODOTTO,
		ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA AS ALBERO_PRODOTTI, 
		NULL AS COD_ISIN,
		ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO AS DESCR_PRODOTTO,
		NULL AS DIV_QUOTAZIONE,
		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		NULL AS MERCATO_CONTRATT,
		NULL AS PAESE,
		NULL AS RATING,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_PATR_TERZI

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PRODOTTI_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PRODOTTI_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_PROMOTORI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PROMOTORI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_PROMOTORI

	INSERT INTO [C6Mart].[ANAG_PROMOTORI]
		   ([RETE]
		   ,[ID_PROMOTORE]
		   ,[LIVELLO]
		   ,[COD_FISCALE]
		   ,[PARTITA_IVA]
		   ,[COGNOME]
		   ,[NOME]
		   ,[RAG_SOC]
		   ,[DATA_INIZIO]
		   ,[DATA_FINE]
		   ,[INDIRIZZO]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[TEL_RECAPITO]
		   ,[TEL_CELL]
		   ,[E_MAIL]
		   ,[COD_ABI]
		   ,[COD_CAB]
		   ,[COD_CIN]
		   ,[COD_CC]
		   ,[STATO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT DISTINCT
		ADS4WS_PROMOTORI.RETE AS RETE,
		ADS4WS_PROMOTORI.CODICE AS ID_PROMOTORE,
		SPB_NAC.LIVELLONELLAGERARCHIA AS LIVELLO,
		NULL AS COD_FISCALE,
		NULL AS PARTITA_IVA,
		rtrim(ltrim(ADS4WS_PROMOTORI.COGNOME)) AS COGNOME,
		rtrim(ltrim(ADS4WS_PROMOTORI.NOME)) AS NOME,
		NULL AS RAG_SOC,
		CASE WHEN ADS4WS_PROMOTORI.DataInizioCollaborazione=0 THEN  NULL ELSE
		CAST(CAST(ADS4WS_PROMOTORI.DataInizioCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO,
		CASE WHEN ADS4WS_PROMOTORI.DataFineCollaborazione=0 THEN  NULL ELSE
		CAST(CAST(ADS4WS_PROMOTORI.DataFineCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_FINE,		
		rtrim(ltrim(ADS4WS_PROMOTORI.INDIRIZZO)) AS INDIRIZZO,
		rtrim(ltrim(ADS4WS_PROMOTORI.CITTA)) AS LOCALITA,
		rtrim(ltrim(ADS4WS_PROMOTORI.PROVINCIA)) AS PROVINCIA,
		rtrim(ltrim(ADS4WS_PROMOTORI.CAP)) AS CAP,
		NULL AS NAZIONE,
		rtrim(ltrim(ADS4WS_PROMOTORI.prefissotelefono + ADS4WS_PROMOTORI.TelefonoAgenzia1)) AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,
		NULL AS COD_ABI,
		NULL AS COD_CAB,
		NULL AS COD_CIN,
		NULL AS COD_CC,
		--CASE 
		--	WHEN SPB_NAC.CODICEAGENTE IS NULL THEN 'TERMINATO' 
		--	ELSE 
				CASE 
					WHEN PF.RETE IS NULL THEN 'ATTIVO'
					ELSE 'FITTIZIO'
				END
		--END 
		AS STATO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ADS4WS_PROMOTORI ADS4WS_PROMOTORI
	LEFT JOIN C6MART.EMAIL_PB EMAIL_PB
		ON ADS4WS_PROMOTORI.RETE = EMAIL_PB.RETE
		AND ADS4WS_PROMOTORI.CODICE = EMAIL_PB.CODICE
	LEFT JOIN C6STAGING.SPB_NAC SPB_NAC
		ON ADS4WS_PROMOTORI.RETE = SPB_NAC.CODICERETE
		AND ADS4WS_PROMOTORI.CODICE = SPB_NAC.CODICEAGENTE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (ADS4WS_PROMOTORI.CODICE  BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND ADS4WS_PROMOTORI.RETE = PF.RETE
	
WHERE
    ADS4WS_PROMOTORI.STATO = 'A'
	--Aggiunta Valerio non inserisco in anagrafica pb terminati in quanto non hanno il livello 
	and SPB_NAC.CODICEAGENTE is not null
    --AND ADS4WS_PROMOTORI.CODICE NOT IN ('009202')--,'014908')
---eliminato il filtro su '005772' 04/08/2010
---eliminato il filtro su'003064' 12/08/2010
---eliminato il filtro su '010712'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PROMOTORI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PROMOTORI'
		)

END





















GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_SELF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_SELF]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6Mart.GETIDELAB()
	SET @TIPO_ELAB = C6Mart.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_SELF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE [C6Mart].[ANAG_SELF]

	INSERT INTO [C6Mart].[ANAG_SELF]
		(RETE
		,CODFIS
		,CODCONF
		,NOMEPRODOTTO
		,CTV
		,DATASOTT
		,[ID_ELAB]
		,[TIPO_ELAB]
		,CodInterno
		,CodSottoprodotto)
	SELECT
		SPB.RETE
		,SPB.CODICEFISCALE
		,SPB.CODICECONTRATTO
		,CAT.NomeProdotto
		,SPB.CTV
		,SPB.DATADISOTTOSCRIZIONE
		,@ID_ELAB AS ID_ELAB
		,@TIPO_ELAB AS TIPO_ELAB
		,CodInterno
		,CodSottoprodotto
	FROM 
		C6Staging.SPB_CONTR_SINTESI SPB
	inner join C6Staging.RP_CatalogoProdotti CAT
	on SPB.isin = CAT.codisin and CAT.visibilita = 1
	-- aggiunta il 17/12/2018 per gestire l'ambiguità tra GP e FO a parità di Isin
	and SPB.CodiceInterno = CAT.CodInterno
	-- fine modifica
	WHERE isin in('EURO00000009', 'EURO10000007')

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_SELF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_SELF'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_SELF_20181129_PreMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_SELF_20181129_PreMioFoglio]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6Mart.GETIDELAB()
	SET @TIPO_ELAB = C6Mart.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_SELF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE [C6Mart].[ANAG_SELF]

	INSERT INTO [C6Mart].[ANAG_SELF]
		(RETE
		,CODFIS
		,CODCONF
		,NOMEPRODOTTO
		,CTV
		,DATASOTT
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		SPB.RETE
		,SPB.CODICEFISCALE
		,SPB.CODICECONTRATTO
		,CAT.NomeProdotto
		,SPB.CTV
		,SPB.DATADISOTTOSCRIZIONE
		,@ID_ELAB AS ID_ELAB
		,@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6Staging.SPB_CONTR_SINTESI SPB
	inner join C6Staging.RP_CatalogoProdotti CAT
	on SPB.isin = CAT.codisin and CAT.visibilita = 1
		
	WHERE isin in('EURO00000009', 'EURO10000007')

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_SELF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_SELF'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ANAG_SELF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_SELF_BK_eligoTitoli]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6Mart.GETIDELAB()
	SET @TIPO_ELAB = C6Mart.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_SELF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE [C6Mart].[ANAG_SELF]

	INSERT INTO [C6Mart].[ANAG_SELF]
		(RETE
		,CODFIS
		,CODCONF
		,CTV
		,DATASOTT
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		RETE
		,CODICEFISCALE
		,CODICECONTRATTO
		,CTV
		,DATADISOTTOSCRIZIONE
		,@ID_ELAB AS ID_ELAB
		,@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6Staging.SPB_CONTR_SINTESI
	WHERE isin = 'EURO00000009'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_SELF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_SELF'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_AREA_BISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_AREA_BISOGNO]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT	

	SET @ID_ELAB = C6MART.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_AREA_BISOGNO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	 DELETE FROM [C6Mart].[AREA_BISOGNO] --truncate

	INSERT INTO [C6Mart].[AREA_BISOGNO] --insert from CONSUNI, avoiding staging
	select *, 58 from CONSUNI.[CatalogoProdotti].dbo.NeedArea

	--TRUNCATE TABLE C6MART.AREA_BISOGNO

	--INSERT INTO [C6Mart].[AREA_BISOGNO]
	--	   ([ID_AREA]
	--	   ,[NOME_AREA]
	--	   ,[ORDINAMENTO]
	--	   ,[ID_ELAB])
	--SELECT 
	--	LTRIM(RTRIM(NEEDAREA.OID_)) AS ID_AREA,
	--	LTRIM(RTRIM(NEEDAREA.AREANAME)) AS NOME_AREA,
	--	NEEDAREA.AREASORTORDER AS ORDINAMENTO,
	--	@ID_ELAB AS ID_ELAB
	--FROM C6STAGING.NEEDAREA
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_AREA_BISOGNO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_AREA_BISOGNO'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ASSET_PERC]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSET_PERC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSET_PERC

	INSERT INTO [C6Mart].[ASSET_PERC]
		   ([COD_PRODOTTO]
		   ,[ID_ASSETCLASS]
		   ,[COD_ISIN]
		   ,[COD_MAF]
		   ,[COD_INTERNO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[LIVELLO]
		   ,[PERC]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT DISTINCT
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		LTRIM(RTRIM(ACBDENTRY.F_OID__PASSE_B8A1E)) AS ID_ASSETCLASS, 
		CATITEMREF.COD_ISIN AS COD_ISIN,
		CATITEMREF.COD_MAF AS COD_MAF,
		CATITEMREF.COD_INTERNO AS COD_INTERNO,
		CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		LTRIM(RTRIM(ASSETCLASS.ASSETCLASSLEV)) AS LIVELLO,
		LTRIM(RTRIM(ACBDENTRY.BDPERCENTAGE)) AS PERC, 
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6STAGING.CATITEMREF
	INNER JOIN C6STAGING.INSTRBDS
		ON INSTRBDS.F_OID__PCATA_5DDA6 = CATITEMREF.OID$
	INNER JOIN C6STAGING.ACBDENTRY
		ON ACBDENTRY.F_PINSTRUMEN_FBCDE = INSTRBDS.OID_
	INNER JOIN C6STAGING.ASSETCLASS
		ON ASSETCLASS.OID_ = ACBDENTRY.F_OID__PASSE_B8A1E
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSET_PERC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSET_PERC'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ASSET_PERC_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSET_PERC_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSET_PERC_TERZI

	INSERT INTO [C6Mart].[ASSET_PERC_TERZI]
           ([COD_PRODOTTO_TERZI]
           ,[ID_ASSETCLASS]
           ,[LIVELLO]
           ,[NOME_PRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[PERC]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		PATR_TP.CHIAVE_THR AS COD_PRODOTTO_TERZI,
		ASS.OID_ AS ID_ASSETCLASS,
		ASS.ASSETCLASSLEV AS LIVELLO,
		PATR_TP.NOMEPRODOTTO AS NOME_PRODOTTO,
		ALBERO.ALBERO_GERARCHIA_3 AS TIPO_PRODOTTO,
		ACB.BDPERCENTAGE AS PERC,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6STAGING.ALL_PATR_TERZI PATR_TP,
		C6STAGING.ACBDENOTH ACB,
		C6STAGING.ASSETCLASS ASS,
		C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 ALBERO
	WHERE 1 = 1
		AND PATR_TP.CHIAVE_FNC IS NOT NULL
		AND ALBERO.DESCRIZIONE_ORIGINALE = PATR_TP.DESCRIZIONE_ALBERATURA
		AND ACB.F_PFINANCIAL_815C0 = PATR_TP.CHIAVE_FNC
		AND ACB.F_OID__PASSE_CDF1A = ASS.OID_
		AND ASS.ASSETCLASSLEV IN (1,2)
		AND PATR_TP.PRODOTTO_IN_CATALOGO IS NULL
	GROUP BY
		PATR_TP.CHIAVE_THR,
		PATR_TP.NOMEPRODOTTO, 
		ASS.OID_, 
		ASS.ASSETCLASSLEV,
		ALBERO.ALBERO_GERARCHIA_3,
		ACB.BDPERCENTAGE,
		ACB.OID_
	ORDER BY 2,4
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSET_PERC_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSET_PERC_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ASSETCLASS]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MART.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSETCLASS',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSETCLASS

	INSERT INTO [C6Mart].[ASSETCLASS]
		   ([ID_ASSETCLASS]
		   ,[DESCRIZIONE]
		   ,[LIVELLO]
		   ,[ORDINAMENTO]
		   ,[ID_ELAB])
	SELECT 
		LTRIM(RTRIM(ASSETCLASS.OID_)) AS ID_ASSETCLASS,
		LTRIM(RTRIM(ASSETCLASS.ASSETCLASSDESCR)) AS DESCRIZIONE,
		ASSETCLASS.ASSETCLASSLEV AS LIVELLO,
		ASSETCLASS.ORDINE AS ORDINAMENTO,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGING.ASSETCLASS
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSETCLASS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSETCLASS'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ASSETCLASS_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSETCLASS_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSETCLASS_TERZI
	
	INSERT INTO [C6Mart].[ASSETCLASS_TERZI]
		   ([ID_ASSETCLASS]
		   ,[COD_ISIN]
		   ,[COD_MAF]
		   ,[COD_ADEGUATEZZA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		LTRIM(RTRIM(ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO)) AS ID_ASSETCLASS,
		LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN,'$'))) AS COD_ISIN,
		LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF,'$'))) AS COD_MAF,
		LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA,'$'))) AS COD_ADEGUATEZZA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_ASSET_CLASS_PER_PROMET
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSETCLASS_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSETCLASS_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_CATEGORIE_PRODOTTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_CATEGORIE_PRODOTTO]
AS
BEGIN

	SET NOCOUNT ON;
	DECLARE @righe INT
	SET @righe = 0

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CATEGORIE_PRODOTTO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.CATEGORIE_PRODOTTO;

	INSERT INTO C6Mart.CATEGORIE_PRODOTTO(CAT_PRODOTTO,DESCRIZIONE,ORDINAMENTO)
	VALUES('Ges','Gestito finanziario',1);
	SET @righe = @righe + 1

	INSERT INTO C6Mart.CATEGORIE_PRODOTTO(CAT_PRODOTTO,DESCRIZIONE,ORDINAMENTO)
	VALUES('Ass','Gestito assicurativo previdenziale',2);
	SET @righe = @righe + 1

	INSERT INTO C6Mart.CATEGORIE_PRODOTTO(CAT_PRODOTTO,DESCRIZIONE,ORDINAMENTO)
	VALUES('Amm','Amministrato',3);
	SET @righe = @righe + 1
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @righe
	WHERE
		Nome = 'DM_CATEGORIE_PRODOTTO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CATEGORIE_PRODOTTO'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_CLIENTI_NON_MIGRATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_CLIENTI_NON_MIGRATI]
AS
BEGIN
	SELECT     RETE, COD_FISCALE, ID_PROMOTORE
	FROM         C6Mart.ANAG_CLIENTI
	WHERE     (NOME IS NULL OR NOME = '') AND (COGNOME IS NULL OR COGNOME = '')
END

GO
/****** Object:  StoredProcedure [C6Mart].[DM_CODIFICA_CREDITRISK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Valerio Colaianni
-- Create date: 17 marzo 2009

-- =============================================
CREATE procedure [C6Mart].[DM_CODIFICA_CREDITRISK]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6Mart.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CODIFICA_CREDITRISK',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6Mart.CODIFICA_CREDITRISK

	INSERT INTO C6Mart.[CODIFICA_CREDITRISK]
           ([PROFILO]
           ,[DESCRIZIONE]
           ,[MIN_VAL]
           ,[MAX_VAL]
           ,[ID_ELAB])
	SELECT 
		COD,
		DESCR,
		MINVAL,
		MAXVAL,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGING.RISKCLASS
	

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'CODIFICA_CREDITRISK' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'CODIFICA_CREDITRISK'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[DM_CODIFICA_PIRAMIDI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_CODIFICA_PIRAMIDI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT	
	SET @ID_ELAB = C6MART.GETIDELAB()

	TRUNCATE TABLE C6MART.CODIFICA_PIRAMIDI

	INSERT INTO [C6Mart].[CODIFICA_PIRAMIDI]
           ([ID_PIRAMIDE]
           ,[DESCRIZIONE]
           ,[NOTE]
           ,[ID_ELAB])
	SELECT 
		NULL AS ID_PIRAMIDE,
		NULL AS DESCRIZIONE,
		NULL AS NOTE,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGING.CATITEMREF
	WHERE 1=0

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 24/11/2008
-- Description:	NOTA BENE: I JOIN NON DOVREBBERO MAI ESSERE FATTI COME SOTTO, TRATTASI DI WORK AROUND
-- =============================================
CREATE procedure [C6Mart].[DM_CODIFICA_RISCHIO]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MART.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CODIFICA_RISCHIO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.CODIFICA_RISCHIO

	INSERT INTO [C6Mart].[CODIFICA_RISCHIO]
		   ([PROFILO]
		   ,[DESCRIZIONE]
		   ,[MIN_VAR]
		   ,[MAX_VAR]
		   ,[ID_ELAB])
	SELECT 
		SPB_PROF_RISCHIO.CODICEPROFILO AS PROFILO,
		SPB_PROF_RISCHIO.DESCRIZIONEPROFILO AS DESCRIZIONE,
		ISNULL(SPB_MIN.VARTRIMESTRALE,-0.01) + 0.01 AS MIN_VAR,
		SPB_PROF_RISCHIO.VARTRIMESTRALE AS MAX_VAR,
		@ID_ELAB AS ID_ELAB
	FROM 
		C6STAGING.SPB_PROF_RISCHIO
	LEFT JOIN 
		C6STAGING.SPB_PROF_RISCHIO SPB_MIN 
		ON 
			SPB_MIN.CODICEPROFILO + 1 = SPB_PROF_RISCHIO.CODICEPROFILO
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CODIFICA_RISCHIO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CODIFICA_RISCHIO'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_CREA_POSITIONID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- AUTHOR:		<ALESSANDRO TRINGALI,,NAME>
-- CREATE DATE:  10/05/2010
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_CREA_POSITIONID]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CREA_POSITIONID',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	UPDATE    
C6Staging.SPB_CONTR_SINTESI

	SET       
		POSITIONID = 
             [C6STAGING].[INFO_DAPRODOTTOCSACATALOGO] --DBO.INFO_DAPRODOTTOCSACATALOGO
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				--V ISIN per ASU2
				ISNULL(ISIN,''), 
				CODICESOTTOPRODOTTO
				) 
		--END
        + 
			DBO.CREA_POSITIONID
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				'', 
				CODICESOTTOPRODOTTO, 
				CODICECONTRATTO, -- VERIFICARNE LA CORRETTEZZA
				NUMEROPOLIZZA, 
				CONTO,
                RUBRICATO, 
				CUSTODIAGARANZIA, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
				END
				)

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CREA_POSITIONID' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CREA_POSITIONID'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[DM_DATI_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_DATI_REPORT]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	TRUNCATE TABLE C6MART.DATI_REPORT

	INSERT INTO [C6Mart].[DATI_REPORT]
           ([RETE]
           ,[COD_FISCALE]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[FLAG_REPORT]
           ,[REPORT_DIAGN]
           ,[REPORT_MONIT]
           ,[DATA_REPORT]
           ,[REPORT_FREQ]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
     SELECT 
		NULL AS RETE,
		NULL AS COD_FISCALE,
		NULL AS INDIRIZZO,
		NULL AS LOCALITA,
		NULL AS PROVINCIA,
		NULL AS CAP,
		NULL AS NAZIONE,
		NULL AS FLAG_REPORT,
		NULL AS REPORT_DIAGN,
		NULL AS REPORT_MONIT,
		NULL AS DATA_REPORT,
		NULL AS REPORT_FREQ,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.CATITEMREF
	WHERE 1=0

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_DETTAGLIO_ASUL]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_DETTAGLIO_ASUL',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.DETTAGLIO_ASUL

	INSERT INTO [C6Mart].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		ISNULL(
			dbo.Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPOPRODOTTO, SPB_ASS_UNIT.CODICEINTERNO, SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE, SPB_ASS_UNIT.CODICEISINSOTTOSTANTE, SPB_ASS_UNIT.CODICESOTTOPRODOTTO), 
			SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODICECONTRATTO AS ID_CONTRATTO,
		SPB_ASS_UNIT.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODICEINTERNO AS COD_INTERNO,
		SPB_ASS_UNIT.CONTROVALORE AS CTV,
		SPB_ASS_UNIT.DATADIRIFERIMENTO AS DATA_RIF,
		SPB_ASS_UNIT.ISINFITTIZIO AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.CODICEISINSOTTOSTANTE AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6STAGING.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGING.SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODICECONTRATTO = SPB_ASS_UNIT.CODICECONTRATTO 
	LEFT OUTER JOIN
		C6STAGING.RP_CATALOGOPRODOTTI CAT
		ON SPB_ASS_UNIT.CODICEINTERNO = CAT.CODINTERNO 
		AND SPB_ASS_UNIT.CODICESOTTOPRODOTTO = CAT.CODSOTTOPRODOTTO 
        AND VISIBILITA=1 
		AND (SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = ''and codisin='$' OR (
			SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = CAT.CODADEGUATEZZA AND 
			SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE = CAT.CODMAF
			)
		)
		/*
		C6STAGING.CATITEMREF 
		ON SPB_ASS_UNIT.CODICEINTERNO = CATITEMREF.COD_INTERNO 
		AND SPB_ASS_UNIT.CODICESOTTOPRODOTTO = CATITEMREF.COD_SOTTOPRODOTTO 
        AND isvisible=1 
		AND (SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = ''and cod_isin='$' OR (
			SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = CATITEMREF.COD_ADEGUATEZZA AND 
			SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE = CATITEMREF.COD_MAF
			)
		)*/
	WHERE 
		SPB_CONTR_SINTESI.CTV <> 0


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_DETTAGLIO_ASUL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_DETTAGLIO_ASUL'
		)

END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_EMAIL_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 26 gennaio 2009
-- Description:	Recupera PB, RM, DM, AM le cui email non sono ancora valorizzate.
-- =============================================
CREATE procedure [C6Mart].[DM_EMAIL_PB]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_EMAIL_PB',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	SELECT DISTINCT
		CODICI_PB.RETE AS RETE, 
		CODICI_PB.CODICE AS CODICE,
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' ELSE 'P' END) AS PREFISSO,
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' ELSE 'P' END) + CODICI_PB.CODICE AS FIRMA
--,
--		CODICI_PB.LIVELLO AS LIVELLO,
--		CODICI_PB.LIV_ORD AS LIV_ORD
	FROM
	(	
		SELECT STRUTTURA.RETE, STRUTTURA.PB CODICE--, 'PB' as LIVELLO, 1 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.RM CODICE--, 'RM' as LIVELLO, 2 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.DM CODICE--, 'DM' as LIVELLO, 3 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.AM CODICE--, 'AM' as LIVELLO, 4 AS LIV_ORD
		FROM C6MART.CONTRATTOSEI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

	) CODICI_PB
	LEFT JOIN C6MART.EMAIL_PB EMAIL_PB_ESISTENTI
		ON EMAIL_PB_ESISTENTI.RETE = CODICI_PB.RETE
		AND EMAIL_PB_ESISTENTI.CODICE = CODICI_PB.CODICE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (CODICI_PB.CODICE BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND CODICI_PB.RETE = PF.RETE
	WHERE EMAIL_PB_ESISTENTI.EMAIL IS NULL 
		AND PF.RETE IS NULL
--togliere
	--and CODICI_PB.CODICE not in ('010712','015115','015117','015091','015182','006167','015125','015126','015185','006154','006200') 
and CODICI_PB.CODICE not in ('015185') 
---eliminato il filtro '010712'
---eliminato il filtro su '015089'--,'015163', 12/08
	--ORDER BY CODICI_PB.LIV_ORD

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_EMAIL_PB' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_EMAIL_PB'
		)
END














GO
/****** Object:  StoredProcedure [C6Mart].[DM_ESITI_CARICAMENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ESITI_CARICAMENTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MART.GETIDELAB()

	TRUNCATE TABLE C6MART.ESITI_CARICAMENTI

	INSERT INTO [C6Mart].[ESITI_CARICAMENTI]
           ([PROGR]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[ESITO]
           ,[NOTE]
           ,[ID_ELAB])
	SELECT 
		NULL AS PROGR,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS ESITO,
		NULL AS NOTE,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGING.CATITEMREF
	WHERE 1=0

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_GER_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_GER_PROMOTORI]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MART.GETIDELAB()

    -- Insert statements for procedure here
	TRUNCATE TABLE C6MART.GER_PROMOTORI

	SELECT DISTINCT

---- INFO TABELLA PER GESTIONE ERRORE
--		'GER_PROMOTORI' AS TABLENAME,
--		'RETE - ID_PROMOTORE' AS KEYCOLUMN,
--		SPB_NAC.CODICERETE + ' - ' + SPB_NAC.CODICEAGENTE AS KEYVALUE,
---- FINE INFO TABELLA PER GESTIONE ERRORE

		SPB_NAC.CODICERETE AS RETE,
		SPB_NAC.CODICEAGENTE AS ID_PROMOTORE,
		SPB_NAC.LIVELLONELLAGERARCHIA AS LIVELLO,
		SPB_NAC.CODICEMANAGER AS ID_MANAGER,
		SPB_NAC.SUBORDINATI AS  SUBORDINATI,
		@ID_ELAB AS ID_ELAB,
		'D' AS TIPO_ELAB
	FROM C6STAGING.SPB_NAC

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_GestioneEmail]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6Mart].[DM_GestioneEmail] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	PERFEZIONAMENTO;
--	MANCATA MIGRAZIONE;
--	REINVIO SOLLECITO MANCATA MIGRAZIONE.

--LA GESTIONE DELLE EMAIL PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO O
--PER REINVIO DEL SOLLECITO PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO 
--VIENE FATTA DOPO L'ALLINEAMENTO CON I DATI DEL SIMPB

	
--ESTRAZIONE EMAIL PERFEZIONAMENTO
--TIPO EMAIL: "PERF"
--L'EMAIL VIENE INVIATA PER TUTTI I CLIENTI CHE HANNO DATA DI PERFEZIONAMENTO VALORIZZATA
--IL CONTROLLO SULLA DATA DI GENERAZIONE >= DELLA DATA DI PERFEZIONAMENTO E' DOVUTO AL
--FATTO CHE IL CONTRATTO PUO` ESSERE CHIUSO E RIAPERTO ED IN QUESTO CASO LA MAIL DI PERFEZIONAMENTO
--DEVE ESSERE REINVIATA

-- EMAIL DI ADESIONE AL SERVIZIO SEI
-- TIPO EMAIL 'PERF'
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmail',
	GETDATE(),
	'Elaborazione giornaliera'
)
--1. INSERIMENTO MAIL DI "PERFEZIONAMENTO"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- NON PRESENTI SU GESTIONE_EMAIL

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione, ID_ELAB)
SELECT 
	C6.Rete,
	C6.Cod_Fiscale,
	'PERF' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.ContrattoSEI C6
LEFT JOIN C6Mart.GESTIONE_EMAIL EMAIL
	ON C6.RETE = EMAIL.RETE
	AND C6.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF'						
	AND EMAIL.Data_Generazione >= C6.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND C6.RETE = PF.RETE
WHERE 1 = 1
	--AND C6.InvioBenvenuto = 'N'
	AND C6.Data_FineAvanzato IS NULL
	--AND C6.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	
		
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GestioneEmail' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GestioneEmail'
	)

INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmail',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 2. INSERIMENTO MAIL "SOLLECITI"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE
-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT 
	C6.rete,
	C6.cod_fiscale,
	CASE 
		WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOMIG'
		WHEN numSolleciti = 1 THEN '2_SOLL_NOMIG'
		WHEN numSolleciti = 2 THEN '3_SOLL_NOMIG'
		ELSE 'S_SOLL_NOMIG'
	END as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM c6mart.contrattosei C6 
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND C6.RETE = PF.RETE
WHERE 1 = 1
	AND numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(numSolleciti,0) = 0 AND DATEDIFF(DAY,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(C6.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND c6.clienteMigrato = 'N'
	AND c6.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
	AND C6.Data_FineAvanzato IS NULL
	--AND C6.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
		
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GestioneEmail' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GestioneEmail'
	)

INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmail',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
-- AUMENTIAMO IL NUMERO numSolleciti
-- AGGIORNIAMO LA DATA Data_UltimoSollecito

UPDATE 
	c6mart.contrattosei
SET 
	numSolleciti = isnull(numSolleciti,0) + 1,
	Data_UltimoSollecito = getDate()
FROM c6mart.contrattosei C6 
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND C6.RETE = PF.RETE
WHERE 1 = 1
	AND numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(numSolleciti,0) = 0 AND DATEDIFF(DAY,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(C6.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND c6.clienteMigrato = 'N'
	AND c6.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
	AND C6.Data_FineAvanzato IS NULL
	--AND C6.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
		
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GestioneEmail' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GestioneEmail'
	)

INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmail',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 3. INSERIMENTO MAIL "REVOCA"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE DOPO @MaxInvioSoll SOLLECITI
-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.clienteMigrato = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
--		OVVERO: BUONA LA MIGRAZIONE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT  
	email.rete,
	email.cod_fiscale,
	'REVOCA_NOMIG' as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB --max(Data_Generazione)
FROM c6mart.contrattosei c6 
INNER JOIN c6mart.gestione_Email EMAIL
	ON C6.RETE = EMAIL.RETE
	AND C6.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND C6.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(numSolleciti = @MaxInvioSoll and C6.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND C6.Data_FineAvanzato IS NULL
	--AND C6.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(C6.Data_UltimaRevoca,C6.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
GROUP BY email.rete, email.cod_fiscale
		
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GestioneEmail' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GestioneEmail'
	)

INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmail',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 3.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
-- AUMENTIAMO IL NUMERO numSolleciti
-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

UPDATE c6mart.contrattosei
SET 
	numRevoche = isnull(numRevoche,0) + 1,
	data_UltimaRevoca = getDate()
FROM c6mart.contrattosei c6 
INNER JOIN c6mart.gestione_Email EMAIL
	ON C6.RETE = EMAIL.RETE
	AND C6.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND C6.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(numSolleciti = @MaxInvioSoll and C6.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND C6.Data_FineAvanzato IS NULL
	--AND C6.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(C6.Data_UltimaRevoca,C6.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
		
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GestioneEmail' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GestioneEmail'
	)
COMMIT

END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_GestioneEmailNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <17/11/2008,,>
-- Description:	<Popola la tabella email con i clienti a cui deve essere inviato il report con risorse non associate,,>
-- =============================================
CREATE procedure [C6Mart].[DM_GestioneEmailNA]
AS
BEGIN

BEGIN TRANSACTION	

DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)
SET @ID_ELAB = C6MART.GETIDELAB()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmailNA',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 1. INSERIMENTO MAIL "SOLLECITI"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ASSOCIAZIONE DELLE RISORSE
	-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF
		
	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		C6.rete,
		C6.cod_fiscale,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOASS'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOASS'
			ELSE 'S_SOLL_NOASS'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM c6mart.contrattosei C6 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(numSolleciti,0) = 0 AND DATEDIFF(DAY,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(C6.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND c6.clienteMigrato = 'S' 
		AND c6.risorseNA = 'S'
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 1.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- AGGIORNIAMO LA DATA Data_UltimoSollecito

	UPDATE 
		c6mart.contrattosei
	SET 
		numSolleciti = isnull(numSolleciti,0) + 1,
		Data_UltimoSollecito = getDate()
	FROM c6mart.contrattosei C6 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(numSolleciti,0) = 0 AND DATEDIFF(DAY,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(C6.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)
		AND c6.clienteMigrato = 'S' 
		AND c6.risorseNA = 'S'
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 2. INSERIMENTO MAIL "REVOCA"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ASSOCIAZIONE DELLE RISORSE DOPO @MaxInvioSoll SOLLECITI
	-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.risorseNA = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
	--		OVVERO: BUONA L'ASSOCIAZIONE DELLE RISORSE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOASS' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB --max(Data_Generazione)
	FROM c6mart.contrattosei c6 
	INNER JOIN c6mart.gestione_Email EMAIL
		ON C6.RETE = EMAIL.RETE
		AND C6.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(numSolleciti = @MaxInvioSoll and C6.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(C6.Data_UltimaRevoca,C6.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
	GROUP BY email.rete, email.cod_fiscale
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
	-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

	UPDATE c6mart.contrattosei
	SET 
		numRevoche = isnull(numRevoche,0) + 1,
		data_UltimaRevoca = getDate()
	FROM c6mart.contrattosei c6 
	INNER JOIN c6mart.gestione_Email EMAIL
		ON C6.RETE = EMAIL.RETE
		AND C6.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(numSolleciti = @MaxInvioSoll and C6.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(C6.Data_UltimaRevoca,C6.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNA'
		)

COMMIT

END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_GestioneEmailNOPRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Valerio,,Name>
-- Create date: <19/14/2011,,> -1 ai -2!
-- Description:	<Popola la tabella email con i clienti con profilo scaduto>
-- =============================================
CREATE procedure [C6Mart].[DM_GestioneEmailNOPRO]
AS
BEGIN

BEGIN TRANSACTION	

DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)
SET @ID_ELAB = C6MART.GETIDELAB()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GestioneEmailNOPRO',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 1. INSERIMENTO MAIL "SOLLECITI"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA ATTIVATO UN PROFILO VALIDO AL CLIENTE
	-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF
		
	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		C6.rete,
		C6.cod_fiscale,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOPRO'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOPRO'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOPRO'
			ELSE 'S_SOLL_NOPRO'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM c6mart.contrattosei C6 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(numSolleciti,0) = 0 AND DATEDIFF(DAY,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(C6.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND c6.clienteMigrato = 'S' 
		AND c6.risorseNA = 'N'
		AND c6.profiloAttivo = 0
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 1.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- AGGIORNIAMO LA DATA Data_UltimoSollecito

	UPDATE 
		c6mart.contrattosei
	SET 
		numSolleciti = isnull(numSolleciti,0) + 1,
		Data_UltimoSollecito = getDate()
	FROM c6mart.contrattosei C6 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(numSolleciti,0) = 0 AND DATEDIFF(DAY,C6.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(C6.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)
		AND c6.clienteMigrato = 'S' 
		AND c6.risorseNA = 'N'
		AND c6.profiloAttivo = 0
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 2. INSERIMENTO MAIL "REVOCA"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ATTIVAZIONE DEL PROFILO @MaxInvioSoll SOLLECITI
	-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.risorseNA = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
	--		OVVERO: BUONA L'ASSOCIAZIONE DELLE RISORSE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOPRO' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB --max(Data_Generazione)
	FROM c6mart.contrattosei c6 
	INNER JOIN c6mart.gestione_Email EMAIL
		ON C6.RETE = EMAIL.RETE
		AND C6.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOPRO','REVOCA_NOPRO')	
		AND (
				(numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(numSolleciti = @MaxInvioSoll and C6.profiloAttivo = 0)-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(C6.Data_UltimaRevoca,C6.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
	GROUP BY email.rete, email.cod_fiscale
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
	-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

	UPDATE c6mart.contrattosei
	SET 
		numRevoche = isnull(numRevoche,0) + 1,
		data_UltimaRevoca = getDate()
	FROM c6mart.contrattosei c6 
	INNER JOIN c6mart.gestione_Email EMAIL
		ON C6.RETE = EMAIL.RETE
		AND C6.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOPRO','REVOCA_NOPRO')	
		AND (
				(numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(numSolleciti = @MaxInvioSoll and C6.profiloAttivo = 0)-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND C6.Data_FineAvanzato IS NULL
		--AND C6.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(C6.Data_UltimaRevoca,C6.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_GestioneEmailNOPRO'
		)

COMMIT

END





GO
/****** Object:  StoredProcedure [C6Mart].[DM_MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 24/11/2008
-- Description:	Aggiunta chiave primaria autoincrement su tabella di staging 
--				per eliminazione duplicati.
-- =============================================
CREATE procedure [C6Mart].[DM_MIFID]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MIFID',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.MIFID

	INSERT INTO [C6Mart].[MIFID]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COMPILAZIONE]
		   ,[PROFILO_ASS]
		   ,[PROFILO_CALC]
		   ,[DATA_INIZIO_VAL]
		   ,[DATA_FINE_VAL]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
           ,[RISKCLASS]
           ,[EXPERIENCE]
		   ,[SCADUTO]
		   ,[COMPLESSITA]
		    ,[CSP]
           ,[IMPORTOSPESA]
          ,[IMPORTORISERVA]
          ,[PERCLUNGOPERIODO]
          ,[ESIGENZEASS]
		   )
	
	-- modifica del 4/10/2018 per gestire l'errore dovuto ad un cliente duplicato sulla C6STAGING.SPB_MIFID MIFID
			--SELECT
		SELECT DISTINCT
	-- fine modifica del 4/10/2018
		MIFID.RETE AS RETE, 
		MIFID.CODICEFISCALE AS COD_FISCALE, 
		NULL AS COMPILAZIONE, 
		MIFID.CODICEPROFILOASSEGNATO AS PROFILO_ASS, 
		NULL AS PROFILO_CALC, 
		MIFID.DATAINIZIOVALIDITA AS DATA_INIZIO_VAL, 
		MIFID.DATAFINEVALIDITA AS DATA_FINE_VAL,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
        RISK.CODICECLASSERC,
        EXPERIENCE,
		CASE 
			--WHEN datediff(dd,DATAINIZIOVALIDITA,getdate())/365.25<3 THEN 0
			WHEN DATAFINEVALIDITA >= getdate() THEN 0
			ELSE 1
		END AS SCADUTO,
	   MIFID.[COMPLESSITA]
	  ,MIFID.[CSP]
      ,MIFID.[IMPORTOSPESA]
      ,MIFID.[IMPORTORISERVA]
      ,MIFID.[PERCLUNGOPERIODO]
      ,MIFID.[ESIGENZEASS]
		
        FROM C6STAGING.SPB_MIFID MIFID JOIN
		 C6STAGING.SPB_PROF_RISCHIO RISK
		 ON MIFID.CODICEPROFILOASSEGNATO = RISK.CODICEPROFILO
	WHERE MIFID.STATUS in (1) --Se prendo anche lo storico potrei avere duplicazione,2)
--	INNER JOIN ( -- PER ELIMINARE DUPLICAZIONE DATI
--		SELECT SPB_MIFID.RETE, SPB_MIFID.CODICEFISCALE, MAX(OID) AS OID
--		FROM C6STAGING.SPB_MIFID
--		GROUP BY SPB_MIFID.RETE, SPB_MIFID.CODICEFISCALE
--	) DOPPI ON SPB_MIFID.OID = DOPPI.OID
		

-- CONSOLI - UPDATE PER CLIENTI EX BANCA SARA IN ATTESA DELLA SISTEMAZIONE COMPLETA.
/*UPDATE  C6MART.MIFID
SET SCADUTO=0
WHERE
COD_FISCALE in 
(
'BOILSN65T54B354J'
,'FRIVLR69D27H501F'
,'CTLTZN59B49F717O'
,'FNFLSS62L03D612C'
,'FRNGCR42D07G999O'
,'GRMGRL41T17D612L'
,'MTTMND35P14H791O'
,'FCCMRT41A29H501J'
)*/


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MIFID' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MIFID'
		)

END


--select * from c6mart.mifid where scaduto = 1
--
--select * from
--C6STAGING.SPB_MIFID
--where dataInizioValidita < '20080401'



GO
/****** Object:  StoredProcedure [C6Mart].[DM_MIFID_20181004]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 24/11/2008
-- Description:	Aggiunta chiave primaria autoincrement su tabella di staging 
--				per eliminazione duplicati.
-- =============================================
CREATE procedure [C6Mart].[DM_MIFID_20181004]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MIFID',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.MIFID

	INSERT INTO [C6Mart].[MIFID]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COMPILAZIONE]
		   ,[PROFILO_ASS]
		   ,[PROFILO_CALC]
		   ,[DATA_INIZIO_VAL]
		   ,[DATA_FINE_VAL]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
           ,[RISKCLASS]
           ,[EXPERIENCE]
		   ,[SCADUTO])
	SELECT
		MIFID.RETE AS RETE, 
		MIFID.CODICEFISCALE AS COD_FISCALE, 
		MIFID.ACCETTACOMPILAZIONE AS COMPILAZIONE, 
		MIFID.CODICEPROFILOASSEGNATO AS PROFILO_ASS, 
		MIFID.CODICEPROFILOCALCOLATO AS PROFILO_CALC, 
		MIFID.DATAINIZIOVALIDITA AS DATA_INIZIO_VAL, 
		MIFID.DATAFINEVALIDITA AS DATA_FINE_VAL,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
        RISK.CODICECLASSERC,
        EXPERIENCE,
		CASE 
			--WHEN datediff(dd,DATAINIZIOVALIDITA,getdate())/365.25<3 THEN 0
			WHEN DATAFINEVALIDITA >= getdate() THEN 0
			ELSE 1
		END AS SCADUTO
	FROM C6STAGING.SPB_MIFID MIFID JOIN
		 C6STAGING.SPB_PROF_RISCHIO RISK
		 ON MIFID.CODICEPROFILOASSEGNATO = RISK.CODICEPROFILO
	WHERE MIFID.STATUS in (1) --Se prendo anche lo storico potrei avere duplicazione,2)
--	INNER JOIN ( -- PER ELIMINARE DUPLICAZIONE DATI
--		SELECT SPB_MIFID.RETE, SPB_MIFID.CODICEFISCALE, MAX(OID) AS OID
--		FROM C6STAGING.SPB_MIFID
--		GROUP BY SPB_MIFID.RETE, SPB_MIFID.CODICEFISCALE
--	) DOPPI ON SPB_MIFID.OID = DOPPI.OID
		

-- CONSOLI - UPDATE PER CLIENTI EX BANCA SARA IN ATTESA DELLA SISTEMAZIONE COMPLETA.
/*UPDATE  C6MART.MIFID
SET SCADUTO=0
WHERE
COD_FISCALE in 
(
'BOILSN65T54B354J'
,'FRIVLR69D27H501F'
,'CTLTZN59B49F717O'
,'FNFLSS62L03D612C'
,'FRNGCR42D07G999O'
,'GRMGRL41T17D612L'
,'MTTMND35P14H791O'
,'FCCMRT41A29H501J'
)*/


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MIFID' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MIFID'
		)

END


--select * from c6mart.mifid where scaduto = 1
--
--select * from
--C6STAGING.SPB_MIFID
--where dataInizioValidita < '20080401'



GO
/****** Object:  StoredProcedure [C6Mart].[DM_PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PARTITE_VIAGGIANTI]
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PARTITE_VIAGGIANTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

		TRUNCATE TABLE C6MART.PARTITE_VIAGGIANTI

	INSERT INTO C6Mart.PARTITE_VIAGGIANTI
		(RETE
		,COD_FISCALE
		,IMPORTO
		,ID_ELAB
		,TIPO_ELAB)

SELECT 
     RETE,
     COD_FISCALE,
     SUM(IMPORTO) AS IMPORTO,
     @ID_ELAB,
	 @TIPO_ELAB
FROM
(
	SELECT
		SPB_PARTITE_VIAGG.RETE AS RETE,
		SPB_PARTITE_VIAGG.CODICEFISCALE AS COD_FISCALE,
		SUM(IMPORTOVERSATO) AS IMPORTO
	FROM
		C6Staging.SPB_PARTITE_VIAGG
	GROUP BY
		SPB_PARTITE_VIAGG.RETE,
		SPB_PARTITE_VIAGG.CODICEFISCALE

    UNION ALL
--- inserimento partite viaggianti in disinvestimento

	SELECT
		SPB_PARTITE_VIAGG_DISINV.RETE AS RETE,
		SPB_PARTITE_VIAGG_DISINV.CODICEFISCALE AS COD_FISCALE,
		SUM(IMPORTOVERSATO) AS IMPORTO
	FROM
		C6Staging.SPB_PARTITE_VIAGG_DISINV
	GROUP BY
		SPB_PARTITE_VIAGG_DISINV.RETE,
		SPB_PARTITE_VIAGG_DISINV.CODICEFISCALE
) k
GROUP BY 
  RETE,
  COD_FISCALE

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PARTITE_VIAGGIANTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PARTITE_VIAGGIANTI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_AGG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_AGG]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_AGG',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_AGG

	INSERT INTO [C6Mart].[PATRIMONIO_AGG]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[LIQUIDATO]
		   ,[INVESTITO]
		   ,[ID_AREA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		ALL_POS_CONS_CAT.RETE AS RETE,
		ALL_POS_CONS_CAT.CODICE_FISCALE AS COD_FISCALE,
		SUBSTRING(ALL_POS_CONS_CAT.STRINGONA_POS,1,57) AS COD_PRODOTTO,
		ALL_POS_CONS_CAT.C_OUTCTV_B4FB8 AS LIQUIDATO,
		ALL_POS_CONS_CAT.C_RISORSELIQ_DF807 AS INVESTITO,
		ALL_POS_CONS_CAT.NEED_AREA_ABBR_DI_AREA AS ID_AREA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_POS_CONS_CAT
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_AGG' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_AGG'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_ALTRO]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_ALTRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_ALTRO

	INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[QUANTITA]
		   ,[DESCRIZIONE]
		   ,[CTV]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		ALL_PATR_TERZI.NUMEROQUOTE AS QUANTITA,
		SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE,1,50) AS DESCRIZIONE,
		ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_PATR_TERZI
	WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18

	UNION

	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		NULL AS QUANTITA,
		SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,1,50) AS DESCRIZIONE,
		ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_PATR_TERZI
	WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_ALTRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_ALTRO'
		)

END

GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna / Valerio
-- Create date: 10 marzo 2009
-- Description:	
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_BF]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_BF

	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ('DT', 'FI') AND SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO 
			ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		CASE
			WHEN CONSAREA.C_NEEDAREA_V_46360 = 'Inv' AND PRCONSUL.C_PROJECTNAM_11D1A IS NULL THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))
		END AS NOME_PROGETTO,
		--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB_CONTR_SINTESI.QUOTE AS QUANTITA,
		SPB_CONTR_SINTESI.PREZZO AS PREZZO,
		SPB_CONTR_SINTESI.CTV AS CTV,
		SPB_CONTR_SINTESI.VALORE AS CTV_NOMINALE,
		
		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.CVN 
		END AS VERSATO_NETTO,


		SPB_CONTR_SINTESI.PARTVIA AS PARTVIA_DISINV,

		SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,


	
		--SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		



		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE
		END AS REND_SOTTOSCRIZIONE,	
--		SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
		

		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE
		END AS REND_TRIMESTRE,	
--		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,



		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO
		END AS REND_ANNO,	
--		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO AS REND_ANNO,
		KAT.STRTYPE,
        KAT.COMPLEX,
        MIT.DESCR AS EMITTENTE,
		SPB_CONTR_SINTESI.ISIN,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB

	INTO #PATRIMONIO

	FROM C6STAGING.SPB_CONTR_SINTESI
	INNER JOIN C6STAGING.ALL_CF_STATO 
		ON ALL_CF_STATO.RETE = SPB_CONTR_SINTESI.RETE
		AND ALL_CF_STATO.CF_CLIENTE = SPB_CONTR_SINTESI.CODICEFISCALE
		AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale
	INNER JOIN C6STAGING.POSITION 
		ON POSITION.POSITIONID = SPB_CONTR_SINTESI.POSITIONID
	INNER JOIN C6STAGING.CONSUL -- join consarea
		ON CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23
		AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'Attuale'
	INNER JOIN C6STAGING.PRCONSUL 
		ON PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629
	INNER JOIN C6STAGING.CONSAREA
		ON CONSAREA.OID$ = PRCONSUL.F_PCONSULENZ_B69E4
    INNER JOIN C6STAGING.CATITEMREF KAT
    ON 
    KAT.oid$ = POSITION.f_oid__posit_00526
    left outer join  
    C6STAGING.EMIT MIT
    ON KAT.CODEMI = MIT.CODEMI
	/*LEFT JOIN C6STAGING.SPB_PARTITE_VIAGG 
		ON SPB_PARTITE_VIAGG.CODICECONFERIMENTO = SPB_CONTR_SINTESI.CODICECONTRATTO*/
	WHERE SPB_CONTR_SINTESI.POSITIONID IS NOT NULL
          and CONSAREA.C_NEEDAREA_V_46360 <> 'CC' and C6STAGING.SPB_CONTR_SINTESI.TIPOPRODOTTO <> 'CC'

	UNION ALL	-- MODIFICA FATTA PER AVERE I CONTI CORRENTI 26 NOVEMBRE (MAURIZIO)

	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'DT' /* OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'FI' */ THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO 
			ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		NULL AS NOME_PROGETTO,
		CASE WHEN SPB_CONTR_SINTESI.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB_CONTR_SINTESI.QUOTE AS QUANTITA,
		SPB_CONTR_SINTESI.PREZZO AS PREZZO,
		SPB_CONTR_SINTESI.CTV AS CTV,
		SPB_CONTR_SINTESI.VALORE AS CTV_NOMINALE,
		SPB_CONTR_SINTESI.CVN AS VERSATO_NETTO,
		SPB_CONTR_SINTESI.PARTVIA AS PARTVIA_DISINV,
		SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV, --SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
		SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO AS REND_ANNO,
        STRTYPE,
        COMPLEX ,
        mit.descr as EMITTENTE,
		SPB_CONTR_SINTESI.ISIN,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI
    INNER JOIN C6STAGING.CATITEMREF KAT
    ON SUBSTRING(C6STAGING.SPB_CONTR_SINTESI .POSITIONID,1,57)=KAT.CATALOGUEID
        LEFT OUTER JOIN C6STAGING.EMIT MIT
        ON  MIT.CODEMI=KAT.CODEMI
	WHERE C6STAGING.SPB_CONTR_SINTESI.TIPOPRODOTTO = 'CC'
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	INSERT INTO [C6Mart].[PATRIMONIO_BF]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[POSITION_ID]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[COD_STATO]
		   ,[NUM_POLIZZA]
		   ,[COD_MAF]
		   ,[COD_INTERNO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[TIPO_PRODOTTO]
		   ,[NOME_PROGETTO]
		   ,[ID_AREA]
		   ,[DATA_OPERAZIONE]
		   ,[DATA_VALUTA]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[CTV_NOMINALE]
		   ,[VERSATO_NETTO]
		   ,[PARTVIA_DISINV]
		   ,[DATA_PARTVIA_DISINV]
		   ,[PARTVIA_INV]
		   ,[REND_SOTTOSCRIZIONE]
		   ,[REND_TRIMESTRE]
		   ,[REND_ANNO]
           ,STRTYPE
           ,COMPLEX
        ,EMITTENTE
		,SPB_CONTR_SINTESI.ISIN
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		RETE,
		COD_FISCALE,
		POSITIONID,
		COD_PRODOTTO, 
		ID_CONTRATTO,
		DATA_SOTTOSCRIZIONE,
		COD_STATO,
		NUM_POLIZZA,
		COD_MAF,
		COD_INTERNO,
		COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO,
		NOME_PROGETTO,
		ID_AREA,
		DATA_OPERAZIONE,
		DATA_VALUTA,
		DATA_REGOLAMENTO,
		QUANTITA,
		PREZZO,
		CTV,
	    CTV_NOMINALE,
		VERSATO_NETTO,
		PARTVIA_DISINV,
		DATA_PARTVIA_DISINV,
		PARTVIA_INV,
		REND_SOTTOSCRIZIONE,
		REND_TRIMESTRE,
		REND_ANNO,
        STRTYPE,
        COMPLEX,
        EMITTENTE,
		ISIN,
		ID_ELAB,
		TIPO_ELAB
	FROM #PATRIMONIO

	UNION ALL	-- MODIFICA PER AVERE TUTTI I PRODOTTI NON ALLOCATI

	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ('DT', 'FI') AND SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO 
			ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		LTRIM(RTRIM(NEWPOSITION.NOME_PROGETTO)) AS NOME_PROGETTO,
		ISNULL(NEWPOSITION.NEED_BREVE,'Na') AS ID_AREA,
		SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB_CONTR_SINTESI.QUOTE) AS QUANTITA,
		SPB_CONTR_SINTESI.PREZZO AS PREZZO,
		convert(decimal(15,3),SPB_CONTR_SINTESI.CTV) AS CTV,
		convert(decimal(15,3),SPB_CONTR_SINTESI.VALORE) AS CTV_NOMINALE,
		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
			THEN NULL 
			ELSE convert(decimal(15,3),SPB_CONTR_SINTESI.CVN)
		END AS VERSATO_NETTO,
		convert(decimal(15,3),SPB_CONTR_SINTESI.PARTVIA) AS PARTVIA_DISINV,
		SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
		--SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE) AS REND_SOTTOSCRIZIONE,
		convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE) AS REND_TRIMESTRE,
		convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO) AS REND_ANNO,
        STRTYPE,
        COMPLEX,
        EMITTENTE,
		SPB_CONTR_SINTESI.ISIN,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI
	LEFT JOIN #PATRIMONIO PATR
		ON	
			SPB_CONTR_SINTESI.RETE = PATR.RETE
			AND SPB_CONTR_SINTESI.CODICEFISCALE = PATR.COD_FISCALE
			AND SPB_CONTR_SINTESI.POSITIONID = PATR.POSITIONID
	/*LEFT JOIN C6STAGING.SPB_PARTITE_VIAGG 
		ON 
			SPB_PARTITE_VIAGG.CODICECONFERIMENTO = SPB_CONTR_SINTESI.CODICECONTRATTO*/
	LEFT JOIN C6STAGING.vNewPositionProposta NEWPOSITION
		ON	
			SPB_CONTR_SINTESI.RETE = NEWPOSITION.RETE
			AND SPB_CONTR_SINTESI.CODICEFISCALE = NEWPOSITION.CODICEFISCALE
			AND SPB_CONTR_SINTESI.POSITIONID = NEWPOSITION.positionIDProposta
	WHERE SPB_CONTR_SINTESI.POSITIONID IS NOT NULL
		AND PATR.POSITIONID IS NULL


	DROP TABLE #PATRIMONIO
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF'
		)
END



GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_BF_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored Procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 10 marzo 2009
-- Description:	
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_BF_old]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_BF

	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ('DT', 'FI') AND SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO 
			ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		CASE
			WHEN CONSAREA.C_NEEDAREA_V_46360 = 'Inv' AND PRCONSUL.C_PROJECTNAM_11D1A IS NULL THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))
		END AS NOME_PROGETTO,
		--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB_CONTR_SINTESI.QUOTE AS QUANTITA,
		SPB_CONTR_SINTESI.PREZZO AS PREZZO,
		SPB_CONTR_SINTESI.CTV AS CTV,
		SPB_CONTR_SINTESI.VALORE AS CTV_NOMINALE,
		
		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.CVN 
		END AS VERSATO_NETTO,


		SPB_CONTR_SINTESI.PARTVIA AS PARTVIA_DISINV,

		SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,


	
		--SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		



		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE
		END AS REND_SOTTOSCRIZIONE,	
--		SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
		

		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE
		END AS REND_TRIMESTRE,	
--		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,



		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'ASUL' AND SPB_CONTR_SINTESI.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO
		END AS REND_ANNO,	
--		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO AS REND_ANNO,
		KAT.STRTYPE,
        KAT.COMPLEX,
        MIT.DESCR AS EMITTENTE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB

	INTO #PATRIMONIO

	FROM C6STAGING.SPB_CONTR_SINTESI
	INNER JOIN C6STAGING.ALL_CF_STATO 
		ON ALL_CF_STATO.RETE = SPB_CONTR_SINTESI.RETE
		AND ALL_CF_STATO.CF_CLIENTE = SPB_CONTR_SINTESI.CODICEFISCALE
		AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale
	INNER JOIN C6STAGING.POSITION 
		ON POSITION.POSITIONID = SPB_CONTR_SINTESI.POSITIONID
	INNER JOIN C6STAGING.CONSUL -- join consarea
		ON CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23
		AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'Attuale'
	INNER JOIN C6STAGING.PRCONSUL 
		ON PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629
	INNER JOIN C6STAGING.CONSAREA
		ON CONSAREA.OID$ = PRCONSUL.F_PCONSULENZ_B69E4
    INNER JOIN C6STAGING.CATITEMREF KAT
    ON 
    KAT.oid$ = POSITION.f_oid__posit_00526
    left outer join  
    C6STAGING.EMIT MIT
    ON KAT.CODEMI = MIT.CODEMI
	/*LEFT JOIN C6STAGING.SPB_PARTITE_VIAGG 
		ON SPB_PARTITE_VIAGG.CODICECONFERIMENTO = SPB_CONTR_SINTESI.CODICECONTRATTO*/
	WHERE SPB_CONTR_SINTESI.POSITIONID IS NOT NULL
          and CONSAREA.C_NEEDAREA_V_46360 <> 'CC'

	UNION ALL	-- MODIFICA FATTA PER AVERE I CONTI CORRENTI 26 NOVEMBRE (MAURIZIO)

	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO = 'DT' /* OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'FI' */ THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO 
			ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		NULL AS NOME_PROGETTO,
		'Cc' AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB_CONTR_SINTESI.QUOTE AS QUANTITA,
		SPB_CONTR_SINTESI.PREZZO AS PREZZO,
		SPB_CONTR_SINTESI.CTV AS CTV,
		SPB_CONTR_SINTESI.VALORE AS CTV_NOMINALE,
		SPB_CONTR_SINTESI.CVN AS VERSATO_NETTO,
		SPB_CONTR_SINTESI.PARTVIA AS PARTVIA_DISINV,
		SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV, --SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
		SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO AS REND_ANNO,
        STRTYPE,
        COMPLEX ,
        mit.descr as EMITTENTE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI
    INNER JOIN C6STAGING.CATITEMREF KAT
    ON SUBSTRING(C6STAGING.SPB_CONTR_SINTESI .POSITIONID,1,57)=KAT.CATALOGUEID
        LEFT OUTER JOIN C6STAGING.EMIT MIT
        ON  MIT.CODEMI=KAT.CODEMI
	WHERE C6STAGING.SPB_CONTR_SINTESI.TIPOPRODOTTO = 'CC'
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	INSERT INTO [C6Mart].[PATRIMONIO_BF]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[POSITION_ID]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[COD_STATO]
		   ,[NUM_POLIZZA]
		   ,[COD_MAF]
		   ,[COD_INTERNO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[TIPO_PRODOTTO]
		   ,[NOME_PROGETTO]
		   ,[ID_AREA]
		   ,[DATA_OPERAZIONE]
		   ,[DATA_VALUTA]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[CTV_NOMINALE]
		   ,[VERSATO_NETTO]
		   ,[PARTVIA_DISINV]
		   ,[DATA_PARTVIA_DISINV]
		   ,[PARTVIA_INV]
		   ,[REND_SOTTOSCRIZIONE]
		   ,[REND_TRIMESTRE]
		   ,[REND_ANNO]
           ,STRTYPE
           ,COMPLEX
        ,EMITTENTE
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		RETE,
		COD_FISCALE,
		POSITIONID,
		COD_PRODOTTO, 
		ID_CONTRATTO,
		DATA_SOTTOSCRIZIONE,
		COD_STATO,
		NUM_POLIZZA,
		COD_MAF,
		COD_INTERNO,
		COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO,
		NOME_PROGETTO,
		ID_AREA,
		DATA_OPERAZIONE,
		DATA_VALUTA,
		DATA_REGOLAMENTO,
		QUANTITA,
		PREZZO,
		CTV,
	    CTV_NOMINALE,
		VERSATO_NETTO,
		PARTVIA_DISINV,
		DATA_PARTVIA_DISINV,
		PARTVIA_INV,
		REND_SOTTOSCRIZIONE,
		REND_TRIMESTRE,
		REND_ANNO,
        STRTYPE,
        COMPLEX,
        EMITTENTE,
		ID_ELAB,
		TIPO_ELAB
	FROM #PATRIMONIO

	UNION ALL	-- MODIFICA PER AVERE TUTTI I PRODOTTI NON ALLOCATI

	SELECT 
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		SPB_CONTR_SINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(SPB_CONTR_SINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB_CONTR_SINTESI.TIPOPRODOTTO IN ('DT', 'FI') AND SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB_CONTR_SINTESI.DATAINIZIORENDIMENTO 
			ELSE SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB_CONTR_SINTESI.CODICESTATO AS COD_STATO,
		SPB_CONTR_SINTESI.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB_CONTR_SINTESI.CODICEMAF AS COD_MAF,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		LTRIM(RTRIM(NEWPOSITION.NOME_PROGETTO)) AS NOME_PROGETTO,
		ISNULL(NEWPOSITION.NEED_BREVE,'Na') AS ID_AREA,
		SPB_CONTR_SINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB_CONTR_SINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB_CONTR_SINTESI.QUOTE) AS QUANTITA,
		SPB_CONTR_SINTESI.PREZZO AS PREZZO,
		convert(decimal(15,3),SPB_CONTR_SINTESI.CTV) AS CTV,
		convert(decimal(15,3),SPB_CONTR_SINTESI.VALORE) AS CTV_NOMINALE,
		CASE 
			WHEN (SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GE' 
				OR SPB_CONTR_SINTESI.TIPOPRODOTTO = 'GES')
				AND SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
			THEN NULL 
			ELSE convert(decimal(15,3),SPB_CONTR_SINTESI.CVN)
		END AS VERSATO_NETTO,
		convert(decimal(15,3),SPB_CONTR_SINTESI.PARTVIA) AS PARTVIA_DISINV,
		SPB_CONTR_SINTESI.PARTVIAAL AS DATA_PARTVIA_DISINV,
		--SPB_PARTITE_VIAGG.IMPORTOVERSATO AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODASOTTOSCRIZIONE) AS REND_SOTTOSCRIZIONE,
		convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODAINIZIOTRIMESTRE) AS REND_TRIMESTRE,
		convert(decimal(8,5),SPB_CONTR_SINTESI.RENDIMENTODAINIZIOANNO) AS REND_ANNO,
        STRTYPE,
        COMPLEX,
        EMITTENTE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI
	LEFT JOIN #PATRIMONIO PATR
		ON	
			SPB_CONTR_SINTESI.RETE = PATR.RETE
			AND SPB_CONTR_SINTESI.CODICEFISCALE = PATR.COD_FISCALE
			AND SPB_CONTR_SINTESI.POSITIONID = PATR.POSITIONID
	/*LEFT JOIN C6STAGING.SPB_PARTITE_VIAGG 
		ON 
			SPB_PARTITE_VIAGG.CODICECONFERIMENTO = SPB_CONTR_SINTESI.CODICECONTRATTO*/
	LEFT JOIN C6STAGING.vNewPositionProposta NEWPOSITION
		ON	
			SPB_CONTR_SINTESI.RETE = NEWPOSITION.RETE
			AND SPB_CONTR_SINTESI.CODICEFISCALE = NEWPOSITION.CODICEFISCALE
			AND SPB_CONTR_SINTESI.POSITIONID = NEWPOSITION.positionIDProposta
	WHERE SPB_CONTR_SINTESI.POSITIONID IS NOT NULL
		AND PATR.POSITIONID IS NULL


	DROP TABLE #PATRIMONIO
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF'
		)
END





GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_EMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6Mart].[DM_PATRIMONIO_EMITTENTI]


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


	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_EMITTENTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_EMITTENTI
 
INSERT INTO
[C6MART].[PATRIMONIO_EMITTENTI]             
(

COD_FISCALE,
RETE,
POSITION_ID,
COD_PRODOTTO,
COD_ADEGUATEZZA,
INTERMEDIARIO,
CTV_INTERMEDIARIO,
CTV_INTER_NOCC_NEG,
EMITTENTE,
COMPLESSITA,
CTV_EMITTENTE,
CTV_PRODOTTO,
FLG_AZ_OB,
CREDITRISKCLASS,
CTV_AZIONARIO,
CTV_OBBLIGAZIONARIO,
CTV_AZ_OB_EMIT,
CTV_AZ_OB_EMIT_INTER,
CTV_COMPLESSIVO,
CTV_COMPL_NOCC_NEG,
CONC_EMITTENTE,
CONC_EMIT_INTERM,
COPERTURA
)

         SELECT  H.COD_FISCALE,
                H.RETE,
                H.POSITION_ID,
                H.COD_PRODOTTO AS CATALOGUENAME,
                '' AS COD_ADEGUATEZZA,
                'BF'   AS INTERMEDIARIO,
                 sum(h.ctv) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTERMEDIARIO,
			     sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END ) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTER_nocc_neg,
                H.EMITTENTE,
                H.COMPLEX AS COMPLESSITA,
                 sum(h.ctv) over (partition by h.cod_fiscale, H.rete, H.EMITTENTE)  AS PATRIMONIO_EMITTENTE,
                h.ctv as CONTROVALORE_PRODOTTO,
                CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB,
                K.classe AS CREDITRISKCLASS,
                SUM( case when   STRTYPE = 'AZ' then  h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_AZIONARIO,
                SUM(case when   STRTYPE = 'OB' then  h.ctv  else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_OBBLIGAZIONARIO,
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT,
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  h.ctv else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE)  PATRIM_AZ_OB_EMIT_INTER,
                sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO,
                sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPL_nocc_neg,
				0 as concentrazione_emittente,
                0 AS  concentraz_emit_interm,
                r.copertura
      FROM C6MART.PATRIMONIO_BF H
      LEFT OUTER join 
       C6MART.RISCHIO_AGGREGATO    R  
       on
	    H.COD_FISCALE=R.COD_FISCALE
	   AND H.RETE=R.RETE  
	   AND r.COD_AGGREG = 
				CASE 
				WHEN (h.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' + h.NOME_PROGETTO+ '|'
				when LEFT(h.ID_AREA,3)='Na' then 'RISFIN|NA|'
				ELSE 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' 
			END
			+ ltrim(rtrim(h.POSITION_ID))
			
       left outer join 
--       
--select * from c6mart.rischioEmittenti 
--select * from c6mart.rischio_aggregato
C6Mart.RISCHIOEMITTENTI K
       on 
       R.CREDITRISKEMIT=ORDINE

---- PATRIMONIO TERZI
UNION all

SELECT DISTINCT h.COD_FISCALE,
                h.RETE,
                '' AS POSITION_ID,
                H.COD_PRODOTTO AS CATALOGUENAME,
                '' as COD_ADEGUATEZZA,
                CASE
                  WHEN h.INTERMEDIARIO = 'BF' THEN
                   NULL
                  ELSE
                   h.INTERMEDIARIO
                END AS INTERMEDIARIO,
                sum(ROUND(h.CTV,2)) over (partition by h.cod_fiscale, h.rete)  as PATRIMONIO_INTERMEDIARIO,
                sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else ROUND(h.CTV,2) END ) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTER_nocc_neg,
                h.EMITTENTE,
                h.complex as COMPLESSITA,
                0 AS PATRIMONIO_EMITTENTE,
                ROUND(h.CTV,2) as CONTROVALORE_PRODOTTO,
                CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB,
                K.classe AS CREDITRISKCLASS,
                SUM( case when   STRTYPE = 'AZ' then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI) AS CTV_AZIONARIO, --aggiunto il cod_prodotto_terzi per identificare il singolo prodotto
                SUM(case when   STRTYPE = 'OB' then  h.ctv  else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI ) AS CTV_OBBLIGAZIONARIO, --aggiunto il cod_prodotto_terzi per identificare il singolo prodotto
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT,
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE, h.intermediario )  PATRIM_AZ_OB_EMIT_INTER,
                sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO,
				sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete, h.intermediario) as PATRIMONIO_COMPL_nocc_neg,
                0   as concentrazione_emittente,
                0   as concentraz_emit_interm,
                r.copertura
 FROM  
       C6MART.PATRIMONIO_TERZI H
       LEFT OUTER JOIN
       C6MART.RISCHIO_AGGREGATO    R  
       ON
        H.COD_FISCALE=R.COD_FISCALE
       AND H.RETE=R.RETE
       AND r.COD_AGGREG ='COMPLESSIVO|TERZI|' + RTRIM(H.INTERMEDIARIO) + '|' + RTRIM(H.chiave_thr)       
       LEFT OUTER join
       
	   C6Mart.RISCHIOEMITTENTI K
        on 
       R.CREDITRISKEMIT=ORDINE

 WHERE 
   1=1 
   AND H.INTERMEDIARIO <> 'BF'
   --AND V.POSITIONID=H.COD_PRODOTTO
   



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_EMITTENTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_EMITTENTI'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_IMMOBILIARE]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_IMMOBILIARE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_IMMOBILIARE

	INSERT INTO [C6Mart].[PATRIMONIO_IMMOBILIARE]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[DESCRIZIONE]
		   ,[TIPOLOGIA]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[VALORE_STIMATO]
		   ,[AFFITTO]
		   ,[NOTE]
		   ,[DIV_RIFERIMENTO]
		   ,[CAMBIO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
    -- DISTINCT  Atringali 12012010
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE,
		CASE ALL_PATR_TERZI.TIPOLOGIA_RDESCR
			 WHEN 'Civil' THEN 'Civile'
			 WHEN 'Economic' THEN 'Economica'
			 WHEN 'Posh' THEN 'Signorile'
			 ELSE '' 
		END AS TIPOLOGIA,
		ALL_PATR_TERZI.LOCALITA AS LOCALITA,
		NULL AS PROVINCIA,
		NULL AS CAP,
		NULL AS NAZIONE,
		ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE AS VALORE_STIMATO,
		ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO,
		NULL AS NOTE,
		NULL AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_PATR_TERZI
	WHERE ALL_PATR_TERZI.CHIAVE_PR_31921 IS NOT NULL
		--V Dal passaggio in prod del 21/10/2010 su oracle questo campo è sempre null AND ALL_PATR_TERZI.CHIAVE_RDESC IS NOT NULL
		AND ALL_PATR_TERZI.DESCRIZIONE_RDESCR IS NOT NULL 
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_IMMOBILIARE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_IMMOBILIARE'
		)

END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PATRIMONIO_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_TERZI

	INSERT INTO [C6Mart].[PATRIMONIO_TERZI]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[TIPO_POLIZZA]
		   ,[TIPO_PRODOTTO]
		   ,[TIPO_PRODOTTO2]
		   ,[COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_SCADENZA]
		   ,[FREQ_RATA]
		   ,[DURATA_POLIZZA]
		   ,[PREMIO]
		   ,[ALIQUOTA]
		   ,[DATA_SOTT_FP]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[VERSATO_NETTO]
		   ,[DIV_REGOLAMENTO]
		   ,[CAMBIO]
		   ,[DESCR_GRUPPO_PRODOTTO]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
           ,[CHIAVE_THR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE AS TIPO_POLIZZA,
		--COALESCE(PRODOTTI_A_CATALOGO.TIPO_PRODOTTO, PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO) AS TIPO_PRODOTTO,   
		CASE
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'
				THEN 'Altro'
			ELSE
				COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) 
		END AS TIPO_PRODOTTO,
		PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO2 AS TIPO_PRODOTTO2,   
		ISNULL(ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO,'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,
		ISNULL(ALL_PATR_TERZI.CHIAVE_THR,'PRODOTTO IN CATALOGO') AS COD_PRODOTTO_TERZI,
		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
		--ALL_PATR_TERZI.DATA_INIZIO_INV AS DATA_SOTTOSCRIZIONE,
		--ISNULL(ALL_PATR_TERZI.DATA_INIZIO_INV, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ) AS DATA_SOTTOSCRIZIONE,
		--ALL_PATR_TERZI.BALANCEDATETIME_DI_THR AS DATA_SOTTOSCRIZIONE,
		CASE 
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.PolizzeRivalutabili')		-- PRODOTTI S49
				THEN ISNULL(ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ)
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali')	-- PRODOTTI S50
				THEN ALL_PATR_TERZI.BALANCEDATETIME_DI_THR -- EQUIVALENTE A ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ
			ELSE	-- PRODOTTI S48
				ALL_PATR_TERZI.DATA_INIZIO_INV
		END  AS DATA_SOTTOSCRIZIONE,
		ALL_PATR_TERZI.DATA_SCADENZA AS DATA_SCADENZA,
		ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797 AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		ALL_PATR_TERZI.PREMIO_VERSAMENTO AS PREMIO,
		NULL AS ALIQUOTA,
		ALL_PATR_TERZI.BALANCEDATETIME_DI_THR AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,
		ALL_PATR_TERZI.PATRIMONIO_TERZI AS CTV,
		ALL_PATR_TERZI.CAPITALE_INVESTITO AS VERSATO_NETTO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
				THEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
				THEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
                 or (S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
                     and  S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
                     and S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other'  
				THEN 'Portafoglio Generico'
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
				THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
        STRTYPE,
        COMPLEX,
        EMITTENTE,    
        ALL_PATR_TERZI.CHIAVE_THR, 
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_PATR_TERZI
	INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 
		ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
	LEFT JOIN (
		SELECT DISTINCT 
			ALL_PATR_TERZI.CHIAVE_THR AS CHIAVE_THR,
			COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO,
			S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 AS TIPO_PRODOTTO2
		FROM C6STAGING.ALL_PATR_TERZI
		INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 
			ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
	) AS PRODOTTI_NON_A_CATALOGO 
		ON PRODOTTI_NON_A_CATALOGO.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_THR
	LEFT JOIN (
		SELECT 
			CATITEMREF.CATALOGUEID AS CATALOGUEID,
			CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
            CATITEMREF.STRTYPE,
            CATITEMREF.COMPLEX,
            MIT.DESCR AS EMITTENTE
		FROM 
			C6STAGING.CATITEMREF  LEFT OUTER JOIN
          C6STAGING.EMIT MIT
          ON MIT.CODEMI=CATITEMREF.CODEMI 
	) PRODOTTI_A_CATALOGO 
		ON PRODOTTI_A_CATALOGO.CATALOGUEID = ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_TERZI'
		)

END







GO
/****** Object:  StoredProcedure [C6Mart].[DM_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PIRAMIDE_MOD]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PIRAMIDE_MOD',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PIRAMIDE_MOD

	INSERT INTO [C6Mart].[PIRAMIDE_MOD]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		ALL_CF_PB.RETE_PB AS RETE,
		ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,
		PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,
		PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,
		PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,
		CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,
		C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,
		ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_CF_PB
	INNER JOIN C6STAGING.CONSUL 
		ON CONSUL.INSTID = ALL_CF_PB.RETE_PB
		AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza' --'AttivaAggiornata'
	INNER JOIN C6STAGING.CONSAREA 
		ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6STAGING.PRCONSUL 
		ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$
	LEFT JOIN C6STAGING.C_BO_453FB
		ON C_BO_453FB.PK_PRC = PRCONSUL.OID$
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_MOD'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 25/11/2008
-- Description:	Modificate le tabelle da cui pescare i dati (non più la all_pos_cons_cat)
-- =============================================
CREATE procedure [C6Mart].[DM_PIRAMIDE_VERT]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PIRAMIDE_VERT',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PIRAMIDE_VERT

	INSERT INTO [C6Mart].[PIRAMIDE_VERT]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[CTV_AREA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT DISTINCT
		ALL_CF_PB.RETE_PB AS RETE,
		ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_CF_PB
	INNER JOIN C6STAGING.CONSUL 
		ON CONSUL.INSTID = ALL_CF_PB.RETE_PB
		AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza'  --'AttivaAggiornata'
	INNER JOIN C6STAGING.CONSAREA 
		ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_VERT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_VERT'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_PopolaContratti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----- not used in mart 
CREATE procedure [C6Mart].[DM_PopolaContratti] 
AS
BEGIN

		DECLARE @ULTIMOPROGRINVIO int--SMALLINT
	DECLARE @ORDINEELAB int--SMALLINT
	DECLARE @RIATTIVAZIONE int--SMALLINT
	DECLARE @inizio DATETIME
	DECLARE @fine DATETIME
	DECLARE @righeUpdate INT
	DECLARE @righeInsert INT

	SET @inizio = GETDATE()
	SET @righeUpdate = 0
	SET @righeInsert = 0

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
			VALUES ('DM_PopolaContratti',@inizio,'Elaborazione giornaliera')

	--AGGIORNAMENTO CONTRATTI
	--I RECORD PRESENTI NELLA VARIAZIONE_CONTRSEI POTREBBERO ESSERE 
	--POPOLATI IN ELABORAZIONI DIFFERENTI. VANNO ESEGUITI IN ORDINE
	--DICHIARAZIONE CURSORE PER ESTRARRE LE ELABORAZIONI

	DECLARE ELABORAZIONI CURSOR LOCAL FORWARD_ONLY 
	FOR
	SELECT ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA, RIATTIVAZIONE
	FROM C6STAGING.VARIAZIONE_CONTRSEI
	ORDER BY ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA
	
	--APERTURA CURSORE
	OPEN ELABORAZIONI
	FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB, @RIATTIVAZIONE
	WHILE @@FETCH_STATUS = 0
	BEGIN

		--AGGIORNAMENTO CONTRATTI ESISTENTI
		UPDATE C6Mart.CONTRATTOSEI
		SET
			 Cod_Fiscale = VARC6.CODICE_FISCALE
			,Data_Sott = VARC6.DATA_SOTTOSCRIZIONE_C6			
			,Cod_Agente = VARC6.PB
			,Data_Perf_Base = VARC6.DATA_PERFEZIONAMENTO_BASE
			,Data_Perf = VARC6.DATA_PERFEZIONAMENTO_C6
			,Fascia_CPP = VARC6.CPP
			,Email = VARC6.EMAIL
			,Indirizzo = VARC6.INDIRIZZO
			,CAP =  VARC6.CAP
			,Citta = VARC6.CITTA
			,Prov = VARC6.PROVINCIA
			,Nazione = VARC6.NAZIONE
			,Presso = VARC6.PRESSO			
			,Freq_Diagnosi = VARC6.FREQUENZA_DIAGNOSI
			,Freq_Monitor = isnull(VARC6.FREQUENZA_MONITORAGGIO,'T')			
			,Data_InizioBase = VARC6.DATA_SOTTOSCRIZIONE_BASE
			,Data_FineBase = VARC6.DATA_CHIUSURA_BASE			
			,Data_FineAvanzato = VARC6.DATA_CHIUSURA_C6
			,ProgressivoInvio = VARC6.ULTIMO_PROGRESSIVO_INVIO
			,GenerazioneReport = VARC6.FLAG_STAMPA_REPORT
			,Rol = isnull(VARC6.Flag_Rol,'N') 			 
			,tip_Contratto = CASE
								WHEN VARC6.tip_Contratto = 'A' THEN 1
								WHEN VARC6.tip_Contratto = 'P' THEN 2
								ELSE 0			                   	
			                 END
			,tip_Riattivazione = @RIATTIVAZIONE
			,numRevoche = CASE 
							WHEN @RIATTIVAZIONE = 0 THEN numRevoche
							ELSE 0 
						 END	
			,data_UltimaRevoca = CASE 
									WHEN @RIATTIVAZIONE = 0 THEN data_UltimaRevoca
									ELSE NULL
								END
			,invioBenvenuto = CASE 
								WHEN @RIATTIVAZIONE = 0 THEN invioBenvenuto
								ELSE 'N'
							 END
			 ,numSolleciti = CASE 								
								WHEN (C6.Rete <> VARC6.Rete_PB OR C6.Cod_Agente <> VARC6.PB) THEN 0
								WHEN @RIATTIVAZIONE = 0 THEN numSolleciti
								ELSE 0
							 END	
			 ,data_UltimoSollecito = CASE 
										WHEN @RIATTIVAZIONE = 0 THEN data_UltimoSollecito
										ELSE NULL 
									 END	
			 ,data_Invio_Monitoraggio_Trimestrale =	CASE 
														WHEN @RIATTIVAZIONE = 0 THEN data_Invio_Monitoraggio_Trimestrale
														ELSE  NULL
													 END
			 ,data_Invio_Diagnosi_Trimestrale =	CASE 
													WHEN @RIATTIVAZIONE = 0 THEN data_Invio_Diagnosi_Trimestrale
													ELSE NULL 
												 END			 				
				FROM C6MART.CONTRATTOSEI C6
					INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6
					ON  C6.RETE = VARC6.RETE_PB
						AND C6.CODICECONTRATTO = VARC6.CODICE_CONTRATTO
						AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
						AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
				
				SET @righeUpdate = @righeUpdate + @@ROWCOUNT
				
		IF  @@ROWCOUNT > 0
			IF @RIATTIVAZIONE = 1 
				BEGIN  
					UPDATE C6MART.Gestione_EMAIL 
						SET TIPO = 'OLD'
						FROM C6MART.Gestione_EMAIL EMAIL
							INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6
							 ON VARC6.CODICE_FISCALE = EMAIL.COD_FISCALE
							AND VARC6.rete_pb = EMAIL.RETE
							AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
						    AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
						    AND EMAIL.TIPO = 'PERF'
				END  
		ELSE  
			BEGIN
				--INSERIMENTO NUOVI CONTRATTI
				print 'ORDINEELAB=' + convert(varchar,@ORDINEELAB) + ' ULTIMOPROGRINVIO=' + convert(varchar,@ULTIMOPROGRINVIO )
				INSERT INTO C6Mart.CONTRATTOSEI (
					Rete
				   ,Cod_Fiscale
				   ,Piva_Fiduciaria
				   ,Data_Sott
				   ,CodiceContratto
				   ,Cod_Agente
				   ,Data_Perf_Base
				   ,Data_Perf
				   ,Fascia_CPP
				   ,Email
				   ,Indirizzo
				   ,CAP
				   ,Citta
				   ,Prov
				   ,Nazione
				   ,Presso
				   ,Data_Inizio
				   ,Freq_Diagnosi
				   ,Freq_Monitor
				   ,Freq_DiagnosiPrec
				   ,Freq_MonitorPrec
				   ,Data_InizioConsInv
				   ,Data_InizioBase
				   ,Data_FineBase
				   ,Data_InizioAvanzato
				   ,Data_FineAvanzato
				   ,ProgressivoInvio
				   ,GenerazioneReport
				   ,InvioBenvenuto
				   ,DataUltimoInvio
				   ,ClienteMigrato
				   ,RisorseNA
				   ,NumSolleciti
				   ,Data_UltimoSollecito
				   ,Note
				   ,Rol
				   ,tip_Contratto
				   ,tip_Riattivazione)
				SELECT 
					VARC6.RETE_PB,
					VARC6.CODICE_FISCALE,
					MIGR.PIVA,
					VARC6.DATA_SOTTOSCRIZIONE_C6,
					VARC6.CODICE_CONTRATTO,
					VARC6.PB,
					VARC6.DATA_PERFEZIONAMENTO_BASE,
					VARC6.DATA_PERFEZIONAMENTO_C6,
					VARC6.CPP,
					VARC6.EMAIL,
					VARC6.INDIRIZZO,
					VARC6.CAP,
					VARC6.CITTA,
					VARC6.PROVINCIA,
					VARC6.NAZIONE,
					VARC6.PRESSO,
					NULL AS Data_Inizio,
					VARC6.FREQUENZA_DIAGNOSI,
					VARC6.FREQUENZA_MONITORAGGIO,
					NULL AS Freq_DiagnosiPrec,
					NULL AS Freq_MonitorPrec,
					NULL AS Data_InizioConsInv,
					VARC6.DATA_SOTTOSCRIZIONE_BASE,
					VARC6.DATA_CHIUSURA_BASE,
					VARC6.DATA_PERFEZIONAMENTO_C6,
					VARC6.DATA_CHIUSURA_C6,
					VARC6.ULTIMO_PROGRESSIVO_INVIO,
					VARC6.FLAG_STAMPA_REPORT AS GenerazioneReport,
					'N' as InvioBenvenuto,
					NULL as DataUltimoInvio,
					ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N'),
					NULL AS RisorseNA,
					0 AS NumSolleciti, 
					NULL AS Data_UltimoSollecito,
					NULL AS NOTE,
					ISNULL(VARC6.Flag_Rol,'N'),
					CASE
						WHEN VARC6.tip_Contratto = 'A' THEN 1
						WHEN VARC6.tip_Contratto = 'P' THEN 2
						ELSE 0			                   	
	                 END,
	                 VARC6.riattivazione							 
				FROM C6STAGING.VARIAZIONE_CONTRSEI VARC6
					LEFT JOIN C6STAGING.V_CLIENTI_CONTRSEI_CON_MIGRAZ MIGR
						ON MIGR.RETE_PB = VARC6.RETE_PB
						AND MIGR.Codice_Fiscale = VARC6.Codice_Fiscale
						AND MIGR.codice_contratto = VARC6.codice_contratto
					LEFT JOIN C6MART.CONTRATTOSEI C6
						ON VARC6.RETE_PB = C6.RETE
						AND VARC6.Codice_Fiscale = C6.Cod_Fiscale
						AND VARC6.Codice_Contratto = C6.CodiceContratto
					WHERE 1 = 1
						AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
						AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
						AND C6.COD_FISCALE IS NULL

				SET @righeInsert = @righeInsert + @@ROWCOUNT
			END
		 
		FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB, @RIATTIVAZIONE
	END

	SET @fine = GETDATE()
	print convert(varchar,@inizio,113 ) + ' ' + convert(varchar,@fine,113 )
	-- Log esecuzione
	UPDATE LOG_ESECUZIONE
		SET Fine = @fine,Tipo = 'UPDATE',Righe = @righeUpdate
		WHERE Nome = 'DM_PopolaContratti' AND
		      Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'DM_PopolaContratti')

	INSERT INTO LOG_ESECUZIONE
		VALUES ('DM_PopolaContratti',@inizio,@fine,'INSERT',@righeInsert,'Elaborazione giornaliera')

	INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
		VALUES ('DM_PopolaContratti',GETDATE(),'Elaborazione giornaliera')

	--Inserisco il cambio migrazioni anche per i clienti per cui non ho una variazione
	DECLARE @maxInvioSoll AS SMALLINT
	SET @maxInvioSoll = dbo.getParametro('MaxInvioSoll') 

	UPDATE C6Mart.CONTRATTOSEI
	---------------en 20161026 
	--SET ClienteMigrato = ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N'),
	--------------------------
	SET ClienteMigrato = 'S',
		  NumSolleciti =	CASE --V aggiunta condizione profilo attivo per il riazzeramento solleciti
							WHEN (LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1)='S' AND ISNULL(C6.RisorseNA,'N')='N') and isnull(profiloAttivo,1) = 1 AND NumSolleciti <=  @maxInvioSoll THEN 0
							ELSE NumSolleciti
				 		END
	FROM C6MART.CONTRATTOSEI C6
		INNER JOIN C6STAGING.V_CLIENTI_CONTRSEI_CON_MIGRAZ MIGR
			 ON C6.RETE = MIGR.RETE_PB
			AND C6.COD_FISCALE = MIGR.CODICE_FISCALE

	-- Log esecuzione
	UPDATE LOG_ESECUZIONE SET Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
		WHERE Nome = 'DM_PopolaContratti' AND Inizio = (SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'DM_PopolaContratti')
END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_PopolaContratti_20161026]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Luca
-- Create date: 13/11/2008
-- Description:	Aggiornamento tabella contratti
-- =============================================
CREATE procedure [C6Mart].[DM_PopolaContratti_20161026] 
AS
BEGIN

		DECLARE @ULTIMOPROGRINVIO int--SMALLINT
	DECLARE @ORDINEELAB int--SMALLINT
	DECLARE @RIATTIVAZIONE int--SMALLINT
	DECLARE @inizio DATETIME
	DECLARE @fine DATETIME
	DECLARE @righeUpdate INT
	DECLARE @righeInsert INT

	SET @inizio = GETDATE()
	SET @righeUpdate = 0
	SET @righeInsert = 0

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
			VALUES ('DM_PopolaContratti',@inizio,'Elaborazione giornaliera')

	--AGGIORNAMENTO CONTRATTI
	--I RECORD PRESENTI NELLA VARIAZIONE_CONTRSEI POTREBBERO ESSERE 
	--POPOLATI IN ELABORAZIONI DIFFERENTI. VANNO ESEGUITI IN ORDINE
	--DICHIARAZIONE CURSORE PER ESTRARRE LE ELABORAZIONI

	DECLARE ELABORAZIONI CURSOR LOCAL FORWARD_ONLY 
	FOR
	SELECT ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA, RIATTIVAZIONE
	FROM C6STAGING.VARIAZIONE_CONTRSEI
	ORDER BY ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA
	
	--APERTURA CURSORE
	OPEN ELABORAZIONI
	FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB, @RIATTIVAZIONE
	WHILE @@FETCH_STATUS = 0
	BEGIN

		--AGGIORNAMENTO CONTRATTI ESISTENTI
		UPDATE C6Mart.CONTRATTOSEI
		SET
			 Cod_Fiscale = VARC6.CODICE_FISCALE
			,Data_Sott = VARC6.DATA_SOTTOSCRIZIONE_C6			
			,Cod_Agente = VARC6.PB
			,Data_Perf_Base = VARC6.DATA_PERFEZIONAMENTO_BASE
			,Data_Perf = VARC6.DATA_PERFEZIONAMENTO_C6
			,Fascia_CPP = VARC6.CPP
			,Email = VARC6.EMAIL
			,Indirizzo = VARC6.INDIRIZZO
			,CAP =  VARC6.CAP
			,Citta = VARC6.CITTA
			,Prov = VARC6.PROVINCIA
			,Nazione = VARC6.NAZIONE
			,Presso = VARC6.PRESSO			
			,Freq_Diagnosi = VARC6.FREQUENZA_DIAGNOSI
			,Freq_Monitor = isnull(VARC6.FREQUENZA_MONITORAGGIO,'T')			
			,Data_InizioBase = VARC6.DATA_SOTTOSCRIZIONE_BASE
			,Data_FineBase = VARC6.DATA_CHIUSURA_BASE			
			,Data_FineAvanzato = VARC6.DATA_CHIUSURA_C6
			,ProgressivoInvio = VARC6.ULTIMO_PROGRESSIVO_INVIO
			,GenerazioneReport = VARC6.FLAG_STAMPA_REPORT
			,Rol = isnull(VARC6.Flag_Rol,'N') 			 
			,tip_Contratto = CASE
								WHEN VARC6.tip_Contratto = 'A' THEN 1
								WHEN VARC6.tip_Contratto = 'P' THEN 2
								ELSE 0			                   	
			                 END
			,tip_Riattivazione = @RIATTIVAZIONE
			,numRevoche = CASE 
							WHEN @RIATTIVAZIONE = 0 THEN numRevoche
							ELSE 0 
						 END	
			,data_UltimaRevoca = CASE 
									WHEN @RIATTIVAZIONE = 0 THEN data_UltimaRevoca
									ELSE NULL
								END
			,invioBenvenuto = CASE 
								WHEN @RIATTIVAZIONE = 0 THEN invioBenvenuto
								ELSE 'N'
							 END
			 ,numSolleciti = CASE 								
								WHEN (C6.Rete <> VARC6.Rete_PB OR C6.Cod_Agente <> VARC6.PB) THEN 0
								WHEN @RIATTIVAZIONE = 0 THEN numSolleciti
								ELSE 0
							 END	
			 ,data_UltimoSollecito = CASE 
										WHEN @RIATTIVAZIONE = 0 THEN data_UltimoSollecito
										ELSE NULL 
									 END	
			 ,data_Invio_Monitoraggio_Trimestrale =	CASE 
														WHEN @RIATTIVAZIONE = 0 THEN data_Invio_Monitoraggio_Trimestrale
														ELSE  NULL
													 END
			 ,data_Invio_Diagnosi_Trimestrale =	CASE 
													WHEN @RIATTIVAZIONE = 0 THEN data_Invio_Diagnosi_Trimestrale
													ELSE NULL 
												 END			 				
				FROM C6MART.CONTRATTOSEI C6
					INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6
					ON  C6.RETE = VARC6.RETE_PB
						AND C6.CODICECONTRATTO = VARC6.CODICE_CONTRATTO
						AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
						AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
				
				SET @righeUpdate = @righeUpdate + @@ROWCOUNT
				
		IF  @@ROWCOUNT > 0
			IF @RIATTIVAZIONE = 1 
				BEGIN  
					UPDATE C6MART.Gestione_EMAIL 
						SET TIPO = 'OLD'
						FROM C6MART.Gestione_EMAIL EMAIL
							INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6
							 ON VARC6.CODICE_FISCALE = EMAIL.COD_FISCALE
							AND VARC6.rete_pb = EMAIL.RETE
							AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
						    AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
						    AND EMAIL.TIPO = 'PERF'
				END  
		ELSE  
			BEGIN
				--INSERIMENTO NUOVI CONTRATTI
				print 'ORDINEELAB=' + convert(varchar,@ORDINEELAB) + ' ULTIMOPROGRINVIO=' + convert(varchar,@ULTIMOPROGRINVIO )
				INSERT INTO C6Mart.CONTRATTOSEI (
					Rete
				   ,Cod_Fiscale
				   ,Piva_Fiduciaria
				   ,Data_Sott
				   ,CodiceContratto
				   ,Cod_Agente
				   ,Data_Perf_Base
				   ,Data_Perf
				   ,Fascia_CPP
				   ,Email
				   ,Indirizzo
				   ,CAP
				   ,Citta
				   ,Prov
				   ,Nazione
				   ,Presso
				   ,Data_Inizio
				   ,Freq_Diagnosi
				   ,Freq_Monitor
				   ,Freq_DiagnosiPrec
				   ,Freq_MonitorPrec
				   ,Data_InizioConsInv
				   ,Data_InizioBase
				   ,Data_FineBase
				   ,Data_InizioAvanzato
				   ,Data_FineAvanzato
				   ,ProgressivoInvio
				   ,GenerazioneReport
				   ,InvioBenvenuto
				   ,DataUltimoInvio
				   ,ClienteMigrato
				   ,RisorseNA
				   ,NumSolleciti
				   ,Data_UltimoSollecito
				   ,Note
				   ,Rol
				   ,tip_Contratto
				   ,tip_Riattivazione)
				SELECT 
					VARC6.RETE_PB,
					VARC6.CODICE_FISCALE,
					MIGR.PIVA,
					VARC6.DATA_SOTTOSCRIZIONE_C6,
					VARC6.CODICE_CONTRATTO,
					VARC6.PB,
					VARC6.DATA_PERFEZIONAMENTO_BASE,
					VARC6.DATA_PERFEZIONAMENTO_C6,
					VARC6.CPP,
					VARC6.EMAIL,
					VARC6.INDIRIZZO,
					VARC6.CAP,
					VARC6.CITTA,
					VARC6.PROVINCIA,
					VARC6.NAZIONE,
					VARC6.PRESSO,
					NULL AS Data_Inizio,
					VARC6.FREQUENZA_DIAGNOSI,
					VARC6.FREQUENZA_MONITORAGGIO,
					NULL AS Freq_DiagnosiPrec,
					NULL AS Freq_MonitorPrec,
					NULL AS Data_InizioConsInv,
					VARC6.DATA_SOTTOSCRIZIONE_BASE,
					VARC6.DATA_CHIUSURA_BASE,
					VARC6.DATA_PERFEZIONAMENTO_C6,
					VARC6.DATA_CHIUSURA_C6,
					VARC6.ULTIMO_PROGRESSIVO_INVIO,
					VARC6.FLAG_STAMPA_REPORT AS GenerazioneReport,
					'N' as InvioBenvenuto,
					NULL as DataUltimoInvio,
					ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N'),
					NULL AS RisorseNA,
					0 AS NumSolleciti, 
					NULL AS Data_UltimoSollecito,
					NULL AS NOTE,
					ISNULL(VARC6.Flag_Rol,'N'),
					CASE
						WHEN VARC6.tip_Contratto = 'A' THEN 1
						WHEN VARC6.tip_Contratto = 'P' THEN 2
						ELSE 0			                   	
	                 END,
	                 VARC6.riattivazione							 
				FROM C6STAGING.VARIAZIONE_CONTRSEI VARC6
					LEFT JOIN C6STAGING.V_CLIENTI_CONTRSEI_CON_MIGRAZ MIGR
						ON MIGR.RETE_PB = VARC6.RETE_PB
						AND MIGR.Codice_Fiscale = VARC6.Codice_Fiscale
						AND MIGR.codice_contratto = VARC6.codice_contratto
					LEFT JOIN C6MART.CONTRATTOSEI C6
						ON VARC6.RETE_PB = C6.RETE
						AND VARC6.Codice_Fiscale = C6.Cod_Fiscale
						AND VARC6.Codice_Contratto = C6.CodiceContratto
					WHERE 1 = 1
						AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
						AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
						AND C6.COD_FISCALE IS NULL

				SET @righeInsert = @righeInsert + @@ROWCOUNT
			END
		 
		FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB, @RIATTIVAZIONE
	END

	SET @fine = GETDATE()
	print convert(varchar,@inizio,113 ) + ' ' + convert(varchar,@fine,113 )
	-- Log esecuzione
	UPDATE LOG_ESECUZIONE
		SET Fine = @fine,Tipo = 'UPDATE',Righe = @righeUpdate
		WHERE Nome = 'DM_PopolaContratti' AND
		      Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'DM_PopolaContratti')

	INSERT INTO LOG_ESECUZIONE
		VALUES ('DM_PopolaContratti',@inizio,@fine,'INSERT',@righeInsert,'Elaborazione giornaliera')

	INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
		VALUES ('DM_PopolaContratti',GETDATE(),'Elaborazione giornaliera')

	--Inserisco il cambio migrazioni anche per i clienti per cui non ho una variazione
	DECLARE @maxInvioSoll AS SMALLINT
	SET @maxInvioSoll = dbo.getParametro('MaxInvioSoll') 

	UPDATE C6Mart.CONTRATTOSEI
	SET ClienteMigrato = ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N'),
		  NumSolleciti =	CASE --V aggiunta condizione profilo attivo per il riazzeramento solleciti
							WHEN (LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1)='S' AND ISNULL(C6.RisorseNA,'N')='N') and isnull(profiloAttivo,1) = 1 AND NumSolleciti <=  @maxInvioSoll THEN 0
							ELSE NumSolleciti
				 		END
	FROM C6MART.CONTRATTOSEI C6
		INNER JOIN C6STAGING.V_CLIENTI_CONTRSEI_CON_MIGRAZ MIGR
			 ON C6.RETE = MIGR.RETE_PB
			AND C6.COD_FISCALE = MIGR.CODICE_FISCALE

	-- Log esecuzione
	UPDATE LOG_ESECUZIONE SET Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
		WHERE Nome = 'DM_PopolaContratti' AND Inizio = (SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'DM_PopolaContratti')
END



GO
/****** Object:  StoredProcedure [C6Mart].[DM_PopolaContratti_old240213]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Luca
-- Create date: 13/11/2008
-- Description:	Aggiornamento tabella contratti
-- =============================================
CREATE procedure [C6Mart].[DM_PopolaContratti_old240213] 
AS
BEGIN

	DECLARE @ULTIMOPROGRINVIO int--SMALLINT
	DECLARE @ORDINEELAB int--SMALLINT
	DECLARE @inizio DATETIME
	DECLARE @fine DATETIME
	DECLARE @righeUpdate INT
	DECLARE @righeInsert INT

	SET @inizio = GETDATE()
	SET @righeUpdate = 0
	SET @righeInsert = 0

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PopolaContratti',
		@inizio,
		'Elaborazione giornaliera'
	)

	--AGGIORNAMENTO CONTRATTI

	--I RECORD PRESENTI NELLA VARIAZIONE_CONTRSEI POTREBBERO ESSERE 
	--POPOLATI IN ELABORAZIONI DIFFERENTI. VANNO ESEGUITI IN ORDINE
	--DICHIARAZIONE CURSORE PER ESTRARRE LE ELABORAZIONI

	DECLARE ELABORAZIONI CURSOR LOCAL FORWARD_ONLY 
	FOR
	SELECT ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA
	FROM C6STAGING.VARIAZIONE_CONTRSEI
	--where ORDINE_DI_ELABORAZIONE_RIGA < 10000 and ULTIMO_PROGRESSIVO_INVIO > 1000
	ORDER BY ULTIMO_PROGRESSIVO_INVIO, ORDINE_DI_ELABORAZIONE_RIGA
	
	--APERTURA CURSORE
	OPEN ELABORAZIONI
	FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB
	WHILE @@FETCH_STATUS = 0
	BEGIN

		--AGGIORNAMENTO CONTRATTI ESISTENTI
		UPDATE C6Mart.CONTRATTOSEI
		SET
			--Rete = VARC6.RETE_PB
			Cod_Fiscale = VARC6.CODICE_FISCALE
			,Data_Sott = VARC6.DATA_SOTTOSCRIZIONE_C6
			--,CodiceContratto = <CodiceContratto, varchar(11),>
			,Cod_Agente = VARC6.PB
			,Data_Perf_Base = VARC6.DATA_PERFEZIONAMENTO_BASE
			,Data_Perf = VARC6.DATA_PERFEZIONAMENTO_C6
			,Fascia_CPP = VARC6.CPP
			,Email = VARC6.EMAIL
			,Indirizzo = VARC6.INDIRIZZO
			,CAP =  VARC6.CAP
			,Citta = VARC6.CITTA
			,Prov = VARC6.PROVINCIA
			,Nazione = VARC6.NAZIONE
			,Presso = VARC6.PRESSO
			--,Data_Inizio = <Data_Inizio, datetime,>
			,Freq_Diagnosi = VARC6.FREQUENZA_DIAGNOSI
			,Freq_Monitor = ISNULL(VARC6.FREQUENZA_MONITORAGGIO,'T')
			--,Freq_DiagnosiPrec = <Freq_DiagnosiPrec, varchar(1),>
			--,Freq_MonitorPrec = <Freq_MonitorPrec, varchar(1),>
			--,Data_InizioConsInv = <Data_InizioConsInv, datetime,>
			,Data_InizioBase = VARC6.DATA_SOTTOSCRIZIONE_BASE
			,Data_FineBase = VARC6.DATA_CHIUSURA_BASE
			--,Data_InizioAvanzato = <Data_InizioAvanzato, datetime,>
			,Data_FineAvanzato = VARC6.DATA_CHIUSURA_C6
			,ProgressivoInvio = VARC6.ULTIMO_PROGRESSIVO_INVIO
			,GenerazioneReport = VARC6.FLAG_STAMPA_REPORT
			--,InvioBenvenuto = <InvioBenvenuto, varchar(1),>
			--,DataUltimoInvio = <DataUltimoInvio, datetime,>
			--,ClienteMigrato = ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N')
			--,RisorseNA = <RisorseNA, varchar(1),>
			,NumSolleciti =	CASE 
								WHEN (C6.Rete <> VARC6.Rete_PB OR C6.Cod_Agente <> VARC6.PB) THEN 0
								--WHEN (LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1)='S' AND ISNULL(C6.RisorseNA,'N')='N') THEN 0
								ELSE NumSolleciti
							END 
			--,Data_UltimoSollecito = <Data_UltimoSollecito, datetime,>
			--,Note = <Note, varchar(1024),>
			 ,Rol = isnull(VARC6.Flag_Rol,'N')
			,tip_Contratto = CASE
							WHEN VARC6.tip_Contratto = 'A' THEN 1
							WHEN VARC6.tip_Contratto = 'P' THEN 2
							ELSE 0			                   	
						 END 
		FROM C6MART.CONTRATTOSEI C6
		INNER JOIN C6STAGING.VARIAZIONE_CONTRSEI VARC6
		ON -- no join sul codice fiscale poiché, in caso di sua variazione, verrebbe trattato come nuovo contratto
			C6.RETE = VARC6.RETE_PB
			--AND C6.COD_FISCALE = VARC6.CODICE_FISCALE
			AND C6.CODICECONTRATTO = VARC6.CODICE_CONTRATTO
			AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
			AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
		
		SET @righeUpdate = @righeUpdate + @@ROWCOUNT

		--INSERIMENTO NUOVI CONTRATTI
		INSERT INTO C6Mart.CONTRATTOSEI
		   (Rete
		   ,Cod_Fiscale
		   ,Piva_Fiduciaria
		   ,Data_Sott
		   ,CodiceContratto
		   ,Cod_Agente
			,Data_Perf_Base
		   ,Data_Perf
		   ,Fascia_CPP
		   ,Email
		   ,Indirizzo
		   ,CAP
		   ,Citta
		   ,Prov
		   ,Nazione
		   ,Presso
		   ,Data_Inizio
		   ,Freq_Diagnosi
		   ,Freq_Monitor
		   ,Freq_DiagnosiPrec
		   ,Freq_MonitorPrec
		   ,Data_InizioConsInv
		   ,Data_InizioBase
		   ,Data_FineBase
		   ,Data_InizioAvanzato
		   ,Data_FineAvanzato
		   ,ProgressivoInvio
		   ,GenerazioneReport
		   ,InvioBenvenuto
		   ,DataUltimoInvio
		   ,ClienteMigrato
		   ,RisorseNA
		   ,NumSolleciti
		   ,Data_UltimoSollecito
		   ,Note
		   ,Rol
,tip_contratto

)
		SELECT 
			VARC6.RETE_PB,
			VARC6.CODICE_FISCALE,
			MIGR.PIVA,
			VARC6.DATA_SOTTOSCRIZIONE_C6,
			VARC6.CODICE_CONTRATTO,
			VARC6.PB,
			VARC6.DATA_PERFEZIONAMENTO_BASE,
			VARC6.DATA_PERFEZIONAMENTO_C6,
			VARC6.CPP,
			VARC6.EMAIL,
			VARC6.INDIRIZZO,
			VARC6.CAP,
			VARC6.CITTA,
			VARC6.PROVINCIA,
			VARC6.NAZIONE,
			VARC6.PRESSO,
			NULL AS Data_Inizio,
			VARC6.FREQUENZA_DIAGNOSI,
			isnull(VARC6.FREQUENZA_MONITORAGGIO,'T'),
			NULL AS Freq_DiagnosiPrec,
			NULL AS Freq_MonitorPrec,
			NULL AS Data_InizioConsInv,
			VARC6.DATA_SOTTOSCRIZIONE_BASE,
			VARC6.DATA_CHIUSURA_BASE,
			VARC6.DATA_PERFEZIONAMENTO_C6,
			VARC6.DATA_CHIUSURA_C6,
			VARC6.ULTIMO_PROGRESSIVO_INVIO,
			VARC6.FLAG_STAMPA_REPORT AS GenerazioneReport,
			'N' as InvioBenvenuto,
			NULL as DataUltimoInvio,
			ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N'),
			NULL AS RisorseNA,
			0 AS NumSolleciti,--Aggiunta perchè mancava, Fabrizio e Valerio per Azzeramento numero solleciti email
			NULL AS Data_UltimoSollecito,
			NULL AS NOTE,
			isnull(VARC6.Flag_Rol,'N')
	,tip_Contratto = CASE
							WHEN VARC6.tip_Contratto = 'A' THEN 1
							WHEN VARC6.tip_Contratto = 'P' THEN 2
							ELSE 0			                   	
						 END 

		FROM C6STAGING.VARIAZIONE_CONTRSEI VARC6
		LEFT JOIN C6STAGING.V_CLIENTI_CONTRSEI_CON_MIGRAZ MIGR
		ON 
			MIGR.RETE_PB = VARC6.RETE_PB
			AND MIGR.Codice_Fiscale = VARC6.Codice_Fiscale
			--V Inserito questo controllo in quanto in caso di chiusura di un contratto e riapertura inseriva due righe
			and MIGR.codice_contratto = VARC6.codice_contratto
		LEFT JOIN C6MART.CONTRATTOSEI C6
		ON 
			VARC6.RETE_PB = C6.RETE
			AND VARC6.Codice_Fiscale = C6.Cod_Fiscale
			AND VARC6.Codice_Contratto = C6.CodiceContratto
		WHERE 1 = 1
			AND VARC6.ULTIMO_PROGRESSIVO_INVIO = @ULTIMOPROGRINVIO				
			AND VARC6.ORDINE_DI_ELABORAZIONE_RIGA = @ORDINEELAB
			--V nuova condizione rilassamento del vincolo è corretto?
			AND C6.COD_FISCALE IS NULL
--V Vecchia condizione che va in errore nel caso carichiamo le fiduciarie,il job va in errore, facendolo rigirare le vuole ricaricare, violando la pk
			--AND (C6.COD_FISCALE IS NULL
			--	OR CHARINDEX('@', VARC6.Codice_Fiscale) > 0)

		SET @righeInsert = @righeInsert + @@ROWCOUNT

		FETCH NEXT FROM ELABORAZIONI INTO @ULTIMOPROGRINVIO, @ORDINEELAB
		
	END

	SET @fine = GETDATE()

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = @fine,
		Tipo = 'UPDATE',
		Righe = @righeUpdate
	WHERE
		Nome = 'DM_PopolaContratti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PopolaContratti'
		)

	INSERT INTO LOG_ESECUZIONE
	VALUES (
		'DM_PopolaContratti',
		@inizio,
		@fine,
		'INSERT',
		@righeInsert,
		'Elaborazione giornaliera'
	)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PopolaContratti',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	--Inserisco il cambio migrazioni anche per i clienti per cui non ho una variazione
	DECLARE @maxInvioSoll AS SMALLINT
	SET @maxInvioSoll = dbo.getParametro('MaxInvioSoll') 

	UPDATE C6Mart.CONTRATTOSEI
	SET 
		ClienteMigrato = ISNULL(LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1),'N'),
		NumSolleciti =	
			CASE --V aggiunta condizione profilo attivo per il riazzeramento solleciti
				WHEN (LEFT(MIGR.FLAG_CLIENTE_MIGRATO,1)='S' AND ISNULL(C6.RisorseNA,'N')='N') and isnull(profiloAttivo,1) = 1 AND NumSolleciti <=  @maxInvioSoll THEN 0
				ELSE NumSolleciti
			END
	FROM 
		C6MART.CONTRATTOSEI C6
	INNER JOIN 
		C6STAGING.V_CLIENTI_CONTRSEI_CON_MIGRAZ MIGR
		ON 
			C6.RETE = MIGR.RETE_PB
			AND C6.COD_FISCALE = MIGR.CODICE_FISCALE

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PopolaContratti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PopolaContratti'
		)
END








GO
/****** Object:  StoredProcedure [C6Mart].[DM_PREVIDENZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_PREVIDENZIALE]
AS
BEGIN

	SET NOCOUNT ON;
	
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PREVIDENZIALE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PREVIDENZIALE
	
	INSERT INTO [C6Mart].[PREVIDENZIALE]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[ANNO_PENSIONE]
		   ,[ETA_PENSIONE]
		   ,[TOT_CONSUMI_ATTESI]
		   ,[TOT_REDDITO_ANNUO]
		   ,[REDDITO_CONSUMI_ESS]
		   ,[PENSIONE_ATTESA_]
		   ,[RENDITA_PREV_COMPL]
		   ,[RENDITA_ASS]
		   ,[REDDITO_CONSUMI_SEC]
		   ,[RENDITA_ASS_TRAD]
		   ,[RENDITA_ASS_UNIT]
		   ,[RENDITA_IMMOB]
		   ,[ALTRE_RENDITE]
		   ,[DIV_RIFERIMENTO]
		   ,[CAMBIO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		SUBSTRING(C6STAGING.ALL_CF_PB.RETE_PB,1,1) AS RETE,
		SUBSTRING(C6STAGING.ALL_CF_PB.CODICE_FISCALE,1,16) AS COD_FISCALE,
		YEAR(DATEADD(YY, QUANTIF.RETIREMENTYEARS, ALL_CF_PB.DATA_NASCITA)) AS ANNO_PENSIONE,
		QUANTIF.RETIREMENTYEARS AS ETA_PENSIONE,
		QUANTIF.EXPNEEDSAMT AS TOT_CONSUMI_ATTESI,
		QUANTIF.GROSSINPRIMAMT + QUANTIF.GROSSINSECAMT AS TOT_REDDITO_ANNUO,
		QUANTIF.GROSSINPRIMAMT AS REDDITO_CONSUMI_ESS,
		QUANTIF.STATEPENSIONAMT AS PENSIONE_ATTESA_,
		QUANTIF.PRIVATEPENSIONAMT AS RENDITA_PREV_COMPL,
		QUANTIF.LIFEINTERESTAMT AS RENDITA_ASS,
		QUANTIF.GROSSINSECAMT AS REDDITO_CONSUMI_SEC,
		QUANTIF.INSINTERESTAMT AS RENDITA_ASS_TRAD,
		QUANTIF.INVINTERESTAMT AS RENDITA_ASS_UNIT,
		QUANTIF.REINTERESTAMT AS RENDITA_IMMOB,
		ESTRAZIONE_OTHINTRST.ALTRE_RENDITE AS ALTRE_RENDITE,
		QUANTIF.EXPNEEDSCUR AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.ALL_CF_PB
	INNER JOIN C6STAGING.QUANTIF ON ALL_CF_PB.ID_CLI = QUANTIF.F_OID__ADDRE_81D21
	LEFT JOIN (
		SELECT  F_PQUANTIFIC_76FF6, SUM(INTERESTAMT) AS ALTRE_RENDITE
		FROM C6STAGING.OTHINTRST 
		GROUP BY F_PQUANTIFIC_76FF6
	) ESTRAZIONE_OTHINTRST 
		ON ESTRAZIONE_OTHINTRST.F_PQUANTIFIC_76FF6 = QUANTIF.OID_
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PREVIDENZIALE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PREVIDENZIALE'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_AGGREGATO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	-- Insert statements for procedure here
	TRUNCATE TABLE C6MART.RISCHIO_AGGREGATO
	
	INSERT INTO C6MART.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc,
		CREDITRISKEMIT
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
--		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_ASSOLUTO_PTF,
--		ROUND(CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_PERC_PTF,
		ROUND(CAST(cast(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO as float) AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,
		CAST(cast(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO as float) AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		ROUND(CAST(cast(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO as float) AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,
		CAST(cast(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO as float) AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		ROUND(CAST(cast(PROMETEIA_AGGR.MCVAR as float) AS DECIMAL(30,20)), 2) AS MCVAR,
		CAST(cast(PROMETEIA_AGGR.MCVARP as float) AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		--V il CC deve avere sempre copertura = 100
		CASE 
			WHEN PORTAFOGLIO = 'COMPLESSIVO|BF|CC' THEN 100
			--intervento correttivo per mancata conversione da varchar a int dell'08/04/22
			--ELSE CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) 
			ELSE CAST(cast(PROMETEIA_AGGR.COPERTURA as float) AS DECIMAL(10,2)) 
			--fine intervento correttivo per mancata conversione da varchar a int dell'08/04/22
		END AS COPERTURA,
		CAST(cast(PROMETEIA_AGGR.TOTALE as float) AS DECIMAL(30,20)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,

		-- modifica del 3/10/2018 per gestire i casi in cui numtitrc contiene caratteri speciali (cr e lf)
		   --c6mart.getCreditRiskClass(Ully_perc,numtitrc) as CREDITRISKCLASS,
		   		c6mart.getCreditRiskClass(Ully_perc,REPLACE(REPLACE(numtitrc, CHAR(13),''), CHAR(10),''))  as CREDITRISKCLASS,
		-- fine modifica del 3/10/2018
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,

		-- modifica del 3/10/2018 per gestire i casi in cui numtitrc contiene caratteri speciali (cr e lf)
		   --c6mart.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT
		   		c6mart.getCreditRiskClassEmit(Ully_perc,REPLACE(REPLACE(numtitrc, CHAR(13),''), CHAR(10),'')) as CREDITRISKCLASS_EMIT
		-- fine modifica del 3/10/2018

	FROM C6STAGING.PROMETEIA_AGGR

	--modifica per percentuali congruenti su PdC 23/07/2023 con adeguatezza
	update VC
	set VC.VAR_COMPLESSIVO_BF=RA.VAR_PERC_PTF 
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
		INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
			ON RA.RETE = VC.RETE
			AND RA.COD_FISCALE = VC.COD_FISCALE
	where RA.COD_AGGREG = 'COMPLESSIVO|BF'

	--fine modifica
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO'
		)

END





GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIO_AGGREGATO_20181003]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_AGGREGATO_20181003]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	-- Insert statements for procedure here
	TRUNCATE TABLE C6MART.RISCHIO_AGGREGATO
	
	INSERT INTO C6MART.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc,
		CREDITRISKEMIT
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
--		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_ASSOLUTO_PTF,
--		ROUND(CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		--V il CC deve avere sempre copertura = 100
		CASE 
			WHEN PORTAFOGLIO = 'COMPLESSIVO|BF|CC' THEN 100
			ELSE CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) 
		END AS COPERTURA,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(30,20)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		c6mart.getCreditRiskClass(Ully_perc,numtitrc) as CREDITRISKCLASS,
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,
		c6mart.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT
	FROM C6STAGING.PROMETEIA_AGGR
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO'
		)

END





GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIO_AGGREGATO_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_AGGREGATO_old]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	-- Insert statements for procedure here
	TRUNCATE TABLE C6MART.RISCHIO_AGGREGATO
	
	INSERT INTO C6MART.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
		CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(10,2)) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		--V il CC deve avere sempre copertura = 100
		CASE 
			WHEN PORTAFOGLIO = 'COMPLESSIVO|BF|CC' THEN 100
			ELSE CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) 
		END AS COPERTURA,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(10,2)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		c6mart.getCreditRiskClass(Ully_perc,numtitrc) as CREDITRISKCLASS
	FROM C6STAGING.PROMETEIA_AGGR
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIO_AGGREGATO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_AGGREGATO_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO_pre_selective',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	-- Insert statements for procedure here
	TRUNCATE TABLE C6MART.RISCHIO_AGGREGATO
	
	INSERT INTO C6MART.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc,
		CREDITRISKEMIT
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
--		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_ASSOLUTO_PTF,
--		ROUND(CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,3)),2) AS VAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		--V il CC deve avere sempre copertura = 100
		CASE 
			WHEN PORTAFOGLIO = 'COMPLESSIVO|BF|CC' THEN 100
			ELSE CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) 
		END AS COPERTURA,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(30,20)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		c6mart.getCreditRiskClass(Ully_perc,numtitrc) as CREDITRISKCLASS,
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,
		c6mart.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT
	FROM C6STAGING.PROMETEIA_AGGR
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO_pre_selective'
		)

END





GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_DETTAGLIO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	TRUNCATE TABLE C6MART.RISCHIO_DETTAGLIO

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	SELECT 

---- INFO TABELLA PER GESTIONE ERRORE
--		'RISCHIO_DETTAGLIO' AS TABLENAME,
--		'RETE - COD_FISCALE - COD_PROD' AS KEYCOLUMN,
--		PROMETEIA_DETT.RETE + ' - ' + PROMETEIA_DETT.CODICEFISCALE + ' - ' + PROMETEIA_DETT.CODICEPRODOTTO AS KEYVALUE,
---- FINE INFO TABELLA PER GESTIONE ERRORE

		PROMETEIA_DETT.RETE AS RETE,
		PROMETEIA_DETT.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_DETT.PORTAFOGLIO AS COD_AGGREG,
		PROMETEIA_DETT.CODICEPRODOTTO AS CHIAVE_PRODOTTO,
		PROMETEIA_DETT.VARASSOLUTO AS VAR_ASSOLUTO_PTF,
		PROMETEIA_DETT.VARPERCENTUALE AS VAR_PERC_PTF,
		PROMETEIA_DETT.CVARASSOLUTO AS CVAR_ASSOLUTO_PTF,
		PROMETEIA_DETT.CVARPERCENTUALE AS CVAR_PERC_PTF,
		PROMETEIA_DETT.MCVAR AS MCVAR,
		PROMETEIA_DETT.MCVARP AS MCVARP,
		PROMETEIA_DETT.TIPOCOPERTURA AS TIPO_COPERTURA,
		PROMETEIA_DETT.CTVNOMINALE AS CTV_AGGREG,
		PROMETEIA_DETT.PIAZZA AS MERCATO_CONTRATT,
		PROMETEIA_DETT.CODVAL AS DIV_CONTRATT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.PROMETEIA_DETT

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIO_DETTAGLIO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_RISCHIO_DETTAGLIO_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	TRUNCATE TABLE C6MART.RISCHIO_DETTAGLIO

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	SELECT 

---- INFO TABELLA PER GESTIONE ERRORE
--		'RISCHIO_DETTAGLIO' AS TABLENAME,
--		'RETE - COD_FISCALE - COD_PROD' AS KEYCOLUMN,
--		PROMETEIA_DETT.RETE + ' - ' + PROMETEIA_DETT.CODICEFISCALE + ' - ' + PROMETEIA_DETT.CODICEPRODOTTO AS KEYVALUE,
---- FINE INFO TABELLA PER GESTIONE ERRORE

		PROMETEIA_DETT.RETE AS RETE,
		PROMETEIA_DETT.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_DETT.PORTAFOGLIO AS COD_AGGREG,
		PROMETEIA_DETT.CODICEPRODOTTO AS CHIAVE_PRODOTTO,
		PROMETEIA_DETT.VARASSOLUTO AS VAR_ASSOLUTO_PTF,
		PROMETEIA_DETT.VARPERCENTUALE AS VAR_PERC_PTF,
		PROMETEIA_DETT.CVARASSOLUTO AS CVAR_ASSOLUTO_PTF,
		PROMETEIA_DETT.CVARPERCENTUALE AS CVAR_PERC_PTF,
		PROMETEIA_DETT.MCVAR AS MCVAR,
		PROMETEIA_DETT.MCVARP AS MCVARP,
		PROMETEIA_DETT.TIPOCOPERTURA AS TIPO_COPERTURA,
		PROMETEIA_DETT.CTVNOMINALE AS CTV_AGGREG,
		PROMETEIA_DETT.PIAZZA AS MERCATO_CONTRATT,
		PROMETEIA_DETT.CODVAL AS DIV_CONTRATT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.PROMETEIA_DETT

END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_RISCHIOEMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[DM_RISCHIOEMITTENTI]
as
begin 
truncate table [C6Mart].[RischioEmittenti]
INSERT INTO [C6Mart].[RischioEmittenti]      --C6StampeCentralizzate 
           ([Classe]
           ,[Min]
           ,[Max]
           ,[Ordine])
	SELECT [Classe]
		  ,[MinVal]
		  ,[MaxVal]
		  ,[Ordine]
	 FROM [C6Staging].[RiskEmit]           --[C6StampeCentralizzate]
end

GO
/****** Object:  StoredProcedure [C6Mart].[DM_STRUTTURA_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <Create Date,,>
-- Description:	<Popola la struttura piatta dei promotori,,>
-- =============================================
CREATE procedure [C6Mart].[DM_STRUTTURA_RETE]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
DECLARE @righe INT

SET @righe = 0

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_STRUTTURA_RETE',
	GETDATE(),
	'Elaborazione giornaliera'
)

--codice per forzare l'exit in caso di delay delle risposte dal SIMPB
--if (select count(*) from log_esecuzione where nome='SIM_PB' and abs(datediff(minute,getdate(),inizio))>350)>=1
--	begin RAISERROR ('Risposte in ritardo dai WSDL del SIMPB',16,10);
--	select * from blablabla;
--   end

--V Utilizzato per mandare avanti la procedura, al momento non ho clienti associati al pb
delete from  C6Staging.SPB_NAC
where
codiceRete = 'S'
and codiceAgente = '008521'
and codiceManager = 'I03128'

--EN20160427: Eliminare agenti con codici maggiore delal capienza della tabella destinaria (varchr(6), per mandare avanti la procedura
--            per ora riguarda solo l'agente 'AM Fittizio di Agente Speciale Firenze'
delete from  C6Staging.SPB_NAC
where LEN(codiceagente) > 6
and codicemanager = ''

--SVUOTAMENTO STRUTTURA
TRUNCATE TABLE C6Mart.STRUTTURA_RETE

--INSERIMENTO PB
INSERT INTO C6Mart.STRUTTURA_RETE 
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT 
		AM.codicerete as Rete,
		dbo.CodiceAgenteDirettiDi(PB.codiceagente) as PB, PB.cognomeNome as cognomeNomePB,
		dbo.CodiceAgenteDirettiDi(SPV.codiceagente) as SPV, SPV.cognomeNome as cognomeNomeSPV,
		dbo.CodiceAgenteDirettiDi(RM.codiceagente) as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		PB.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
INNER JOIN C6Staging.SPB_NAC SPV
ON
	SPV.codicerete = RM.codicerete
	AND 
	SPV.codicemanager = RM.codiceagente 
	AND
	SPV.LivelloNellaGerarchia like 'SPV%'
INNER JOIN C6Staging.SPB_NAC PB
ON
	PB.codicerete = SPV.codicerete
	AND 
	PB.codicemanager = SPV.codiceagente 
	AND
	PB.LivelloNellaGerarchia = 'PB'
	AND 
	PB.cognomeNome not LIKE 'I FITTIZI DI%'
WHERE AM.codicemanager = ''
AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6,8,10

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO AM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	
AM.codicerete as Rete,
		AM.codiceagente as PB, AM.cognomeNome as cognomeNomePB,
		AM.codiceagente as SPV, AM.cognomeNome as cognomeNomeSPV,
		AM.codiceagente as RM, AM.cognomeNome as cognomeNomeRM,
		AM.codiceagente as DM, AM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		AM.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO DM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		DM.codiceagente as PB, DM.cognomeNome as cognomeNomePB,
		DM.codiceagente as SPV, DM.cognomeNome as cognomeNomeSPV,
		DM.codiceagente as RM, DM.cognomeNome as cognomeNomeRM,
		DM.codiceagente as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		DM.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
	AND left(DM.codiceagente,1) NOT  in ('I','S')
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO RM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		RM.codiceagente as PB, RM.cognomeNome as cognomeNomePB,
		RM.codiceagente as SPV, RM.cognomeNome as cognomeNomeSPV,
		RM.codiceagente as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		RM.LivelloNellaGerarchia as Livello
from C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
--	AND left(DM.codiceagente,1) <> 'I'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
	AND left(RM.codiceagente,1) NOT IN ('I','S')
where AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO SPV COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		SPV.codiceagente as PB, SPV.cognomeNome as cognomeNomePB,
		SPV.codiceagente as SPV, SPV.cognomeNome as cognomeNomeSPV,
		dbo.CodiceAgenteDirettiDi(RM.codiceagente) as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		SPV.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
--	AND left(DM.codiceagente,1) <> 'I'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
--	AND left(RM.codiceagente,1) NOT IN ('I','S')
INNER join C6Staging.SPB_NAC SPV
ON
	SPV.codicerete = RM.codicerete
	AND 
	SPV.codicemanager = RM.codiceagente 
	AND
	SPV.LivelloNellaGerarchia like 'SPV%'
	AND left(SPV.codiceagente,1) NOT IN ('I','S')
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6,8

SET @righe = @righe + @@ROWCOUNT

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @righe
WHERE
	Nome = 'DM_STRUTTURA_RETE' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_STRUTTURA_RETE'
	)

-- 14 GENNAIO 2009 MODIFICA PAOLO GIOVANETTI PER AGGIUNTA ID_ELAB
--ESTRAZIONE ID_ELAB
DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MART.GETIDELAB()

UPDATE C6Mart.STRUTTURA_RETE 
SET ID_ELAB = @ID_ELAB
WHERE ID_ELAB IS NULL
-- 14 GENNAIO 2009 FINE MODIFICA PAOLO GIOVANETTI PER AGGIUNTA ID_ELAB
END



GO
/****** Object:  StoredProcedure [C6Mart].[DM_STRUTTURA_RETE_20160427]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <Create Date,,>
-- Description:	<Popola la struttura piatta dei promotori,,>
-- =============================================
CREATE procedure [C6Mart].[DM_STRUTTURA_RETE_20160427]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
DECLARE @righe INT

SET @righe = 0

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_STRUTTURA_RETE',
	GETDATE(),
	'Elaborazione giornaliera'
)

--V Utilizzato per mandare avanti la procedura, al momento non ho clienti associati al pb
delete from  C6Staging.SPB_NAC
where
codiceRete = 'S'
and codiceAgente = '008521'
and codiceManager = 'I03128'


--SVUOTAMENTO STRUTTURA
TRUNCATE TABLE C6Mart.STRUTTURA_RETE

--INSERIMENTO PB
INSERT INTO C6Mart.STRUTTURA_RETE 
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT 
		AM.codicerete as Rete,
		dbo.CodiceAgenteDirettiDi(PB.codiceagente) as PB, PB.cognomeNome as cognomeNomePB,
		dbo.CodiceAgenteDirettiDi(SPV.codiceagente) as SPV, SPV.cognomeNome as cognomeNomeSPV,
		dbo.CodiceAgenteDirettiDi(RM.codiceagente) as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		PB.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
INNER JOIN C6Staging.SPB_NAC SPV
ON
	SPV.codicerete = RM.codicerete
	AND 
	SPV.codicemanager = RM.codiceagente 
	AND
	SPV.LivelloNellaGerarchia like 'SPV%'
INNER JOIN C6Staging.SPB_NAC PB
ON
	PB.codicerete = SPV.codicerete
	AND 
	PB.codicemanager = SPV.codiceagente 
	AND
	PB.LivelloNellaGerarchia = 'PB'
	AND 
	PB.cognomeNome not LIKE 'I FITTIZI DI%'
WHERE AM.codicemanager = ''
AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6,8,10

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO AM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	
AM.codicerete as Rete,
		AM.codiceagente as PB, AM.cognomeNome as cognomeNomePB,
		AM.codiceagente as SPV, AM.cognomeNome as cognomeNomeSPV,
		AM.codiceagente as RM, AM.cognomeNome as cognomeNomeRM,
		AM.codiceagente as DM, AM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		AM.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO DM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		DM.codiceagente as PB, DM.cognomeNome as cognomeNomePB,
		DM.codiceagente as SPV, DM.cognomeNome as cognomeNomeSPV,
		DM.codiceagente as RM, DM.cognomeNome as cognomeNomeRM,
		DM.codiceagente as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		DM.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
	AND left(DM.codiceagente,1) NOT  in ('I','S')
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO RM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		RM.codiceagente as PB, RM.cognomeNome as cognomeNomePB,
		RM.codiceagente as SPV, RM.cognomeNome as cognomeNomeSPV,
		RM.codiceagente as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		RM.LivelloNellaGerarchia as Livello
from C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
--	AND left(DM.codiceagente,1) <> 'I'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
	AND left(RM.codiceagente,1) NOT IN ('I','S')
where AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO SPV COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		SPV.codiceagente as PB, SPV.cognomeNome as cognomeNomePB,
		SPV.codiceagente as SPV, SPV.cognomeNome as cognomeNomeSPV,
		dbo.CodiceAgenteDirettiDi(RM.codiceagente) as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		SPV.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
--	AND left(DM.codiceagente,1) <> 'I'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
--	AND left(RM.codiceagente,1) NOT IN ('I','S')
INNER join C6Staging.SPB_NAC SPV
ON
	SPV.codicerete = RM.codicerete
	AND 
	SPV.codicemanager = RM.codiceagente 
	AND
	SPV.LivelloNellaGerarchia like 'SPV%'
	AND left(SPV.codiceagente,1) NOT IN ('I','S')
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6,8

SET @righe = @righe + @@ROWCOUNT

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @righe
WHERE
	Nome = 'DM_STRUTTURA_RETE' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_STRUTTURA_RETE'
	)

-- 14 GENNAIO 2009 MODIFICA PAOLO GIOVANETTI PER AGGIUNTA ID_ELAB
--ESTRAZIONE ID_ELAB
DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MART.GETIDELAB()

UPDATE C6Mart.STRUTTURA_RETE 
SET ID_ELAB = @ID_ELAB
WHERE ID_ELAB IS NULL
-- 14 GENNAIO 2009 FINE MODIFICA PAOLO GIOVANETTI PER AGGIUNTA ID_ELAB
END


GO
/****** Object:  StoredProcedure [C6Mart].[DM_STRUTTURA_RETE_20161024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <Create Date,,>
-- Description:	<Popola la struttura piatta dei promotori,,>
-- =============================================
CREATE procedure [C6Mart].[DM_STRUTTURA_RETE_20161024]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
DECLARE @righe INT

SET @righe = 0

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_STRUTTURA_RETE',
	GETDATE(),
	'Elaborazione giornaliera'
)

--V Utilizzato per mandare avanti la procedura, al momento non ho clienti associati al pb
delete from  C6Staging.SPB_NAC
where
codiceRete = 'S'
and codiceAgente = '008521'
and codiceManager = 'I03128'


--SVUOTAMENTO STRUTTURA
TRUNCATE TABLE C6Mart.STRUTTURA_RETE

--INSERIMENTO PB
INSERT INTO C6Mart.STRUTTURA_RETE 
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT 
		AM.codicerete as Rete,
		dbo.CodiceAgenteDirettiDi(PB.codiceagente) as PB, PB.cognomeNome as cognomeNomePB,
		dbo.CodiceAgenteDirettiDi(SPV.codiceagente) as SPV, SPV.cognomeNome as cognomeNomeSPV,
		dbo.CodiceAgenteDirettiDi(RM.codiceagente) as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		PB.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
INNER JOIN C6Staging.SPB_NAC SPV
ON
	SPV.codicerete = RM.codicerete
	AND 
	SPV.codicemanager = RM.codiceagente 
	AND
	SPV.LivelloNellaGerarchia like 'SPV%'
INNER JOIN C6Staging.SPB_NAC PB
ON
	PB.codicerete = SPV.codicerete
	AND 
	PB.codicemanager = SPV.codiceagente 
	AND
	PB.LivelloNellaGerarchia = 'PB'
	AND 
	PB.cognomeNome not LIKE 'I FITTIZI DI%'
WHERE AM.codicemanager = ''
AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6,8,10

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO AM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	
AM.codicerete as Rete,
		AM.codiceagente as PB, AM.cognomeNome as cognomeNomePB,
		AM.codiceagente as SPV, AM.cognomeNome as cognomeNomeSPV,
		AM.codiceagente as RM, AM.cognomeNome as cognomeNomeRM,
		AM.codiceagente as DM, AM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		AM.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO DM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		DM.codiceagente as PB, DM.cognomeNome as cognomeNomePB,
		DM.codiceagente as SPV, DM.cognomeNome as cognomeNomeSPV,
		DM.codiceagente as RM, DM.cognomeNome as cognomeNomeRM,
		DM.codiceagente as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		DM.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
	AND left(DM.codiceagente,1) NOT  in ('I','S')
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO RM COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		RM.codiceagente as PB, RM.cognomeNome as cognomeNomePB,
		RM.codiceagente as SPV, RM.cognomeNome as cognomeNomeSPV,
		RM.codiceagente as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		RM.LivelloNellaGerarchia as Livello
from C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
--	AND left(DM.codiceagente,1) <> 'I'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
	AND left(RM.codiceagente,1) NOT IN ('I','S')
where AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6

SET @righe = @righe + @@ROWCOUNT

--INSERIMENTO SPV COME PB
INSERT INTO C6Mart.STRUTTURA_RETE
		   ([Rete]
		   ,[PB]
		   ,[CognomeNomePB]
		   ,[SPV]
		   ,[CognomeNomeSPV]
		   ,[RM]
		   ,[CognomeNomeRM]
		   ,[DM]
		   ,[CognomeNomeDM]
		   ,[AM]
		   ,[CognomeNomeAM]
		   ,[Livello])
SELECT	

AM.codicerete as Rete,
		SPV.codiceagente as PB, SPV.cognomeNome as cognomeNomePB,
		SPV.codiceagente as SPV, SPV.cognomeNome as cognomeNomeSPV,
		dbo.CodiceAgenteDirettiDi(RM.codiceagente) as RM, RM.cognomeNome as cognomeNomeRM,
		dbo.CodiceAgenteDirettiDi(DM.codiceagente) as DM, DM.cognomeNome as cognomeNomeDM,
		AM.codiceagente as AM, AM.cognomeNome as cognomeNomeAM,
		SPV.LivelloNellaGerarchia as Livello
FROM C6Staging.SPB_NAC AM
INNER JOIN C6Staging.SPB_NAC DM
ON
	DM.codicerete = AM.codicerete
	AND 
	DM.codicemanager = AM.codiceagente 
	AND
	DM.LivelloNellaGerarchia = 'DM'
--	AND left(DM.codiceagente,1) <> 'I'
INNER JOIN C6Staging.SPB_NAC RM
ON
	RM.codicerete = DM.codicerete
	AND 
	RM.codicemanager = DM.codiceagente 
	AND
	RM.LivelloNellaGerarchia = 'RM'
--	AND left(RM.codiceagente,1) NOT IN ('I','S')
INNER join C6Staging.SPB_NAC SPV
ON
	SPV.codicerete = RM.codicerete
	AND 
	SPV.codicemanager = RM.codiceagente 
	AND
	SPV.LivelloNellaGerarchia like 'SPV%'
	AND left(SPV.codiceagente,1) NOT IN ('I','S')
WHERE AM.codicemanager = ''
	AND AM.LivelloNellaGerarchia = 'AM'
ORDER BY 1,2,4,6,8

SET @righe = @righe + @@ROWCOUNT

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @righe
WHERE
	Nome = 'DM_STRUTTURA_RETE' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_STRUTTURA_RETE'
	)

-- 14 GENNAIO 2009 MODIFICA PAOLO GIOVANETTI PER AGGIUNTA ID_ELAB
--ESTRAZIONE ID_ELAB
DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MART.GETIDELAB()

UPDATE C6Mart.STRUTTURA_RETE 
SET ID_ELAB = @ID_ELAB
WHERE ID_ELAB IS NULL
-- 14 GENNAIO 2009 FINE MODIFICA PAOLO GIOVANETTI PER AGGIUNTA ID_ELAB
END




GO
/****** Object:  StoredProcedure [C6Mart].[DM_TEST_QUALITY]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_TEST_QUALITY]
AS
BEGIN
	SET NOCOUNT ON;
	
update c6mart.email_pb set email = 'fabio.consoli@hp.com' where codice = '015312'
update c6mart.anag_promotori set e_mail = 'fabio.consoli@hp.com' where id_promotore = '015312'
--***********************************************************************************************************
 --***********************************************************************************************************


--***********************************************************************************************************
--***********************************************************************************************************

 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.2' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO --SUBSTRING(PDF.NomeFile, 0, 12)
			WHERE 
			-- modifica del 3/10/2018 per gestire i valori 'date' del campo e che mandano in errore di conversione la sp  
			    --VC.INVIOBENVENUTO = 'S' 
			 cast(VC.InvioBenvenuto as varchar) = 'S' 
			 -- fine modifica del 3/10/2018

			AND PDF.CODICEFISCALE IS NULL
--***********************************************************************************************************
 --***********************************************************************************************************
			
	INSERT INTO C6MART.TEST_QUALITY
	SELECT
		 RETE,
		 COD_FISCALE,		 
		 CASE WHEN PMOD.PRC > 100 
			THEN 'SCARTO PER PIRAMIDE MODELLO SUPERIORE A 100'
			ELSE 'SCARTO PER PIRAMIDE MODELLO INFERIORE A 100'
		 END AS MOTIVO
     --FROM C6MART.VCONTRATTISEI VC
      FROM C6MART.VCONTRATTI VC
		INNER JOIN	
			(SELECT chiaveclientepb, sum(percentualeprogetto) AS PRC FROM c6staging.rp_progettipiramidemodello 
				WHERE 1=1
				AND ((area = 'Inv' and tipoProgetto = 1) OR (area <> 'Inv' and tipoProgetto = 0))
				AND DtFineValidita > getdate() 
				group by chiaveclientepb
				having sum(percentualeprogetto) <> 0 AND sum(percentualeprogetto) <> 100 
				) AS PMOD
		 ON VC.chiaveclientepb = PMOD.chiaveclientepb	
	 WHERE	PMOD.PRC <> 0 AND PMOD.PRC <> 100  
			--AND ISNULL(VC.INVIOBENVENUTO,'N') = 'N'
	 
	 
--INSERT INTO C6MART.TEST_QUALITY 
--SELECT  DISTINCT RETE,COD_FISCALE,'DATO ERRATO C6MART.ASSET_PERC' FROM C6MART.PATRIMONIO_BF WHERE COD_PRODOTTO IN
	 --(select COD_PRODOTTO  from C6MART.ASSET_PERC WHERE PERC < 0 OR PERC > 100)
	 


END

























GO
/****** Object:  StoredProcedure [C6Mart].[DM_TEST_QUALITY_20181003]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_TEST_QUALITY_20181003]
AS
BEGIN
	SET NOCOUNT ON;
	
update c6mart.email_pb set email = 'fabio.consoli@hp.com' where codice = '015312'
update c6mart.anag_promotori set e_mail = 'fabio.consoli@hp.com' where id_promotore = '015312'
--***********************************************************************************************************
 --***********************************************************************************************************


--***********************************************************************************************************
--***********************************************************************************************************

 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.2' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO --SUBSTRING(PDF.NomeFile, 0, 12)
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
--***********************************************************************************************************
 --***********************************************************************************************************
			
	INSERT INTO C6MART.TEST_QUALITY
	SELECT
		 RETE,
		 COD_FISCALE,		 
		 CASE WHEN PMOD.PRC > 100 
			THEN 'SCARTO PER PIRAMIDE MODELLO SUPERIORE A 100'
			ELSE 'SCARTO PER PIRAMIDE MODELLO INFERIORE A 100'
		 END AS MOTIVO
     --FROM C6MART.VCONTRATTISEI VC
      FROM C6MART.VCONTRATTI VC
		INNER JOIN	
			(SELECT chiaveclientepb, sum(percentualeprogetto) AS PRC FROM c6staging.rp_progettipiramidemodello 
				WHERE 1=1
				AND ((area = 'Inv' and tipoProgetto = 1) OR (area <> 'Inv' and tipoProgetto = 0))
				AND DtFineValidita > getdate() 
				group by chiaveclientepb
				having sum(percentualeprogetto) <> 0 AND sum(percentualeprogetto) <> 100 
				) AS PMOD
		 ON VC.chiaveclientepb = PMOD.chiaveclientepb	
	 WHERE	PMOD.PRC <> 0 AND PMOD.PRC <> 100  
			--AND ISNULL(VC.INVIOBENVENUTO,'N') = 'N'
	 
	 
INSERT INTO C6MART.TEST_QUALITY 
SELECT  DISTINCT RETE,COD_FISCALE,'DATO ERRATO C6MART.ASSET_PERC' FROM C6MART.PATRIMONIO_BF WHERE COD_PRODOTTO IN
	 (select COD_PRODOTTO  from C6MART.ASSET_PERC WHERE PERC < 0 OR PERC > 100)
	 


END

























GO
/****** Object:  StoredProcedure [C6Mart].[DM_VAR_ADEGUATEZZA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE   procedure [C6Mart].[DM_VAR_ADEGUATEZZA]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_VAR_ADEGUATEZZA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

truncate table C6Staging.VAR_ADEGUATEZZA

	insert into C6Staging.VAR_ADEGUATEZZA
	select RETE,CODICE_FISCALE,0.00 as VAR_COMPLESSIO_BF,'N' from C6Staging.VAR_ADEGUATEZZA_INDICATORI
	 
	 	 -- il VAR_COMPLESSIVO BF VERRA POI POPOLATA IN [C6Mart].[DM_RISCHIO_AGGREGATO]
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_VAR_ADEGUATEZZA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_VAR_ADEGUATEZZA'
		)

END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_Generator]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6Mart].[GESTIONE_C6_S_Generator] 1, 4, 'T'
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 13, 'T' (monitoraggio,private,trim)
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 12, 'T' (monitoraggio,old/affluent,trim)
CREATE  procedure [C6Mart].[GESTIONE_C6_S_Generator]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'G'
AS
BEGIN
	SET NOCOUNT ON;

	if (@idModello=6)
begin
select * from C6Mart.generator_direct where codicesezione not like 'S%' and codiceSezione not in('FD147','FD133Bis') order BY ordineCapitolo,ordineParagrafo,ordineSezione
end

if (@idModello=5)
begin
SELECT * 
from C6Mart.Generator_Diagnosi
where codiceSezione not in('S187','S188')
 ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

end

END


 






















GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_Generator_AND]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6Mart].[GESTIONE_C6_S_Generator] 1, 4, 'T'
CREATE procedure [C6Mart].[GESTIONE_C6_S_Generator_AND]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'G'
AS
BEGIN
	SET NOCOUNT ON;
-- CREO LA TABELLA #R6Capitolopdf
SELECT  R6Capitolo.id, 
		R6Capitolo.titolo, 
		R6Capitolo.testo,
		R6Capitolo.testoAlternativo,
		R6Capitolo.nuovapagina, 
		R6Capitolo.queryOracle, 
		R6Capitolo.querySql,
		R6Capitolo.querySqlPeriodico
into #R6CAPITOLOPDF  
FROM   
ReportSezionePers AS a INNER JOIN
R6_SezioneR6Capitolo AS b ON a.IdSezione = b.IdSezione INNER JOIN
R6Capitolo ON b.IdCapitoloPDF = R6Capitolo.id
where a.idreport = @idModello

-- CREO LA TABELLA #R6ParagrafoPDF

SELECT  R6Paragrafo.id, 
		R6Paragrafo.titolo, 
		R6Paragrafo.testo, 
		R6Paragrafo.queryOracle, 
		R6Paragrafo.querySql, 
		R6Paragrafo.querySqlPeriodico,
		R6Paragrafo.SottoTitoloQuery,
		R6Paragrafo.SpazioNecessarioSezioneSuccessiva	

into #R6PARAGRAFOPDF   
FROM  ReportSezionePers AS a INNER JOIN
               R6_SezioneR6Paragrafo AS b ON a.IdSezione = b.IdSezione INNER JOIN
               R6Paragrafo ON b.IdParagrafoPDF = R6Paragrafo.id
				where a.idreport = @idModello


-- CREO LA TABELLA #R6SEZIONEPDF
SELECT 
		R6Sezione.id, 
		R6Sezione.codice, 
		R6Sezione.queryOracle, 
		R6Sezione.querySql, 
		R6Sezione.querySqlPeriodico,
		R6Sezione.ordineQueryOracle, 
		R6Sezione.ordineQuerySql
		--R6Sezione.nuovaPaginaDopo
into #R6SEZIONEPDF 
FROM  ReportSezionePers AS a INNER JOIN
               R6_SezioneR6Sezione AS b ON a.IdSezione = b.idFkSezione INNER JOIN
               R6Sezione ON b.idFkC6Sezione = R6Sezione.id
WHERE (a.IdReport = @idModello)


SELECT  DISTINCT [#R6CAPITOLOPDF].id as idCapitolo
		,[R6ReportR6Capitolo].[ordineCapitolo] as ordineCapitolo
		,[#R6CAPITOLOPDF].[titolo] as titoloCapitolo
		,[#R6CAPITOLOPDF].[testo] as testoCapitolo
		,[#R6CAPITOLOPDF].[testoAlternativo] as testoCapitoloAlternativo
		,[#R6CAPITOLOPDF].[nuovapagina] as nuovaPaginaCapitolo
--		,[#R6CAPITOLOPDF].[queryOracle] as queryOracleCapitolo	


		,isnull([#R6CAPITOLOPDF].[querySqlPeriodico],'')	 as querySqlCapitoloT
		,isnull([#R6CAPITOLOPDF].[querySql],'') as querySqlCapitoloG
 
 
 
		,[#R6PARAGRAFOPDF].[id] as idParagrafo
		,[R6CapitoloR6Paragrafo].[ordineParagrafo] as ordineParagrafo
		,[#R6PARAGRAFOPDF].[titolo] as titoloParagrafo
		,[#R6PARAGRAFOPDF].[sottoTitoloQuery] as sottoTitoloParagrafo
		,[#R6PARAGRAFOPDF].[testo] as testoParagrafo
		,[#R6PARAGRAFOPDF].spazioNecessarioSezioneSuccessiva as spazioNecessarioSezioneSuccessiva	
--		,isnull([#R6PARAGRAFOPDF].[queryOracle],'') as queryOracleParagrafo

 ,isnull([#R6PARAGRAFOPDF].[querySql],'')  as querySqlParagrafoG
,isnull([#R6PARAGRAFOPDF].[querySqlPeriodico],'') as querySqlParagrafoT
 
		,[R6CapitoloR6Paragrafo].[indicizzato] as indicizzatoParagrafo		
		,[R6ParagrafoR6Sezione].[ordineSezione] as ordineSezione
		,[#R6SEZIONEPDF].[id] as idSezione
		,[#R6SEZIONEPDF].[codice] as codiceSezione
--		,isnull([#R6SEZIONEPDF].[queryOracle],'') as queryOracleSezione

 ,isnull([#R6SEZIONEPDF].[querySql],'') as querySqlSezioneG
 ,isnull([#R6SEZIONEPDF].[querySqlPeriodico],'') as querySqlSezioneT
 
		,[R6ParagrafoR6Sezione].indicizzato as indicizzatoSezione
		,[R6ParagrafoR6Sezione].[filtroDataView] as filtroSezione
		,[R6ParagrafoR6Sezione].[titolo] as titoloSezione
		,isnull([R6ParagrafoR6Sezione].[testo],'') as testoSezione
		,isnull([R6ParagrafoR6Sezione].[testo1] ,'') as testoSezioneAlternativo
		,isnull([R6ParagrafoR6Sezione].[nota],'') as notaSezione
		,isnull([R6ParagrafoR6Sezione].[nota1],'') as notaSezioneAlternativo,
		[R6ParagrafoR6Sezione].[nuovaPaginaDopo] as nuovaPaginaDopo
		--,[#R6SEZIONEPDF].nuovaPaginaDopo as nuovaPaginaDopo
into #tab		
FROM  #R6SEZIONEPDF
INNER JOIN R6ParagrafoR6Sezione ON #R6SEZIONEPDF.id = R6ParagrafoR6Sezione.idFkSezione 
INNER JOIN #R6PARAGRAFOPDF ON R6ParagrafoR6Sezione.idFkParagrafo = #R6PARAGRAFOPDF.id 
INNER JOIN R6CapitoloR6Paragrafo ON #R6PARAGRAFOPDF.id = R6CapitoloR6Paragrafo.idFkParagrafo 
INNER JOIN #R6CAPITOLOPDF ON R6CapitoloR6Paragrafo.idFkCapitolo = #R6CAPITOLOPDF.id
INNER JOIN R6ReportR6Capitolo ON #R6CAPITOLOPDF.id = R6ReportR6Capitolo.idFkCapitolo
WHERE [R6ParagrafoR6Sezione].idFkReport = @idReport
ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

insert into c6mart.modellopdf   
select @idModello as idModelloPdf,* from #tab



--  [C6Mart].[GESTIONE_C6_S_Generator_and] 4, 13, 'T'
 
 
 
 select  
	 --idModelloPdf,
	  idCapitolo	
	 ,ordineCapitolo	
	 ,titoloCapitolo	
	 ,testoCapitolo	
	 ,testoCapitoloAlternativo	
	 ,nuovaPaginaCapitolo	
	 --,querySqlCapitoloT	
	 ,querySqlCapitoloG	 as querySqlCapitoloG
	 ,idParagrafo	
	 ,ordineParagrafo	
	 ,titoloParagrafo	
	 ,sottoTitoloParagrafo	
	 ,testoParagrafo	
	 ,spazioNecessarioSezioneSuccessiva	
	 --,querySqlParagrafoG	
	 ,querySqlParagrafoT	as querySqlParagrafo 
	 ,indicizzatoParagrafo	
	 ,ordineSezione	
	 ,idSezione	
	 ,codiceSezione	
	-- ,querySqlSezioneG	
	 ,querySqlSezioneT	 as querySqlSezione
	 ,indicizzatoSezione	
	 ,filtroSezione	
	 ,titoloSezione	
	 ,testoSezione	
	 ,testoSezioneAlternativo	
	 ,notaSezione	
	 ,notaSezioneAlternativo	
	 ,nuovaPaginaDopo
  FROM c6mart.modellopdf where idmodellopdf = 12 
 ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione
 
 
 
/*
SELECT *
FROM    #R6CAPITOLOPDF INNER JOIN R6CapitoloR6Paragrafo 
		ON #R6CAPITOLOPDF.id = R6CapitoloR6Paragrafo.idFkCapitolo 
		and R6CapitoloR6Paragrafo.idFkReport = @idReport
		INNER JOIN
        #R6PARAGRAFOPDF ON 
		R6CapitoloR6Paragrafo.idFkParagrafo = #R6PARAGRAFOPDF.id 
		INNER JOIN
        R6ParagrafoR6Sezione ON 
		#R6PARAGRAFOPDF.id = R6ParagrafoR6Sezione.idFkParagrafo 
		and R6ParagrafoR6Sezione.idFkReport = @idReport
		INNER JOIN
        #R6SEZIONEPDF ON 
		R6ParagrafoR6Sezione.idFkSezione = #R6SEZIONEPDF.id
*/

DROP TABLE #R6CAPITOLOPDF
DROP TABLE #R6PARAGRAFOPDF
DROP TABLE #R6SEZIONEPDF


END
























GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_Generator_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6Mart].[GESTIONE_C6_S_Generator] 1, 4, 'T'
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 13, 'T' (monitoraggio,private,trim)
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 12, 'T' (monitoraggio,old/affluent,trim)
CREATE  procedure [C6Mart].[GESTIONE_C6_S_Generator_bkp_20250228_Pre_ESG2024]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'G'
AS
BEGIN
	SET NOCOUNT ON;

	if (@idModello=6)
begin
select * from C6Mart.generator_direct where codicesezione not like 'S%' and codiceSezione not in('FD147','FD133Bis') order BY ordineCapitolo,ordineParagrafo,ordineSezione
end

if (@idModello=5)
begin
SELECT * 
from C6Mart.Generator_Diagnosi
--where codiceSezione not in('S185')
 ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

end

END


 






















GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_Generator_EN]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- [C6Mart].[GESTIONE_C6_S_Generator] 1, 4, 'T'
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 13, 'T' -- (monitoraggio,private,trim)
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 12, 'T' -- (monitoraggio,old/affluent,trim)
-- [C6Mart].[GESTIONE_C6_S_Generator] 1, 5, 'T' --  (trimestrale/Diagnosi 'G',old) 

CREATE procedure [C6Mart].[GESTIONE_C6_S_Generator_EN]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'G'
AS
BEGIN
	SET NOCOUNT ON;





-- CREO LA TABELLA #R6Capitolopdf
SELECT  R6Capitolo.id, 
		R6Capitolo.titolo, 
		R6Capitolo.testo,
		R6Capitolo.testoAlternativo,
		R6Capitolo.nuovapagina, 
		R6Capitolo.queryOracle, 
		R6Capitolo.querySql,
		R6Capitolo.querySqlPeriodico
into #R6CAPITOLOPDF  
FROM   
ReportSezionePers AS a INNER JOIN
R6_SezioneR6Capitolo AS b ON a.IdSezione = b.IdSezione INNER JOIN
R6Capitolo ON b.IdCapitoloPDF = R6Capitolo.id
where a.idreport = @idModello

-- CREO LA TABELLA #R6ParagrafoPDF

SELECT  R6Paragrafo.id, 
		R6Paragrafo.titolo, 
		R6Paragrafo.testo, 
		R6Paragrafo.queryOracle, 
		R6Paragrafo.querySql, 
		R6Paragrafo.querySqlPeriodico,
		R6Paragrafo.SottoTitoloQuery,
		R6Paragrafo.SpazioNecessarioSezioneSuccessiva	

into #R6PARAGRAFOPDF   
FROM  ReportSezionePers AS a INNER JOIN
               R6_SezioneR6Paragrafo AS b ON a.IdSezione = b.IdSezione INNER JOIN
               R6Paragrafo ON b.IdParagrafoPDF = R6Paragrafo.id
				where a.idreport = @idModello


-- CREO LA TABELLA #R6SEZIONEPDF
SELECT 
		R6Sezione.id, 
		R6Sezione.codice, 
		R6Sezione.queryOracle, 
		R6Sezione.querySql, 
		R6Sezione.querySqlPeriodico,
		R6Sezione.ordineQueryOracle, 
		R6Sezione.ordineQuerySql
		--R6Sezione.nuovaPaginaDopo
into #R6SEZIONEPDF 
FROM  ReportSezionePers AS a INNER JOIN
               R6_SezioneR6Sezione AS b ON a.IdSezione = b.idFkSezione INNER JOIN
               R6Sezione ON b.idFkC6Sezione = R6Sezione.id
WHERE (a.IdReport = @idModello)


SELECT  DISTINCT [#R6CAPITOLOPDF].id as idCapitolo
		,[R6ReportR6Capitolo].[ordineCapitolo] as ordineCapitolo
		,[#R6CAPITOLOPDF].[titolo] as titoloCapitolo
		,[#R6CAPITOLOPDF].[testo] as testoCapitolo
		,[#R6CAPITOLOPDF].[testoAlternativo] as testoCapitoloAlternativo
		,[#R6CAPITOLOPDF].[nuovapagina] as nuovaPaginaCapitolo
--		,[#R6CAPITOLOPDF].[queryOracle] as queryOracleCapitolo		
,Case when @periodicita = 'G' then  isnull([#R6CAPITOLOPDF].[querySql],'') else
 Case when @periodicita = 'T' then  isnull([#R6CAPITOLOPDF].[querySqlPeriodico],'')	
 END END as querySqlCapitolo	
		,[#R6PARAGRAFOPDF].[id] as idParagrafo
		,[R6CapitoloR6Paragrafo].[ordineParagrafo] as ordineParagrafo
		,[#R6PARAGRAFOPDF].[titolo] as titoloParagrafo
		,[#R6PARAGRAFOPDF].[sottoTitoloQuery] as sottoTitoloParagrafo
		,[#R6PARAGRAFOPDF].[testo] as testoParagrafo
		,[#R6PARAGRAFOPDF].spazioNecessarioSezioneSuccessiva as spazioNecessarioSezioneSuccessiva	
--		,isnull([#R6PARAGRAFOPDF].[queryOracle],'') as queryOracleParagrafo
,Case when @periodicita = 'G' then  isnull([#R6PARAGRAFOPDF].[querySql],'') else
 Case when @periodicita = 'T' then  isnull([#R6PARAGRAFOPDF].[querySqlPeriodico],'')	
 END END as querySqlParagrafo
		,[R6CapitoloR6Paragrafo].[indicizzato] as indicizzatoParagrafo		
		,[R6ParagrafoR6Sezione].[ordineSezione] as ordineSezione
		,[#R6SEZIONEPDF].[id] as idSezione
		,[#R6SEZIONEPDF].[codice] as codiceSezione
--		,isnull([#R6SEZIONEPDF].[queryOracle],'') as queryOracleSezione
,Case when @periodicita = 'G' then  isnull([#R6SEZIONEPDF].[querySql],'') else
 Case when @periodicita = 'T' then  isnull([#R6SEZIONEPDF].[querySqlPeriodico],'')	
 END END as querySqlSezione
		,[R6ParagrafoR6Sezione].indicizzato as indicizzatoSezione
		,[R6ParagrafoR6Sezione].[filtroDataView] as filtroSezione
		,[R6ParagrafoR6Sezione].[titolo] as titoloSezione
		,isnull([R6ParagrafoR6Sezione].[testo],'') as testoSezione
		,isnull([R6ParagrafoR6Sezione].[testo1] ,'') as testoSezioneAlternativo
		,isnull([R6ParagrafoR6Sezione].[nota],'') as notaSezione
		,isnull([R6ParagrafoR6Sezione].[nota1],'') as notaSezioneAlternativo,
		[R6ParagrafoR6Sezione].[nuovaPaginaDopo] as nuovaPaginaDopo
		--,[#R6SEZIONEPDF].nuovaPaginaDopo as nuovaPaginaDopo
INTO #TABV
FROM  #R6SEZIONEPDF
INNER JOIN R6ParagrafoR6Sezione ON #R6SEZIONEPDF.id = R6ParagrafoR6Sezione.idFkSezione 
INNER JOIN #R6PARAGRAFOPDF ON R6ParagrafoR6Sezione.idFkParagrafo = #R6PARAGRAFOPDF.id 
INNER JOIN R6CapitoloR6Paragrafo ON #R6PARAGRAFOPDF.id = R6CapitoloR6Paragrafo.idFkParagrafo 
INNER JOIN #R6CAPITOLOPDF ON R6CapitoloR6Paragrafo.idFkCapitolo = #R6CAPITOLOPDF.id
INNER JOIN R6ReportR6Capitolo ON #R6CAPITOLOPDF.id = R6ReportR6Capitolo.idFkCapitolo
WHERE [R6ParagrafoR6Sezione].idFkReport = @idReport
ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

  
/*
SELECT *
FROM    #R6CAPITOLOPDF INNER JOIN R6CapitoloR6Paragrafo 
		ON #R6CAPITOLOPDF.id = R6CapitoloR6Paragrafo.idFkCapitolo 
		and R6CapitoloR6Paragrafo.idFkReport = @idReport
		INNER JOIN
        #R6PARAGRAFOPDF ON 
		R6CapitoloR6Paragrafo.idFkParagrafo = #R6PARAGRAFOPDF.id 
		INNER JOIN
        R6ParagrafoR6Sezione ON 
		#R6PARAGRAFOPDF.id = R6ParagrafoR6Sezione.idFkParagrafo 
		and R6ParagrafoR6Sezione.idFkReport = @idReport
		INNER JOIN
        #R6SEZIONEPDF ON 
		R6ParagrafoR6Sezione.idFkSezione = #R6SEZIONEPDF.id
*/

DROP TABLE #R6CAPITOLOPDF
DROP TABLE #R6PARAGRAFOPDF
DROP TABLE #R6SEZIONEPDF

 --if  @periodicita = 'T'
 --begin 
 --   update #TABV  set
 --   --codiceSezione='S160'
 --   --,querySqlSezione='[C6MartPeriodico].PL_D_S160DettaglioProdottiBF'
 --   querySqlParagrafo = null
	--,titoloParagrafo= null
 --   ,sottoTitoloParagrafo= null


 --where codiceSezione= 'S43BIS'
 --end

SELECT * FROM #TABV

END


 
























GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_Generator_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6Mart].[GESTIONE_C6_S_Generator] 1, 4, 'T'
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 13, 'T' (monitoraggio,private,trim)
-- [C6Mart].[GESTIONE_C6_S_Generator] 4, 12, 'T' (monitoraggio,old/affluent,trim)

CREATE procedure [C6Mart].[GESTIONE_C6_S_Generator_OLD]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'G'
AS
BEGIN
	SET NOCOUNT ON;

	if (@idModello=6)
begin
select * from C6Mart.generator_direct where codicesezione not like 'S%' and codiceSezione not in('FD147','FD133Bis') order BY ordineCapitolo,ordineParagrafo,ordineSezione
end
else
begin



-- CREO LA TABELLA #R6Capitolopdf
SELECT  R6Capitolo.id, 
		R6Capitolo.titolo, 
		R6Capitolo.testo,
		R6Capitolo.testoAlternativo,
		R6Capitolo.nuovapagina, 
		R6Capitolo.queryOracle, 
		R6Capitolo.querySql,
		R6Capitolo.querySqlPeriodico
into #R6CAPITOLOPDF  
FROM   
ReportSezionePers AS a INNER JOIN
R6_SezioneR6Capitolo AS b ON a.IdSezione = b.IdSezione INNER JOIN
R6Capitolo ON b.IdCapitoloPDF = R6Capitolo.id
where a.idreport = @idModello

-- CREO LA TABELLA #R6ParagrafoPDF

SELECT  R6Paragrafo.id, 
		R6Paragrafo.titolo, 
		R6Paragrafo.testo, 
		R6Paragrafo.queryOracle, 
		R6Paragrafo.querySql, 
		R6Paragrafo.querySqlPeriodico,
		R6Paragrafo.SottoTitoloQuery,
		R6Paragrafo.SpazioNecessarioSezioneSuccessiva	

into #R6PARAGRAFOPDF   
FROM  ReportSezionePers AS a INNER JOIN
               R6_SezioneR6Paragrafo AS b ON a.IdSezione = b.IdSezione INNER JOIN
               R6Paragrafo ON b.IdParagrafoPDF = R6Paragrafo.id
				where a.idreport = @idModello


-- CREO LA TABELLA #R6SEZIONEPDF
SELECT 
		R6Sezione.id, 
		R6Sezione.codice, 
		R6Sezione.queryOracle, 
		R6Sezione.querySql, 
		R6Sezione.querySqlPeriodico,
		R6Sezione.ordineQueryOracle, 
		R6Sezione.ordineQuerySql
		--R6Sezione.nuovaPaginaDopo
into #R6SEZIONEPDF 
FROM  ReportSezionePers AS a INNER JOIN
               R6_SezioneR6Sezione AS b ON a.IdSezione = b.idFkSezione INNER JOIN
               R6Sezione ON b.idFkC6Sezione = R6Sezione.id
WHERE (a.IdReport = @idModello)


SELECT  DISTINCT [#R6CAPITOLOPDF].id as idCapitolo
		,[R6ReportR6Capitolo].[ordineCapitolo] as ordineCapitolo
		,[#R6CAPITOLOPDF].[titolo] as titoloCapitolo
		,[#R6CAPITOLOPDF].[testo] as testoCapitolo
		,[#R6CAPITOLOPDF].[testoAlternativo] as testoCapitoloAlternativo
		,[#R6CAPITOLOPDF].[nuovapagina] as nuovaPaginaCapitolo
--		,[#R6CAPITOLOPDF].[queryOracle] as queryOracleCapitolo		
,Case when @periodicita = 'G' then  isnull([#R6CAPITOLOPDF].[querySql],'') else
 Case when @periodicita = 'T' then  isnull([#R6CAPITOLOPDF].[querySqlPeriodico],'')	
 END END as querySqlCapitolo	
		,[#R6PARAGRAFOPDF].[id] as idParagrafo
		,[R6CapitoloR6Paragrafo].[ordineParagrafo] as ordineParagrafo
		,[#R6PARAGRAFOPDF].[titolo] as titoloParagrafo
		,[#R6PARAGRAFOPDF].[sottoTitoloQuery] as sottoTitoloParagrafo
		,[#R6PARAGRAFOPDF].[testo] as testoParagrafo
		,[#R6PARAGRAFOPDF].spazioNecessarioSezioneSuccessiva as spazioNecessarioSezioneSuccessiva	
--		,isnull([#R6PARAGRAFOPDF].[queryOracle],'') as queryOracleParagrafo
,Case when @periodicita = 'G' then  isnull([#R6PARAGRAFOPDF].[querySql],'') else
 Case when @periodicita = 'T' then  isnull([#R6PARAGRAFOPDF].[querySqlPeriodico],'')	
 END END as querySqlParagrafo
		,[R6CapitoloR6Paragrafo].[indicizzato] as indicizzatoParagrafo		
		,[R6ParagrafoR6Sezione].[ordineSezione] as ordineSezione
		,[#R6SEZIONEPDF].[id] as idSezione
		,[#R6SEZIONEPDF].[codice] as codiceSezione
--		,isnull([#R6SEZIONEPDF].[queryOracle],'') as queryOracleSezione
,Case when @periodicita = 'G' then  isnull([#R6SEZIONEPDF].[querySql],'') else
 Case when @periodicita = 'T' then  isnull([#R6SEZIONEPDF].[querySqlPeriodico],'')	
 END END as querySqlSezione
		,[R6ParagrafoR6Sezione].indicizzato as indicizzatoSezione
		,[R6ParagrafoR6Sezione].[filtroDataView] as filtroSezione
		,[R6ParagrafoR6Sezione].[titolo] as titoloSezione
		,isnull([R6ParagrafoR6Sezione].[testo],'') as testoSezione
		,isnull([R6ParagrafoR6Sezione].[testo1] ,'') as testoSezioneAlternativo
		,isnull([R6ParagrafoR6Sezione].[nota],'') as notaSezione
		,isnull([R6ParagrafoR6Sezione].[nota1],'') as notaSezioneAlternativo,
		[R6ParagrafoR6Sezione].[nuovaPaginaDopo] as nuovaPaginaDopo
		--,[#R6SEZIONEPDF].nuovaPaginaDopo as nuovaPaginaDopo
INTO #TABV
FROM  #R6SEZIONEPDF
INNER JOIN R6ParagrafoR6Sezione ON #R6SEZIONEPDF.id = R6ParagrafoR6Sezione.idFkSezione 
INNER JOIN #R6PARAGRAFOPDF ON R6ParagrafoR6Sezione.idFkParagrafo = #R6PARAGRAFOPDF.id 
INNER JOIN R6CapitoloR6Paragrafo ON #R6PARAGRAFOPDF.id = R6CapitoloR6Paragrafo.idFkParagrafo 
INNER JOIN #R6CAPITOLOPDF ON R6CapitoloR6Paragrafo.idFkCapitolo = #R6CAPITOLOPDF.id
INNER JOIN R6ReportR6Capitolo ON #R6CAPITOLOPDF.id = R6ReportR6Capitolo.idFkCapitolo
WHERE [R6ParagrafoR6Sezione].idFkReport = @idReport
ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

  
/*
SELECT *
FROM    #R6CAPITOLOPDF INNER JOIN R6CapitoloR6Paragrafo 
		ON #R6CAPITOLOPDF.id = R6CapitoloR6Paragrafo.idFkCapitolo 
		and R6CapitoloR6Paragrafo.idFkReport = @idReport
		INNER JOIN
        #R6PARAGRAFOPDF ON 
		R6CapitoloR6Paragrafo.idFkParagrafo = #R6PARAGRAFOPDF.id 
		INNER JOIN
        R6ParagrafoR6Sezione ON 
		#R6PARAGRAFOPDF.id = R6ParagrafoR6Sezione.idFkParagrafo 
		and R6ParagrafoR6Sezione.idFkReport = @idReport
		INNER JOIN
        #R6SEZIONEPDF ON 
		R6ParagrafoR6Sezione.idFkSezione = #R6SEZIONEPDF.id
*/

DROP TABLE #R6CAPITOLOPDF
DROP TABLE #R6PARAGRAFOPDF
DROP TABLE #R6SEZIONEPDF

 --if  @periodicita = 'T'
 --begin 
 --   update #TABV  set
 --   --codiceSezione='S160'
 --   --,querySqlSezione='[C6MartPeriodico].PL_D_S160DettaglioProdottiBF'
 --   querySqlParagrafo = null
	--,titoloParagrafo= null
 --   ,sottoTitoloParagrafo= null


 --where codiceSezione= 'S43BIS'
 --end

SELECT * FROM #TABV ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

end

END


 






















GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_QueryDatiComuniSql]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[C6_S_QueryDatiComuniSql] 4
CREATE procedure [C6Mart].[GESTIONE_C6_S_QueryDatiComuniSql]
@idReport as int
AS
BEGIN
	SET NOCOUNT ON;

SELECT 
	isnull(GESTIONE_C6SezioneDatiComuni.querySql,'') as querySqlSezione
	,isnull(GESTIONE_C6SezioneDatiComuni.ordineQuerySql,-1) as ordineQuerySqlSezione
from GESTIONE_C6SezioneDatiComuni
where idReport = @idReport or isnull(idReport,0) = 0
order by ordineQuerySqlSezione desc
END









GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_C6_S_Vincoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6Mart].[GESTIONE_C6_S_Vincoli] 3
CREATE procedure [C6Mart].[GESTIONE_C6_S_Vincoli]
@idModello as int
AS
BEGIN
	SET NOCOUNT ON;

SELECT    DISTINCT a.IDVincoloSezioneFisica, 
		  R6_Vincolo_SezioneFisica.SezioneFisica,
		  a.cardinalita AS Cardinalita, 
		  c.CodiceVincoloApplicativo, 
		  c.VincoloApplicativo                      
FROM         
(
  SELECT R6Sezione_Vincolo.IDVincolo, 
		   COUNT(*) AS cardinalita, 
		   R6Sezione_Vincolo.IDVincoloSezioneFisica
   FROM    ReportSezionePers 
		   INNER JOIN R6Sezione_Vincolo ON ReportSezionePers.IdSezione = R6Sezione_Vincolo.IDSezione
   WHERE   ReportSezionePers.IdReport = @idModello
   GROUP BY R6Sezione_Vincolo.IDVincolo, R6Sezione_Vincolo.IDVincoloSezioneFisica
) AS a 
INNER JOIN  R6CardinalitaVincolo AS b ON a.IDVincolo = b.IDVincolo AND a.cardinalita = b.Cardinalita 
INNER JOIN  R6Cardinalita_VincoloApplicativo AS c ON b.id = c.IDCardinalita 
INNER JOIN  R6_Vincolo_SezioneFisica ON a.IDVincoloSezioneFisica = R6_Vincolo_SezioneFisica.IDVincoloSezioneFisica


END



GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_CRUSCOTTO_ARCHIVIAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[GESTIONE_CRUSCOTTO_ARCHIVIAZIONE] 'updateFlag','flag_archiviazione',2
CREATE procedure [C6Mart].[GESTIONE_CRUSCOTTO_ARCHIVIAZIONE]
@tipoOperazione nvarchar(30),
@tipoFlag nvarchar(30),
@valoreFlag int

as

IF @tipoOperazione = 'leggi' 
	
	begin
		select * from dbo.Cruscotto_Archiviazione
	end

ELSE IF @tipoOperazione = 'truncate' 
	begin
		update dbo.Cruscotto_Archiviazione
		set flag_archiviazione = 1,flag_nastro=0,flag_canc=0,num_report_da_elab = 0,num_report_su_nastro = 0,num_report_canc_da_db = 0;
		
		select * from dbo.Cruscotto_Archiviazione;
	end
	
ELSE IF @tipoOperazione = 'updateFlag' 
	begin
	
		
		EXECUTE ('update dbo.Cruscotto_Archiviazione set ' + @tipoFlag + '=' + @valoreFlag);

		select * from dbo.Cruscotto_Archiviazione;
	end
	




GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_INSERT_PDF_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_INSERT_PDF_FTP] 
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@IDReport int,
	@NomeFile varchar(50),
	@TipoReport varchar(1),
	@NumeroPagine int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
--begin tran
    -- Insert statements for procedure here
		DECLARE @ID_ELAB INT
		DECLARE @COD_AGENTE VARCHAR(6)
 		SET @ID_ELAB = C6Mart.GETIDELAB()
 
       
       SELECT   @COD_AGENTE = COD_AGENTE
       FROM [C6Mart].[VCONTRATTI] WHERE COD_FISCALE = @CodiceFiscale AND RETE=@RETE
       
		insert into C6Mart.GESTIONE_PDF_FTP
		(
			Rete,
			CodiceFiscale,
			IDReport,
			DataGenerazione,
			DataInvio,
			FlagInvio,
			NomeFile,
			TipoReport,
			numeroPagine,
			id_Fk_zip,
			ID_ELAB
		)
		values
		(
			@Rete,
			@CodiceFiscale,
			@IDReport,
			Getdate(),
			CASE WHEN @COD_AGENTE = '015312' THEN Getdate() ELSE null END,
			CASE WHEN @COD_AGENTE = '015312' THEN 'S' ELSE 'N' END,
			@NomeFile,
			@TipoReport,
			@NumeroPagine,
			CASE WHEN @COD_AGENTE = '015312' THEN 0 ELSE -1 END,
			@ID_ELAB
			)

		UPDATE [C6Mart].[CONTRATTOSEI_METADATI]
		SET InvioBenvenuto = 'S'
        FROM [C6Mart].[VCONTRATTI] VC
         INNER JOIN [C6Mart].[CONTRATTOSEI_metadati] CM
         ON VC.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
		WHERE VC.Rete = @Rete
		AND VC.Cod_Fiscale = @CodiceFiscale

		return @@rowcount


END
     

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22/12/2008
-- Description:	Per gestione richieste di reinvio PDF da parte di utenti HD o US
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]
	@Id INT,
	@IdNuovo INT
AS
BEGIN

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6Mart.GETIDELAB()

	INSERT INTO C6Mart.GESTIONE_PDF_FTP
		(
			Rete,
			CodiceFiscale,
			IDReport,
			DataGenerazione,
			DataInvio,
			FlagInvio,
			NomeFile,
			TipoReport,
			numeroPagine,
			id_Fk_zip,
			ID_ELAB
		)
	SELECT 
			Rete,
			CodiceFiscale,
			@IdNuovo,
			Getdate(),
			null,
			'N',
			NomeFile,
			'LR',
			numeroPagine + 1,
			-1,
			@ID_ELAB
	FROM C6Mart.GESTIONE_PDF_FTP
	WHERE IdReport = @Id
	RETURN @@ROWCOUNT
END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_INSERT_PDF_FTP_TEST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_INSERT_PDF_FTP_TEST] 
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@IDReport int,
	@NomeFile varchar(50),
	@TipoReport varchar(1),
	@NumeroPagine int
AS
BEGIN

      RETURN 1
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
--begin tran
    -- Insert statements for procedure here
		--DECLARE @ID_ELAB INT
		--DECLARE @COD_AGENTE VARCHAR(6)
 	--	SET @ID_ELAB = C6Mart.GETIDELAB()
 
       
  --     SELECT   @COD_AGENTE = COD_AGENTE
  --     FROM [C6Mart].[VCONTRATTI] WHERE COD_FISCALE = @CodiceFiscale AND RETE=@RETE
       
		--insert into C6Mart.GESTIONE_PDF_FTP
		--(
		--	Rete,
		--	CodiceFiscale,
		--	IDReport,
		--	DataGenerazione,
		--	DataInvio,
		--	FlagInvio,
		--	NomeFile,
		--	TipoReport,
		--	numeroPagine,
		--	id_Fk_zip,
		--	ID_ELAB
		--)
		--values
		--(
		--	@Rete,
		--	@CodiceFiscale,
		--	@IDReport,
		--	Getdate(),
		--	CASE WHEN @COD_AGENTE = '015312' THEN Getdate() ELSE null END,
		--	CASE WHEN @COD_AGENTE = '015312' THEN 'S' ELSE 'N' END,
		--	@NomeFile,
		--	@TipoReport,
		--	@NumeroPagine,
		--	CASE WHEN @COD_AGENTE = '015312' THEN 0 ELSE -1 END,
		--	@ID_ELAB
		--	)

		--UPDATE [C6Mart].[CONTRATTOSEI_METADATI]
		--SET InvioBenvenuto = 'S'
  --      FROM [C6Mart].[VCONTRATTI] VC
  --       INNER JOIN [C6Mart].[CONTRATTOSEI_metadati] CM
  --       ON VC.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
		--WHERE VC.Rete = @Rete
		--AND VC.Cod_Fiscale = @CodiceFiscale

		--return @@rowcount


END
     



GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_INSERT_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- Inserimento nuovo [C6Mart].[GESTIONE_INSERT_ZIP] -1,'NomeFileOk','NomeFileOk'
CREATE procedure [C6Mart].[GESTIONE_INSERT_ZIP]
@NomeFile as varchar(255),
@NomeCartella as varchar(255)
AS
BEGIN 
BEGIN TRANSACTION
DECLARE @ID_ELAB INT
SET @ID_ELAB = C6Mart.GETIDELAB()
declare @IdZip as int
set @IdZip = -1
--recupero idzip se Esiste insieme al NomeCartella
SELECT @IdZip=id,@NomeCartella=NomeCartella 
FROM
	C6Mart.GESTIONE_ZIP_FTP
WHERE
	FlagInvio = 'N'

IF(@IDZIP = -1)--NON ESISTE
	BEGIN
	 INSERT INTO [C6MART].[GESTIONE_ZIP_FTP]
           ([NOMEFILE]
           ,[DATAINVIO]
           ,[FLAGINVIO]
           ,[NOMECARTELLA]
           ,[ID_ELAB])
     VALUES
           (@NOMEFILE
           ,NULL
           ,'N'
           ,@NOMECARTELLA
           ,@ID_ELAB)
	SET @IDZIP = SCOPE_IDENTITY()
	END
ELSE --ESISTE
	BEGIN
		 UPDATE [C6MART].[GESTIONE_ZIP_FTP]
		 SET [NOMEFILE] = @NOMEFILE
		 WHERE ID = @IDZIP
	END
IF @@error <> 0
	begin
		rollback
	end
else
	begin
		commit
		select @IdZip IdZip,@NomeFile NomeFile,@NomeCartella NomeCartella
	end


end

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_S_Intermediari]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[GESTIONE_S_Intermediari]  'S','GHGRTI63T44L219D'
--[C6Mart].[GESTIONE_S_Intermediari]  'F','BRTVTR64T13L219G'
CREATE procedure [C6Mart].[GESTIONE_S_Intermediari] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceCliente varchar(16)
AS

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

	SELECT DISTINCT INTERMEDIARIO
	FROM	C6Mart.PATRIMONIO_TERZI
	WHERE RETE = @Rete
	AND COD_FISCALE = @CodiceCliente
END



GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--select * from #temp_email
                
CREATE procedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
AS


BEGIN


	 
execute [C6Mart].[RP_DM_CheckEmail]

--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'GESTIONE_SELECT_EMAIL_DA_INVIARE',
		GETDATE(),
		'Elaborazione giornaliera'
	)


TRUNCATE TABLE c6mart.test_Quality_Email

INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			----else
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 ----end as E_Subject
   ----    , case
			----when
			----	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			----then
			----	--persone giuridiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			----else
			----	--persone fisiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')

----------------------------------------------------------------------------

SELECT  
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			--else
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 --end as E_Subject
   --    , case
			--when
			--	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			--then
			--	--persone giuridiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			--else
			--	--persone fisiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025

		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
    AND ANAG_CLIENTI.COGNOME IS NOT NULL
   -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova

--2/8/2019 - ripristinata condizione per errore gestore_email del giornaliero
and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
----

--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--    AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
	
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)
	-----------------------------------------------------
	--- en 20161025 the only email types specified in CR
	AND   
	GESTIONE_EMAIL.TIPO in
	(
	'3_SOLL_NOPRO',
	'2_SOLL_NOPRO',
	'1_SOLL_NOPRO',
	'PERF',
	'PERF_DA',
	'REVOCA_NOPRO',
	'S_SOLL_NOPRO'
	)
	--- en 20161025
	-----------------------------------------------------

AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and  GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN  ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2


	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'GESTIONE_SELECT_EMAIL_DA_INVIARE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'GESTIONE_SELECT_EMAIL_DA_INVIARE'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE.old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--select * from #temp_email
                
CREATE PROCEDURE [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE.old]
AS


BEGIN
	 
execute [C6Mart].[RP_DM_CheckEmail]

--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')


TRUNCATE TABLE c6mart.test_Quality_Email

INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			else
				dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
       , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')

----------------------------------------------------------------------------

SELECT  
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			else
				dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
       , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
    AND ANAG_CLIENTI.COGNOME IS NOT NULL
   -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova
--and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--    AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
	
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)

AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and  GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN  ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2

END
GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE.test_e]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select * from #temp_email
                
CREATE procedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE.test_e]
AS


BEGIN
	 
execute [C6Mart].[RP_DM_CheckEmail]

--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')


TRUNCATE TABLE c6mart.test_Quality_Email

INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			----else
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 ----end as E_Subject
   ----    , case
			----when
			----	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			----then
			----	--persone giuridiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			----else
			----	--persone fisiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 --and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')
 and GESTIONE_EMAIL.Tipo in ('PERF','REVOCA_NOPRO','1_SOLL_NOPRO','2_SOLL_NOPRO',   'S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS', 'S_SOLL_NOPRO','3_SOLL_NOPRO')

----------------------------------------------------------------------------

SELECT  
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			--else
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 --end as E_Subject
   --    , case
			--when
			--	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			--then
			--	--persone giuridiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			--else
			--	--persone fisiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025

		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
    AND ANAG_CLIENTI.COGNOME IS NOT NULL
   -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova
--and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--    AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
	
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)
	-----------------------------------------------------
	--- en 20161025 the only email types specified in CR
	AND   
	GESTIONE_EMAIL.TIPO in
	(
	'3_SOLL_NOPRO',
	'2_SOLL_NOPRO',
	'1_SOLL_NOPRO',
	'PERF',
	'REVOCA_NOPRO',
	'S_SOLL_NOPRO'
	)
	--- en 20161025
	-----------------------------------------------------

AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and  GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN  ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_20190802]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select * from #temp_email
                
CREATE procedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_20190802]
AS


BEGIN
	 
execute [C6Mart].[RP_DM_CheckEmail]

--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')


TRUNCATE TABLE c6mart.test_Quality_Email

INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			----else
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 ----end as E_Subject
   ----    , case
			----when
			----	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			----then
			----	--persone giuridiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			----else
			----	--persone fisiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')

----------------------------------------------------------------------------

SELECT  
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			--else
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 --end as E_Subject
   --    , case
			--when
			--	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			--then
			--	--persone giuridiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			--else
			--	--persone fisiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025

		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
    AND ANAG_CLIENTI.COGNOME IS NOT NULL
   -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova
--and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--    AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
	
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)
	-----------------------------------------------------
	--- en 20161025 the only email types specified in CR
	AND   
	GESTIONE_EMAIL.TIPO in
	(
	'3_SOLL_NOPRO',
	'2_SOLL_NOPRO',
	'1_SOLL_NOPRO',
	'PERF',
	'REVOCA_NOPRO',
	'S_SOLL_NOPRO'
	)
	--- en 20161025
	-----------------------------------------------------

AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and  GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN  ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_CU]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_CU]
AS


BEGIN
	 
execute [C6Mart].[RP_DM_CheckEmail]

--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')


TRUNCATE TABLE c6mart.test_Quality_Email

INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
   	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		,
		case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end 
		 as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end  as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
    , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
 INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
 ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
 INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
 ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
 AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
 AND CONTRATTOSEI.data_fineavanzato > getDate()
 INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
 ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
 AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
 LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
 ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
 AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
 --V Per non inviare mail a pb terminati
 inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
 ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
 AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
 WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')

----------------------------------------------------------------------------

SELECT 
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
   	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		,
		case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end
		 as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
    , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
 INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
 ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
 INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
 ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
 AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
 AND CONTRATTOSEI.data_fineavanzato > getDate()
 INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
 ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
 AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
 LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
 ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
 AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
 --V Per non inviare mail a pb terminati
 inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
 ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
 AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
 WHERE 
 --isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
 -- AND
  ANAG_CLIENTI.COGNOME IS NOT NULL
  -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova
--and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--  AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
	
  --AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
 -- AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)
 
AND
GESTIONE_EMAIL.TIPO in
(
'3_SOLL_NOPRO',
'2_SOLL_NOPRO',
'1_SOLL_NOPRO',
--'PERF',
'REVOCA_NOPRO',
'S_SOLL_NOPRO'
)
--AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2

END



GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_new]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select * from #temp_email
                
CREATE procedure [C6Mart].[GESTIONE_SELECT_EMAIL_DA_INVIARE_new]
AS


BEGIN
	 
execute [C6Mart].[RP_DM_CheckEmail]

--recupero la percentuale limite di risorse non associate
DECLARE @RNA varchar(3)
select @RNA= dbo.getParametro('PERCMAXRISORSENA') + '%'
DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')


TRUNCATE TABLE c6mart.test_Quality_Email

INSERT INTO c6mart.test_Quality_Email
SELECT
data_perf, 
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) as DATA_PERF_REV
		,CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			----else
			----	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 ----end as E_Subject
   ----    , case
			----when
			----	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			----then
			----	--persone giuridiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			----else
			----	--persone fisiche
			----	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025
		 end as Testo
--into c6mart.test_Quality_Email
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
AND ANAG_CLIENTI.COGNOME IS NOT NULL
and
dateadd(
	day,(
		(CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
		 CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
		 CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)),
	 	 data_perf) < getdate()
--and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG')
 and GESTIONE_EMAIL.Tipo in ('S_SOLL_NOMIG', '3_SOLL_NOMIG','S_SOLL_NOASS','3_SOLL_NOASS','S_SOLL_NOPRO','3_SOLL_NOPRO')

----------------------------------------------------------------------------

SELECT  
--data_generazione,
		CONTRATTOSEI.rete
		,CONTRATTOSEI.cod_agente
		,CM.numSolleciti
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,CONTRATTOSEI.Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
			
			@Ambiente = 'Produzione' 
			
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','')
			else
				@DestinatarioEmail
		 end as [E_To]
		,
		case
			when 
				GESTIONE_EMAIL.Tipo <> 'PERF' 
				
			then
				dbo.getParametro('Destinatario_Bcc')
			else
				''
		end as E_Ccn
		, case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
				dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO)
			else
				''
		 end as E_Cc
       , case 
			when 
				@Ambiente = 'Produzione' 
				
			then 
			-------------------------en 2061025 -  parameter chenged for functions Replace_Subject_Email Replace_Testo_Email*/
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			--else
			--	dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 --end as E_Subject
   --    , case
			--when
			--	len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			--then
			--	--persone giuridiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])
			--else
			--	--persone fisiche
			--	dbo.Replace_Testo_Email(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA,TIPO_EMAIL.[Testo])

				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto)
			else
				dbo.Replace_Subject_Email_test(TIPO_EMAIL.[E_Subject],ANAG_CLIENTI.NOME,ANAG_CLIENTI.COGNOME,ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE, CONTRATTOSEI.tip_contratto) + '--- TO:' + dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '--- CC:' + dbo.Cc_Email(CONTRATTOSEI.rete,CONTRATTOSEI.cod_agente,CM.numSolleciti,GESTIONE_EMAIL.TIPO) + '---'
		 end as E_Subject
    , case
			when
				len(ltrim(rtrim(GESTIONE_EMAIL.[Cod_Fiscale]))) = 11
			then
				--persone giuridiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Nome,' '),isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
			else
				--persone fisiche
				dbo.Replace_Testo_Email_test(CONTRATTOSEI.CodiceContratto,GESTIONE_EMAIL.[Cod_Fiscale],isnull(ANAG_CLIENTI.Cognome,'/$COGNOME NON PRESENTE$/'),isnull(ANAG_CLIENTI.Nome,' '),ANAG_PROMOTORI.ID_PROMOTORE,ANAG_PROMOTORI.Cognome,ANAG_PROMOTORI.Nome,CONTRATTOSEI.Data_Perf,CONTRATTOSEI.Freq_Diagnosi,CONTRATTOSEI.Freq_Monitoraggio,@RNA, CONTRATTOSEI.tip_contratto,CONTRATTOSEI.DATA_FINEAVANZATO, CONTRATTOSEI.DATA_INZIOAVANZATO,CONTRATTOSEI.RETE,TIPO_EMAIL.[Testo])
--------------------------------------------en 2061025

		 end as Testo
--into temp_email_gior
FROM [C6Mart].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6Mart].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  INNER JOIN [C6Mart].[VCONTRATTI] CONTRATTOSEI
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  AND CONTRATTOSEI.data_fineavanzato > getDate()
  INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] CM
  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
  AND CONTRATTOSEI.CHIAVECLIENTEPB = CM.CHIAVECLIENTEPB
  LEFT JOIN [C6Mart].[ANAG_CLIENTI] ANAG_CLIENTI
  ON ANAG_CLIENTI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_CLIENTI.Cod_Fiscale = GESTIONE_EMAIL.Cod_Fiscale
  --V Per non inviare mail a pb terminati
  inner JOIN [C6Mart].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = CONTRATTOSEI.Cod_Agente
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N' 
	-- tringali colaianni cortecci AND ANAG_CLIENTI.NOME IS NOT NULL 
    AND ANAG_CLIENTI.COGNOME IS NOT NULL
   -- AND CONTRATTOSEI.Cod_Agente = '015312'--Cod_Agente di prova
--and dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') is not null
--togliere 
	--AND CONTRATTOSEI.Cod_fiscale <> 'SLRRFL33S09E044D'
--AND CONTRATTOSEI.Cod_fiscale <> 'PDRPLA61M07H264H'
--AND CONTRATTOSEI.Cod_Agente not in ('009202','014908','008172')
--    AND CONTRATTOSEI.Cod_Agente not in ('003064', '015091','015126','006167','015115','015117','015125','006154','005772','001860','011188','014553','015182','011663')
	
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)
    AND GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality_Email)

AND CONTRATTOSEI.Cod_fiscale <> '01484040488' --FiderevEuropa S.p.A. (PB 015693)
-- Esclusione Temporanea per errata valorizzazione PB
-- 08052014 
and  GESTIONE_EMAIL.COD_FISCALE + GESTIONE_EMAIL.RETE NOT IN  ('NTNRNZ38C69C302AS','CRVGBR51S08C638JF','BLLMNL77H69L736QF')
--	AND 1=2

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_FTP_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_SELECT_FTP_DA_INVIARE]
AS
BEGIN

insert into GLOBAL_ERROR (ErrorDescription) values ('ingresso')

	SELECT 
		Rete,
		CodiceFiscale,
		IdReport
		,(NomeFile + '_' + (Case TipoReport when 'D' then 'DW' else TipoReport end)) as NomeFile
		,TipoReport
--	,Case TipoReport when 'D' then 'DW' else TipoReport end
--		,
--		DataGenerazione,
--		DataInvio,
--		FlagInvio,
--		NomeFile
	FROM
		C6Mart.GESTIONE_PDF_FTP
	WHERE
	 FlagInvio = 'N'
	 AND CODICEFISCALE + RETE NOT IN (select cod_fiscale + RETE from c6mart.test_Quality)

	 
insert into GLOBAL_ERROR (ErrorDescription) values ('uscita')

END




GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_FTP_INVIATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_SELECT_FTP_INVIATI] 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

-- Facciate(6)CppBollettini(2)IDENTIFICATIVODOCUMENTO(50)NOMINATIVODESTINATARIO(50)VIA(50)CAP(5)LOCALITA(50)PROVINCIA(2)NAZIONE(1)TIPOPOSTALIZZAZIONE(2)FILESPOOL(50)ALLEGATO1(1)ALLEGATO1(2)NAZIONEESTERA(30)
--FacciateXXXXX(6)00CodiceFiscale(50)NOMINATIVODESTINATARIO(50)VIA(50)CAP(5)LOCALITA(50)PROVINCIA(2)IoE(1)PE(2)NOMEFILE(50)0(1)0(2)NAZIONEESTERA(30)
--	(right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
--	+ '00' --CppBollettini(2)
--	+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
--	+ LEFT(isnull(ANAG_CLIENTI.Cognome,'COGNOME') + ' ' + ISNULL(ANAG_CLIENTI.Nome,'NOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
--    + LEFT(CONTRATTOSEI.Indirizzo + '                                                  ',50) --VIA(50)
--    + LEFT(CONTRATTOSEI.CAP + '     ',5) --CAP(5)  
--	+ LEFT(CONTRATTOSEI.Citta + '                                                  ',50) --LOCALITA(50)
--	+ LEFT(CONTRATTOSEI.Prov + '  ',2)--PROVINCIA(2)
--	+ (CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
--    + 'PE' --TIPOPOSTALIZZAZIONE(2)
--	+ LEFT(GESTIONE_PDF_FTP.NomeFile + '                                                  ',50)--NOMEFILE(50)
--	+ '0' --0(1)
--    + '0' --0(2)
--    + LEFT((CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN '' ELSE CONTRATTOSEI.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
--	



-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31

    SELECT DISTINCT C6MART.CONCATENA(C6Mart.GESTIONE_PDF_FTP.Rete, C6Mart.GESTIONE_PDF_FTP.CodiceFiscale) AS riga
	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.vcontratti V
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0) 
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		

END







GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_FTP_INVIATI_TEST_NEW]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_SELECT_FTP_INVIATI_TEST_NEW] 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

-- Facciate(6)CppBollettini(2)IDENTIFICATIVODOCUMENTO(50)NOMINATIVODESTINATARIO(50)VIA(50)CAP(5)LOCALITA(50)PROVINCIA(2)NAZIONE(1)TIPOPOSTALIZZAZIONE(2)FILESPOOL(50)ALLEGATO1(1)ALLEGATO1(2)NAZIONEESTERA(30)
--FacciateXXXXX(6)00CodiceFiscale(50)NOMINATIVODESTINATARIO(50)VIA(50)CAP(5)LOCALITA(50)PROVINCIA(2)IoE(1)PE(2)NOMEFILE(50)0(1)0(2)NAZIONEESTERA(30)
--	(right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
--	+ '00' --CppBollettini(2)
--	+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
--	+ LEFT(isnull(ANAG_CLIENTI.Cognome,'COGNOME') + ' ' + ISNULL(ANAG_CLIENTI.Nome,'NOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
--    + LEFT(CONTRATTOSEI.Indirizzo + '                                                  ',50) --VIA(50)
--    + LEFT(CONTRATTOSEI.CAP + '     ',5) --CAP(5)  
--	+ LEFT(CONTRATTOSEI.Citta + '                                                  ',50) --LOCALITA(50)
--	+ LEFT(CONTRATTOSEI.Prov + '  ',2)--PROVINCIA(2)
--	+ (CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
--    + 'PE' --TIPOPOSTALIZZAZIONE(2)
--	+ LEFT(GESTIONE_PDF_FTP.NomeFile + '                                                  ',50)--NOMEFILE(50)
--	+ '0' --0(1)
--    + '0' --0(2)
--    + LEFT((CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN '' ELSE CONTRATTOSEI.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
--	



-- FC 24/02/2014
-- MOdifica accesso tabella C6MART.ContrattoSei NON PIU GESTITA con tabella C6Mart.VContratti
-- Gestione Data FineAvanzato ( datat chiusura contratto ) con valore convenzionale 9999/12/31

    SELECT DISTINCT C6MART.CONCATENA_TEST_NEW(C6Mart.GESTIONE_PDF_FTP.Rete, C6Mart.GESTIONE_PDF_FTP.CodiceFiscale) AS riga
	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.vcontratti V
		ON v.Rete = GESTIONE_PDF_FTP.Rete
		AND v.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE (DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0) 
		AND convert(varchar(10),v.data_fineAvanzato,112) = '99991231'
		

END







GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_HOST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_SELECT_HOST] 
	AS
BEGIN
	
    SET NOCOUNT ON;
	
    SELECT
	(C6Mart.GESTIONE_PDF_FTP.Rete + C6Mart.GESTIONE_PDF_FTP.CodiceFiscale + right('00000000000' + C6Mart.VCONTRATTI.CodiceContratto,11) + 'C' 
     + (Case TipoReport when 'D' then 'LD' when 'LR' then 'LR' else TipoReport end) 
     + (Case TipoReport when 'D' then CONVERT(VARCHAR(10), C6Mart.GESTIONE_PDF_FTP.DataInvio, 112) 
     when 'LR' then CONVERT(VARCHAR(10), C6Mart.GESTIONE_PDF_FTP.DataInvioRistampa, 112) else null end)) as riga
	FROM        C6Mart.GESTIONE_PDF_FTP
	INNER JOIN C6Mart.VCONTRATTI
	ON C6Mart.VCONTRATTI.Rete = C6Mart.GESTIONE_PDF_FTP.Rete
	and C6Mart.VCONTRATTI.COD_FISCALE = C6Mart.GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN  C6Mart.ANAG_CLIENTI 
	ON C6Mart.ANAG_CLIENTI.Rete = C6Mart.GESTIONE_PDF_FTP.Rete
	and C6Mart.ANAG_CLIENTI.COD_FISCALE = C6Mart.GESTIONE_PDF_FTP.CodiceFiscale
    WHERE DATEDIFF(DAY,isnull(C6Mart.GESTIONE_PDF_FTP.DataInvio,C6Mart.GESTIONE_PDF_FTP.DataInvioRistampa),GETDATE()) = 0
	AND C6Mart.VCONTRATTI.Data_FineAvanzato > getDate()
	AND C6Mart.VCONTRATTI.Cod_Fiscale +  C6Mart.VCONTRATTI.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
    AND C6Mart.VCONTRATTI.COD_AGENTE <> '015312'
END



GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_HOST_GIORNALIERO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		MOdified TRINGALI per FIDUCIARIA
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE   procedure [C6Mart].[GESTIONE_SELECT_HOST_GIORNALIERO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	--FTP
	SELECT
	(gpf.Rete + 
		case when gpf.CodiceFiscale like '%@%' then right(vc.piva_fiduciaria+'     ',16) 
			 when len(gpf.CodiceFiscale) = 11 then right(gpf.CodiceFiscale+'     ',16) 
             else gpf.CodiceFiscale  end   + right('00000000000' + vc.CodiceContratto,11) + 'LD' + CONVERT(VARCHAR(10), gpf.DataGenerazione, 112)) as riga
	FROM        C6Mart.GESTIONE_PDF_FTP gpf
	INNER JOIN C6Mart.VCONTRATTI vc
	ON vc.Rete = gpf.Rete
	and vc.COD_FISCALE = gpf.CodiceFiscale
	INNER JOIN  C6Mart.ANAG_CLIENTI 
	ON C6Mart.ANAG_CLIENTI.Rete = gpf.Rete
	and C6Mart.ANAG_CLIENTI.COD_FISCALE = gpf.CodiceFiscale
	where 1=1
	AND gpf.tiporeport = 'D'
	
	AND DATEDIFF(DAY,gpf.DataGenerazione,GETDATE()) = 0
	--Aggiunta Emanuele per inserire nel file delle commissioni
	--contratti da un determinato giorno
	--AND DataGenerazione > '20140127'
	-----------------------------------------
	--AND gpf.DataGenerazione BETWEEN '20140124' and '20140125'
	--Fine Aggiunta Emanuele
	
   	AND vc.Data_FineAvanzato > getDate()
   	AND vc.Cod_Fiscale +  vc.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
    AND vc.COD_AGENTE <> '015312'

	
	--Aggiunta Emanuele	
 	--ORDER BY DataGenerazione, gpf.Rete, gpf.CodiceFiscale
 	--Fine Aggiunta Emanuele
END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT TOP 1 * FROM C6MART.VCONTRATTI
--[C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE]'F','AA@55670',1,-1
CREATE procedure [C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN



	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()

--declare @prova as varchar(10)
--select @prova = 'AA@55670'
--select @prova
--select charindex('@',@prova)

	SELECT distinct
			C6Mart.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			
			--Modifica per le persone giuridiche
			CASE 
				WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
					THEN aclie.cognome --+ 'JJ'
					ELSE aclie.nome
			END	AS nome,
			
			--aclie.nome as nome,
			CASE
				WHEN LEN(csei.cod_fiscale) = 11
					THEN aclie.nome
					ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
							THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
					ELSE
						aclie.cognome
					END	
			END	AS cognome,

			--aclie.cognome as cognome,
			csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.PROVINCIA end as provincia,
			csei.cap as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			--20180912 AC: su richiesta di Flavia Scirocco / Maria Napolitano, per i clienti professionali, la data di sottoscrizione è quella del campo DATA_INIZIOBASE
			--C6Mart.Replace_Testo_Lettera_Benvenuto(	
			--									csei.CodiceContratto,
			--									csei.freq_Diagnosi,
			--									csei.freq_MONITORAGGIO,
			--									aclie.cognome,
			--									aclie.nome, 
			--									@tipoReport,
			--									csei.indirizzo,
			--									csei.DATA_INZIOAVANZATO,
			--									@dataRichiestaRistampa,
			--									gpdf.DataGenerazione,
			--									tla.[TESTO]
			--								) as testo,
			case
				when csei.TipoConsulenza = 'P' then
					C6Mart.Replace_Testo_Lettera_Benvenuto(	
														csei.CodiceContratto,
														csei.freq_Diagnosi,
														csei.freq_MONITORAGGIO,
														aclie.cognome,
														aclie.nome, 
														@tipoReport,
														csei.indirizzo,
														csei.DATA_INIZIOBASE,
														@dataRichiestaRistampa,
														gpdf.DataGenerazione,
														tla.[TESTO]
													)
				else
					C6Mart.Replace_Testo_Lettera_Benvenuto(	
														csei.CodiceContratto,
														csei.freq_Diagnosi,
														csei.freq_MONITORAGGIO,
														aclie.cognome,
														aclie.nome, 
														@tipoReport,
														csei.indirizzo,
														csei.DATA_INZIOAVANZATO,
														@dataRichiestaRistampa,
														gpdf.DataGenerazione,
														tla.[TESTO]
													)
			end as testo,
			
			--20180912 AC

			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
			pagina
 
		FROM	
			[C6Mart].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[C6Mart].[VCONTRATTI] csei JOIN
				C6MART.CONTRATTOSEI_METADATI META
				ON META.CHIAVECLIENTEPB = CSEI.CHIAVECLIENTEPB
				INNER JOIN
					[C6Mart].[ANAG_CLIENTI] aclie
					on csei.rete = aclie.rete and
					csei.cod_fiscale = aclie.cod_fiscale
					LEFT OUTER JOIN
						C6Mart.GESTIONE_PDF_FTP gpdf
						on
						gpdf.rete = csei.rete and
						gpdf.codiceFiscale = csei.cod_fiscale
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			csei.data_fineAvanzato > getDate() and
			tla.id = @codiceLettera and
			(gpdf.idReport = @idReport or @idreport = -1) 




END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE_Rosaspina]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--SELECT TOP 1 * FROM C6MART.VCONTRATTI
--[C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE]'F','AA@55670',1,-1
CREATE procedure [C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE_Rosaspina]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN



	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()

--declare @prova as varchar(10)
--select @prova = 'AA@55670'
--select @prova
--select charindex('@',@prova)

	SELECT distinct
			C6Mart.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			
			--Modifica per le persone giuridiche
			CASE 
				WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
					THEN aclie.cognome --+ 'JJ'
					ELSE aclie.nome
			END	AS nome,
			
			--aclie.nome as nome,
			CASE
				WHEN LEN(csei.cod_fiscale) = 11
					THEN aclie.nome
					ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
							THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
					ELSE
						aclie.cognome
					END	
			END	AS cognome,

			--aclie.cognome as cognome,
			csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.PROVINCIA end as provincia,
			csei.cap as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			--20180912 AC: su richiesta di Flavia Scirocco / Maria Napolitano, per i clienti professionali, la data di sottoscrizione è quella del campo DATA_INIZIOBASE
			--C6Mart.Replace_Testo_Lettera_Benvenuto(	
			--									csei.CodiceContratto,
			--									csei.freq_Diagnosi,
			--									csei.freq_MONITORAGGIO,
			--									aclie.cognome,
			--									aclie.nome, 
			--									@tipoReport,
			--									csei.indirizzo,
			--									csei.DATA_INZIOAVANZATO,
			--									@dataRichiestaRistampa,
			--									gpdf.DataGenerazione,
			--									tla.[TESTO]
			--								) as testo,
			case
				when csei.TipoConsulenza = 'P' then
					C6Mart.Replace_Testo_Lettera_Benvenuto(	
														csei.CodiceContratto,
														csei.freq_Diagnosi,
														csei.freq_MONITORAGGIO,
														aclie.cognome,
														aclie.nome, 
														@tipoReport,
														csei.indirizzo,
														csei.DATA_INIZIOBASE,
														@dataRichiestaRistampa,
														gpdf.DataGenerazione,
														tla.[TESTO]
													)
				else
					C6Mart.Replace_Testo_Lettera_Benvenuto(	
														csei.CodiceContratto,
														csei.freq_Diagnosi,
														csei.freq_MONITORAGGIO,
														aclie.cognome,
														aclie.nome, 
														@tipoReport,
														csei.indirizzo,
														csei.DATA_INZIOAVANZATO,
														@dataRichiestaRistampa,
														gpdf.DataGenerazione,
														tla.[TESTO]
													)
			end as testo,
			
			--20180912 AC

			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
			pagina
 
		FROM	
			[C6Mart].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina] tla,	
			[C6Mart].[VCONTRATTI] csei JOIN
				C6MART.CONTRATTOSEI_METADATI META
				ON META.CHIAVECLIENTEPB = CSEI.CHIAVECLIENTEPB
				INNER JOIN
					[C6Mart].[ANAG_CLIENTI] aclie
					on csei.rete = aclie.rete and
					csei.cod_fiscale = aclie.cod_fiscale
					LEFT OUTER JOIN
						C6Mart.GESTIONE_PDF_FTP gpdf
						on
						gpdf.rete = csei.rete and
						gpdf.codiceFiscale = csei.cod_fiscale
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			csei.data_fineAvanzato > getDate() and
			tla.id = @codiceLettera and
			(gpdf.idReport = @idReport or @idreport = -1) 




END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22/12/2008
-- Description:	Per gestione richieste di reinvio PDF da parte di utenti HD o US
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]
	@IdReport INT
AS
BEGIN
	
	declare @ritorno  as int
	set @ritorno = 1

	select @ritorno = 0
	from C6Mart.GESTIONE_PDF_FTP A
	inner join (select Rete, CodiceFiscale FROM C6Mart.GESTIONE_PDF_FTP WHERE IdReport = @IdReport) B
	on A.Rete = B.Rete
	and A.CodiceFiscale = B.CodiceFiscale
	and TipoReport = 'LR'
	and FlagInvio = 'N'
	
	select @ritorno
END
GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS]

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--- inizio intervento RFAMinus
	declare @sogliaRfa as decimal (18,0) 
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	--- fine intervento RFAMinus
 
 SELECT    DISTINCT  
		--top 80
		--DATI COMUNI
		--RETE
		contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' 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.Profilo_Ass,0) = 0 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 --DA REINSERIRE QUANDO REPLATTATA
		--REPORT
		--Modello Diagnosi pre modifiche OMNIA
--		,4 as idModelloDiagnosi
		--Modello Diagnosi post modifiche OMNIA
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti

	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE

    where 1=1
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
--- inizio intervento RFAMinus
	and (patrimonioBF.ctv >= @sogliaRfa or contratti.cod_fiscale='02493690289')
--- fine intervento RFAMinus


  --and contratti.cod_fiscale ='LRNLCU73D28I470U'
--and contratti.Rete+contratti.Cod_Fiscale in
--('FPVSLCN45T61F205S',
--'FFRNVGL41D02E118N',
--'FDNGGSN33A68B910W',
--'FGVZLRA76R53A124C',
--'FTBLFNC39T17A124B',
--'FRPSPTR38M15F205V',
--'FRDRNDR61E17A124G',
--'FBTTFNZ61L24A124V',
--'FCNCMRT52R15D656H',
--'FMNTMRC82C08I608Y',
--'FGRDLMR35C53G999P'
--)

	--CLUSTER
	--and substring(contratti.cod_fiscale,1,1) >= '0' AND substring(contratti.cod_fiscale,1,3) <= 'CPP'
	--and substring(contratti.cod_fiscale,1,3) > 'CPP' AND substring(contratti.cod_fiscale,1,3) <= 'LLL'
	--and substring(contratti.cod_fiscale,1,3) > 'LLL' AND substring(contratti.cod_fiscale,1,3) <= 'PPP'

--
--and contratti.Cod_Fiscale in
--(
--'SPDSPR55S54A176I'

--,'02252020348'
--,'02486990720'
--,'80007810197'
--)

END














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS]    Script Date: 08/02/2022 17:09:43 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


--ALTER procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS]

--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	--- inizio intervento RFAMinus
--	declare @sogliaRfa as decimal (18,0) 
--	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
--	--- fine intervento RFAMinus
 
-- SELECT    DISTINCT  
--		--top 80
--		--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.Profilo_Ass,0) = 0 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 --DA REINSERIRE QUANDO REPLATTATA
--		--REPORT
--		--Modello Diagnosi pre modifiche OMNIA
----		,4 as idModelloDiagnosi
--		--Modello Diagnosi post modifiche OMNIA
--		,5 as idModelloDiagnosi
--		,1 as idReportDiagnosi
--		,'Diagnosi' as descrizioneDiagnosi
--		,-1 as idReportMonitoraggio
--		,719 as idModellotMonitoraggio
--		,'Monitoraggio' as descrizioneMonitoraggio
--		,contratti.AdesioneSuccessivaAvanzato 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,
--		0 As NoMonitoraggio,
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio 

--	from C6Mart.RP_vContrattiPerGenerazioneReport contratti

--	left join C6Mart.ANAG_PROMOTORI promotori
--		on contratti.Rete = promotori.Rete
--		and contratti.Cod_Agente = promotori.Id_Promotore
--	left join C6Mart.ANAG_CLIENTI clienti
--		on contratti.Rete = clienti.Rete
--		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
--		on contratti.Rete = patrimonioImmobiliare.Rete
--		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
--		on contratti.Rete = patrimonioTerzi.Rete
--		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--	left outer join C6Mart.MIFID MIFID
--		on contratti.Rete = MIFID.Rete
--		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--		on contratti.Rete = PatrNonRapprAsset.Rete
--		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--	left outer join C6Mart.vNumeroIntermediari numIntermediari
--		on contratti.Rete = numIntermediari.Rete 
--		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--	left outer join C6Mart.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'		
--	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--		on contratti.Rete = PARTITEVIAGGIANTI.RETE
--		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE

--    where 1=1
--	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
----- inizio intervento RFAMinus
--	and (patrimonioBF.ctv >= @sogliaRfa or contratti.cod_fiscale='02493690289')
----- fine intervento RFAMinus


--  --and contratti.cod_fiscale ='LRNLCU73D28I470U'
----and contratti.Rete+contratti.Cod_Fiscale in
----('FPVSLCN45T61F205S',
----'FFRNVGL41D02E118N',
----'FDNGGSN33A68B910W',
----'FGVZLRA76R53A124C',
----'FTBLFNC39T17A124B',
----'FRPSPTR38M15F205V',
----'FRDRNDR61E17A124G',
----'FBTTFNZ61L24A124V',
----'FCNCMRT52R15D656H',
----'FMNTMRC82C08I608Y',
----'FGRDLMR35C53G999P'
----)

--	--CLUSTER
--	--and substring(contratti.cod_fiscale,1,1) >= '0' AND substring(contratti.cod_fiscale,1,3) <= 'CPP'
--	--and substring(contratti.cod_fiscale,1,3) > 'CPP' AND substring(contratti.cod_fiscale,1,3) <= 'LLL'
--	--and substring(contratti.cod_fiscale,1,3) > 'LLL' AND substring(contratti.cod_fiscale,1,3) <= 'PPP'

----
----and contratti.Cod_Fiscale in
----(
----'SPDSPR55S54A176I'

----,'02252020348'
----,'02486990720'
----,'80007810197'
----)

--END






GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Adriano]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select * from global_error
--[C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Adriano] 1000
CREATE PROCEDURE [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Adriano]
@volThreads int = 1
WITH EXEC AS CALLER
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 
 SELECT    DISTINCT  
		--top 80
		--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.Profilo_Ass,0) = 0 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 --DA REINSERIRE QUANDO REPLATTATA
		--REPORT
		--Modello Diagnosi pre modifiche OMNIA
--		,4 as idModelloDiagnosi
		--Modello Diagnosi post modifiche OMNIA
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		case TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof
		--'S' as Flgprof
		--,C6Mart.EsistonoServiziAggiuntivi (contratti.rete, contratti.Cod_Fiscale) as FlagServiziAggiuntivi
	from [C6Mart].[RP_vContrattiPerGenerazioneReport_OnDemand_Adriano] contratti

	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	left join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE

    where 1=1
		and contratti.Cod_Fiscale in 
    (
--'TDSNGL54D57A944S',
--'GRNMRC39H14F335P',
--'MZZRLL39M62D869K'

'RNZNNA01M68C745C'
  )
		--('GSNLVI49B23L551I') --('ZNALDN49B42D590R') -- ('VLLDRN58B03F119A') -- TEST PRO QUOTA
		--('TSCCNZ65E58C574M') -- Non dà problemi di spaginazione nella tabella Complessità alta
		--('GLNGPP55A28A883O') -- Problema di spaginazione nella tabella Complessità alta
		and patrimonioBF.ctv >= 25000
END

--[C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Adriano]
GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	declare @sogliaRfa as decimal (18,0) 
	declare @data_perf as datetime
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads)
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
	inner join C6Mart.tb_campione camp
	on contratti.Rete = camp.Rete 
		and contratti.Cod_Fiscale = camp.Cod_Fiscale
		and camp.flag_stampa=1
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
	--- fine intervento RFAMinus

END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A]    Script Date: 08/02/2022 17:14:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



--ALTER procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (@volThreads int = 9999)
--AS
--BEGIN
--	SET NOCOUNT ON;

--	declare @sogliaRfa as decimal (18,0) 
--	declare @data_perf as datetime
	
--	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
--	set @data_perf = '20200401'

--	truncate table C6Mart.tbNotAllocatedResources

--	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
--		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
--	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
--	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
--	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
--		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
--		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
--	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
--	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


-- SELECT distinct TOP (@volThreads) contratti.Rete
--		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
--		,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
--		,contratti.Cod_Fiscale CodiceFiscale
--		,clienti.Cognome CognomeCliente
--		,clienti.nome NomeCliente
--		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
--		,contratti.CodiceContratto CodiceContratto
--		,contratti.tip_contratto
--		,5 as idModelloDiagnosi
--		,1 as idReportDiagnosi
--		,'Diagnosi' as descrizioneDiagnosi
--		,-1 as idReportMonitoraggio
--		,719 as idModellotMonitoraggio
--		,'Monitoraggio' as descrizioneMonitoraggio
--		,contratti.AdesioneSuccessivaAvanzato 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,
--		0 As NoMonitoraggio,
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio ,
--		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio,
--		0 as flagnqp,
--		0 as flagprlrde,
--		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
--		------0 as Flgprof,
--		0 as flagpg
--		----------------------------------------------------- fine 09/3/2018 
--		,
--		case contratti.TipoConsulenza
--			when 'P' then 'S'
--			when 'D' then 'N'
--			else 'N'
--		end as Flgprof

--	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
--	left join C6Mart.ANAG_PROMOTORI promotori
--		on contratti.Rete = promotori.Rete
--		and contratti.Cod_Agente = promotori.Id_Promotore
--	left join  C6Mart.tbNotAllocatedResources as nar	--pk
--		on contratti.Rete = nar.Rete				--pk
--		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
--	left join C6Mart.ANAG_CLIENTI clienti
--		on contratti.Rete = clienti.Rete
--		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
--		on contratti.Rete = patrimonioImmobiliare.Rete
--		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
--		on contratti.Rete = patrimonioTerzi.Rete
--		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--	left outer join C6Mart.MIFID MIFID
--		on contratti.Rete = MIFID.Rete
--		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--		on contratti.Rete = PatrNonRapprAsset.Rete
--		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--	left outer join C6Mart.vNumeroIntermediari numIntermediari
--		on contratti.Rete = numIntermediari.Rete 
--		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--	left outer join C6Mart.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'		
--	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--		on contratti.Rete = PARTITEVIAGGIANTI.RETE
--		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--	left join c6mart.vcontrattic6 vcontr
--	on vcontr.codicecontratto  =  contratti.codicecontratto
--    where 1=1
--	and nar.rete is null --pk
--	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
--	--- inizio intervento RFAMinus
--	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
--	--- fine intervento RFAMinus

--END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Cruscotto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--select * from global_error
--[C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Cruscotto] 1000
CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Cruscotto] (@volThreads int = 1)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 
 SELECT    DISTINCT  
		--top 80
		--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.Profilo_Ass,0) = 0 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 --DA REINSERIRE QUANDO REPLATTATA
		--REPORT
		--Modello Diagnosi pre modifiche OMNIA
--		,4 as idModelloDiagnosi
		--Modello Diagnosi post modifiche OMNIA
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		case TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof
		--'S' as Flgprof
		--,C6Mart.EsistonoServiziAggiuntivi (contratti.rete, contratti.Cod_Fiscale) as FlagServiziAggiuntivi
	from [C6Mart].[RP_vContrattiPerGenerazioneReport_OnDemand_Adriano] contratti

	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	left join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE

    where 1=1
		and contratti.Rete + contratti.Cod_Fiscale in 
		(select Rete + Cod_Fiscale from FiltroCruscottoGiornaliero)

END

--[C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Cruscotto]

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--select * from global_error

CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Luca] (@volThreads int = 9999)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 
 SELECT    DISTINCT  
		--top 80
		--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.Profilo_Ass,0) = 0 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 --DA REINSERIRE QUANDO REPLATTATA
		--REPORT
		--Modello Diagnosi pre modifiche OMNIA
--		,4 as idModelloDiagnosi
		--Modello Diagnosi post modifiche OMNIA
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as Flgprof
		--,C6Mart.EsistonoServiziAggiuntivi (contratti.rete, contratti.Cod_Fiscale) as FlagServiziAggiuntivi
	from C6Mart.[RP_vContrattiPerGenerazioneReport_OnDemand_Adriano] contratti

	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	left join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE

    where 1=1
	and contratti.cod_Fiscale 
	--in ('CSTGPP41P15A734N','CRLLGU39L22L781F','BDNMNL51L54L219G','BCCGRL55S51H211C'
	--	,'BBNSVN47R12D458Y')
	in (
'GLZGCR44A30G157T',
'TTTRRT74S09H501J',
'LCCDNL68E17Z133A',
'VRNFNC57H65D154R'
)
	--and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)

--	and contratti.Cod_Fiscale in ('BSSNRE69T26F241U') -- S SEI PRIVATE POST
	--and contratti.Cod_Fiscale in ('BRNMGR59E55D110F') -- F SEI POST
	--and contratti.Cod_Fiscale in ('DNGLNM47A55Z116Y') -- S SEI
	--and contratti.Cod_Fiscale in ('RZZNDR78T03C034Y') -- S SEI
	--and contratti.Cod_Fiscale in ('SDNDRA55H13A326J') -- S SEI
	--and contratti.Cod_Fiscale in ('VLLLSU61C55H501X') -- S SEI
	--and contratti.Cod_Fiscale in ('CMNDGI47A18C363S') -- S SEI
	--and contratti.Cod_Fiscale in ('VLNFNC49R63E184Y') -- S SEI
	--and contratti.Cod_Fiscale in ('RCCMRC33M27H814Q') -- S SEI
	--and contratti.Cod_Fiscale in ('DDDLGU36S08G778A') -- S SEI
	--and contratti.Cod_Fiscale in ('PNTSMN79R43H501O') -- S SEI
	--and contratti.Cod_Fiscale in ('GBRGRL53L14H714J') --F SEI PRIVATE
	--and contratti.Cod_Fiscale in ('SPGGTT38H65E289O') -- S SEI
	--and contratti.Cod_Fiscale in ('NCLMRS46H62B025U') -- S SEI
	--and contratti.Cod_Fiscale in ('FRNMRS47E53G388J') -- S SEI
	--and contratti.Cod_Fiscale in ('NRDVLR38M47F205H') -- S SEI
	--and contratti.Cod_Fiscale in ('SRTGNN57C31E648W') -- F SEI PRIVATE
	--and contratti.Cod_Fiscale in ('FRTNLC72S69G999W') -- S SEI POST
	
	--and contratti.Cod_Fiscale in ('BLLGRL53D49G273J') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('LBLNRC91T05F830F') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('SCLSFN41M28G273G') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('SMNNNA74B44B486O') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('VCRCRL49H53G273J') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('SPTGNN40M01L112U') --Non trovato in vcontratti
	--and contratti.Cod_Fiscale in ('FCCDRD74H29A794A') --Non trovato in vcontratti
	--and contratti.Cod_Fiscale in ('SMNNNA74B44B486O') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('VNONRL85L56Z129G') -- S SEI CONT
	--and contratti.Cod_Fiscale in ('MNUPLM32R54B486M') -- S SEI POST
	--and contratti.Cod_Fiscale in ('BLLCCT44S54B486J') --Non trovato in vcontratti
	--and contratti.Cod_Fiscale in ('FRNGLI01R68G273Y') --Non trovato in vcontratti
	--and contratti.Cod_Fiscale in ('FRNNTN00D10G273V') --Non trovato in vcontratti
	--and contratti.Cod_Fiscale in ('BRGGLN21L57D150S') -- Escluso da RP_vTuttiIContratti poiché la datafineavanzato è antecedente alla data odierna
	--and contratti.Cod_Fiscale in ('CMMBBR58E71H501G') -- Escluso da RP_vTuttiIContratti poiché la datafineavanzato è antecedente alla data odierna
 
 --and contratti.Cod_Fiscale in ('MRNPTR42A11L948N') -- F SEI POST
 --and contratti.Cod_Fiscale in ('BNDGNN65A31B988C') -- F SEI CONT
 --and contratti.Cod_Fiscale in ('MRMMZF66E27F205J') -- F SEI PRIVATE CONT
 --and contratti.Cod_Fiscale in ('PRNMMG39H44A952X') -- F SEI PRIVATE POST
 --and contratti.Cod_Fiscale in ('TGLDLF40M23Z315O') -- S SEI PRIVATE CONT
 --and contratti.Cod_Fiscale in ('BTTSFN55C21G388M') -- S SEI PRIVATE POST 
 --and contratti.Cod_Fiscale in ('BGGCRL41D13I068X') -- S SEI POST
 --and contratti.Cod_Fiscale in ('MCCMRA53R58A984B') -- S SEI CONT

END

--[C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_Adriano]




GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA]
AS
BEGIN
	SET NOCOUNT ON;

 SELECT DISTINCT contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
	    ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  c6Mart.NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)

END






GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

--	[C6Mart].[RP_Selettore_GetDataThreads] 'SEI'
--	[C6Mart].[RP_Selettore_GetDataThreads] 'DIRECT'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
	declare @nomeRep as varchar(32)
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	set @sogliaRfaDB=0

	set @nomeRep = (select Reportistica from [C6Mart].[TB_Selettore_GetDataThreads])

if (@nomeRep='SEI')
BEGIN
 SELECT distinct top 150 --(@volThreads)
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto--,2 as tip_contratto--
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	--left join c6mart.vcontrattic6 vcontr
	--on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and ((patrimonioBF.ctv >= @sogliaRFA) or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) --rimossa per Fideuram Direct / Direct Banker
	and contratti.tip_contratto <> 3 
	--and contratti.Cod_Fiscale in ('BRCCLN52L04C494U') --,'05291050267','BRCCLN52L04C494U')--Da togliere 
	--and contratti.Cod_Fiscale in ('CMSDDD45S16B565N','05291050267','BRCCLN52L04C494U')--Da togliere 
	--and contratti.rete = 'W' -- rete F
	--prova gladiolo decommentare 
and contratti.Cod_Fiscale not in ('RVIFNC70A52B885O')


END

if (@nomeRep='DIRECT')
BEGIN
 SELECT distinct
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	
         and   contratti.tip_contratto = 3
            AND patrimonioBF.ctv >= @sogliaRFADB
       --  and vcontr.data_perf < @data_perf

	
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)
	and 1=0 --da togliere


END

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A.TEMP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A.TEMP] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	--left join  C6Mart.tbNotAllocatedResources as nar	--pk
	--	on contratti.Rete = nar.Rete				--pk
	--	and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	--and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6Mart.tbNotAllocatedResources)

END







GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_20180309_PreServizi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_20180309_PreServizi] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)

END








GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_20180928_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_20180928_OLD] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 


	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)

END









GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_20240412]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE   procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_20240412] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

--	[C6Mart].[RP_Selettore_GetDataThreads] 'SEI'
--	[C6Mart].[RP_Selettore_GetDataThreads] 'DIRECT'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
	declare @nomeRep as varchar(32)
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	set @sogliaRfaDB=0

	set @nomeRep = (select Reportistica from [C6Mart].[TB_Selettore_GetDataThreads])

if (@nomeRep='SEI')
BEGIN
 SELECT distinct top (@volThreads)
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto--,2 as tip_contratto--
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof,
		0 as scaduto

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	--and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf) --rimossa per Fideuram Direct / Direct Banker
	and 
             (patrimonioBF.ctv >= @sogliaRFA
        
       or vcontr.data_perf < @data_perf)
	   and contratti.tip_contratto <> 3 

	  

		-- aggiunta per Fideuram Direct / Direct Banker
	--	and contratti.Cod_Fiscale in (select Cod_Fiscale from c6mart.BrsClienteESG where Preferenza_esg_cliente=1)
	--and contratti.Cod_Fiscale in('BLLMRC50H30A745B','CRNMHL67L26F839R','DCRCRL47S11D612N','NSASMN77H42E290B')

	 --LET FD 
	--- and contratti.Cod_Fiscale IN('CHNLRD74B22G273D','DCMCSR46T14E435W','LCNGNZ82P14H163B','MRLSLV83E60D912U','PRVLSS76B21H620R','RBSMRC82S17F205N')
	--LET SEI
	--and contratti.Cod_Fiscale IN('00226500288','DCRCRL47S11D612N','GRVMHL37P28E730P','NSASMN77H42E290B','RLFVLR54S60L219S')
		--and contratti.tip_contratto=3
		--and contratti.Cod_Fiscale='GNSMRN59L62L219S'
	--CLIENTI 27_07_2023
	--and contratti.Cod_Fiscale in ('NSASMN77H42E290B','MRLNMR51L66D653A','DCRCRL47S11D612N','CRNMHL67L26F839R','BLLMRC50H30A745B','GNSMRN59L62L219S')
--	and contratti.Cod_Fiscale not in ('BLLMRC50H30A745B')
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)

	--- fine intervento RFAMinus
		--and contratti.Cod_Fiscale ='FRTPLA69L25D749V'
		--in ('DLCJND31L68L193P','MZZMCR67M62G337C','FRNLSN70R08H501U','NTLRCR89M21D612Y')
END

if (@nomeRep='DIRECT')
BEGIN
 SELECT distinct top (@volThreads)
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	--and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf) --rimossa per Fideuram Direct / Direct Banker
	and ((
            contratti.tip_contratto <> 3
            AND patrimonioBF.ctv >= @sogliaRFA
        )
        OR (
            contratti.tip_contratto = 3
            AND patrimonioBF.ctv >= @sogliaRFADB
        ) or vcontr.data_perf < @data_perf)

		-- aggiunta per Fideuram Direct / Direct Banker
	--	and contratti.Cod_Fiscale in (select Cod_Fiscale from c6mart.BrsClienteESG where Preferenza_esg_cliente=1)
	--and contratti.Cod_Fiscale in('BLLMRC50H30A745B','CRNMHL67L26F839R','DCRCRL47S11D612N','NSASMN77H42E290B')
and contratti.tip_contratto=3
	 --LET FD 
	--- and contratti.Cod_Fiscale IN('CHNLRD74B22G273D','DCMCSR46T14E435W','LCNGNZ82P14H163B','MRLSLV83E60D912U','PRVLSS76B21H620R','RBSMRC82S17F205N')
	--LET SEI
	--and contratti.Cod_Fiscale IN('00226500288','DCRCRL47S11D612N','GRVMHL37P28E730P','NSASMN77H42E290B','RLFVLR54S60L219S')
		--and contratti.tip_contratto=3
		--and contratti.Cod_Fiscale='GNSMRN59L62L219S'
	--CLIENTI 27_07_2023
	--and contratti.Cod_Fiscale in ('NSASMN77H42E290B','MRLNMR51L66D653A','DCRCRL47S11D612N','CRNMHL67L26F839R','BLLMRC50H30A745B','GNSMRN59L62L219S')
--	and contratti.Cod_Fiscale not in ('BLLMRC50H30A745B')
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)
	--and contratti.Cod_Fiscale in ('RVTMCL54B09H598B','00173080417','SRGFRC62H07C933N','BLLMRC50H30A745B')
--	and contratti.Cod_Fiscale in ('PCCPRZ63S65H501X')
--	and contratti.Cod_Fiscale  IN ('TRVGNT69A29H769D','RRGNNT45M67B423K','QRNPRI72M08H703F','PSTFNC40D10I992T','PCCPRZ63S65H501X','FRNMRA47M56L219G')
	--AND contratti.Cod_Fiscale='RRGNNT45M67B423K'
	--and contratti.Cod_Fiscale='FRLMRC74B04H501C'
	--- fine intervento RFAMinus	

END

END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A]    Script Date: 08/02/2022 17:14:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



--ALTER procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (@volThreads int = 9999)
--AS
--BEGIN
--	SET NOCOUNT ON;

--	declare @sogliaRfa as decimal (18,0) 
--	declare @data_perf as datetime
	
--	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
--	set @data_perf = '20200401'

--	truncate table C6Mart.tbNotAllocatedResources

--	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
--		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
--	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
--	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
--	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
--		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
--		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
--	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
--	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


-- SELECT distinct TOP (@volThreads) contratti.Rete
--		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
--		,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
--		,contratti.Cod_Fiscale CodiceFiscale
--		,clienti.Cognome CognomeCliente
--		,clienti.nome NomeCliente
--		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
--		,contratti.CodiceContratto CodiceContratto
--		,contratti.tip_contratto
--		,5 as idModelloDiagnosi
--		,1 as idReportDiagnosi
--		,'Diagnosi' as descrizioneDiagnosi
--		,-1 as idReportMonitoraggio
--		,719 as idModellotMonitoraggio
--		,'Monitoraggio' as descrizioneMonitoraggio
--		,contratti.AdesioneSuccessivaAvanzato 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,
--		0 As NoMonitoraggio,
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio ,
--		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio,
--		0 as flagnqp,
--		0 as flagprlrde,
--		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
--		------0 as Flgprof,
--		0 as flagpg
--		----------------------------------------------------- fine 09/3/2018 
--		,
--		case contratti.TipoConsulenza
--			when 'P' then 'S'
--			when 'D' then 'N'
--			else 'N'
--		end as Flgprof

--	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
--	left join C6Mart.ANAG_PROMOTORI promotori
--		on contratti.Rete = promotori.Rete
--		and contratti.Cod_Agente = promotori.Id_Promotore
--	left join  C6Mart.tbNotAllocatedResources as nar	--pk
--		on contratti.Rete = nar.Rete				--pk
--		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
--	left join C6Mart.ANAG_CLIENTI clienti
--		on contratti.Rete = clienti.Rete
--		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
--		on contratti.Rete = patrimonioImmobiliare.Rete
--		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
--		on contratti.Rete = patrimonioTerzi.Rete
--		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--	left outer join C6Mart.MIFID MIFID
--		on contratti.Rete = MIFID.Rete
--		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--		on contratti.Rete = PatrNonRapprAsset.Rete
--		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--	left outer join C6Mart.vNumeroIntermediari numIntermediari
--		on contratti.Rete = numIntermediari.Rete 
--		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--	left outer join C6Mart.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'		
--	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--		on contratti.Rete = PARTITEVIAGGIANTI.RETE
--		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--	left join c6mart.vcontrattic6 vcontr
--	on vcontr.codicecontratto  =  contratti.codicecontratto
--    where 1=1
--	and nar.rete is null --pk
--	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
--	--- inizio intervento RFAMinus
--	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
--	--- fine intervento RFAMinus

--END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_CAMPIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_CAMPIONE] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;



	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	set @sogliaRfaDB=0


 SELECT distinct TOP (@volThreads)
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf) --rimossa per Fideuram Direct / Direct Banker
	and ((
            contratti.tip_contratto <> 3
            AND patrimonioBF.ctv >= @sogliaRFA
        )
        OR (
            contratti.tip_contratto = 3
            AND patrimonioBF.ctv >= @sogliaRFADB
        ) or vcontr.data_perf < @data_perf) -- aggiunta per Fideuram Direct / Direct Banker
	--	and contratti.Cod_Fiscale in (select Cod_Fiscale from c6mart.BrsClienteESG where Preferenza_esg_cliente=1)
	--and contratti.Cod_Fiscale in ('PRVLSS76B21H620R','CHNLRD74B22G273D')
	--and contratti.Cod_Fiscale in ('CRNMHL67L26F839R','MRLSLV83E60D912U')
	--and contratti.Cod_Fiscale in ('BLLMRC50H30A745B','CRNMHL67L26F839R','MRLSLV83E60D912U')
	--and contratti.Cod_Fiscale IN('BLLMRC50H30A745B')
		and contratti.tip_contratto=3
	--- fine intervento RFAMinus
	


END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A]    Script Date: 08/02/2022 17:14:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



--ALTER procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (@volThreads int = 9999)
--AS
--BEGIN
--	SET NOCOUNT ON;

--	declare @sogliaRfa as decimal (18,0) 
--	declare @data_perf as datetime
	
--	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
--	set @data_perf = '20200401'

--	truncate table C6Mart.tbNotAllocatedResources

--	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
--		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
--	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
--	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
--	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
--		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
--		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
--	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
--	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


-- SELECT distinct TOP (@volThreads) contratti.Rete
--		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
--		,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
--		,contratti.Cod_Fiscale CodiceFiscale
--		,clienti.Cognome CognomeCliente
--		,clienti.nome NomeCliente
--		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
--		,contratti.CodiceContratto CodiceContratto
--		,contratti.tip_contratto
--		,5 as idModelloDiagnosi
--		,1 as idReportDiagnosi
--		,'Diagnosi' as descrizioneDiagnosi
--		,-1 as idReportMonitoraggio
--		,719 as idModellotMonitoraggio
--		,'Monitoraggio' as descrizioneMonitoraggio
--		,contratti.AdesioneSuccessivaAvanzato 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,
--		0 As NoMonitoraggio,
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio ,
--		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio,
--		0 as flagnqp,
--		0 as flagprlrde,
--		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
--		------0 as Flgprof,
--		0 as flagpg
--		----------------------------------------------------- fine 09/3/2018 
--		,
--		case contratti.TipoConsulenza
--			when 'P' then 'S'
--			when 'D' then 'N'
--			else 'N'
--		end as Flgprof

--	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
--	left join C6Mart.ANAG_PROMOTORI promotori
--		on contratti.Rete = promotori.Rete
--		and contratti.Cod_Agente = promotori.Id_Promotore
--	left join  C6Mart.tbNotAllocatedResources as nar	--pk
--		on contratti.Rete = nar.Rete				--pk
--		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
--	left join C6Mart.ANAG_CLIENTI clienti
--		on contratti.Rete = clienti.Rete
--		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
--		on contratti.Rete = patrimonioImmobiliare.Rete
--		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
--		on contratti.Rete = patrimonioTerzi.Rete
--		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--	left outer join C6Mart.MIFID MIFID
--		on contratti.Rete = MIFID.Rete
--		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--		on contratti.Rete = PatrNonRapprAsset.Rete
--		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--	left outer join C6Mart.vNumeroIntermediari numIntermediari
--		on contratti.Rete = numIntermediari.Rete 
--		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--	left outer join C6Mart.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'		
--	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--		on contratti.Rete = PARTITEVIAGGIANTI.RETE
--		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--	left join c6mart.vcontrattic6 vcontr
--	on vcontr.codicecontratto  =  contratti.codicecontratto
--    where 1=1
--	and nar.rete is null --pk
--	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
--	--- inizio intervento RFAMinus
--	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
--	--- fine intervento RFAMinus

--END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_ESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_ESG] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	declare @sogliaRfa as decimal (18,0) 
	declare @data_perf as datetime
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
	and contratti.Cod_Fiscale='BFFNCM61E24E851I'
	--- fine intervento RFAMinus

END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A]    Script Date: 08/02/2022 17:14:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



--ALTER procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (@volThreads int = 9999)
--AS
--BEGIN
--	SET NOCOUNT ON;

--	declare @sogliaRfa as decimal (18,0) 
--	declare @data_perf as datetime
	
--	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
--	set @data_perf = '20200401'

--	truncate table C6Mart.tbNotAllocatedResources

--	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
--		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
--	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
--	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
--	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
--		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
--		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
--	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
--	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


-- SELECT distinct TOP (@volThreads) contratti.Rete
--		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
--		,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
--		,contratti.Cod_Fiscale CodiceFiscale
--		,clienti.Cognome CognomeCliente
--		,clienti.nome NomeCliente
--		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
--		,contratti.CodiceContratto CodiceContratto
--		,contratti.tip_contratto
--		,5 as idModelloDiagnosi
--		,1 as idReportDiagnosi
--		,'Diagnosi' as descrizioneDiagnosi
--		,-1 as idReportMonitoraggio
--		,719 as idModellotMonitoraggio
--		,'Monitoraggio' as descrizioneMonitoraggio
--		,contratti.AdesioneSuccessivaAvanzato 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,
--		0 As NoMonitoraggio,
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio ,
--		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio,
--		0 as flagnqp,
--		0 as flagprlrde,
--		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
--		------0 as Flgprof,
--		0 as flagpg
--		----------------------------------------------------- fine 09/3/2018 
--		,
--		case contratti.TipoConsulenza
--			when 'P' then 'S'
--			when 'D' then 'N'
--			else 'N'
--		end as Flgprof

--	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
--	left join C6Mart.ANAG_PROMOTORI promotori
--		on contratti.Rete = promotori.Rete
--		and contratti.Cod_Agente = promotori.Id_Promotore
--	left join  C6Mart.tbNotAllocatedResources as nar	--pk
--		on contratti.Rete = nar.Rete				--pk
--		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
--	left join C6Mart.ANAG_CLIENTI clienti
--		on contratti.Rete = clienti.Rete
--		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
--		on contratti.Rete = patrimonioImmobiliare.Rete
--		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
--		on contratti.Rete = patrimonioTerzi.Rete
--		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--	left outer join C6Mart.MIFID MIFID
--		on contratti.Rete = MIFID.Rete
--		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--		on contratti.Rete = PatrNonRapprAsset.Rete
--		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--	left outer join C6Mart.vNumeroIntermediari numIntermediari
--		on contratti.Rete = numIntermediari.Rete 
--		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--	left outer join C6Mart.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'		
--	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--		on contratti.Rete = PARTITEVIAGGIANTI.RETE
--		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--	left join c6mart.vcontrattic6 vcontr
--	on vcontr.codicecontratto  =  contratti.codicecontratto
--    where 1=1
--	and nar.rete is null --pk
--	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
--	--- inizio intervento RFAMinus
--	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
--	--- fine intervento RFAMinus

--END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_GB] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

--	[C6Mart].[RP_Selettore_GetDataThreads] 'SEI'
--	[C6Mart].[RP_Selettore_GetDataThreads] 'DIRECT'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
	declare @nomeRep as varchar(32)
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	set @sogliaRfaDB=0

	set @nomeRep = (select Reportistica from [C6Mart].[TB_Selettore_GetDataThreads])

if (@nomeRep='SEI')
BEGIN
 SELECT distinct top (@volThreads)
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto--,2 as tip_contratto--
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	--left join c6mart.vcontrattic6 vcontr
	--on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and ((patrimonioBF.ctv >= @sogliaRFA) or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) --rimossa per Fideuram Direct / Direct Banker
	and contratti.tip_contratto <> 3 
	--and contratti.Cod_Fiscale in ('BRCCLN52L04C494U') --,'05291050267','BRCCLN52L04C494U')--Da togliere 
	--and contratti.Cod_Fiscale in ('CMSDDD45S16B565N','05291050267','BRCCLN52L04C494U')--Da togliere 
	--and contratti.rete = 'W' -- rete F
	--prova gladiolo decommentare 
and contratti.Cod_Fiscale not in ('RVIFNC70A52B885O')


END

if (@nomeRep='DIRECT')
BEGIN
 SELECT distinct
 contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	
         and   contratti.tip_contratto = 3
            AND patrimonioBF.ctv >= @sogliaRFADB
       --  and vcontr.data_perf < @data_perf

	
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)
	and 1=0 --da togliere


END

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_Pino]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_Pino]
	-- Add the parameters for the stored procedure here
	@volThreads int = 9999
AS
BEGIN
SET NOCOUNT ON;

	declare @sogliaRfa as decimal (18,0) 
	declare @data_perf as datetime
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--- inizio intervento RFAMinus
	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf )
	--- fine intervento RFAMinus
END
GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_TEST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--[C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_TEST] 10

CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_TEST] (@volThreads int = 9999)
AS
BEGIN

	SET NOCOUNT ON;



 SELECT distinct TOP 1000 contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	--left join  C6Mart.tbNotAllocatedResources as nar	--pk
	--	on contratti.Rete = nar.Rete				--pk
	--	and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	--and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)



END
GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_TEST_EN_P]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_TEST_EN_P] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)

END







GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_Test2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A_Test2] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	declare @sogliaRfa as decimal (18,0) 
	declare @data_perf as datetime
	
	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	set @data_perf = '20200401'

	truncate table C6Mart.tbNotAllocatedResources

	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


 SELECT distinct TOP (@volThreads) contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
		------0 as Flgprof,
		0 as flagpg
		----------------------------------------------------- fine 09/3/2018 
		,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	left join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 
	
	 contratti.Cod_Fiscale ='CCCLSS72L06H501H'
	--- inizio intervento RFAMinus
	
	--- fine intervento RFAMinus

END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A]    Script Date: 08/02/2022 17:14:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



--ALTER procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (@volThreads int = 9999)
--AS
--BEGIN
--	SET NOCOUNT ON;

--	declare @sogliaRfa as decimal (18,0) 
--	declare @data_perf as datetime
	
--	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
--	set @data_perf = '20200401'

--	truncate table C6Mart.tbNotAllocatedResources

--	INSERT INTO C6Mart.tbNotAllocatedResources(COD_FISCALE, RETE, CTV)
--		SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
--	FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
--	 INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT
--	 ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
--		AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
--		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
--	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
--	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE


-- SELECT distinct TOP (@volThreads) contratti.Rete
--		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
--		,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
--		,contratti.Cod_Fiscale CodiceFiscale
--		,clienti.Cognome CognomeCliente
--		,clienti.nome NomeCliente
--		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
--		,contratti.CodiceContratto CodiceContratto
--		,contratti.tip_contratto
--		,5 as idModelloDiagnosi
--		,1 as idReportDiagnosi
--		,'Diagnosi' as descrizioneDiagnosi
--		,-1 as idReportMonitoraggio
--		,719 as idModellotMonitoraggio
--		,'Monitoraggio' as descrizioneMonitoraggio
--		,contratti.AdesioneSuccessivaAvanzato 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,
--		0 As NoMonitoraggio,
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio ,
--		---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi
--		CASE 
--		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
--		END AS ContrattoOld,
--		0 AS IdReportPDFDiagnosi, 		  
--		0	AS IdReportPDFMonitoraggio,
--		0 as flagnqp,
--		0 as flagprlrde,
--		-- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore
--		------0 as Flgprof,
--		0 as flagpg
--		----------------------------------------------------- fine 09/3/2018 
--		,
--		case contratti.TipoConsulenza
--			when 'P' then 'S'
--			when 'D' then 'N'
--			else 'N'
--		end as Flgprof

--	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
--	left join C6Mart.ANAG_PROMOTORI promotori
--		on contratti.Rete = promotori.Rete
--		and contratti.Cod_Agente = promotori.Id_Promotore
--	left join  C6Mart.tbNotAllocatedResources as nar	--pk
--		on contratti.Rete = nar.Rete				--pk
--		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
--	left join C6Mart.ANAG_CLIENTI clienti
--		on contratti.Rete = clienti.Rete
--		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
--		on contratti.Rete = patrimonioImmobiliare.Rete
--		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
--		on contratti.Rete = patrimonioTerzi.Rete
--		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--	left outer join C6Mart.MIFID MIFID
--		on contratti.Rete = MIFID.Rete
--		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--		on contratti.Rete = PatrNonRapprAsset.Rete
--		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--	left outer join C6Mart.vNumeroIntermediari numIntermediari
--		on contratti.Rete = numIntermediari.Rete 
--		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--	left outer join C6Mart.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'		
--	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--		on contratti.Rete = PARTITEVIAGGIANTI.RETE
--		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--	left join c6mart.vcontrattic6 vcontr
--	on vcontr.codicecontratto  =  contratti.codicecontratto
--    where 1=1
--	and nar.rete is null --pk
--	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
--	--- inizio intervento RFAMinus
--	and (patrimonioBF.ctv >= @sogliaRFA or vcontr.data_perf < @data_perf)
--	--- fine intervento RFAMinus

--END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_orig]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create PROCEDURE [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_orig]
AS
BEGIN
	SET NOCOUNT ON;

 SELECT DISTINCT contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  c6Mart.NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)

END






GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_TEST_ANDREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_TEST_ANDREA]
AS
BEGIN
	SET NOCOUNT ON;

 SELECT DISTINCT contratti.Rete
		--,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
	    ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,5 as idModelloDiagnosi
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio 
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  c6Mart.NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
   where contratti.Cod_Fiscale = 'FRLFLC51L11H501G'

END






GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_SELECT_ZIP_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_SELECT_ZIP_DA_INVIARE]
AS
BEGIN
	SELECT
--		Rete,
--		CodiceFiscale,
		id IdZip
		,NomeFile
--		,
--		TipoReport,
--		DataGenerazione,
--		DataInvio,
--		FlagInvio,
--		NomeFile
	FROM
		C6Mart.GESTIONE_ZIP_FTP
	WHERE
		FlagInvio = 'N'
	
  	
END

 


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_UPDATE_EMAIL_HOST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec [C6Mart].[Gestione_EMAIL_Inviate] @Email_Id=7,@DataInvio='2008-11-17 18:10:43:603'
CREATE procedure [C6Mart].[GESTIONE_UPDATE_EMAIL_HOST]
	@Email_Id int
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE [C6Mart].GESTIONE_EMAIL
	SET Data_Comunicazione_Host = getdate()
	WHERE Email_Id = @Email_Id
	RETURN @@ROWCOUNT
END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_UPDATE_EMAIL_INVIATE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec [C6Mart].[Gestione_EMAIL_Inviate] @Email_Id=7,@DataInvio='2008-11-17 18:10:43:603'
CREATE procedure [C6Mart].[GESTIONE_UPDATE_EMAIL_INVIATE]
	@Email_Id int,
	@DataInvio datetime
AS
BEGIN
	SET NOCOUNT ON;

		INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'GESTIONE_UPDATE_EMAIL_INVIATE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	UPDATE [C6Mart].GESTIONE_EMAIL
	SET Data_Invio = @DataInvio,
	    Inviata = 'S'
	WHERE Email_Id = @Email_Id
	RETURN @@ROWCOUNT

	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'GESTIONE_UPDATE_EMAIL_INVIATE' --AND
		--Inizio = (
		--	SELECT
		--		MAX(Inizio)
		--	FROM
		--		LOG_ESECUZIONE
		--	WHERE
		--		Nome = 'GESTIONE_UPDATE_EMAIL_INVIATE'
		--)

END


GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_UPDATE_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- 22/12/2008 MODIFICA PER GESTIONE RISTAMPE
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_UPDATE_FTP]
	@Id INT,
	@TipoReport varchar(2),
	@IdZip INT
AS
BEGIN
	

	


	IF @TipoReport <> 'LR' -- INVIO NORMALE
	BEGIN	
		UPDATE C6Mart.GESTIONE_PDF_FTP
		SET
			DataInvio = GetDate(),
			FlagInvio = 'S',
			Id_fk_Zip = @IdZip
		WHERE
			IdReport = @Id
	END 
	ELSE -- INVIO DI UNA RISTAMPA. TENGO TRACCIA SOLO DELL'ULTIMA DATA DI RISTAMPA
	BEGIN
		UPDATE C6Mart.GESTIONE_PDF_FTP
		SET
			DataInvioRistampa = GetDate(),
			FlagInvio = 'S',
			Id_fk_Zip = @IdZip
		WHERE
			IdReport = @Id
	END 
END

GO
/****** Object:  StoredProcedure [C6Mart].[GESTIONE_UPDATE_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[GESTIONE_UPDATE_ZIP] 
	@Id int
AS
BEGIN
	UPDATE C6Mart.GESTIONE_ZIP_FTP
	SET
		DataInvio = GetDate(),
		FlagInvio = 'S'
	WHERE
		Id = @Id
END

GO
/****** Object:  StoredProcedure [C6Mart].[GET_RECUPERO_LETTERE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
CREATE procedure [C6Mart].[GET_RECUPERO_LETTERE]
AS  
BEGIN  
 SET NOCOUNT ON;  
  
    SELECT distinct
   contratti.CodiceContratto CodiceContratto  
  ,contratti.Rete  
  ,contratti.Cod_Fiscale CodiceFiscale  
  ,clienti.nome NomeCliente  
  ,clienti.Cognome CognomeCliente  
  ,contratti.Cod_Agente CodicePB  
  ,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Nome,'') ELSE '' END) NomePB  
  ,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'') ELSE '' END) CognomePB  
  ,gg.numeroPagine
  ,contratti.tip_contratto 
  --, InvioBenvenuto
  --, Data_FineAvanzato, contratti.DATA_PERF, RisorseNa, NumRevoche, Profilo_EC
 --select *
 from C6Mart.GESTIONE_PDF_FTP_DaRecuperare_20250503 gg
 join C6Mart.VCONTRATTI
 --join C6Mart.RP_vContrattiPerGenerazioneReport 
       contratti  on contratti.rete  = gg.rete and contratti.Cod_Fiscale = gg.CodiceFiscale
 left JOIN  C6Mart.CONTRATTOSEI_METADATI md ON  md.chiaveClientePB = contratti.chiaveClientePB  
 left join C6Mart.ANAG_PROMOTORI promotori  
  on contratti.Rete = promotori.Rete  
  and contratti.Cod_Agente = promotori.Id_Promotore  
 left join C6Mart.ANAG_CLIENTI clienti  
  on contratti.Rete = clienti.Rete  
  and contratti.Cod_Fiscale = clienti.Cod_Fiscale  
 /*INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare  
  on contratti.Rete = patrimonioImmobiliare.Rete  
  and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale   
 left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi  
  on contratti.Rete = patrimonioTerzi.Rete  
  and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale   
 left outer join C6Mart.MIFID MIFID  
  on contratti.Rete = MIFID.Rete  
  and contratti.Cod_Fiscale = MIFID.Cod_Fiscale  
 left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset  
  on contratti.Rete = PatrNonRapprAsset.Rete  
  and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale  
 left outer join C6Mart.vNumeroIntermediari numIntermediari  
  on contratti.Rete = numIntermediari.Rete   
  and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale  
 left outer join C6Mart.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'    
 left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI  
  on contratti.Rete = PARTITEVIAGGIANTI.RETE  
  and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE  
  */
    where 1=1  
	--and exists (SELECT 1 FROM    C6Mart.PIRAMIDE_MOD mo where mo.COD_FISCALE = contratti.COD_FISCALE)
	--and CodiceContratto = '000160CO307'
	order by CodiceFiscale 
END  
  
  
GO
/****** Object:  StoredProcedure [C6Mart].[getCodiceContratto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[getCodiceContratto]
	@codiceFiscale as varchar(16),
	@rete as varchar(1),
	@codicePB as varchar(6)

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	SELECT DISTINCT
		CodiceContratto
	FROM 
		C6Mart.contrattoSEI c6 
--	JOIN
--		C6Mart.anag_clienti ac
--	ON
--		c6.cod_fiscale = ac.cod_fiscale AND
--		c6.rete = ac.rete
--	JOIN
--		C6Mart.anag_promotori ap
--	ON
--		c6.cod_agente = ap.id_promotore

	WHERE	c6.rete = @rete AND
			c6.cod_fiscale = @codiceFiscale AND
			c6.cod_agente = @codicePB


--	WHERE
--		((@rete is null) or (c6.rete = @rete))  AND
--		((@CodicePB is null) or (c6.Cod_Agente like @codicePB + '%')) AND
--		((@cod_fiscale is null) or (c6.cod_fiscale like @cod_fiscale + '%')) AND
--		((@nomeCliente is null) or (ac.nome like @nomeCliente + '%')) AND
--		((@cognomeCliente is null) or (ac.cognome like @cognomeCliente + '%')) AND
--		((@cognomePB is null) or (ap.cognome like @cognomePB + '%')) AND
--		((@nomePB is null) or (ap.nome like @nomePB + '%'))
	
END

GO
/****** Object:  StoredProcedure [C6Mart].[GETDATATHREADS_LETTERE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE   procedure [C6Mart].[GETDATATHREADS_LETTERE] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	declare @sogliaRfa as decimal (18,0); 
	declare @sogliaRfaDB as decimal (18,0); 
	declare @data_perf as datetime;
	declare @nomeRep as varchar(32) = (select Reportistica from [C6Mart].[TB_Selettore_GetDataThreads]);

	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA');
	set @data_perf = '20200401';
	set @sogliaRfaDB=0;

	declare @NotAllocatedResources TABLE (COD_FISCALE varchar(32), RETE varchar(1), CTV decimal);

	create table #NotAllocatedResources (COD_FISCALE varchar(32), RETE varchar(1), CTV decimal)
	INSERT INTO #NotAllocatedResources(COD_FISCALE, RETE, CTV)
	SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
		FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
		INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

	if (@nomeRep='SEI')
	BEGIN
		 SELECT distinct --top (@volThreads)
		isnull(patrimonioBF.ctv,0) as Patrimoniobancafideuramctv
		,contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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) + isnull(patrimonioTerzi.ctv,0)) as Patrimoniocomplessivototalectv
		,isnull(numIntermediari.NumeroIntermediari,0) as NumeroIntermediari
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as flagpg,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof
		,0 as scaduto

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  #NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	and ((patrimonioBF.ctv >= @sogliaRFA))-- or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) --rimossa per Fideuram Direct / Direct Banker
	and contratti.tip_contratto <> 3 
	 --contratti.Cod_Fiscale not in ('RVIFNC70A52B885O')

	END

	if (@nomeRep='DIRECT')
	BEGIN
		 SELECT distinct --top (@volThreads)
	     isnull(patrimonioBF.ctv,0) as Patrimoniobancafideuramctv
		,contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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) + isnull(patrimonioTerzi.ctv,0)) as Patrimoniocomplessivototalectv
		,isnull(numIntermediari.NumeroIntermediari,0) as NumeroIntermediari
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as flagpg,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof
		,0 as scaduto

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  @NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
    and contratti.tip_contratto = 3
    and patrimonioBF.ctv >= @sogliaRFADB
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)

	END

END

GO
/****** Object:  StoredProcedure [C6Mart].[GETDATATHREADS_LETTERE_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create     procedure [C6Mart].[GETDATATHREADS_LETTERE_GB] (@volThreads int = 9999)
AS
BEGIN
	SET NOCOUNT ON;

	declare @sogliaRfa as decimal (18,0); 
	declare @sogliaRfaDB as decimal (18,0); 
	declare @data_perf as datetime;
	declare @nomeRep as varchar(32) = (select Reportistica from [C6Mart].[TB_Selettore_GetDataThreads]);

	set @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA');
	set @data_perf = '20200401';
	set @sogliaRfaDB=0;

	declare @NotAllocatedResources TABLE (COD_FISCALE varchar(32), RETE varchar(1), CTV decimal);

	INSERT INTO @NotAllocatedResources(COD_FISCALE, RETE, CTV)
	SELECT PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE, SUM(ISNULL(CTV,0)) as CTV
		FROM C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
		INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT ON PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
		AND CASE WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA,4) ELSE LEFT(PIRAMIDE_VERT.ID_AREA,3) END  = PIRAMIDE_MOD.ID_AREA
	WHERE PIRAMIDE_MOD.ID_AREA = 'Na' AND ISNULL(CTV,0) > 0
	GROUP BY PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE

	if (@nomeRep='SEI')
	BEGIN
		 SELECT distinct top (@volThreads)
		 contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio ,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as flagpg,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  @NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	--and ((patrimonioBF.ctv >= @sogliaRFA) or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) --rimossa per Fideuram Direct / Direct Banker
	and contratti.tip_contratto <> 3 
	and contratti.Cod_Fiscale not in ('RVIFNC70A52B885O')

	END

	if (@nomeRep='DIRECT')
	BEGIN
		 SELECT distinct top (@volThreads)
		 contratti.Rete
		,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete
		,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
		,contratti.Cod_Fiscale CodiceFiscale
		,clienti.Cognome CognomeCliente
		,clienti.nome NomeCliente
		,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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
		,contratti.CodiceContratto CodiceContratto
		,contratti.tip_contratto
		,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker
		,1 as idReportDiagnosi
		,'Diagnosi' as descrizioneDiagnosi
		,-1 as idReportMonitoraggio
		,719 as idModellotMonitoraggio
		,'Monitoraggio' as descrizioneMonitoraggio
		,contratti.AdesioneSuccessivaAvanzato 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,
		0 As NoMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		CASE 
		  WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0 
		END AS ContrattoOld,
		0 AS IdReportPDFDiagnosi, 		  
		0	AS IdReportPDFMonitoraggio,
		0 as flagnqp,
		0 as flagprlrde,
		0 as flagpg,
		case contratti.TipoConsulenza
			when 'P' then 'S'
			when 'D' then 'N'
			else 'N'
		end as Flgprof

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join C6Mart.ANAG_PROMOTORI promotori
		on contratti.Rete = promotori.Rete
		and contratti.Cod_Agente = promotori.Id_Promotore
	left join  @NotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	left join C6Mart.ANAG_CLIENTI clienti
		on contratti.Rete = clienti.Rete
		and contratti.Cod_Fiscale = clienti.Cod_Fiscale
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare
		on contratti.Rete = patrimonioImmobiliare.Rete
		and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
	left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi
		on contratti.Rete = patrimonioTerzi.Rete
		and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
	left outer join C6Mart.MIFID MIFID
		on contratti.Rete = MIFID.Rete
		and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
	left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
		on contratti.Rete = PatrNonRapprAsset.Rete
		and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
	left outer join C6Mart.vNumeroIntermediari numIntermediari
		on contratti.Rete = numIntermediari.Rete 
		and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
	left outer join C6Mart.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'		
	left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
		on contratti.Rete = PARTITEVIAGGIANTI.RETE
		and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
    and contratti.tip_contratto = 3
    --and patrimonioBF.ctv >= @sogliaRFADB
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)

	END

END


GO
/****** Object:  StoredProcedure [C6Mart].[GetRiskArea]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6Mart].[GetRiskArea] 'S', 'GLLRFL52L02L219D'
CREATE procedure [C6Mart].[GetRiskArea]
-- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	select

		case 
			when b.profilo is null then -1 
			else b.profilo
		end as profiloCode

	FROM
		c6mart.mifid a
		left outer join C6Mart.CODIFICA_RISCHIO b
		on A.PROFILO_ASS=B.PROFILO
	WHERE

		a.COD_FISCALE = @CodiceFiscale
		and a.RETE= @Rete

END 

GO
/****** Object:  StoredProcedure [C6Mart].[InvioLetteraBenvenuto_ExcludedListApply]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[InvioLetteraBenvenuto_ExcludedListApply]
as
begin

begin transaction
begin try

--taking documents to update
select distinct rete, codicefiscale, idreport 
into #tmp
from [C6Mart].[GESTIONE_PDF_FTP] p
where p.[DataInvio] is NULL and p.[FlagInvio] = 'N' and p.id_fk_zip = -1
  and CodiceFiscale in (select distinct CodiceFiscale from [C6Mart].[InvioLetteraBenvenuto_excludedlist] )

--'excluding' records from GESTIONE_PDF_FTP
update p
set p.[DataInvio] = getdate()
	,p.[FlagInvio] = 'S'
	,p.[id_fk_zip] = 999999
from [C6Mart].[GESTIONE_PDF_FTP] p
	inner join #tmp c on  c.codicefiscale = p.codicefiscale
	and c.rete = p.rete 
	and c.idreport = p.idreport

--updating excludedlist, setting data_aggriogamento for records affected
update e
set e.Data_aggiornamento = getdate()
from [C6Mart].[InvioLetteraBenvenuto_excludedlist] e
 inner join #tmp c on  c.codicefiscale = e.codicefiscale

commit transaction
end try

begin catch	
	
	DECLARE @Msg NVARCHAR(MAX)  
    SELECT @Msg=ERROR_MESSAGE() 
	
	rollback transaction
    
	RAISERROR('Error Occured: %s', 20, 101,@msg) --WITH LOG

end catch

end
GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_FD177ProfiloDiRischio_Adeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6Mart].[PL_D_S177ProfiloDiRischio_Adeguatezza] 'F', 'DVTMRA58B09F839W'
CREATE procedure [C6Mart].[PL_D_FD177ProfiloDiRischio_Adeguatezza]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	

	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenza DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	declare @descrizioneProfilo varchar(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @riskclassDescr VARCHAR(250)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza varchar(20)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenza = M.DATA_FINE_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
			case m.experience
				when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
				else '-'
			end,
			@riserva=isnull(importoriserva,0.00),
		@inv_l_p=isnull(perclungoperiodo,0.00)--@inv_l_p='58.00'
	FROM
		C6Mart.MIFID AS M
		INNER JOIN C6Mart.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


	-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (@dataScadenza) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as DescrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as descrizioneEsperienza,
		@riserva as riserva,
		@inv_l_p as investimento_l_periodo
		
END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_FD178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6Mart].[PL_D_S178IndicatoriEsitoAdeguatezza] 'F', 'MTTSRA00H61D704A'
CREATE procedure [C6Mart].[PL_D_FD178IndicatoriEsitoAdeguatezza]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

------- PARTE FINTA DA ELIMINARE

--declare @flagProf varchar(1)

--select @flagProf = TipoConsulenza from c6mart.vContratti where Rete = @Rete and Cod_Fiscale = @CodiceFiscale

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Il livello di concentrazione degli emittenti presenti nel suo  portafoglio è ADEGUATO in quanto tutti gli emittenti sono presenti in misura inferiore rispetto ai limiti stabiliti dalla Banca.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 3;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'La complessità dei singoli strumenti detenuti nel suo portafoglio è ADEGUATA in quanto coerente con il suo livello di esperienza e conoscenza in materia di  investimenti.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 4;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Il livello di concentrazione di prodotti complessi nel suo portafoglio è ADEGUATO in quanto inferiore al limite massimo stabilito dalla Banca e coerente rispetto al patrimonio minimo di portafoglio amministrato.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 5;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Il numero delle operazioni effettuate è ADEGUATO in quanto inferiore rispetto ai limiti stabiliti dalla Banca in base all’entità del portafoglio amministrato e al suo livello di esperienza e conoscenza in materia d’investimenti.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 6;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Le caratteristiche di durata e liquidità dei prodotti presenti nel suo portafoglio sono ADEGUATE in quanto coerenti con la ripartizione del patrimonio negli orizzonti temporali indicata nel questionario di profilatura.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 7;

--if @flagProf = 'P'
--	begin
--		select 
--		ti_ordine as Ordine,
--		ti_indicatore as Indicatore,
--		ti_adeguato as Adeguato,
--		ti_descrizione as DescrizioneEsito
--		from  #TABELLAINDICATORI
--		where ti_ordine in (1, 2, 3, 7)
--	end
--else
--	begin
--		select 
--		ti_ordine as Ordine,
--		ti_indicatore as Indicatore,
--		ti_adeguato as Adeguato,
--		ti_descrizione as DescrizioneEsito
--		from  #TABELLAINDICATORI
--	end
exec [C6Mart].[Decodifica_Concentrazione_Prodotti_Complessi] @rete,@codicefiscale

	declare @flagProf varchar(1)

	select @flagProf = TipoConsulenza from c6mart.vContratti where Rete = @Rete and Cod_Fiscale = @CodiceFiscale

	select *
	into #res
	from (
			select
				1 as Ordine,
				'Rischio' as Indicatore,
				convert(varchar(5), RM_ADEGUATEZZA_INDICATORE) as Adeguato,
				RM_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	 
			 union

			 select
				2 as Ordine,
				'Riserva' as Indicatore,
				convert(varchar(5), RS_ADEGUATEZZA_INDICATORE) as Adeguato,
				RS_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			 union

			 select
				3 as Ordine,
				'Investimento di Lungo Periodo' as Indicatore,
				convert(varchar(5), TH_ADEGUATEZZA_INDICATORE) as Adeguato,
				TH_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			 union

			 select
				4 as Ordine,
				'Complessità' as Indicatore,
				convert(varchar(5), CM_ADEGUATEZZA_INDICATORE) as Adeguato,
				CM_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			union

			 select
				5 as Ordine,
				'Concentrazione in prodotti complessi' as Indicatore,
				convert(varchar(5), CC_ADEGUATEZZA_INDICATORE) as Adeguato,
				CC_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			union

			 select
				6 as Ordine,
				'Frequenza delle operazioni' as Indicatore,
				convert(varchar(5), FQ_ADEGUATEZZA_INDICATORE) as Adeguato,
				FQ_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			union

			 select
				7 as Ordine,
				'Concentrazione Emittenti' as Indicatore,
				convert(varchar(5), CE_ADEGUATEZZA_INDICATORE) as Adeguato,
				CE_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			 		union

			 select
				8 as Ordine,
				'Concentrazione Valutaria' as Indicatore,
				convert(varchar(5), CV_ADEGUATEZZA_INDICATORE) as Adeguato,
				CV_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
		) a

		--if @flagProf = 'P'
		--	select * from #res where ordine in (1, 2, 3, 7)
		--else
			select * from #res

		--drop table #res



END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S150Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','')
		END AS Residenza,
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_INZIOAVANZATO) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		null AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Provincia] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM         
		C6MART.VCONTRATTI AS CONTRATTOSEI -- TABELLA BASE
	INNER JOIN 
		C6MART.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MART.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MART.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MART.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S151ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MART.MIFID AS M
		INNER JOIN C6MART.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S152Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MART.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area <> 'CC' --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MART.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6MART.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6MART.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MART.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MART.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MART.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S153PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from

	DECLARE @NOMERETE VARCHAR(30)

	--IF @Rete = 'F'
		--SET @NOMERETE = 'Banca Fideuram'
	--ELSE
		--SET @NOMERETE = 'Sanpaolo Invest'
		
	IF @Rete = 'F'
		SET @NOMERETE = 'Banca Fideuram'
	ELSE IF @Rete = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
	ELSE 
		SET @NOMERETE = 'IW Private Investments'

	SELECT 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			@NOMERETE AS Banca,
			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				@NOMERETE AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
			FROM C6MART.PATRIMONIO_BF patrBF
--			LEFT JOIN C6MART.ClientiConCCNegativo CCNegativo
--				ON PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--				AND PATRBF.TIPO_PRODOTTO = 'CC'
			WHERE 1 = 1
				AND patrBF.Rete = @Rete
				AND patrBF.Cod_Fiscale = @CodiceFiscale
				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
				and patrBF.id_area  <> 'cc'
			UNION ALL



			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
			FROM C6MART.PATRIMONIO_TERZI patrTerzi
			WHERE 1 = 1
				AND patrTerzi.Rete = @Rete
				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
			GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D_S153PatrimonioFinanziario]    Script Date: 08/02/2022 17:19:22 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- Stored procedure

---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
--ALTER procedure [C6Mart].[PL_D_S153PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from

--	DECLARE @NOMERETE VARCHAR(20)

--	IF @Rete = 'F'
--		SET @NOMERETE = 'Banca Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT 
--		Intermediario,
--		Ordine,
--		Banca,
--		Controvalore,
--		round(Percentuale,2) as Percentuale
--	FROM 
--	(
--		SELECT DISTINCT
--			Intermediario,
--			Ordine,
--			@NOMERETE AS Banca,
--			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
--			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
--			(
--				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
--				(SUM(ctv) over (partition by 'Totale'))
--			) * 100 AS PERCENTUALE
--		FROM 
--		(
--			SELECT 
--				@NOMERETE AS Intermediario,
--				SUM(ROUND(CTV,2)) AS ctv,
--				1 AS ordine
--			FROM C6MART.PATRIMONIO_BF patrBF
----			LEFT JOIN C6MART.ClientiConCCNegativo CCNegativo
----				ON PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----				AND PATRBF.TIPO_PRODOTTO = 'CC'
--			WHERE 1 = 1
--				AND patrBF.Rete = @Rete
--				AND patrBF.Cod_Fiscale = @CodiceFiscale
--				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
--				and patrBF.id_area  <> 'cc'
--			UNION ALL



--			SELECT 
--				Intermediario, 
--				SUM(ROUND(CTV,2)) AS ctv,
--				2 AS ordine
--			FROM C6MART.PATRIMONIO_TERZI patrTerzi
--			WHERE 1 = 1
--				AND patrTerzi.Rete = @Rete
--				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
--			GROUP BY patrTerzi.Intermediario

--		) PATR

--	) A
--	WHERE CONTROVALORE IS NOT NULL
--	ORDER BY Ordine

--END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure


-- =============================================
-- Author:		Luca De Lisio
-- Create date: 
-- Description:	
-- =============================================
--[C6Mart].[PL_DT_S154PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
CREATE procedure [C6Mart].[PL_D_S154PatrimonioFinanziario] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

SELECT 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		--CASE @Rete
			--WHEN 'S' THEN 'Sanpaolo Invest'
			--ELSE 'Banca Fideuram' 
		--END AS Banca,
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN 'Banca Fideuram'
			ELSE 'IW Private Investments' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	



























--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MART.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL
		--DETTAGLIO ASUL SENZA SKANDIA
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D_S154PatrimonioFinanziario]    Script Date: 08/02/2022 17:20:52 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- Stored procedure


---- =============================================
---- Author:		Luca De Lisio
---- Create date: 
---- Description:	
---- =============================================
----[C6Mart].[PL_DT_S154PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
--ALTER procedure [C6Mart].[PL_D_S154PatrimonioFinanziario] 
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--SELECT 
--	A.Banca,
--	A.Ordinamento,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,6)) Controvalore,
--	A.Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
--FROM 
--(		

--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Banca Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO AS Ordinamento,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

--		--PRODOTTI BF ESCLUSI GLI ASUL
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	



























----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MART.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MART.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MART.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL
--		--DETTAGLIO ASUL SENZA SKANDIA
--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL
--		--CON SKANDIA
--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale


--		UNION ALL

--		--PRODOTTI TERZI A CATALOGO
--		SELECT
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI NON A CATALOGO
--		SELECT 	
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MART.ASSET_PERC_TERZI ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MART.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

--) A

--ORDER BY A.ORDINAMENTO

--END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[PL_D_S155PatrimonioImmobiliare] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MART.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S156ALtroPatrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	SELECT 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MART.PATRIMONIO_ALTRO 
	WHERE 
		PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MART].[PL_D_S157ConfrontoPiramidi] 'F','FSLMSV46E05G999S'
CREATE procedure [C6Mart].[PL_D_S157ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MART.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			LEFT(ID_AREA,3) AS ID_AREA, 
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MART.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')
		--V 
			DECLARE @TOTCC AS INT
			SELECT @TOTCC = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND TIPO_PRODOTTO = 'Cc'

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCC = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCC <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					
					--V SOLO CC -> VAR = 0
									




					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					WHEN @TOTCC = @TOT THEN NULL
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCC = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MART.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6Mart].[PL_D_S158PiramideModello]  'F','DGSNNZ38T22E435S'
CREATE procedure [C6Mart].[PL_D_S158PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

		--SELECT BF.NOME_PROGETTO AS NomePrg,
		--	   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
		--	   AGGR.VAR_PERC_PTF as VarPrg,
		--	   SUM(BF.CTV)AS ControvalorePrg
		--FROM  C6Mart.PATRIMONIO_BF BF 
		--INNER JOIN C6Mart.RISCHIO_AGGREGATO AGGR
		--	ON BF.RETE= AGGR.RETE
		--	AND BF.COD_FISCALE= AGGR.COD_FISCALE
		--	AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		--INNER JOIN C6Mart.PIRAMIDE_MOD PIRMOD
		--	ON BF.RETE= PIRMOD.RETE
		--	AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
		--	AND BF.ID_AREA = PIRMOD.ID_AREA
		--	AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		--WHERE 1=1
		--AND BF.ID_AREA = 'inv'
		--AND BF.RETE = @Rete
		--AND BF.COD_FISCALE = @CodiceFiscale
		--AND BF.CTV > 0
		--group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF
		
		SELECT 
			PIRMOD.NOME_PROGETTO AS NomePrg,
			PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			ISNULL(T.VAR_PERC_PTF,0) as VarPrg,
			ISNULL(SUM(T.CTV),0) AS ControvalorePrg
	  	FROM  C6Mart.PIRAMIDE_MOD PIRMOD 
		LEFT JOIN
				(SELECT BF.RETE, BF.COD_FISCALE,BF.ID_AREA,BF.NOME_PROGETTO,AGGR.VAR_PERC_PTF,BF.CTV FROM  C6Mart.PATRIMONIO_BF BF 
				INNER JOIN C6Mart.RISCHIO_AGGREGATO AGGR
				ON BF.RETE= AGGR.RETE  
				AND BF.COD_FISCALE= AGGR.COD_FISCALE  
				AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO) T
			ON	PIRMOD.ID_AREA = T.ID_AREA   
			AND PIRMOD.COD_FISCALE = T.COD_FISCALE
			AND PIRMOD.RETE = T.RETE
			AND PIRMOD.NOME_PROGETTO = T.NOME_PROGETTO
		WHERE	
			PIRMOD.ID_AREA = 'inv'
			AND T.CTV > 0
			AND PIRMOD.RETE = @Rete
			AND PIRMOD.COD_FISCALE = @CodiceFiscale
		GROUP BY PIRMOD.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,T.VAR_PERC_PTF


END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

 CREATE procedure [C6Mart].[PL_D_S159PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Banca Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MART.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO

END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- cast(C6Mart.ANAG_CC.SALDO as decimal(15,2)) as Controvalore
-- [C6Mart].[PL_S43DettaglioProdottiBF] 'F', 'GFFSLL50T44F205Z'
--SELECT * FROM PATR1

CREATE procedure [C6Mart].[PL_D_S160DettaglioProdottiBF]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

SELECT 
PATRBF.NOME_PROGETTO AS EE, PATRBF.ID_AREA,
CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID AS TMP,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
		ELSE AREA.ID_AREA 
	END AS needarea,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
	SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS versato_need_progString,
	CASE 
	WHEN AREA.ID_AREA = 'Inv' 
		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS MinusPlusValenza_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS MinusPlusValenza_need_progString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
		ELSE NULL
	END	AS somma_var_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
		ELSE NULL
	END	AS somma_copertura_need_prog,
	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_needareaString,
	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		ELSE NULL  
	END AS copertura_needareaString,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_need_progString,
	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore, 
	PATRBF.VERSATO_NETTO AS VersatoNetto, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--	RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto, 
----	CASE WHEN ISNULL(RISCHIO_PROD.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varProdottoString,
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varProdottoString,
	case when (patrbf.tipo_prodotto ='CC') then 0.00 
	else RISCHIO_PROD.VAR_PERC_PTF
	end AS VaRprodotto, 
	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
	PARTVIA_DISINV AS partitaViaggiante,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
		ELSE NULL 
	END AS nota_needarea,
   RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
	ON PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
--		CASE 
--			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
--			ELSE 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
    case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END

LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY AREASORTORDER, nome_progetto, PATRBF.CTV DESC

END











GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:  Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S162DettaglioProdotti]

 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS

BEGIN
	
	SELECT  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MART.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MART.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S163PatrimonioFinanziarioMAssetClass] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT DISTINCT
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
		) * 100 AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY 
		ASSETCLASS.ORDINAMENTO
		
END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Marco Gentilezza
-- Create date: 
-- Description:	
-- =============================================
--C6Mart.PL_D_S164PolizzeAltriIstituti 'S', 'VGNVLR52C31G702Z'
CREATE procedure [C6Mart].[PL_D_S164PolizzeAltriIstituti] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		isnull(PATRTERZI.VERSATO_NETTO, 0) AS AmmontareVersamento 

	FROM 
		C6MART.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MART.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S165FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MART.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MART.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S166ContoCorrenteAI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D_S166ContoCorrenteAI] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     
		CCTerzi.INTERMEDIARIO AS Intermediario,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO AS Saldo,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6MART.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================


-- [C6Mart].[PL_D_S167DistribuzioneRischioCredito]   'F','BRGGRL48H52G096C'
CREATE procedure [C6Mart].[PL_D_S167DistribuzioneRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' WHEN PATRBF.RETE = 'S' THEN  'Sanpaolo Invest' ELSE 'IW Private Investments'  END AS INTERMEDIARIO,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MART.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' WHEN PATRBF.RETE = 'S' THEN  'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END









--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D_S167DistribuzioneRischioCredito]    Script Date: 08/02/2022 16:13:29 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- =============================================
---- Authors:		<Alessandro Tringali, Valerio Colaianni>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================


---- [C6Mart].[PL_D_S167DistribuzioneRischioCredito]   'F','BRGGRL48H52G096C'
--ALTER procedure [C6Mart].[PL_D_S167DistribuzioneRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;

----QUERY PER INTERMEDIARIO
--SELECT 
--RETE,
--COD_FISCALE,
--INTERMEDIARIO,
--CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest') THEN 1
--     ELSE 2 END AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

--SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,

--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END AS RISKCLASS,
--CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
--FROM
--[C6MART].PATRIMONIO_BF PATRBF
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
--LEFT OUTER JOIN
--[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
----INNER JOIN C6MART.CODIFICA_CREDITRISK CR
--LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END,
--CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--'Altri Istituti' AS INTERMEDIARIO,
----PATRTERZI.INTERMEDIARIO,
----SUM(CTV) AS CTV
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6MART].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
--FROM
--[C6MART].PATRIMONIO_BF PATRBF
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
--LEFT OUTER JOIN
--[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CTV) AS CTV
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6MART].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti]  'F','FF@7181'
CREATE procedure [C6Mart].[PL_D_S168TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[PL_D_S169RischiomercatoRischiocredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest'  WHEN PATRBF.RETE='W' THEN  'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    C6MART.patrimonio_bf  PATRBF,C6MART.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest'  WHEN PATRBF.RETE='W' THEN  'Patrimonio IW Private Inv.' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    C6MART.PATRIMONIO_TERZI  TERZI,C6MART.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    C6MART.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    C6MART.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    C6MART.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Banca Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		   WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    C6MART.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    C6MART.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    C6MART.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    C6MART.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    C6MART.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D_S169RischiomercatoRischiocredito]    Script Date: 08/02/2022 16:28:29 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


--ALTER procedure [C6Mart].[PL_D_S169RischiomercatoRischiocredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;
 
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    PATRBF.INSTITUTENAME,
--    CTV,
--    M.PROFILO_ASS AS CODICEPROFILO,
--    CR.MAX_VAR AS  VARMAX,
--    RISK_AGG.VAR_PERC_PTF AS VAR ,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END  AS VARSTRING,
--    RISK_AGG.CREDITRISK  RISKCLASS,
--        	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END AS  RISKCLASSSTRING,
--    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
----V La copertura viene valorizzata con un valore da 0 da 100
--  --  	CASE 
--	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
----		ELSE 
--NULL 
----	END 
--AS COVERAGESTRING,
--    M.RISKCLASS AS RISKCLASSMAX,
--    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
--    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
--		 THEN 1
--	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
--    END)		
--    *100 ,2)AS PERCENTAGE,
--	--V
--	ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV,
--	--V
--	1 as ORDINE,
--	RISK_AGG.Ully_perc
--    from
--    C6MART.patrimonio_bf  PATRBF,C6MART.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and PATRBF.rete= RISK_AGG.rete    
--    and PATRBF.cod_fiscale = @codiceFiscale
--    and PATRBF.rete= @rete
--    and PATRBF.CTV > 0
--    and
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--	RISK_AGG.Ully_perc,   
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    'Patrimonio altri Istituti' AS INSTITUTENAME,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV,
--	--V
--	2 as ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    C6MART.PATRIMONIO_TERZI  TERZI,C6MART.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and TERZI.rete= RISK_AGG.rete 
--    and TERZI.cod_fiscale =@codiceFiscale
--    and TERZI.rete=@rete
--    and TERZI.CTV > 0
--    and
--    (
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )    
--    GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    RISK_AGG.Ully_perc

--    ) PATRBF
--    LEFT OUTER JOIN 
--    C6MART.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    AND 
--    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Banca Fideuram' 
--          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
--          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    UNION ALL
    
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    'Patrimonio Complessivo' AS INSTITUTENAME,
--    SUM(CTV),
--    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
--    MAX(CR.MAX_VAR) AS  VARMAX,
--    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
--    MAX(	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS VARSTRING,
--    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
--    MAX(
--         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END )
--      AS  RISKCLASSSTRING,
--    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
--    MAX(   	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS COVERAGESTRING,
--    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
--	MAX(M.RISKCLASS) AS RISKCLASSMAX,
--    100 AS PERCENTAGE,
--	--V
--	3 AS ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    C6MART.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and PATRBF.CTV > 0    
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE

--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV
--    FROM
--    C6MART.PATRIMONIO_TERZI  TERZI
--        where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and TERZI.CTV > 0       
--     GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE

--    ) PATRBF
--    LEFT OUTER JOIN 
--    C6MART.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.CODIFICA_CREDITRISK  CK
--    ON 
--      M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--        where  
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    RISK_AGG.Ully_perc

--	--V
--	order by ordine

--END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--   [C6Mart].[PL_D_S170RischioDiversificazione] 'S','02148400126' 
CREATE procedure [C6Mart].[PL_D_S170RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int

	select @contaCC = count(*)
	from C6MART.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from C6MART.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete

	declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6mart.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6mart.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
 
SELECT 
	K.COD_FISCALE,
	K.RETE,	
	CASE 
		when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
		when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
		when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
		else 0
	END AS CTV_AGGREG,	 
	K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,

CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END 
as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,

case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Banca Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,

b.max_var as var_profilo,

--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine
FROM  C6MART.RISCHIO_AGGREGATO K 
left outer JOIN C6MART.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
left outer join C6MART.CODIFICA_RISCHIO b 
	ON A.PROFILO_ASS=B.PROFILO

WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine
 

END 





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		
-- Create date: 30/08/2013
-- Description: uguale a S76 
-- =============================================
--[C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
CREATE procedure [C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass] 
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Banca Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MART.PATRIMONIO_BF PATRBF
	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL

	UNION ALL

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MART.PATRIMONIO_BF PATRBF
	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO 
	ORDER BY CONTROVALORE DESC
  
END








--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 08/02/2022 16:31:51 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		
---- Create date: 30/08/2013
---- Description: uguale a S76 
---- =============================================
----[C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
--ALTER procedure [C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Banca Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MART.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
--		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL

--	UNION ALL

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		SUM(ASUL.CTV) as Controvalore,
--		MAX(PATRBF.CTV) as controvalore_contratto,
--		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MART.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
--		ON PATRBF.RETE = ASUL.RETE
--		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
--		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--        GROUP BY 
--        PATRBF.ID_CONTRATTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO 
--	ORDER BY CONTROVALORE DESC
  
--END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S177ProfiloDiRischio_Adeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--[C6Mart].[PL_D_S177ProfiloDiRischio_Adeguatezza] 'F', 'DVTMRA58B09F839W'
CREATE procedure [C6Mart].[PL_D_S177ProfiloDiRischio_Adeguatezza]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	

	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenza DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	declare @descrizioneProfilo varchar(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @riskclassDescr VARCHAR(250)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza varchar(20)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenza = M.DATA_FINE_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
			case m.experience
				when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
				--when 5 then 'Alta'
				else '-'
			end,
		@riserva=isnull(importoriserva,0.00),
		@inv_l_p=isnull(perclungoperiodo,0.00)--@inv_l_p='58.00'
     	FROM
		C6Mart.MIFID AS M
		INNER JOIN C6Mart.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


	-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (@dataScadenza) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as DescrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as descrizioneEsperienza,
		@riserva as riserva,
		@inv_l_p as investimento_l_periodo
		
END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S178CasiParticolari]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6Mart].[PL_D_S178CasiParticolari] 'F','MTTSRA00H61D704A'
CREATE procedure [C6Mart].[PL_D_S178CasiParticolari]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @SoloCC int
	declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int

	declare @IDTesto int

	set @IDTesto = 0

	------------------------------------------------------------------------------ CASO 1 COPERTURA = 0

	select @Copertura=copertura
    from C6Mart.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE


------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA

	-- Controllo se nel Portafoglio c'è solo CC

	select rete, cod_fiscale, id_area
	into #t1
	from c6mart.patrimonio_bf
	where rete = @Rete and cod_fiscale = @CodiceFiscale
	group by rete,cod_fiscale, id_area

	select rete, cod_fiscale, count(*) as numero
	into #t2
	from #t1
	group by rete, cod_fiscale having count(*) = 1

	if exists(
				select p.rete, p.cod_fiscale
				from c6mart.patrimonio_bf p
					inner join #t2
					on p.rete = #t2.rete
					and p.cod_fiscale = #t2.cod_fiscale
				--where rete + cod_fiscale  in (select rete + cod_fiscale from #t2)
				where p.id_area = 'liq'
				and p.tipo_prodotto = 'cc'
			)

				set @soloCC = 1
	else
				set @soloCC = 0

	drop table #t1
	drop table #t2

	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza= count(*) 
	from c6mart.patrimonio_bf patr
	left join [C6Staging].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

		-- Se si verifica uno dei due casi, imposto la variabile a 1
	if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1
	else
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0

----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
		begin
			set @IDTesto = 2
		end

	select ID, Testo
	from [C6Mart].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto


-- ********************* PARTE FINTA

--select ID, Testo
--	from [C6Mart].[TB_S178CasiParticolari_Testi]
--	where ID = 0

end
GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S178CasiParticolari_20181220]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6Mart].[PL_D_S178CasiParticolari] 'F','MTTSRA00H61D704A'
CREATE procedure [C6Mart].[PL_D_S178CasiParticolari_20181220]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

------------------------------------------------------------------------------ CASO 1 COPERTURA = 0
	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @IDTesto int

	set @IDTesto = 0

	select @Copertura=copertura
    from C6Mart.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE


------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA
	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza= count(*) 
	from c6mart.patrimonio_bf patr
	left join [C6Staging].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		if(@SoloProdottiSenzaAdeguatezza=0)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		if(@SoloProdottiSenzaAdeguatezza=0)
		begin
			set @IDTesto = 2
		end

	select ID, Testo
	from [C6Mart].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto


-- ********************* PARTE FINTA

--select ID, Testo
--	from [C6Mart].[TB_S178CasiParticolari_Testi]
--	where ID = 0

end
GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6Mart].[PL_D_S178IndicatoriEsitoAdeguatezza] 'F', 'MTTSRA00H61D704A'
CREATE   procedure [C6Mart].[PL_D_S178IndicatoriEsitoAdeguatezza]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

------- PARTE FINTA DA ELIMINARE

--declare @flagProf varchar(1)

--select @flagProf = TipoConsulenza from c6mart.vContratti where Rete = @Rete and Cod_Fiscale = @CodiceFiscale

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Il livello di concentrazione degli emittenti presenti nel suo  portafoglio è ADEGUATO in quanto tutti gli emittenti sono presenti in misura inferiore rispetto ai limiti stabiliti dalla Banca.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 3;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'La complessità dei singoli strumenti detenuti nel suo portafoglio è ADEGUATA in quanto coerente con il suo livello di esperienza e conoscenza in materia di  investimenti.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 4;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Il livello di concentrazione di prodotti complessi nel suo portafoglio è ADEGUATO in quanto inferiore al limite massimo stabilito dalla Banca e coerente rispetto al patrimonio minimo di portafoglio amministrato.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 5;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Il numero delle operazioni effettuate è ADEGUATO in quanto inferiore rispetto ai limiti stabiliti dalla Banca in base all’entità del portafoglio amministrato e al suo livello di esperienza e conoscenza in materia d’investimenti.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 6;

--		update  a 
--		set  TI_Adeguato = '1', TI_Descrizione = 'Le caratteristiche di durata e liquidità dei prodotti presenti nel suo portafoglio sono ADEGUATE in quanto coerenti con la ripartizione del patrimonio negli orizzonti temporali indicata nel questionario di profilatura.'
--		from #TABELLAINDICATORI a 
--		where TI_Ordine = 7;

--if @flagProf = 'P'
--	begin
--		select 
--		ti_ordine as Ordine,
--		ti_indicatore as Indicatore,
--		ti_adeguato as Adeguato,
--		ti_descrizione as DescrizioneEsito
--		from  #TABELLAINDICATORI
--		where ti_ordine in (1, 2, 3, 7)
--	end
--else
--	begin
--		select 
--		ti_ordine as Ordine,
--		ti_indicatore as Indicatore,
--		ti_adeguato as Adeguato,
--		ti_descrizione as DescrizioneEsito
--		from  #TABELLAINDICATORI
--	end

	declare @flagProf varchar(1)

	select @flagProf = TipoConsulenza from c6mart.vContratti where Rete = @Rete and Cod_Fiscale = @CodiceFiscale

	select *
	into #res
	from (
			select
				1 as Ordine,
				'Rischio' as Indicatore,
				convert(varchar(5), RM_ADEGUATEZZA_INDICATORE) as Adeguato,
				RM_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
	 
			 union

			 select
				2 as Ordine,
				'Riserva' as Indicatore,
				convert(varchar(5), RS_ADEGUATEZZA_INDICATORE) as Adeguato,
				RS_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			 union

			 select
				3 as Ordine,
				'Investimento di Lungo Periodo' as Indicatore,
				convert(varchar(5), TH_ADEGUATEZZA_INDICATORE) as Adeguato,
				TH_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			 union

			 select
				4 as Ordine,
				'Complessità' as Indicatore,
				convert(varchar(5), CM_ADEGUATEZZA_INDICATORE) as Adeguato,
				CM_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			union

			 select
				5 as Ordine,
				'Concentrazione in prodotti complessi' as Indicatore,
				convert(varchar(5), CC_ADEGUATEZZA_INDICATORE) as Adeguato,
				CC_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			union

			 select
				6 as Ordine,
				'Frequenza delle operazioni' as Indicatore,
				convert(varchar(5), FQ_ADEGUATEZZA_INDICATORE) as Adeguato,
				FQ_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			union

			 select
				7 as Ordine,
				'Concentrazione Emittenti' as Indicatore,
				convert(varchar(5), CE_ADEGUATEZZA_INDICATORE) as Adeguato,
				CE_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale

			 		union

			 select
				8 as Ordine,
				'Concentrazione Valutaria' as Indicatore,
				convert(varchar(5), CV_ADEGUATEZZA_INDICATORE) as Adeguato,
				CV_ADEGUATEZZA_DESCRIZIONE as DescrizioneEsito
			 from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI]
			 where Rete = @Rete and Codice_Fiscale = @CodiceFiscale
		) a

		if @flagProf = 'P'
			select * from #res where ordine in (1, 2, 3)
		else
			select * from #res

		--drop table #res



END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S179EmittentiConcentrazioneAlta]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6Mart].[PL_D_S179EmittentiConcentrazioneAlta] 'F', 'GNSMRN59L62L219S'
CREATE procedure [C6Mart].[PL_D_S179EmittentiConcentrazioneAlta]--'F','GNSMRN59L62L219S'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	select a.RETE,a.COD_FISCALE,a.Ordine,a.Emittente,a.ctv,a.flagAdeguatezza,a.franchigia,a.percConcentrazione,a.rating,a.sogliaConcentrazione
	from C6Mart.TB_S179EmittentiConcentrazioneAlta a
	inner join C6Staging.VAR_ADEGUATEZZA_INDICATORI i on 
	a.RETE=i.RETE and a.COD_FISCALE=i.CODICE_FISCALE 
	where a.rete = @Rete
	and a.Cod_Fiscale = @CodiceFiscale
	and i.CE_ADEGUATEZZA_INDICATORE=0
	order by emittente

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S180ProdottiComplessitaAlta]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--[C6Mart].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225'
CREATE   procedure [C6Mart].[PL_D_S180ProdottiComplessitaAlta] --'W','BRGDNT48P60D612V'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @TotalePatrimonio = ctv
	FROM
		C6Mart.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
--
 SELECT
    1 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
	into #temp
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 3

	union all
	SELECT
    2 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 2

	union all
	SELECT
    3 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 1

	-- --20180905 Fine modifica
	order by ordine,Compl_Base desc

	delete from #temp where ordine=1 and SommaPesi<20 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta è <20 
	delete from #temp where ordine=2 and SommaPesi<30 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta è <30 
	delete from #temp where ordine=3 and SommaPesi<50 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta e medio-bassa è <50 

--	select * from #temp --order by ordine,Complessita

	DECLARE @ordineConcatenato VARCHAR(4)

SELECT @ordineConcatenato = COALESCE(@ordineConcatenato + '', '') + CAST(ordine AS VARCHAR)
FROM (SELECT DISTINCT ordine FROM #temp) AS subquery
-- @ordineConcatenato conterrà i valori distinti concatenati della colonna 'ordine'


SELECT Ordine,CodiceContratto,NomeProdotto,Controvalore,Complessita,Peso,TotalePatrimonio,SommaControvalore,SommaPesi,@ordineConcatenato AS Ordine_Concatenato
into #temp2
FROM #temp

select t.Ordine
	  ,t.CodiceContratto
	  ,t.NomeProdotto
	  ,t.Controvalore
	  ,t.Complessita as Complessita_Numero
	  ,case when t.Complessita=4 then 'Alta' 
			when t.Complessita=3 then 'Medio-alta'
			when t.Complessita=2 then 'Medio-bassa'
			else 'n.d.' end as Complessita
	  ,t.Peso
	  ,t.TotalePatrimonio
	  ,t.SommaControvalore
	  ,t.SommaPesi
	  ,t.Ordine_Concatenato
	  ,n.Descrizione
	  into #temp3 
	  from #temp2 t left join [C6Mart].[TB_S180ProdottiComplessitaAlta_note] n on t.Ordine_Concatenato=n.id

	  	DECLARE @ComplessitaConcatenata VARCHAR(4)

SELECT @ComplessitaConcatenata = COALESCE(@ComplessitaConcatenata + '', '') + CAST(complessita_numero AS VARCHAR)
FROM (SELECT DISTINCT complessita_numero FROM #temp3 ) AS subquery order by Complessita_Numero desc


SELECT t.Ordine,t.CodiceContratto,t.NomeProdotto,t.Controvalore,t.Complessita_Numero,t.Complessita,t.Peso,t.TotalePatrimonio,t.SommaControvalore,t.SommaPesi,t.Ordine_Concatenato,replace(t.Descrizione,'@@@@@',co.descrizione) as Descrizione--,@ComplessitaConcatenata as Complessita_Concatenata
FROM #temp3 t left join [C6Mart].[TB_S180ProdottiComplessitaAlta_note_complessita] co on @ComplessitaConcatenata=co.id

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D_S180ProdottiComplessitaAlta_mini]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE    procedure [C6Mart].[PL_D_S180ProdottiComplessitaAlta_mini] --'W','BRGDNT48P60D612V'
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	SELECT @TotalePatrimonio = ctv
	FROM
		C6Mart.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND COD_FISCALE = @CodiceFiscale

 SELECT
    1 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
	into #temp
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 3

	union all

	SELECT
    2 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 2

	union all

	SELECT
    3 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6Mart].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 1

delete from #temp where ordine=1 and SommaPesi<20
delete from #temp where ordine=2 and SommaPesi<30
delete from #temp where ordine=3 and SommaPesi<50

select case when exists (select 1 from #temp) then 1 else 0 end

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_FD150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_FD150Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		null AS Professione, --ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','')
		END AS Residenza,
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_INZIOAVANZATO) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		null AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		null AS ProduzioneReport,--DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Provincia] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM         
		C6MART.VCONTRATTI AS CONTRATTOSEI -- TABELLA BASE
	INNER JOIN 
		C6MART.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MART.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	--LEFT JOIN 
	--	C6MART.ANAG_CLIENTI_PREV 
	--	ON 
	--		ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
	--		AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	--LEFT JOIN
	--	C6MART.DATI_REPORT 
	--	ON 
	--		ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
	--		AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_FD159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure


-- =============================================
-- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_D2_S159PatrimonioFinanziario] 'F','02477630582'
 CREATE procedure [C6Mart].[PL_D2_FD159PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			--ELSE 'Banca Fideuram' 
			WHEN 'F' THEN  'Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			--and patrbf.id_area <> 'CC'
			and patrbf.id_area not in ('CC','Self')
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MART.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO

END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S159PatrimonioFinanziario]    Script Date: 08/02/2022 16:37:35 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- Stored procedure


---- =============================================
---- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----[C6Mart].[PL_D2_S159PatrimonioFinanziario] 'F','02477630582'
-- ALTER procedure [C6Mart].[PL_D2_S159PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
	
--SELECT 
--	A.BANCA AS Banca,
--	A.ORDINAMENTO AS Ordinamento,
--	A.AssetClassId AS AssetClassId, 
--	A.AssetClassName AS AssetClassName, 
--	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
--	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
--FROM 
--(		
--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			--ELSE 'Banca Fideuram' 
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
--				 THEN 1 
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
--            END  
--		) * 100 AS Percentuale
--	FROM (

--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			--and patrbf.id_area <> 'CC'
--			and patrbf.id_area not in ('CC','Self')
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL
		
--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	
----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MART.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MART.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MART.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL

--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MART.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--) A

--ORDER BY A.ORDINAMENTO

--END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_FD160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













create     procedure [C6Mart].[PL_D2_FD160DettaglioProdottiBF] --'F','CHRMNL86P18H657Z'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
PATRBF.NOME_PROGETTO AS EE, PATRBF.ID_AREA,
CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID AS TMP,
	CASE 
		when robo.isProgettoRobo='S' then 'Rob'
		else 'ASF'
	END AS needarea,
	CASE 
		when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base'
		--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		--WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		--ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		WHEN patrbf.tipo_prodotto='CC' THEN 10 -- lo setto ad un valore alto in modo che si trova in basso come ordinamento
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	SUM(PATRBF.CTV) OVER (PARTITION BY robo.isProgettoRobo) AS somma_controval_needarea,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY robo.isProgettoRobo) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
	SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY robo.isProgettoRobo) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY robo.isProgettoRobo) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS versato_need_progString,
	CASE 
	WHEN AREA.ID_AREA = 'Inv' 
		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS MinusPlusValenza_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS MinusPlusValenza_need_progString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
		ELSE NULL
	END	AS somma_var_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
		ELSE NULL
	END	AS somma_copertura_need_prog,
	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
		ELSE NULL 
	END as var_needareaString,
	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		ELSE NULL  
	END AS copertura_needareaString,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_need_progString,
	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore, 
	PATRBF.VERSATO_NETTO AS VersatoNetto, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020
	case when (patrbf.tipo_prodotto ='CC') then 0.00 
	else RISCHIO_PROD.VAR_PERC_PTF
	end AS VaRprodotto, 
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		 WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
	ELSE NULL END as varProdottoString,
	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
	PARTVIA_DISINV AS partitaViaggiante,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
		ELSE NULL 
	END AS nota_needarea,
   RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,
	patrbf.tipo_prodotto as Tipo_Prodotto,
	isAPC = 'N',
	patrbf.chiaveprogetto

FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
	ON PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
--		CASE 
--			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
--			ELSE 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
    case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END

LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)

left join C6Staging.RP_Progetto_robo ROBO
on ROBO.chiaveprogetto=PATRBF.chiaveProgetto



WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY robo.isProgettoRobo,areasortorder

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_FD170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--   [C6Mart].[PL_D_S170RischioDiversificazione] 'S','02148400126' 

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE procedure [C6Mart].[PL_D2_FD170RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCCSelf as int

	select @contaCCSelf = count(*)
	from C6MART.patrimonio_Bf
	where tipo_prodotto = 'CC' or isin in('EURO00000009', 'EURO10000007' ) and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from C6MART.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete

	declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6mart.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6mart.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0

	-- Complessità
    declare @maxComplessita as int
	select @maxComplessita = max(compl_base) from [C6Mart].[TB_S180ProdottiComplessitaAlta]
			where 
			     cod_fiscale like 
					   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
					   ELSE @CodiceFiscale
					   END
				 and codman = 
					   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
					   ELSE ''
					   END

				 and rete= @Rete 
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				 and compl_base <> 10
	--
 
SELECT 
	K.COD_FISCALE,
	K.RETE,	
	CASE 
		when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
		when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
		when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
		else 0
	END AS CTV_AGGREG,	 
	K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contaCCSelf = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,

CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contaCCSelf <> 0 THEN 'n.c.' ELSE NULL END 
as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contaCCSelf <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contaCCSelf = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,

case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram'  when k.rete = 'S' then 'Sanpaolo Invest' else 'IW Private Inv.' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,

b.max_var as var_profilo,

------------------------    MIFID2 - 20180711
case @maxComplessita
    when 0 then 'Non complesso'
	when 1 then 'Bassa'
	when 2 then 'Medio bassa'
	when 3 then 'Medio alta'
	when 4 then 'Alta'
	else 'n.c.'
end
as complessita,
-------------------------  FINE MIFID2 - 20180711


--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine
FROM  C6MART.RISCHIO_AGGREGATO K 
left outer JOIN C6MART.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
left outer join C6MART.CODIFICA_RISCHIO b 
	ON A.PROFILO_ASS=B.PROFILO

WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine
 

END 

















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S170RischioDiversificazione]    Script Date: 08/02/2022 17:23:55 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

----   [C6Mart].[PL_D_S170RischioDiversificazione] 'S','02148400126' 

---- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

--ALTER procedure [C6Mart].[PL_D2_S170RischioDiversificazione]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCCSelf as int

--	select @contaCCSelf = count(*)
--	from C6MART.patrimonio_Bf
--	where tipo_prodotto = 'CC' or isin in('EURO00000009', 'EURO10000007' ) and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int

--	select @contaPOS = count(*)
--	from C6MART.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete

--	declare @ctvbf as decimal(12,2)  
--	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6mart.patrimonio_bf  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0
				  
--    declare @ctvterzi as decimal (12,2)  
--	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6mart.patrimonio_terzi  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0

--	-- Complessità
--    declare @maxComplessita as int
--	select @maxComplessita = max(compl_base) from [C6Mart].[TB_S180ProdottiComplessitaAlta]
--			where 
--			     cod_fiscale like 
--					   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					   ELSE @CodiceFiscale
--					   END
--				 and codman = 
--					   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					   ELSE ''
--					   END

--				 and rete= @Rete 
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10
--	--
 
--SELECT 
--	K.COD_FISCALE,
--	K.RETE,	
--	CASE 
--		when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
--		when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
--		when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
--		else 0
--	END AS CTV_AGGREG,	 
--	K.CREDITRISK,

--CASE 
--	WHEN (@contaPOS - @contaCCSelf = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,

--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contaCCSelf <> 0 THEN 'n.c.' ELSE NULL END 
--as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contaCCSelf <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,

--beneficio as diversificazione,

--CASE 
--	WHEN (@contaPOS - @contaCCSelf = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,

--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,

--b.max_var as var_profilo,

--------------------------    MIFID2 - 20180711
--case @maxComplessita
--    when 0 then '-'
--	when 1 then 'Minima'
--	when 2 then 'Bassa'
--	when 3 then 'Media'
--	when 4 then 'Alta'
--	when 5 then 'Molto alta'
--	else '-'
--end
--as complessita,
---------------------------  FINE MIFID2 - 20180711


----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine
--FROM  C6MART.RISCHIO_AGGREGATO K 
--left outer JOIN C6MART.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--left outer join C6MART.CODIFICA_RISCHIO b 
--	ON A.PROFILO_ASS=B.PROFILO

--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY ordine
 

--END 






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S150Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		null AS Professione, --ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','')
		END AS Residenza,
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_INZIOAVANZATO) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		null AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		null AS ProduzioneReport,--DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Provincia] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM         
		C6MART.VCONTRATTI AS CONTRATTOSEI -- TABELLA BASE
	INNER JOIN 
		C6MART.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MART.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	--LEFT JOIN 
	--	C6MART.ANAG_CLIENTI_PREV 
	--	ON 
	--		ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
	--		AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	--LEFT JOIN
	--	C6MART.DATI_REPORT 
	--	ON 
	--		ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
	--		AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S151ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MART.MIFID AS M
		INNER JOIN C6MART.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S152Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	declare @PatrimonioImmobiliareProQuota decimal(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MART.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area NOT IN ('CC','self') --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MART.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6MART.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6MART.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MART.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MART.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale

	SELECT 
		@PatrimonioImmobiliareProQuota = isnull(SUM(patrImm.VALORE_STIMATO_PROQUOTA), 0)
	FROM 
		C6MART.PATRIMONIO_IMMOBILIARE_ProQuota patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale

	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MART.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV,
		@PatrimonioImmobiliareProQuota as ImmobiliarePQCTV

END







GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S152Patrimonio_20190107_ProQuota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S152Patrimonio_20190107_ProQuota] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	declare @PatrimonioImmobiliareProQuota decimal(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MART.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area NOT IN ('CC','self') --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MART.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6MART.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6MART.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MART.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MART.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale

	SELECT 
		@PatrimonioImmobiliareProQuota = SUM(patrImm.VALORE_STIMATO_PROQUOTA)
	FROM 
		C6MART.PATRIMONIO_IMMOBILIARE_ProQuota patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale

	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MART.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV,
		@PatrimonioImmobiliareProQuota as ImmobiliarePQCTV

END







GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S152Patrimonio_20190111]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S152Patrimonio_20190111] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MART.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area NOT IN ('CC','self') --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MART.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6MART.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6MART.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MART.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MART.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MART.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END







GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S153PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from

	DECLARE @NOMERETE VARCHAR(30)

	IF @Rete = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			@NOMERETE AS Banca,
			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				@NOMERETE AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
			FROM C6MART.PATRIMONIO_BF patrBF
--			LEFT JOIN C6MART.ClientiConCCNegativo CCNegativo
--				ON PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--				AND PATRBF.TIPO_PRODOTTO = 'CC'
			WHERE 1 = 1
				AND patrBF.Rete = @Rete
				AND patrBF.Cod_Fiscale = @CodiceFiscale
				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
				and patrBF.id_area  not in ('cc','self')
			UNION ALL



			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
			FROM C6MART.PATRIMONIO_TERZI patrTerzi
			WHERE 1 = 1
				AND patrTerzi.Rete = @Rete
				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
			GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S153PatrimonioFinanziario]    Script Date: 08/02/2022 17:25:02 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure

---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
--ALTER procedure [C6Mart].[PL_D2_S153PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from

--	DECLARE @NOMERETE VARCHAR(20)

--	IF @Rete = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT 
--		Intermediario,
--		Ordine,
--		Banca,
--		Controvalore,
--		round(Percentuale,2) as Percentuale
--	FROM 
--	(
--		SELECT DISTINCT
--			Intermediario,
--			Ordine,
--			@NOMERETE AS Banca,
--			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
--			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
--			(
--				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
--				(SUM(ctv) over (partition by 'Totale'))
--			) * 100 AS PERCENTUALE
--		FROM 
--		(
--			SELECT 
--				@NOMERETE AS Intermediario,
--				SUM(ROUND(CTV,2)) AS ctv,
--				1 AS ordine
--			FROM C6MART.PATRIMONIO_BF patrBF
----			LEFT JOIN C6MART.ClientiConCCNegativo CCNegativo
----				ON PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----				AND PATRBF.TIPO_PRODOTTO = 'CC'
--			WHERE 1 = 1
--				AND patrBF.Rete = @Rete
--				AND patrBF.Cod_Fiscale = @CodiceFiscale
--				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
--				and patrBF.id_area  not in ('cc','self')
--			UNION ALL



--			SELECT 
--				Intermediario, 
--				SUM(ROUND(CTV,2)) AS ctv,
--				2 AS ordine
--			FROM C6MART.PATRIMONIO_TERZI patrTerzi
--			WHERE 1 = 1
--				AND patrTerzi.Rete = @Rete
--				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
--			GROUP BY patrTerzi.Intermediario

--		) PATR

--	) A
--	WHERE CONTROVALORE IS NOT NULL
--	ORDER BY Ordine

--END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		Luca De Lisio
-- Create date: 
-- Description:	
-- =============================================
--[C6Mart].[PL_DT_S154PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
CREATE procedure [C6Mart].[PL_D2_S154PatrimonioFinanziario] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

SELECT 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN 'Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	



























--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MART.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL
		--DETTAGLIO ASUL SENZA SKANDIA
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S154PatrimonioFinanziario]    Script Date: 08/02/2022 16:35:09 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure


---- =============================================
---- Author:		Luca De Lisio
---- Create date: 
---- Description:	
---- =============================================
----[C6Mart].[PL_DT_S154PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
--ALTER procedure [C6Mart].[PL_D2_S154PatrimonioFinanziario] 
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--SELECT 
--	A.Banca,
--	A.Ordinamento,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,6)) Controvalore,
--	A.Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
--FROM 
--(		

--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO AS Ordinamento,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

--		--PRODOTTI BF ESCLUSI GLI ASUL
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	



























----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MART.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MART.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MART.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL
--		--DETTAGLIO ASUL SENZA SKANDIA
--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL
--		--CON SKANDIA
--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale


--		UNION ALL

--		--PRODOTTI TERZI A CATALOGO
--		SELECT
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI NON A CATALOGO
--		SELECT 	
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MART.ASSET_PERC_TERZI ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MART.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

--) A

--ORDER BY A.ORDINAMENTO

--END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6Mart].[PL_D2_S155PatrimonioImmobiliare] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale

	select
		Descrizione,
		Tipologia,
		Localita,
		AffittoPercepito,
		Valore_stimato as Valore,
		sum(Valore_stimato) OVER (PARTITION BY 'Valore_stimato') as Totale,
		sum(AffittoPercepito) OVER (PARTITION BY 'AffittoPercepito') as TotaleAffitto,


		Tipologia_Diritto as TipologiaDiritto,
		ProQuota,

		Valore_Stimato_ProQuota as Valore_ProQuota,
		sum(Valore_Stimato_ProQuota) over (partition by 'Valore_Stimato_ProQuota') as TotaleProQuota


	from C6MART.PATRIMONIO_IMMOBILIARE_ProQuota
	where Rete = @Rete
		and COD_FISCALE = @CodiceFiscale
		ORDER BY 5 DESC


	--SELECT 
	--		PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
	--		PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
	--		PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
	--		isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
	--		PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
	--		SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
	--		SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	--FROM C6MART.PATRIMONIO_IMMOBILIARE 
	--WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
	--	AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	--ORDER BY 5 DESC
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S155PatrimonioImmobiliare_20190107_ProQuota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6Mart].[PL_D2_S155PatrimonioImmobiliare_20190107_ProQuota] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto,
			PATRIMONIO_IMMOBILIARE_PROQUOTA.Valore_Stimato_ProQuota AS ValoreProQuota,
			PATRIMONIO_IMMOBILIARE_PROQUOTA.Tipologia_Diritto as TipologiaDiritto,
			PATRIMONIO_IMMOBILIARE_PROQUOTA.ProQuota as ProQuota,
			SUM(PATRIMONIO_IMMOBILIARE_PROQUOTA.VALORE_STIMATO_PROQUOTA) OVER (PARTITION BY 'TotaleProQuota') as TotaleProQuota
	from C6MART.PATRIMONIO_IMMOBILIARE PATRIMONIO_IMMOBILIARE
		left join C6Mart.Patrimonio_Immobiliare_ProQuota PATRIMONIO_IMMOBILIARE_PROQUOTA
		on PATRIMONIO_IMMOBILIARE.RETE = PATRIMONIO_IMMOBILIARE_PROQUOTA.RETE
		and PATRIMONIO_IMMOBILIARE.COD_FISCALE = PATRIMONIO_IMMOBILIARE_PROQUOTA.COD_FISCALE
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S155PatrimonioImmobiliare_20190111]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6Mart].[PL_D2_S155PatrimonioImmobiliare_20190111] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MART.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S156ALtroPatrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	SELECT 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MART.PATRIMONIO_ALTRO 
	WHERE 
		PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
-- =============================================
-- [C6MART].[PL_D2_S157ConfrontoPiramidi] 'F','ZCCLNR58P49H501R'
CREATE procedure [C6Mart].[PL_D2_S157ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		SUM (isnull(PIRAMIDE_MOD.PERC_AREA,0)) as PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MART.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			--LEFT(ID_AREA,3) AS ID_AREA, 			
		    CASE 
				WHEN ID_AREA = 'SELF' THEN LEFT(ID_AREA,4)
			    ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MART.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			--RETE, COD_FISCALE, LEFT(ID_AREA,3)
			RETE, COD_FISCALE, 		
			CASE  
				WHEN ID_AREA = 'SELF' THEN LEFT(ID_AREA,4)
				ELSE LEFT(ID_AREA,3) 
			END   
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
		PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','CC','NA','SELF','INV')  

		--	OR (PIRAMIDE_MOD.ID_AREA = 'INV')) --AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))    --- 16/09  ** DA VERIFICARE
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
		group by PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_VERT.CTV_AREA 


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
		AND ID_AREA not in ('Na', 'Cc','Self','LIGHT','VOID')
		--V 
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				--AND TIPO_PRODOTTO = 'Cc'
				AND (TIPO_PRODOTTO = 'Cc' OR  ISIN in('EURO00000009', 'EURO10000007') )

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN in('EURO00000009', 'EURO10000007')
--FINE INTERVENTI OMNIA quiii2

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN in('EURO00000009', 'EURO10000007')
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------		
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------									
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCCSELF = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 							
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCCSELF = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA		
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCCSELF = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MART.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
				   WHEN ATTUALE.ID_AREA = 'Self' 
					THEN 'COMPLESSIVO|BF|SELF'

                   END
                   ) 
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
				WHERE AREA_BISOGNO.ID_AREA <> 'self'

				and AREA_BISOGNO.ID_AREA not in ('light','void')   --- *****	  AGGIUNTA 19/09		*****

		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END









GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S157ConfrontoPiramidi_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MART].[PL_D_S157ConfrontoPiramidi] 'F','PGGFNC33S27H861U'
CREATE procedure [C6Mart].[PL_D2_S157ConfrontoPiramidi_BK_eligoTitoli]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MART.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			--LEFT(ID_AREA,3) AS ID_AREA, 			
		    CASE 
				WHEN ID_AREA = 'SELF' THEN LEFT(ID_AREA,4)
			    ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MART.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			--RETE, COD_FISCALE, LEFT(ID_AREA,3)
			RETE, COD_FISCALE, 		
			CASE  
				WHEN ID_AREA = 'SELF' THEN LEFT(ID_AREA,4)
				ELSE LEFT(ID_AREA,3) 
			END   
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc','Self')
		--V 
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				--AND TIPO_PRODOTTO = 'Cc'
				AND (TIPO_PRODOTTO = 'Cc' OR  ISIN = 'EURO00000009' )

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
--FINE INTERVENTI OMNIA quiii2

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------		
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------									
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCCSELF = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 							
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCCSELF = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA		
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCCSELF = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MART.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
				   WHEN ATTUALE.ID_AREA = 'Self' 
					THEN 'COMPLESSIVO|BF|SELF'

                   END
                   ) 
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
				WHERE AREA_BISOGNO.ID_AREA <> 'self'
	
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END







GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_D2_S158PiramideModello]  'S','MRCMRA47C26A241D'
CREATE procedure [C6Mart].[PL_D2_S158PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

		--SELECT BF.NOME_PROGETTO AS NomePrg,
		--	   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
		--	   AGGR.VAR_PERC_PTF as VarPrg,
		--	   SUM(BF.CTV)AS ControvalorePrg
		--FROM  C6Mart.PATRIMONIO_BF BF 
		--INNER JOIN C6Mart.RISCHIO_AGGREGATO AGGR
		--	ON BF.RETE= AGGR.RETE
		--	AND BF.COD_FISCALE= AGGR.COD_FISCALE
		--	AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		--INNER JOIN C6Mart.PIRAMIDE_MOD PIRMOD
		--	ON BF.RETE= PIRMOD.RETE
		--	AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
		--	AND BF.ID_AREA = PIRMOD.ID_AREA
		--	AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		--WHERE 1=1
		--AND BF.ID_AREA = 'inv'
		--AND BF.RETE = @Rete
		--AND BF.COD_FISCALE = @CodiceFiscale
		--AND BF.CTV > 0
		--group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF
		
		SELECT 
			PIRMOD.NOME_PROGETTO AS NomePrg,
			PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			ISNULL(T.VAR_PERC_PTF,0) as VarPrg,
			ISNULL(SUM(T.CTV),0) AS ControvalorePrg
	  	FROM  C6Mart.PIRAMIDE_MOD PIRMOD 
		LEFT JOIN
				(SELECT BF.RETE, BF.COD_FISCALE,BF.ID_AREA,BF.NOME_PROGETTO,AGGR.VAR_PERC_PTF,BF.CTV FROM  C6Mart.PATRIMONIO_BF BF 
				INNER JOIN C6Mart.RISCHIO_AGGREGATO AGGR
				ON BF.RETE= AGGR.RETE  
				AND BF.COD_FISCALE= AGGR.COD_FISCALE  
				AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO) T
			ON	PIRMOD.ID_AREA = T.ID_AREA   
			AND PIRMOD.COD_FISCALE = T.COD_FISCALE
			AND PIRMOD.RETE = T.RETE
			AND PIRMOD.NOME_PROGETTO = T.NOME_PROGETTO
		WHERE	
			PIRMOD.ID_AREA = 'inv'
			AND T.CTV > 0
			AND PIRMOD.RETE = @Rete
			AND PIRMOD.COD_FISCALE = @CodiceFiscale
		GROUP BY PIRMOD.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,T.VAR_PERC_PTF


END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure


-- =============================================
-- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_D2_S159PatrimonioFinanziario] 'F','02477630582'
 CREATE procedure [C6Mart].[PL_D2_S159PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			--ELSE 'Banca Fideuram' 
			WHEN 'F' THEN  'Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			--and patrbf.id_area <> 'CC'
			and patrbf.id_area not in ('CC','Self')
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MART.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO

END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S159PatrimonioFinanziario]    Script Date: 08/02/2022 16:37:35 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- Stored procedure


---- =============================================
---- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----[C6Mart].[PL_D2_S159PatrimonioFinanziario] 'F','02477630582'
-- ALTER procedure [C6Mart].[PL_D2_S159PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
	
--SELECT 
--	A.BANCA AS Banca,
--	A.ORDINAMENTO AS Ordinamento,
--	A.AssetClassId AS AssetClassId, 
--	A.AssetClassName AS AssetClassName, 
--	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
--	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
--FROM 
--(		
--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			--ELSE 'Banca Fideuram' 
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
--				 THEN 1 
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
--            END  
--		) * 100 AS Percentuale
--	FROM (

--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			--and patrbf.id_area <> 'CC'
--			and patrbf.id_area not in ('CC','Self')
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL
		
--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	
----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MART.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MART.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MART.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL

--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MART.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--) A

--ORDER BY A.ORDINAMENTO

--END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[PL_D2_S160DettaglioProdottiBF]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
PATRBF.NOME_PROGETTO AS EE, PATRBF.ID_AREA,
CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID AS TMP,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
		ELSE AREA.ID_AREA 
	END AS needarea,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
	SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS versato_need_progString,
	CASE 
	WHEN AREA.ID_AREA = 'Inv' 
		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS MinusPlusValenza_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS MinusPlusValenza_need_progString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
		ELSE NULL
	END	AS somma_var_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
		ELSE NULL
	END	AS somma_copertura_need_prog,
	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
		ELSE NULL 
	END as var_needareaString,
	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		ELSE NULL  
	END AS copertura_needareaString,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_need_progString,
	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore, 
	PATRBF.VERSATO_NETTO AS VersatoNetto, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020
	case when (patrbf.tipo_prodotto ='CC') then 0.00 
	else RISCHIO_PROD.VAR_PERC_PTF
	end AS VaRprodotto, 
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		 WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
	ELSE NULL END as varProdottoString,
	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
	PARTVIA_DISINV AS partitaViaggiante,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
		ELSE NULL 
	END AS nota_needarea,
   RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,
	patrbf.tipo_prodotto as Tipo_Prodotto,
	isAPC = 'N'

FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
	ON PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
--		CASE 
--			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
--			ELSE 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
    case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END

LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY AREASORTORDER, nome_progetto, PATRBF.CTV DESC

END





PRINT N'Altering [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]'
GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S160DettaglioProdottiBF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- cast(C6Mart.ANAG_CC.SALDO as decimal(15,2)) as Controvalore
-- C6Mart.PL_D2_S160DettaglioProdottiBF 'F', 'GSTGPL59P03B586G'
--SELECT * FROM PATR1

CREATE procedure [C6Mart].[PL_D2_S160DettaglioProdottiBF_BK_eligoTitoli]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN = 'EURO00000009'
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
PATRBF.NOME_PROGETTO AS EE, PATRBF.ID_AREA,
CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID AS TMP,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
		ELSE AREA.ID_AREA 
	END AS needarea,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
	SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS versato_need_progString,
	CASE 
	WHEN AREA.ID_AREA = 'Inv' 
		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS MinusPlusValenza_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS MinusPlusValenza_need_progString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
		ELSE NULL
	END	AS somma_var_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
		ELSE NULL
	END	AS somma_copertura_need_prog,
	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
		ELSE NULL 
	END as var_needareaString,
	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		ELSE NULL  
	END AS copertura_needareaString,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_need_progString,
	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore, 
	PATRBF.VERSATO_NETTO AS VersatoNetto, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto, 
	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.'
	     WHEN patrbf.isin ='EURO00000009' THEN 'n.c.'
	ELSE NULL END as varProdottoString,
	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
	PARTVIA_DISINV AS partitaViaggiante,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
		ELSE NULL 
	END AS nota_needarea,
   RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
	ON PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
--		CASE 
--			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
--			ELSE 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
    case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END

LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY AREASORTORDER, nome_progetto, PATRBF.CTV DESC

END













GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:  Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S162DettaglioProdotti]

 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS

BEGIN
	
	SELECT  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MART.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MART.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S163PatrimonioFinanziarioMAssetClass] 
( @Rete char(1), 
	@CodiceFiscale varchar(16)
	)as
	begin
	SELECT DISTINCT 
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		(
		case when SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') = 0 then 1 else
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
			end
		) * 100 AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO' 
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY 
		ASSETCLASS.ORDINAMENTO
		
END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S163PatrimonioFinanziarioMAssetClass_NEW_20160908]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[PL_D2_S163PatrimonioFinanziarioMAssetClass_NEW_20160908] 
( @Rete char(1), 
       @CodiceFiscale varchar(16)
       )as
       begin
       SELECT DISTINCT
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
             (
             case when SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') = 0 then 0 else
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
                    end
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MART.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MART.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
                    AND PATRTERZI.RETE = @Rete
                    AND PATRTERZI.COD_FISCALE = @CodiceFiscale

             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MART.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MART.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
                    AND PATRTERZI.RETE = @Rete
                    AND PATRTERZI.COD_FISCALE = @CodiceFiscale

       ) VALORIASSET
       INNER JOIN C6MART.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
       ORDER BY 
             ASSETCLASS.ORDINAMENTO
             
END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Marco Gentilezza
-- Create date: 
-- Description:	
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S164PolizzeAltriIstituti] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MART.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MART.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S165FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MART.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MART.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MART.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S166ContoCorrenteAI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D2_S166ContoCorrenteAI] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     
		CCTerzi.INTERMEDIARIO AS Intermediario,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO AS Saldo,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6MART.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale

END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================


-- [C6Mart].[PL_D_S167DistribuzioneRischioCredito]   'F','BRGGRL48H52G096C'
CREATE procedure [C6Mart].[PL_D2_S167DistribuzioneRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' WHEN  PATRBF.RETE = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END AS INTERMEDIARIO,
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv

FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
--where id_Area='Cc'
where id_Area in ('Cc','Self')

group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MART.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' WHEN PATRBF.RETE = 'S' THEN  'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV

FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
--where id_Area='Cc'
where id_Area in ('Cc','Self')

group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
			    WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S167DistribuzioneRischioCredito]    Script Date: 08/02/2022 16:40:49 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



---- =============================================
---- Authors:		<Alessandro Tringali, Valerio Colaianni>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================


---- [C6Mart].[PL_D_S167DistribuzioneRischioCredito]   'F','BRGGRL48H52G096C'
--ALTER procedure [C6Mart].[PL_D2_S167DistribuzioneRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;

----QUERY PER INTERMEDIARIO
--SELECT 
--RETE,
--COD_FISCALE,
--INTERMEDIARIO,
--CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
--     ELSE 2 END AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

--SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,

--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END AS RISKCLASS,
--CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
----SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv

--FROM
--[C6MART].PATRIMONIO_BF PATRBF
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_BF 
----where id_Area='Cc'
--where id_Area in ('Cc','Self')

--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
--LEFT OUTER JOIN
--[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
--					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
----INNER JOIN C6MART.CODIFICA_CREDITRISK CR
--LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END,
--CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--'Altri Istituti' AS INTERMEDIARIO,
----PATRTERZI.INTERMEDIARIO,
----SUM(CTV) AS CTV
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6MART].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV

--FROM
--[C6MART].PATRIMONIO_BF PATRBF
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_BF 
----where id_Area='Cc'
--where id_Area in ('Cc','Self')

--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
--LEFT OUTER JOIN
--[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--			    WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
--					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CTV) AS CTV
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6MART].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti]  'F','FF@7181'
CREATE procedure [C6Mart].[PL_D2_S168TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
C6Mart.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								--SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION, --modifica apportata il 24/04 per concentrazione % errata secondo Levi
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLESSIVO)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6Mart.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6Mart.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6Mart.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6Mart.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END





GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6Mart].[PL_D2_S169RischiomercatoRischiocredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' THEN 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    C6MART.patrimonio_bf  PATRBF,C6MART.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram'  WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' THEN 'Patrimonio IW Private Inv.' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    C6MART.PATRIMONIO_TERZI  TERZI,C6MART.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    C6MART.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    C6MART.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    C6MART.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		  WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    C6MART.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    C6MART.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    C6MART.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    C6MART.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    C6MART.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S169RischiomercatoRischiocredito]    Script Date: 08/02/2022 16:42:57 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



--ALTER procedure [C6Mart].[PL_D2_S169RischiomercatoRischiocredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;
 
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    PATRBF.INSTITUTENAME,
--    CTV,
--    M.PROFILO_ASS AS CODICEPROFILO,
--    CR.MAX_VAR AS  VARMAX,
--    RISK_AGG.VAR_PERC_PTF AS VAR ,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END  AS VARSTRING,
--    RISK_AGG.CREDITRISK  RISKCLASS,
--        	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END AS  RISKCLASSSTRING,
--    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
----V La copertura viene valorizzata con un valore da 0 da 100
--  --  	CASE 
--	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
----		ELSE 
--NULL 
----	END 
--AS COVERAGESTRING,
--    M.RISKCLASS AS RISKCLASSMAX,
--    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
--    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
--		 THEN 1
--	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
--    END)		
--    *100 ,2)AS PERCENTAGE,
--	--V
--	ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV,
--	--V
--	1 as ORDINE,
--	RISK_AGG.Ully_perc
--    from
--    C6MART.patrimonio_bf  PATRBF,C6MART.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and PATRBF.rete= RISK_AGG.rete    
--    and PATRBF.cod_fiscale = @codiceFiscale
--    and PATRBF.rete= @rete
--    and PATRBF.CTV > 0
--    and
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--	RISK_AGG.Ully_perc,   
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    'Patrimonio altri Istituti' AS INSTITUTENAME,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV,
--	--V
--	2 as ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    C6MART.PATRIMONIO_TERZI  TERZI,C6MART.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and TERZI.rete= RISK_AGG.rete 
--    and TERZI.cod_fiscale =@codiceFiscale
--    and TERZI.rete=@rete
--    and TERZI.CTV > 0
--    and
--    (
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )    
--    GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    RISK_AGG.Ully_perc

--    ) PATRBF
--    LEFT OUTER JOIN 
--    C6MART.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    AND 
--    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
--          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
--          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    UNION ALL
    
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    'Patrimonio Complessivo' AS INSTITUTENAME,
--    SUM(CTV),
--    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
--    MAX(CR.MAX_VAR) AS  VARMAX,
--    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
--    MAX(	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS VARSTRING,
--    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
--    MAX(
--         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END )
--      AS  RISKCLASSSTRING,
--    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
--    MAX(   	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS COVERAGESTRING,
--    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
--	MAX(M.RISKCLASS) AS RISKCLASSMAX,
--    100 AS PERCENTAGE,
--	--V
--	3 AS ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    C6MART.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and PATRBF.CTV > 0    
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE

--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV
--    FROM
--    C6MART.PATRIMONIO_TERZI  TERZI
--        where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and TERZI.CTV > 0       
--     GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE

--    ) PATRBF
--    LEFT OUTER JOIN 
--    C6MART.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN C6MART.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.CODIFICA_CREDITRISK  CK
--    ON 
--      M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    C6MART.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--        where  
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    RISK_AGG.Ully_perc

--	--V
--	order by ordine

--END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--   [C6Mart].[PL_D_S170RischioDiversificazione] 'S','02148400126' 

-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

CREATE procedure [C6Mart].[PL_D2_S170RischioDiversificazione]--'F','05228020268'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCCSelf as int

	select @contaCCSelf = count(*)
	from C6MART.patrimonio_Bf
	where tipo_prodotto = 'CC' or isin in('EURO00000009', 'EURO10000007' ) and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from C6MART.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete

	declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6mart.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6mart.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0

	-- Complessità
    declare @maxComplessita as int
	select @maxComplessita = max(compl_base) from [C6Mart].[TB_S180ProdottiComplessitaAlta]
			where 
			     cod_fiscale like 
					   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
					   ELSE @CodiceFiscale
					   END
				 and codman = 
					   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
					   ELSE ''
					   END

				 and rete= @Rete 
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				 and compl_base <> 10
	--
 
SELECT 
	K.COD_FISCALE,
	K.RETE,	
	CASE 
		when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
		when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
		when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
		else 0
	END AS CTV_AGGREG,	 
	K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contaCCSelf = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,

CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contaCCSelf <> 0 THEN 'n.c.' ELSE NULL END 
as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contaCCSelf <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contaCCSelf = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,

case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram'  when k.rete = 'S' then 'Sanpaolo Invest' else 'IW Private Inv.' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,

b.max_var as var_profilo,

------------------------    MIFID2 - 20180711
case @maxComplessita

    when 0 then 'Non complesso'
	when 1 then 'Bassa'
	when 2 then 'Medio bassa'
	when 3 then 'Medio alta'
	when 4 then 'Alta'
	else 'n.c.'
end
as complessita,
-------------------------  FINE MIFID2 - 20180711


--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine
FROM  C6MART.RISCHIO_AGGREGATO K 
left outer JOIN C6MART.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
left outer join C6MART.CODIFICA_RISCHIO b 
	ON A.PROFILO_ASS=B.PROFILO

WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine
 

END 

















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S170RischioDiversificazione]    Script Date: 08/02/2022 17:23:55 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

----   [C6Mart].[PL_D_S170RischioDiversificazione] 'S','02148400126' 

---- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)

--ALTER procedure [C6Mart].[PL_D2_S170RischioDiversificazione]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCCSelf as int

--	select @contaCCSelf = count(*)
--	from C6MART.patrimonio_Bf
--	where tipo_prodotto = 'CC' or isin in('EURO00000009', 'EURO10000007' ) and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int

--	select @contaPOS = count(*)
--	from C6MART.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete

--	declare @ctvbf as decimal(12,2)  
--	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6mart.patrimonio_bf  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0
				  
--    declare @ctvterzi as decimal (12,2)  
--	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6mart.patrimonio_terzi  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0

--	-- Complessità
--    declare @maxComplessita as int
--	select @maxComplessita = max(compl_base) from [C6Mart].[TB_S180ProdottiComplessitaAlta]
--			where 
--			     cod_fiscale like 
--					   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					   ELSE @CodiceFiscale
--					   END
--				 and codman = 
--					   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					   ELSE ''
--					   END

--				 and rete= @Rete 
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10
--	--
 
--SELECT 
--	K.COD_FISCALE,
--	K.RETE,	
--	CASE 
--		when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
--		when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
--		when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
--		else 0
--	END AS CTV_AGGREG,	 
--	K.CREDITRISK,

--CASE 
--	WHEN (@contaPOS - @contaCCSelf = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,

--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contaCCSelf <> 0 THEN 'n.c.' ELSE NULL END 
--as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contaCCSelf <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,

--beneficio as diversificazione,

--CASE 
--	WHEN (@contaPOS - @contaCCSelf = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,

--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,

--b.max_var as var_profilo,

--------------------------    MIFID2 - 20180711
--case @maxComplessita
--    when 0 then '-'
--	when 1 then 'Minima'
--	when 2 then 'Bassa'
--	when 3 then 'Media'
--	when 4 then 'Alta'
--	when 5 then 'Molto alta'
--	else '-'
--end
--as complessita,
---------------------------  FINE MIFID2 - 20180711


----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine
--FROM  C6MART.RISCHIO_AGGREGATO K 
--left outer JOIN C6MART.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--left outer join C6MART.CODIFICA_RISCHIO b 
--	ON A.PROFILO_ASS=B.PROFILO

--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY ordine
 

--END 






GO
/****** Object:  StoredProcedure [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		
-- Create date: 30/08/2013
-- Description: uguale a S76 
-- =============================================
--[C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
CREATE procedure [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass] 
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE if @RETE ='S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario,
		patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM C6MART.PATRIMONIO_BF PATRBF
	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
		--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
        --INIZIO INTERVENTI OMNIA	
	UNION ALL

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario,
		patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM C6MART.PATRIMONIO_BF PATRBF
	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO ,
		patrbf.tipo_prodotto --as Tipo_Prodotto
	ORDER BY CONTROVALORE DESC
  
END









--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 08/02/2022 16:46:45 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- =============================================
---- Author:		
---- Create date: 30/08/2013
---- Description: uguale a S76 
---- =============================================
----[C6Mart].[PL_D_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
--ALTER procedure [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM C6MART.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
--		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--		--INIZIO INTERVENTI OMNIA		
--        AND PATRBF.CTV <> 0.00
--        --INIZIO INTERVENTI OMNIA	
--	UNION ALL

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		SUM(ASUL.CTV) as Controvalore,
--		MAX(PATRBF.CTV) as controvalore_contratto,
--		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM C6MART.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
--		ON PATRBF.RETE = ASUL.RETE
--		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
--		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--        GROUP BY 
--        PATRBF.ID_CONTRATTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO ,
--		patrbf.tipo_prodotto --as Tipo_Prodotto
--	ORDER BY CONTROVALORE DESC
  
--END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_D3_FD151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D3_FD151ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenzaProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	DECLARE @descrizioneProfilo VARCHAR(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza VARCHAR(100)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)
	
	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenzaProfilo = M.DATA_FINE_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
		@riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
		case m.experience
				when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
			else '-'
		end,
		@riserva=m.importoriserva,
		@inv_l_p=m.perclungoperiodo
	FROM
		C6MART.MIFID AS M
		INNER JOIN C6MART.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (convert(datetime, @dataScadenzaProfilo)) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as descrizioneProfilo,
		@riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as DescrizioneEsperienza,
		@riserva as Riserva,
		@inv_l_p as Inv_L_P
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_D3_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_D3_S151ProfiloDiRischio] --'F','LVTPLA70C62C523L'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenzaProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	DECLARE @descrizioneProfilo VARCHAR(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza VARCHAR(100)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenzaProfilo = M.DATA_FINE_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
		@riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
			case m.experience
				when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
				--when 5 then 'Alta'
				else '-'
			end,
		@riserva=m.importoriserva,
		@inv_l_p=m.perclungoperiodo
	FROM
		C6MART.MIFID AS M
		INNER JOIN C6MART.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (convert(datetime, @dataScadenzaProfilo)) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as descrizioneProfilo,
		@riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as DescrizioneEsperienza,
		@riserva as Riserva,
		@inv_l_p as Inv_L_P

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD181PreferenzeESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'VNZGPL53M04L781P'
CREATE procedure [C6Mart].[PL_FD181PreferenzeESG] --'W','MLDDND66M21B967S'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


SELECT esg.[rete]
      ,esg.[cod_fiscale]
      ,esg.[Preferenza_esg_cliente]
      ,esg.[ESG_E]
      ,esg.[ESG_S]
      ,esg.[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,esg.[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when isnull(ind.percESG,'0.00')>=25 and isnull(ind.percESG,'0.00')<50 then 'Almeno pari al 25%'
			when isnull(ind.percESG,'0.00')>=50 and isnull(ind.percESG,'0.00')<75 then 'Almeno pari al 50%'
			when isnull(ind.percESG,'0.00')>=75 then 'Almeno pari al 75%' else 'n.d.' end as Pref_Sost
	,case when cle.U_PREFSOST='S' then 'Y' 
		when cle.U_PREFSOST='N' then 'N' else 'N' end as U_PREFSOST --Ulteriori Preferenze di Sostenibilità							   ----decommenta per ESG 2024
	,case when cle.FLAGSFDR='S' then replace(cast(cle.SFDR_PERC as varchar(12)),'.00','')+'%' else '-' end as SFDR_PERC																   ----decommenta per ESG 2024
	,case when cle.FLAGTAXO='S' then replace(cast(cle.TAXO_PERC as varchar(12)),'.00','')+'%' else '-' end as TAXO_PERC																   ----decommenta per ESG 2024
	,case when cle.PAI_NO_DETT = 'S' then 'Preferisco non dettagliare' --modifica 10122024 Scapellato	
		  when isnull(cle.PAI_A,'')='' then '-' else cle.PAI_A end as PAI_A
	,case when cle.PAI_NO_DETT = 'S' then 'Preferisco non dettagliare' --modifica 10122024 Scapellato	
		  when isnull(cle.PAI_S,'')='' then '-' else cle.PAI_S end as PAI_S
	,case when ESG_E='Y' then cle.PERCAMB_OK ELSE NULL END AS E_PERC_OK--,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS E_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_S='Y' then cle.PERCSOC_OK ELSE NULL END AS S_PERC_OK--,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS S_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_G='Y' then cle.PERCGOV_OK ELSE NULL END AS G_PERC_OK--,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS G_PERC_OK				   ----decommenta per ESG 2024
  FROM [C6StampeCentralizzate].[C6Mart].[BrsClienteESG] esg
  left join c6staging.VAR_ADEGUATEZZA_INDICATORI ind
  on ind.rete=esg.rete and ind.CODICE_FISCALE=esg.cod_fiscale
    left join C6Mart.W6CLIESG cle
  on ind.rete=cle.rete and ind.CODICE_FISCALE=cle.CODFIS
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD181PreferenzeESG:bkp_pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'VNZGPL53M04L781P'
create procedure [C6Mart].[PL_FD181PreferenzeESG:bkp_pre_ESG2024]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


SELECT [rete]
      ,[cod_fiscale]
      ,[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[obiettivo_ESG_minimo]
      ,[ESG_Rating]
      ,[ESG_E_perc]
      ,[ESG_S_perc]
      ,[ESG_G_perc]
  FROM [C6StampeCentralizzate].[C6Mart].[BrsClienteESG] esg
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD182BISDettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



								
																		  
CREATE procedure [C6Mart].[PL_FD182BISDettaglioProdottiESG] --'S','SNTCHR80A61D612V'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
											   
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
0 as ORDINAMENTO_PROGETTO,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	--CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
			 
								
	--SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	--CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
												   
				 
															 
			 
										 
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS versato_need_progString,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' 
--		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
--		ELSE NULL
--	END	AS MinusPlusValenza_need_prog,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS MinusPlusValenza_need_progString,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--		ELSE NULL
--	END	AS somma_var_need_prog,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--		ELSE NULL
--	END	AS somma_copertura_need_prog,
--	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
--	CASE 
--		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--		ELSE NULL 
--	END as var_needareaString,
--	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
--			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		ELSE NULL  
--	END AS copertura_needareaString,
--	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
--	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END as var_need_progString,
--	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,


    case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,
																																				

	PATRBF.CTV AS Controvalore, 
--	PATRBF.VERSATO_NETTO AS VersatoNetto, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020

--	case when (patrbf.tipo_prodotto ='CC') then 0.00 
--	else RISCHIO_PROD.VAR_PERC_PTF
--	end AS VaRprodotto, 

--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		-- WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
							
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--	PARTVIA_DISINV AS partitaViaggiante,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
--		ELSE NULL 
--	END AS nota_needarea,
--   RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,
--
--
--	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

							 
	patrbf.tipo_prodotto as Tipo_Prodotto

into #temp
FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
--	ON PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
----		CASE 
----			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
----			ELSE 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
----		END + PATRBF.POSITION_ID 
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--    case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC


select top (1)
	'Tot_P' as needarea,
	'TOTALE PATRIMONIO' as needareades,
	'103' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	sum(Controvalore) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 
															 

END





--PRINT N'Altering [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]'
GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD182DettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






								
																		  
CREATE procedure [C6Mart].[PL_FD182DettaglioProdottiESG]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
											   
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
0 as ORDINAMENTO_PROGETTO,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	--CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
			 
								
	--SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	--CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
												   
				 
															 
			 
										 
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS versato_need_progString,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' 
--		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
--		ELSE NULL
--	END	AS MinusPlusValenza_need_prog,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS MinusPlusValenza_need_progString,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--		ELSE NULL
--	END	AS somma_var_need_prog,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--		ELSE NULL
--	END	AS somma_copertura_need_prog,
--	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
--	CASE 
--		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--		ELSE NULL 
--	END as var_needareaString,
--	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
--			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		ELSE NULL  
--	END AS copertura_needareaString,
--	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
--	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END as var_need_progString,
--	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,


    case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,
																																				

	PATRBF.CTV AS Controvalore, 
--	PATRBF.VERSATO_NETTO AS VersatoNetto, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020

--	case when (patrbf.tipo_prodotto ='CC') then 0.00 
--	else RISCHIO_PROD.VAR_PERC_PTF
--	end AS VaRprodotto, 

--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		-- WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
							
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--	PARTVIA_DISINV AS partitaViaggiante,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
--		ELSE NULL 
--	END AS nota_needarea,
--   RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,
--
--
--	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

							 
	patrbf.tipo_prodotto as Tipo_Prodotto
	--	,CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_E_PROD_CLI,----decommenta per ESG 2024
	--CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_S_PROD_CLI,----decommenta per ESG 2024
	--CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
--           ELSE 'N' end as ESG_G_PROD_CLI	----decommenta per ESG 2024
	,case when isnull(cat.esg_e_prod_cli,'N')='Y' then 'S' else 'N' end as esg_e_prod_cli
	,case when isnull(cat.esg_s_prod_cli,'N')='Y' then 'S' else 'N' end as esg_s_prod_cli
	,case when isnull(cat.esg_g_prod_cli,'N')='Y' then 'S' else 'N' end as esg_g_prod_cli


FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
--	ON PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
----		CASE 
----			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
----			ELSE 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
----		END + PATRBF.POSITION_ID 
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--    case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
	left join c6mart.W6CATESG cat
	on PATRBF.cod_prodotto = cat.PRODOTTO_ID
	AND PATRBF.rete = cat.rete
	AND PATRBF.COD_FISCALE =cat.codfis
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END





--PRINT N'Altering [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]'
GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD185UCaratteristicheESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











																	  
CREATE procedure [C6Mart].[PL_FD185UCaratteristicheESG] --'F','DCRCRL47S11D612N'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
    patrbf.cod_prodotto as COD_PRODOTTO,
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
		

	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,
	
	
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',') --+ '%'
END AS PERC_INVESTIMENTO_SFDR,

--aggiunta ESG 2024
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_E), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_AMB,																  ----decommenta per ESG 2024
																									  --decommenta per ESG 2024
																									  --decommenta per ESG 2024
CASE 																								  ----decommenta per ESG 2024
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_S), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_SOC,																  ----decommenta per ESG 2024


	CASE 
   WHEN ISNULL(esg.PERC_INVESTIMENTO_TAXONOMY, 0.00) = 0.00
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_TAXONOMY), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_TAXONOMY,

	isnull(esg.label_PAI_A,'-') as label_PAI_A,
	isnull(esg.Label_PAI_S,'-') as label_PAI_S,
	isnull(esg.Label_U_INFO_ESG,'-') as Label_U_INFO_ESG,
	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea



											   



	--V
											



FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD186DettaglioPortafoglioSei]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















																	  
CREATE procedure [C6Mart].[PL_FD186DettaglioPortafoglioSei] --'F','RMNFNC55T03A783I'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @appo table
(
  	[BFCTV] [decimal](15, 2) NULL,
	[PatrimonioTerziCTV] [decimal](15, 2) NULL,
	[FinanziarioCTV] [decimal](16, 2) NULL,
	[FinanziarioPerc] [decimal](6, 2) NULL,
	[ImmobiliareCTV] [decimal](15, 2) NULL,
	[ImmobiliarePerc] [decimal](6, 2) NULL,
	[AltroCTV] [decimal](15, 2) NULL,
	[AltroPerc] [decimal](6, 2) NULL,
	[TotaleCTV] [decimal](15, 2) NULL,
	[ImmobiliarePQCTV] [decimal](15, 2) NULL

)
--creo le tabelle di appoggio
insert into @appo exec [C6Mart].[PL_D2_S152Patrimonio]  @Rete,@CodiceFiscale

declare @TotCTV [decimal](15, 2) =(select [BFCTV] from @appo)




SELECT

	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER() AS SommaProdottiEsclusi,
	--@TotCTV as PatrimonioFideuram,
	SUM(CASE 
        WHEN PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV < 0 THEN 0 
        ELSE PATRBF.CTV 
    END) OVER() AS SommaProdottiEsclusi, --per escludere i CC a Saldo Negativo
@TotCTV as PatrimonioFideuram,
@TotCTV-SUM(CASE 
        WHEN PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV < 0 THEN 0 
        ELSE PATRBF.CTV 
    END) OVER() AS PortafoglioSei
	--@TotCTV-SUM(PATRBF.CTV) OVER() as PortafoglioSei
	
FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 


LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	  --AND (
   --     (PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV > 0) OR --per eliminare i CC a saldo Negativo
   --     (PATRBF.TIPO_PRODOTTO <> 'CC' AND PATRBF.CTV <> 0)
   -- )
	and PATRBF.Nob_Prez='S'
	order by PATRBF.CTV desc

															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD187SfdrTaxESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

















--select * from wh.Maledetti


																	  
CREATE   procedure [C6Mart].[PL_FD187SfdrTaxESG]-- 'F','FRDGGN27C43L194Y'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6Mart.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale
declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6Mart].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale


if(@pref_esg='1' AND @U_PREFSOST='S')
begin

 select
 1 as ID,
	'Prodotti sostenibili SFDR' as Descrizione,
	replace(cast(isnull(cli.SFDR_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
 select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast(isnull(cli.SFDR_PERC_OK,000) as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,case when cli.FLAGSFDR='N' then 'Y' 
		else 'N' end as isNA
	from  [C6Mart].[W6CliESG] cli
	WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 3 as ID,
	'Prodotti non sostenibili' as Descrizione,
 	replace(cast((100-isnull(cli.SFDR_PERCT,0.00))as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
	  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'SFDR' as Tabella
		,'N' as isNA
     from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 5 as ID,
	'Prodotti ecosostenibili Taxonomy' as Descrizione,
	replace(cast(isnull(cli.TAXO_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast (isnull(cli.TAXO_PERC_OK,0.00) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,case when cli.FLAGTAXO='N' then 'Y' 
		else 'N' end as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 7 as ID,
	'Prodotti non ecosostenibili' as Descrizione,
	replace(cast((100-isnull(cli.TAXO_PERCT,0.00)) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale


--	select * from [C6Mart].[W6CliESG] cli

end															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_FD188PaiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















--select * from wh.Maledetti


																	  
CREATE   procedure [C6Mart].[PL_FD188PaiESG]-- 'F','FRDGGN27C43L194Y'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6Mart.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale
declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6Mart].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale

if(@pref_esg='1' and @U_PREFSOST='S')
begin

select 1 as ID,
	'Prodotti che considerano almeno un PAI ambientale' as Descrizione,
	replace(cast(isnull(cli.PAIA_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(isnull(cli.PAIA_PERC_OK,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,case when isnull(cli.PAI_A,'')='' then 'Y' 
		else 'N' end as isNA 
	  from [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 3 as ID,
	'Prodotti che non considerano PAI ambientali' as Descrizione,
 	replace(cast((100-isnull(cli.PAIA_PERCT,0.00)) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	union
select 5 as ID,
	'Prodotti che considerano almeno un PAI sociale' as Descrizione,
	replace(cast(isnull(cli.PAIS_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(isnull(cli.PAIS_PERC_OK,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,case when isnull(cli.PAI_S,'')='' then 'Y' 
		else 'N' end as isNA 
from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 7 as ID,
	'Prodotti che non considerano PAI sociali' as Descrizione,
	replace(cast((100-isnull(cli.PAIS_PERCT,0.00)) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA

															 
end
END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_GetClientNegativeCurrentAccountsValue]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_GetClientNegativeCurrentAccountsValue] 'F','LCNRLA67L28F520L'
CREATE procedure [C6Mart].[PL_GetClientNegativeCurrentAccountsValue]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @PatrimonioBF DECIMAL(15,2)
	
    -- Insert statements for procedure here
	SELECT 
		--@PatrimonioBF = case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end 
		cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV
		
	FROM 
		C6Mart.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		and CTV < 0 and ID_AREA = 'CC'
	--Return @PatrimonioBF
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_GetClientSelfNegative]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_GetClientSelfNegative] 'S','LMNFNC40L14L219U'
CREATE procedure [C6Mart].[PL_GetClientSelfNegative]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT  	 	 
		CodInterno,
		case
		when CodInterno = 'XY' then '"Linee GP Eligo"'
		when CodInterno = 'FO' then '"IL MF - Liquidita"'
		end as Descrizione,
		cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV
	FROM       
		C6Mart.ANAG_SELF LS	
	WHERE 
		LS.rete = @Rete
		AND LS.codfis = @CodiceFiscale
		AND ctv < 0
	group by CodInterno
END
 
   

GO
/****** Object:  StoredProcedure [C6Mart].[PL_GetClientSelfNegCurrentAccountValue]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_GetClientSelfNegCurrentAccountValue] 'S','LMNFNC40L14L219U'
CREATE procedure [C6Mart].[PL_GetClientSelfNegCurrentAccountValue]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	--DECLARE @PatrimonioBF DECIMAL(15,2)
	
     SELECT  	 	 
		 cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV	 
	FROM       
		C6Mart.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND ctv < 0
		
	--Return @PatrimonioBF
END
 
   


GO
/****** Object:  StoredProcedure [C6Mart].[PL_Intermediari]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_Intermediari] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@numeroRighe as int OUTPUT
AS

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

	SET  @numeroRighe = 
	(SELECT
        COUNT(DISTINCT INTERMEDIARIO)
	FROM	C6Mart.PATRIMONIO_TERZI
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale		
	)
	RETURN @numeroRighe
END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_MP_FD133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Davide Moccia>
-- Create date: <07/05/2013>
-- Description:	<Monitoraggio Private - Capitolo2°-Contributo al Rischio :   aree di bisogno-4° sezione >
-- =============================================

--     [c6mart].[PL_MP_S133BISPrincipaliProdotti] F,CLSPLA43D08H501B

CREATE procedure [C6Mart].[PL_MP_FD133BISPrincipaliProdotti]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

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

SELECT TOP 10 
		ANAGPROD.DESCR_PRODOTTO AS descrProdotto
		,PATRBF.CTV AS Controvalore
		,CASE 
			WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
			ELSE RISCHIO_PROD.VAR_PERC_PTF
		END AS VaRprodotto
		,((CASE 
			  WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
			  ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
		   END) /	(CASE
					   WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale') = 0 THEN 1
					   ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale')
					 END))*100 as rischioRelativo	
		,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale')))*100  AS pesoRelativo
		,PATRBF.ID_AREA  AS codAreaBisogno
	FROM C6Mart.PATRIMONIO_BF PATRBF
	INNER JOIN C6Mart.ANAG_PRODOTTI ANAGPROD 
		ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
	INNER JOIN c6mart.AREA_BISOGNO AREA 
		ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	LEFT JOIN c6mart.RISCHIO_AGGREGATO RISCHIO_PROD 
		ON PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		--AND RISCHIO_PROD.COD_AGGREG = CASE 
		--								 WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
		--									 THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
		--									 '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
		--								 WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
		--								 ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
		--							   END
		--							   + PATRBF.POSITION_ID 
	WHERE
	PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND 
	PATRBF.CTV <>0
	AND PATRBF.ID_AREA <> 'Cc'
	ORDER BY rischioRelativo DESC




END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_MP_FD147SintesiValute]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[c6mart].[PL_MP_S147SintesiValute] 'F','DCSCRJ80H24Z602C'
CREATE procedure [C6Mart].[PL_MP_FD147SintesiValute]

@Rete char(1), 
@CodiceFiscale varchar(16)
as
begin



declare @ctvNoCoperto as decimal(18,3)
declare @ctvCoperto as decimal(18,3)
declare @copertura as decimal(18,3)

SELECT  @ctvNoCoperto = isnull(sum(ctv),0) 
	
	FROM c6mart.ANAG_PRODOTTI_VALUTE a
	RIGHT JOIN c6mart.patrimonio_bf c
	ON a.cod_prodotto = c.cod_prodotto
		WHERE
		
			cod_fiscale = @CodiceFiscale
			and rete = @Rete
			and a.cod_prodotto is null
			and id_area <> 'Cc'
			
select @copertura = (patrimonioSenzaCC - @ctvNoCoperto)/patrimonioSenzaCC , 
       @ctvCoperto = patrimonioSenzaCC - @ctvNoCoperto
from c6mart.vPatrimonioBfAggregato
where 
	cod_fiscale = @CodiceFiscale
	and rete = @Rete

--select  @copertura 
--FC 16/04/20104
--Inserito controllo per evitare problemi di divid by zero nella select successiva

IF  @ctvCoperto < 1 
begin
    set @ctvCoperto =1
End



SELECT 
	sum(peso*ctv) / @ctvCoperto as percentuale,
	abs(sum(peso*ctv)) as valoreAssoluto,
	divisa,
	@copertura as copertura	
FROM c6mart.ANAG_PRODOTTI_VALUTE a
join c6mart.patrimonio_bf c
ON a.cod_prodotto = c.cod_prodotto
where 
	cod_fiscale = @CodiceFiscale
	and rete = @Rete
group by divisa
order by valoreAssoluto desc


end



GO
/****** Object:  StoredProcedure [C6Mart].[PL_MP_FD148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[PL_MP_FD148DistribuzioneAssetClass]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN 

SELECT [Banca]
      ,[ORDINAMENTO]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6StampeCentralizzate].[C6Mart].[TB_S148DistribuzioneAssetClass]
  WHERE	[Rete] = @Rete
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S102DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================


-- [C6Mart].[PL_S102DistribuzioneRischioCredito]   'F','BRGGRL48H52G096C'
CREATE procedure [C6Mart].[PL_S102DistribuzioneRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' WHEN PATRBF.RETE = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END AS INTERMEDIARIO,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MART.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' WHEN PATRBF.RETE = 'S' THEN 'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS'END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S102DistribuzioneRischioCredito]    Script Date: 08/02/2022 16:48:33 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- =============================================
---- Authors:		<Alessandro Tringali, Valerio Colaianni>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================


---- [C6Mart].[PL_S102DistribuzioneRischioCredito]   'F','BRGGRL48H52G096C'
--ALTER procedure [C6Mart].[PL_S102DistribuzioneRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;

----QUERY PER INTERMEDIARIO
--SELECT 
--RETE,
--COD_FISCALE,
--INTERMEDIARIO,
--CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest') THEN 1
--     ELSE 2 END AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

--SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,

--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END AS RISKCLASS,
--CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
--FROM
--[C6MART].PATRIMONIO_BF PATRBF
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
--LEFT OUTER JOIN
--[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
----INNER JOIN C6MART.CODIFICA_CREDITRISK CR
--LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END,
--CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--PATRTERZI.INTERMEDIARIO,
----SUM(CTV) AS CTV
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6MART].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
--FROM
--[C6MART].PATRIMONIO_BF PATRBF
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
--LEFT OUTER JOIN
--[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' --+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CTV) AS CTV
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6MART].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MART].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_S102DistribuzioneRischioCredito_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S102DistribuzioneRischioCredito]   'F','BRZGPP39H08C352F'
CREATE procedure [C6Mart].[PL_S102DistribuzioneRischioCredito_OLD]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' THEN CTV ELSE 0 END)  AS CTV_Class1,
SUM(CASE WHEN RISKCLASS = 'Classe B' THEN CTV ELSE 0 END)  AS CTV_Class2,
SUM(CASE WHEN RISKCLASS = 'Classe C' THEN CTV ELSE 0 END)  AS CTV_Class3,
SUM(CASE WHEN RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)  AS CTV_overClass3,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class1,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe B' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class2,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe C' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)/SUM(CTV))*100 END   AS perc_overClass3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MART.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' THEN CTV ELSE 0 END)  AS CTV_Class1,
SUM(CASE WHEN RISKCLASS = 'Classe B' THEN CTV ELSE 0 END)  AS CTV_Class2,
SUM(CASE WHEN RISKCLASS = 'Classe C' THEN CTV ELSE 0 END)  AS CTV_Class3,
SUM(CASE WHEN RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)  AS CTV_overClass3,
SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS PERC_class1,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe B' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class2,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe C' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS perc_overClass3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_S102DistribuzioneRischioCredito_OLD2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================


-- [C6Mart].[PL_S102DistribuzioneRischioCredito]   'F','GGGNNA41E59G687E'
CREATE procedure [C6Mart].[PL_S102DistribuzioneRischioCredito_OLD2]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,

SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CTV))*100  END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MART.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MART.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' AND CTV > 0 THEN CTV ELSE 0 END)  AS CTV_na,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CTV))*100  END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6MART].PATRIMONIO_BF PATRBF
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
LEFT OUTER JOIN
[C6MART].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CTV) AS CTV
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MART].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MART].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MART].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6MART].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_S103TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [c6mart].[PL_S103TabellaEmittenti]  'F','BRGGRL48H52G096C'

--select distinct creditriskclass from c6mart.patrimonio_emittenti

CREATE procedure [C6Mart].[PL_S103TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)
----Issuer
--CreditRisk
select @patr_compl=sum(ctv_prodotto) from 
c6mart.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0
 
SELECT 
COD_FISCALE,
RETE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
INTERMEDIARIO,
ISSUER,
STOCKSCounterValue,
bondsCounterValue,
CONCENTRATION_ISSUER,
CONCENTRATION,
NC
FROM
(


-- PER INTERMEDIARIO 

    SELECT
     COD_FISCALE,
     RETE,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
     --V nel caso sia null è BF???
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     0 as  CONCENTRATION_ISSUER ,
	 --V normalizzo la percentuale per essere rappresentato sul report
     MAX(CONCENTRATION)* 100 AS CONCENTRATION,
     case when sum(copertura) > 0 then 0 else 1 end as nc
FROM
(
    SELECT     V.COD_FISCALE,
                V.RETE,
                INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                SUM(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
				sum(copertura) as copertura
 FROM  c6mart.PATRIMONIO_EMITTENTI V  

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 INTERMEDIARIO,
 EMITTENTE,
 CREDITRISKCLASS
) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE

 UNION 
   SELECT
     COD_FISCALE,
     RETE,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ @patr_compl  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	case when sum(copertura) > 0 then 0 else 1 end as nc
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                SUM(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo)  AS CONCENTRATION,
                sum(copertura) as copertura
 FROM  c6mart.PATRIMONIO_EMITTENTI V  

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
    AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 CREDITRISKCLASS
) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 
END










GO
/****** Object:  StoredProcedure [C6Mart].[PL_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca De Lisio,,PL_S10PatrimonioFinanziario>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_S10PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
--[C6Mart].[PL_S10PatrimonioFinanziario] 'F','CTTCRL43E45H720U'
CREATE procedure [C6Mart].[PL_S10PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA,
	A.ORDINAMENTO,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) Controvalore,
	cast(A.Percentuale  as decimal(19,5)) Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN  'Banca Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	ASSETPERC.ID_ASSETCLASS,
--				PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
--			ON PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--			AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--			AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN C6Mart.ClientiConCCNegativo CCNegativo
----			ON PATRBF.RETE = CCNegativo.Rete
----			AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			--PATRBF.TIPO_PRODOTTO = 'CC'
--			PATRBF.ID_AREA = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			--AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
			---ELIMINO GLI SKANDIA
			AND ASUL.COD_ISIN_SOTT = ''
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6Mart.ASSETCLASS ASSETCLASS
		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--V Aggiunto controllo che il cvt sia maggiore di zero, altrimenti
-- viene visualizzato sul report una riga con 0
WHERE A.CONTROVALORE > 0
ORDER BY A.ORDINAMENTO

END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S10PatrimonioFinanziario]    Script Date: 08/02/2022 16:50:06 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- =============================================
---- Author:		<Luca De Lisio,,PL_S10PatrimonioFinanziario>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----[C6Mart].[PL_S10PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
----[C6Mart].[PL_S10PatrimonioFinanziario] 'F','CTTCRL43E45H720U'
--ALTER procedure [C6Mart].[PL_S10PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
	
--SELECT 
--	A.BANCA,
--	A.ORDINAMENTO,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,5)) Controvalore,
--	cast(A.Percentuale  as decimal(19,5)) Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
--FROM 
--(		
--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Banca Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
--			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL
		
--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	ASSETPERC.ID_ASSETCLASS,
----				PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM C6MART.PATRIMONIO_BF PATRBF
----		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
----			ON PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----			AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----			AND ASSETPERC.LIVELLO = 1
------		LEFT OUTER JOIN C6Mart.ClientiConCCNegativo CCNegativo
------			ON PATRBF.RETE = CCNegativo.Rete
------			AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			--PATRBF.TIPO_PRODOTTO = 'CC'
----			PATRBF.ID_AREA = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			--AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL

--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC
--			ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--			---ELIMINO GLI SKANDIA
--			AND ASUL.COD_ISIN_SOTT = ''
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN C6Mart.ASSETCLASS ASSETCLASS
--		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--) A
----V Aggiunto controllo che il cvt sia maggiore di zero, altrimenti
---- viene visualizzato sul report una riga con 0
--WHERE A.CONTROVALORE > 0
--ORDER BY A.ORDINAMENTO

--END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_S170LimitiMassimi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6Mart].[PL_S170LimitiMassimi] 'S', 'MRVGRG34L25A984D'
CREATE procedure [C6Mart].[PL_S170LimitiMassimi]--'F','CNCDNL73M56B300U'
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

DECLARE @newLimiteProfilo varchar(20)

if [C6Mart].[getIndicatoreValutazione] (@Rete,@CodiceFiscale, 4) = -1
	set @newLimiteProfilo = 'n.d.'
else
	select @newLimiteProfilo = 
		case experience
			when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
			else '-'

					
		end
		from C6Mart.MIFID
		WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale 



select 'Limite massimo profilo',
       '-' as Controvalore,
	 isnull(risk.descr, 0) as rischioCreditoMassimo,
	 isnull(CR.MAX_VAR, 0) as  varMassimo,     
	   '-' as Diversificazione,
	 @newLimiteProfilo as Complessita

from C6Mart.MIFID AS M
left JOIN C6Mart.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
left join [C6Staging].[RISKCLASS] risk
ON m.riskclass = risk.cod
WHERE
M.RETE = @Rete AND
M.COD_FISCALE = @CodiceFiscale 


END 





GO
/****** Object:  StoredProcedure [C6Mart].[PL_S181PreferenzeESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'VNZGPL53M04L781P'
CREATE procedure [C6Mart].[PL_S181PreferenzeESG] --'W','MLDDND66M21B967S'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


SELECT esg.[rete]
      ,esg.[cod_fiscale]
      ,esg.[Preferenza_esg_cliente]
      ,esg.[ESG_E]
      ,esg.[ESG_S]
      ,esg.[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,esg.[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when isnull(ind.percESG,'0.00')>=25 and isnull(ind.percESG,'0.00')<50 then 'Almeno pari al 25%'
			when isnull(ind.percESG,'0.00')>=50 and isnull(ind.percESG,'0.00')<75 then 'Almeno pari al 50%'
			when isnull(ind.percESG,'0.00')>=75 then 'Almeno pari al 75%' else 'n.d.' end as Pref_Sost
	,case when cle.U_PREFSOST='S' then 'Y' 
		when cle.U_PREFSOST='N' then 'N' else 'N' end as U_PREFSOST --Ulteriori Preferenze di Sostenibilità							   ----decommenta per ESG 2024
	,case when cle.FLAGSFDR='S' then replace(cast(cle.SFDR_PERC as varchar(12)),'.00','')+'%' else '-' end as SFDR_PERC																   ----decommenta per ESG 2024
	,case when cle.FLAGTAXO='S' then replace(cast(cle.TAXO_PERC as varchar(12)),'.00','')+'%' else '-' end as TAXO_PERC																   ----decommenta per ESG 2024
	,case when cle.PAI_NO_DETT = 'S' then 'Preferisco non dettagliare' --modifica 10122024 Scapellato	
		  when isnull(cle.PAI_A,'')='' then '-' else cle.PAI_A end as PAI_A
	,case when cle.PAI_NO_DETT = 'S' then 'Preferisco non dettagliare' --modifica 10122024 Scapellato	
		  when isnull(cle.PAI_S,'')='' then '-' else cle.PAI_S end as PAI_S
	,case when ESG_E='Y' then cle.PERCAMB_OK ELSE NULL END AS E_PERC_OK--,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS E_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_S='Y' then cle.PERCSOC_OK ELSE NULL END AS S_PERC_OK--,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS S_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_G='Y' then cle.PERCGOV_OK ELSE NULL END AS G_PERC_OK--,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS G_PERC_OK				   ----decommenta per ESG 2024
  FROM [C6StampeCentralizzate].[C6Mart].[BrsClienteESG] esg
  left join c6staging.VAR_ADEGUATEZZA_INDICATORI ind
  on ind.rete=esg.rete and ind.CODICE_FISCALE=esg.cod_fiscale
    left join C6Mart.W6CLIESG cle
  on ind.rete=cle.rete and ind.CODICE_FISCALE=cle.CODFIS
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S181PreferenzeESG_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'VNZGPL53M04L781P'
CREATE procedure [C6Mart].[PL_S181PreferenzeESG_bkp_20250228_Pre_ESG2024] --'F','FRLNCT38L47F205E'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


SELECT esg.[rete]
      ,esg.[cod_fiscale]
      ,esg.[Preferenza_esg_cliente]
      ,esg.[ESG_E]
      ,esg.[ESG_S]
      ,esg.[ESG_G]
      ,esg.[obiettivo_ESG_minimo]
      ,esg.[ESG_Rating]
      ,esg.[ESG_E_perc]
      ,esg.[ESG_S_perc]
      ,esg.[ESG_G_perc]
	  ,case when isnull(ind.percESG,'0.00')>=25 and isnull(ind.percESG,'0.00')<50 then 'Almeno pari al 25%'
			when isnull(ind.percESG,'0.00')>=50 and isnull(ind.percESG,'0.00')<75 then 'Almeno pari al 50%'
			when isnull(ind.percESG,'0.00')>=75 then 'Almeno pari al 75%' else 'n.d.' end as Pref_Sost
  FROM [C6StampeCentralizzate].[C6Mart].[BrsClienteESG] esg
  left join c6staging.VAR_ADEGUATEZZA_INDICATORI ind
  on ind.rete=esg.rete and ind.CODICE_FISCALE=esg.cod_fiscale
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S182BISDettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


								
																		  
CREATE procedure [C6Mart].[PL_S182BISDettaglioProdottiESG] --'S','SNTCHR80A61D612V'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
											   
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
0 as ORDINAMENTO_PROGETTO,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	--CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
			 
								
	--SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	--CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
												   
				 
															 
			 
										 
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS versato_need_progString,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' 
--		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
--		ELSE NULL
--	END	AS MinusPlusValenza_need_prog,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS MinusPlusValenza_need_progString,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--		ELSE NULL
--	END	AS somma_var_need_prog,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--		ELSE NULL
--	END	AS somma_copertura_need_prog,
--	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
--	CASE 
--		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--		ELSE NULL 
--	END as var_needareaString,
--	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
--			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		ELSE NULL  
--	END AS copertura_needareaString,
--	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
--	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END as var_need_progString,
--	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,


    case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,
																																				

	PATRBF.CTV AS Controvalore, 
--	PATRBF.VERSATO_NETTO AS VersatoNetto, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020

--	case when (patrbf.tipo_prodotto ='CC') then 0.00 
--	else RISCHIO_PROD.VAR_PERC_PTF
--	end AS VaRprodotto, 

--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		-- WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
							
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--	PARTVIA_DISINV AS partitaViaggiante,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
--		ELSE NULL 
--	END AS nota_needarea,
--   RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,
--
--
--	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

							 
	patrbf.tipo_prodotto as Tipo_Prodotto

into #temp
FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
--	ON PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
----		CASE 
----			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
----			ELSE 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
----		END + PATRBF.POSITION_ID 
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--    case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC


select top (1)
	'Tot_P' as needarea,
	'TOTALE PATRIMONIO' as needareades,
	'103' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	sum(Controvalore) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 
															 

END





--PRINT N'Altering [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]'
GO
/****** Object:  StoredProcedure [C6Mart].[PL_S182DettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





								
																		  
CREATE procedure [C6Mart].[PL_S182DettaglioProdottiESG]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
											   
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
0 as ORDINAMENTO_PROGETTO,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	--CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
			 
								
	--SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	--CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
												   
				 
															 
			 
										 
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS versato_need_progString,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' 
--		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
--		ELSE NULL
--	END	AS MinusPlusValenza_need_prog,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS MinusPlusValenza_need_progString,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--		ELSE NULL
--	END	AS somma_var_need_prog,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--		ELSE NULL
--	END	AS somma_copertura_need_prog,
--	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
--	CASE 
--		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--		ELSE NULL 
--	END as var_needareaString,
--	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
--			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		ELSE NULL  
--	END AS copertura_needareaString,
--	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
--	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END as var_need_progString,
--	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,


    case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,
																																				

	PATRBF.CTV AS Controvalore, 
--	PATRBF.VERSATO_NETTO AS VersatoNetto, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020

--	case when (patrbf.tipo_prodotto ='CC') then 0.00 
--	else RISCHIO_PROD.VAR_PERC_PTF
--	end AS VaRprodotto, 

--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		-- WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
							
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--	PARTVIA_DISINV AS partitaViaggiante,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
--		ELSE NULL 
--	END AS nota_needarea,
--   RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,
--
--
--	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

							 
	patrbf.tipo_prodotto as Tipo_Prodotto
	--	,CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_E_PROD_CLI,----decommenta per ESG 2024
	--CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_S_PROD_CLI,----decommenta per ESG 2024
	--CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
--           ELSE 'N' end as ESG_G_PROD_CLI	----decommenta per ESG 2024
	,case when isnull(cat.esg_e_prod_cli,'N')='Y' then 'S' else 'N' end as esg_e_prod_cli
	,case when isnull(cat.esg_s_prod_cli,'N')='Y' then 'S' else 'N' end as esg_s_prod_cli
	,case when isnull(cat.esg_g_prod_cli,'N')='Y' then 'S' else 'N' end as esg_g_prod_cli


FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
--	ON PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
----		CASE 
----			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
----			ELSE 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
----		END + PATRBF.POSITION_ID 
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--    case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
	left join c6mart.W6CATESG cat
	on PATRBF.cod_prodotto = cat.PRODOTTO_ID
	AND PATRBF.rete = cat.rete
	AND PATRBF.COD_FISCALE =cat.codfis
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END





--PRINT N'Altering [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]'
GO
/****** Object:  StoredProcedure [C6Mart].[PL_S182DettaglioProdottiESG_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



								
																		  
CREATE procedure [C6Mart].[PL_S182DettaglioProdottiESG_bkp_20250228_Pre_ESG2024]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
											   
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
0 as ORDINAMENTO_PROGETTO,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	--CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
			 
								
	--SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	--CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
												   
				 
															 
			 
										 
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS versato_need_progString,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' 
--		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
--		ELSE NULL
--	END	AS MinusPlusValenza_need_prog,
--	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
--		THEN 'n.d.'
--		ELSE NULL
--	END	AS MinusPlusValenza_need_progString,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--		ELSE NULL
--	END	AS somma_var_need_prog,
--	CASE 
--		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--		ELSE NULL
--	END	AS somma_copertura_need_prog,
--	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
--	CASE 
--		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--		ELSE NULL 
--	END as var_needareaString,
--	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
--			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		ELSE NULL  
--	END AS copertura_needareaString,
--	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
--	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
--		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END as var_need_progString,
--	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,


    case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,
																																				

	PATRBF.CTV AS Controvalore, 
--	PATRBF.VERSATO_NETTO AS VersatoNetto, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
--	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	--RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto,  --commentata per assenza o,oo per i cc fideuram il 29/4/2020

--	case when (patrbf.tipo_prodotto ='CC') then 0.00 
--	else RISCHIO_PROD.VAR_PERC_PTF
--	end AS VaRprodotto, 

--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' --commentata per assenza o,oo per i cc fideuram il 29/4/2020
--	     WHEN patrbf.isin in('EURO00000009', 'EURO10000007' ) THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
		-- WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--	ELSE NULL END as varProdottoString,
--	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
							
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--	PARTVIA_DISINV AS partitaViaggiante,
--	CASE 
--		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
--		ELSE NULL 
--	END AS nota_needarea,
--   RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,
--
--
--	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

							 
	patrbf.tipo_prodotto as Tipo_Prodotto


FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
--	ON PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
----		CASE 
----			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
----			ELSE 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
----		END + PATRBF.POSITION_ID 
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--    case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END





--PRINT N'Altering [C6Mart].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]'
GO
/****** Object:  StoredProcedure [C6Mart].[PL_S183iCapital]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












--Inv	Investimento	021233XY004	BLACK ROCK EQT X 20230215	99999999	300000.000	0.000	300000.000

-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================

CREATE procedure [C6Mart].[PL_S183iCapital] --'S','DGSMHL70H08Z404F'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

--SELECT 
--		'Inv' as CodArea,
--		'Investimento' as NomeArea,
--		'954572CO210' as CodiceContratto,
--		'BlackRock' as ContrattoSGR,
--		'Prodotto di Test' as NomeProdotto,
--		cast('05/04/2022' as varchar) as DataInizio,
--		cast('15/01/2023' as varchar) as DataFine,
--		cast('23468.230' as varchar) as Totale,
--		cast('632.234' as varchar) as ImportoVersato,
--		cast('326.263' as varchar) as ImportoDaVersare

--		union all

--		SELECT 
--		'Inv' as CodArea,
--		'Investimento' as NomeArea,
--		'954572CO210' as CodiceContratto,
--		'Fideuram' as ContrattoSGR,
--		'Test con stesso NomeProdotto' as NomeProdotto,
--		cast('05/03/2022' as varchar) as DataInizio,
--		cast('15/02/2023' as varchar) as DataFine,
--		cast('238.230' as varchar) as Totale,
--		cast('2.234' as varchar) as ImportoVersato,
--		cast('36.263' as varchar) as ImportoDaVersare

--		union all

--		SELECT 
--		'Ris' as CodArea,
--		'Riserva' as NomeArea,
--		'000000CO111' as CodiceContratto,
--		'Fideuram' as ContrattoSGR,
--		'Prodotto con codice diverso' as NomeProdotto,
--		cast('05/12/2020' as varchar) as DataInizio,
--		cast('15/01/2012' as varchar) as DataFine,
--		cast('23328.230' as varchar) as Totale,
--		cast('2123.234' as varchar) as ImportoVersato,
--		cast('362.263' as varchar) as ImportoDaVersare


	SELECT
distinct
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS Codarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS NomeArea,
--CASE 
	--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	--ELSE AREA.ORDINAMENTO 
--END AS OrdineArea,
iCap.codconf as CodiceContratto,
iCap.sgr as ContrattoSGR,
iCap.descprod as NomeProdotto,
iCap.dtiniz as DataInizio,
iCap.dtfine as DataFine,
iCap.CTV_COMMIT as Totale,
iCap.impvers as ImportoVersato,
iCap.impres as ImportoDaVersare
from  C6Mart.PATRIMONIO_BF PATRBF
INNER JOIN 
C6Mart.AREA_BISOGNO AREA 
ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
inner join C6Mart.WSEICAP iCap 
on icap.codconf=PATRBF.ID_CONTRATTO
and icap.subprod=PATRBF.COD_SOTTOPRODOTTO
and icap.isin=patrbf.ISIN
where patrbf.RETE=@Rete 
and patrbf.COD_FISCALE=@CodiceFiscale 

--select top(1) Codarea,NomeArea,CodiceContratto,ContrattoSGR,NomeProdotto,DataInizio,DataFine,
--cast(Totale as decimal(15,2))as Totale,
--cast(ImportoVersato as decimal(15,2))as ImportoVersato ,
--cast(ImportoDaVersare as decimal(15,2)) as ImportoDaVersare 
--from C6MartPeriodico.test_icapital 
--where rete=@rete and CODiceFISCALE=@CodiceFiscale



END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S184CoerenzaESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--Inv	Investimento	021233XY004	BLACK ROCK EQT X 20230215	99999999	300000.000	0.000	300000.000

-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================

create procedure [C6Mart].[PL_S184CoerenzaESG] --'S','DGSMHL70H08Z404F'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN
select Rete,
	   Codice_Fiscale,
	   case when percESG=25.00 then 'Almeno pari al 25%'
	        when percESG=50.00 then 'Almeno pari al 50%'
			when percESG=75.00 then 'Almeno pari al 75%'
			else 'n.d.' end as percESG,
	   pesoSostESG,
	   case when pesoSostESG>=percESG then 'S' else 'N' end as Coerenza  
from C6Staging.VAR_ADEGUATEZZA_INDICATORI
where Rete=@Rete and CODICE_FISCALE=@CodiceFiscale


END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S185UCaratteristicheESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










																	  
CREATE procedure [C6Mart].[PL_S185UCaratteristicheESG] --'F','DCRCRL47S11D612N'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
    patrbf.cod_prodotto as COD_PRODOTTO,
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
		

	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,
	
	
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',') --+ '%'
END AS PERC_INVESTIMENTO_SFDR,

--aggiunta ESG 2024
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_E), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_AMB,																  ----decommenta per ESG 2024
																									  --decommenta per ESG 2024
																									  --decommenta per ESG 2024
CASE 																								  ----decommenta per ESG 2024
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_S), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_SOC,																  ----decommenta per ESG 2024


	CASE 
   WHEN ISNULL(esg.PERC_INVESTIMENTO_TAXONOMY, 0.00) = 0.00
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_TAXONOMY), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_TAXONOMY,

	isnull(esg.label_PAI_A,'-') as label_PAI_A,
	isnull(esg.Label_PAI_S,'-') as label_PAI_S,
	isnull(esg.Label_U_INFO_ESG,'-') as Label_U_INFO_ESG,
	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea



											   



	--V
											



FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S185UCaratteristicheESG_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








																	  
CREATE procedure [C6Mart].[PL_S185UCaratteristicheESG_bkp_20250228_Pre_ESG2024] --'F','DCRCRL47S11D612N'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MART.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
    patrbf.cod_prodotto as COD_PRODOTTO,
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
		

	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,
	
	
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',') --+ '%'
END AS PERC_INVESTIMENTO_SFDR,

	CASE 
   WHEN ISNULL(esg.PERC_INVESTIMENTO_TAXONOMY, 0.00) = 0.00
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_TAXONOMY), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_TAXONOMY,

	isnull(esg.label_PAI_A,'-') as label_PAI_A,
	isnull(esg.Label_PAI_S,'-') as label_PAI_S,
	isnull(esg.Label_U_INFO_ESG,'-') as Label_U_INFO_ESG,
	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea



											   



	--V
											



FROM 
C6MART.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MART.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
left join [C6Staging].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6Mart.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S186DettaglioPortafoglioSei]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














																	  
CREATE procedure [C6Mart].[PL_S186DettaglioPortafoglioSei] --'F','RMNFNC55T03A783I'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @appo table
(
  	[BFCTV] [decimal](15, 2) NULL,
	[PatrimonioTerziCTV] [decimal](15, 2) NULL,
	[FinanziarioCTV] [decimal](16, 2) NULL,
	[FinanziarioPerc] [decimal](6, 2) NULL,
	[ImmobiliareCTV] [decimal](15, 2) NULL,
	[ImmobiliarePerc] [decimal](6, 2) NULL,
	[AltroCTV] [decimal](15, 2) NULL,
	[AltroPerc] [decimal](6, 2) NULL,
	[TotaleCTV] [decimal](15, 2) NULL,
	[ImmobiliarePQCTV] [decimal](15, 2) NULL

)
--creo le tabelle di appoggio
insert into @appo exec [C6Mart].[PL_D2_S152Patrimonio]  @Rete,@CodiceFiscale

declare @TotCTV [decimal](15, 2) =(select [BFCTV] from @appo)




SELECT

	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER() AS SommaProdottiEsclusi,
	--@TotCTV as PatrimonioFideuram,
	SUM(CASE 
        WHEN PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV < 0 THEN 0 
        ELSE PATRBF.CTV 
    END) OVER() AS SommaProdottiEsclusi, --per escludere i CC a Saldo Negativo
@TotCTV as PatrimonioFideuram,
@TotCTV-SUM(CASE 
        WHEN PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV < 0 THEN 0 
        ELSE PATRBF.CTV 
    END) OVER() AS PortafoglioSei
	--@TotCTV-SUM(PATRBF.CTV) OVER() as PortafoglioSei
	
FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 


LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	  --AND (
   --     (PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV > 0) OR --per eliminare i CC a saldo Negativo
   --     (PATRBF.TIPO_PRODOTTO <> 'CC' AND PATRBF.CTV <> 0)
   -- )
	and PATRBF.Nob_Prez='S'
	order by PATRBF.CTV desc

															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S187SfdrTaxESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















--select * from wh.Maledetti


																	  
CREATE   procedure [C6Mart].[PL_S187SfdrTaxESG]-- 'F','FRDGGN27C43L194Y'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6Mart.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale
declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6Mart].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale


if(@pref_esg='1' AND @U_PREFSOST='S')
begin

 select
 1 as ID,
	'Prodotti sostenibili SFDR' as Descrizione,
	replace(cast(isnull(cli.SFDR_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
 select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast(isnull(cli.SFDR_PERC_OK,000) as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,case when cli.FLAGSFDR='N' then 'Y' 
		else 'N' end as isNA
	from  [C6Mart].[W6CliESG] cli
	WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 3 as ID,
	'Prodotti non sostenibili' as Descrizione,
 	replace(cast((100-isnull(cli.SFDR_PERCT,0.00))as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
	  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'SFDR' as Tabella
		,'N' as isNA
     from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 5 as ID,
	'Prodotti ecosostenibili Taxonomy' as Descrizione,
	replace(cast(isnull(cli.TAXO_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast (isnull(cli.TAXO_PERC_OK,0.00) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,case when cli.FLAGTAXO='N' then 'Y' 
		else 'N' end as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 7 as ID,
	'Prodotti non ecosostenibili' as Descrizione,
	replace(cast((100-isnull(cli.TAXO_PERCT,0.00)) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale


--	select * from [C6Mart].[W6CliESG] cli

end															 

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S188PaiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














--select * from wh.Maledetti


																	  
CREATE   procedure [C6Mart].[PL_S188PaiESG]-- 'F','FRDGGN27C43L194Y'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6Mart.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale
declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6Mart].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale

if(@pref_esg='1' and @U_PREFSOST='S')
begin

select 1 as ID,
	'Prodotti che considerano almeno un PAI ambientale' as Descrizione,
	replace(cast(isnull(cli.PAIA_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(isnull(cli.PAIA_PERC_OK,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,case when isnull(cli.PAI_A,'')='' then 'Y' 
		else 'N' end as isNA 
	  from [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 3 as ID,
	'Prodotti che non considerano PAI ambientali' as Descrizione,
 	replace(cast((100-isnull(cli.PAIA_PERCT,0.00)) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	union
select 5 as ID,
	'Prodotti che considerano almeno un PAI sociale' as Descrizione,
	replace(cast(isnull(cli.PAIS_PERCT,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(isnull(cli.PAIS_PERC_OK,0.00) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,case when isnull(cli.PAI_S,'')='' then 'Y' 
		else 'N' end as isNA 
from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 7 as ID,
	'Prodotti che non considerano PAI sociali' as Descrizione,
	replace(cast((100-isnull(cli.PAIS_PERCT,0.00)) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from  [C6Mart].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA

															 
end
END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S18PatrimonioFinanziarioRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S18PatrimonioFinanziarioRischio] 'F','SMPSMN76C26L157Y'
CREATE procedure [C6Mart].[PL_S18PatrimonioFinanziarioRischio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	DECLARE @varComplessivo DECIMAL(12,3)
	DECLARE @varBF DECIMAL(12,3)
	DECLARE @varTerzi DECIMAL(12,3)
	DECLARE @coperturaBF DECIMAL(12,3)
	DECLARE @coperturaTERZI DECIMAL(12,3)
	DECLARE @coperturaCOMPLESSIVO DECIMAL(12,3)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)

	SELECT
		@varComplessivo = VAR_PERC_PTF,
		@coperturaCOMPLESSIVO = COPERTURA
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
	WHERE
		RA.RETE = @Rete AND
		RA.COD_FISCALE = @CodiceFiscale AND
		RA.COD_AGGREG = 'COMPLESSIVO'

	SELECT
		@varBF = VAR_PERC_PTF,
		@coperturaBF = COPERTURA
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
	WHERE
		RA.RETE = @Rete AND
		RA.COD_FISCALE = @CodiceFiscale AND
		RA.COD_AGGREG = 'COMPLESSIVO|BF'

	SELECT
		@varTerzi = VAR_PERC_PTF,
		@coperturaTERZI = COPERTURA
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
	WHERE
		RA.RETE = @Rete AND
		RA.COD_FISCALE = @CodiceFiscale AND
		RA.COD_AGGREG = 'COMPLESSIVO|TERZI'

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = CR.DESCRIZIONE
	FROM
		C6Mart.MIFID AS M 
		INNER JOIN C6Mart.CODIFICA_RISCHIO AS CR 
		ON M.PROFILO_ASS = CR.PROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		@varProfilo as varProfilo,
--		isnull(@varComplessivo,0) as varComplessivo,
--		isnull(@varBF,0) as varBF,
--		isnull(@varTerzi,0) as varTerzi,
		@varComplessivo as varComplessivo,
		@varBF as varBF,
		@varTerzi as varTerzi,
		CASE 
			WHEN @coperturaCOMPLESSIVO IS NULL THEN 'n.c.'
			WHEN @coperturaCOMPLESSIVO = 0 THEN 'n.c.'
			ELSE NULL
		END AS varComplessivoString,
		CASE 
			WHEN @coperturaBF IS NULL THEN 'n.c.'
			WHEN @coperturaBF = 0 THEN 'n.c.'
			ELSE NULL
		END AS varBFString,
		CASE 
			WHEN @coperturaTERZI IS NULL THEN 'n.c.'
			WHEN @coperturaTERZI = 0 THEN 'n.c.'
			ELSE NULL
		END AS varTerziString,
		isnull(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S1Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].PL_S1Patrimonio 'F','BRTVTR64T13L219G'
CREATE procedure [C6Mart].[PL_S1Patrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT @PatrimonioBF=SUM(CTV)
	FROM C6Mart.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		and patrBF.Cod_Fiscale = @CodiceFiscale
		and patrBF.id_area <> 'CC'

	--select '@PaRT_VIAGGIANTI'
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6Mart.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6Mart.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


    --select '@PatrimonioBF',@PatrimonioBF

	SELECT @PatrimonioTerzi=SUM(ROUND(CTV,2))
	FROM C6Mart.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale

	--select '@PatrimonioTerzi',@PatrimonioTerzi

	SELECT @PatrimonioImmobiliare=SUM(patrImm.VALORE_STIMATO)
	FROM C6Mart.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale

	--select '@PatrimonioImmobiliare',@PatrimonioImmobiliare

--	SELECT @CCBF=SUM(ccBB.saldo)
--	FROM C6Mart.ANAG_CC ccBB
--	WHERE
--		ccBB.Rete = @Rete
--		and ccBB.Cod_Fiscale = @CodiceFiscale

	--select '@CCBF',@CCBF

	SELECT @PatrimonioAltro=SUM(patrAltro.ctv)
	FROM C6Mart.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		and patrAltro.Cod_Fiscale = @CodiceFiscale
	
	--select '@PatrimonioAltro',@PatrimonioAltro

    declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF+ @Part_viaggianti
	SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	--SET @CCBF = coalesce(@CCBF,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	
--	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro+@CCBF,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)
	

	--select '@PatrimonioTotale',@PatrimonioTotale

--	SELECT	@PatrimonioBF + @CCBF as BFCTV,
--			@PatrimonioTerzi as PatrimonioTerziCTV,
--			@PatrimonioBF + @CCBF +@PatrimonioTerzi as FinanziarioCTV,
--			cast((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @CCBF + @PatrimonioTerzi)/ @PatrimonioTotale end) as Decimal(15,2)) * 100.00 as FinanziarioPerc,
--			@PatrimonioImmobiliare as ImmobiliareCTV,
--			cast(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end as Decimal(15,2)) *100.00 as ImmobiliarePerc,
--			@PatrimonioAltro as AltroCTV,
--			cast(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end as Decimal(15,2)) *100.00 as AltroPerc,
--			@PatrimonioTotale as TotaleCTV

	SELECT	@PatrimonioBF as BFCTV,
			@PatrimonioTerzi as PatrimonioTerziCTV,
			@PatrimonioBF + @PatrimonioTerzi as FinanziarioCTV,
			--cast((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end) as Decimal(15,2)) * 100.00 as FinanziarioPerc,
			convert(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) as FinanziarioPerc,
			@PatrimonioImmobiliare as ImmobiliareCTV,
			--cast(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end as Decimal(15,2)) *100.00 as ImmobiliarePerc,
			convert(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) as ImmobiliarePerc,
			@PatrimonioAltro as AltroCTV,
			--cast(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end as Decimal(15,2)) *100.00 as AltroPerc,
			convert(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) as AltroPerc,
			@PatrimonioTotale as TotaleCTV

END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_S23DettaglioRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S23DettaglioRischio]  'F','BRDMRZ48E28D612K'
CREATE procedure [C6Mart].[PL_S23DettaglioRischio] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT DISTINCT 
		  isnull(MIFID.PROFILO_ASS,0)  as codiceProfilo,
  
  CASE 
   WHEN (CODRISCHIO.MAX_VAR is null) THEN 'n.c'
   ELSE null
  END as varProfiloMaxString,
  
  CODRISCHIO.MAX_VAR as varProfiloMax,
  
  MIFID.RISKCLASS AS CreditRiskMax,
  CASE
   WHEN MIFID.RISKCLASS IS NULL THEN 'n.c.'
   ELSE NULL
  END AS  CreditRiskMaxString, 
  PT.INTERMEDIARIO AS Intermediario,
  ISNULL(RISCHIO.VAR_PERC_PTF,0) as varIntermediario,
  CASE 
   WHEN RISCHIO.COPERTURA = 0 THEN 'n.c.' 
   WHEN RISCHIO.COPERTURA IS NULL THEN 'n.c.' 
   ELSE NULL 
  END AS varIntermediarioString,
  rischio.copertura as coperturaBF,
  CASE 
   WHEN RISCHIO.COPERTURA = 0 THEN 'n.c.' 
   WHEN RISCHIO.COPERTURA IS NULL THEN 'n.c.' 
   ELSE NULL 
  END AS coperturaBFString,
  
  CASE 
   -- WHEN RISCHIO.COPERTURA > 0 AND RISCHIO.VAR_PERC_PTF <= CODRISCHIO.MAX_VAR THEN 1
   -- modified by mzaki
   WHEN RISCHIO.COPERTURA > 0 AND RISCHIO.VAR_PERC_PTF <= CODRISCHIO.MAX_VAR 
    AND isnull(RISCHIO.CREDITRISK,0) <= MIFID.RISKCLASS THEN 1
   --
   WHEN RISCHIO.COPERTURA = 0  THEN -1
   ELSE 0 
  END AS rispetto,
  
  -----------------------
  RISCHIO.CREDITRISK as creditRisk,
  CASE 
   WHEN RISCHIO.CREDITRISK is null and RISCHIO.COPERTURA = 0  THEN 'n.c.' 
   WHEN  RISCHIO.CREDITRISK is null and RISCHIO.COPERTURA IS NULL THEN 'n.c.' 
   WHEN  RISCHIO.CREDITRISK is null then 'n.a.' 
  ELSE null
  END as creditRiskString
	FROM C6MART.PATRIMONIO_TERZI PT
	LEFT OUTER JOIN C6MART.RISCHIO_AGGREGATO RISCHIO
		ON RISCHIO.RETE = PT.RETE
		AND RISCHIO.COD_FISCALE = PT.COD_FISCALE
		AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI|' + PT.INTERMEDIARIO
	LEFT JOIN C6MART.MIFID MIFID
		ON MIFID.RETE = PT.RETE
		AND MIFID.COD_FISCALE = PT.COD_FISCALE
	LEFT JOIN C6MART.CODIFICA_RISCHIO CODRISCHIO
		ON MIFID.PROFILO_ASS = CODRISCHIO.PROFILO
	WHERE 1 = 1
--		AND PT.TIPO_PRODOTTO <> 'Conti correnti'
		AND PT.RETE = @Rete
		AND PT.cod_fiscale = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S25Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S25Anagrafica] 'F', 'FSTMRA69D23A501O'
CREATE procedure [C6Mart].[PL_S25Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
				
			
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + ISNULL(CONTRATTOSEI.CAP, '') + ' ' + CONTRATTOSEI.[Citta]
		+ ISNULL(' (' + CONTRATTOSEI.PROVINCIA  + ')', '') AS Residenza,
		
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_INZIOAVANZATO) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		null AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Provincia] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM        
		C6MART.vCONTRATTI AS CONTRATTOSEI --SEI -- TABELLA BASE
	INNER JOIN 
		C6MART.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	INNER JOIN 
		C6MART.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MART.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MART.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S26PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_S26PatrimonioImmobiliare] 'F','PLZMRA41S41H501Z'
CREATE procedure [C6Mart].[PL_S26PatrimonioImmobiliare] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MART.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S27ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[PL_S27ALtroPatrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	SELECT 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM C6MART.PATRIMONIO_ALTRO 
	WHERE PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY PATRIMONIO_ALTRO.CTV DESC
END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S2PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Luca De Lisio
-- Create date: 
-- Description:	
-- =============================================
--[C6Mart].[PL_S2PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
CREATE procedure [C6Mart].[PL_S2PatrimonioFinanziario] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

SELECT 
	A.BANCA,
	A.ORDINAMENTO,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN 'Banca Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--
--		--V per i cc negativi vado sull'area della patrimonio bf essendo i pos in liq
--		--LEFT JOIN 
--		--	C6Mart.ClientiConCCNegativo CCNegativo
--		--	ON 
--		--		PATRBF.RETE = CCNegativo.Rete
--		--		AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			--PATRBF.TIPO_PRODOTTO = 'CC'
--			PATRBF.ID_AREA <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			--AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		--DETTAGLIO ASUL
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MART.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT JOIN 
			C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6Mart.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S2PatrimonioFinanziario]    Script Date: 08/02/2022 16:53:30 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		Luca De Lisio
---- Create date: 
---- Description:	
---- =============================================
----[C6Mart].[PL_S2PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
--ALTER procedure [C6Mart].[PL_S2PatrimonioFinanziario] 
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--SELECT 
--	A.BANCA,
--	A.ORDINAMENTO,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,6)) Controvalore,
--	A.Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
--FROM 
--(		

--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Banca Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO AS Ordinamento,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

--		--PRODOTTI BF ESCLUSI GLI ASUL
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
--			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL

----		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	
----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MART.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MART.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----
----		--V per i cc negativi vado sull'area della patrimonio bf essendo i pos in liq
----		--LEFT JOIN 
----		--	C6Mart.ClientiConCCNegativo CCNegativo
----		--	ON 
----		--		PATRBF.RETE = CCNegativo.Rete
----		--		AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			--PATRBF.TIPO_PRODOTTO = 'CC'
----			PATRBF.ID_AREA <> 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			--AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL

--		--DETTAGLIO ASUL
--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MART.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MART.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI A CATALOGO
--		SELECT
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_TERZI PATRTERZI
--		LEFT JOIN 
--			C6MART.ASSET_PERC ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI NON A CATALOGO
--		SELECT 	
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MART.PATRIMONIO_TERZI PATRTERZI
--		LEFT JOIN 
--			C6MART.ASSET_PERC_TERZI ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6Mart.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

--) A

--ORDER BY A.ORDINAMENTO

--END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S31PatrimonioFinanziarioIntermediario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S31PatrimonioFinanziarioIntermediario]  'F','BRTVTR64T13L219G'
CREATE procedure [C6Mart].[PL_S31PatrimonioFinanziarioIntermediario] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	SELECT DISTINCT
		PATRIMONIO_TERZI.INTERMEDIARIO as Intermediario,
		SUM(ROUND(PATRIMONIO_TERZI.CTV,2)) OVER (PARTITION BY PATRIMONIO_TERZI.INTERMEDIARIO) as Controvalore,
		(SUM(PATRIMONIO_TERZI.CTV) OVER (PARTITION BY PATRIMONIO_TERZI.INTERMEDIARIO)/
		SUM(PATRIMONIO_TERZI.CTV) OVER (PARTITION BY 'Totale'))*100 as Percentuale,
		SUM(PATRIMONIO_TERZI.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM C6MART.PATRIMONIO_TERZI
	WHERE PATRIMONIO_TERZI.RETE = @Rete
		AND PATRIMONIO_TERZI.COD_FISCALE = @CodiceFiscale
	ORDER BY PATRIMONIO_TERZI.INTERMEDIARIO 
		
END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

--[C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass]  'F','QGLLND58R42E897H'
--[C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass]  'F','BRTVTR64T13L219G'
--[C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass]  'F','LNTNNE59L06F205C'
--[C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass]  'S', 'GHGGPP32M04L219F'
--[C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass]  'S','GHGRTI63T44L219D'
CREATE procedure [C6Mart].[PL_S32PatrimonioFinanziarioMAssetClass] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT DISTINCT
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			CASE
				WHEN SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') = 0 THEN 1
				ELSE SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
			END
		) * 100 AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
			ON PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
			AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6Mart.ASSETCLASS ASSETCLASS
		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY ASSETCLASS.ORDINAMENTO
		
END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_S36ProfiloRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S36ProfiloRischio] 'F','GRNNTN55B07I158D'
CREATE procedure [C6Mart].[PL_S36ProfiloRischio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	SELECT 
		M.PROFILO_ASS AS codiceProfilo,
--		CR.DESCRIZIONE AS nomeProfilo,
		PR.NomeProfilo as nomeProfilo,
		dbo.ToShortDateString(M.DATA_INIZIO_VAL) AS dataInizioValidita,
		CR.MAX_VAR as varMassimo
	FROM
		C6Mart.MIFID AS M INNER JOIN
		C6Mart.CODIFICA_RISCHIO AS CR ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN
		dbo.ProfiliDiRischio as pr on
		pr.CodiceProfilo = cr.profilo
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale
END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S37PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S37PiramideModello] 'F','RSSGPL33R01L219K'
CREATE procedure [C6Mart].[PL_S37PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

-- VECCHIA VERSIONE CON UNA RIGA DI TROPPO PER L'AREA INV
--	SELECT 
--		AREA_BISOGNO.ID_AREA AS Need_Breve,						-- NOME BREVE DELL'AREA DI BISOGNO
--		PIRAMIDE_MOD.NOME_PROGETTO AS Nome_Progetto,			-- NOME DEL PROGETTO (AREA INV)
--		ISNULL(PIRAMIDE_MOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
--		PIRAMIDE_MOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
--		SUM(CASE WHEN PIRAMIDE_MOD.NOME_PROGETTO IS NULL THEN ISNULL(PIRAMIDE_MOD.PERC_AREA,0) ELSE 0 END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
--		SUM(CASE WHEN PIRAMIDE_MOD.NOME_PROGETTO IS NULL THEN ISNULL(PIRAMIDE_MOD.PERC_AREA,0) ELSE 0 END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS Totale,
--		COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS NumeroProgettiInv,
--		AREA_BISOGNO.ORDINAMENTO
--	FROM C6MART.AREA_BISOGNO
--	LEFT JOIN C6MART.PIRAMIDE_MOD ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
--									AND PIRAMIDE_MOD.RETE = @Rete
--									AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
--	WHERE  AREA_BISOGNO.ORDINAMENTO < 6	
--	ORDER BY AREA_BISOGNO.ORDINAMENTO

	SELECT
		AREA_BISOGNO.ID_AREA AS Need_Breve,						-- NOME BREVE DELL'AREA DI BISOGNO
		PIRAMIDE_MOD.NOME_PROGETTO AS Nome_Progetto,			-- NOME DEL PROGETTO (AREA INV)
		ISNULL(PIRAMIDE_MOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
		PIRAMIDE_MOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS Totale,
		COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS NumeroProgettiInv,
		AREA_BISOGNO.ORDINAMENTO
	FROM C6MART.AREA_BISOGNO
	LEFT JOIN C6MART.PIRAMIDE_MOD 
		ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
		AND((PIRAMIDE_MOD.ID_AREA = 'INV' AND (PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL OR PIRAMIDE_MOD.NOME_PROGETTO = 'Default'))
			OR PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE'))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
	WHERE  AREA_BISOGNO.ORDINAMENTO < 6	
	ORDER BY AREA_BISOGNO.ORDINAMENTO

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S42RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6Mart].[PL_S42RischioDiversificazione] 'F', 'RSSRRT43L14E591E'
CREATE procedure [C6Mart].[PL_S42RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

--V VARIABILI DI APPOGGIO PER LA VERIFICA SE IL CLIENTE HA SOLO CC
	DECLARE @ESISTECC INT
	DECLARE @NUMPOSIZIONI INT

	SELECT @ESISTECC = COUNT(DISTINCT COD_FISCALE) 
	FROM C6MART.PATRIMONIO_BF
	WHERE ID_AREA = 'CC'
	AND COD_FISCALE = @CodiceFiscale
	GROUP BY ID_AREA

	SELECT @NUMPOSIZIONI = COUNT(*) 
	FROM C6MART.PATRIMONIO_BF
	WHERE ID_AREA <> 'CC'
	AND COD_FISCALE = @CodiceFiscale


SELECT 
K.COD_FISCALE,
K.RETE,
VAR_PERC_PTF AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varString,
	CASE 
	WHEN (ISNULL(copertura,100) < 100) 
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,
--V solo CC allora la copertura è 100
CASE 
		WHEN (@ESISTECC - @NUMPOSIZIONI) > 0 THEN 100
		ELSE ISNULL(COPERTURA,0.00) 
END AS COPERTURA,


case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Banca Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,
case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

FROM
C6MART.RISCHIO_AGGREGATO K left outer JOIN c6mart.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Mart.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY 11


END 





GO
/****** Object:  StoredProcedure [C6Mart].[PL_S43ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--[C6Mart].[PL_S43ContoCorrenteBF] 'F','QDRFNC49E21A367Z'
CREATE procedure [C6Mart].[PL_S43ContoCorrenteBF] 
 @Rete char(1), 
 @CodiceFiscale varchar(16)
AS
BEGIN
 
 SELECT     
  dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
  ANAG_CC.COD_CC AS conto, 
  cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
  cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
  0 as var,
  null as varString,
  0 as totaleVar,
  null as totaleVarString

 FROM       
  C6Mart.ANAG_CC 
 WHERE 
  ANAG_CC.rete= @Rete
  AND ANAG_CC.cod_fiscale= @CodiceFiscale
  AND ANAG_CC.SALDOCONTABILE < 0
 ORDER BY
  ANAG_CC.SALDOCONTABILE DESC

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_S43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
-- =============================================
-- cast(C6Mart.ANAG_CC.SALDO as decimal(15,2)) as Controvalore
-- [C6Mart].[PL_S43DettaglioProdottiBF] 'F', 'NDRRRT54L20D869S'
--SELECT * FROM PATR1

CREATE procedure [C6Mart].[PL_S43DettaglioProdottiBF]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009','EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
PATRBF.NOME_PROGETTO AS EE, PATRBF.ID_AREA,
CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID AS TMP,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
		ELSE AREA.ID_AREA 
	END AS needarea,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
	SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS versato_need_progString,
	CASE 
	WHEN AREA.ID_AREA = 'Inv' 
		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS MinusPlusValenza_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS MinusPlusValenza_need_progString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
		ELSE NULL
	END	AS somma_var_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
		ELSE NULL
	END	AS somma_copertura_need_prog,
	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
		ELSE NULL 
	END as var_needareaString,
	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		ELSE NULL  
	END AS copertura_needareaString,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_need_progString,
	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore, 
	PATRBF.VERSATO_NETTO AS VersatoNetto, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto, 
--	CASE WHEN ISNULL(RISCHIO_PROD.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varProdottoString,
	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varProdottoString,
	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
	PARTVIA_DISINV AS partitaViaggiante,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
		ELSE NULL 
	END AS nota_needarea,
   RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
	ON PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
--		CASE 
--			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
--			ELSE 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
    case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END

LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY AREASORTORDER, nome_progetto, PATRBF.CTV DESC

END











GO
/****** Object:  StoredProcedure [C6Mart].[PL_S43DettaglioProdottiBF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>

-- =============================================
-- cast(C6Mart.ANAG_CC.SALDO as decimal(15,2)) as Controvalore
-- [C6Mart].[PL_S43DettaglioProdottiBF] 'F', 'NDRRRT54L20D869S'
--SELECT * FROM PATR1

CREATE procedure [C6Mart].[PL_S43DettaglioProdottiBF_BK_eligoTitoli]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN = 'EURO00000009'
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
PATRBF.NOME_PROGETTO AS EE, PATRBF.ID_AREA,
CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID AS TMP,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
		ELSE AREA.ID_AREA 
	END AS needarea,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
	SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--	CASE WHEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as versato_needareaString,
	CASE WHEN COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as versato_needareaString,
	SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--	CASE WHEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE WHEN COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' ELSE NULL END as MinusPlusValenza_needareaString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS versato_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS versato_need_progString,
	CASE 
	WHEN AREA.ID_AREA = 'Inv' 
		THEN SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL
	END	AS MinusPlusValenza_need_prog,
	CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND SUM(PATRBF.CTV - PATRBF.VERSATO_NETTO) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) IS NULL
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - PATRBF.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) > 0
		THEN 'n.d.'
		ELSE NULL
	END	AS MinusPlusValenza_need_progString,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
		ELSE NULL
	END	AS somma_var_need_prog,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
		ELSE NULL
	END	AS somma_copertura_need_prog,
	cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)) AS var_needarea,
	--COALESCE(cast(RISCHIO_AGGR_AREA.VAR_PERC_PTF as decimal(15,2)),'n.c.') AS var_needareaString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_AREA.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_AREA.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
		WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
			THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
		ELSE NULL 
	END as var_needareaString,
	CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL(5,2)) AS copertura_needarea,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100
			--Valerio danilo THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
			THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		ELSE NULL  
	END AS copertura_needareaString,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
	--CASE WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as var_need_progString,
	CASE 
		--WHEN ISNULL(RISCHIO_AGGR_PROG.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' 
		WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as var_need_progString,
	RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
	dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
	PATRBF.ID_CONTRATTO AS ContrattoDossier, 
	--ANAGPROD.DESCR_PRODOTTO AS Descrizione,

	--V
	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,

	PATRBF.CTV AS Controvalore, 
	PATRBF.VERSATO_NETTO AS VersatoNetto, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
	PATRBF.CTV - PATRBF.VERSATO_NETTO AS MinusPlusValenza, 
	CASE WHEN PATRBF.VERSATO_NETTO IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
	RISCHIO_PROD.VAR_PERC_PTF AS VaRprodotto, 
--	CASE WHEN ISNULL(RISCHIO_PROD.VAR_PERC_PTF,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varProdottoString,
	CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as varProdottoString,
	RISCHIO_PROD.Copertura AS Coperturaprodotto, 
	PATRBF.REND_ANNO AS PerformanceYTD, 
	PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
	PARTVIA_DISINV AS partitaViaggiante,
	CASE 
		WHEN RISCHIO_AGGR_AREA.copertura > 0 AND RISCHIO_AGGR_AREA.copertura < 100 THEN '*' 
		ELSE NULL 
	END AS nota_needarea,
   RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM C6MART.PATRIMONIO_BF PATRBF
INNER JOIN C6MART.ANAG_PRODOTTI ANAGPROD 
	ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN C6MART.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_PROD 
	ON PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
--		CASE 
--			WHEN AREA.ID_AREA = 'Na' THEN 'RISORSENONASSOCIATE|' 
--			ELSE 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)-- AND (LEFT(PATRBF.ID_AREA,3)<>'Na' Or PATRBF.NOME_PROGETTO <> 'Default')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
LEFT JOIN C6MART.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
    case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END

LEFT OUTER JOIN C6Mart.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0

--Bido
    --AND ( 
    --PATRBF.CTV > 0 
    --OR  ( PATRBF.CTV < 0 AND  patrbf.tipo_prodotto = 'cc' ) 
    --)
--
ORDER BY AREASORTORDER, nome_progetto, PATRBF.CTV DESC

END











GO
/****** Object:  StoredProcedure [C6Mart].[PL_S43LineaSelfBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Mohammed, Ebid>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6Mart].[PL_S43LineaSelfBF]  '',''
CREATE procedure [C6Mart].[PL_S43LineaSelfBF] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 				 
		 dbo.ToShortDateString(datasott)  as DataSott,
		 CodInterno,
		 CodSottoprodotto
	FROM       
		C6Mart.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND isnull(ctv,0) < 0
END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_S43LineaSelfBF_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Mohammed, Ebid>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6Mart].[PL_S43LineaSelfBF]  '',''
CREATE procedure [C6Mart].[PL_S43LineaSelfBF_20181214_PreMioFoglio] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 				 
		 dbo.ToShortDateString(datasott)  as DataSott
	FROM       
		C6Mart.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND isnull(ctv,0) < 0
END




GO
/****** Object:  StoredProcedure [C6Mart].[PL_S47ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Gentilezza,,Marco>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[PL_S47ContoCorrenteBF] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.


	SELECT     
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDO as decimal(15,2)) as Controvalore,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6Mart.ANAG_CC	
	WHERE 
		ANAG_CC.rete= @Rete
		AND ANAG_CC.cod_fiscale= @CodiceFiscale
	ORDER BY
		ANAG_CC.SALDO DESC

		
END
GO
/****** Object:  StoredProcedure [C6Mart].[PL_S48DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:  Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- [C6Mart].[PL_S48DettaglioProdotti] 'f', 'BLLDRA53P28C894B'
CREATE procedure [C6Mart].[PL_S48DettaglioProdotti]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN
	
	SELECT  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE 
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
     RISCHIOPROD.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISCHIOPROD.CREDITRISK is NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MART.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6Mart.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6Mart.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6Mart.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S49PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Marco Gentilezza
-- Create date: 
-- Description:	
-- =============================================
CREATE procedure [C6Mart].[PL_S49PolizzeAltriIstituti] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

--SELECT     
--		PATRTERZI..INTERMEDIARIO,
--		dbo.toShortDateString(PATRTERZI.DATA_sottoscrizione) AS DataDiSottoscrizione,
--		dbo.toShortDateString(PATRTERZI.DATA_scadenza) AS DataDiScadenza,
--		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
--        C6Mart.ANAG_PRODOTTi.NOME_PRODOTTO as Descrizione,
--		NULL AS Aggiornamento, 
--		PATRTERZI.PREMIO AS PRESTAZIONEASSICURATA, 
--        PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
--        PATRTERZI.VERSATO_FP  AS AmmontareVersamento 
--		FROM         	
--			C6Mart.PATRIMONIO_TERZI PATRTERZI.
--		INNER JOIN ANAG_PRODOTTI_TERZI ANAGTERZI
--		ON 
--			C6Mart.ANAG_PRODOTTI_TERZI.COD_PRODOTTO = PATRTERZI.COD_PRODOTTO
--		
--		left JOIN 
--		C6Mart.Rischio_aggregato 
--		ON PATRTERZI.RETE = C6Mart.Rischio_aggregato.RETE
--		and c6mart.RISCHIO_AggrEGATO.cod_aggrEG ='COMPLESSIVO|TERZI|'  + PATRTERZI.COD_PRODOTTO
--		and PATRTERZI.cod_fiscale = C6Mart.Rischio_aggregato.cod_fiscale
--
--		where  PATRTERZI.RETE = @Rete
--			and PATRTERZI.COD_FISCALE = @CodiceFiscale
--			--and C6Mart.PATRIMONIO_BF.position_id =@PositionID
--			--AND coalesce(PATRTERZI.NUM_POLIZZA, '') <> ''
--			AND C6Mart.ANAG_PRODOTTI.DESCR_PRODOTTO = 'ASUL'
--
--
--		union
--

	SELECT     

		PATRTERZI.INTERMEDIARIO AS INTERMEDIARIO,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PRESTAZIONEASSICURATA, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM C6Mart.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6Mart.ANAG_PRODOTTI_TERZI ANAGTERZI
	ON 
		PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
		AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S50FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S50FondiAltriIstituti] 'F','BLLDRA53P28C894B'
CREATE procedure [C6Mart].[PL_S50FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DATASOTTOSCRIZIONE,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6Mart.PATRIMONIO_TERZI PATRTERZI
		INNER JOIN 
			C6Mart.ANAG_PRODOTTI_terzi ANAGPRODTERZI
    		ON 
				PATRTERZI.cod_prodotto_terzi=ANAGPRODTERZI.cod_prodotto_terzi
				--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
				AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
		LEFT OUTER JOIN 
			C6Mart.RISCHIO_AGGREGATO RISCHIOPROD
    		ON 
				PATRTERZI.RETE = RISCHIOPROD.RETE
				AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
				AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
		LEFT OUTER JOIN 
			C6Mart.RISCHIO_AGGREGATO RISCHIOAGGR
    		ON 
				PATRTERZI.RETE = RISCHIOAGGR.RETE
				AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
				AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S51ContoCorrenteAI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S51ContoCorrenteAI]  'F', 'SMPSMN76C26L157Y'
CREATE procedure [C6Mart].[PL_S51ContoCorrenteAI] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     
		CCTerzi.INTERMEDIARIO,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6Mart.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale

END



GO
/****** Object:  StoredProcedure [C6Mart].[PL_S56PatrimonioBFAreeBisogno]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[PL_S56PatrimonioBFAreeBisogno] 'F','TNNLGU58R01B259Y'
CREATE procedure [C6Mart].[PL_S56PatrimonioBFAreeBisogno]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	SELECT		
		AREA_BISOGNO.ID_AREA AS NeedArea,
		AREA_BISOGNO.NOME_AREA AS AreaName,
		COALESCE(PIRAMIDE_VERT.CTV_AREA, 0.00) AS ControValore,
		COALESCE(
			CAST(100*(PIRAMIDE_VERT.CTV_AREA / 
			SUM(COALESCE(PIRAMIDE_VERT.CTV_AREA,0)) OVER (PARTITION BY PIRAMIDE_VERT.RETE, PIRAMIDE_VERT.COD_FISCALE)) AS DECIMAL(5,2))
			, 0.00) AS Peso,
		COALESCE(RISCHIO_AGGREGATO.VAR_PERC_PTF, 0.00) AS Var_NeedArea,
		NULL AS Var_NeedAreaString,
		COALESCE(RISCHIO_AGGREGATO.COPERTURA, 0) AS Copertura_NeedArea,
		CASE 
			WHEN RISCHIO_AGGREGATO.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIO_AGGREGATO.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS Copertura_NeedAreaString,
		NULL AS RischioRelativo, -- TODO: CHIEDERE
		NULL AS Nota, -- TODO: CHIEDERE
		SUM(COALESCE(PIRAMIDE_VERT.CTV_AREA,0)) OVER (PARTITION BY 'Totale') AS Somma_Controval,
		RISCHIO_TOTALE.VAR_PERC_PTF AS Var_tot,
		RISCHIO_TOTALE.COPERTURA AS Copertura_tot,
		CASE 
			WHEN RISCHIO_TOTALE.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIO_TOTALE.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS Copertura_totString
	FROM C6MART.AREA_BISOGNO
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
		SELECT RETE, COD_FISCALE, LEFT(ID_AREA,3) AS ID_AREA, SUM(COALESCE(CTV_AREA,0)) AS CTV_AREA
		FROM C6MART.PIRAMIDE_VERT 
		WHERE PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
		GROUP BY RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT ON PIRAMIDE_VERT.ID_AREA = AREA_BISOGNO.ID_AREA
--	LEFT JOIN C6MART.PIRAMIDE_VERT
--		ON LEFT(PIRAMIDE_VERT.ID_AREA,3) = AREA_BISOGNO.ID_AREA
--		AND PIRAMIDE_VERT.RETE = @Rete
--		AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
	LEFT JOIN C6MART.RISCHIO_AGGREGATO 
		ON RISCHIO_AGGREGATO.COD_AGGREG = 'PIRAMIDE|' + LEFT(AREA_BISOGNO.ID_AREA,3)
		AND RISCHIO_AGGREGATO.RETE = @Rete
		AND RISCHIO_AGGREGATO.COD_FISCALE = @CodiceFiscale
	LEFT JOIN C6MART.RISCHIO_AGGREGATO AS RISCHIO_TOTALE
		ON RISCHIO_TOTALE.COD_AGGREG = 'PIRAMIDE'
		AND RISCHIO_TOTALE.RETE = @Rete
		AND RISCHIO_TOTALE.COD_FISCALE = @CodiceFiscale
	WHERE  AREA_BISOGNO.ORDINAMENTO < 6 
	ORDER BY AREA_BISOGNO.ORDINAMENTO

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S57ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure



-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].PL_S57ConfrontoPiramidi 'F','BCCPRZ62A58G713Y'
-- CHIEDERE A FABRIZIO, case @TOTControvaloreModello when 0 ....
CREATE procedure [C6Mart].[PL_S57ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

--	DECLARE @minGradoCoperura AS INT
--	SET @minGradoCoperura = CAST(dbo.getParametro('MINGRADOCOPERTURA') AS INT)
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
    (SELECT PIRAMIDE_MOD.RETE, 
	     	PIRAMIDE_MOD.COD_FISCALE, 	
		    PIRAMIDE_MOD.ID_AREA,
		    SUM(PIRAMIDE_MOD.PERC_AREA) AS PERC_AREA
     FROM C6MART.PIRAMIDE_MOD
     WHERE 
        PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC', 'INV' )
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
     GROUP BY PIRAMIDE_MOD.RETE, 
	       PIRAMIDE_MOD.COD_FISCALE, 	
		   PIRAMIDE_MOD.ID_AREA) AS PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
		SELECT 
		RETE, 
		COD_FISCALE, 
		LEFT(ID_AREA,3) AS ID_AREA, 
		SUM(COALESCE(CTV,0)) AS CTV_AREA		
		FROM 
			C6MART.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (
                PIRAMIDE_MOD.ID_AREA = 'INV' 
   --             AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL
                ))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale

	IF(@@ROWCOUNT>0)

		BEGIN

			-- Ordinamento per Area di bisogno
			DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

			SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')

				
			--V 
			DECLARE @TOTCC DECIMAL (20,2)
			SELECT @TOTCC = ISNULL(CONTROVALORE,0)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'Cc'

			--V 
--			DECLARE @TOTNA DECIMAL (20,2)
--			SELECT @TOTCC = ISNULL(CONTROVALORE,0)
--			FROM #PIRAMIDE_VERT ATTUALE
--			WHERE ATTUALE.RETE = @Rete
--				AND ATTUALE.COD_FISCALE = @CodiceFiscale
--				AND ID_AREA = 'Na'

			--V 
			DECLARE @TOT DECIMAL (20,2)
			SELECT @TOT = SUM(ISNULL(CONTROVALORE,0))
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
				

			SELECT 
				AREA_BISOGNO.ID_AREA AS NeedArea,
				AREA_BISOGNO.NOME_AREA AS AreaName,
				ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
				CASE 
					WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
				END AS PercentualeAttuale,
				ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
				ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
				ATTUALE.PERC_AREA AS Totale_Percentuale,
				ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
				-- V D S
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
				--
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
				CASE
					WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS var_needareaString,
				ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
				CASE 
					WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS copertura_needareaString,
				0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
				ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
				ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
				0.00 AS somma_percentualeAttuale,
				0.00 AS somma_percentualeModello,
				--V
				CASE
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					--V SOLO CC -> VAR = 0
					WHEN @TOTCC = @TOT THEN NULL
					WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE.COPERTURA = 0 THEN 'n.c.' 
					
					
					ELSE NULL 
				END AS var_totString,
				--V

				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0
					WHEN @TOTCC = @TOT THEN NULL
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					ELSE NULL
				END AS var_tot_pirString,
				--
				ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
				CASE 
					WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS copertura_totString,
				--V
				ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
				CASE 
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS copertura_tot_pirString,
				--
			--V
			CASE 
				WHEN @TOTCC = @TOT THEN 0
				ELSE RISCHIORISFIN.VAR_PERC_PTF
			END AS VAR_RISFIN,
			CASE
				WHEN @TOTCC = @TOT THEN NULL 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			
				AREA_BISOGNO.ORDINAMENTO AS ordinamento
			FROM C6MART.AREA_BISOGNO
			LEFT JOIN #PIRAMIDE_VERT ATTUALE 
				ON ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
			LEFT JOIN C6Mart.RISCHIO_AGGREGATO RISCHIOAREA
				ON RISCHIOAREA.RETE = ATTUALE.RETE
					AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND

--[C6Mart].PL_S57ConfrontoPiramidi 'F','CVNPLA52D15H223S'
    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
			LEFT JOIN C6Mart.RISCHIO_AGGREGATO RISCHIOTOTALE
				ON RISCHIOTOTALE.RETE = ATTUALE.RETE
					AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
					AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'
			-- V
			LEFT JOIN
				C6Mart.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
				ON 
					RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
					AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
					AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'
		LEFT JOIN 
			C6Mart.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--              
			--WHERE AREA_BISOGNO.ORDINAMENTO < 6
			ORDER BY AREA_BISOGNO.ORDINAMENTO

		END

	ELSE

		SELECT * FROM #PIRAMIDE_VERT	

		DROP TABLE #PIRAMIDE_VERT

END















GO
/****** Object:  StoredProcedure [C6Mart].[PL_S6PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6Mart].[PL_S6PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
CREATE procedure [C6Mart].[PL_S6PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from

	DECLARE @NOMERETE VARCHAR(20)

	IF @Rete = 'F'
		SET @NOMERETE = 'Banca Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			@NOMERETE AS Banca,
			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				@NOMERETE AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
			FROM C6Mart.PATRIMONIO_BF patrBF
			/*LEFT JOIN C6Mart.ClientiConCCNegativo CCNegativo
				ON PATRBF.RETE = CCNegativo.Rete
				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
				AND PATRBF.TIPO_PRODOTTO = 'CC'*/


			WHERE 1 = 1
				AND patrBF.Rete = @Rete
				AND patrBF.Cod_Fiscale = @CodiceFiscale
				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
				AND patrBF.CTV > = 0
				and patrBF.id_area  <> 'cc' --essendo in liquidità ci sono solo i negativi

			UNION ALL

			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
			FROM C6Mart.PATRIMONIO_TERZI patrTerzi
			WHERE 1 = 1
				AND patrTerzi.Rete = @Rete
				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
			GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	
	ORDER BY Ordine

END



















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S6PatrimonioFinanziario]    Script Date: 08/02/2022 16:56:07 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure


---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----  [C6Mart].[PL_S6PatrimonioFinanziario] 'S','LCRGPR67H19Z326U'
--ALTER procedure [C6Mart].[PL_S6PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from

--	DECLARE @NOMERETE VARCHAR(20)

--	IF @Rete = 'F'
--		SET @NOMERETE = 'Banca Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT 
--		Intermediario,
--		Ordine,
--		Banca,
--		Controvalore,
--		Percentuale
--	FROM 
--	(
--		SELECT DISTINCT
--			Intermediario,
--			Ordine,
--			@NOMERETE AS Banca,
--			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
--			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
--			(
--				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
--				(SUM(ctv) over (partition by 'Totale'))
--			) * 100 AS PERCENTUALE
--		FROM 
--		(
--			SELECT 
--				@NOMERETE AS Intermediario,
--				SUM(ROUND(CTV,2)) AS ctv,
--				1 AS ordine
--			FROM C6Mart.PATRIMONIO_BF patrBF
--			/*LEFT JOIN C6Mart.ClientiConCCNegativo CCNegativo
--				ON PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--				AND PATRBF.TIPO_PRODOTTO = 'CC'*/


--			WHERE 1 = 1
--				AND patrBF.Rete = @Rete
--				AND patrBF.Cod_Fiscale = @CodiceFiscale
--				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
--				AND patrBF.CTV > = 0
--				and patrBF.id_area  <> 'cc' --essendo in liquidità ci sono solo i negativi

--			UNION ALL

--			SELECT 
--				Intermediario, 
--				SUM(ROUND(CTV,2)) AS ctv,
--				2 AS ordine
--			FROM C6Mart.PATRIMONIO_TERZI patrTerzi
--			WHERE 1 = 1
--				AND patrTerzi.Rete = @Rete
--				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
--			GROUP BY patrTerzi.Intermediario

--		) PATR

--	) A
--	WHERE CONTROVALORE IS NOT NULL
	
--	ORDER BY Ordine

--END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_S75GradoCopertura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y'
CREATE procedure [C6Mart].[PL_S75GradoCopertura]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	DECLARE @varCompl		decimal(15,3)
	DECLARE @coperturaCompl	decimal(15,3)
	DECLARE @ctvCompl		decimal(15,3)
	DECLARE @saldoCC		decimal(15,3)

	--CALCOLO PATRIMONI E ESTRAZIONE VAR	
	SELECT 
		@Rete AS Rete,
		@CodiceFiscale as CodiceFiscale,
		CASE @Rete      
			WHEN 'F' THEN 'Patrimonio Banca Fideuram'
			WHEN 'S' THEN 'Patrimonio Sanpaolo Invest' 
			ELSE 'Patrimonio IW Private Inv.'
		END AS NomePatrimonio,
--		MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
--		MAX(patrBF.ContoCorrente) AS ControvaloreCC,
--		MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
--		MAX(RISCHIO.COPERTURA) AS Copertura,
		patrBF.PatrimonioSenzaCC AS Controvalore,
		--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
		patrBF.ContoCorrente AS ControvaloreCC,
		RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
		RISCHIO.COPERTURA AS Copertura,
		1 AS ORDINE INTO #TEMP75

	FROM C6Mart.vPatrimoniobfAggregato patrBF
	LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
		ON RISCHIO.RETE = patrBF.RETE
        AND RISCHIO.Cod_Fiscale = patrBF.Cod_Fiscale
		AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		--AND patrBF.PatrimonioSenzaCC > 0

	UNION ALL

	SELECT A.Rete,A.CodiceFiscale,A.NomePatrimonio,A.Controvalore,A.ControvaloreCC,A.VarPatrimonio,A.Copertura,A.ORDINE
	FROM(
		SELECT 
			@Rete AS Rete,
			@CodiceFiscale as CodiceFiscale,
			'Patrimonio altri Istituti' AS NomePatrimonio,
			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2))  AS Controvalore,
			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
			MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
			MAX(RISCHIO.COPERTURA) as Copertura,
			2 AS ORDINE
		FROM C6Mart.PATRIMONIO_TERZI patrTerzi
		LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
			ON RISCHIO.RETE = patrTerzi.RETE
			AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
			AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
		WHERE
			patrTerzi.Rete = @Rete
			AND patrTerzi.COD_FISCALE = @CodiceFiscale
	) A
	WHERE ISNULL(A.CONTROVALORE,0)>0
	
	-- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
	IF @@ROWCOUNT > 1
		BEGIN

			--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
			SELECT 
				@ctvCompl=SUM(patr.CONTROVALORE),
				@saldoCC=SUM(patr.CONTROVALORECC),
				@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
				@coperturaCompl=MAX(RISCHIO.COPERTURA)
			FROM #TEMP75 patr
			LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
				ON RISCHIO.RETE = patr.RETE
				AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
				AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
		
			--RESTITUISCO I PATRIMONI
			SELECT	
				ORDINE,
				NOMEPATRIMONIO,
				CONTROVALORE,
				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
				(CONTROVALORE/@CTVCompl)*100 as PERCENTUALE,
				VARPATRIMONIO AS VAR,
				COPERTURA,
--				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
--				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			FROM #TEMP75
			WHERE CONTROVALORE IS NOT NULL

			UNION ALL

			SELECT	
				3,
				'Patrimonio complessivo',
				@CTVCompl,
				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
				100.00 as percentuale,
				@varCompl,
				@coperturaCompl,
--				CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
--				CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
				CASE 
					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
					WHEN @coperturaCompl = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
					WHEN @coperturaCompl = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			ORDER BY 1
		END
	ELSE
		BEGIN
			--RESTITUISCO L'UNICO PATRIMONIO PRESENTE
			SELECT	
				NOMEPATRIMONIO,
				CONTROVALORE,
				CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
				100.00 as PERCENTUALE,
				VARPATRIMONIO AS VAR,
				COPERTURA,
--				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
--				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			FROM #TEMP75
			WHERE CONTROVALORE IS NOT NULL
		END
		
END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S75GradoCopertura]    Script Date: 08/02/2022 16:57:49 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
---- [C6Mart].[PL_S75GradoCopertura] 'F','SMPSMN76C26L157Y'
--ALTER procedure [C6Mart].[PL_S75GradoCopertura]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--	DECLARE @varCompl		decimal(15,3)
--	DECLARE @coperturaCompl	decimal(15,3)
--	DECLARE @ctvCompl		decimal(15,3)
--	DECLARE @saldoCC		decimal(15,3)

--	--CALCOLO PATRIMONI E ESTRAZIONE VAR	
--	SELECT 
--		@Rete AS Rete,
--		@CodiceFiscale as CodiceFiscale,
--		CASE @Rete      
--			WHEN 'F' THEN 'Patrimonio Banca Fideuram'
--			ELSE 'Patrimonio Sanpaolo Invest' 
--		END AS NomePatrimonio,
----		MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
----		MAX(patrBF.ContoCorrente) AS ControvaloreCC,
----		MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
----		MAX(RISCHIO.COPERTURA) AS Copertura,
--		patrBF.PatrimonioSenzaCC AS Controvalore,
--		--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
--		patrBF.ContoCorrente AS ControvaloreCC,
--		RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
--		RISCHIO.COPERTURA AS Copertura,
--		1 AS ORDINE INTO #TEMP75

--	FROM C6Mart.vPatrimoniobfAggregato patrBF
--	LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
--		ON RISCHIO.RETE = patrBF.RETE
--        AND RISCHIO.Cod_Fiscale = patrBF.Cod_Fiscale
--		AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
--	WHERE
--		patrBF.Rete = @Rete
--		AND patrBF.Cod_Fiscale = @CodiceFiscale
--		--AND patrBF.PatrimonioSenzaCC > 0

--	UNION ALL

--	SELECT A.Rete,A.CodiceFiscale,A.NomePatrimonio,A.Controvalore,A.ControvaloreCC,A.VarPatrimonio,A.Copertura,A.ORDINE
--	FROM(
--		SELECT 
--			@Rete AS Rete,
--			@CodiceFiscale as CodiceFiscale,
--			'Patrimonio altri Istituti' AS NomePatrimonio,
--			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2))  AS Controvalore,
--			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
--			MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
--			MAX(RISCHIO.COPERTURA) as Copertura,
--			2 AS ORDINE
--		FROM C6Mart.PATRIMONIO_TERZI patrTerzi
--		LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
--			ON RISCHIO.RETE = patrTerzi.RETE
--			AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
--			AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
--		WHERE
--			patrTerzi.Rete = @Rete
--			AND patrTerzi.COD_FISCALE = @CodiceFiscale
--	) A
--	WHERE ISNULL(A.CONTROVALORE,0)>0
	
--	-- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
--	IF @@ROWCOUNT > 1
--		BEGIN

--			--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
--			SELECT 
--				@ctvCompl=SUM(patr.CONTROVALORE),
--				@saldoCC=SUM(patr.CONTROVALORECC),
--				@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
--				@coperturaCompl=MAX(RISCHIO.COPERTURA)
--			FROM #TEMP75 patr
--			LEFT OUTER JOIN C6Mart.RISCHIO_AGGREGATO RISCHIO
--				ON RISCHIO.RETE = patr.RETE
--				AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
--				AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
		
--			--RESTITUISCO I PATRIMONI
--			SELECT	
--				ORDINE,
--				NOMEPATRIMONIO,
--				CONTROVALORE,
--				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
--				(CONTROVALORE/@CTVCompl)*100 as PERCENTUALE,
--				VARPATRIMONIO AS VAR,
--				COPERTURA,
----				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
----				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,

--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente

--			FROM #TEMP75
--			WHERE CONTROVALORE IS NOT NULL

--			UNION ALL

--			SELECT	
--				3,
--				'Patrimonio complessivo',
--				@CTVCompl,
--				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
--				100.00 as percentuale,
--				@varCompl,
--				@coperturaCompl,
----				CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
----				CASE @coperturaCompl WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
--				CASE 
--					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
--					WHEN @coperturaCompl = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
--					WHEN @coperturaCompl = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,

--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente

--			ORDER BY 1
--		END
--	ELSE
--		BEGIN
--			--RESTITUISCO L'UNICO PATRIMONIO PRESENTE
--			SELECT	
--				NOMEPATRIMONIO,
--				CONTROVALORE,
--				CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
--				100.00 as PERCENTUALE,
--				VARPATRIMONIO AS VAR,
--				COPERTURA,
----				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS varString,
----				CASE COPERTURA WHEN 0 THEN 'n.c.' ELSE NULL END AS coperturaString
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,

--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente

--			FROM #TEMP75
--			WHERE CONTROVALORE IS NOT NULL
--		END
		
--END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S76PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Luca De Lisio
-- Create date: 04/12/2008
-- Description: <Description,,>
-- =============================================
--[C6Mart].[PL_S76PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
CREATE procedure [C6Mart].[PL_S76PatrimonioNonRappresentabileAssettClass] 
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Banca Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MART.PATRIMONIO_BF PATRBF
	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL

	UNION ALL

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MART.PATRIMONIO_BF PATRBF
	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO 
	ORDER BY CONTROVALORE DESC
  
END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S76PatrimonioNonRappresentabileAssettClass]    Script Date: 08/02/2022 17:04:40 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		Luca De Lisio
---- Create date: 04/12/2008
---- Description: <Description,,>
---- =============================================
----[C6Mart].[PL_S76PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
--ALTER procedure [C6Mart].[PL_S76PatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Banca Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MART.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC 
--		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL

--	UNION ALL

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		SUM(ASUL.CTV) as Controvalore,
--		MAX(PATRBF.CTV) as controvalore_contratto,
--		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MART.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MART.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN C6MART.DETTAGLIO_ASUL ASUL
--		ON PATRBF.RETE = ASUL.RETE
--		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN C6MART.ASSET_PERC ASSETPERC
--		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--        GROUP BY 
--        PATRBF.ID_CONTRATTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO 
--	ORDER BY CONTROVALORE DESC
  
--END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S95ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S95ProfiloDiRischio] 'F','BBBPSN44E20B041U'
CREATE procedure [C6Mart].[PL_S95ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6Mart.MIFID AS M
		INNER JOIN C6Mart.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskClass,
        @experience as experince

END


GO
/****** Object:  StoredProcedure [C6Mart].[PL_S96RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6Mart].[PL_S96RischiomercatoRischiocredito] 'S','92004630635'
CREATE procedure [C6Mart].[PL_S96RischiomercatoRischiocredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,

	--V La copertura viene valorizzata con un valore da 0 da 100
	    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
	--    	CASE 
	--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	--		ELSE NULL 
	--	END AS COVERAGESTRING,
	NULL AS COVERAGESTRING,


    M.RISKCLASS AS RISKCLASSMAX,
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )*100 AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' THEN 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6mart.patrimonio_bf  PATRBF,C6Mart.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' THEN 'Patrimonio IW Private Inv.' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6mart.PATRIMONIO_TERZI  TERZI,C6Mart.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6mart.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6mart.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6mart.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6mart.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Banca Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		  WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6mart.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6mart.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6mart.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6mart.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6mart.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6mart.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6Mart].[PL_S96RischiomercatoRischiocredito]    Script Date: 08/02/2022 17:07:22 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- =============================================
---- Author:		<Alessandro Tringali>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
-- --[C6Mart].[PL_S96RischiomercatoRischiocredito] 'S','92004630635'
--ALTER procedure [C6Mart].[PL_S96RischiomercatoRischiocredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;
 
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    PATRBF.INSTITUTENAME,
--    CTV,
--    M.PROFILO_ASS AS CODICEPROFILO,
--    CR.MAX_VAR AS  VARMAX,
--    RISK_AGG.VAR_PERC_PTF AS VAR ,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END  AS VARSTRING,
--    RISK_AGG.CREDITRISK  RISKCLASS,
--        	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END AS  RISKCLASSSTRING,

--	--V La copertura viene valorizzata con un valore da 0 da 100
--	    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--	--    	CASE 
--	--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	--		ELSE NULL 
--	--	END AS COVERAGESTRING,
--	NULL AS COVERAGESTRING,


--    M.RISKCLASS AS RISKCLASSMAX,
--    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )*100 AS PERCENTAGE,
--	--V
--	ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV,
--	--V
--	1 as ORDINE,
--	RISK_AGG.Ully_perc
--    from
--    c6mart.patrimonio_bf  PATRBF,C6Mart.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and PATRBF.rete= RISK_AGG.rete    
--    and PATRBF.cod_fiscale = @codiceFiscale
--    and PATRBF.rete= @rete
--    and PATRBF.CTV > 0
--    and
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--	RISK_AGG.Ully_perc,   
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    'Patrimonio altri Istituti' AS INSTITUTENAME,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV,
--	--V
--	2 as ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    c6mart.PATRIMONIO_TERZI  TERZI,C6Mart.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and TERZI.rete= RISK_AGG.rete 
--    and TERZI.cod_fiscale =@codiceFiscale
--    and TERZI.rete=@rete
--    and TERZI.CTV > 0
--    and
--    (
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )    
--    GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    RISK_AGG.Ully_perc

--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6mart.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6mart.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6mart.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6mart.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    AND 
--    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Banca Fideuram' 
--          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
--          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    UNION ALL
    
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    'Patrimonio Complessivo' AS INSTITUTENAME,
--    SUM(CTV),
--    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
--    MAX(CR.MAX_VAR) AS  VARMAX,
--    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
--    MAX(	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS VARSTRING,
--    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
--    MAX(
--         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END )
--      AS  RISKCLASSSTRING,
--    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
--    MAX(   	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS COVERAGESTRING,
--    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
--	MAX(M.RISKCLASS) AS RISKCLASSMAX,
--    100 AS PERCENTAGE,
--	--V
--	3 AS ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    c6mart.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and PATRBF.CTV > 0    
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE

--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV
--    FROM
--    c6mart.PATRIMONIO_TERZI  TERZI
--        where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and TERZI.CTV > 0       
--     GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE

--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6mart.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6mart.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6mart.CODIFICA_CREDITRISK  CK
--    ON 
--      M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6mart.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--        where  
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    RISK_AGG.Ully_perc

--	--V
--	order by ordine

--END

GO
/****** Object:  StoredProcedure [C6Mart].[PL_S96RischiomercatoRischiocredito_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6Mart].[PL_S96RischiomercatoRischiocredito] 'F','BRNDRA65B04B300I'
CREATE procedure [C6Mart].[PL_S96RischiomercatoRischiocredito_old]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--V VARIABILI DI APPOGGIO PER LA VERIFICA SE IL CLIENTE HA SOLO CC
	DECLARE @ESISTECC INT
	DECLARE @NUMPOSIZIONI INT

	SELECT @ESISTECC = COUNT(DISTINCT COD_FISCALE) 
	FROM C6MART.PATRIMONIO_BF
	WHERE ID_AREA = 'CC'
	AND COD_FISCALE = @CodiceFiscale
	GROUP BY ID_AREA

	SELECT @NUMPOSIZIONI = COUNT(*) 
	FROM C6MART.PATRIMONIO_BF
	WHERE ID_AREA <> 'CC'
	AND COD_FISCALE = @CodiceFiscale

    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,

	CASE WHEN (@ESISTECC - @NUMPOSIZIONI) > 0 and institutename in ('Patrimonio Banca Fideuram','Patrimonio Sanpaolo Invest') THEN 0
		ELSE RISK_AGG.VAR_PERC_PTF
	END AS VAR ,

    	CASE
		WHEN (@ESISTECC - @NUMPOSIZIONI) > 0 THEN NULL 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        CASE
		WHEN (@ESISTECC - @NUMPOSIZIONI) > 0 THEN 'n.a.'
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
	CASE 
		WHEN (@ESISTECC - @NUMPOSIZIONI) > 0 THEN 100
		ELSE ISNULL(RISK_AGG.COPERTURA,0.00) 
	END AS COVERAGE,
    	CASE 
		WHEN (@ESISTECC - @NUMPOSIZIONI) > 0 THEN NULL
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )*100 AS PERCENTAGE,
	ORDINE
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	1 as ORDINE
    from
    c6mart.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = @codiceFiscale
    and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    --SUM(TERZI.CTV) AS CTV,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	2 as ORDINE
    FROM
    C6MART.PATRIMONIO_TERZI  TERZI
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    C6Mart.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN C6Mart.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6mart.CODIFICA_CREDITRISK  CK
    ON 
-- tringali
    M.riskclass=CK.PROFILO
   -- M.PROFILO_ASS=CK.PROFILO
    LEFT OUTER JOIN 
    c6mart.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Banca Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    --SUM(CTV),
    SUM(ROUND(CTV,2)),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	3 AS ORDINE
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6mart.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    --SUM(TERZI.CTV) AS CTV
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    C6MART.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    C6Mart.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN C6Mart.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6mart.CODIFICA_CREDITRISK  CK
    ON 
-- tringali 
    M.riskclass=CK.PROFILO
   -- M.PROFILO_ASS=CK.PROFILO
    LEFT OUTER JOIN 
    c6mart.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

	--V
	order by ordine
END






GO
/****** Object:  StoredProcedure [C6Mart].[PL_SavingMap]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_SavingMap] 'S','BCCNCL47B10H769B','507112FO702'                 --'000001VP001'
create procedure [C6Mart].[PL_SavingMap]
	
	@rete varchar(1),
	@codfis varchar(16),
	@codConf varchar(11)

	
AS

BEGIN

	declare @ris as int
	declare @ritorno as int
	
	-- viene passato il contratto di un foglio: verifico se su questo è attivo saving map L'informazione è contenuta nella colonna MAF del cc

	select @ritorno = (select count(*) from c6mart.patrimonio_bf where
			cod_fiscale = @codfis and rete = @rete and cod_maf =  @codConf )
	

	select @ritorno
    

END
GO
/****** Object:  StoredProcedure [C6Mart].[Popola_S133_S157DatiPiramide]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
  
  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
  
CREATE procedure [C6Mart].[Popola_S133_S157DatiPiramide]                                                                              
AS                                                                                                                                                
BEGIN                                                                                                                                             
                                                                                                                                           
 SELECT                                                                                                                                    
  PIRAMIDE_MOD.RETE,                                                                                                                
  PIRAMIDE_MOD.COD_FISCALE,                                                                                                    
  PIRAMIDE_MOD.ID_AREA,                                                                                                             
  PIRAMIDE_MOD.PERC_AREA,                                                                                                           
  PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                            
 INTO #PIRAMIDE_VERT_TEMP                                                                                                                       
 FROM                                                                                                                                      
  C6Mart.PIRAMIDE_MOD                                                                                                      
 LEFT JOIN (                                                                                                                               
  -- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                          
     SELECT                                                                                                                                
   RETE,                                                                                                                     
   COD_FISCALE,                                                                                                              
--   LEFT(ID_AREA,3) AS ID_AREA,                                                                                               
  CASE                                                                                                                              
   WHEN ID_AREA = 'SELF'                                                                                                     
   THEN LEFT(ID_AREA,4)                                                                                                      
   ELSE LEFT(ID_AREA,3)                                                                                                      
   END AS ID_AREA,                                                                                                           
   SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                          
  FROM                                                                                                                              
   C6MART.PATRIMONIO_BF  PIRAMIDE_VERT                                                                              
   GROUP BY                                                                                                                  
   RETE, COD_FISCALE,                                                                                             
   CASE                          
   WHEN ID_AREA = 'SELF'                                                                                                     
   THEN LEFT(ID_AREA,4)                                                                                                      
   ELSE LEFT(ID_AREA,3)                                                                                                      
   END                                                                                                                       
 ) PIRAMIDE_VERT                                                                                                                           
  ON                                                                                                                                
   PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                              
      and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                          
   and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                                
 WHERE                                                                                                                                     
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                    
  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF','INV')                                                              
   --OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL) /* 20161202 nome_progetto sempre diverso da null */  
  )    
                                                 
/* 20161214 - aggiunto aggragazione percentuali per area */  
 SELECT                                                                                                                                    
  RETE,                                                                                                                
  COD_FISCALE,                                                                                                    
  ID_AREA,                                                                                                             
  sum(PERC_AREA) as PERC_AREA,                                                                                                           
  CONTROVALORE                                                                                            
 INTO #PIRAMIDE_VERT                                                                                                            
 FROM                                                                                                                                      
  #PIRAMIDE_VERT_TEMP  
 group by rete,cod_fiscale, id_area, CONTROVALORE                                                                                                                                    
                                                                                                                                                  
                                                                                                                                          
                                                                                                                                    
truncate table  c6mart.TB_S133_S157DatiPiramide                                                             
insert into c6mart.TB_S133_S157DatiPiramide                                                                                       
  SELECT    distinct  /* 20161202 */                                                                                                                        
  ATTUALE.RETE,                                                                                                                     
  ATTUALE.COD_FISCALE,                                                                                                              
   AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                         
   AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                       
   ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                        
   ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                        
   ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                           
   ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                          
   ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                  
   ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                            
   0 differenzapercentuale,                                                                                                  
   ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,                                                     
   CASE                                                                                                                      
    WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                    
    WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                        
--------------------------------------------------------------                                                                                    
--INIZIO INTERVENTI OMNIA QUIII                                                                                              
                                                                                                                      
    --WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                     
--FINE INTERVENTI OMNIA QUIII                                                                                                                     
--------------------------------------------------------------             
    ELSE NULL                                                                                                         
   END AS var_needareaString,                                                                                                
   ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                    
   CASE                                                                                                                      
    WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                    
    WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                        
    ELSE NULL                                                                                                         
   END AS copertura_needareaString,                                                                                          
   0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                          
   0 somma_controvalAttuale,                                                                                                 
   0 somma_controvalModello,                                                                                                 
   0.00 AS somma_percentualeAttuale,                                                                                         
   0.00 AS somma_percentualeModello,                                       
   RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                       
    null var_totString,                                                                                               
    RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                       
    CASE                                                                                                              
     --V SOLO CC -> VAR = 0                                                                                   
                                                                                                                                                  
     WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'  
     WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                            
     ELSE NULL                                                                                                 
                                                                                                               
    END AS var_tot_pirString,           
                                                                                                                             
                                                                                                                             
   ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                       
   CASE                                                                                                                      
    WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                  
    WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                      
    ELSE NULL                                                                                                         
   END AS copertura_totString,                                                                                               
   --V                                                                                                                       
   ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                               
   CASE                                                                                                                      
    WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                              
    WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                  
   END AS copertura_tot_pirString,                                                                                           
   --                                                                                                                        
   --V                                                                                                                       
   RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                                 
   CASE                                                                                                                      
    WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                  
    WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                      
    ELSE NULL                                                                                                         
   END AS VAR_RISFINSTRING,                                                                                                  
              
   ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                    
   CASE                                                                                                                      
    WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                  
    WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                      
    ELSE NULL                                                                                                         
   END AS copertura_risfinString,                                                                                            
                                                                                                                             
                                                                                                                                                  
   AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                   
                                                                                                                                                  
  FROM                                                                                                                              
   c6mart.AREA_BISOGNO                                                                                              
  LEFT JOIN                                                                                                                         
   #PIRAMIDE_VERT ATTUALE                                                                                                    
   ON                                                                                                                        
    ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                            
  LEFT JOIN                                                                                                                         
   c6mart.RISCHIO_AGGREGATO RISCHIOAREA                                                                             
   ON                                                                                                                        
    RISCHIOAREA.RETE = ATTUALE.RETE                                                                                   
    AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                                 
     AND                                                                                                       
                   RISCHIOAREA.COD_AGGREG = (                                                                                                     
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                   
     THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                                
       WHEN ATTUALE.ID_AREA = 'NA'                                                                                    
     THEN 'RISFIN|NA'                                                                                          
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                    
     THEN 'COMPLESSIVO|BF|CC'                                                                                  
       WHEN ATTUALE.ID_AREA = 'Self'                                                                                  
      THEN 'COMPLESSIVO|BF|SELF'                                                                        
                   END                         
                   )                                                                                                                              
  LEFT JOIN                                                                                                                         
   c6mart.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                           
   ON                                                                                                                        
    RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                                 
    AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
    AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                   
                                                                                                                                                  
  --V                                                                                                                               
  LEFT JOIN                                                                                                                         
   c6mart.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                       
   ON                                                                                                                        
    RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                             
    AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                           
    AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                              
                                                                                                                                                  
  LEFT JOIN                                                                                                                         
   c6mart.RISCHIO_AGGREGATO RISCHIORISFIN                                                                           
   ON                                                                                                                        
    RISCHIORISFIN.RETE = ATTUALE.RETE                                                                                 
    AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
    AND RISCHIORISFIN.COD_AGGREG = 'RISFIN|PIRAMIDE'       --Per Aladdin è stato aggiunto il tag |PIRAMIDE                                                                    
  --                                                                                                                                
  /*WHERE                                                                                                                           
   AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                            
                                                                                                                             
  WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                                 
                                                                                                                                          
------------------------------------------------------------------                                                                           
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE) TotControvalore                                                                           
into #temp                                  
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                       
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                          
group by rete,cod_fiscale                                                                                                                         
  
                                                                                                                                                 
update s157                                                                                                                                       
set s157.PercentualeAttuale =CASE                                                                                                                 
  WHEN vert.TotControvalore = 0 THEN 0                                                                                              
  ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                             
  END,                                                                                                                              
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                             
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),         
s157.DifferenzaPercentuale = CASE                                                                                                                 
   WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                              
    ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)    
   END ,                                                                                                                     
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                                
s157.somma_controvalModello=vert.TotControvalore                                                                                                  
                                                                                                                             
from c6mart.TB_S133_S157DatiPiramide s157                                                                                                
inner join #temp vert                                                                                                                             
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                  
                                                                                                                                           
                                                                       
                                                                                                                                                  
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT  
 into #TempContatori  
 FROM c6mart.PATRIMONIO_BF  
union  
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF  
 FROM c6mart.PATRIMONIO_BF  
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')  
union  
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF  
 FROM c6mart.PATRIMONIO_BF  
 where ISIN  in ('EURO00000009','EURO10000007')  
union  
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ  
 FROM c6mart.PATRIMONIO_BF  
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'  
union  
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ  
 FROM c6mart.PATRIMONIO_BF  
 where ID_AREA = 'LIQ'  
   
   
   
 select   
 totale1.rete,  
 totale1.cod_fiscale,  
 ISNULL(totale1.TOT,0) as TOT,  
 ISNULL(totale2.TOT,0) as TOTCCSELF,  
 ISNULL(totale3.TOT,0) as TOTSELF,   
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,  
 ISNULL(totale5.TOT,0) as TOTLIQ   
  
  
 into #Contatori  
 from   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOT') as totale1  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTCCSELF') as totale2  
 on  totale1.rete=totale2.rete  
 and totale1.cod_fiscale=totale2.cod_fiscale  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTSELF') as totale3  
 on  totale1.rete=totale3.rete  
 and totale1.cod_fiscale=totale3.cod_fiscale  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTSELFLIQ') as totale4  
 on  totale1.rete=totale4.rete  
 and totale1.cod_fiscale=totale4.cod_fiscale  
  left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTLIQ') as totale5  
 on  totale1.rete=totale5.rete  
 and totale1.cod_fiscale=totale5.cod_fiscale  
  
  
  
                                                                                                                                                  
update s157                    
set    
var_needareaString= CASE  
     WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.'     
     ELSE var_needareaString    
     END,  
var_tot =     CASE  
     WHEN TOTCCSELF = TOT THEN 0.00  
     ELSE var_tot  
     END ,   
var_totString=CASE   
     WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'  
     WHEN (TOTSELF = TOT) THEN 'n.c.'   
     ELSE NULL   
    END    ,    
    
     
var_tot_pir =CASE   
     WHEN TOTCCSELF = TOT THEN 0  
     ELSE var_tot_pir  
END ,  
var_tot_pirString=CASE  
     WHEN var_tot_pirString <> 'n.c.' THEN  
     CASE  
         WHEN TOTCCSELF = TOT THEN NULL  
         WHEN TOTSELF = TOT THEN 'n.c.'  
      ELSE var_tot_pirString  
        END  
     ELSE var_tot_pirString  
    END ,    
VAR_RISFINSTRING=CASE   
     WHEN VAR_RISFINSTRING <> 'n.c.' THEN  
     CASE  
      WHEN TOTCCSELF = TOT THEN NULL  
      ELSE VAR_RISFINSTRING  
     END  
     ELSE VAR_RISFINSTRING  
     END                                                                                                                           
from c6mart.TB_S133_S157DatiPiramide s157                                                                                                
inner join ( select * from #Contatori )  contatori                                                                                                  
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                  
--and codicefiscale='00247580970'                                                                                                      
                                                                                                                                                  
                                                                                                                                           
                                                                                                                                           
 Drop TABLE #temp                                                                                                                          
                                                                                                                                                  
 DROP TABLE #PIRAMIDE_VERT                                                                                                                 
                                                                                                                           
 drop table #Contatori          
   
    drop table #TempContatori                                                                                                          
                                                                                                                                                  
END                                                                                                                                               
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6Mart].[Popola_S148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
--[c6mart].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
CREATE procedure [C6Mart].[Popola_S148DistribuzioneAssetClass]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   
  
truncate table c6mart.TB_S148DistribuzioneAssetClass  
INSERT INTO c6mart.TB_S148DistribuzioneAssetClass  
--SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,  
--  CASE @Rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Banca Fideuram'   
--  END AS Banca,  
  select       rete,  
        cod_fiscale,  
        CASE rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'  
   ELSE 'IW Private Investments'
  END AS Banca,  
  ORDINAMENTO,  
  AssetClassId,  
  AssetClassName,  
  SUM(Controvalore) As Controvalore,  
        --SUM(CONTROVALORE) / Totale As Percentuale,  
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
        Totale  
FROM  
(  
  
  
SELECT  rete,  
        cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  
 FROM (  
          SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  
          FROM  
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
     FROM c6mart.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN c6mart.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
     WHERE  
--inizio interventi OMNIA  
--      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
--fine interventi OMNIA        
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
      --AND PATR_BF.COD_FISCALE= @CodiceFiscale  
                       -- AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM c6mart.DETTAGLIO_ASUL ASUL  
     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN c6mart.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM c6mart.PATRIMONIO_BF ASUL  
     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
     WHERE  
      --ASUL.RETE =@Rete  
      --AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
    ) val  
           where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  
  
 UNION ALL  
 /* nuovo */  
  SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  
          FROM  
  (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
     FROM c6mart.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN c6mart.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
     WHERE  
      PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')  
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
      --AND PATR_BF.COD_FISCALE=@CodiceFiscale  
                      --  AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM c6mart.DETTAGLIO_ASUL ASUL  
     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN c6mart.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM c6mart.PATRIMONIO_BF ASUL  
     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
     WHERE  
 --     ASUL.RETE =@Rete  
 --     AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
    ) val  
           where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  
  
  
    )  
  
 VALORIASSET  
 INNER JOIN c6mart.ASSETCLASS AS ASSETCLASS  
  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
-- WHERE  
--  VALORIASSET.RETE =@Rete  
--  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
) a  
Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale  
 ORDER BY ORDINAMENTO  
  
  
END  
  
  
  













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [c6mart].[Popola_S148DistribuzioneAssetClass]    Script Date: 10/02/2022 16:42:22 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
  
  
  
----[c6mart].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
--ALTER procedure [c6mart].[Popola_S148DistribuzioneAssetClass]  
-- -- Add the parameters for the stored procedure here  
---- @Rete char(1),   
---- @CodiceFiscale varchar(16)  
--AS  
--BEGIN   
  
--truncate table c6mart.TB_S148DistribuzioneAssetClass  
--INSERT INTO c6mart.TB_S148DistribuzioneAssetClass  
----SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,  
----  CASE @Rete  
----   WHEN 'S' THEN 'Sanpaolo Invest'  
----   ELSE 'Banca Fideuram'   
----  END AS Banca,  
--  select       rete,  
--        cod_fiscale,  
--        CASE rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Fideuram'   
--  END AS Banca,  
--  ORDINAMENTO,  
--  AssetClassId,  
--  AssetClassName,  
--  SUM(Controvalore) As Controvalore,  
--        --SUM(CONTROVALORE) / Totale As Percentuale,  
--        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
--        Totale  
--FROM  
--(  
  
  
--SELECT  rete,  
--        cod_fiscale,  
--  ASSETCLASS.ORDINAMENTO,  
--  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
--  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
--  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
--  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
--  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  
-- FROM (  
--          SELECT   
--          VAL.RETE,  
--          VAL.COD_FISCALE,  
--          SUM(CONTROVALORE) AS CONTROVALORE,  
--          ID_ASSETCLASS  
--          FROM  
--          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
--     SELECT  
--      PATR_BF.RETE,  
--      PATR_BF.COD_FISCALE,  
--      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
--      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
--     FROM c6mart.PATRIMONIO_BF AS PATR_BF  
--      INNER JOIN c6mart.ASSET_PERC AS ASSETPERC  
--       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--     WHERE  
----inizio interventi OMNIA  
----      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
--      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
----fine interventi OMNIA        
--      AND ASSETPERC.LIVELLO = 2  
--      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
--      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
--      --AND PATR_BF.COD_FISCALE= @CodiceFiscale  
--                       -- AND PATR_BF.RETE= @Rete  
----       
--    UNION ALL  
--    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
--    SELECT      PATR_BF.RETE,  
--       PATR_BF.COD_FISCALE,  
--                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM c6mart.DETTAGLIO_ASUL ASUL  
--     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
--      AND ASUL.COD_ISIN_SOTT = ''  
--      AND ASSETPERC.LIVELLO = 2  
--     INNER JOIN c6mart.PATRIMONIO_BF PATR_BF  
--      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
--      AND ASUL.RETE=PATR_BF.RETE  
--      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
--     WHERE  
--     --ASUL.RETE = @Rete  
--     --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
--     UNION ALL  
--     --DETTAGLIO ASUL  SKANDIA  
--     SELECT     ASUL.RETE,  
--       ASUL.COD_FISCALE,  
--       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM c6mart.PATRIMONIO_BF ASUL  
--     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
--      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
--      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
--      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
--      AND ASSETPERC.LIVELLO = 2  
--     WHERE  
--      --ASUL.RETE =@Rete  
--      --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
--       ASUL.tipo_Prodotto = 'ASU2'  
--      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
--    ) val  
--           where Controvalore >0  
--   GROUP BY   
--   VAL.RETE,  
--   val.COD_FISCALE,  
--   VAL.ID_ASSETCLASS  
  
-- UNION ALL  
-- /* nuovo */  
--  SELECT   
--          VAL.RETE,  
--          VAL.COD_FISCALE,  
--          SUM(CONTROVALORE) AS CONTROVALORE,  
--          ID_ASSETCLASS  
--          FROM  
--  (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
--     SELECT  
--      PATR_BF.RETE,  
--      PATR_BF.COD_FISCALE,  
--      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
--      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
--     FROM c6mart.PATRIMONIO_BF AS PATR_BF  
--      INNER JOIN c6mart.ASSET_PERC AS ASSETPERC  
--       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--     WHERE  
--      PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')  
--      AND ASSETPERC.LIVELLO = 2  
--      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
--      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
--      --AND PATR_BF.COD_FISCALE=@CodiceFiscale  
--                      --  AND PATR_BF.RETE= @Rete  
----       
--    UNION ALL  
--    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
--    SELECT      PATR_BF.RETE,  
--       PATR_BF.COD_FISCALE,  
--                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM c6mart.DETTAGLIO_ASUL ASUL  
--     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
--      AND ASUL.COD_ISIN_SOTT = ''  
--      AND ASSETPERC.LIVELLO = 2  
--     INNER JOIN c6mart.PATRIMONIO_BF PATR_BF  
--      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
--      AND ASUL.RETE=PATR_BF.RETE  
--      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
--     WHERE  
--     --ASUL.RETE = @Rete  
--     --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
--     UNION ALL  
--     --DETTAGLIO ASUL  SKANDIA  
--     SELECT     ASUL.RETE,  
--       ASUL.COD_FISCALE,  
--       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM c6mart.PATRIMONIO_BF ASUL  
--     INNER JOIN c6mart.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
--      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
--      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
--      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
--      AND ASSETPERC.LIVELLO = 2  
--     WHERE  
-- --     ASUL.RETE =@Rete  
-- --     AND ASUL.COD_FISCALE = @CodiceFiscale  
--      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
--       ASUL.tipo_Prodotto = 'ASU2'  
--      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
--    ) val  
--           where Controvalore >0  
--   GROUP BY   
--   VAL.RETE,  
--   val.COD_FISCALE,  
--   VAL.ID_ASSETCLASS  
  
  
--    )  
  
-- VALORIASSET  
-- INNER JOIN c6mart.ASSETCLASS AS ASSETCLASS  
--  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
---- WHERE  
----  VALORIASSET.RETE =@Rete  
----  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
--) a  
--Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale  
-- ORDER BY ORDINAMENTO  
  
  
--END  
  
  
  
GO
/****** Object:  StoredProcedure [C6Mart].[Popolamento_RP_W6DAILY]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[Popolamento_RP_W6DAILY]
	
AS
BEGIN
	
	SET NOCOUNT ON;

	--dichiaro variabile data di trimestrale
	DECLARE @dttrim int
	
	--valorizzo la data di trimestrale al giorno del congelamento
	set @dttrim  = CAST(CONVERT(varchar, CAST(getdate() as DATETIME),112) as int)
	--print @dttrim
	
	--Tronchiamo la tabella RP_vTuttiIPortafogli_Aladdin_tab e la ripopoliamo
	--a partire dalla vista RP_vTuttiIPortafogli_Aladdin

	Truncate table C6StampeCentralizzate.C6Mart.w6daily
	--
	insert into C6StampeCentralizzate.C6Mart.w6daily
		select 
		'G' as FLGCLI ,
		'M' as FLGBL ,
		'A' as TIPOELA,
		@dttrim as DTTRIM,
		rete,
		codfis,
		piva,
		codman,
		'' as CODFID,
		'' as CODAGE,
		CASE  
			--WHEN cod_interno <> 'SINT3MEUR' and famprodt = 'DT' THEN isnull(cod_interno,'')   
			WHEN ((cod_interno <> 'SINT3MEUR' and cod_interno <> 'SINT6MEUR') and famprodt = 'DT') THEN isnull(cod_interno,'')
			ELSE '' 
		END  as CODABI, 
		ISNULL(termid,00000000), 
		cast(annos as int) as anno ,
		cast(progs as int) as prog ,
		0 as quote,
		cast(ctvreale as float) as CTV,
		codconf, --17
		rubr,
		custgar,
		ISNULL(cod_interno,''),
		'' as codana,
		CASE  
			WHEN    cast(annos as int) <> 0 and cast(progs as int) <> 0 then 'S' 
			ELSE 'N' 
		END as FLAGPCT,
		--CASE  
		--	WHEN famprodt <> 'DT' and famprodt <> 'CC' THEN isnull(cod_interno,'')
		--	ELSE ''   
		--END 
		'' as codprod,
		ISNULL(cod_sottoprodotto,''),
		ISNULL(cod_isin,''),
		'' as codlinea,
		tipoptf,
		area,
		progetto,
		isnull(codprj,'') as codprj,
		ISNULL(chiave_prodotto_terzi,''),
		ISNULL(assetterzi,''),
		ISNULL(famprodt,''),
		ISNULL(intermediario,''),
		ISNULL(codiceadeguatezza,''),
		ISNULL(cod_maf,''),
		conto,
		numpolizza,
		position_id,
		'' as PREFSOST,
        '' as FLAGAMB,
        '' as FLAGSOC,
        '' as FLAGGOV
		from [C6StampeCentralizzate].[C6Mart].[RP_vTuttiIPortafogli_Aladdin]

	-- Aggiungiamo le informazioni mancanti per il codman piva_fiduciaria
	update C6StampeCentralizzate.C6Mart.w6daily
	set codprj = ''
	where codprj = 0

	select substring(b.codicefiscale,4,len(b.codicefiscale)) as codman,b.rete,b.pivafiduciaria into
	#tab
	from C6StampeCentralizzate.C6Mart.w6daily a
	inner join (select distinct rete,codicefiscale,pivafiduciaria from [C6StampeCentralizzate].[C6Staging].[SPB_CONTR_SINTESI] where pivafiduciaria is not null ) b
	on a.rete=b.rete and isnull(a.codman,'')=isnull(substring(b.codicefiscale,4,len(b.codicefiscale)),'')

	
	--select b.cod_mandato,b.rete,b.piva_fiduciaria into 
	--	#tab
	--	FROM 
	--		[C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] a
	--		inner join (select distinct rete,cod_mandato,piva_fiduciaria from [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI_V] where cod_mandato<>'') b
	--		on a.rete= b.rete and isnull(a.codman,'')=isnull(b.cod_mandato,'')

	update C6StampeCentralizzate.C6Mart.w6daily
	set piva = pivafiduciaria
	from  #tab tab
	inner join C6StampeCentralizzate.C6Mart.w6daily as a
	on a.rete= tab.rete and isnull(a.codman,'')=isnull(tab.codman,'')

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
	--	set piva = piva_fiduciaria
	--	from #tab tab
	--	inner join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] as a 
	--	on a.rete= tab.rete and isnull(a.codman,'')=isnull(tab.cod_mandato,'')

	update C6StampeCentralizzate.C6Mart.w6daily
	set codage = isnull(appo.CODAGENTE,'')
	from C6StampeCentralizzate.C6Mart.w6daily w
	left join (select distinct [RETE],[CODAGENTE],[CODICEFISCALE],[PIVAFIDUCIARIA]  from [C6StampeCentralizzate].[C6Staging].[SPB_CONTR_SINTESI] ) appo
	on w.rete= appo.rete and isnull(w.codfis,'') = isnull(appo.CODICEFISCALE,'') 

	----1 update per CF
	--update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
	--	set codage = appo.cod_agente
	--	from c6stagingperiodico.appo_contratti appo
	--	left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
	--	on w.rete= appo.rete and isnull(w.codfis,'') = isnull(appo.cod_fiscale,'')


	update C6StampeCentralizzate.C6Mart.w6daily
	set codage = isnull(appo.CODAGENTE,'')
	from C6StampeCentralizzate.C6Mart.w6daily w
	left join (select distinct [RETE],[CODAGENTE],[CODICEFISCALE],[PIVAFIDUCIARIA]  from [C6StampeCentralizzate].[C6Staging].[SPB_CONTR_SINTESI] ) appo
	on w.rete= appo.rete and isnull(w.piva,'') = isnull(appo.CODICEFISCALE,'')
	where w.piva <> ''

	----2 update per Piva
	--update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
	--	set codage = appo.cod_agente
	--	from c6stagingperiodico.appo_contratti appo
	--	left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
	--	on w.rete= appo.rete and isnull(w.piva,'') = isnull(appo.cod_fiscale,'')
	--	where w.piva <> ''

	update C6StampeCentralizzate.C6Mart.w6daily
	set codage = isnull(appo.CODAGENTE,'')
	from C6StampeCentralizzate.C6Mart.w6daily w
	left join (select distinct [RETE],[CODAGENTE],[CODICEFISCALE],[PIVAFIDUCIARIA]  from [C6StampeCentralizzate].[C6Staging].[SPB_CONTR_SINTESI] ) appo
	on w.rete= appo.rete and 'FF@'+(isnull(w.codman,'')) = isnull(appo.CODICEFISCALE,'')
	where w.codman <> ''

	----3 update per Fiduciaria
	--update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
	--	set codage = appo.cod_agente
	--	from c6stagingperiodico.appo_contratti appo
	--	left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
	--	on w.rete= appo.rete and 'FF@'+(isnull(w.codman,'')) = isnull(appo.cod_fiscale,'')
	--	where w.codman <> ''

	--eliminazione righe duplicate per API ma le teniamo in una tb di Recupero per eventuali analisi
	--truncate table [C6MartPeriodico].[W6CLI_REK]

	--insert into [C6MartPeriodico].[W6CLI_REK]
	--select  * 
	--from [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] where tipoptf = 'TIPOPRODTERZI|TERZI'

	delete from 
	[C6StampeCentralizzate].[C6Mart].[w6daily] where tipoptf = 'TIPOPRODTERZI|TERZI'

	update C6StampeCentralizzate.C6Mart.w6daily
		set PREFSOST =  case when esg.Profsost = '1' then '1' else '0' end,
		FLAGAMB = case when esg.sost_E = 'Y' then 'Y' else 'N' end ,
		FLAGSOC = case when esg.sost_S = 'Y' then 'Y' else 'N' end ,
		FLAGGOV = case when esg.sost_G = 'Y' then 'Y' else 'N' end  
		from C6StampeCentralizzate.C6Mart.w6daily w
		left join [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] esg
		on w.rete= esg.rete and isnull(w.codfis,'') = isnull(esg.CODICE_FISCALE,'') 

	update C6StampeCentralizzate.C6Mart.w6daily
		set PREFSOST =  case when esg.Profsost = '1' then '1' else '0' end,
		FLAGAMB = case when esg.sost_E = 'Y' then 'Y' else 'N' end ,
		FLAGSOC = case when esg.sost_S = 'Y' then 'Y' else 'N' end ,
		FLAGGOV = case when esg.sost_G = 'Y' then 'Y' else 'N' end 
		from C6StampeCentralizzate.C6Mart.w6daily w
		left join [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] esg
		on w.rete= esg.rete and isnull(w.piva,'') = isnull(esg.CODICE_FISCALE,'') 
		where piva <> ''

	update C6StampeCentralizzate.C6Mart.w6daily
		set PREFSOST =  case when esg.Profsost = '1' then '1' else '0' end ,
		FLAGAMB = case when esg.sost_E = 'Y' then 'Y' else 'N' end ,
		FLAGSOC = case when esg.sost_S = 'Y' then 'Y' else 'N' end ,
		FLAGGOV = case when esg.sost_G = 'Y' then 'Y' else 'N' end 
		from C6StampeCentralizzate.C6Mart.w6daily w
		left join [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] esg
		on w.rete= esg.rete and isnull('FF@'+ w.codman,'') = isnull(esg.CODICE_FISCALE,'') 
		where codman <> ''
END
GO
/****** Object:  StoredProcedure [C6Mart].[PreCheckIDX]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[PreCheckIDX]

as
begin
	declare @Rete varchar(1)
	declare @CodiceFiscale varchar(20)
	declare @idReport int

	declare @Riga varchar(2000)
	declare @id int

	declare @flagRigaOk int

	declare @dataGenerazione datetime
	declare @dataVenerdi datetime

	declare @giorniDietro int

	set @Riga = ''
	set @id = 0

	set @dataVenerdi =  getdate()

	set @giorniDietro =
		case DATEPART(dw, @dataVenerdi)
			when 2 then 0
			when 3 then 1
			when 4 then 2
			when 5 then 3
			when 6 then 4
			when 7 then 5
			when 1 then 6
		end

	set @dataVenerdi = convert(varchar(4), year(@dataVenerdi)) + right('0' + convert(varchar(2), month(@dataVenerdi)), 2) + right('0' + convert(varchar(2), day(@dataVenerdi)), 2)

	set @dataGenerazione = dateadd(d, -@giorniDietro, @dataVenerdi)

	create table #tIdx (id int, Riga varchar(2000), flagOk int)

	declare cur cursor for
		select Rete, CodiceFiscale, idReport from c6mart.gestione_pdf_ftp where datagenerazione >= @dataGenerazione
		--and id_Fk_zip = -1

	open cur

	fetch next from cur into @Rete, @CodiceFiscale, @idReport

	while @@fetch_status = 0
	begin
		set @id = @id + 1
		set @Riga = C6Mart.Concatena_Check(@Rete, @CodiceFiscale, @idReport)
	
		if isnull(@Riga, '') = ''
			set @flagRigaOk = 0
		else
			set @flagRigaOk = 1

		insert into #tIdx (id, Riga, flagOk) values (@id, @Riga, @flagRigaOk)

		fetch next from cur into @Rete, @CodiceFiscale, @idReport
	
	end

	close cur
	deallocate cur

	select * from #tIdx

	drop table #tIdx
end
GO
/****** Object:  StoredProcedure [C6Mart].[PROM_TuttiIPortafogli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================
--[C6Mart].[PROM_TuttiIPortafogli]
CREATE procedure [C6Mart].[PROM_TuttiIPortafogli]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT [Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,cast([CtvNominale] as varchar) as CtvNominale
      ,cast([CtvReale] as varchar) as CtvReale



FROM (

	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Mart].[vTuttiIPortafogli]   --[C6StampeCentralizzate]

	union all
	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Mart].[vTuttiIPortafogli_ccLiq]     --[C6StampeCentralizzate]
) T

order by rete,codiceFiscale,Portafoglio








































END




GO
/****** Object:  StoredProcedure [C6Mart].[PROM_TuttiIPortafogli_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 18/11/2008
-- Description:	
-- =============================================
--[C6Mart].[PROM_TuttiIPortafogli]
CREATE procedure [C6Mart].[PROM_TuttiIPortafogli_old]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 

	A.Rete,
	A.CodiceFiscale,
	A.Portafoglio,
	A.CodiceProdotto,
	A.Piazza,
	A.CodiceValuta,
	A.Classe,
	CAST(A.CtvNominale AS VARCHAR(50)) AS CtvNominale,
	CAST(A.CtvReale AS VARCHAR(50))AS CtvReale

FROM(

	SELECT 
		Rete,
		CodiceFiscale,
		Portafoglio,
		CodiceProdotto,
		Piazza,
		CodiceValuta,
		Classe,
		--V Gestione CC negativo
		CASE 
			when CtvNominale < 0 then 0
			else CtvNominale
		END AS CtvNominale,
		CASE 
			when CtvReale < 0 then 0
			else CtvReale
		END AS CtvReale
	FROM  [C6Mart].[vTuttiIPortafogli]


	UNION

	SELECT 
		Rete,
		CodiceFiscale,
		REPLACE(Portafoglio,'COMPLESSIVO|BF|RISFIN|','PIRAMIDE|'),
		CodiceProdotto,
		Piazza,
		CodiceValuta,
		Classe,
		CtvNominale,
		CtvReale
	FROM  [C6Mart].[vTuttiIPortafogli]
	where PORTAFOGLIO LIKE 'COMPLESSIVO|BF|RISFIN%' 
		AND PORTAFOGLIO NOT LIKE 'COMPLESSIVO|BF|RISFIN|NA%' 
        AND PORTAFOGLIO NOT LIKE 'COMPLESSIVO|BF|CC|%'

) A
--WHERE RTRIM(LTRIM(ISNULL(A.CodiceProdotto,'$'))) <> '$'
ORDER BY 1,2,3
			
END


GO
/****** Object:  StoredProcedure [C6Mart].[RM_Sintesi_Cliente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [C6Mart].[RM_Sintesi_Cliente] 179
CREATE procedure [C6Mart].[RM_Sintesi_Cliente]

	@IdReport INT

AS
BEGIN
	SET NOCOUNT ON;

	SELECT 
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS NomeCognome,
		ANAG_CLIENTI.DATA_NASCITA AS DataNascita,
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale,
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		ISNULL(CONTRATTOSEI.INDIRIZZO,'') + ' ' +
		ISNULL(CONTRATTOSEI.CAP,'') + ' ' +
		ISNULL(CONTRATTOSEI.CITTA,'') + 
		CASE 
			WHEN CONTRATTOSEI.PROV IS NULL THEN ''
			ELSE ' (' + CONTRATTOSEI.PROV + ')'  
		END AS IndirizzoDiContratto,
		isnull(CONTRATTOSEI.PRESSO,'') AS Presso
	FROM C6MART.GESTIONE_PDF_FTP
	INNER JOIN C6MART.CONTRATTOSEI
		ON CONTRATTOSEI.RETE = GESTIONE_PDF_FTP.RETE 
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CODICEFISCALE
	INNER JOIN C6MART.ANAG_CLIENTI 
		ON ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE 
		AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	WHERE GESTIONE_PDF_FTP.IDREPORT = @IdReport

END


GO
/****** Object:  StoredProcedure [C6Mart].[rp_aggiornaDataValidazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE    procedure [C6Mart].[rp_aggiornaDataValidazione]
AS 


begin
/*
delete from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT_TEST
insert into [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT_TEST
select 
	DataGenerazione as data,
	SUBSTRING(NomeFile, 1, 11) as codiceContratto, --SUBSTRING(NomeFile, 0, 12)
	case 
		when (id_fk_zip = -1) then 0
		else 1
	end as definitivo,
	getDate() as dataAggiornamento
from 
(
		select 
		datagenerazione, nomefile,id_fk_zip, 
		row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc )  pippo from --SUBSTRING(NomeFile, 0, 12)
		c6mart.gestione_pdf_ftp
		--where SUBSTRING(NomeFile, 1, 11) in ('001771CO205') --SUBSTRING(NomeFile, 0, 12)
)l where pippo =1
*/


--delete from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT
--insert into [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT
--select 
--	DataGenerazione as data,
--	SUBSTRING(NomeFile, 1, 11) as codiceContratto, --SUBSTRING(NomeFile, 0, 12)
--	case 
--		when (id_fk_zip = -1) then 0
--		else 1
--	end as definitivo,
--	getDate() as dataAggiornamento
--from 
--(
--	select 
--		datagenerazione, 
--		nomefile,
--		id_fk_zip, 
--		row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc )  as ordine, --SUBSTRING(NomeFile, 0, 12)
--		upgrade
--	from  (select pdf.*,case when md.TIP_riattivazione  = 2 then 1 else 0 end upgrade 
--			from  c6mart.gestione_pdf_ftp pdf 
--			left join c6mart.vcontratti  vc 
--			on SUBSTRING(pdf.NomeFile, 1, 11) = vc.codicecontratto --SUBSTRING(pdf.NomeFile, 0, 12)
--			left  join c6mart.contrattosei_metadati md
--			on md.chiaveclientepb = vc.chiaveclientepb) pdf2 	   
--) l 
--where    ( ordine = 1 and upgrade = 0 ) or (ordine = 2 and upgrade = 1)



--BEGIN TRANSACTION
--	BEGIN TRY
	
		DELETE FROM  [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT
		INSERT INTO [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT
		SELECT 
			dbo.getFeriale(DataGenerazione) AS data,
			SUBSTRING(NomeFile, 1, 11) AS codiceContratto, --SUBSTRING(NomeFile, 0, 12)
			CASE 
				WHEN (id_fk_zip = -1) THEN 0
				ELSE 1
			END AS definitivo,
			getDate() AS dataAggiornamento
		FROM 
		(
			SELECT 
				datagenerazione, 
				nomefile,
				id_fk_zip, 
				row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc )  as ordine, --SUBSTRING(NomeFile, 0, 12)
				upgrade,
				InvioBenvenuto,
				DataFineAvanzato
			FROM  (
					SELECT pdf.*,CASE WHEN md.TIP_riattivazione  = 2 THEN 1 ELSE 0 END upgrade ,md.inviobenvenuto AS InvioBenvenuto,data_fineavanzato as DataFineAvanzato
					FROM  c6mart.gestione_pdf_ftp pdf 
					left join c6mart.vcontratti  vc 
					ON SUBSTRING(pdf.NomeFile, 1, 11) = vc.codicecontratto  
					left  join c6mart.contrattosei_metadati md
					ON md.chiaveclientepb = vc.chiaveclientepb
					--WHERE md.inviobenvenuto = 'S' and data_fineavanzato > getdate()
					------where datagenerazione<='2016-08-19 12:44:37.497'  --en 20160922 temporaneo
					) pdf2
		) l
		WHERE    ( ordine = 1 and upgrade = 0  and InvioBenvenuto='S' and DataFineAvanzato > getdate() )
				  OR
				 ( ordine = 2 and upgrade = 1 )
-- EN20160405-start: Soluzione per Ticket T-1396128-M1Y0 
				  OR
				 ( ordine = 1 and upgrade = 1 and SUBSTRING(NomeFile, 1, 11)='013614CO205' )
				 --forzatura per CRVRRT74P02L675V
				 --union all

				 --select '2013-10-18 13:54:50.883' as data,'002249CB000' as codiceContratto,'1' as definitivo,getDate() AS dataAggiornamento

				 --fine forzatura per CRVRRT74P02L675V
-- EN20160405-end:
--	COMMIT TRANSACTION
--	
--END TRY
--
--BEGIN CATCH
--	ROLLBACK TRANSACTION
--	DECLARE @Msg NVARCHAR(MAX)  
--	SELECT @Msg=ERROR_MESSAGE() 
--	RAISERROR('Descrizione errore: %s', 20, 101,@msg) WITH LOG
--END CATCH

end




GO
/****** Object:  StoredProcedure [C6Mart].[rp_aggiornaDataValidazione_20160405]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[rp_aggiornaDataValidazione_20160405]
AS 


begin
/*
delete from [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT_TEST
insert into [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT_TEST
select 
	DataGenerazione as data,
	SUBSTRING(NomeFile, 1, 11) as codiceContratto, --SUBSTRING(NomeFile, 0, 12)
	case 
		when (id_fk_zip = -1) then 0
		else 1
	end as definitivo,
	getDate() as dataAggiornamento
from 
(
		select 
		datagenerazione, nomefile,id_fk_zip, 
		row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc )  pippo from --SUBSTRING(NomeFile, 0, 12)
		c6mart.gestione_pdf_ftp
		--where SUBSTRING(NomeFile, 1, 11) in ('001771CO205') --SUBSTRING(NomeFile, 0, 12)
)l where pippo =1
*/


--delete from [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT
--insert into [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT
--select 
--	DataGenerazione as data,
--	SUBSTRING(NomeFile, 1, 11) as codiceContratto, --SUBSTRING(NomeFile, 0, 12)
--	case 
--		when (id_fk_zip = -1) then 0
--		else 1
--	end as definitivo,
--	getDate() as dataAggiornamento
--from 
--(
--	select 
--		datagenerazione, 
--		nomefile,
--		id_fk_zip, 
--		row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc )  as ordine, --SUBSTRING(NomeFile, 0, 12)
--		upgrade
--	from  (select pdf.*,case when md.TIP_riattivazione  = 2 then 1 else 0 end upgrade 
--			from  c6mart.gestione_pdf_ftp pdf 
--			left join c6mart.vcontratti  vc 
--			on SUBSTRING(pdf.NomeFile, 1, 11) = vc.codicecontratto --SUBSTRING(pdf.NomeFile, 0, 12)
--			left  join c6mart.contrattosei_metadati md
--			on md.chiaveclientepb = vc.chiaveclientepb) pdf2 	   
--) l 
--where    ( ordine = 1 and upgrade = 0 ) or (ordine = 2 and upgrade = 1)



--BEGIN TRANSACTION
--	BEGIN TRY
	
		DELETE FROM [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT
		INSERT INTO [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT
		SELECT 
			DataGenerazione AS data,
			SUBSTRING(NomeFile, 1, 11) AS codiceContratto, --SUBSTRING(NomeFile, 0, 12)
			CASE 
				WHEN (id_fk_zip = -1) THEN 0
				ELSE 1
			END AS definitivo,
			getDate() AS dataAggiornamento
		FROM 
		(
			SELECT 
				datagenerazione, 
				nomefile,
				id_fk_zip, 
				row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc )  as ordine, --SUBSTRING(NomeFile, 0, 12)
				upgrade,
				InvioBenvenuto,
				DataFineAvanzato
			FROM  (
					SELECT pdf.*,CASE WHEN md.TIP_riattivazione  = 2 THEN 1 ELSE 0 END upgrade ,md.inviobenvenuto AS InvioBenvenuto,data_fineavanzato as DataFineAvanzato
					FROM  c6mart.gestione_pdf_ftp pdf 
					left join c6mart.vcontratti  vc 
					ON SUBSTRING(pdf.NomeFile, 1, 11) = vc.codicecontratto  
					left  join c6mart.contrattosei_metadati md
					ON md.chiaveclientepb = vc.chiaveclientepb
					--WHERE md.inviobenvenuto = 'S' and data_fineavanzato > getdate()
					) pdf2
		) l
		WHERE    ( ordine = 1 and upgrade = 0  and InvioBenvenuto='S' and DataFineAvanzato > getdate() )
				  OR
				 ( ordine = 2 and upgrade = 1 )

--	COMMIT TRANSACTION
--	
--END TRY
--
--BEGIN CATCH
--	ROLLBACK TRANSACTION
--	DECLARE @Msg NVARCHAR(MAX)  
--	SELECT @Msg=ERROR_MESSAGE() 
--	RAISERROR('Descrizione errore: %s', 20, 101,@msg) WITH LOG
--END CATCH

end

GO
/****** Object:  StoredProcedure [C6Mart].[RP_AggiornaFlagContratto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--select * from C6Mart.CONTRATTOSEI_METADATI

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[RP_AggiornaFlagContratto]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_AggiornaFlagContratto',
		GETDATE(),
		'Elaborazione giornaliera'
	)
/*
select top 1 *
from C6Mart.CONTRATTOSEI_METADATI where risorseNa is null
*/
	--AGGIORNAMENTO TABELLA CONTRATTOSEI
	--FLAG RISORSE NON ASSOCIATE
	--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
	UPDATE C6Mart.CONTRATTOSEI_METADATI
	SET 
		RisorseNA =
			CASE
				WHEN CLIENTIRISNA.percRisorseNA >= CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2)) THEN 'S'
				ELSE 'N'
			END
	--AGGIUNTA perchè mancava, FABRIZIO E VALERIO per Azzeramento numero solleciti email
		--,NumSolleciti =
		--	CASE
		--		WHEN (C6.ClienteMigrato = 'S') and (CLIENTIRISNA.percRisorseNA < CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2))) THEN 0
		--		ELSE NumSolleciti
		--	END
	FROM C6Mart.CONTRATTOSEI_METADATI C6
	JOIN
		C6MART.VCONTRATTI VCONTR
		
	ON
		C6.CHIAVECLIENTEPB = VCONTR.CHIAVECLIENTEPB
	LEFT JOIN (

		SELECT 
			NA.RETE, 
			NA.COD_FISCALE,
			CASE
				WHEN TOT.CTVTOTALE = 0 THEN 0
				ELSE 100 * NA.CTVNA / TOT.CTVTOTALE
			END AS percRisorseNA
		FROM (
			SELECT
				ISNULL(SUM(PATRBF.CTV),0) AS CTVNA,
				PATRBF.RETE, PATRBF.COD_FISCALE
				
			FROM C6Mart.PATRIMONIO_BF PATRBF
			--INNER JOIN C6Mart.RP_vTuttiIContratti VCONTRATTIPERSEI
			--	ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
			--	AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
			WHERE ID_AREA = 'Na'
			GROUP BY
				
				PATRBF.RETE, PATRBF.COD_FISCALE
		) NA
		INNER JOIN (
			SELECT
				SUM(PATRBF.CTV) AS CTVTOTALE,
				PATRBF.RETE, PATRBF.COD_FISCALE
			FROM C6Mart.PATRIMONIO_BF PATRBF
			
			WHERE ID_AREA <> 'Cc'
			GROUP BY
				PATRBF.RETE, PATRBF.COD_FISCALE
		) TOT 
			ON TOT.RETE = NA.RETE AND TOT.COD_FISCALE = NA.COD_FISCALE
			

	) CLIENTIRISNA

	ON VCONTR.RETE = CLIENTIRISNA.RETE
	AND VCONTR.COD_FISCALE = CLIENTIRISNA.COD_FISCALE
				
	WHERE C6.InvioBenvenuto = 'N'	
	
	--V Aggiorna il flag Profilo Attivo per i clienti che non hanno ricevuto il report	
	UPDATE C6MART.CONTRATTOSEI_METADATI
	SET profiloAttivo = CASE WHEN (ISNULL(MIFID.SCADUTO,1) = 1) THEN 0 ELSE 1 end
	FROM C6MART.CONTRATTOSEI_METADATI
	JOIN C6MART.VCONTRATTI
		ON	VCONTRATTI.CHIAVECLIENTEPB = CONTRATTOSEI_METADATI.CHIAVECLIENTEPB
	LEFT JOIN C6MART.MIFID
	--ON CONTRATTOSEI_METADATI.chiaveClientePB = MIFID.chiaveClientePB
		ON	MIFID.RETE = VCONTRATTI.RETE
		AND	MIFID.COD_FISCALE = VCONTRATTI.COD_FISCALE
	WHERE InvioBenvenuto = 'N' 

--select * from C6MART.VCONTRATTI

	--V Aggiorna i dati di migrazione
	UPDATE C6MART.CONTRATTOSEI_METADATI
	-------------en 20161026 clienti automaticamente migrati
	SET clienteMigrato = 'S'
		--case when (C6Staging.RP_Migraz_Pianificazione.chiaveClientePB is null) then 'N'
		--else  'S'
		--END
	FROM C6MART.CONTRATTOSEI_METADATI
	LEFT JOIN C6Staging.RP_Pianificazione
	ON CONTRATTOSEI_METADATI.chiaveClientePB =  C6Staging.RP_Pianificazione.chiaveClientePb
	--LEFT JOIN C6Staging.RP_Migraz_Pianificazione
	--ON CONTRATTOSEI_METADATI.chiaveClientePB =  C6Staging.RP_Migraz_Pianificazione.chiaveClientePb
	
	
	WHERE InvioBenvenuto = 'N' 	

-- Profilo Esperienze e Conoscenze EC aggiunto 30/06/2022

update C6MART.CONTRATTOSEI_METADATI
set PROFILO_EC= case when MIFID.EXPERIENCE>=1 then 1 
				when MIFID.EXPERIENCE<1 then 0
				else NULL end
from C6MART.CONTRATTOSEI_METADATI 
JOIN C6MART.VCONTRATTI 
ON	VCONTRATTI.CHIAVECLIENTEPB = CONTRATTOSEI_METADATI.CHIAVECLIENTEPB
LEFT join C6Mart.MIFID 
ON	MIFID.RETE = VCONTRATTI.RETE
AND	MIFID.COD_FISCALE = VCONTRATTI.COD_FISCALE

--fine EC



	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_AggiornaFlagContratto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_AggiornaFlagContratto'
		)


END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_AggiornaFlagContratto_20161026]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select * from C6Mart.CONTRATTOSEI_METADATI

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[RP_AggiornaFlagContratto_20161026]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_AggiornaFlagContratto',
		GETDATE(),
		'Elaborazione giornaliera'
	)
/*
select top 1 *
from C6Mart.CONTRATTOSEI_METADATI where risorseNa is null
*/
	--AGGIORNAMENTO TABELLA CONTRATTOSEI
	--FLAG RISORSE NON ASSOCIATE
	--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
	UPDATE C6Mart.CONTRATTOSEI_METADATI
	SET 
		RisorseNA =
			CASE
				WHEN CLIENTIRISNA.percRisorseNA >= CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2)) THEN 'S'
				ELSE 'N'
			END
	--AGGIUNTA perchè mancava, FABRIZIO E VALERIO per Azzeramento numero solleciti email
		--,NumSolleciti =
		--	CASE
		--		WHEN (C6.ClienteMigrato = 'S') and (CLIENTIRISNA.percRisorseNA < CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2))) THEN 0
		--		ELSE NumSolleciti
		--	END
	FROM C6Mart.CONTRATTOSEI_METADATI C6
	JOIN
		C6MART.VCONTRATTI VCONTR
		
	ON
		C6.CHIAVECLIENTEPB = VCONTR.CHIAVECLIENTEPB
	LEFT JOIN (

		SELECT 
			NA.RETE, 
			NA.COD_FISCALE,
			CASE
				WHEN TOT.CTVTOTALE = 0 THEN 0
				ELSE 100 * NA.CTVNA / TOT.CTVTOTALE
			END AS percRisorseNA
		FROM (
			SELECT
				ISNULL(SUM(PATRBF.CTV),0) AS CTVNA,
				PATRBF.RETE, PATRBF.COD_FISCALE
				
			FROM C6Mart.PATRIMONIO_BF PATRBF
			--INNER JOIN C6Mart.RP_vTuttiIContratti VCONTRATTIPERSEI
			--	ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
			--	AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
			WHERE ID_AREA = 'Na'
			GROUP BY
				
				PATRBF.RETE, PATRBF.COD_FISCALE
		) NA
		INNER JOIN (
			SELECT
				SUM(PATRBF.CTV) AS CTVTOTALE,
				PATRBF.RETE, PATRBF.COD_FISCALE
			FROM C6Mart.PATRIMONIO_BF PATRBF
			
			WHERE ID_AREA <> 'Cc'
			GROUP BY
				PATRBF.RETE, PATRBF.COD_FISCALE
		) TOT 
			ON TOT.RETE = NA.RETE AND TOT.COD_FISCALE = NA.COD_FISCALE
			

	) CLIENTIRISNA

	ON VCONTR.RETE = CLIENTIRISNA.RETE
	AND VCONTR.COD_FISCALE = CLIENTIRISNA.COD_FISCALE
				
	WHERE C6.InvioBenvenuto = 'N'	
	
	--V Aggiorna il flag Profilo Attivo per i clienti che non hanno ricevuto il report	
	UPDATE C6MART.CONTRATTOSEI_METADATI
	SET profiloAttivo = CASE WHEN (ISNULL(MIFID.SCADUTO,1) = 1) THEN 0 ELSE 1 end
	FROM C6MART.CONTRATTOSEI_METADATI
	JOIN C6MART.VCONTRATTI
		ON	VCONTRATTI.CHIAVECLIENTEPB = CONTRATTOSEI_METADATI.CHIAVECLIENTEPB
	LEFT JOIN C6MART.MIFID
	--ON CONTRATTOSEI_METADATI.chiaveClientePB = MIFID.chiaveClientePB
		ON	MIFID.RETE = VCONTRATTI.RETE
		AND	MIFID.COD_FISCALE = VCONTRATTI.COD_FISCALE
	WHERE InvioBenvenuto = 'N' 

--select * from C6MART.VCONTRATTI

	--V Aggiorna i dati di migrazione
	UPDATE C6MART.CONTRATTOSEI_METADATI
	SET clienteMigrato =
		case when (C6Staging.RP_Migraz_Pianificazione.chiaveClientePB is null) then 'N'
		else  'S'
		END
	FROM C6MART.CONTRATTOSEI_METADATI
	LEFT JOIN C6Staging.RP_Migraz_Pianificazione
	ON CONTRATTOSEI_METADATI.chiaveClientePB =  C6Staging.RP_Migraz_Pianificazione.chiaveClientePb
	
	
	WHERE InvioBenvenuto = 'N' 	
	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_AggiornaFlagContratto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_AggiornaFlagContratto'
		)


END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_CC]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CC

	INSERT INTO [C6Mart].[ANAG_CC]
		(
--chiaveClientePB
--		,
       [RETE]
		,[COD_FISCALE]
		,[INTERMEDIARIO]
		,[COINTEST]
		,[COD_CC]
		,[FASCIA_CPP]
		,[SALDOCONTABILE]
		,[SALDODISPONIBILE]
		,[DATA_APERTURA]
		,[DATA_CHIUSURA]
		,[ID_ELAB]
		,[TIPO_ELAB])
	-- 20170421 elimina duplicati
	--SELECT 
	SELECT DISTINCT
--		VCONTRATTI.chiaveclientepb,
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		'BANCA FIDEURAM' AS INTERMEDIARIO,
		NULL AS COINTEST,
		SPB_CONTR_SINTESI.CONTO AS COD_CC,
		NULL AS FASCIA_CPP,
		SPB_CONTR_SINTESI.CTV AS SALDOCONTABILE,
		-- è diverso da quello restituito dalla contratto sintesi CC.SALDOCONTABILE AS SALDOCONTABILE,
		CC.SALDODISPONIBILE AS SALDODISPONIBILE,
		SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO C6MART.ANAG_CC
	FROM C6STAGING.SPB_CONTR_SINTESI
	LEFT JOIN C6MART.VCONTRATTI ON VCONTRATTI.CODICECONTRATTO = SPB_CONTR_SINTESI.CODICECONTRATTO
	--V Aggiunta del saldo contabile e disponibile
	JOIN C6STAGING.SPB_CONTOCORRENTE CC 
		ON SPB_CONTR_SINTESI.CONTO = CC.CONTO
		AND SPB_CONTR_SINTESI.RETE = CC.RETE
		AND SPB_CONTR_SINTESI.CODICEFISCALE = CC.CODICEFISCALE
	
	WHERE SPB_CONTR_SINTESI.TIPOPRODOTTO = 'Cc'  AND VCONTRATTI.DATA_FINEAVANZATO is null

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CC'
		)

END


--select * from c6mart.RP_vContrattiNonGenerati



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_CC_20170421]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_CC_20170421]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CC

	INSERT INTO [C6Mart].[ANAG_CC]
		(
--chiaveClientePB
--		,
       [RETE]
		,[COD_FISCALE]
		,[INTERMEDIARIO]
		,[COINTEST]
		,[COD_CC]
		,[FASCIA_CPP]
		,[SALDOCONTABILE]
		,[SALDODISPONIBILE]
		,[DATA_APERTURA]
		,[DATA_CHIUSURA]
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT 
--		VCONTRATTI.chiaveclientepb,
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		'BANCA FIDEURAM' AS INTERMEDIARIO,
		NULL AS COINTEST,
		SPB_CONTR_SINTESI.CONTO AS COD_CC,
		NULL AS FASCIA_CPP,
		SPB_CONTR_SINTESI.CTV AS SALDOCONTABILE,
		-- è diverso da quello restituito dalla contratto sintesi CC.SALDOCONTABILE AS SALDOCONTABILE,
		CC.SALDODISPONIBILE AS SALDODISPONIBILE,
		SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO C6MART.ANAG_CC
	FROM C6STAGING.SPB_CONTR_SINTESI
	LEFT JOIN C6MART.VCONTRATTI ON VCONTRATTI.CODICECONTRATTO = SPB_CONTR_SINTESI.CODICECONTRATTO
	--V Aggiunta del saldo contabile e disponibile
	JOIN C6STAGING.SPB_CONTOCORRENTE CC 
		ON SPB_CONTR_SINTESI.CONTO = CC.CONTO
		AND SPB_CONTR_SINTESI.RETE = CC.RETE
		AND SPB_CONTR_SINTESI.CODICEFISCALE = CC.CODICEFISCALE
	
	WHERE SPB_CONTR_SINTESI.TIPOPRODOTTO = 'Cc'  AND VCONTRATTI.DATA_FINEAVANZATO is null

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CC'
		)

END


--select * from c6mart.RP_vContrattiNonGenerati



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_CC_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	--DECLARE @TIPO_ELAB VARCHAR(1)

    SET @ID_ELAB = C6MART.GETIDELAB()
	--SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CC_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CC_TERZI

	INSERT INTO [C6Mart].[ANAG_CC_TERZI]
			(
--      chiaveClientePB
--			,
             [RETE]
			,[COD_FISCALE]
			,[INTERMEDIARIO]
			,[COINTEST]
			,[COD_CC]
			,[FASCIA_CPP]
			,[SALDO]
			,[DATA_APERTURA]
			,[DATA_CHIUSURA]
			,[ID_ELAB])

      --conticorrenti.Saldo,
      --conticorrenti.Contocorrente,
      --sum (conticorrenti.Saldo) over (partition by conticorrenti.chiaveclientepb) as totalesaldo,
      --conticorrenti.Intermediario

	--Tutti i ContiCorrenti Terzi non a catalogo 
	SELECT
--		VCONTRATTI.chiaveclientepb,
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		dettProdT.nomeIntermediario AS INTERMEDIARIO,
		NULL AS COINTEST,
		patrT.nomeProdotto AS COD_CC,
		NULL AS FASCIA_CPP,
		patrT.ctv AS SALDO,
		NULL AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB
	--INTO C6MART.ANAG_CC_TERZI
	FROM
		C6Staging.RP_PatrimonioTerzi patrT,
		C6Staging.RP_DettProdottiTerzi dettProdT,
		c6staging.RP_AnAlberatura alber,
		C6Mart.VCONTRATTI
	WHERE
		dettProdT.Alberatura = alber.Alberatura
		AND dettProdT.chiaveProdotto IS NULL
		AND patrT.chiaveProdottoTerzi = dettProdT.chiaveProdottoTerzi
		AND patrT.chiaveClientePB = VCONTRATTI.chiaveClientePB
		AND alber.Livello3= 'Conti correnti' 
		AND patrT.tipoProd= 'Assets.FinancialAssets.CurrentAccount'
	UNION ALL
	--'Conti Correnti Terzi in catalogo'
	SELECT
--		VCONTRATTI.chiaveclientepb,
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		dettProdT.nomeIntermediario AS INTERMEDIARIO,
		NULL AS COINTEST,
		patrT.nomeProdotto AS COD_CC,
		NULL AS FASCIA_CPP,
		patrT.ctv AS SALDO,
		NULL AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB
	FROM
		C6Staging.RP_PatrimonioTerzi patrT,
		C6Staging.RP_DettProdottiTerzi dettProdT,
		C6Staging.RP_CatalogoProdotti catprod,
		C6Mart.VCONTRATTI
	WHERE
		patrT.chiaveProdottoTerzi = dettprodT.chiaveProdottoTerzi
		AND patrT.chiaveClientePB = VCONTRATTI.chiaveClientePB
		AND dettprodT.ChiaveProdotto IS NOT NULL
		AND catprod.ChiaveProdotto = dettprodT.ChiaveProdotto
		AND catprod.TipoProdotto = 'CC'
		

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CC_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CC_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

--select count(*) from c6mart.anag_clienti

CREATE procedure [C6Mart].[RP_DM_ANAG_CLIENTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CLIENTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

--	DELETE C6MART.ANAG_CLIENTI 
--	FROM C6MART.ANAG_CLIENTI
--	INNER JOIN c6staging.RP_Cliente
--		ON ANAG_CLIENTI.chiaveCliente = RP_Cliente.chiaveCliente
--		--ON RP_ANAG_CLIENTI.RETE = RP_Cliente.RETE_PB
--		--AND RP_ANAG_CLIENTI.COD_FISCALE = RP_Cliente.codFis

	truncate table C6MART.ANAG_CLIENTI
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CLIENTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CLIENTI'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CLIENTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	INSERT INTO [C6Mart].[ANAG_CLIENTI]
	(
         [RETE]
		,[COD_FISCALE]
		,[NOME]
		,[COGNOME]
		,[DATA_NASCITA]
		,[STATO_CIVILE]
		,[NUM_COMPONENTI]
		,[NUM_FIGLI]
		,[ETA]
		,[PARTITA_IVA]
		,[CITTADINANZA]
		,[PERSONA_FIS_GIUR]
		,[INDIRIZZO]
		,[LOCALITA]
		,[PROVINCIA]
		,[CAP]
		,[NAZIONE]
		,[PRESSO]
		,[TEL_RECAPITO]
		,[TEL_CELL]
		,[E_MAIL]
		,[DATA_INIZIO]
		,[DATA_FINE]
		,[STATO]
		,[RAG_SOC]
		,[SESSO]
		,[ID_PROMOTORE]
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		distinct
		VCONTRATTI.RETE AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		ISNULL(SPB_CLIENTI.NOME,CLI.nome) AS NOME,
		ISNULL(SPB_CLIENTI.COGNOME,CLI.cognome) AS COGNOME,
		ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA) AS DATA_NASCITA,
		NULL  AS STATO_CIVILE,
		tabNucleo.componentiNucleo AS NUM_COMPONENTI,
		tabFigli.numFigli AS NUM_FIGLI,
		FLOOR(DateDiff(Day, ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA), GetDate()) / 365.25) AS ETA,
		NULL AS PARTITA_IVA,
		SPB_CLIENTI.CITTADINANZA AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(SPB_INDIRIZZI.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(SPB_INDIRIZZI.CITTA, '') AS LOCALITA,
		ISNULL(SPB_INDIRIZZI.PROVINCIA, '') AS PROVINCIA,
		ISNULL(SPB_INDIRIZZI.CAP, '') AS CAP,
		ISNULL(SPB_INDIRIZZI.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		VCONTRATTI.EMAIL AS E_MAIL,
		SPB_CLIENTI.DATAATTIVAZIONECLIENTE AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		CASE
 			WHEN SUBSTRING(VCONTRATTI.COD_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		VCONTRATTI.COD_AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO [C6Mart].[RP_ANAG_CLIENTI]
	FROM 
		C6Mart.VCONTRATTI
	LEFT JOIN 
		(select 
		COUNT(*) as componentiNucleo,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		and p.dtfine>getdate()
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNascita) tabNucleo
	ON
		VCONTRATTI.chiaveClientePB = tabNucleo.clienteConParentela
	LEFT JOIN
		(select 
		COUNT(*) as numFigli,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		where
		g.descParentela in ('Figlio','Figlia','Figlio del partner','figlia del partner')
		and p.dtfine>getdate()
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNascita) tabFigli
	ON 
		VCONTRATTI.chiaveClientePB = tabFigli.clienteConParentela
	AND
		tabFigli.clienteConParentela = tabNucleo.clienteConParentela
	LEFT OUTER JOIN 
		C6STAGING.SPB_CLIENTI 
	ON 
			C6STAGING.SPB_CLIENTI.CODICERETE = VCONTRATTI.RETE
			AND C6STAGING.SPB_CLIENTI.CODICEFISCALE = VCONTRATTI.COD_FISCALE
	LEFT OUTER JOIN 
		C6STAGING.SPB_INDIRIZZI 
		ON 
			C6STAGING.SPB_INDIRIZZI.RETE = VCONTRATTI.RETE
			AND C6STAGING.SPB_INDIRIZZI.CODICEFISCALE = VCONTRATTI.COD_FISCALE
	JOIN 
		C6MART.CONTRATTOSEI_METADATI METADATI
		ON
			VCONTRATTI.CHIAVECLIENTEPB = METADATI.CHIAVECLIENTEPB
	
	LEFT JOIN c6staging.RP_Cliente CLI
		ON
			VCONTRATTI.COD_FISCALE = CASE 
										WHEN (LEN(CLI.CODFIS) = 16) THEN CLI.CODFIS
										WHEN (LEN(CLI.CODMAN) = 0 AND LEN(CLI.PIVA) > 0) THEN CLI.PIVA
										ELSE 'FF@'+CODMAN
									  END

	WHERE
		VCONTRATTI.DATA_FINEAVANZATO > getDate()
		--AND ISNULL(INVIOBENVENUTO,'N') = 'N'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CLIENTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CLIENTI'
		)



END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_PRODOTTI]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PRODOTTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_PRODOTTI
	
	INSERT INTO [C6Mart].[ANAG_PRODOTTI]
		(
		   [COD_PRODOTTO]
		   ,[COD_ISIN]
		   ,[PAESE]
		   ,[ID_AREA]
		   ,[CAT_PRODOTTO]
		   ,[TIPO_PRODOTTO]
		   ,[DESCR_PRODOTTO]
		   ,[DIV_QUOTAZIONE]
		   ,[DIV_REGOLAMENTO]
		   ,[ID_EMITTENTE]
		   ,[MERCATO_CONTRATT]
		   ,[COD_MAF]
		   ,[RATING]
		   ,[COD_ADEGUATEZZA]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
		   ,DESCR_SGR)
	SELECT 
		CatalogueID AS COD_PRODOTTO,
		ISNULL(CodIsin, '') AS COD_ISIN,
		NULL AS PAESE,
		'' AS ID_AREA,
		NULL AS CAT_PRODOTTO,
		TipoProdotto AS TIPO_PRODOTTO,
		NomeProdotto AS DESCR_PRODOTTO,
		PrezzoValuta AS DIV_QUOTAZIONE,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		NULL AS MERCATO_CONTRATT,
		CodMaf AS COD_MAF,
		NULL AS RATING,
		CodAdeguatezza AS COD_ADEGUATEZZA,
		CodSottoprodotto AS COD_SOTTOPRODOTTO,
		ISNULL(CodInterno, '') AS COD_INTERNO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		DESCR_SGR as DESCR_SGR
	FROM C6Staging.RP_CatalogoProdotti
	

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PRODOTTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PRODOTTI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_PRODOTTI_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PRODOTTI_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_PRODOTTI_TERZI

		INSERT INTO [C6Mart].[ANAG_PRODOTTI_TERZI]
		   ([COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[NOME_PRODOTTO]
		   ,[ALBERO_PRODOTTI]
		   ,[COD_ISIN]
		   ,[DESCR_PRODOTTO]
		   ,[DIV_QUOTAZIONE]
		   ,[INTERMEDIARIO]
		   ,[DIV_REGOLAMENTO]
		   ,[ID_EMITTENTE]
		   ,[MERCATO_CONTRATT]
		   ,[PAESE]
		   ,[RATING]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
		   

	SELECT 
		--C6Mart.VCONTRATTI.chiaveClientePB AS chiaveClientePB,
		C6Staging.RP_DettProdottiTerzi.chiaveProdotto AS COD_PRODOTTO,
		C6Staging.RP_PatrimonioTerzi.chiaveProdottoTerzi AS COD_PRODOTTO_TERZI,
		C6Staging.RP_PatrimonioTerzi.nomeProdotto AS NOME_PRODOTTO,
		NULL AS ALBERO_PRODOTTI, 
		NULL AS COD_ISIN,
		C6Staging.RP_PatrimonioTerzi.tipoprod AS DESCR_PRODOTTO,
		NULL AS DIV_QUOTAZIONE,
		NULL AS INTERMEDIARIO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		NULL AS MERCATO_CONTRATT,
		NULL AS PAESE,
		NULL AS RATING,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		--INTO C6MART.ANAG_PRODOTTI_TERZI
	FROM C6Staging.RP_DettProdottiTerzi
	INNER JOIN C6Staging.RP_PatrimonioTerzi
	ON C6Staging.RP_DettProdottiTerzi.chiaveProdottoTerzi = C6Staging.RP_PatrimonioTerzi.chiaveProdottoTerzi
	INNER JOIN C6Mart.VCONTRATTI
	ON C6Staging.RP_PatrimonioTerzi.chiaveClientePB = C6Mart.VCONTRATTI.chiaveClientePB

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PRODOTTI_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PRODOTTI_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_PRODOTTI_VALUTE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
CREATE procedure [C6Mart].[RP_DM_ANAG_PRODOTTI_VALUTE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MART.GETIDELAB()  
 SET @TIPO_ELAB = C6MART.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PRODOTTI_VALUTE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )   
  
 TRUNCATE TABLE [c6mart].ANAG_PRODOTTI_VALUTE  
   
 INSERT INTO [c6mart].[ANAG_PRODOTTI_VALUTE]  
            
 SELECT DISTINCT --added by pk 20160506   
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  VALUTE.DIVISA,  
  CAST (VALUTE.PESO AS DECIMAL (6,3)),  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
    
 FROM c6staging.RP_CATALOGOPRODOTTI CATITEMREF  
 INNER JOIN (  
  SELECT CATITEMREF.CATALOGUEID, MAX(ChiaveProdotto) AS ChiaveProdotto  
  FROM c6staging.RP_CATALOGOPRODOTTI CATITEMREF  
  GROUP BY CATITEMREF.CATALOGUEID  
 ) DOPPICATITEMREF ON CATITEMREF.ChiaveProdotto = DOPPICATITEMREF.ChiaveProdotto  
 INNER JOIN   
  [c6staging].[RP_RDR_VALUTE_DB_DTGIORNALIERI] VALUTE  
 ON VALUTE.CHIAVEPRODOTTO = CATITEMREF.ChiaveProdotto  
 where VALUTE.PESO >= -999.099 and VALUTE.PESO <= 999.099
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE 
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE 
   WHERE  
    Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ANAG_PROMOTORI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PROMOTORI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_PROMOTORI

	INSERT INTO [C6Mart].[ANAG_PROMOTORI]
		   ([RETE]
		   ,[ID_PROMOTORE]
		   ,[LIVELLO]
		   ,[COD_FISCALE]
		   ,[PARTITA_IVA]
		   ,[COGNOME]
		   ,[NOME]
		   ,[RAG_SOC]
		   ,[DATA_INIZIO]
		   ,[DATA_FINE]
		   ,[INDIRIZZO]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[TEL_RECAPITO]
		   ,[TEL_CELL]
		   ,[E_MAIL]
		   ,[COD_ABI]
		   ,[COD_CAB]
		   ,[COD_CIN]
		   ,[COD_CC]
		   ,[STATO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT DISTINCT
		PB.RETE AS RETE,
		PB.codage AS ID_PROMOTORE,
		SPB_NAC.LIVELLONELLAGERARCHIA AS LIVELLO,
		NULL AS COD_FISCALE,
		NULL AS PARTITA_IVA,
		rtrim(ltrim(PB.COGNOME)) AS COGNOME,
		rtrim(ltrim(PB.NOME)) AS NOME,
		NULL AS RAG_SOC,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		rtrim(ltrim(PB.INDIRIZZO)) AS INDIRIZZO,
		rtrim(ltrim(PB.CITTA)) AS LOCALITA,
		rtrim(ltrim(PB.PROVINCIA)) AS PROVINCIA,
		rtrim(ltrim(PB.CAP)) AS CAP,
		NULL AS NAZIONE,
		rtrim(ltrim(PB.PREFISSO + PB.TELEFONO1)) AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,
		NULL AS COD_ABI,
		NULL AS COD_CAB,
		NULL AS COD_CIN,
		NULL AS COD_CC,
		CASE WHEN PF.RETE IS NULL THEN 'ATTIVO' ELSE 'FITTIZIO' END
		AS STATO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO C6MART.ANAG_PROMOTORI
	FROM C6Staging.RP_anagrafica_promotori PB

	--LEFT JOIN C6MART.EMAIL_PB EMAIL_PB
	--	ON PB.RETE = EMAIL_PB.RETE
	--	AND PB.codage = EMAIL_PB.CODICE

	 OUTER APPLY	(SELECT TOP 1 * FROM C6MART.EMAIL_PB EMAIL_PB1      --MODIFICA INSERITA IN SEGUITO A UN ERRORE PER DUPLICAZINOE DI CHIAVE NELLA TABELLA DI DESTINAZIONE
					WHERE PB.RETE = EMAIL_PB1.RETE					  	--LA DUPLICAZIONE SCATURIVA DALLA JOIN CON LA EMAIL_PB SU CUI, PER UNO STESSO AGENTE ERANO PRESENTI 
					AND PB.codage = EMAIL_PB1.CODICE					--UNA MAIL VUOTA E UNA CORRETTAMENTE VALORIZZATA
					ORDER BY EMAIL DESC ) EMAIL_PB

	LEFT JOIN C6STAGING.SPB_NAC SPB_NAC
		ON PB.RETE = SPB_NAC.CODICERETE
		AND PB.codage = SPB_NAC.CODICEAGENTE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (PB.codage  BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND PB.RETE = PF.RETE
	
WHERE
    PB.stato = 'A'
	--Aggiunta Valerio non inserisco in anagrafica pb terminati in quanto non hanno il livello 
	and SPB_NAC.CODICEAGENTE is not null

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PROMOTORI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PROMOTORI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ASSET_PERC]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSET_PERC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSET_PERC

	INSERT INTO [C6Mart].[ASSET_PERC]
		   (
		    [COD_PRODOTTO]
		   ,[ID_ASSETCLASS]
		  ,[COD_ISIN]
		  ,[COD_MAF]
		   ,[COD_INTERNO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[LIVELLO]
		   ,[PERC]
		  ,[ID_ELAB]
,[TIPO_ELAB]
)
		   
	SELECT DISTINCT
		--SUBSTRING(con.position_id,1,57) AS COD_PRODOTTO,
		--dbo.Crea_positionID(con.codConf, con.conto, con.rubricato, con.custGar, pospor.numPolizza, con.termId, con.anno, con.prog) AS COD_PRODOTTO
		cat.CatalogueID AS COD_PRODOTTO
		,LTRIM(RTRIM(ac.Asset)) AS ID_ASSETCLASS
	   ,cat.CodIsin AS COD_ISIN
		,cat.CodMaf AS COD_MAF
		,cat.CodInterno AS COD_INTERNO
		,cat.CodSottoprodotto AS COD_SOTTOPRODOTTO
		,ac.Livello AS LIVELLO
		,map.Percentuale AS PERC		
		,@ID_ELAB AS ID_ELAB
		,@TIPO_ELAB AS TIPO_ELAB

	--INTO C6MART.ASSET_PERC
	FROM
	/*
		C6Staging.RP_CONSULENZA AS con
	INNER JOIN
		C6Staging.RP_PosizioniPortafoglio AS pospor
	ON
		con.chiaveProgetto = pospor.chiaveProgetto
	INNER JOIN*/
		C6Staging.RP_Mappatura AS map
	/*ON
		pospor.chiaveProdotto = map.ChiaveProdotto*/
	INNER JOIN
		C6Staging.RP_AssetClass AS ac
	ON
		map.Asset = ac.Asset
	INNER JOIN
		C6Staging.RP_CatalogoProdotti cat
	ON
		map.ChiaveProdotto = cat.ChiaveProdotto

--WHERE SUBSTRING(con.position_id,1,57) IS NOT NULL --togliere



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSET_PERC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSET_PERC'
		)

END




GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_ASSET_PERC_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSET_PERC_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSET_PERC_TERZI

	INSERT INTO [C6Mart].[ASSET_PERC_TERZI]
		([COD_PRODOTTO_TERZI] --
		,[ID_ASSETCLASS] --
		,[LIVELLO] --
		,[NOME_PRODOTTO]
		,[TIPO_PRODOTTO]
		,[PERC] --
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT DISTINCT
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS COD_PRODOTTO_TERZI,
		RP_AssetClass.Asset AS ID_ASSETCLASS,
		RP_AssetClass.Livello AS LIVELLO,
		NULL AS NOME_PRODOTTO,
		NULL AS TIPO_PRODOTTO,
		RP_MappaturaPT.percentuale / 100 AS PERC,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO C6MART.ASSET_PERC_TERZI
	FROM
		C6Staging.RP_PatrimonioTerzi
	INNER JOIN
		C6Staging.RP_DettProdottiTerzi
	ON
		C6Staging.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6Staging.RP_DettProdottiTerzi.chiaveProdottoTerzi
	INNER JOIN
		C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3
	ON
		C6Staging.RP_DettProdottiTerzi.alberatura = C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	INNER JOIN
		C6Staging.RP_MappaturaPT
	ON
		C6Staging.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6Staging.RP_MappaturaPT.chiaveProdottoTerzi
	INNER JOIN
		C6Staging.RP_AssetClass
	ON
		C6Staging.RP_MappaturaPT.asset = C6Staging.RP_AssetClass.Asset

	--SELECT DISTINCT
	--	PATR_TP.CHIAVE_THR AS COD_PRODOTTO_TERZI,
	--	ASS.OID_ AS ID_ASSETCLASS,
	--	ASS.ASSETCLASSLEV AS LIVELLO,
	--	PATR_TP.NOMEPRODOTTO AS NOME_PRODOTTO,
	--	ALBERO.ALBERO_GERARCHIA_3 AS TIPO_PRODOTTO,
	--	ACB.BDPERCENTAGE AS PERC,
	--	@ID_ELAB AS ID_ELAB,
	--	@TIPO_ELAB AS TIPO_ELAB

	--FROM
	--	C6STAGING.ALL_PATR_TERZI PATR_TP,
	--	C6STAGING.ACBDENOTH ACB,
	--	C6STAGING.ASSETCLASS ASS,
	--	C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 ALBERO
	--WHERE 1 = 1
	--	AND PATR_TP.CHIAVE_FNC IS NOT NULL
	--	AND ALBERO.DESCRIZIONE_ORIGINALE = PATR_TP.DESCRIZIONE_ALBERATURA
	--	AND ACB.F_PFINANCIAL_815C0 = PATR_TP.CHIAVE_FNC
	--	AND ACB.F_OID__PASSE_CDF1A = ASS.OID_
	--	AND ASS.ASSETCLASSLEV IN (1,2)
	--	AND PATR_TP.PRODOTTO_IN_CATALOGO IS NULL
	--GROUP BY
	--	PATR_TP.CHIAVE_THR,
	--	PATR_TP.NOMEPRODOTTO, 
	--	ASS.OID_, 
	--	ASS.ASSETCLASSLEV,
	--	ALBERO.ALBERO_GERARCHIA_3,
	--	ACB.BDPERCENTAGE,
	--	ACB.OID_
	--ORDER BY 2,4

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSET_PERC_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSET_PERC_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select * from c6mart.assetclass
CREATE procedure [C6Mart].[RP_DM_ASSETCLASS]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSETCLASS',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSETCLASS

	SELECT 
		A.ASSET AS ID_ASSETCLASS,
		A.DESCRIZIONE AS DESCRIZIONE,
		A.LIVELLO AS LIVELLO,
		B.ORDINAMENTO_ASSET AS ORDINAMENTO,
		@ID_ELAB AS ID_ELAB
		
	--SELECT *
	into #temp
	FROM C6STAGING.RP_ASSETCLASS A
	JOIN 
	C6Staging.RP_REP_ASSET_1_E_2_ORDINATE B
		ON A.ASSET = B.CODICE_ASSET_CLASS_INGRESSO
		order by B.ORDINAMENTO_ASSET desc

	INSERT INTO [C6Mart].[ASSETCLASS]
		   ([ID_ASSETCLASS]
		   ,[DESCRIZIONE]
		   ,[LIVELLO]
		   ,[ORDINAMENTO]
		   ,[ID_ELAB])
	SELECT 
		ID_ASSETCLASS,
		DESCRIZIONE,
		LIVELLO,
		ORDINAMENTO,
		ID_ELAB
	from #temp order by ORDINAMENTO desc
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSETCLASS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSETCLASS'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

--select * from [C6Mart].[ASSETCLASS_TERZI]
--[C6Mart].[DM_ASSETCLASS_TERZI]
CREATE procedure [C6Mart].[RP_DM_ASSETCLASS_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSETCLASS_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ASSETCLASS_TERZI
	
	INSERT INTO [C6Mart].[ASSETCLASS_TERZI]
		   ([ID_ASSETCLASS]
		   ,[COD_ISIN]
		   ,[COD_MAF]
		   ,[COD_ADEGUATEZZA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	
	SELECT 
		B.CODICE_ASSET_CLASS_INGRESSO,
		B.CODICE_ISIN,
		B.CODICE_MAF,
		ISNULL(B.CODICE_ADEGUATEZZA,'$'),
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM --C6STAGING.RP_ASSETCLASS A
	--JOIN 
	C6Staging.RP_REP_ASSET_1_E_2_ORDINATE B
		--ON A.ASSET = B.CODICE_ASSET_CLASS_INGRESSO
	
		
		--LTRIM(RTRIM(ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO)) AS ID_ASSETCLASS,
		--LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN,'$'))) AS COD_ISIN,
		--LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF,'$'))) AS COD_MAF,
		--LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA,'$'))) AS COD_ADEGUATEZZA
		--,
		--@ID_ELAB AS ID_ELAB,
		--@TIPO_ELAB AS TIPO_ELAB
	--FROM C6STAGING.ALL_ASSET_CLASS_PER_PROMET
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSETCLASS_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSETCLASS_TERZI'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_Benvenuto_Scarti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE   procedure [C6Mart].[RP_DM_Benvenuto_Scarti] 
AS
BEGIN
	SET NOCOUNT ON;
-- Truncate table
TRUNCATE TABLE C6Mart.tbNotAllocatedResources;
--truncate table C6MartPeriodico.Benvenuto_Scarti;

-- Insert into tbNotAllocatedResources
INSERT INTO C6Mart.tbNotAllocatedResources (COD_FISCALE, RETE, CTV)
SELECT 
    PIRAMIDE_MOD.COD_FISCALE, 
    PIRAMIDE_MOD.RETE, 
    SUM(ISNULL(CTV, 0)) as CTV
FROM 
    C6MART.PIRAMIDE_MOD PIRAMIDE_MOD
    INNER JOIN C6MART.PATRIMONIO_BF PIRAMIDE_VERT ON 
        PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE
        AND PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE
        AND CASE 
            WHEN PIRAMIDE_VERT.ID_AREA = 'SELF' THEN LEFT(PIRAMIDE_VERT.ID_AREA, 4) 
            ELSE LEFT(PIRAMIDE_VERT.ID_AREA, 3) 
        END = PIRAMIDE_MOD.ID_AREA
WHERE 
    PIRAMIDE_MOD.ID_AREA = 'Na' 
    AND ISNULL(CTV, 0) > 0
GROUP BY 
    PIRAMIDE_MOD.COD_FISCALE, PIRAMIDE_MOD.RETE;

-- Declare variables
DECLARE @sogliaRfa AS DECIMAL(18, 0);
DECLARE @sogliaRfaDB AS DECIMAL(18, 0);
DECLARE @data_perf AS DATETIME;
DECLARE @nomeRep AS VARCHAR(32);

-- Set variable values
SET @sogliaRfa = (SELECT valore FROM [CONSUNI].[ConsulenzaUnica].[dbo].[param] WHERE parametro = 'sogliaRFA');
SET @data_perf = '20200401';
SET @sogliaRfaDB = 0;
SET @nomeRep = (SELECT Reportistica FROM [C6Mart].[TB_Selettore_GetDataThreads]);

-- Insert into Benvenuto_Scarti
INSERT INTO C6Mart.Benvenuto_Scarti

-- Clienti Risorse Non Allocate Problema Allineamento Massivo
SELECT  
    contratti.Rete as Rete,
    contratti.Cod_Agente Cod_Agente,
    contratti.Cod_Fiscale Codice_Fiscale,
    contratti.CodiceContratto CodiceContratto,
    CASE WHEN contratti.tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
    'Problema Allineamento Massivo' as Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vContrattiPerGenerazioneReport contratti
    LEFT JOIN C6Mart.tbNotAllocatedResources as nar ON 
        contratti.Rete = nar.Rete
        AND contratti.Cod_Fiscale = nar.Cod_Fiscale
    LEFT JOIN C6Mart.ANAG_CLIENTI clienti ON 
        contratti.Rete = clienti.Rete
        AND contratti.Cod_Fiscale = clienti.Cod_Fiscale
    INNER JOIN C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF ON 
        contratti.Rete = patrimonioBF.Rete
        AND contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
    LEFT OUTER JOIN C6Mart.MIFID MIFID ON 
        contratti.Rete = MIFID.Rete
        AND contratti.Cod_Fiscale = MIFID.Cod_Fiscale
WHERE 
    1 = 1
    AND nar.rete IS NOT NULL

UNION ALL

-- Problema DATA QUALITY
SELECT 
    test.rete,
    contratti.Cod_Agente,
    test.COD_FISCALE,
    contratti.CodiceContratto CodiceContratto,
    CASE WHEN contratti.tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
    test.Motivo as Motivazione,
    GETDATE()
FROM 
    c6mart.Test_Quality test
    INNER JOIN C6Mart.RP_vContrattiPerGenerazioneReport contratti ON 
        contratti.Rete = test.Rete
        AND contratti.Cod_Fiscale = test.Cod_Fiscale

UNION ALL

-- Soglia RFA Non Corretta SEI
SELECT  
    contratti.Rete as Rete,
    contratti.Cod_Agente Cod_Agente,
    contratti.Cod_Fiscale Codice_Fiscale,
    contratti.CodiceContratto CodiceContratto,
    CASE WHEN contratti.tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
    'Soglia RFA Non corretta RFA = ' + CAST(patrimonioBF.ctv AS VARCHAR(100)) as Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vContrattiPerGenerazioneReport contratti
    LEFT JOIN C6Mart.tbNotAllocatedResources as nar ON 
        contratti.Rete = nar.Rete
        AND contratti.Cod_Fiscale = nar.Cod_Fiscale
    LEFT JOIN C6Mart.ANAG_CLIENTI clienti ON 
        contratti.Rete = clienti.Rete
        AND contratti.Cod_Fiscale = clienti.Cod_Fiscale
    INNER JOIN C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF ON 
        contratti.Rete = patrimonioBF.Rete
        AND contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
    LEFT OUTER JOIN C6Mart.MIFID MIFID ON 
        contratti.Rete = MIFID.Rete
        AND contratti.Cod_Fiscale = MIFID.Cod_Fiscale
WHERE 
    1 = 1
    AND patrimonioBF.ctv < @sogliaRFA  
    AND contratti.tip_contratto <> 3 

	UNION ALL

-- Soglia RFA Non Corretta SEI
SELECT  
    contratti.Rete as Rete,
    contratti.Cod_Agente Cod_Agente,
    contratti.Cod_Fiscale Codice_Fiscale,
    contratti.CodiceContratto CodiceContratto,
    CASE WHEN contratti.tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
    'Soglia RFA Non corretta RFA = ' + CAST(patrimonioBF.ctv AS VARCHAR(100)) as Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vContrattiPerGenerazioneReport contratti
    LEFT JOIN C6Mart.tbNotAllocatedResources as nar ON 
        contratti.Rete = nar.Rete
        AND contratti.Cod_Fiscale = nar.Cod_Fiscale
    LEFT JOIN C6Mart.ANAG_CLIENTI clienti ON 
        contratti.Rete = clienti.Rete
        AND contratti.Cod_Fiscale = clienti.Cod_Fiscale
    INNER JOIN C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF ON 
        contratti.Rete = patrimonioBF.Rete
        AND contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
    LEFT OUTER JOIN C6Mart.MIFID MIFID ON 
        contratti.Rete = MIFID.Rete
        AND contratti.Cod_Fiscale = MIFID.Cod_Fiscale
WHERE 
    1 = 1
    AND patrimonioBF.ctv <= @sogliaRFADB  
    AND contratti.tip_contratto = 3 

UNION ALL

-- Lettera di Benvenuto Gia Ricevuta	
--SELECT  
--    C6.Rete,
--    Cod_Agente,
--    C6.Cod_Fiscale,
--    CodiceContratto,
--    CASE WHEN tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
--    'Lettera di Benvenuto già inviata' as Motivazione,
--    GETDATE()
--FROM 
--    C6Mart.RP_vTuttiIContratti AS C6 
--WHERE  
--    1 = 1	
--    AND (InvioBenvenuto <> 'N') 

--UNION ALL

-- Clienti Risorse Non Allocate Problema Allineamento Massivo
SELECT  
    C6.Rete,
    Cod_Agente,
    C6.Cod_Fiscale,
    CodiceContratto,
    CASE WHEN tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
    'Risorse non allocate (Problema allineamento Massivo)' as Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vTuttiIContratti AS C6 
WHERE  
    1 = 1	
    AND (ISNULL(RisorseNa, 'N') <> 'N') 

UNION ALL 

-- Cliente Revocato
SELECT  
    C6.Rete,
    Cod_Agente,
    C6.Cod_Fiscale,
    CodiceContratto,
    CASE WHEN tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END as Tipologia_Cliente,
    'Cliente Revocato' as Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vTuttiIContratti AS C6 
WHERE  
    1 = 1	
    AND (ISNULL(NumRevoche, 0) <> 0)

UNION ALL

-- Numero giorni perfezionamento non corretto
SELECT  
    C6.Rete,
    Cod_Agente,
    C6.Cod_Fiscale,
    CodiceContratto,
    CASE WHEN tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END AS Tipologia_Cliente,
    'Data Di Perfezionamento: ' + ISNULL(CAST(Data_Perf AS VARCHAR(10)), '') + '|' +
    ' Giorni che devono passare dal Perfezionamento: ' + CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS VARCHAR(10)) + '|' +
    ' Data Prevista di Generazione Report: ' + ISNULL(CAST(dbo.getferiale(DATEADD(d, CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT), CAST(Data_Perf AS DATE))) AS VARCHAR(10)), '') AS Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vTuttiIContratti AS C6
WHERE 
    1 = 1
    AND (DATEDIFF(d, Data_Perf, GETDATE()) < CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT))

UNION ALL

-- Profilo EC Minimo
SELECT  
    C6.Rete,
    Cod_Agente,
    C6.Cod_Fiscale,
    CodiceContratto,
    CASE WHEN tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END AS Tipologia_Cliente,
    'Profilo EC Minimo' as Motivazione,
    GETDATE()
FROM 
    C6Mart.RP_vTuttiIContratti AS C6
WHERE 
    1 = 1
    AND Profilo_EC <> 1

UNION ALL
-- Spiegazione visto che questa SP parte alla fine della generazione del report se nella [C6Mart].[GESTIONE_SELECT_PDF_GETDATATHREADS_NA_A] (stessa query di sotto ma con meno info) sono presenti dei record significa che c'è qualche errore nella generazione del PDF 
 SELECT distinct 
		 contratti.Rete
		,contratti.Cod_Agente Agente
		,contratti.Cod_Fiscale CodiceFiscale
		,contratti.CodiceContratto CodiceContratto
		,CASE WHEN contratti.tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END AS Tipologia_Cliente
		,'Errore generazione PDF (Controlla Global Error e LogN)' as Motivazione
		,getdate() as Data_Inserimento
		

	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
    where 1=1
	and nar.rete is null --pk
	and ((patrimonioBF.ctv >= @sogliaRFA or contratti.data_perf < @data_perf) or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) --rimossa per Fideuram Direct / Direct Banker
	and contratti.tip_contratto <> 3 


UNION ALL


 SELECT distinct 
 	 contratti.Rete
		,contratti.Cod_Agente Agente
		,contratti.Cod_Fiscale CodiceFiscale
		,contratti.CodiceContratto CodiceContratto
		,CASE WHEN contratti.tip_contratto = '3' THEN 'DIRECT' ELSE 'SEI' END AS Tipologia_Cliente
		,'Errore generazione PDF (Controlla Global Error e LogN)'
		,getdate() as Data_Inserimento
	from C6Mart.RP_vContrattiPerGenerazioneReport contratti
	left join  C6Mart.tbNotAllocatedResources as nar	--pk
		on contratti.Rete = nar.Rete				--pk
		and contratti.Cod_Fiscale = nar.Cod_Fiscale	--pk
	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
	left join c6mart.vcontrattic6 vcontr
	on vcontr.codicecontratto  =  contratti.codicecontratto
    where 1=1
	and nar.rete is null --pk
	and contratti.Cod_Fiscale +  contratti.Rete NOT IN (SELECT COD_FISCALE + RETE FROM C6MART.TEST_QUALITY)
	
         and   contratti.tip_contratto = 3
            AND patrimonioBF.ctv >= @sogliaRFADB
         and vcontr.data_perf < @data_perf
	and contratti.Cod_Fiscale in (select CODICE_FISCALE from c6staging.VAR_ADEGUATEZZA_INDICATORI)

-- Select all from Benvenuto_Scarti
--SELECT * FROM C6MartPeriodico.Benvenuto_Scarti;

END




GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_BrsClienteESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6Mart].[RP_DM_BrsClienteESG]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_BrsClienteESG',  
  GETDATE(),  
  'Elaborazione giornaliera'  
 )  
-- declare @data varchar(8)

--set @data= [C6MartPeriodico].[getTrimestre2](getdate(),0)
  
truncate table C6Mart.BrsClienteESG
  
insert into [C6StampeCentralizzate].[C6Mart].[BrsClienteESG]
SELECT esg.[rete]
      ,esg.[Codice_Fiscale]
      ,case when isnull(Sost_E,'N')='N' and isnull(Sost_S,'N')='N' and isnull(Sost_G,'N')='N' then 0 else 1 end as [Preferenza_esg_cliente]
      ,case when Sost_E='S' then 'Y' 
			when Sost_E='N' then 'N' 
			else 'N' end as 
			[ESG_E]
      ,case when Sost_S='S' then 'Y' 
			when Sost_S='N' then 'N' 
			else 'N' end as 
			[ESG_S]
      ,case when Sost_G='S' then 'Y' 
			when Sost_G='N' then 'N' 
			else 'N' end as [ESG_G]
      ,esg.PesoSostESG as [obiettivo_ESG_minimo]
      ,NULL as [ESG_Rating]
      ,esg.SostPercE as [ESG_E_perc]
      ,esg.SostPercS as [ESG_S_perc]
      ,esg.SostPercG as [ESG_G_perc]
  FROM  C6Mart.SPB_W6CLIESG esg

  --SELECT [rete]
  --   -- ,[codfis]
  --    ,[Preferenza_esg_cliente]
  --    ,[ESG_E]
  --    ,[ESG_S]
  --    ,[ESG_G]
  --    ,[obiettivo_ESG_minimo]
  --    ,[ESG_Rating]
  --    ,[ESG_E_perc]
  --    ,[ESG_S_perc]
  --    ,[ESG_G_perc]
  --FROM [C6StampeCentralizzate].[C6StagingPeriodico].[ESG_Metriche_Cliente_IL]


  --select * from [C6StampeCentralizzate].[C6StagingPeriodico].[ESG_Metriche_Cliente_IL]
  --select * from C6StagingPeriodico.wseian2
  --select * from C6MartPeriodico.W6CLIESG



 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_BrsClienteESG' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_BrsClienteESG'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_Check_GestioneEmailNOPRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE  [C6Mart].[RP_DM_Check_GestioneEmailNOPRO]
(
    @MaxCount INT
)
AS
BEGIN
    SET NOCOUNT ON;

    -- Inizializza la variabile che conterrà la count della query
    DECLARE @CountResult INT;

    -- Esegui la query e ottieni la count
    SELECT @CountResult = COUNT(*)
    FROM C6Mart.gestione_email gest
    WHERE id_elab = (SELECT MAX(id_elab) FROM C6Mart.GESTIONE_EMAIL)
    AND tipo LIKE '%SOLL%';

    -- Controlla se la count è maggiore del valore massimo consentito e restituisci l'errore in caso affermativo
    IF @CountResult > @MaxCount
    BEGIN
        -- Concatenate the error message with the exact count value
        DECLARE @ErrorMessage NVARCHAR(200);
        SET @ErrorMessage = CONCAT('Errore: La count è maggiore di ', CAST(@MaxCount AS NVARCHAR(10)), 
                                   '. Il valore corrente è ', CAST(@CountResult AS NVARCHAR(10)), '.');
        
        -- Raise the error
        RAISERROR (@ErrorMessage, 16, 1);
        RETURN;
    END
    ELSE
    BEGIN
        -- Display a message indicating no error and include the current count value
        PRINT 'Count <= ' + CAST(@MaxCount AS NVARCHAR(10)) + '. Valore corrente: ' + CAST(@CountResult AS NVARCHAR(10)) + '.';
        -- Or if you prefer, you can use the SELECT statement to return the message as a result set
        -- SELECT 'Count <= ' + CAST(@MaxCount AS NVARCHAR(10)) + '. Valore corrente: ' + CAST(@CountResult AS NVARCHAR(10)) + '.' AS Message;
    END


END
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_CHECK_RFA_MINUS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE   procedure [C6Mart].[RP_DM_CHECK_RFA_MINUS]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.



	SET NOCOUNT ON;

		INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_CHECK_RFA_MINUS',
		GETDATE(),
		'Elaborazione giornaliera'
	)


 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	SET @data_perf = '20200401'
	
	SET @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	SET @sogliaRfaDB=0 --SOGLIA RFA per i Fideuram Direct
	-- Log esecuzione



	 -- update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	 --  set flagRfaMinus = 1 
	 SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb,'NSAA' as Decod_Cososp
	 INTO #flagRfaMinusUno
     FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < @sogliaRfa and vinfo.data_perf >= @data_perf and vinfo.DATA_INZIOAVANZATO >= '20240412') 
		OR ((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < '25000' and vinfo.DATA_INZIOAVANZATO < '20240412')) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO<>3 --per escludere i fideuram direct che hanno una soglia RFA diversa

union all

SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb,'NSAA' --NSAA
     FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < @sogliaRfaDB and vinfo.data_perf >= @data_perf --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO=3 --per escludere i fideuram direct che hanno una soglia RFA diversa
	union ALL

		--Modifica Per rafforzamento Azione protezione per la clientela

		
	SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb,'NBAM'
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
		inner join c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		AND Profilo_EC<1
	--	and vinfo.TIP_CONTRATTO<>3 Commentato per Rafforzamento Direct 20240531

		--FINE Modifica Per rafforzamento Azione protezione per la clientela

	  update pb
	   set pb.flagRfaMinus = 1 , pb.decod_cososp =uno.Decod_Cososp
	    from consuni.consulenzaUnica.dbo.dettaglioClientePB pb 
	    inner join #flagRfaMinusUno uno on pb.chiaveclientePB=uno.chiaveClientePB

  --update consuni.consulenzaUnica.dbo.dettaglioClientePB 
  --set flagRfaMinus = 0

  SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
	 INTO #flagRfaMinusZero
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) >= @sogliaRfa and flagRfaMinus = 1) OR (vinfo.data_perf < @data_perf AND flagRfaMinus = 1)) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO<>3

		UNION ALL

	SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) >= @sogliaRfaDB and flagRfaMinus = 1) OR (vinfo.data_perf < @data_perf AND flagRfaMinus = 1)) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO=3

		UNION ALL

			SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
		inner join c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		AND Profilo_EC>=1
		--and vinfo.TIP_CONTRATTO<>3 Commentato per Rafforzamento Direct 20240531

	

		--select * from #flagRfaMinusUno
		--select * from #flagRfaMinusZero
		

	   update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	   set flagRfaMinus = 0 , decod_cososp =NULL
	   where chiaveclientepb in (select chiaveclientepb from #flagRfaMinusZero)

			--insert into  ltmpRfaMin1
 		--	select GETDATE() as DtModFlag, 1 as Flagval ,*  from #flagRfaMinusUno
			--insert into  ltmpRfaMin0
			--select GETDATE() as DtModFlag, 0 as Flagval ,*  from #flagRfaMinusZero



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_CHECK_RFA_MINUS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_CHECK_RFA_MINUS'
		)

END
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_CHECK_RFA_MINUS_20240412]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE    procedure [C6Mart].[RP_DM_CHECK_RFA_MINUS_20240412]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.



	SET NOCOUNT ON;

		INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_CHECK_RFA_MINUS',
		GETDATE(),
		'Elaborazione giornaliera'
	)


 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	SET @data_perf = '20200401'
	
	SET @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	SET @sogliaRfaDB=0 --SOGLIA RFA per i Fideuram Direct
	-- Log esecuzione



	 -- update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	 --  set flagRfaMinus = 1 
	 SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
	 INTO #flagRfaMinusUno
     FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND ((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < @sogliaRfa or Profilo_EC<=1) and vinfo.data_perf >= @data_perf --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO<>3 --per escludere i fideuram direct che hanno una soglia RFA diversa

union all

SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
     FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < @sogliaRfaDB and vinfo.data_perf >= @data_perf --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO=3 --per escludere i fideuram direct che hanno una soglia RFA diversa

	  update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	   set flagRfaMinus = 1 
	   where chiaveclientepb in (select chiaveclientepb from #flagRfaMinusUno)

  --update consuni.consulenzaUnica.dbo.dettaglioClientePB 
  --set flagRfaMinus = 0

  SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
	 INTO #flagRfaMinusZero
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) >= @sogliaRfa and Profilo_EC>=1  and flagRfaMinus = 1) OR (vinfo.data_perf < @data_perf AND flagRfaMinus = 1)) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO<>3

		UNION ALL

	SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) >= @sogliaRfaDB and flagRfaMinus = 1) OR (vinfo.data_perf < @data_perf AND flagRfaMinus = 1)) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO=3


		

		  update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	   set flagRfaMinus = 0 
	   where chiaveclientepb in (select chiaveclientepb from #flagRfaMinusZero)

 
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_CHECK_RFA_MINUS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_CHECK_RFA_MINUS'
		)

END
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_CHECK_RFA_MINUS_preRafforzamento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE    procedure [C6Mart].[RP_DM_CHECK_RFA_MINUS_preRafforzamento]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.



	SET NOCOUNT ON;

		INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_CHECK_RFA_MINUS',
		GETDATE(),
		'Elaborazione giornaliera'
	)


 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	declare @sogliaRfa as decimal (18,0) 
	declare @sogliaRfaDB as decimal (18,0) 
	declare @data_perf as datetime
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	SET @data_perf = '20200401'
	
	SET @sogliaRfa = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
	SET @sogliaRfaDB=0 --SOGLIA RFA per i Fideuram Direct
	-- Log esecuzione



	 -- update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	 --  set flagRfaMinus = 1 
	 SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
	 INTO #flagRfaMinusUno
     FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND ((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < @sogliaRfa or Profilo_EC<=1) and vinfo.data_perf >= @data_perf --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO<>3 --per escludere i fideuram direct che hanno una soglia RFA diversa

union all

SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
     FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) < @sogliaRfaDB and vinfo.data_perf >= @data_perf --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO=3 --per escludere i fideuram direct che hanno una soglia RFA diversa

	  update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	   set flagRfaMinus = 1 
	   where chiaveclientepb in (select chiaveclientepb from #flagRfaMinusUno)

  --update consuni.consulenzaUnica.dbo.dettaglioClientePB 
  --set flagRfaMinus = 0

  SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
	 INTO #flagRfaMinusZero
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) >= @sogliaRfa and Profilo_EC>=1  and flagRfaMinus = 1) OR (vinfo.data_perf < @data_perf AND flagRfaMinus = 1)) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO<>3

		UNION ALL

	SELECT contratti.rete, vinfo.cod_agente, contratti.Cod_Fiscale, contratti.Piva_Fiduciaria, contratti.CodiceContratto, vinfo.chiaveclientepb
 FROM C6Mart.RP_vTuttiIContratti AS contratti 
  	INNER join C6Mart.vPatrimoniobfAggregato patrimonioBF
		on contratti.Rete = patrimonioBF.Rete
		and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		inner join --consuni.consulenzaUnica.dbo.vinfocliente vinfo
		c6mart.vcontratti vinfo
		on vinfo.cod_Fiscale = contratti.cod_fiscale
		and vinfo.rete = contratti.rete
  inner join consuni.consulenzaUnica.dbo.dettaglioClientePB dett
  on dett.chiaveclientepb = vinfo.chiaveclientePb
  WHERE  (1 = 1)	
        AND (InvioBenvenuto = 'N') 
		--AND (ISNULL(RisorseNa, 'N') = 'N') 
		--AND (ISNULL(NumRevoche, 0) = 0)
		--AND ((DATEDIFF(d,vinfo.Data_Perf, GETDATE()) >=  CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)) OR vinfo.cod_agente='015312')
		--AND	contratti.Cod_Fiscale IN (SELECT	COD_FISCALE FROM    C6Mart.PIRAMIDE_MOD)
		AND (((case when patrimonioBF.contocorrente<0 then patrimoniobf.patrimoniosenzacc else patrimoniobf.ctv end) >= @sogliaRfaDB and flagRfaMinus = 1) OR (vinfo.data_perf < @data_perf AND flagRfaMinus = 1)) --modificata il 04012020 la fonte del ctv da patrimoniobf.ctv con la case when per escludere i cc negativi dal conto
		AND vinfo.TIP_CONTRATTO=3


		

		  update consuni.consulenzaUnica.dbo.dettaglioClientePB 
	   set flagRfaMinus = 0 
	   where chiaveclientepb in (select chiaveclientepb from #flagRfaMinusZero)

 
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_CHECK_RFA_MINUS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_CHECK_RFA_MINUS'
		)

END
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_CheckEmail]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
CREATE procedure [C6Mart].[RP_DM_CheckEmail] 
AS
BEGIN
 
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7
		 
-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_CheckEmail',GETDATE(),'Elaborazione giornaliera')
	
 
SELECT E.Email_Id,E.Tipo,E.Data_Generazione,E.Inviata,E.Data_Invio,E.Data_Comunicazione_Host,E.ID_ELAB,C.* 
INTO #EMAILCK
FROM C6MART.GESTIONE_EMAIL E INNER JOIN C6MART.VCONTRATTISEI C 
ON E.COD_FISCALE=C.COD_FISCALE AND E.RETE=C.RETE
WHERE  ISNULL(E.Inviata,'N') <> 'S'

DELETE c6mart.test_logmd  WHERE CMD = 'GENERATO GIORNO PRECEDENTE'
INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'GENERATO GIORNO PRECEDENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione <   convert(varchar, GetDate(), 101)

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'EMAIL NOMIG NON CONGRUENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) = '_SOLL_NOMIG' AND CLIENTEMIGRATO = 'S'

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'EMAIL NOASS NON CONGRUENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) = '_SOLL_NOASS' AND RISORSENA = 'N'

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'EMAIL NOPRO NON CONGRUENTE',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) = '_SOLL_NOPRO' AND PROFILOATTIVO = 1

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'SUPERATO PERIODO DI PERF',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND SUBSTRING(TIPO,2,11) IN ('_SOLL_NOMIG','_SOLL_NOASS','_SOLL_NOPRO')
AND DATEDIFF(d,DATA_PERF, GETDATE()) > (CAST(dbo.getParametro('MaxInvioSoll') as smallint)-1) * 
										CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint)+
										CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)

INSERT INTO c6mart.test_logmd (CMD,dtinsert,COD_FISCALE,RETE,NOTE) 
SELECT 'BLOCCATO CF 01484040488',GETDATE(),COD_FISCALE,RETE,'EMAIL_ID '+CONVERT(VARCHAR,EMAIL_ID) FROM #EMAILCK WHERE 
Data_Generazione >=   convert(varchar, GetDate(), 101)
AND COD_FISCALE = '01484040488' 
		

-- Log esecuzione
UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_CheckEmail' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_CheckEmail'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_DETTAGLIO_ASUL]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_DETTAGLIO_ASUL',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.DETTAGLIO_ASUL

	INSERT INTO [C6Mart].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		ISNULL(
			dbo.Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPOPRODOTTO, SPB_ASS_UNIT.CODICEINTERNO, SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE, SPB_ASS_UNIT.CODICEISINSOTTOSTANTE, SPB_ASS_UNIT.CODICESOTTOPRODOTTO), 
			SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODICECONTRATTO AS ID_CONTRATTO,
		SPB_ASS_UNIT.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODICEINTERNO AS COD_INTERNO,
		SPB_ASS_UNIT.CONTROVALORE AS CTV,
		SPB_ASS_UNIT.DATADIRIFERIMENTO AS DATA_RIF,
		SPB_ASS_UNIT.ISINFITTIZIO AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.CODICEISINSOTTOSTANTE AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6STAGING.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGING.SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODICECONTRATTO = SPB_ASS_UNIT.CODICECONTRATTO 
	LEFT OUTER JOIN
		C6STAGING.RP_CATALOGOPRODOTTI CAT
		ON SPB_ASS_UNIT.CODICEINTERNO = CAT.CODINTERNO 
		AND SPB_ASS_UNIT.CODICESOTTOPRODOTTO = CAT.CODSOTTOPRODOTTO 
        AND VISIBILITA=1 
		AND (SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = ''and codisin='$' OR (
			SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = CAT.CODADEGUATEZZA AND 
			SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE = CAT.CODMAF
			)
		)
		/*
		C6STAGING.CATITEMREF 
		ON SPB_ASS_UNIT.CODICEINTERNO = CATITEMREF.COD_INTERNO 
		AND SPB_ASS_UNIT.CODICESOTTOPRODOTTO = CATITEMREF.COD_SOTTOPRODOTTO 
        AND isvisible=1 
		AND (SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = ''and cod_isin='$' OR (
			SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = CATITEMREF.COD_ADEGUATEZZA AND 
			SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE = CATITEMREF.COD_MAF
			)
		)*/
	WHERE 
		SPB_CONTR_SINTESI.CTV <> 0


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_DETTAGLIO_ASUL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_DETTAGLIO_ASUL'
		)

END




GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_EMAIL_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 26 gennaio 2009
-- Description:	Recupera PB, RM, DM, AM le cui email non sono ancora valorizzate.
-- =============================================
CREATE procedure [C6Mart].[RP_DM_EMAIL_PB]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_EMAIL_PB',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	SELECT DISTINCT
		CODICI_PB.RETE AS RETE, 
		CODICI_PB.CODICE AS CODICE,
		
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' when 'W' then 'W' ELSE 'P' END) AS PREFISSO,
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' when 'W' then 'W' ELSE 'P' END) + CODICI_PB.CODICE AS FIRMA
--,
--		CODICI_PB.LIVELLO AS LIVELLO,
--		CODICI_PB.LIV_ORD AS LIV_ORD

	FROM
	(	
		SELECT STRUTTURA.RETE, STRUTTURA.PB CODICE--, 'PB' as LIVELLO, 1 AS LIV_ORD
		FROM C6Mart.VCONTRATTI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.RM CODICE--, 'RM' as LIVELLO, 2 AS LIV_ORD
		FROM C6Mart.VCONTRATTI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.DM CODICE--, 'DM' as LIVELLO, 3 AS LIV_ORD
		FROM C6Mart.VCONTRATTI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.AM CODICE--, 'AM' as LIVELLO, 4 AS LIV_ORD
		FROM C6Mart.VCONTRATTI PB
		INNER JOIN C6MART.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

	) CODICI_PB
	LEFT JOIN C6MART.EMAIL_PB EMAIL_PB_ESISTENTI
		ON EMAIL_PB_ESISTENTI.RETE = CODICI_PB.RETE
		AND EMAIL_PB_ESISTENTI.CODICE = CODICI_PB.CODICE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (CODICI_PB.CODICE BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND CODICI_PB.RETE = PF.RETE
	WHERE 
	
	--CODICI_PB.CODICE = '014777' and
	isnull(EMAIL_PB_ESISTENTI.EMAIL,  '') = ''
		--AND PF.RETE IS NULL
		
		
--togliere
	--and CODICI_PB.CODICE not in ('010712','015115','015117','015091','015182','006167','015125','015126','015185','006154','006200') 
and CODICI_PB.CODICE not in ('015185') 
---eliminato il filtro '010712'
---eliminato il filtro su '015089'--,'015163', 12/08
	--ORDER BY CODICI_PB.LIV_ORD

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_EMAIL_PB' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_EMAIL_PB'
		)
END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ESG_ANAG_METRICHE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select * from c6mart.assetclass
CREATE    procedure [C6Mart].[RP_DM_ESG_ANAG_METRICHE]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ESG_ANAG_METRICHE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE  C6STAGING.ESG_ANAG_METRICHE  
   
 INSERT INTO [C6STAGING].ESG_ANAG_METRICHE  
     ( [COD_PRODOTTO]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	   ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
	  ,LABEL_EU_GREEN_BOND_STANDARD
	   ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
	  ,[PERC_INVEST_SFDR_MIN_SUST_E]
	  ,[PERC_INVEST_SFDR_MIN_SUST_S]
	  ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
	  ,[PAI_LAB_A_Settore_Immobiliare]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
     ,[ID_ELAB]
      ,[TIPO_ELAB]
      )  
 SELECT   
  --ChiaveProdotto,   
  CatalogueID AS COD_PRODOTTO,  
  C.CodSottoprodotto AS COD_SOTTOPRODOTTO, 
  ISNULL(C.CodInterno, '') AS COD_INTERNO, 
  C.CodMaf AS COD_MAF, 
  C.CodAdeguatezza AS COD_ADEGUATEZZA,  
  ISNULL(C.CodIsin, '') AS COD_ISIN,  
  case when Ltrim(rtrim(ESG_E)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_E)) = 'N' then 'NO'
  else 'NO' end  as ESG_E,
  case when Ltrim(rtrim(ESG_S)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_S)) = 'N' then 'NO'
  else 'NO' end  as ESG_S,
  case when Ltrim(rtrim(ESG_G)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_G)) = 'N' then 'NO'
  else 'NO' end  as ESG_G,
  case when CatSFDR='-' then '' else substring(CatSFDR,1,5) +' SFDR' end as CatSFDR, 	
  Ltrim(rtrim(ESGRating)) as ESGRating ,
  Ltrim(rtrim(TrendESGRating)) as TrendESGRating,
  case when LABEL_Green_Bond<> '-' then 'Green Bond' else '' end as LABEL_Green_Bond,
  case when LABEL_Social_Bond<> '-' then 'Social Bond' else '' end as LABEL_Social_Bond,
  case when LABEL_Sustainability_Bond<> '-' then 'Sustainability Bond' else '' end as LABEL_Sustainability_Bond,
  case when LABEL_Transition_Bond<> '-' then 'Transition Bond' else '' end as LABEL_Transition_Bond,
  case when LABEL_Sust_linked_bond<> '-' then 'Sustainability Linked Bond' else '' end as LABEL_Sust_linked_bond,
  case when LABEL_EU_GREEN_BOND_STANDARD<> '-' then 'EU Green Bond Standard' else '' end as LABEL_EU_GREEN_BOND_STANDARD,
  PERC_INVESTIMENTO_TAXONOMY *100 as PERC_INVESTIMENTO_TAXONOMY,
  PERC_INVESTIMENTO_SFDR * 100 as PERC_INVESTIMENTO_SFDR,
    [PERC_INVEST_SFDR_MIN_SUST_E] * 100 as PERC_INVEST_SFDR_MIN_SUST_E ,
  [PERC_INVEST_SFDR_MIN_SUST_S]  * 100 as PERC_INVEST_SFDR_MIN_SUST_S,
  case when PAI_LAB_A_Emissioni_Gas_Serra<>'-' then 'Emissioni Gas Serra' else '' end as PAI_LAB_A_Emissioni_Gas_Serra,
  case when PAI_LAB_A_Biodiversita<>'-' then 'Biodiversità' else '' end as PAI_LAB_A_Biodiversita,
  case when PAI_LAB_A_Acqua<>'-' then 'Acqua' else '' end as PAI_LAB_A_Acqua,
  case when PAI_LAB_A_Rifiuti<>'-' then 'Rifiuti' else '' end as PAI_LAB_A_Rifiuti,
  case when PAI_LAB_A_Gov_Ambientale<>'-' then 'Governativi di tipo Ambientale' else '' end as PAI_LAB_A_Gov_Ambientale,
  case when PAI_LAB_A_Comb_Fossili<>'-' then 'Combustibili Fossili' else '' end as PAI_LAB_A_Comb_Fossili,
  case when PAI_LAB_A_Eff_energetica<>'-' then 'Efficienza Energetica' else '' end as PAI_LAB_A_Eff_energetica,
  case when PAI_LAB_A_Settore_Immobiliare <>'-' then 'Settore Immobiliare' else '' end as PAI_LAB_A_Settore_Immobiliare,
  case when PAI_LAB_S_Questioni_Soc_Dip<>'-' then 'Questioni Sociali e dei Dipendenti' else '' end as PAI_LAB_S_Questioni_Soc_Dip,
  case when PAI_LAB_S_Gov_Sociali<>'-' then 'Governativi di tipo Sociale' else '' end as PAI_LAB_S_Gov_Sociali,
  case when U_INFO_ESG='TOOL_01' then 'Nota1' 
	   when U_INFO_ESG='TOOL_02' then 'Nota2'
	   else '' end as U_INFO_ESG,
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6Staging.RP_CatalogoProdotti  c  
 Inner Join C6Staging.RP_TB_ESG_ANAG_STRUM  a  
 ON c.ChiaveProdotto = a.ChiaveProdotto  



UPDATE m1
SET m1.label_pai_a = NULLIF(CONCAT_WS(', ',
        NULLIF(m2.PAI_LAB_A_Emissioni_Gas_Serra, ''),
        NULLIF(m2.PAI_LAB_A_Biodiversita, ''),
        NULLIF(m2.PAI_LAB_A_Acqua, ''),
        NULLIF(m2.PAI_LAB_A_Rifiuti, ''),
        NULLIF(m2.PAI_LAB_A_Gov_Ambientale, ''),
		NULLIF(m2.PAI_LAB_A_Settore_Immobiliare, '')
        --NULLIF(m2.PAI_LAB_A_Comb_Fossili, ''),
        --NULLIF(m2.PAI_LAB_A_Eff_energetica, '')
        -- NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
        -- NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM C6STAGING.ESG_ANAG_METRICHE m1
INNER JOIN C6STAGING.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')



	

UPDATE m1
SET m1.label_pai_s = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
       NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM C6STAGING.ESG_ANAG_METRICHE m1
INNER JOIN C6STAGING.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')

	--select * from C6STAGING.ESG_ANAG_METRICHE
	
UPDATE m1
SET m1.Label_U_INFO_ESG = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.LABEL_Green_Bond, ''),
       NULLIF(m2.Label_Social_Bond, ''),
	   NULLIF(m2.Label_Sustainability_Bond, ''),
	   NULLIF(m2.Label_Transition_Bond, ''),
	   NULLIF(m2.Label_Sust_linked_Bond, ''),
	   NULLIF(m2.Label_EU_Green_Bond_Standard, ''),
	   NULLIF(m2.CatSFDR, ''),
	   NULLIF(m2.U_INFO_ESG, '')
	   ), '')
FROM C6STAGING.ESG_ANAG_METRICHE m1
INNER JOIN C6STAGING.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')






  

	
		
	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ESG_ANAG_METRICHE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ESG_ANAG_METRICHE'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_ESG_ANAG_METRICHE_bkp_Pre_ESG4]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select * from c6mart.assetclass
CREATE    procedure [C6Mart].[RP_DM_ESG_ANAG_METRICHE_bkp_Pre_ESG4]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ESG_ANAG_METRICHE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE  C6STAGING.ESG_ANAG_METRICHE  
   
 INSERT INTO [C6STAGING].ESG_ANAG_METRICHE  
     ( [COD_PRODOTTO]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	   ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
	  ,LABEL_EU_GREEN_BOND_STANDARD
	   ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
	  ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
     ,[ID_ELAB]
      ,[TIPO_ELAB]
      )  
 SELECT   
  --ChiaveProdotto,   
  CatalogueID AS COD_PRODOTTO,  
  C.CodSottoprodotto AS COD_SOTTOPRODOTTO, 
  ISNULL(C.CodInterno, '') AS COD_INTERNO, 
  C.CodMaf AS COD_MAF, 
  C.CodAdeguatezza AS COD_ADEGUATEZZA,  
  ISNULL(C.CodIsin, '') AS COD_ISIN,  
  case when Ltrim(rtrim(ESG_E)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_E)) = 'N' then 'NO'
  else 'NO' end  as ESG_E,
  case when Ltrim(rtrim(ESG_S)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_S)) = 'N' then 'NO'
  else 'NO' end  as ESG_S,
  case when Ltrim(rtrim(ESG_G)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_G)) = 'N' then 'NO'
  else 'NO' end  as ESG_G,
  case when CatSFDR='-' then '' else substring(CatSFDR,1,5) +' SFDR' end as CatSFDR, 	
  Ltrim(rtrim(ESGRating)) as ESGRating ,
  Ltrim(rtrim(TrendESGRating)) as TrendESGRating,
  case when LABEL_Green_Bond<> '-' then 'Green Bond' else '' end as LABEL_Green_Bond,
  case when LABEL_Social_Bond<> '-' then 'Social Bond' else '' end as LABEL_Social_Bond,
  case when LABEL_Sustainability_Bond<> '-' then 'Sustainability Bond' else '' end as LABEL_Sustainability_Bond,
  case when LABEL_Transition_Bond<> '-' then 'Transition Bond' else '' end as LABEL_Transition_Bond,
  case when LABEL_Sust_linked_bond<> '-' then 'Sustainability Linked Bond' else '' end as LABEL_Sust_linked_bond,
  case when LABEL_EU_GREEN_BOND_STANDARD<> '-' then 'EU Green Bond Standard' else '' end as LABEL_EU_GREEN_BOND_STANDARD,
  PERC_INVESTIMENTO_TAXONOMY *100 as PERC_INVESTIMENTO_TAXONOMY,
  PERC_INVESTIMENTO_SFDR * 100 as PERC_INVESTIMENTO_SFDR,
  case when PAI_LAB_A_Emissioni_Gas_Serra<>'-' then 'Emissioni Gas Serra' else '' end as PAI_LAB_A_Emissioni_Gas_Serra,
  case when PAI_LAB_A_Biodiversita<>'-' then 'Biodiversità' else '' end as PAI_LAB_A_Biodiversita,
  case when PAI_LAB_A_Acqua<>'-' then 'Acqua' else '' end as PAI_LAB_A_Acqua,
  case when PAI_LAB_A_Rifiuti<>'-' then 'Rifiuti' else '' end as PAI_LAB_A_Rifiuti,
  case when PAI_LAB_A_Gov_Ambientale<>'-' then 'Governativi Ambientali' else '' end as PAI_LAB_A_Gov_Ambientale,
  case when PAI_LAB_A_Comb_Fossili<>'-' then 'Combustibili Fossili' else '' end as PAI_LAB_A_Comb_Fossili,
  case when PAI_LAB_A_Eff_energetica<>'-' then 'Efficienza Energetica' else '' end as PAI_LAB_A_Eff_energetica,
  case when PAI_LAB_S_Questioni_Soc_Dip<>'-' then 'Questioni Sociali e dei Dipendenti' else '' end as PAI_LAB_S_Questioni_Soc_Dip,
  case when PAI_LAB_S_Gov_Sociali<>'-' then 'Governativi Sociali' else '' end as PAI_LAB_S_Gov_Sociali,
  case when U_INFO_ESG='TOOL_01' then 'Nota1' 
	   when U_INFO_ESG='TOOL_02' then 'Nota2'
	   else '' end as U_INFO_ESG,
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6Staging.RP_CatalogoProdotti  c  
 Inner Join C6Staging.RP_TB_ESG_ANAG_STRUM  a  
 ON c.ChiaveProdotto = a.ChiaveProdotto  



UPDATE m1
SET m1.label_pai_a = NULLIF(CONCAT_WS(', ',
        NULLIF(m2.PAI_LAB_A_Emissioni_Gas_Serra, ''),
        NULLIF(m2.PAI_LAB_A_Biodiversita, ''),
        NULLIF(m2.PAI_LAB_A_Acqua, ''),
        NULLIF(m2.PAI_LAB_A_Rifiuti, ''),
        NULLIF(m2.PAI_LAB_A_Gov_Ambientale, ''),
        NULLIF(m2.PAI_LAB_A_Comb_Fossili, ''),
        NULLIF(m2.PAI_LAB_A_Eff_energetica, '')
        -- NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
        -- NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM C6STAGING.ESG_ANAG_METRICHE m1
INNER JOIN C6STAGING.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')



	

UPDATE m1
SET m1.label_pai_s = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
       NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM C6STAGING.ESG_ANAG_METRICHE m1
INNER JOIN C6STAGING.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')

	--select * from C6STAGING.ESG_ANAG_METRICHE
	
UPDATE m1
SET m1.Label_U_INFO_ESG = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.LABEL_Green_Bond, ''),
       NULLIF(m2.Label_Social_Bond, ''),
	   NULLIF(m2.Label_Sustainability_Bond, ''),
	   NULLIF(m2.Label_Transition_Bond, ''),
	   NULLIF(m2.Label_Sust_linked_Bond, ''),
	   NULLIF(m2.Label_EU_Green_Bond_Standard, ''),
	   NULLIF(m2.CatSFDR, ''),
	   NULLIF(m2.U_INFO_ESG, '')
	   ), '')
FROM C6STAGING.ESG_ANAG_METRICHE m1
INNER JOIN C6STAGING.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')






  

	
		
	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ESG_ANAG_METRICHE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ESG_ANAG_METRICHE'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmail]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--delete from c6mart.gestione_Email where data_Generazione > getDate()-1
--truncate table log_esecuzione
--select * from log_esecuzione
CREATE   procedure [C6Mart].[RP_DM_GestioneEmail] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	PERFEZIONAMENTO;
--	MANCATA MIGRAZIONE;
--	REINVIO SOLLECITO MANCATA MIGRAZIONE.

--LA GESTIONE DELLE EMAIL PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO O
--PER REINVIO DEL SOLLECITO PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO 
--VIENE FATTA DOPO L'ALLINEAMENTO CON I DATI DEL SIMPB

	
--ESTRAZIONE EMAIL PERFEZIONAMENTO
--TIPO EMAIL: "PERF"
--L'EMAIL VIENE INVIATA PER TUTTI I CLIENTI CHE HANNO DATA DI PERFEZIONAMENTO VALORIZZATA
--IL CONTROLLO SULLA DATA DI GENERAZIONE >= DELLA DATA DI PERFEZIONAMENTO E' DOVUTO AL
--FATTO CHE IL CONTRATTO PUO` ESSERE CHIUSO E RIAPERTO ED IN QUESTO CASO LA MAIL DI PERFEZIONAMENTO
--DEVE ESSERE REINVIATA

-- EMAIL DI ADESIONE AL SERVIZIO SEI
-- TIPO EMAIL 'PERF'
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_GestioneEmail - Mail Perf',GETDATE(),'Elaborazione giornaliera')
	
	
--0. MODIFICO I RECORD IN GESTIONE EMAIL CON TIPO = PERF PER EVITARE IL REINVIO MULTIPLO A SEGUITO DELLA RIATTIVAZIONE 
--UPDATE C6MART.GESTIONE_EMAIL
--SET TIPO = 'OLD'
--FROM C6MART.Gestione_EMAIL EMAIL
--	INNER JOIN C6MART.VCONTRATTI VC
--	   ON VC.COD_FISCALE = EMAIL.COD_FISCALE
--	   AND VC.rete = EMAIL.RETE
--	   AND EMAIL.TIPO = 'PERF'
--    INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC
--       ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
--       AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' 
--       AND MC.Tip_riattivazione = 1


--1. INSERIMENTO MAIL DI "PERFEZIONAMENTO"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- NON PRESENTI SU GESTIONE_EMAIL

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione, ID_ELAB)
-------------------------------------------------------------------------CLIENTI SEI--------------------------------------------------------------------------------
SELECT 
	VC.Rete,
	VC.Cod_Fiscale,
	'PERF' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.VCONTRATTI VC
INNER JOIN C6Mart.CONTRATTOSEI_METADATI MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6Mart.GESTIONE_EMAIL EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF'						
	AND EMAIL.Data_Generazione >= VC.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	--AND VC.InvioBenvenuto = 'N'
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	and vc.TIP_CONTRATTO<>3
	---------------------------------------------------------------------FINE CLIENTI SEI------------------------------------------------------------
union all
    ---------------------------------------------------------------------CLIENTI REMOTE ADVISORY--------------------------------------------------------
SELECT 
	VC.Rete,
	VC.Cod_Fiscale,
	'PERF_DA' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.VCONTRATTI VC
INNER JOIN C6Mart.CONTRATTOSEI_METADATI MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6Mart.GESTIONE_EMAIL EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF_DA'						
	AND EMAIL.Data_Generazione >= VC.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	--AND VC.InvioBenvenuto = 'N'
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	and vc.TIP_CONTRATTO=3
	 ---------------------------------------------------------------------FINE CLIENTI REMOTE ADVISORY--------------------------------------------------------
	
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf' AND
	Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf')

--------en
--------INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
--------	VALUES ('RP_DM_GestioneEmail - SollecitiNOMIG',GETDATE(),'Elaborazione giornaliera')

---------- 2. INSERIMENTO MAIL "SOLLECITI"
---------- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
---------- E PRESENTI SU GESTIONE_EMAIL
---------- IL PB NON HA EFFETTUATO LA MIGRAZIONE
---------- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF

--------INSERT INTO C6Mart.GESTIONE_EMAIL
--------	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
--------SELECT 
--------	VC.rete,
--------	VC.cod_fiscale,
--------	CASE 
--------		WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOMIG'
--------		WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOMIG'
--------		WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOMIG'
--------		ELSE 'S_SOLL_NOMIG'
--------	END as tipoEmail,
--------	getDate() as DataGenerazione,
--------	@ID_ELAB AS ID_ELAB
--------FROM C6Mart.VCONTRATTI VC
--------INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
--------		ON MD.chiaveclientepb = VC.chiaveclientepb
--------LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
--------	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
--------	AND VC.RETE = PF.RETE
--------WHERE 1 = 1
--------	AND MD.numSolleciti < @MaxInvioSoll
--------	AND (
--------			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
--------			 OR
--------			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
--------		)
--------	AND MD.clienteMigrato = 'N'
--------	AND MD.InvioBenvenuto = 'N' 
--------	AND VC.Data_FineAvanzato > getDate()
--------	--AND MD.GenerazioneReport = 'S'
--------	AND PF.RETE IS NULL
		

---------- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
---------- AUMENTIAMO IL NUMERO numSolleciti
---------- AGGIORNIAMO LA DATA Data_UltimoSollecito

--------UPDATE 
--------	c6mart.[CONTRATTOSEI_METADATI]
--------SET 
--------	numSolleciti = isnull(numSolleciti,0) + 1,
--------	Data_UltimoSollecito = getDate()
--------FROM C6Mart.vcontratti VC
--------INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
--------		ON MD.ChiaveClientePb = VC.ChiaveClientePb
--------LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
--------	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
--------	AND VC.RETE = PF.RETE
--------WHERE 1 = 1
--------	AND MD.numSolleciti < @MaxInvioSoll
--------	AND (
--------			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
--------			 OR
--------			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
--------		)
--------	AND MD.clienteMigrato = 'N'
--------	AND MD.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
--------	AND VC.Data_FineAvanzato > getDate()
--------	--AND VC.GenerazioneReport = 'S'
--------	AND PF.RETE IS NULL
		
---------- Log esecuzione
--------UPDATE LOG_ESECUZIONE
--------SET	Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
--------WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG' AND Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG')
----------------en

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - Mail Revoca',GETDATE(),'Elaborazione giornaliera')

-- 3. INSERIMENTO MAIL "REVOCA"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE DOPO @MaxInvioSoll SOLLECITI
-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.clienteMigrato = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
--		OVVERO: BUONA LA MIGRAZIONE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

--rimosso perche dava errori/ da attivare eventualmente
--INSERT INTO C6Mart.GESTIONE_EMAIL
--	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
--SELECT  
--	email.rete,
--	email.cod_fiscale,
--	'REVOCA_NOMIG' as tipoEmail,
--	getDate() as DataGenerazione,
--	@ID_ELAB AS ID_ELAB --max(Data_Generazione)
--FROM C6Mart.vcontratti VC
--INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
--		ON MD.chiaveclientepb = VC.chiaveclientepb
--INNER JOIN c6mart.gestione_Email EMAIL
--	ON VC.RETE = EMAIL.RETE
--	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
--LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
--	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
--	AND VC.RETE = PF.RETE
--WHERE 1 = 1
--	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
--	AND (
--			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
--			OR 
--			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
--		)
--	AND VC.Data_FineAvanzato > getDate()
--	--AND VC.GenerazioneReport = 'S'
--	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
--	AND PF.RETE IS NULL
--GROUP BY email.rete, email.cod_fiscale
--rimosso perche dava errori/ da attivare eventualmente	


-- 3.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
-- AUMENTIAMO IL NUMERO numSolleciti
-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

UPDATE c6mart.[CONTRATTOSEI_METADATI]
SET 
	numRevoche = isnull(numRevoche,0) + 1,
	data_UltimaRevoca = getDate()
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN c6mart.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL


	update C6Mart.GESTIONE_EMAIL
	set Inviata = 'S', Data_Invio = getdate()
	where Cod_Fiscale = 'CRCTMS62A05H501D'
		

-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca' AND Inizio = (
		SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca')

COMMIT

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmail_20161028]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--delete from c6mart.gestione_Email where data_Generazione > getDate()-1
--truncate table log_esecuzione
--select * from log_esecuzione
CREATE procedure [C6Mart].[RP_DM_GestioneEmail_20161028] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	PERFEZIONAMENTO;
--	MANCATA MIGRAZIONE;
--	REINVIO SOLLECITO MANCATA MIGRAZIONE.

--LA GESTIONE DELLE EMAIL PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO O
--PER REINVIO DEL SOLLECITO PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO 
--VIENE FATTA DOPO L'ALLINEAMENTO CON I DATI DEL SIMPB

	
--ESTRAZIONE EMAIL PERFEZIONAMENTO
--TIPO EMAIL: "PERF"
--L'EMAIL VIENE INVIATA PER TUTTI I CLIENTI CHE HANNO DATA DI PERFEZIONAMENTO VALORIZZATA
--IL CONTROLLO SULLA DATA DI GENERAZIONE >= DELLA DATA DI PERFEZIONAMENTO E' DOVUTO AL
--FATTO CHE IL CONTRATTO PUO` ESSERE CHIUSO E RIAPERTO ED IN QUESTO CASO LA MAIL DI PERFEZIONAMENTO
--DEVE ESSERE REINVIATA

-- EMAIL DI ADESIONE AL SERVIZIO SEI
-- TIPO EMAIL 'PERF'
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_GestioneEmail - Mail Perf',GETDATE(),'Elaborazione giornaliera')
	
	
--0. MODIFICO I RECORD IN GESTIONE EMAIL CON TIPO = PERF PER EVITARE IL REINVIO MULTIPLO A SEGUITO DELLA RIATTIVAZIONE 
--UPDATE C6MART.GESTIONE_EMAIL
--SET TIPO = 'OLD'
--FROM C6MART.Gestione_EMAIL EMAIL
--	INNER JOIN C6MART.VCONTRATTI VC
--	   ON VC.COD_FISCALE = EMAIL.COD_FISCALE
--	   AND VC.rete = EMAIL.RETE
--	   AND EMAIL.TIPO = 'PERF'
--    INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC
--       ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
--       AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' 
--       AND MC.Tip_riattivazione = 1


--1. INSERIMENTO MAIL DI "PERFEZIONAMENTO"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- NON PRESENTI SU GESTIONE_EMAIL

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione, ID_ELAB)
SELECT 
	VC.Rete,
	VC.Cod_Fiscale,
	'PERF' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.VCONTRATTI VC
INNER JOIN C6Mart.CONTRATTOSEI_METADATI MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6Mart.GESTIONE_EMAIL EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF'						
	AND EMAIL.Data_Generazione >= VC.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	--AND VC.InvioBenvenuto = 'N'
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf' AND
	Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - SollecitiNOMIG',GETDATE(),'Elaborazione giornaliera')

-- 2. INSERIMENTO MAIL "SOLLECITI"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE
-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT 
	VC.rete,
	VC.cod_fiscale,
	CASE 
		WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOMIG'
		WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOMIG'
		WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOMIG'
		ELSE 'S_SOLL_NOMIG'
	END as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.VCONTRATTI VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' 
	AND VC.Data_FineAvanzato > getDate()
	--AND MD.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
		

-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
-- AUMENTIAMO IL NUMERO numSolleciti
-- AGGIORNIAMO LA DATA Data_UltimoSollecito

UPDATE 
	c6mart.[CONTRATTOSEI_METADATI]
SET 
	numSolleciti = isnull(numSolleciti,0) + 1,
	Data_UltimoSollecito = getDate()
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG' AND Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - Mail Revoca',GETDATE(),'Elaborazione giornaliera')

-- 3. INSERIMENTO MAIL "REVOCA"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE DOPO @MaxInvioSoll SOLLECITI
-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.clienteMigrato = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
--		OVVERO: BUONA LA MIGRAZIONE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT  
	email.rete,
	email.cod_fiscale,
	'REVOCA_NOMIG' as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB --max(Data_Generazione)
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN c6mart.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
GROUP BY email.rete, email.cod_fiscale
		


-- 3.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
-- AUMENTIAMO IL NUMERO numSolleciti
-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

UPDATE c6mart.[CONTRATTOSEI_METADATI]
SET 
	numRevoche = isnull(numRevoche,0) + 1,
	data_UltimaRevoca = getDate()
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN c6mart.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
		

-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca' AND Inizio = (
		SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca')

COMMIT

END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmailNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6Mart].[RP_DM_GestioneEmailNA]
AS
BEGIN



DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)--7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)--12
SET @ID_ELAB = C6MART.GETIDELAB()

	INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
		VALUES ('RP_DM_GestioneEmailNA_AND',GETDATE(),'Elaborazione giornaliera')

BEGIN TRANSACTION

	 
	SELECT DISTINCT ChiaveClientePB 
	   INTO #CaricamentoMassivoC6SC
	FROM [CONSUNI].ConsulenzaUnicaFL.dbo.CaricamentoMassivoC6SC WHERE ESITO = 0 AND CHIUSO = 'N'	   
	
	SELECT 
		vc.rete,
		vc.cod_fiscale,
		VC.ChiaveClientePb,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOASS'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOASS'
			ELSE 'S_SOLL_NOASS'
		END as tipoEmail,
		getDate() as DataGenerazione,
		CASE WHEN  RSES.chiaveclientepb IS NULL THEN 'N' ELSE 'S' END AS ContrRSES,
		@ID_ELAB AS ID_ELAB 
	   INTO #CLIENTINA
    FROM C6Mart.vcontrattisei VC		 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	LEFT JOIN #CaricamentoMassivoC6SC RSES
	    ON  RSES.chiaveclientepb = VC.chiaveclientepb 
	WHERE 1 = 1
		AND VC.numSolleciti < @MaxInvioSoll
		
		-- modifica del 3/10/2018 per gestire i casi in cui VC.Data_UltimoSollecito = 0 e che manda in errore
		--   la sp (Error: Implicit conversion from data type datetime to smallint is not allowed. Use the CONVERT function to run this query) 
				
				--AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				--		 OR
				--	 (DATEDIFF(DAY,isnull(VC.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO))

				AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
			 (DATEDIFF(DAY,isnull( 
						 case when  isdate(VC.Data_UltimoSollecito) = 1
						 then VC.Data_UltimoSollecito
						 else
						 GETDATE()
						 end
						 ,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO))
			--fine  modifica del 3/10/2018
		
		-- modifica del 3/10/2018 per gestire i valori 'date' del campo e che mandano in errore di conversione la sp
				--AND VC.InvioBenvenuto = 'N'	 	
			AND cast(VC.InvioBenvenuto as varchar) = 'N'
		-- fine modifica del 3/10/2018

		AND VC.clienteMigrato = 'S' 
		AND VC.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()		 
		AND PF.RETE IS NULL
		--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
 
	
	INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		rete,
		cod_fiscale,
		tipoEmail,
		DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM #CLIENTINA  
	WHERE ContrRSES = 'S'
	
	UPDATE c6mart.CONTRATTOSEI_METADATI	
	SET  numSolleciti = isnull(numSolleciti,0) + 1, Data_UltimoSollecito = getDate()
	where chiaveclientepb in (
	select chiaveclientepb FROM #CLIENTINA 
	WHERE ContrRSES = 'S')
 
	 
	
 		 
     INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOASS' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB  
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()		 
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
	GROUP BY email.rete, email.cod_fiscale
 

	UPDATE c6mart.[CONTRATTOSEI_METADATI] SET numRevoche = isnull(numRevoche,0) + 1, data_UltimaRevoca = getDate()
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)

	update C6Mart.GESTIONE_EMAIL
	set Inviata = 'S', Data_Invio = getdate()
	where Cod_Fiscale = 'CRCTMS62A05H501D'
		
		
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA_AND' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA_AND'
		)
		
		 
COMMIT


END




GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmailNA_20181003]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6Mart].[RP_DM_GestioneEmailNA_20181003]
AS
BEGIN



DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)--7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)--12
SET @ID_ELAB = C6MART.GETIDELAB()

	INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
		VALUES ('RP_DM_GestioneEmailNA_AND',GETDATE(),'Elaborazione giornaliera')

BEGIN TRANSACTION

	 
	SELECT DISTINCT ChiaveClientePB 
	   INTO #CaricamentoMassivoC6SC
	FROM [CONSUNI].ConsulenzaUnicaFL.dbo.CaricamentoMassivoC6SC WHERE ESITO = 0 AND CHIUSO = 'N'	   
	
	SELECT 
		vc.rete,
		vc.cod_fiscale,
		VC.ChiaveClientePb,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOASS'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOASS'
			ELSE 'S_SOLL_NOASS'
		END as tipoEmail,
		getDate() as DataGenerazione,
		CASE WHEN  RSES.chiaveclientepb IS NULL THEN 'N' ELSE 'S' END AS ContrRSES,
		@ID_ELAB AS ID_ELAB 
	   INTO #CLIENTINA
    FROM C6Mart.vcontrattisei VC		 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	LEFT JOIN #CaricamentoMassivoC6SC RSES
	    ON  RSES.chiaveclientepb = VC.chiaveclientepb 
	WHERE 1 = 1
		AND VC.numSolleciti < @MaxInvioSoll
		AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
			 (DATEDIFF(DAY,isnull(VC.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO))
		AND VC.InvioBenvenuto = 'N'	 	
		AND VC.clienteMigrato = 'S' 
		AND VC.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()		 
		AND PF.RETE IS NULL
		--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
 
	
	INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		rete,
		cod_fiscale,
		tipoEmail,
		DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM #CLIENTINA  
	WHERE ContrRSES = 'S'
	
	UPDATE c6mart.CONTRATTOSEI_METADATI	
	SET  numSolleciti = isnull(numSolleciti,0) + 1, Data_UltimoSollecito = getDate()
	where chiaveclientepb in (
	select chiaveclientepb FROM #CLIENTINA 
	WHERE ContrRSES = 'S')
 
	 
	
 		 
     INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOASS' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB  
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()		 
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
	GROUP BY email.rete, email.cod_fiscale
 

	UPDATE c6mart.[CONTRATTOSEI_METADATI] SET numRevoche = isnull(numRevoche,0) + 1, data_UltimaRevoca = getDate()
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		--AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
		
		
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA_AND' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA_AND'
		)
		
		 
COMMIT


END




GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmailNA_Fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <17/11/2008,,>
-- Description:	<Popola la tabella email con i clienti a cui deve essere inviato il report con risorse non associate,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[RP_DM_GestioneEmailNA_Fc]
AS
BEGIN



DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)--7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)--12
SET @ID_ELAB = C6MART.GETIDELAB()


	 
	SELECT DISTINCT ChiaveClientePB 
	   INTO #CaricamentoMassivoC6SC
	FROM [CONSEVO].ConsulenzaEvolutaFL.dbo.CaricamentoMassivoC6SC WHERE ESITO = 0 AND CHIUSO = 'N'	   
	
	SELECT 
		vc.rete,
		vc.cod_fiscale,
		VC.ChiaveClientePb,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOASS'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOASS'
			ELSE 'S_SOLL_NOASS'
		END as tipoEmail,
		getDate() as DataGenerazione,
		CASE WHEN  RSES.chiaveclientepb IS NULL THEN 'N' ELSE 'S' END AS ContrRSES,
		@ID_ELAB AS ID_ELAB 
	   INTO #CLIENTINA
    FROM C6Mart.vcontrattisei VC		 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	LEFT JOIN #CaricamentoMassivoC6SC RSES
	    ON  RSES.chiaveclientepb = VC.chiaveclientepb 
	WHERE 1 = 1
		AND VC.numSolleciti < @MaxInvioSoll
		AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
			 (DATEDIFF(DAY,isnull(VC.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO))
		AND VC.InvioBenvenuto = 'N'	 	
		AND VC.clienteMigrato = 'S' 
		AND VC.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()		 
		AND PF.RETE IS NULL
		AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmail_Fc)
 
	
	--INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		rete,
		cod_fiscale,
		tipoEmail tipo,
		DataGenerazione Data_Generazione,
		@ID_ELAB AS ID_ELAB
	into Gestione_Email_FC	
	FROM #CLIENTINA  
	WHERE ContrRSES = 'S'
	
	--UPDATE c6mart.CONTRATTOSEI_METADATI	
	--SET  numSolleciti = isnull(numSolleciti,0) + 1, Data_UltimoSollecito = getDate()
	--where chiaveclientepb in (
	--select chiaveclientepb FROM #CLIENTINA 
	--WHERE ContrRSES = 'S')
 
	 
	
 		 
    INSERT INTO Gestione_Email_FC (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOASS' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB  
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()		 
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		AND VC.COD_FISCALE + VC.RETE IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmail_FC)
	GROUP BY email.rete, email.cod_fiscale
 

		
	


END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmailNOPRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select * from c6mart.gestione_Email where data_Generazione > getDate()-1 and tipo like '%pro%'
-- =============================================
-- Author:		<Valerio,,Name>
-- Create date: <19/14/2011,,> -1 ai -2!
-- Description:	<Popola la tabella email con i clienti con profilo scaduto>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_GestioneEmailNOPRO]
AS
BEGIN

BEGIN TRANSACTION	

DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)
SET @ID_ELAB = C6MART.GETIDELAB()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'RP_DM_GestioneEmailNOPRO',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 1. INSERIMENTO MAIL "SOLLECITI"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA ATTIVATO UN PROFILO VALIDO AL CLIENTE
	-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF
		
	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		VC.rete,
		VC.cod_fiscale,
		CASE 
			WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOPRO'
			WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOPRO'
			WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOPRO'
			ELSE 'S_SOLL_NOPRO'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'N'
		AND MD.profiloAttivo = 0
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		and vc.TIP_CONTRATTO<>3

		union 

			SELECT 
		VC.rete,
		VC.cod_fiscale,
		CASE 
			WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOPRO_DA'
			WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOPRO_DA'
			WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOPRO_DA'
			ELSE 'S_SOLL_NOPRO_DA'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'N'
		AND MD.profiloAttivo = 0
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		and vc.TIP_CONTRATTO=3
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 1.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- AGGIORNIAMO LA DATA Data_UltimoSollecito

	UPDATE 
		c6mart.CONTRATTOSEI_METADATI
	SET 
		numSolleciti = isnull(numSolleciti,0) + 1,
		Data_UltimoSollecito = getDate()
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'N'
		AND MD.profiloAttivo = 0
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 2. INSERIMENTO MAIL "REVOCA"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ATTIVAZIONE DEL PROFILO @MaxInvioSoll SOLLECITI
	-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.risorseNA = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
	--		OVVERO: BUONA L'ASSOCIAZIONE DELLE RISORSE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOPRO' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB --max(Data_Generazione)
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.ChiaveClientePb = VC.ChiaveClientePb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOPRO','REVOCA_NOPRO')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.profiloAttivo = 0)-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
	GROUP BY email.rete, email.cod_fiscale
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
	-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

	UPDATE c6mart.[CONTRATTOSEI_METADATI]
	SET 
		numRevoche = isnull(numRevoche,0) + 1,
		data_UltimaRevoca = getDate()
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.ChiaveClientePb = VC.ChiaveClientePb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOPRO','REVOCA_NOPRO')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.profiloAttivo = 0)-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL


	update C6Mart.GESTIONE_EMAIL
	set Inviata = 'S', Data_Invio = getdate()
	where Cod_Fiscale = 'CRCTMS62A05H501D'

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

COMMIT

 

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_GestioneEmailSessione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <17/11/2008,,>
-- Description:	<Popola la tabella email con i clienti a cui deve essere inviato il report con risorse non associate,,>
-- =============================================
CREATE PROCEDURE [C6Mart].[RP_DM_GestioneEmailSessione]
AS
BEGIN



DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) - 1 --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) - 1 --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)--12
SET @ID_ELAB = C6MART.GETIDELAB()
 
	INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
		VALUES ('RP_DM_GestioneEmailSessione',GETDATE(),'Elaborazione giornaliera')

     --select * from [CONSEVO].ConsulenzaEvolutaFL.dbo.CaricamentoMassivoC6SC
     --where  DataGenerazione < convert(datetime,convert (varchar, getdate(), 112))
   
 	 update  [CONSEVO].ConsulenzaEvolutaFL.dbo.CaricamentoMassivoC6SC set chiuso = 'S'	 
	 where  DataGenerazione < convert(datetime,convert (varchar, getdate(), 112))
	 
	SELECT *
	  INTO #CaricamentoMassivoC6SC
	FROM [CONSEVO].ConsulenzaEvolutaFL.dbo.CaricamentoMassivoC6SC WHERE CHIUSO = 'N'	 
	 
	INSERT INTO [CONSEVO].ConsulenzaEvolutaFL.dbo.CaricamentoMassivoC6SC	 
	SELECT DISTINCT VC.chiaveclientepb,GETDATE(),-2,'N'  
	FROM C6Mart.vcontrattisei VC		 
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	LEFT JOIN #CaricamentoMassivoC6SC RSES
	    ON  RSES.chiaveclientepb = VC.chiaveclientepb 
	WHERE 1 = 1
		AND VC.numSolleciti < @MaxInvioSoll
		AND ((ISNULL(VC.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
			 (DATEDIFF(DAY,isnull(VC.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO))
		AND VC.InvioBenvenuto = 'N'	 	
		--AND (VC.clienteMigrato = 'N' OR VC.risorseNA = 'S' OR VC.PROFILOATTIVO = 0)
		AND VC.clienteMigrato = 'S'
		AND VC.risorseNA = 'S' 
		AND VC.Data_FineAvanzato > getDate()		 
		AND PF.RETE IS NULL
		AND RSES.chiaveclientepb IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailSessione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailSessione'
		)
		
		 
 


END
 
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_ALTRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE C6MART.PATRIMONIO_ALTRO

INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	-- AC: Modifica del 11/10/2018 in seguito ad errore su CF: GLBGDU58B07F712V
	--and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
	and VCONTRATTI.COD_FISCALE NOT IN ('LRNLCU73D28I470U', 'GLBGDU58B07F712V')
	-- AC: Fine Modifica

UNION ALL

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	--(dettAltriProd.valoreStimato) as valore,
	SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
	
	
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	-- AC: Modifica del 11/10/2018 in seguito ad errore su CF: GLBGDU58B07F712V
	--and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
	and VCONTRATTI.COD_FISCALE NOT IN ('LRNLCU73D28I470U', 'GLBGDU58B07F712V')
	-- AC: Fine Modifica
	
	
	--inizio intervento
	--Fcianfa 25/08/2015 intervento segnalato da ticket n4t4, per calcolare il ctv viene erroneamente effettuata una somma che fa si che sul report per ogni riga viene riportato il totale.
	
	INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	
	
	dettPatrAz.valoreStimato AS CTV,
	--SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
    @ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	-- AC: Modifica del 11/10/2018 in seguito ad errore su CF: GLBGDU58B07F712V
	--and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
	and VCONTRATTI.COD_FISCALE NOT IN ('LRNLCU73D28I470U', 'GLBGDU58B07F712V')
	-- AC: Fine Modifica

UNION ALL

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	dettAltriProd.valoreStimato AS CTV,
	--SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
    @ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
	
	
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	-- AC: Modifica del 11/10/2018 in seguito ad errore su CF: GLBGDU58B07F712V
	--and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
	and VCONTRATTI.COD_FISCALE NOT IN ('LRNLCU73D28I470U', 'GLBGDU58B07F712V')
	-- AC: Fine Modifica
--fine intervento 
	
	
	
	
--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	RP_DettProdottiTerzi.numQuote AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV, (sto vedendo con Serena)
--	NULL AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
--INNER JOIN C6Staging.RP_DettProdottiTerzi
--ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18

--UNION

--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	NULL AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV, (sto vedendo con Serena)
--	NULL  AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_ALTRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_ALTRO'
		)

END






GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO_20150825]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO_20150825]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_ALTRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE C6MART.PATRIMONIO_ALTRO

INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB

UNION ALL

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	--(dettAltriProd.valoreStimato) as valore,
	SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
	
	
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB

--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	RP_DettProdottiTerzi.numQuote AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV, (sto vedendo con Serena)
--	NULL AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
--INNER JOIN C6Staging.RP_DettProdottiTerzi
--ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18

--UNION

--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	NULL AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV, (sto vedendo con Serena)
--	NULL  AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_ALTRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_ALTRO'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO_20160615]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO_20160615]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_ALTRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE C6MART.PATRIMONIO_ALTRO

INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'

UNION ALL

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	--(dettAltriProd.valoreStimato) as valore,
	SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
	
	
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
	
	
	--inizio intervento
	--Fcianfa 25/08/2015 intervento segnalato da ticket n4t4, per calcolare il ctv viene erroneamente effettuata una somma che fa si che sul report per ogni riga viene riportato il totale.
	
	INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	
	
	dettPatrAz.valoreStimato AS CTV,
	--SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
    @ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE = 'LRNLCU73D28I470U'

UNION ALL

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	dettAltriProd.valoreStimato AS CTV,
	--SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
    @ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
	
	
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE = 'LRNLCU73D28I470U'
--fine intervento 
	
	
	
	
--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	RP_DettProdottiTerzi.numQuote AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV, (sto vedendo con Serena)
--	NULL AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
--INNER JOIN C6Staging.RP_DettProdottiTerzi
--ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18

--UNION

--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	NULL AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV, (sto vedendo con Serena)
--	NULL  AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_ALTRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_ALTRO'
		)

END






GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
-- =============================================
CREATE   procedure [C6Mart].[RP_DM_PATRIMONIO_BF]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf where nob_prez is null
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

--delete TEMPORANEA per superare un problema del WS che restituisce una riga doppia

--delete from c6staging.spb_contr_sintesi
--where codicefiscale = 'MNTMRC82C08I608Y'
--and CODICEMAF = '1362945'
--and ISIN = 'IE00B42Z5J44'

--delete from c6staging.spb_contr_sintesi
--where codicefiscale = 'FZAMRA55C50H501E'
--and CODICEMAF = '1362945'
--and ISIN = 'IE00B42Z5J44'



	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()
	

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	--TRUNCATE TABLE C6MART.PATRIMONIO_BF
	DELETE FROM C6MART.PATRIMONIO_BF

	
	TRUNCATE TABLE C6Staging.RP_Consulenza


--Ricerco dati da Pianificazione
 SELECT
	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pirmod.nomeProgetto
	--,pian.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,pro.chiaveProgetto
	,pro.area
	,pro.tipoProgetto
	,catprod.azob as StrType
	,catprod.Complessita
	,emit.Descrizione AS DescrizioneEmittente
	,PosPor.conto
	,PosPor.rubricato
	,PosPor.codConf
	,PosPor.numPolizza
	,PosPor.custGar
	,catprod.TipoProdotto
	,catprod.CodSottoprodotto
	,catprod.CodInterno
	,catprod.CodMaf
	,catprod.CodIsin
	,'' as position_id
    ,termId 
	,anno 
	,prog 
	,case when nob.CODCONF_ES is null then 'N' else 'S' end as nob_prez

INTO #TempPianif
FROM
		C6Staging.RP_Pianificazione AS pian
	INNER JOIN C6Staging.RP_Progetto AS pro
		ON pian.chiaveConsulenza = pro.chiaveConsulenza
	INNER JOIN C6Staging.RP_ProgettiPiramideModello pirmod
		ON pro.chiaveprogettoMod=pirmod.chiaveprogettomod
	INNER JOIN C6Staging.RP_PosizioniPortafoglio AS pospor
		ON pro.chiaveProgetto = pospor.chiaveProgetto
	INNER JOIN C6Staging.RP_DettaglioPosizionePortafoglio AS dettposport
		ON pospor.chiavePosizionePtf = dettposport.chiavePosizionePtf
	INNER JOIN C6Staging.RP_CatalogoProdotti AS catprod
		ON pospor.chiaveProdotto = catprod.ChiaveProdotto
	LEFT JOIN C6Staging.RP_AnEmittente emit
         ON catprod.emittente=emit.emittente
    INNER JOIN C6Mart.VCONTRATTI contr
		ON pian.chiaveClientePB = contr.chiaveClientePB
	JOIN C6mart.contrattosei_metadati meta
		ON contr.chiaveClientePB = meta.chiaveClientePB 
	LEFT JOIN [C6Staging].[RP_NobPrez] nob 
		ON PosPor.CODCONF=nob.CODCONF_ES
		and contr.chiaveClientePB=nob.CHIAVECLIENTEPB
		and catprod.dossier=nob.dossier
		
	WHERE		 
	pospor.dtFineValidita > getdate()
	AND pro.dtfinevalidita='9999-12-31 00:00:00.000'
	AND pirmod.dtfinevalidita='9999-12-31 00:00:00.000'
	AND (INVIOBENVENUTO = 'N')--or contr.cod_fiscale='RMNFNC55T03A783I')


INSERT INTO C6Staging.RP_Consulenza  
	SELECT * 
	FROM #TempPianif 

--UNION ALL	
----ricerco dati da Migrazione
--SELECT
--	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
--	,contr.rete
--	,contr.cod_fiscale
--	,pirmod.nomeProgetto
--	--,mig.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
--	,promig.chiaveProgetto
--	,promig.area
--	,promig.tipoProgetto
--	,catprod.azob as StrType
--	,catprod.Complessita
--	,emit.Descrizione AS DescrizioneEmittente
--	,MigPos.conto
--	,MigPos.rubricato
--	,MigPos.codConf
--	,MigPos.numPolizza
--	,MigPos.custGar
--	,catprod.TipoProdotto
--	,catprod.CodSottoprodotto
--	,catprod.CodInterno
--	,catprod.CodMaf
--	,catprod.CodIsin
--	,'' as position_id
--	,migpos.termId 
--	,migpos.anno 
--	,migpos.prog 
--FROM
--	C6Staging.RP_Migraz_Pianificazione AS mig
--	INNER JOIN C6Staging.RP_Migraz_Progetto AS promig
--		ON mig.chiaveconsulenza = promig.chiaveconsulenza
--	INNER JOIN C6Staging.RP_ProgettiPiramideModello pirmod
--		ON promig.chiaveprogettoMod=pirmod.chiaveprogettomod
--	INNER JOIN C6Staging.RP_Migraz_Posizioni AS migpos
--		ON promig.chiaveprogetto = migpos.chiaveprogetto
--	INNER JOIN C6Staging.RP_CatalogoProdotti AS catprod
--		ON migpos.chiaveProdotto = catprod.ChiaveProdotto
--	LEFT JOIN C6Staging.RP_AnEmittente emit
--		ON catprod.emittente=emit.emittente
--	INNER JOIN C6Mart.VCONTRATTI contr
--		ON mig.chiaveClientePB = contr.chiaveClientePB
--	INNER JOIN C6Mart.CONTRATTOSEI_METADATI c6meta
--		ON c6meta.chiaveClientePB = contr.chiaveClientePB
--	LEFT JOIN #TempPianif tp
--		ON mig.chiaveClientePB = tp.chiaveClientePB
--	WHERE
--	 pirmod.dtfinevalidita='9999-12-31 00:00:00.000'
--	AND tp.chiaveClientePB IS NULL	
--	AND INVIOBENVENUTO = 'N'
--	AND migpos.dtfinevalidita > getDate()

	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

	
 --	AGGIORNAMENTO POSITION_ID SU CONSULENZA 
--drop table #TempPianif
 --select * from c6staging.rp_consulenza tempo d'esecuzione su 3622 righe 10min
	EXEC c6staging.RP_CREA_POSITIONID_CONSULENZA  
	 
	INSERT INTO C6MART.TEST_QUALITY
		SELECT distinct RETE,COD_FISCALE,'POSITIONID DI CONSULENZA NON VALIDO' 
				FROM  c6staging.rp_consulenza  WHERE isnull(position_id ,'')=''
    

--*****************************
	--PROBLEMA CON POSITION ID ASU2 LSEL
	--select * from c6staging.rp_consulenza where position_id is null

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODICEFISCALE AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
			ELSE SPB.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB.CODICESTATO AS COD_STATO,
		SPB.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB.CODICEMAF AS COD_MAF,
		SPB.CODICEINTERNO AS COD_INTERNO,
		SPB.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB.TIPOPRODOTTO AS TIPO_PRODOTTO,

		--CASE
		--	WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'		16/09/2016
		--	ELSE LTRIM(RTRIM(CON.nomeProgetto))
		--END AS NOME_PROGETTO,

		-- Modifica del 1/2/2018 per gestire la mancata generazione dei report del giornaliero nel caso in cui il 
		-- nomeProgetto non è valorizzato (la classe DSS160ProdottiAreeBisogno.cs in caso di progetto investimento non 
		-- non valorizza il datatable 'dettaglioProgetti' quando il nome del progetto non è valorizzato). Es. cf 'TMBCST76M67M082T'
		       
			   --CON.nomeProgetto AS NOME_PROGETTO,  --- COMMENTATO IL CASE WHEN, PRENDO DIRETTAMENTE IL NOME
			   CASE 
				   WHEN CON.area = 'inv' AND isnull(CON.nomeProgetto, '') = '' THEN 'Progetto Investimento'
				   ELSE CON.nomeProgetto
			   END AS NOME_PROGETTO,
		-- Fine Modifica del 1/2/2018

		CON.area AS ID_AREA,
		SPB.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		SPB.PREZZO AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDIMENTODASOTTOSCRIZIONE
		END AS REND_SOTTOSCRIZIONE,
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDIMENTODAINIZIOTRIMESTRE
		END AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDIMENTODAINIZIOANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,
		CON.chiaveProgetto,
		NULL as ClienteDB,
		CON.NOB_PREZ as NOB_PREZ,
		CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT')  THEN 'DT' else '' end as Dossier
		--,CON.lineaself
	INTO #PATRIMONIO
	FROM C6STAGING.SPB_CONTR_SINTESI SPB
	INNER JOIN C6Staging.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODICEFISCALE
		AND CON.Position_id = SPB.positionid	 
    WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPOPRODOTTO <> 'CC'
--***INIZIO INTERVENTI OMNIA*** 
	      and SPB.Isin <> 'EURO00000009'
	      and SPB.Isin <> 'EURO10000007'
		  and CON.area <> 'SELF'
--***FINE INTERVENTI OMNIA*** 


    
    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODICEFISCALE AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB.TIPOPRODOTTO = 'DT' /* OR SPB.TIPOPRODOTTO = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
			ELSE SPB.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB.CODICESTATO AS COD_STATO,
		SPB.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB.CODICEMAF AS COD_MAF,
		SPB.CODICEINTERNO AS COD_INTERNO,
		SPB.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB.TIPOPRODOTTO AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
--***INIZIO INTERVENTI OMNIA***
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CASE WHEN SPB.CTV>=0 						    THEN 'Liq' 
		WHEN SPB.CTV<0 and SPB.TIPOPRODOTTO = 'CC' 	    THEN 'Cc'
		WHEN SPB.CTV<0 and SPB.Isin 	     in('EURO00000009', 'EURO10000007') THEN 'Self'
		ELSE null 
		END AS ID_AREA,
--***FINE INTERVENTI OMNIA***
		SPB.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		SPB.PREZZO AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		SPB.CVN AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,  
		SPB.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
		SPB.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDIMENTODAINIZIOANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
		CON.chiaveProgetto,
		NULL as ClienteDB,
		CON.NOB_PREZ as NOB_PREZ,
			CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT')  THEN 'DT' else '' end as Dossier
		--,CON.lineaself
	FROM C6STAGING.SPB_CONTR_SINTESI SPB
	INNER JOIN C6Staging.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODICEFISCALE
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGING.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT OUTER JOIN C6STAGING.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPOPRODOTTO = 'CC'
--***INIZIO INTERVENTI OMNIA*** 
       OR SPB.Isin		   in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA***


	/*
	truncate table c6mart.patrimonio_bf
	select top 1 * from #patrimonio
 */
 
  
	 
SELECT [RETE]
      ,[COD_FISCALE]
      ,[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
      ,[STRTYPE]
      ,[COMPLEX]
      ,[EMITTENTE]
      ,[ISIN]
      ,[ChiaveClientePb]
	  ,[chiaveProgetto]
	  ,[ClienteDB]
	  ,[NOB_PREZ]
	  ,[Dossier]
  INTO #PATRIMONIO2
  FROM #PATRIMONIO

	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODICEFISCALE AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
			ELSE SPB.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB.CODICESTATO AS COD_STATO,
		SPB.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB.CODICEMAF AS COD_MAF,
		SPB.CODICEINTERNO AS COD_INTERNO,
		SPB.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB.TIPOPRODOTTO AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		SPB.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		SPB.PREZZO AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
			THEN NULL 
			ELSE convert(decimal(15,3),SPB.CVN)
		END AS VERSATO_NETTO,
		convert(decimal(15,3),SPB.PARTVIA) AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,
		convert(decimal(8,5),SPB.RENDIMENTODASOTTOSCRIZIONE) AS REND_SOTTOSCRIZIONE,
		convert(decimal(8,5),SPB.RENDIMENTODAINIZIOTRIMESTRE) AS REND_TRIMESTRE,
		convert(decimal(8,5),SPB.RENDIMENTODAINIZIOANNO) AS REND_ANNO,
        @ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
        PATR.STRTYPE,
        null as COMPLEX,
        null as EMITTENTE,
		SPB.ISIN,
		VCON.CHIAVECLIENTEPB,
		patr.chiaveProgetto,
		NULL as ClienteDB,
		PATR.NOB_PREZ as NOB_PREZ,
		CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT')  THEN 'DT' else '' end as Dossier
		FROM C6STAGING.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN #PATRIMONIO PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODICEFISCALE = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		--LEFT JOIN C6STAGING.RP_vNewPositionProposta NEWPOSITION
		--	ON	SPB.POSITIONID = NEWPOSITION.positionIDProposta
		
		JOIN C6MART.VCONTRATTI VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODICEFISCALE = VCON.COD_FISCALE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
 
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM #PATRIMONIO2
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    INSERT INTO C6MART.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE
    
	INSERT INTO C6MART.PATRIMONIO_BF 
	SELECT P.* FROM 
	#PATRIMONIO2 P LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL


--modifica 05/09/2023 per togliere i prodotti con Codice Interno GD ai Fideuram Direct/ Direct Banker

update b
set b.clienteDB='S'
from C6Mart.PATRIMONIO_BF b inner join C6Mart.VCONTRATTI v on b.chiaveClientePB=v.chiaveClientePB where v.TIP_CONTRATTO=3 


delete from C6Mart.PATRIMONIO_BF where COD_INTERNO='GD' and clienteDB='S'

update b
set b.nob_prez='S'
from C6Mart.PATRIMONIO_BF b inner join C6Staging.RP_NobPrez v on b.ID_CONTRATTO=v.CODCONF_ES and b.Dossier=v.DOSSIER

--fine modifica 05/09/2023 per togliere i prodotti con Codice Interno GD ai Fideuram Direct/ Direct Banker

 
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'

		)


--
DROP TABLE #TempPianif
--
DROP table #patrimonio
DROP table #PATRIMONIO2
drop table #PATRIMONIO_DUPLICATI
END






GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_BF_20180201]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 01/12/2014)
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_BF_20180201]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

--delete TEMPORANEA per superare un problema del WS che restituisce una riga doppia

--delete from c6staging.spb_contr_sintesi
--where codicefiscale = 'MNTMRC82C08I608Y'
--and CODICEMAF = '1362945'
--and ISIN = 'IE00B42Z5J44'

--delete from c6staging.spb_contr_sintesi
--where codicefiscale = 'FZAMRA55C50H501E'
--and CODICEMAF = '1362945'
--and ISIN = 'IE00B42Z5J44'



	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()
	

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	--TRUNCATE TABLE C6MART.PATRIMONIO_BF
	DELETE FROM C6MART.PATRIMONIO_BF

	
	TRUNCATE TABLE C6Staging.RP_Consulenza


--Ricerco dati da Pianificazione
 SELECT
	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pirmod.nomeProgetto
	--,pian.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,pro.chiaveProgetto
	,pro.area
	,pro.tipoProgetto
	,catprod.azob as StrType
	,catprod.Complessita
	,emit.Descrizione AS DescrizioneEmittente
	,PosPor.conto
	,PosPor.rubricato
	,PosPor.codConf
	,PosPor.numPolizza
	,PosPor.custGar
	,catprod.TipoProdotto
	,catprod.CodSottoprodotto
	,catprod.CodInterno
	,catprod.CodMaf
	,catprod.CodIsin
	,'' as position_id
    ,termId 
	,anno 
	,prog 

INTO #TempPianif
FROM
		C6Staging.RP_Pianificazione AS pian
	INNER JOIN C6Staging.RP_Progetto AS pro
		ON pian.chiaveConsulenza = pro.chiaveConsulenza
	INNER JOIN C6Staging.RP_ProgettiPiramideModello pirmod
		ON pro.chiaveprogettoMod=pirmod.chiaveprogettomod
	INNER JOIN C6Staging.RP_PosizioniPortafoglio AS pospor
		ON pro.chiaveProgetto = pospor.chiaveProgetto
	INNER JOIN C6Staging.RP_DettaglioPosizionePortafoglio AS dettposport
		ON pospor.chiavePosizionePtf = dettposport.chiavePosizionePtf
	INNER JOIN C6Staging.RP_CatalogoProdotti AS catprod
		ON pospor.chiaveProdotto = catprod.ChiaveProdotto
	LEFT JOIN C6Staging.RP_AnEmittente emit
         ON catprod.emittente=emit.emittente
    INNER JOIN C6Mart.VCONTRATTI contr
		ON pian.chiaveClientePB = contr.chiaveClientePB
	JOIN C6mart.contrattosei_metadati meta
		ON contr.chiaveClientePB = meta.chiaveClientePB 
		
	WHERE		 
	pospor.dtFineValidita > getdate()
	AND pro.dtfinevalidita='9999-12-31 00:00:00.000'
	AND pirmod.dtfinevalidita='9999-12-31 00:00:00.000'
	AND INVIOBENVENUTO = 'N'


INSERT INTO C6Staging.RP_Consulenza  
	SELECT * 
	FROM #TempPianif 

--UNION ALL	
----ricerco dati da Migrazione
--SELECT
--	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
--	,contr.rete
--	,contr.cod_fiscale
--	,pirmod.nomeProgetto
--	--,mig.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
--	,promig.chiaveProgetto
--	,promig.area
--	,promig.tipoProgetto
--	,catprod.azob as StrType
--	,catprod.Complessita
--	,emit.Descrizione AS DescrizioneEmittente
--	,MigPos.conto
--	,MigPos.rubricato
--	,MigPos.codConf
--	,MigPos.numPolizza
--	,MigPos.custGar
--	,catprod.TipoProdotto
--	,catprod.CodSottoprodotto
--	,catprod.CodInterno
--	,catprod.CodMaf
--	,catprod.CodIsin
--	,'' as position_id
--	,migpos.termId 
--	,migpos.anno 
--	,migpos.prog 
--FROM
--	C6Staging.RP_Migraz_Pianificazione AS mig
--	INNER JOIN C6Staging.RP_Migraz_Progetto AS promig
--		ON mig.chiaveconsulenza = promig.chiaveconsulenza
--	INNER JOIN C6Staging.RP_ProgettiPiramideModello pirmod
--		ON promig.chiaveprogettoMod=pirmod.chiaveprogettomod
--	INNER JOIN C6Staging.RP_Migraz_Posizioni AS migpos
--		ON promig.chiaveprogetto = migpos.chiaveprogetto
--	INNER JOIN C6Staging.RP_CatalogoProdotti AS catprod
--		ON migpos.chiaveProdotto = catprod.ChiaveProdotto
--	LEFT JOIN C6Staging.RP_AnEmittente emit
--		ON catprod.emittente=emit.emittente
--	INNER JOIN C6Mart.VCONTRATTI contr
--		ON mig.chiaveClientePB = contr.chiaveClientePB
--	INNER JOIN C6Mart.CONTRATTOSEI_METADATI c6meta
--		ON c6meta.chiaveClientePB = contr.chiaveClientePB
--	LEFT JOIN #TempPianif tp
--		ON mig.chiaveClientePB = tp.chiaveClientePB
--	WHERE
--	 pirmod.dtfinevalidita='9999-12-31 00:00:00.000'
--	AND tp.chiaveClientePB IS NULL	
--	AND INVIOBENVENUTO = 'N'
--	AND migpos.dtfinevalidita > getDate()

	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

	
 --	AGGIORNAMENTO POSITION_ID SU CONSULENZA 
--drop table #TempPianif
 --select * from c6staging.rp_consulenza tempo d'esecuzione su 3622 righe 10min
	EXEC c6staging.RP_CREA_POSITIONID_CONSULENZA  
	 
	INSERT INTO C6MART.TEST_QUALITY
		SELECT distinct RETE,COD_FISCALE,'POSITIONID DI CONSULENZA NON VALIDO' 
				FROM  c6staging.rp_consulenza  WHERE isnull(position_id ,'')=''
    

--*****************************
	--PROBLEMA CON POSITION ID ASU2 LSEL
	--select * from c6staging.rp_consulenza where position_id is null

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODICEFISCALE AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
			ELSE SPB.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB.CODICESTATO AS COD_STATO,
		SPB.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB.CODICEMAF AS COD_MAF,
		SPB.CODICEINTERNO AS COD_INTERNO,
		SPB.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB.TIPOPRODOTTO AS TIPO_PRODOTTO,

		--CASE
		--	WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'		16/09/2016
		--	ELSE LTRIM(RTRIM(CON.nomeProgetto))
		--END AS NOME_PROGETTO,

		CON.nomeProgetto AS NOME_PROGETTO,  --- COMMENTATO IL CASE WHEN, PRENDO DIRETTAMENTE IL NOME

		CON.area AS ID_AREA,
		SPB.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		SPB.PREZZO AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDIMENTODASOTTOSCRIZIONE
		END AS REND_SOTTOSCRIZIONE,
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDIMENTODAINIZIOTRIMESTRE
		END AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN SPB.TIPOPRODOTTO IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPOPRODOTTO = 'ASUL' AND SPB.CODICEINTERNO NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDIMENTODAINIZIOANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB
		--,CON.lineaself
	INTO #PATRIMONIO
	FROM C6STAGING.SPB_CONTR_SINTESI SPB
	INNER JOIN C6Staging.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODICEFISCALE
		AND CON.Position_id = SPB.positionid	 
    WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPOPRODOTTO <> 'CC'
--***INIZIO INTERVENTI OMNIA*** 
	      and SPB.Isin <> 'EURO00000009'
	      and SPB.Isin <> 'EURO10000007'
		  and CON.area <> 'SELF'
--***FINE INTERVENTI OMNIA*** 


    
    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODICEFISCALE AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB.TIPOPRODOTTO = 'DT' /* OR SPB.TIPOPRODOTTO = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
			ELSE SPB.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB.CODICESTATO AS COD_STATO,
		SPB.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB.CODICEMAF AS COD_MAF,
		SPB.CODICEINTERNO AS COD_INTERNO,
		SPB.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB.TIPOPRODOTTO AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
--***INIZIO INTERVENTI OMNIA***
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CASE WHEN SPB.CTV>=0 						    THEN 'Liq' 
		WHEN SPB.CTV<0 and SPB.TIPOPRODOTTO = 'CC' 	    THEN 'Cc'
		WHEN SPB.CTV<0 and SPB.Isin 	     in('EURO00000009', 'EURO10000007') THEN 'Self'
		ELSE null 
		END AS ID_AREA,
--***FINE INTERVENTI OMNIA***
		SPB.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		SPB.PREZZO AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		SPB.CVN AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,  
		SPB.RENDIMENTODASOTTOSCRIZIONE AS REND_SOTTOSCRIZIONE,
		SPB.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDIMENTODAINIZIOANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB
		--,CON.lineaself
	FROM C6STAGING.SPB_CONTR_SINTESI SPB
	INNER JOIN C6Staging.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODICEFISCALE
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGING.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT OUTER JOIN C6STAGING.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPOPRODOTTO = 'CC'
--***INIZIO INTERVENTI OMNIA*** 
       OR SPB.Isin		   in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA***


	/*
	truncate table c6mart.patrimonio_bf
	select top 1 * from #patrimonio
 */
 
  
	 
SELECT [RETE]
      ,[COD_FISCALE]
      ,[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
      ,[STRTYPE]
      ,[COMPLEX]
      ,[EMITTENTE]
      ,[ISIN]
      ,[ChiaveClientePb]
  INTO #PATRIMONIO2
  FROM #PATRIMONIO

	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODICEFISCALE AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODICECONTRATTO AS ID_CONTRATTO,
		CASE 
			WHEN SPB.TIPOPRODOTTO IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
			ELSE SPB.DATADISOTTOSCRIZIONE 
		END AS DATA_SOTTOSCRIZIONE,
		SPB.CODICESTATO AS COD_STATO,
		SPB.NUMEROPOLIZZA AS NUM_POLIZZA,
		SPB.CODICEMAF AS COD_MAF,
		SPB.CODICEINTERNO AS COD_INTERNO,
		SPB.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB.TIPOPRODOTTO AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		SPB.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		CONVERT(DATETIME, SPB.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		SPB.PREZZO AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
		CASE 
			WHEN (SPB.TIPOPRODOTTO = 'GE' 
				OR SPB.TIPOPRODOTTO = 'GES')
				AND SPB.DATADISOTTOSCRIZIONE < cast('2007-01-01' AS DATETIME) 
			THEN NULL 
			ELSE convert(decimal(15,3),SPB.CVN)
		END AS VERSATO_NETTO,
		convert(decimal(15,3),SPB.PARTVIA) AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,
		convert(decimal(8,5),SPB.RENDIMENTODASOTTOSCRIZIONE) AS REND_SOTTOSCRIZIONE,
		convert(decimal(8,5),SPB.RENDIMENTODAINIZIOTRIMESTRE) AS REND_TRIMESTRE,
		convert(decimal(8,5),SPB.RENDIMENTODAINIZIOANNO) AS REND_ANNO,
        @ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
        STRTYPE,
        null as COMPLEX,
        null as EMITTENTE,
		SPB.ISIN,
		VCON.CHIAVECLIENTEPB
		FROM C6STAGING.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN #PATRIMONIO PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODICEFISCALE = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		--LEFT JOIN C6STAGING.RP_vNewPositionProposta NEWPOSITION
		--	ON	SPB.POSITIONID = NEWPOSITION.positionIDProposta
		JOIN C6MART.VCONTRATTI VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODICEFISCALE = VCON.COD_FISCALE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
 
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM #PATRIMONIO2
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    INSERT INTO C6MART.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE
    
	INSERT INTO C6MART.PATRIMONIO_BF 
	SELECT P.* FROM 
	#PATRIMONIO2 P LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
 
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)


--
DROP TABLE #TempPianif
--
DROP table #patrimonio
DROP table #PATRIMONIO2
drop table #PATRIMONIO_DUPLICATI
END






GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select * from c6mart.patrimonio_immobiliare
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_IMMOBILIARE]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_IMMOBILIARE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_IMMOBILIARE
		

	INSERT INTO [C6Mart].[PATRIMONIO_IMMOBILIARE]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[DESCRIZIONE]
		   ,[TIPOLOGIA]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[VALORE_STIMATO]
		   ,[AFFITTO]
		   ,[NOTE]
		   ,[DIV_RIFERIMENTO]
		   ,[CAMBIO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
    -- DISTINCT  Atringali 12012010
		C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,
		C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione
		B.TIPOLOGIA, 
		/*
		CASE ALL_PATR_TERZI.TIPOLOGIA_RDESCR --tipologia? cos'è il codice Tipologia
			 WHEN 'Civil' THEN 'Civile'
			 WHEN 'Economic' THEN 'Economica'
			 WHEN 'Posh' THEN 'Signorile'
			 ELSE '' 
		END AS TIPOLOGIA,
		Verificare il tipo tipologia sul nuovo per mettere la giusta case
		verificato con alessia la descrizione tipologia può finire sul report
		*/
		B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto
		B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia
		NULL AS CAP,
		NULL AS NAZIONE,
		B.VALOREIMMOBILETOTALE, --ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE AS VALORE_STIMATO,--valore immobile
		B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua
		NULL AS NOTE,
		NULL AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		
		FROM C6STAGING.RP_PATRIMONIOTERZI A
		JOIN C6STAGING.RP_DETTIMMOBILIARE B
			ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI
		JOIN C6MART.VCONTRATTI C
			ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB
		WHERE A.IDTIPOPRODOTTO = 'IM'
		
	
	/*
	FROM C6STAGING.ALL_PATR_TERZI
	WHERE ALL_PATR_TERZI.CHIAVE_PR_31921 IS NOT NULL
		--V Dal passaggio in prod del 21/10/2010 su oracle questo campo è sempre null AND ALL_PATR_TERZI.CHIAVE_RDESC IS NOT NULL
		AND ALL_PATR_TERZI.DESCRIZIONE_RDESCR IS NOT NULL 
	*/	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_IMMOBILIARE_20190107_ProQuota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select * from c6mart.patrimonio_immobiliare
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_IMMOBILIARE_20190107_ProQuota]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_IMMOBILIARE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_IMMOBILIARE_20190107_ProQuota
		

	INSERT INTO [C6Mart].[PATRIMONIO_IMMOBILIARE_20190107_ProQuota]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[DESCRIZIONE]
		   ,[TIPOLOGIA]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[VALORE_STIMATO]
		   ,[AFFITTO]
		   ,[NOTE]
		   ,[DIV_RIFERIMENTO]
		   ,[CAMBIO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
		   ,[VALORE_STIMATO_PROQUOTA]
		   ,[PROQUOTA])
	SELECT 
    -- DISTINCT  Atringali 12012010
		C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,
		C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione
		B.TIPOLOGIA, 
		/*
		CASE ALL_PATR_TERZI.TIPOLOGIA_RDESCR --tipologia? cos'è il codice Tipologia
			 WHEN 'Civil' THEN 'Civile'
			 WHEN 'Economic' THEN 'Economica'
			 WHEN 'Posh' THEN 'Signorile'
			 ELSE '' 
		END AS TIPOLOGIA,
		Verificare il tipo tipologia sul nuovo per mettere la giusta case
		verificato con alessia la descrizione tipologia può finire sul report
		*/
		B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto
		B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia
		NULL AS CAP,
		NULL AS NAZIONE,
		B.VALOREIMMOBILETOTALE, --ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE AS VALORE_STIMATO,--valore immobile
		B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua
		NULL AS NOTE,
		NULL AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		B.valoreImmobileProQuota,
		B.ProQuota
		
		FROM C6STAGING.RP_PATRIMONIOTERZI A
		JOIN C6STAGING.RP_DETTIMMOBILIARE_20190107_ProQuota B
			ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI
		JOIN C6MART.VCONTRATTI C
			ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB
		WHERE A.IDTIPOPRODOTTO = 'IM'
		
	
	/*
	FROM C6STAGING.ALL_PATR_TERZI
	WHERE ALL_PATR_TERZI.CHIAVE_PR_31921 IS NOT NULL
		--V Dal passaggio in prod del 21/10/2010 su oracle questo campo è sempre null AND ALL_PATR_TERZI.CHIAVE_RDESC IS NOT NULL
		AND ALL_PATR_TERZI.DESCRIZIONE_RDESCR IS NOT NULL 
	*/	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_IMMOBILIARE_ProQuota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--select * from c6mart.PATRIMONIO_IMMOBILIARE_ProQuota
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_IMMOBILIARE_ProQuota]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_IMMOBILIARE_PROQUOTA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_IMMOBILIARE_ProQuota

	INSERT INTO [C6Mart].[PATRIMONIO_IMMOBILIARE_ProQuota](
	[RETE],
	[COD_FISCALE],
	Descrizione,
	Tipologia,
	Localita,
	AffittoPercepito, 
	[VALORE_STIMATO],
	Totale,
	TotaleAffitto,
	[TIPOLOGIA_DIRITTO],
	[PROQUOTA],
	[VALORE_STIMATO_PROQUOTA],
	TotaleProQuota	
	)

	select
		vp.Rete,
		vp.Cod_Fiscale,
		vp.Descrizione ,
		vp.Tipologia,
		vp.Localita,
		vp.AffittoPercepito,
		vp.Valore,
		vp.Totale,
		vp.TotaleAffitto,
		vp.TipologiaDiritto, 
		vp.ProQuota,
		vp.Valore_ProQuota,
		vp.TotaleProQuota
	from
		[C6Mart].[RP_vContrattiPerGenerazioneReport] vc
			inner join C6Mart.vPatrimonioImmobiliare vp
			on vc.rete = vp.rete
			and vc.cod_fiscale = vp.cod_fiscale
	
		--select vContratti.Rete,
		--	vContratti.Cod_Fiscale, 
		--	dett.valoreImmobileTotale as Valore_Stimato,
		--	coin.moltiplicatoreDiritto * dett.valoreImmobileTotale as Valore_Stimato_ProQuota,
		--	coin.moltiplicatoreDiritto * 100 as ProQuota,
		--	dett.TipologiaDiritto
		--from
		--	C6Mart.vContrattiPerGenerazioneReport vContratti
		--	--(select top 100 rete, cod_fiscale from c6mart.vContratti where Cod_Fiscale = 'BRNVLM35H61L407Q') vContratti
		--		inner join [CONSUNI].[ConsulenzaUnica].dbo.vInfoCliente vInfo
		--			on vContratti.Cod_Fiscale = vInfo.CodFis
		--			inner join [CONSUNI].[ConsulenzaUnica].dbo.Cointestatari coin
		--			on vInfo.chiaveClientePB = coin.chiaveClientePB
		--				inner join [CONSUNI].[ConsulenzaUnica].dbo.DettImmobiliare dett 
		--				on dett.chiaveProdottoTerzi = coin.chiaveProdottoTerzi
		--union

		--select  vContratti.Rete,
		--	vContratti.Cod_Fiscale,
		--	dett.valoreImmobileTotale as Valore_Stimato,
		--	dett.valoreImmobileTotale as Valore_Stimato_ProQuota,
		--	100 as ProQuota,
		--	isnull(dett.TipologiaDiritto, 'Proprietà') as TipologiaDiritto
		--from
		--	C6Mart.vContrattiPerGenerazioneReport vContratti
		--	--(select top 100 rete, cod_fiscale from c6mart.vContratti where Cod_Fiscale = 'BRNVLM35H61L407Q') vContratti
		--		inner join [CONSUNI].[ConsulenzaUnica].dbo.vInfoCliente vInfo
		--			on vContratti.Cod_Fiscale = vInfo.CodFis
		--			inner join [CONSUNI].[ConsulenzaUnica].dbo.PatrimonioTerzi coin
		--			on vInfo.chiaveClientePB = coin.chiaveClientePB
		--				inner join [CONSUNI].[ConsulenzaUnica].dbo.DettImmobiliare dett 
		--				on dett.chiaveProdottoTerzi = coin.chiaveProdottoTerzi
	-- Log esecuzione

	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE_PROQUOTA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE_PROQUOTA'
		)

END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_TERZI]
AS
BEGIN

	SET NOCOUNT ON;

	SET ARITHABORT OFF

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	


	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_TERZI

	INSERT INTO [C6Mart].[PATRIMONIO_TERZI]
		   (
--chiaveClientePB,
		   [RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[TIPO_POLIZZA]
		   ,[TIPO_PRODOTTO]
		   ,[TIPO_PRODOTTO2]
		   ,[COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_SCADENZA]
		   ,[FREQ_RATA]
		   ,[DURATA_POLIZZA]
		   ,[PREMIO]
		   ,[ALIQUOTA]
		   ,[DATA_SOTT_FP]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[VERSATO_NETTO]
		   ,[DIV_REGOLAMENTO]
		   ,[CAMBIO]
		   ,[DESCR_GRUPPO_PRODOTTO]
			,[STRTYPE]
			,[COMPLEX]
			,[EMITTENTE]
			,[CHIAVE_THR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])



		
	SELECT 
	    
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		(CASE RP_DettProdottiTerzi.tipoPolizza
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'
       WHEN 'MistaImmediata' THEN 'Mista immediata'
       WHEN 'VitaIntera' THEN 'Vita intera'
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'
       ELSE RP_DettProdottiTerzi.tipoPolizza
     END) AS TIPO_POLIZZA,
		COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere
		NULL AS TIPO_PRODOTTO2,
		isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO, 
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$
		RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,
		case when C6Staging.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'
		   then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV) 
		   when C6Staging.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'
		   then RP_PatrimonioTerzi.DATACTV
		   else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV) 
		end AS DATA_SOTTOSCRIZIONE,
		RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,
		RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		NULL AS PREMIO,
		NULL AS ALIQUOTA,
		NULL AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,

		--------------------- intervento del 19/2/2018 per gestire ctv e capitale_investito più grandi del consentito
				--RP_PatrimonioTerzi.ctv AS CTV,
		        --RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,
		case 
		   when RP_PatrimonioTerzi.ctv > 999999999999.00 then 999999999999.00
		   else RP_PatrimonioTerzi.ctv
		end  AS CTV,

		case 
		   when RP_DettProdottiTerzi.capitaleInvestito > 999999999999.00 then 999999999999.00
		   else RP_DettProdottiTerzi.capitaleInvestito
		end  AS VERSATO_NETTO,


		---------------------  fine intervento del 19/2/2018

		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
				 or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
				THEN 'Portafoglio Generico'
			WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
				THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
		RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)
		RP_CatalogoProdotti.Complessita AS COMPLEX,
		RP_AnEmittente.Descrizione AS EMITTENTE,
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS chiave_thr, --da rivedere
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6Mart.VCONTRATTI
	INNER JOIN
		C6Staging.RP_PatrimonioTerzi
		ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB
	INNER JOIN
		C6Staging.RP_DettProdottiTerzi
		ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
	INNER JOIN
		C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6Staging.RP_DettProdottiTerzi.alberatura = C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	LEFT JOIN
		C6Staging.RP_CatalogoProdotti ON C6Staging.RP_DettProdottiTerzi.chiaveProdotto = C6Staging.RP_CatalogoProdotti.ChiaveProdotto
	LEFT JOIN
		C6Staging.RP_AnEmittente ON C6Staging.RP_CatalogoProdotti.Emittente = C6Staging.RP_AnEmittente.Emittente

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_TERZI'
		)

END





GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_TERZI_20180219]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_TERZI_20180219]
AS
BEGIN

	SET NOCOUNT ON;

	SET ARITHABORT OFF

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	


	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_TERZI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.PATRIMONIO_TERZI

	INSERT INTO [C6Mart].[PATRIMONIO_TERZI]
		   (
--chiaveClientePB,
		   [RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[TIPO_POLIZZA]
		   ,[TIPO_PRODOTTO]
		   ,[TIPO_PRODOTTO2]
		   ,[COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_SCADENZA]
		   ,[FREQ_RATA]
		   ,[DURATA_POLIZZA]
		   ,[PREMIO]
		   ,[ALIQUOTA]
		   ,[DATA_SOTT_FP]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[VERSATO_NETTO]
		   ,[DIV_REGOLAMENTO]
		   ,[CAMBIO]
		   ,[DESCR_GRUPPO_PRODOTTO]
			,[STRTYPE]
			,[COMPLEX]
			,[EMITTENTE]
			,[CHIAVE_THR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])



--select
--ALL_PATR_TERZI.RETE_PB AS RETE, --
--		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE, --
--		NULL AS NUM_POLIZZA, 
--		ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE AS TIPO_POLIZZA,
--		--COALESCE(PRODOTTI_A_CATALOGO.TIPO_PRODOTTO, PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO) AS TIPO_PRODOTTO,   
--		CASE
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'
--				THEN 'Altro'
--			ELSE
--				COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) 
--		END AS TIPO_PRODOTTO,
--		PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO2 AS TIPO_PRODOTTO2,   
--		ISNULL(ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO,'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO, --
--		ISNULL(ALL_PATR_TERZI.CHIAVE_THR,'PRODOTTO IN CATALOGO') AS COD_PRODOTTO_TERZI, --
--		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO, --
--		--ALL_PATR_TERZI.DATA_INIZIO_INV AS DATA_SOTTOSCRIZIONE, --
--		--ISNULL(ALL_PATR_TERZI.DATA_INIZIO_INV, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ) AS DATA_SOTTOSCRIZIONE,
--		--ALL_PATR_TERZI.BALANCEDATETIME_DI_THR AS DATA_SOTTOSCRIZIONE,
--		CASE 
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.PolizzeRivalutabili')		-- PRODOTTI S49
--				THEN ISNULL(ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ)
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali')	-- PRODOTTI S50
--				THEN ALL_PATR_TERZI.BALANCEDATETIME_DI_THR -- EQUIVALENTE A ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ
--			ELSE	-- PRODOTTI S48
--				ALL_PATR_TERZI.DATA_INIZIO_INV
--		END  AS DATA_SOTTOSCRIZIONE,
--		ALL_PATR_TERZI.DATA_SCADENZA AS DATA_SCADENZA,
--		ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797 AS FREQ_RATA, --
--		NULL AS DURATA_POLIZZA,
--		ALL_PATR_TERZI.PREMIO_VERSAMENTO AS PREMIO,
--		NULL AS ALIQUOTA,
--		ALL_PATR_TERZI.BALANCEDATETIME_DI_THR AS DATA_SOTT_FP,
--		NULL AS DATA_REGOLAMENTO,
--		NULL AS QUANTITA,
--		NULL AS PREZZO,
--		ALL_PATR_TERZI.PATRIMONIO_TERZI AS CTV, --
--		ALL_PATR_TERZI.CAPITALE_INVESTITO AS VERSATO_NETTO, --
--		NULL AS DIV_REGOLAMENTO,
--		NULL AS CAMBIO,
--		CASE 
--			WHEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
--				THEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
--			WHEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
--				THEN S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
--			WHEN (S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
--					AND ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
--				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
--			WHEN (S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
--                 or (S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
--                     and  S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
--                     and S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
--				THEN 'Assicurativi Unit/Index Linked'
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other'  
--				THEN 'Portafoglio Generico'
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
--				THEN NULL
--			ELSE NULL 
--		END AS DESCR_GRUPPO_PRODOTTO, --
--        STRTYPE, --
--        COMPLEX, --
--        EMITTENTE, --   
--        ALL_PATR_TERZI.CHIAVE_THR, 
--		@ID_ELAB AS ID_ELAB,
--		@TIPO_ELAB AS TIPO_ELAB
--	FROM C6STAGING.ALL_PATR_TERZI
--	INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 
--		ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
--	LEFT JOIN (
--		SELECT DISTINCT 
--			ALL_PATR_TERZI.CHIAVE_THR AS CHIAVE_THR, --
--			COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --
--			S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 AS TIPO_PRODOTTO2
--		FROM C6STAGING.ALL_PATR_TERZI
--		INNER JOIN C6STAGING.S4_S5_S13_TRAD_UNTIL_LIV3 
--			ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
--	) AS PRODOTTI_NON_A_CATALOGO 
--		ON PRODOTTI_NON_A_CATALOGO.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_THR
--	LEFT JOIN (
--		SELECT 
--			CATITEMREF.CATALOGUEID AS CATALOGUEID,
--			CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
--            CATITEMREF.STRTYPE,
--            CATITEMREF.COMPLEX,
--            MIT.DESCR AS EMITTENTE
--		FROM 
--			C6STAGING.CATITEMREF  LEFT OUTER JOIN
--          C6STAGING.EMIT MIT
--          ON MIT.CODEMI=CATITEMREF.CODEMI 
--	) PRODOTTI_A_CATALOGO 
--		ON PRODOTTI_A_CATALOGO.CATALOGUEID = ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO
		
	SELECT 
	    
--		VCONTRATTI.chiaveClientePB,
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		(CASE RP_DettProdottiTerzi.tipoPolizza
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'
       WHEN 'MistaImmediata' THEN 'Mista immediata'
       WHEN 'VitaIntera' THEN 'Vita intera'
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'
       ELSE RP_DettProdottiTerzi.tipoPolizza
     END) AS TIPO_POLIZZA,
		COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere
--		CASE
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'
--				THEN 'Altro'
--			ELSE
--				COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) 
--		END AS TIPO_PRODOTTO,
		NULL AS TIPO_PRODOTTO2,
		isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO, 
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$
		RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,
		case when C6Staging.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'
		   then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV) 
		   when C6Staging.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'
		   then RP_PatrimonioTerzi.DATACTV
		   else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV) 
		end AS DATA_SOTTOSCRIZIONE,
		RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,
		RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		NULL AS PREMIO,
		NULL AS ALIQUOTA,
		NULL AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,
		RP_PatrimonioTerzi.ctv AS CTV,
		RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
				 or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
				THEN 'Portafoglio Generico'
			WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
				THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
		--'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta
		RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)
		RP_CatalogoProdotti.Complessita AS COMPLEX,
		RP_AnEmittente.Descrizione AS EMITTENTE,
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS chiave_thr, --da rivedere
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		--INTO C6MART.PATRIMONIO_TERZI
	FROM
		C6Mart.VCONTRATTI
	INNER JOIN
		C6Staging.RP_PatrimonioTerzi
		ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB
	INNER JOIN
		C6Staging.RP_DettProdottiTerzi
		ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
	INNER JOIN
		C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6Staging.RP_DettProdottiTerzi.alberatura = C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	LEFT JOIN
		C6Staging.RP_CatalogoProdotti ON C6Staging.RP_DettProdottiTerzi.chiaveProdotto = C6Staging.RP_CatalogoProdotti.ChiaveProdotto
	LEFT JOIN
		C6Staging.RP_AnEmittente ON C6Staging.RP_CatalogoProdotti.Emittente = C6Staging.RP_AnEmittente.Emittente

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_TERZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_TERZI'
		)

END





GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_TERZI_luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_TERZI_luca]
AS
BEGIN

	SET NOCOUNT ON;


	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	



	TRUNCATE TABLE C6MART.PATRIMONIO_TERZI

	INSERT INTO [C6Mart].[PATRIMONIO_TERZI]
		   (
--chiaveClientePB,
		   [RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[TIPO_POLIZZA]
		   ,[TIPO_PRODOTTO]
		   ,[TIPO_PRODOTTO2]
		   ,[COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_SCADENZA]
		   ,[FREQ_RATA]
		   ,[DURATA_POLIZZA]
		   ,[PREMIO]
		   ,[ALIQUOTA]
		   ,[DATA_SOTT_FP]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[VERSATO_NETTO]
		   ,[DIV_REGOLAMENTO]
		   ,[CAMBIO]
		   ,[DESCR_GRUPPO_PRODOTTO]
			,[STRTYPE]
			,[COMPLEX]
			,[EMITTENTE]
			,[CHIAVE_THR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])



		
	SELECT 
	    
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		--(CASE RP_DettProdottiTerzi.tipoPolizza
  --     WHEN 'CapitaleDifferito' THEN 'Capitale differito'
  --     WHEN 'MistaImmediata' THEN 'Mista immediata'
  --     WHEN 'VitaIntera' THEN 'Vita intera'
  --     WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'
  --     WHEN 'Capitalizzazione' THEN 'Capitalizzazione'
  --     ELSE RP_DettProdottiTerzi.tipoPolizza
  --   END) AS TIPO_POLIZZA,
        null AS TIPO_POLIZZA,
		--COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere
		null AS TIPO_PRODOTTO, 
		NULL AS TIPO_PRODOTTO2,
		isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO, 
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$
		--RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,
		null  AS INTERMEDIARIO,
		--case when C6Staging.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'
		--   then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV) 
		--   when C6Staging.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'
		--   then RP_PatrimonioTerzi.DATACTV
		--   else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV) 
		--end AS DATA_SOTTOSCRIZIONE,
		null  AS DATA_SOTTOSCRIZIONE,
		--RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,
		null  AS DATA_SCADENZA,
		--RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,
		null  AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		NULL AS PREMIO,
		NULL AS ALIQUOTA,
		NULL AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,

		case 
		   when RP_PatrimonioTerzi.ctv > 999999999999.00 then 999999999999.00
		   else RP_PatrimonioTerzi.ctv
		end  AS CTV,

		case 
		   when RP_DettProdottiTerzi.capitaleInvestito > 999999999999.00 then 999999999999.00
		   else RP_DettProdottiTerzi.capitaleInvestito
		end  AS VERSATO_NETTO,
		--RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO, --mod
		
		
		
		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
				 or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
				THEN 'Portafoglio Generico'
			WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
				THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
		RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)
		RP_CatalogoProdotti.Complessita AS COMPLEX,
		RP_AnEmittente.Descrizione AS EMITTENTE,
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS chiave_thr, --da rivedere
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6Mart.VCONTRATTI
	INNER JOIN
		C6Staging.RP_PatrimonioTerzi
		ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB
	INNER JOIN
		C6Staging.RP_DettProdottiTerzi
		ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
	INNER JOIN
		C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6Staging.RP_DettProdottiTerzi.alberatura = C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	LEFT JOIN
		C6Staging.RP_CatalogoProdotti ON C6Staging.RP_DettProdottiTerzi.chiaveProdotto = C6Staging.RP_CatalogoProdotti.ChiaveProdotto
	LEFT JOIN
		C6Staging.RP_AnEmittente ON C6Staging.RP_CatalogoProdotti.Emittente = C6Staging.RP_AnEmittente.Emittente

		
	
END





GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PATRIMONIO_TERZI_Param]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_TERZI_Param](
	@Rete varchar(1),
	@CodiceFiscale varchar(20)
)
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	--INSERT INTO LOG_ESECUZIONE
	--	(Nome, Inizio, Nota)
	--VALUES (
	--	'RP_DM_PATRIMONIO_TERZI',
	--	GETDATE(),
	--	'Elaborazione giornaliera'
	--)

	--TRUNCATE TABLE C6MART.PATRIMONIO_TERZI

	INSERT INTO [C6Mart].[PATRIMONIO_TERZI]
		   (
--chiaveClientePB,
		   [RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[TIPO_POLIZZA]
		   ,[TIPO_PRODOTTO]
		   ,[TIPO_PRODOTTO2]
		   ,[COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_SCADENZA]
		   ,[FREQ_RATA]
		   ,[DURATA_POLIZZA]
		   ,[PREMIO]
		   ,[ALIQUOTA]
		   ,[DATA_SOTT_FP]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[VERSATO_NETTO]
		   ,[DIV_REGOLAMENTO]
		   ,[CAMBIO]
		   ,[DESCR_GRUPPO_PRODOTTO]
			,[STRTYPE]
			,[COMPLEX]
			,[EMITTENTE]
			,[CHIAVE_THR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
		
	SELECT 
	    
--		VCONTRATTI.chiaveClientePB,
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		(CASE RP_DettProdottiTerzi.tipoPolizza
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'
       WHEN 'MistaImmediata' THEN 'Mista immediata'
       WHEN 'VitaIntera' THEN 'Vita intera'
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'
       ELSE RP_DettProdottiTerzi.tipoPolizza
     END) AS TIPO_POLIZZA,
		COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere
--		CASE
--			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'
--				THEN 'Altro'
--			ELSE
--				COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) 
--		END AS TIPO_PRODOTTO,
		NULL AS TIPO_PRODOTTO2,
		isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO, 
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$
		RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,
		case when C6Staging.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'
		   then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV) 
		   when C6Staging.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'
		   then RP_PatrimonioTerzi.DATACTV
		   else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV) 
		end AS DATA_SOTTOSCRIZIONE,
		RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,
		RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		NULL AS PREMIO,
		NULL AS ALIQUOTA,
		NULL AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,
		RP_PatrimonioTerzi.ctv AS CTV,
		RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
				 or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
				THEN 'Portafoglio Generico'
			WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
				THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
		--'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta
		RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)
		RP_CatalogoProdotti.Complessita AS COMPLEX,
		RP_AnEmittente.Descrizione AS EMITTENTE,
		RP_PatrimonioTerzi.chiaveProdottoTerzi AS chiave_thr, --da rivedere
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		--INTO C6MART.PATRIMONIO_TERZI
	FROM
		C6Mart.VCONTRATTI
	INNER JOIN
		C6Staging.RP_PatrimonioTerzi
		ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB
	INNER JOIN
		C6Staging.RP_DettProdottiTerzi
		ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
	INNER JOIN
		C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6Staging.RP_DettProdottiTerzi.alberatura = C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	LEFT JOIN
		C6Staging.RP_CatalogoProdotti ON C6Staging.RP_DettProdottiTerzi.chiaveProdotto = C6Staging.RP_CatalogoProdotti.ChiaveProdotto
	LEFT JOIN
		C6Staging.RP_AnEmittente ON C6Staging.RP_CatalogoProdotti.Emittente = C6Staging.RP_AnEmittente.Emittente

	where
		VCONTRATTI.rete = @Rete
		and
		VCONTRATTI.COD_FISCALE = @CodiceFiscale
		
END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PIRAMIDE_MOD]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_MOD',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	--TRUNCATE TABLE C6MART.PIRAMIDE_MOD
	DELETE FROM C6MART.PIRAMIDE_MOD
 	INSERT INTO [C6Mart].[PIRAMIDE_MOD]
		   (
--chiaveClientePB
--		   ,
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]		   
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
--		VCONTRATTI.chiaveClientePB,
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		rp_pirmod.area AS ID_AREA,

		--case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then rp_pirmod.nomeProgetto
  --        ELSE NULL END
		-- AS NOME_PROGETTO,

		rp_pirmod.nomeProgetto AS NOME_PROGETTO,   --- NUOVO

		--en-20160916
		--case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		--    else 'Default'
		--    end AS TIPO_PROGETTO,
		null AS TIPO_PROGETTO,
		rp_pirmod.percentualeProgetto AS PERC_AREA,
		NULL AS CTV_PROGETTO,
		NULL AS CTV_AREA,
		rp_pirmod.durata AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		
	
	FROM C6Staging.RP_ProgettiPiramideModello AS rp_pirmod 
	INNER JOIN
		C6Mart.VCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = C6Mart.VCONTRATTI.chiaveClientePB
		
	WHERE
		DtFineValidita > getdate()
		--en-201616 and ((area = 'Inv') OR (area <> 'Inv' and tipoProgetto = 0))
		and area not in ('VOID','LIGHT')    ---  AGGIUNTO 19/09

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PIRAMIDE_MOD'
		)

END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	
-- Modifica del 27/11/2018 per la gestione del doppio pb - 
--   Nel caso di doppio pb, con pb primario diverso dal precedente (CHIAVECLIENTEPB nuova), dobbiamo evitare di far stampare un nuovo
--   report di benvenuto, creando una occorrenza sulla CONTRATTOSEI_METADATI CON INVIOBENVENUTO = 'S'


			INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
					   ([CHIAVECLIENTEPB]
					   ,[ClienteMIGRATO]
					   ,[RISORSENA]
					   ,[PROFILOATTIVO]
					   ,[NumSolleciti]
					   ,[NumRevoche]
					   ,[Data_ultimoSollecito]
					   ,[Data_ultimaRevoca]
					   ,[InvioBenvenuto]
					   ,[Tip_riattivazione]
					   ,[Tip_contratto])    
			SELECT    
						A.CHIAVECLIENTEPB,
						'S',
						'N',
						1,
						0,
						0,
						NULL,
						NULL,
						'S',
						A.Riattivazione,
						A.Tip_Contratto
				 FROM C6MART.VCONTRATTI A
				 inner joiN [C6mart].[GESTIONE_PDF_FTP] B
				 ON A.RETE= B.RETE AND A.COD_FISCALE = B.CODICEFISCALE 
				 AND A.CODICECONTRATTO = LEFT(B.NOMEFILE,LEN(A.CODICECONTRATTO))
				 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] c
					ON A.chiaveClientePB = C.CHIAVECLIENTEPB
				 WHERE C.CHIAVECLIENTEPB IS NULL
	

-- Fine Modifica del 27/11/2018 per la gestione del doppio pb - 


INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
----FINE FORZATURA

---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   --Clienti professionali esclusi dal giornaliero 13/06/2017
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FMGNGPP55B25G224T',
   --'FFF@5844'
   --)

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('F00624130431')
   
      ------T-2271865-L0H7 del 26/10/2017 --scommentato il 2/1/2018, richiesto via mail di sollecito l'invio lettera 
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale in (
   ----'FTSTLCN48R14H501A'
   ----)
   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('F01248331215')

   ------per rimediare l'errore VarAdeguatezza il 22/12/2017; 03/01/2018 riprovato con errorr
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('FRYNCRL63E11L219J') 

   ------per rimediare l'errore VarAdeguatezza il 04/01/2018
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('S02312260710') 
  

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------

-- Modifica del 03/10/2018 per gestire i casi in cui il campo InvioBenvenuto è una data
begin try

	 INSERT INTO C6MART.TEST_QUALITY
	 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
					LEFT JOIN c6mart.gestione_pdf_ftp  PDF
					ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
				WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
	end try

	begin catch
	end catch
-- Fine Modifica del 03/10/2018

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END


































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_2011026]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

















 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_2011026] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20160315]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--create view as
 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20160315] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      
	     
	      
 
 
 

TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO  C6MART.VCONTRATTI
	SELECT * FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI

--	DELETE  from C6MART.VCONTRATTI
--	where rete+cod_fiscale = 'FFF@9700'
	
----FINE FORZATURA


   	
	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END












GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_201700302_ripristino_del_20170127]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_201700302_ripristino_del_20170127] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'FVNARRT65S64Z326I'
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END






















GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170127]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






 
CREATE PROCEDURE [C6Mart].[RP_DM_POPOLACONTRATTI_20170127] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'FVNARRT65S64Z326I'
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END





















GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170322]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170322] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END























GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170524]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170524] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per errore del giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END



























GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170607_mifid]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170607_mifid] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END




























GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170613]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170613] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END






























GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170727_VarAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20170727_VarAdeguatezza] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20171113]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


















 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20171113] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
   
      ------T-2271865-L0H7 del 26/10/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FTSTLCN48R14H501A'
   )
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20171205]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20171205] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
   
      ------T-2271865-L0H7 del 26/10/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FTSTLCN48R14H501A'
   )

   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)
----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20171222]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20171222] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
   
      ------T-2271865-L0H7 del 26/10/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FTSTLCN48R14H501A'
   )

   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F01248331215'
   )

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20180102]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20180102] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
   
      ------T-2271865-L0H7 del 26/10/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FTSTLCN48R14H501A'
   )

   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F01248331215'
   )

   ------per rimediare l'errore VarAdeguatezza il 22/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FRYNCRL63E11L219J'
   )

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20180103]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20180103] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
   
      ------T-2271865-L0H7 del 26/10/2017 --scommentato il 2/1/2018, richiesto via mail di sollecito l'invio lettera 
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale in (
   ----'FTSTLCN48R14H501A'
   ----)

   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F01248331215'
   )

   ------per rimediare l'errore VarAdeguatezza il 22/12/2017
   ------DELETE  from C6MART.VCONTRATTI
   ------where rete+cod_fiscale in (
   ------'FRYNCRL63E11L219J'
   ------)

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20180104]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20180104] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
	
----FINE FORZATURA



---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   ------Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F00624130431'
   )
   
      ------T-2271865-L0H7 del 26/10/2017 --scommentato il 2/1/2018, richiesto via mail di sollecito l'invio lettera 
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale in (
   ----'FTSTLCN48R14H501A'
   ----)

   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'F01248331215'
   )

   ------per rimediare l'errore VarAdeguatezza il 22/12/2017; 03/01/2018 riprovato con errorr
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FRYNCRL63E11L219J'
   )

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20181003]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20181003] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
----FINE FORZATURA

---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   --Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('F00624130431')
   
      ------T-2271865-L0H7 del 26/10/2017 --scommentato il 2/1/2018, richiesto via mail di sollecito l'invio lettera 
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale in (
   ----'FTSTLCN48R14H501A'
   ----)
   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('F01248331215')

   ------per rimediare l'errore VarAdeguatezza il 22/12/2017; 03/01/2018 riprovato con errorr
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('FRYNCRL63E11L219J') 

   ------per rimediare l'errore VarAdeguatezza il 04/01/2018
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('S02312260710') 
  

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------


 INSERT INTO C6MART.TEST_QUALITY
 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
				LEFT JOIN c6mart.gestione_pdf_ftp  PDF
				ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
			WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
			
-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END


































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_POPOLACONTRATTI_20181127]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




 
CREATE procedure [C6Mart].[RP_DM_POPOLACONTRATTI_20181127] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
	


-- LOG CAMBIO COD_FISCALE RETE  ***************************************************************************************
 INSERT INTO c6mart.test_logmd
         SELECT 'VARZ CF RETE',GETDATE(),VC.COD_FISCALE,VC.RETE,			  
				NULL AS RIATTIVAZIONE_1,NULL AS TIPOCONTRATTO_1,
				NULL AS RIATTIVAZIONE_2,NULL AS TIPOCONTRATTO_2,
				NULL AS RIATTIVAZIONE_3,NULL AS TIPOCONTRATTO_3,NULL AS INVIO_3, 
				'da ' + VC.cod_fiscale +'-'+ VC.RETE + ' a ' + C6.cod_fiscale +'-'+ C6.RETE	 
	     FROM C6MART.VCONTRATTI VC 
	     JOIN [C6Mart].[vContrattiC6]  C6 
	     ON VC.chiaveClientePB = C6.CHIAVECLIENTEPB
	     WHERE VC.cod_fiscale <> C6.cod_fiscale OR VC.RETE <> C6.RETE 	     
--********************************************************************************************************************	     
				      


TRUNCATE TABLE C6MART.VCONTRATTI
--DELETE C6MART.VCONTRATTI 
--	WHERE chiaveClientePB in (SELECT chiaveClientePB  FROM [C6Mart].[vContrattiC6])
	
 
INSERT INTO C6MART.VCONTRATTI
SELECT *  FROM [C6Mart].[vContrattiC6] 
	

INSERT INTO [C6Mart].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM C6MART.VCONTRATTI A
	 LEFT JOIN [C6Mart].[CONTRATTOSEI_METADATI] B
		ON A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE B.CHIAVECLIENTEPB IS NULL 
	  
---- FCianfa: INIZIO FORZATURA per errore giornaliero del 31/07/2015, il cliente non è censito in C6Mart.ANAG_CLIENTI
--DELETE  from C6MART.VCONTRATTI
--where rete+cod_fiscale = 'FFF@9700'
---- EN20160315: INIZIO FORZATURA per errore giornaliero del 15/03/2016, il cliente è in C6Mart.ANAG_CLIENTI incompleto e non presente su SIMPB
---- where rete+cod_fiscale = 'FBRBMRA51H53G089M'
----FINE FORZATURA

---- LL: INIZIO FORZATURA per errore giornaliero del 25/03/2016 ----------------------------------------------
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'SFROFMN88T49H501H'
---- LL: INIZIO FORZATURA per Ticket T-1410414-M4B3 (08/04/2016) 
--       Il contratto ha subito un cambio di cf e per errore è stata generata una nuova email di perfez.; 
--       per evitare anche l'eventuale generazione della lettera di benvenuto lo escludiamo
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale = 'FGRMLGU42L14A662R'
----FINE FORZATURA---------------------------------------------------------------------------------------------
---- EN20161230: INIZIO FORZATURA per errore giornaliero del 30/12/2016 ----------------------------------------------
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FMRTRND45C07F930Z'
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale = 'FVNARRT65S64Z326I'
   ------per rimediare errore nel giornaliero il 21/03/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F04904530633'
   ------per rimediare errore nel giornaliero il 24/05/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale = 'F02588590402'

   ------per errore del giornaliero il 06/06/2017
  -- DELETE  from C6MART.VCONTRATTI
  -- where rete+cod_fiscale in (
		--'FSCNLRT54T04E613J',
		--'FBRRMNL69S45C957K',
		--'FTBRDAA34M63B455T',
		--'FSNTRNO50C55I342U',
		--'FLMLGNN75D58F918C',
		--'SSTCRRT86H30E058Z'
  -- )
   --Clienti professionali esclusi dal giornaliero 13/06/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in (
   'FMGNGPP55B25G224T',
   'FFF@5844'
   )

   ------per rimediare errore nel giornaliero il 27/07/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('F00624130431')
   
      ------T-2271865-L0H7 del 26/10/2017 --scommentato il 2/1/2018, richiesto via mail di sollecito l'invio lettera 
   ----DELETE  from C6MART.VCONTRATTI
   ----where rete+cod_fiscale in (
   ----'FTSTLCN48R14H501A'
   ----)
   ------ cliente con prodotti multiramo da sistemare 13/11/2017 
   ------ intervanto aggregazione s+m completato e testato il 20171116
   --DELETE  from C6MART.VCONTRATTI
   --where rete+cod_fiscale in (
   --'FDFRNTN54C12E625S'
   --)

   ------per rimediare l'errore VarAdeguatezza il 05/12/2017
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('F01248331215')

   ------per rimediare l'errore VarAdeguatezza il 22/12/2017; 03/01/2018 riprovato con errorr
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('FRYNCRL63E11L219J') 

   ------per rimediare l'errore VarAdeguatezza il 04/01/2018
   DELETE  from C6MART.VCONTRATTI
   where rete+cod_fiscale in ('S02312260710') 
  

----FINE FORZATURA---------------------------------------------------------------------------------------------


	 
-- CASO NUOVO CONTRATTO ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'NUOVO CONTRATTO',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.Riattivazione     AS RIATTIVAZIONE_3,VC.Tip_Contratto AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.cod_fiscale,VC1.rete,VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB	       
	       
	       
UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET 
--SELECT     
TIP_RIATTIVAZIONE =VC.Riattivazione, TIP_CONTRATTO=VC.Tip_Contratto
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N' 
FROM [C6Mart].[CONTRATTOSEI_METADATI] MD inner join
         (select VC1.chiaveClientePB,VC1.Riattivazione,VC1.Tip_Contratto
	     FROM C6MART.VCONTRATTI VC1 
	     JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC1 
	     ON VC1.chiaveClientePB = MC1.CHIAVECLIENTEPB
	     LEFT JOIN c6mart.gestione_pdf_ftp  PDF1
	     ON SUBSTRING(PDF1.NomeFile, 1, 11) = VC1.CODICECONTRATTO
	     WHERE MC1.INVIOBENVENUTO = 'S' AND PDF1.CODICEFISCALE IS NULL) VC
 ON VC.chiaveClientePB = MD.chiaveClientePB
			                    

--  CASO RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
1 AS RIATTIVAZIONE_3,VC.TIP_CONTRATTO AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.Tip_riattivazione = 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT  
 TIP_RIATTIVAZIONE = 1, TIP_CONTRATTO=VC.TIP_CONTRATTO
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MC.Tip_riattivazione = 0

--  CASO FINE RIATTIVAZIONE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'FINE RIATTIVAZIONE',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
0 AS RIATTIVAZIONE_3,null AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
-- SELECT  
 TIP_RIATTIVAZIONE = 0
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.riattivazione = 0 AND VC.DATA_FINEAVANZATO <= GETDATE() AND MD.Tip_riattivazione <> 0


--  CASO UPGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'UPGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
2					 AS RIATTIVAZIONE_3,2				 AS TIPOCONTRATTO_3,'N' AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1  

INSERT INTO C6Mart.GESTIONE_EMAIL (Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT rete,cod_fiscale,'PERF' as TipoEmail,GETDATE() AS DataGenerazione ,999 
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO  > GETDATE() AND MD.tip_Contratto = 1         

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT 
 TIP_RIATTIVAZIONE =2, TIP_CONTRATTO=2
,NumSolleciti=0,NumRevoche=0,Data_ultimoSollecito=null,Data_ultimaRevoca=null,InvioBenvenuto='N'
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 1         


--  CASO DOWNGRADE   ***************************************************************************************
INSERT INTO c6mart.test_logmd 
SELECT 'DOWNGRADE',GETDATE(),COD_FISCALE,RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
VC.riattivazione	 AS RIATTIVAZIONE_3,1				 AS TIPOCONTRATTO_3,null AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2  
     

UPDATE [C6Mart].[CONTRATTOSEI_METADATI] SET
--SELECT
    TIP_RIATTIVAZIONE =VC.riattivazione, TIP_CONTRATTO=1
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO   > GETDATE() AND MD.tip_Contratto = 2   



--CASO 4
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> AFF',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 1 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0


--CASO 5
INSERT INTO c6mart.test_logmd 
SELECT 'OLD >> PRI',GETDATE(),VC.COD_FISCALE,VC.RETE,
VC.riattivazione     AS RIATTIVAZIONE_1,VC.tip_contratto AS TIPOCONTRATTO_1,
MD.Tip_riattivazione AS RIATTIVAZIONE_2,MD.tip_Contratto AS TIPOCONTRATTO_2,
NULL				 AS RIATTIVAZIONE_3,NULL			 AS TIPOCONTRATTO_3,NULL AS INVIO_3,''
FROM C6MART.VCONTRATTI VC JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MD 
ON VC.chiaveClientePB = MD.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO > GETDATE() AND MD.tip_Contratto = 0
--------------------------------------------------------------------------------------------------------------------

-- Modifica del 03/10/2018 per gestire i casi in cui il campo InvioBenvenuto è una data
begin try

	 INSERT INTO C6MART.TEST_QUALITY
	 SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'CONTRATTOSEI_METADATI NON AGG.1' FROM [C6Mart].[vContrattiSei] VC
					LEFT JOIN c6mart.gestione_pdf_ftp  PDF
					ON SUBSTRING(PDF.NomeFile, 1, 11) = VC.CODICECONTRATTO
				WHERE    VC.INVIOBENVENUTO = 'S' AND PDF.CODICEFISCALE IS NULL
	end try

	begin catch
	end catch
-- Fine Modifica del 03/10/2018

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END


































GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_W6CatESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE   procedure [C6Mart].[RP_DM_W6CatESG]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_SPB_W6CatESG',
		GETDATE(),
		'Elaborazione giornaliera'
	)
--drop table c6staging.RP_CatalogoProdotti
	truncate table [C6StampeCentralizzate].[C6Mart].[SPB_W6CatESG]
	truncate table [C6StampeCentralizzate].[C6Mart].[W6CatESG]

INSERT INTO [C6Mart].[SPB_W6CatESG]
           ([Rete]
           ,[Codice_Agente]
           ,[Codice_Fiscale]
           ,[Piva_Fiduciaria]
           ,[CodiceContratto]
           ,[FamigliaProdotto]
           ,[CodiceProdotto]
           ,[DescrizioneProdotto]
           ,[CodiceTitolo]
           ,[Conto]
           ,[Custgar]
           ,[Asset]
           ,[Pct]
           ,[CodiceSottoprodotto]
           ,[DescrizioneSottoprodotto]
           ,[Isin]
           ,[IsinProxy]
           ,[TipoFondo]
           ,[Controvalore]
           ,[Importo]
           ,[QuantitaValoreNominale]
           ,[VarComparto]
           ,[CodiceLinea]
           ,[Sost_E]
           ,[Sost_S]
           ,[Sost_G]
           ,[ClasseComplessita]
           ,[DescrizioneClasseComplessita]
           ,[OrizzonteTemporale]
           ,[FlagRiserva])
SELECT [Rete]
      ,[Codice_Agente]
      ,[Codice_Fiscale]
      ,[Piva_Fiduciaria]
      ,[CodiceContratto]
      ,case when [FamigliaProdotto]='AS' then 'ASU1' 
			when [FamigliaProdotto]='OF' then 'GE'
	  else [FamigliaProdotto] end as [FamigliaProdotto]
      ,[CodiceProdotto]
      ,[DescrizioneProdotto]
      ,[CodiceTitolo]
      ,[Conto]
      ,[Custgar]
      ,[Asset]
      ,[Pct]
      ,case when [CodiceLinea]='FP' then 'FP' else [CodiceSottoprodotto] end as [CodiceSottoprodotto]
      ,[DescrizioneSottoprodotto]
      ,[Isin]
      ,[IsinProxy]
      ,[TipoFondo]
      ,[Controvalore]
      ,[Importo]
      ,[QuantitaValoreNominale]
      ,[VarComparto]
      ,[CodiceLinea]
      ,[Sost_E]
      ,[Sost_S]
      ,[Sost_G]
      ,[ClasseComplessita]
      ,[DescrizioneClasseComplessita]
      ,[OrizzonteTemporale]
      ,[FlagRiserva]
  FROM [C6StampeCentralizzate].[C6Staging].[SPB_W6CatESG]

  update b
  set  b.positionID=a.POSITIONID --, b.catalogueID=a.catalogueID
 from [C6Mart].[SPB_W6CatESG] b
  left join C6Staging.SPB_CONTR_SINTESI a
  on a.RETE=b.rete
  and a.CODICEFISCALE=b.codice_fiscale
  and a.CODICECONTRATTO=b.codicecontratto
 and a.CTV = b.controvalore 

   update b
  set  b.positionID=a.POSITIONID --, b.catalogueID=a.catalogueID
 from [C6Mart].[SPB_W6CatESG] b
  left join C6Staging.SPB_CONTR_SINTESI a
  on a.RETE=b.rete
  and a.CODICEFISCALE=b.codice_fiscale
  and a.CODICECONTRATTO=b.codicecontratto
 and a.CODICEINTERNO = b.CodiceProdotto
 and a.CODICESOTTOPRODOTTO=b.CodiceSottoprodotto
 where b.PositionID is null

 insert into [C6Mart].[W6CATESG]
  select GETDATE() as dttrim,
  '03296' as Banca, 
  Rete ,
  Codice_Fiscale as codfis,
  '' as codman, 
  case when Sost_E='Y' then 'Y' else 'N' end as esg_e_prod_cli,
  case when Sost_S='Y' then 'Y' else 'N' end as esg_s_prod_cli,
  case when Sost_G='Y' then 'Y' else 'N' end as esg_g_prod_cli,
  SUBSTRING(POSITIONID,1,57) as prodotto_id,
  PositionID as position_id
  from C6Mart.SPB_W6CatESG

-- select * from C6Staging.SPB_CONTR_SINTESI --where CODICEFISCALE='BCCSHR68B66H433Z'
-- select * from [C6Mart].[SPB_W6CatESG] --where Codice_Fiscale='BCCSHR68B66H433Z'


	--- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_SPB_W6CatESG' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_SPB_W6CatESG'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_W6CLIESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE   procedure [C6Mart].[RP_DM_W6CLIESG]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_W6CLIESG',  
  GETDATE(),  
  'Elaborazione Lettere di Benvenuto'  
 )  

 TRUNCATE TABLE C6Mart.SPB_W6CLIESG
 TRUNCATE TABLE C6Mart.W6CLIESG
  
 INSERT INTO  C6Mart.SPB_W6CLIESG
       ( 
	   [Rete]
      ,[Codice_Agente]
      ,[Codice_Fiscale]
      ,[Piva_Fiduciaria]
      ,[Codman]
      ,[BeneficioDiversificazione]
      ,[ValoreVaR]
      ,[Riserva]
      ,[PesoSostESG]
      ,[CSP]
      ,[ConcLungoPeriodo]
      ,[Liquidita]
      ,[NoSostESG]
      ,[SostPercE]
      ,[SostPercS]
      ,[SostPercG]
      ,[SostESGInLinea]
      ,[SostPercEInLinea]
      ,[SostPercSInLinea]
      ,[SostPercGInLinea]
      ,[NoSostSFDR]
      ,[SostSFDR]
      ,[SostSFDRInLinea]
      ,[NoSostTaxonomy]
      ,[SostTaxonomy]
      ,[SostTaxonomyInLinea]
      ,[NoSostPaiE]
      ,[SostPaiE]
      ,[SostPaiEInLinea]
      ,[NoSostPaiS]
      ,[SostPaiS]
      ,[SostPaiSInLinea]
      ,[Sost_E]
      ,[Sost_S]
      ,[Sost_G]
      ,[percESG]
      ,[UlterioriPrefSost]
      ,[PercSFDR]
      ,[PercTaxonomy]
      ,[PAI_E]
      ,[PAI_S]
      ,[ListPAI_E]
      ,[ListPAI_S])  
 SELECT distinct 
	   [Rete]
      ,[Codice_Agente]
      ,case when ISNULL(CODMAN,'')<>'' then 'FF@'+CODMAN
	   else Codice_Fiscale end as Codice_Fiscale
      ,[Piva_Fiduciaria]
      ,[Codman]
      ,[BeneficioDiversificazione]
      ,[ValoreVaR]
      ,[Riserva]
      ,[PesoSostESG]
      ,[CSP]
      ,[ConcLungoPeriodo]
      ,[Liquidita]
      ,[NoSostESG]
      ,[SostPercE]
      ,[SostPercS]
      ,[SostPercG]
      ,[SostESGInLinea]
      ,[SostPercEInLinea]
      ,[SostPercSInLinea]
      ,[SostPercGInLinea]
      ,[NoSostSFDR]
      ,[SostSFDR]
      ,[SostSFDRInLinea]
      ,[NoSostTaxonomy]
      ,[SostTaxonomy]
      ,[SostTaxonomyInLinea]
      ,[NoSostPaiE]
      ,[SostPaiE]
      ,[SostPaiEInLinea]
      ,[NoSostPaiS]
      ,[SostPaiS]
      ,[SostPaiSInLinea]
      ,[Sost_E]
      ,[Sost_S]
      ,[Sost_G]
      ,[percESG]
      ,[UlterioriPrefSost]
      ,[PercSFDR]
      ,[PercTaxonomy]
      ,isnull([PAI_E],'')
      ,isnull([PAI_S],'')
      ,[ListPAI_E]
      ,[ListPAI_S]
FROM [C6StampeCentralizzate].[C6Staging].[SPB_W6CliESG] 

drop table if exists #st_split_E
drop table if exists #st_split_S
drop table if exists #st_split_ES 

-- Step 1: Creazione delle tabelle temporanee
SELECT 
    value AS ListPAI_E,
    [Rete],
    [Codice_Agente],
    CASE 
        WHEN CODMAN <> '' THEN 'FF@' + CODMAN
        ELSE Codice_Fiscale 
    END AS COD_FISCALE
INTO #st_split_E
FROM  C6Mart.SPB_W6CLIESG
CROSS APPLY STRING_SPLIT(ListPAI_E, '|')

SELECT 
    value AS ListPAI_S,
    [Rete],
    [Codice_Agente],
    CASE 
        WHEN CODMAN <> '' THEN 'FF@' + CODMAN
        ELSE Codice_Fiscale 
    END AS COD_FISCALE
INTO #st_split_S
FROM C6Mart.SPB_W6CLIESG
CROSS APPLY STRING_SPLIT(ListPAI_S, '|')

--select * from  C6Mart.SPB_W6CLIESG
--select * from #st_split_E
--select * from #st_split_S

-- Step 2: Aggregare le descrizioni in un'unica query
SELECT 
    [Rete], 
    [COD_FISCALE],
    STRING_AGG(CASE 
        WHEN ListPAI_E = 'PAI_A01' THEN 'Emissioni gas serra'
        WHEN ListPAI_E = 'PAI_A02' THEN 'Biodiversità'
        WHEN ListPAI_E = 'PAI_A03' THEN 'Acqua'
        WHEN ListPAI_E = 'PAI_A04' THEN 'Rifiuti'
        WHEN ListPAI_E = 'PAI_A05' THEN 'Governativi di tipo Ambientale'
        WHEN ListPAI_E = 'PAI_A07' THEN 'Efficienza energetica'
        WHEN ListPAI_E = 'PAI_A08' THEN 'Settore Immobiliare'
        ELSE NULL 
    END, ', ') AS PAI_E,

    STRING_AGG(CASE 
        WHEN ListPAI_S = 'PAI_S01' THEN 'Questioni Sociali e dei Dipendenti'
        WHEN ListPAI_S = 'PAI_S02' THEN 'Governativi di tipo Sociale'
        ELSE NULL 
    END, ', ') AS PAI_S
into #st_split_ES 
FROM (
    SELECT Rete, COD_FISCALE, ListPAI_E, NULL AS ListPAI_S 
    FROM #st_split_E
    UNION ALL
    SELECT Rete, COD_FISCALE, NULL AS ListPAI_E, ListPAI_S 
    FROM #st_split_S
) AS Combined
GROUP BY 
    [Rete],
    [COD_FISCALE]


update  b
set b.PAI_E=es.PAI_E, b.PAI_S=es.PAI_S
from C6Mart.SPB_W6CLIESG b
inner join #st_split_ES es
on   b.Rete =  es.Rete
and  b.Codice_Fiscale = es.COD_FISCALE

insert into [C6Mart].[W6CLIESG] 
SELECT CAST(CONVERT(VARCHAR(8), GETDATE(), 112) AS DECIMAL(8, 0)) AS DTTRIM,
RETE,
codice_fiscale as CODFIS,
'' as CODMAN,
UlterioriPrefSost as U_PREFSOST,
case when isnull(PercSFDR,0.00)=0.00 then 'N' else 'S' end as FLAGSFDR,
case when isnull(PercTaxonomy,0.00)=0.00 then 'N' else 'S' end as FLAGTAXO,
case when ListPAI_E='' and ListPAI_S='' then 'N' else 'S' end as FLAGPAI,
PercSFDR as SFDR_PERC,
PercTaxonomy as TAXO_PERC,
case when ListPAI_E like '%PAI_A01%' then 'S' else 'N' end as PAI_A01,
case when ListPAI_E like '%PAI_A02%' then 'S' else 'N' end as PAI_A02,
case when ListPAI_E like '%PAI_A03%' then 'S' else 'N' end as PAI_A03,
case when ListPAI_E like '%PAI_A04%' then 'S' else 'N' end as PAI_A04,
case when ListPAI_E like '%PAI_A05%' then 'S' else 'N' end as PAI_A05,
case when ListPAI_E like '%PAI_A07%' then 'S' else 'N' end as PAI_A07,
case when ListPAI_E like '%PAI_A08%' then 'S' else 'N' end as PAI_A08,
case when ListPAI_S like '%PAI_S01%' then 'S' else 'N' end as PAI_S01,
case when ListPAI_S like '%PAI_S02%' then 'S' else 'N' end as PAI_S02,
CASE WHEN ListPAI_E like '%PAI_A01%' THEN 'Emissioni gas serra'				   else '' end as PAI_A1,
CASE WHEN ListPAI_E like '%PAI_A02%' THEN 'Biodiversità'					   else '' end as PAI_A2,
CASE WHEN ListPAI_E like '%PAI_A03%' THEN 'Acqua'							   else '' end as PAI_A3,
CASE WHEN ListPAI_E like '%PAI_A04%' THEN 'Rifiuti'							   else '' end as PAI_A4,
CASE WHEN ListPAI_E like '%PAI_A05%' THEN 'Governativi di tipo Ambientale'	   else '' end as PAI_A5,
CASE WHEN ListPAI_E like '%PAI_A07%' THEN 'Efficienza energetica'			   else '' end as PAI_A7,
CASE WHEN ListPAI_E like '%PAI_A08%' THEN 'Settore Immobiliare'				   else '' end as PAI_A8,
CASE WHEN ListPAI_S like '%PAI_S01%' THEN 'Questioni Sociali e dei Dipendenti' else '' end as PAI_S1,
CASE WHEN ListPAI_S like '%PAI_S02%' THEN 'Governativi di tipo Sociale'		   else '' end as PAI_S2,
PAI_E as PAI_A,
PAI_S,
'N' as PAI_NO_DETT,
PesoSostESG as PERC1ESG,
SostPercE as PERCAMB,
SostPercS as PERCSOC,
SostPercG as PERCGOV,
SostPercEInLinea as PERCAMB_OK,
SostPercsInLinea as PERCSOC_OK,
SostPercgInLinea as PERCGOV_OK,
SostSFDR as SFDR_PERCT,
SostSFDRInLinea as SFDR_PERC_OK,
SostTaxonomy as TAXO_PERCT,
SostTaxonomyInLinea as TAXO_PERC_OK,
SostPaiE as PAIA_PERCT,
SostPaiEInLinea as PAIA_PERC_OK,
SostPaiS as PAIS_PERCT,
SostPaiSInLinea as PAIS_PERC_OK
from [c6mart].[SPB_W6CliESG]

 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_W6CliESG' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_W6CliESG'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6Mart].[RP_DM_WSEICAP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6Mart].[RP_DM_WSEICAP]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_WSEICAP',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6Mart.WSEICAP 
  
 INSERT INTO C6Mart.[WSEICAP]  
           ([DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[COD_FISCALE]
      ,[CODCONF]
      ,[SUBPROD]
      ,[ISIN]
      ,[DTINIZ]
      ,[DTFINE]
      ,[CTV_COMMIT]
      ,[IMPVERS]
      ,[IMPRES]
      ,[DESCPROD]
      ,[SGR])  

 select 
 '99999999' as DTTRIM,
 '99999999' as DTRIFE,
PATRBF.rete as RETE,
PATRBF.COD_FISCALE as COD_FISCALE,
PATRBF.ID_CONTRATTO as CODCONF,
PATRBF.COD_SOTTOPRODOTTO as SUBPROD,
PATRBF.ISIN as ISIN,
ICAP.dataInizioCommitment as DTINIZ,
ICAP.dataFineCommitment as DTFINE,
ICAP.totaleCommitment as CTV_COMMIT,
ICAP.importoVersato as IMPVERS,
ICAP.importoDaVersare as IMPRES,
ANAG.DESCR_PRODOTTO as DESCPROD,
ANAG.DESCR_SGR as SGR
from C6Mart.PATRIMONIO_BF PATRBF
inner join C6Staging.SPB_wseicap ICAP on PATRBF.ID_CONTRATTO=ICAP.codicecontratto 
and PATRBF.ISIN=ICAP.isin
left join C6MART.ANAG_PRODOTTI ANAG
ON ANAG.COD_PRODOTTO = PATRBF.COD_PRODOTTO
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_WSEICAP' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_WSEICAP'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6Mart].[RP_GESTIONE_SELECT_LETTERE_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT TOP 1 * FROM C6MART.VCONTRATTI
--[C6Mart].[GESTIONE_SELECT_LETTERE_DA_INVIARE]'F','AA@55670',1,-1
CREATE procedure [C6Mart].[RP_GESTIONE_SELECT_LETTERE_DA_INVIARE]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()

--declare @prova as varchar(10)
--select @prova = 'AA@55670'
--select @prova
--select charindex('@',@prova)

	SELECT
			dbo.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			
			--Modifica per le persone giuridiche
			CASE 
				WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
					THEN aclie.cognome --+ 'JJ'
					ELSE aclie.nome
			END	AS nome,
			
			--aclie.nome as nome,
			CASE
				WHEN LEN(csei.cod_fiscale) = 11
					THEN aclie.nome
					ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
							THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
					ELSE
						aclie.cognome
					END	
			END	AS cognome,

			--aclie.cognome as cognome,
			csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.PROVINCIA end as provincia,
			csei.cap as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			dbo.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_MONITORAGGIO,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												csei.DATA_INZIOAVANZATO,
												@dataRichiestaRistampa,
												gpdf.DataGenerazione,
												tla.[TESTO]
											) as testo,
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma
 
		FROM	
			[C6Mart].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[C6Mart].[VCONTRATTI] csei
			JOIN
			C6MART.CONTRATTOSEI_METADATI META
			ON
				META.CHIAVECLIENTEPB= CSEI.CHIAVECLIENTEPB
			INNER JOIN
			[C6Mart].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
			LEFT OUTER JOIN
			C6Mart.GESTIONE_PDF_FTP gpdf
			on
				gpdf.rete = csei.rete and
				gpdf.codiceFiscale = csei.cod_fiscale
			
		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			csei.data_fineAvanzato > getDate() and
			tla.id = @codiceLettera and
			(gpdf.idReport = @idReport or @idreport = -1) 


END


GO
/****** Object:  StoredProcedure [C6Mart].[RP_PROM_TuttiIPortafogli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================
--[C6Mart].[PROM_TuttiIPortafogli]
CREATE procedure [C6Mart].[RP_PROM_TuttiIPortafogli]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT [Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,cast([CtvNominale] as varchar) as CtvNominale
      ,cast([CtvReale] as varchar) as CtvReale



FROM (

	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli]


	union all
	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli_ccLiq]
) T

order by rete,codiceFiscale,Portafoglio








































END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_PROM_TuttiIPortafogli_20180612_NewMotorePrometeia]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================
--[C6Mart].[PROM_TuttiIPortafogli]
CREATE procedure [C6Mart].[RP_PROM_TuttiIPortafogli_20180612_NewMotorePrometeia]
	-- Add the parameters for the stored procedure here
AS
BEGIN

--COMMENTATA PERCHé LA CREAZIONE VA IN ERRORE A CAUSA DEI CAMPI MANCANTI NELLE VISTE: ELIMINARE IL COMMENTO QUANDO SI UTILIZZA QUESTA NUOVA VERSIONE

--SELECT [Rete]
--      ,[CodiceFiscale]
--      ,[Portafoglio]
--      ,[CodiceProdotto]
--	    -- 23/5/2018 ---------
--	  ,[CodiceAdeguatezza]
--	  -----------------------
--      ,[Piazza]
--      ,[CodiceValuta]
--      ,[Classe]
--      ,cast([CtvNominale] as varchar) as CtvNominale
--      ,cast([CtvReale] as varchar) as CtvReale



--FROM (

--	SELECT [Rete]
--		  ,[CodiceFiscale]
--		  ,[Portafoglio]
--		  ,[CodiceProdotto]
--		  -- 23/5/2018 ---------
--		  ,[CodiceAdeguatezza]
--		  -----------------------
--		  ,[Piazza]
--		  ,[CodiceValuta]
--		  ,[Classe]
--		  ,[CtvNominale]
--		  ,[CtvReale]
--	  FROM [C6Mart].[RP_vTuttiIPortafogli]


--	union all
--	SELECT [Rete]
--		  ,[CodiceFiscale]
--		  ,[Portafoglio]
--		  ,[CodiceProdotto]
--		  -- 23/5/2018 ---------
--		  ,[CodiceAdeguatezza]
--		  -----------------------
--		  ,[Piazza]
--		  ,[CodiceValuta]
--		  ,[Classe]
--		  ,[CtvNominale]
--		  ,[CtvReale]
--	  FROM [C6Mart].[RP_vTuttiIPortafogli_ccLiq]
--) T

--order by rete,codiceFiscale,Portafoglio

select 1

END
GO
/****** Object:  StoredProcedure [C6Mart].[RP_PROM_TuttiIPortafogli_20180612_PreMotorePrometeia]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================
--[C6Mart].[PROM_TuttiIPortafogli]
CREATE procedure [C6Mart].[RP_PROM_TuttiIPortafogli_20180612_PreMotorePrometeia]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT [Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,cast([CtvNominale] as varchar) as CtvNominale
      ,cast([CtvReale] as varchar) as CtvReale



FROM (

	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli]


	union all
	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli_ccLiq]
) T

order by rete,codiceFiscale,Portafoglio








































END



GO
/****** Object:  StoredProcedure [C6Mart].[RP_PROM_TuttiIPortafogli2_Indicatore]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[RP_PROM_TuttiIPortafogli2_Indicatore]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]


FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		,case
			when [CtvNominale] < 0 then '0.000'
			else convert(varchar(20),[CtvNominale])
		end as [CtvNominale]
		,case
			when [CtvReale] < 0 then '0.000'
			else convert(varchar(20),[CtvReale])
		end as [CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli_newkey]
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O','FVTTTZN76R63A940M','SMLZFLV47S49H501Z')


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		,case
			when [CtvNominale] < 0 then '0.000'
			else convert(varchar(20),[CtvNominale])
		end as [CtvNominale]
		,case
			when [CtvReale] < 0 then '0.000'
			else convert(varchar(20),[CtvReale])
		end as [CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli_newkey]
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O','FVTTTZN76R63A940M','SMLZFLV47S49H501Z')
	

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		,case
			when [CtvNominale] < 0 then '0.000'
			else convert(varchar(20),[CtvNominale])
		end as [CtvNominale]
		,case
			when [CtvReale] < 0 then '0.000'
			else convert(varchar(20),[CtvReale])
		end as [CtvReale]
	  FROM [C6Mart].[RP_vTuttiIPortafogli_newkey]
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O','FVTTTZN76R63A940M','SMLZFLV47S49H501Z')

) T

order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6Mart].[RP_Selettore_GetDataThreads]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6Mart].[RP_Selettore_GetDataThreads]
    @BatchName NVARCHAR(100)
AS
BEGIN
truncate table [C6Mart].[TB_Selettore_GetDataThreads]


insert into [C6Mart].[TB_Selettore_GetDataThreads] values (@BatchName,'Verrà stampata la Reportistica '+ @BatchName +' Giornaliera',getdate())


   
   
END;
GO
/****** Object:  StoredProcedure [C6Mart].[RP_SRV_ESTRAZ_GIORNALIERA_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		alessandro Tringali
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_SRV_ESTRAZ_GIORNALIERA_CC]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_SRV_ESTRAZ_GIORNALIERA_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

--V Cancellazione delle tuple inserite nel giorno corrente, può accadere che la procedura viene 
-- lanciata più di una volta, in quel caso inserirei righe doppie.
DELETE FROM C6MART.ESTRAZ_GIORNALIERA_CC
WHERE DATEDIFF(dd,dataGenerazione,getDate()) = 0



INSERT INTO C6MART.ESTRAZ_GIORNALIERA_CC
SELECT
a.COD_FISCALE,
A.RETE,
CODICECONTRATTO,
DATAGENERAZIONE,
NUMERO_CC,
C.CTV_CC,
D.TOT_CTV,
D.TOT_CTV_NO_CC
FROM
C6MART.VCONTRATTI A,
C6MART.GESTIONE_PDF_FTP B, 
(
       SELECT 
       COD_FISCALE, 
       RETE, 
       COD_CC AS NUMERO_CC, 
       SUM(SALDOCONTABILE) AS CTV_CC 
       FROM C6MART.ANAG_CC 
       GROUP BY 
       COD_FISCALE, 
       RETE,
       COD_CC
  ) C,
(       SELECT COD_FISCALE, RETE,
       SUM(CTV) AS TOT_CTV,
       SUM(CASE WHEN TIPO_PRODOTTO='CC' THEN 0 ELSE CTV END) AS TOT_CTV_NO_CC FROM C6MART.PATRIMONIO_BF 
       GROUP BY COD_FISCALE, RETE
)D
WHERE
A.COD_FISCALE=B.CODICEFISCALE
AND A.RETE=B.RETE
AND A.COD_FISCALE=C.COD_FISCALE
AND A.RETE=C.RETE
AND A.COD_FISCALE=D.COD_FISCALE
AND A.RETE=D.RETE 
ORDER BY 1,2,3,5




	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_SRV_ESTRAZ_GIORNALIERA_CC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_SRV_ESTRAZ_GIORNALIERA_CC'
		)

	 

	
END



 

GO
/****** Object:  StoredProcedure [C6Mart].[sp_getDatiReport]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[sp_getDatiReport]
AS
BEGIN

select
	Contratti.codicecontratto as codiceContratto ,
	pdf.rete as rete ,
	pdf.codicefiscale as codiceFiscale ,
	clienti.nome as nomeCliente  ,
	clienti.cognome as cognomeCliente, 
	pdf.TipoReport as TipoReport,
	pdf.idReport as IdReport ,
	contratti.cod_agente as codAgente ,
	isnull(promot.nome,'') as nomeAgente ,
	isnull(promot.Cognome,'') as cognomeAgente ,
	pdf.numeropagine as numeroPagine ,
	pdf.NomeFile as NomeFile,
	contratti.tip_contratto tipoContratto,
	id_fk_zip,
	pdf.IDReport as identityReport
from [C6Mart].[GESTIONE_PDF_FTP]  PDF
	inner join [C6Mart].[ANAG_CLIENTI] Clienti
	on pdf.rete=clienti.rete and pdf.codicefiscale=clienti.COD_FISCALE 
		inner join c6mart.vContratti Contratti
		on contratti.rete=pdf.rete and contratti.cod_fiscale= pdf.codicefiscale 
			left join [C6Mart].[ANAG_Promotori] promot
			on contratti.rete=promot.rete and contratti.cod_agente= promot.id_promotore
				inner join dbo.reportDainserire_recupero rep
				on pdf.IDReport = rep.identificativo
where
	pdf.DataGenerazione = rep.Data

--order by IdentityReport

End


GO
/****** Object:  StoredProcedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @DataOggiPerVar VARCHAR(8)
	SET @DataOggiPerVar = convert(VARCHAR(8), getdate(), 112)

	--V Esegue la procedura di estrazione dei CC
	EXEC [C6Mart].[SRV_ESTRAZ_GIORNALIERA_CC]

	-- Report generati
	SELECT
		C.Rete,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else C.Cod_Fiscale end as Cod_fiscale,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6Mart.GESTIONE_PDF_FTP AS GPF
		INNER JOIN C6Mart.VCONTRATTI AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  C.chiaveclientepb = M.chiaveclientepb
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()
	ORDER BY
		C.Rete,
		C.Cod_Agente,
		C.Cod_Fiscale

	-- Report non generati
	SELECT
		Rete,
		Cod_Agente,
		case when Cod_Fiscale  like '%@%' then piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else Cod_Fiscale end as Cod_fiscale,
		Data_Perf,
		ClienteMigrato,
		RisorseNA,
		profiloAttivo,
		'Ragione:' 
		---------------en_20161026 eliminated NA
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Cliente non migrato ' --/ Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato ' --/ Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Cliente non migrato / Profilo non attivo ' --/ Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato / Profilo non attivo ' --/ Risorse non associate '
		--	ELSE ''
		--END
		------------------en_20161026  ClienteMigrato always S
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Cliente non migrato / Profilo non attivo '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato / Profilo non attivo '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Cliente non migrato '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato '
		--	ELSE ''
		--END
		-------------------en_20161026  eliminated NA
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Risorse non associate / Profilo non attivo '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate / Profilo non attivo '
		--	ELSE ''
		--END

		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Risorse non associate '
		--	ELSE ''
		--END

		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate '
		--	ELSE ''
		--END
		-------------------en_20161026 
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca ' ----en / Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' In attesa di gestione Revoca '
			ELSE ''
		END
		/*+ CASE
			WHEN PartViaDisinv = 'S' THEN ' Partite viaggianti disinvestimento'
			ELSE ''
		END*/
		AS Ragione
	INTO #ReportNonGenerati
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  CONTRATTOSEI.chiaveclientepb = M.chiaveclientepb
	WHERE
		M.InvioBenvenuto = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		-------------en_20161026 no risorse non alloacate / no NA
		AND RisorseNA = 'N'
		AND ClienteMigrato = 'S'
		AND (
		--ClienteMigrato = 'N'
		--OR RisorseNA = 'S'
		-------------en_20161026
				--OR 
		--V Condizione per non generazione a causa di profilo non attivo
		ProfiloAttivo = 0
		OR Data_UltimaRevoca is not null
		--
		/*OR PartViaDisinv = 'S'*/)
		AND Data_FineAvanzato > getDate()

	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Email
	SELECT
		CASE Tipo
			WHEN 'PERF' THEN 'perfezionamento'
		    ---------------en_20161026 eliminated NA and always ClienteMigrato = 'S'
			--WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
			--WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
			--WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
			--WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
			--WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			
			--WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
			--WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
			--WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
			--WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
			--WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			----------------------------------------
			--V aggiunta tipo mail profilo non attivo
			WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'

		END AS Tipo,
		COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM
		C6Mart.GESTIONE_EMAIL
	WHERE
		Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	GROUP BY
		Tipo
	ORDER BY TIPO
	-- Indirizzi più lunghi di 36 caratteri
	SELECT
		C.Rete,
		Cod_Agente,
		Cod_Fiscale,
		Indirizzo,
		LEN(Indirizzo) AS LunghezzaIndirizzo
	INTO #IndirizziLunghi
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.GESTIONE_PDF_FTP AS GPF
			ON C.Rete = GPF.RETE
			AND C.Cod_Fiscale = GPF.CODICEFISCALE
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND LEN(Indirizzo) > 36
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Prodotti non a catalogo
	SELECT
		RETE,
		CODICEFISCALE,
		CODICECONTRATTO,
		CODICEINTERNO,
		CODICESOTTOPRODOTTO,
		CODICEMAF,
		ISIN
	INTO #ProdNonInCat
	FROM
		C6Staging.SPB_CONTR_SINTESI
	WHERE
		POSITIONID IS NULL

	-- VaR discordanti
	SELECT
		RA.RETE,
		RA.COD_FISCALE,
		RA.VAR_PERC_PTF,
		VC.VAR_COMPLESSIVO_BF,
        CASE
			WHEN RA.VAR_PERC_PTF = VC.VAR_COMPLESSIVO_BF THEN 'OK'
			ELSE 'KO'
		END AS VAR_CORRETTO
	INTO #VaRDiscordanti
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
		--INNER JOIN VAR_CHECK AS VC
		INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
			ON RA.RETE = VC.RETE
			AND RA.COD_FISCALE = VC.COD_FISCALE
	WHERE
		(RA.COD_AGGREG = 'COMPLESSIVO|BF')
	ORDER BY
		RA.RETE,
		RA.COD_FISCALE

	INSERT INTO VaRDiscordanti_appo SELECT *, GETDATE() FROM #VaRDiscordanti

	-- Posizioni in stato liquidato
	SELECT
		PB.RETE,
		PB.COD_FISCALE,
		ID_CONTRATTO
	INTO #PosizioniStatoL
	FROM
		C6Mart.PATRIMONIO_BF AS PB
		INNER JOIN #VaRDiscordanti AS VD
			ON PB.RETE = VD.RETE
			AND PB.COD_FISCALE = VD.COD_FISCALE
	WHERE
		PB.COD_STATO = 'L'
		AND PB.CTV >= 0
		AND VD.VAR_CORRETTO = 'KO'
	ORDER BY
		PB.RETE,
		PB.COD_FISCALE

	-- Clienti senza data sottoscrizione
	SELECT DISTINCT
		PB.RETE,
		C.COD_AGENTE,
		PB.COD_FISCALE,
		PB.ID_CONTRATTO
	INTO #ClientiSenzaDataSott
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6Mart.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

	-- Clienti senza piramide modello
	SELECT
		Rete,
		Cod_Agente,
		Cod_Fiscale,
		data_perf
	INTO #ClientiSenzaPiramideModello
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
    inner join 
		C6Mart.contrattosei_metadati as M
    on CONTRATTOSEI.chiaveclientepb = m.chiaveclientepb
	WHERE
		--Data_FineAvanzato < getDate()
		Data_FineAvanzato > getDate()
		AND inviobenvenuto = 'N'
		AND clientemigrato = 'S'
		AND risorseNA = 'N'
		AND profiloAttivo = 1
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND Rete+Cod_Fiscale NOT IN (
			SELECT
				Rete+COD_FISCALE
            FROM
				C6Mart.PIRAMIDE_MOD)

	--scarti simpb contrattoSintesi
	SELECT C6.Rete, Cod_Agente, codiceFiscale,DATA_PERF
	INTO #ClientiSenzaContrattoSintesi
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_CONTRSINTESI' 

	--scarti simpb mifid
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaProfiloMIFID
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_MIFID'
	

	DECLARE @testoMail VARCHAR(MAX)
	DECLARE @rete CHAR(1)
	DECLARE @codiceAgente VARCHAR(6)
	DECLARE @codiceFiscale VARCHAR(25)
	DECLARE @data DATETIME
	DECLARE @ragione VARCHAR(100)
	DECLARE @tipo VARCHAR(100)
	DECLARE @indirizzo VARCHAR(100)
	DECLARE @totale INT
	DECLARE @codiceContratto VARCHAR(11)
	DECLARE @codiceinterno VARCHAR(10)
	DECLARE @codicesottoprodotto VARCHAR(5)
	DECLARE @codicemaf VARCHAR(20)
	DECLARE @isin VARCHAR(12)
	DECLARE @varPercPtf DECIMAL(5, 2)
	DECLARE @varComplessivoBf DECIMAL(5, 2)

	SET @testoMail = '<html><body><table border="0"><tr><td colspan="2"><strong>E-mail inviate:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Tipo,
			Totale
		FROM
			#EmailInviate
	OPEN reader
	FETCH NEXT FROM reader INTO @tipo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
		SET @testoMail = @testoMail + '<td align="right">' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @tipo, @totale
	END
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Report generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf
		FROM
			#ReportGenerati
		--modifica Emanuele x escludere l'agente di prova
		WHERE Cod_Agente <> '015312'
		--modifica Emanuele x escludere l'agente di prova
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ReportGenerati
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Report non generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf,
			Ragione
		FROM
			#ReportNonGenerati
		--modifica Emanuele x escludere l'agente di prova
		WHERE Cod_Agente <> '015312'
		--modifica Emanuele x escludere l'agente di prova
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '<td>' + @ragione + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	END
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati
	SET @testoMail = @testoMail + '<tr><td align="right">Totale:</td><td>' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Indirizzi più lunghi di 36 caratteri:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Indirizzo,
			LEN(Indirizzo) AS LunghezzaIndirizzo
		FROM
			#IndirizziLunghi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @indirizzo + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	END
	SELECT @totale = COUNT(*) FROM #IndirizziLunghi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con prodotti non a catalogo (CodConf, CodInt/SubProd/CodMaf/Isin):</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			CODICEFISCALE,
			CODICECONTRATTO,
			CODICEINTERNO,
			CODICESOTTOPRODOTTO,
			CODICEMAF,
			ISIN
		FROM #ProdNonInCat
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto, @codiceinterno, @codicesottoprodotto, @codicemaf, @isin
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '&nbsp;&nbsp;&nbsp;'
		SET @testoMail = @testoMail + ltrim(rtrim(@codiceinterno)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@codicesottoprodotto)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@codicemaf)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@isin)) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto, @codiceinterno, @codicesottoprodotto, @codicemaf, @isin
	END
	SELECT @totale = COUNT(*) FROM #ProdNonInCat
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti con VaR discordante:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			VAR_PERC_PTF,
			VAR_COMPLESSIVO_BF
		FROM
			#VaRDiscordanti
		WHERE
			VAR_CORRETTO = 'KO'
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varPercPtf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varComplessivoBf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	END
	SELECT @totale = COUNT(*) FROM #VaRDiscordanti WHERE VAR_CORRETTO = 'KO'
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con posizioni stato Liquidato:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#PosizioniStatoL
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #PosizioniStatoL
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza data sottoscrizione</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_AGENTE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#ClientiSenzaDataSott
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaDataSott
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza piramide modello</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			isnull(Cod_Agente,''),
			Cod_Fiscale,
			data_perf
		FROM
			#ClientiSenzaPiramideModello
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaPiramideModello
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader





	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Clienti senza righe Contratto Sintesi</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			isnull(Cod_Agente,''),
			codiceFiscale,
			data_perf
		FROM
			#ClientiSenzaContrattoSintesi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,@codiceAgente,@codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete,@codiceAgente,@codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaContrattoSintesi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="4">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader


	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe profilo MIFID</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,data_perf
		FROM
			#ClientiSenzaProfiloMIFID
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaProfiloMIFID
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	

---------------------------------------------------------------------
--Email non inviate

	--SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Email non inviate:</strong></td></tr>'
	--DECLARE reader CURSOR LOCAL FORWARD_ONLY
	--FOR

	--	SELECT a.rete, a.cod_fiscale, a.cod_agente, 
	--	CASE Tipo
	--		WHEN 'PERF' THEN 'perfezionamento'
	--		WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
	--		WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
	--		WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
	--		WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
	--		WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
	--		WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
	--		WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
	--		WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
	--		WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
	--		WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
	--		--V aggiunta tipo mail profilo non attivo
	--		WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
	--		WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
	--		WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
	--		WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
	--		WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
	--	END AS Tipo
	--	FROM C6Mart.Contrattosei a
	--	inner join C6Mart.GESTIONE_EMAIL b
	--	on
	--	a.rete = b.rete
	--	and
	--	a.cod_fiscale = b.cod_fiscale
	--	WHERE isnull(b.Inviata,'N')='N'

	--OPEN reader
	--FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--WHILE @@FETCH_STATUS = 0
	--BEGIN
	--	SET @testoMail = @testoMail + '<tr>'
	--	SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
	--	SET @testoMail = @testoMail + '</tr>'
	--	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--END
	--SELECT @totale = COUNT(*) FROM C6Mart.GESTIONE_EMAIL WHERE isnull(Inviata,'N')='N'
	--SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	--SET @testoMail = @testoMail + '</table>'
	--CLOSE reader
	--DEALLOCATE reader

---------------------------------------------------------------------

	SET @testoMail = @testoMail + '</table></body></html>'

	SELECT @testoMail

	DROP TABLE #ReportGenerati
	DROP TABLE #ReportNonGenerati
	DROP TABLE #EmailInviate
	DROP TABLE #IndirizziLunghi
	DROP TABLE #PosizioniStatoL
	DROP TABLE #ProdNonInCat
	DROP TABLE #VaRDiscordanti
	DROP TABLE #ClientiSenzaDataSott
	DROP TABLE #ClientiSenzaPiramideModello
	DROP TABLE #ClientiSenzaContrattoSintesi
	DROP TABLE #ClientiSenzaProfiloMIFID




END
GO
/****** Object:  StoredProcedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO_20161026]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO_20161026]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @DataOggiPerVar VARCHAR(8)
	SET @DataOggiPerVar = convert(VARCHAR(8), getdate(), 112)

	--V Esegue la procedura di estrazione dei CC
	EXEC [C6Mart].[SRV_ESTRAZ_GIORNALIERA_CC]

	-- Report generati
	SELECT
		C.Rete,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else C.Cod_Fiscale end as Cod_fiscale,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6Mart.GESTIONE_PDF_FTP AS GPF
		INNER JOIN C6Mart.VCONTRATTI AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  C.chiaveclientepb = M.chiaveclientepb
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()
	ORDER BY
		C.Rete,
		C.Cod_Agente,
		C.Cod_Fiscale

	-- Report non generati
	SELECT
		Rete,
		Cod_Agente,
		case when Cod_Fiscale  like '%@%' then piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else Cod_Fiscale end as Cod_fiscale,
		Data_Perf,
		ClienteMigrato,
		RisorseNA,
		profiloAttivo,
		'Ragione:' 
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Cliente non migrato ' --/ Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato ' --/ Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Cliente non migrato / Profilo non attivo ' --/ Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato / Profilo non attivo ' --/ Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Cliente non migrato / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Cliente non migrato '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Risorse non associate / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' In attesa di gestione Revoca '
			ELSE ''
		END
		/*+ CASE
			WHEN PartViaDisinv = 'S' THEN ' Partite viaggianti disinvestimento'
			ELSE ''
		END*/
		AS Ragione
	INTO #ReportNonGenerati
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  CONTRATTOSEI.chiaveclientepb = M.chiaveclientepb
	WHERE
		M.InvioBenvenuto = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND (ClienteMigrato = 'N'
		OR RisorseNA = 'S'
		--V Condizione per non generazione a causa di profilo non attivo
		OR ProfiloAttivo = 0
		OR Data_UltimaRevoca is not null
		--
		/*OR PartViaDisinv = 'S'*/)
		AND Data_FineAvanzato > getDate()

	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Email
	SELECT
		CASE Tipo
			WHEN 'PERF' THEN 'perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			--V aggiunta tipo mail profilo non attivo
			WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'

		END AS Tipo,
		COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM
		C6Mart.GESTIONE_EMAIL
	WHERE
		Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	GROUP BY
		Tipo
	ORDER BY TIPO
	-- Indirizzi più lunghi di 36 caratteri
	SELECT
		C.Rete,
		Cod_Agente,
		Cod_Fiscale,
		Indirizzo,
		LEN(Indirizzo) AS LunghezzaIndirizzo
	INTO #IndirizziLunghi
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.GESTIONE_PDF_FTP AS GPF
			ON C.Rete = GPF.RETE
			AND C.Cod_Fiscale = GPF.CODICEFISCALE
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND LEN(Indirizzo) > 36
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Prodotti non a catalogo
	SELECT
		RETE,
		CODICEFISCALE,
		CODICECONTRATTO,
		CODICEINTERNO,
		CODICESOTTOPRODOTTO,
		CODICEMAF,
		ISIN
	INTO #ProdNonInCat
	FROM
		C6Staging.SPB_CONTR_SINTESI
	WHERE
		POSITIONID IS NULL

	-- VaR discordanti
	SELECT
		RA.RETE,
		RA.COD_FISCALE,
		RA.VAR_PERC_PTF,
		VC.VAR_COMPLESSIVO_BF,
        CASE
			WHEN RA.VAR_PERC_PTF = VC.VAR_COMPLESSIVO_BF THEN 'OK'
			ELSE 'KO'
		END AS VAR_CORRETTO
	INTO #VaRDiscordanti
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
		--INNER JOIN VAR_CHECK AS VC
		INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
			ON RA.RETE = VC.RETE
			AND RA.COD_FISCALE = VC.COD_FISCALE
	WHERE
		(RA.COD_AGGREG = 'COMPLESSIVO|BF')
	ORDER BY
		RA.RETE,
		RA.COD_FISCALE

	INSERT INTO VaRDiscordanti_appo SELECT *, GETDATE() FROM #VaRDiscordanti

	-- Posizioni in stato liquidato
	SELECT
		PB.RETE,
		PB.COD_FISCALE,
		ID_CONTRATTO
	INTO #PosizioniStatoL
	FROM
		C6Mart.PATRIMONIO_BF AS PB
		INNER JOIN #VaRDiscordanti AS VD
			ON PB.RETE = VD.RETE
			AND PB.COD_FISCALE = VD.COD_FISCALE
	WHERE
		PB.COD_STATO = 'L'
		AND PB.CTV >= 0
		AND VD.VAR_CORRETTO = 'KO'
	ORDER BY
		PB.RETE,
		PB.COD_FISCALE

	-- Clienti senza data sottoscrizione
	SELECT DISTINCT
		PB.RETE,
		C.COD_AGENTE,
		PB.COD_FISCALE,
		PB.ID_CONTRATTO
	INTO #ClientiSenzaDataSott
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6Mart.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

	-- Clienti senza piramide modello
	SELECT
		Rete,
		Cod_Agente,
		Cod_Fiscale,
		data_perf
	INTO #ClientiSenzaPiramideModello
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
    inner join 
		C6Mart.contrattosei_metadati as M
    on CONTRATTOSEI.chiaveclientepb = m.chiaveclientepb
	WHERE
		--Data_FineAvanzato < getDate()
		Data_FineAvanzato > getDate()
		AND inviobenvenuto = 'N'
		AND clientemigrato = 'S'
		AND risorseNA = 'N'
		AND profiloAttivo = 1
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND Rete+Cod_Fiscale NOT IN (
			SELECT
				Rete+COD_FISCALE
            FROM
				C6Mart.PIRAMIDE_MOD)

	--scarti simpb contrattoSintesi
	SELECT C6.Rete, Cod_Agente, codiceFiscale,DATA_PERF
	INTO #ClientiSenzaContrattoSintesi
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_CONTRSINTESI' 

	--scarti simpb mifid
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaProfiloMIFID
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_MIFID'
	

	DECLARE @testoMail VARCHAR(MAX)
	DECLARE @rete CHAR(1)
	DECLARE @codiceAgente VARCHAR(6)
	DECLARE @codiceFiscale VARCHAR(25)
	DECLARE @data DATETIME
	DECLARE @ragione VARCHAR(100)
	DECLARE @tipo VARCHAR(100)
	DECLARE @indirizzo VARCHAR(100)
	DECLARE @totale INT
	DECLARE @codiceContratto VARCHAR(11)
	DECLARE @codiceinterno VARCHAR(10)
	DECLARE @codicesottoprodotto VARCHAR(5)
	DECLARE @codicemaf VARCHAR(20)
	DECLARE @isin VARCHAR(12)
	DECLARE @varPercPtf DECIMAL(5, 2)
	DECLARE @varComplessivoBf DECIMAL(5, 2)

	SET @testoMail = '<html><body><table border="0"><tr><td colspan="2"><strong>E-mail inviate:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Tipo,
			Totale
		FROM
			#EmailInviate
	OPEN reader
	FETCH NEXT FROM reader INTO @tipo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
		SET @testoMail = @testoMail + '<td align="right">' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @tipo, @totale
	END
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Report generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf
		FROM
			#ReportGenerati
		--modifica Emanuele x escludere l'agente di prova
		WHERE Cod_Agente <> '015312'
		--modifica Emanuele x escludere l'agente di prova
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ReportGenerati
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Report non generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf,
			Ragione
		FROM
			#ReportNonGenerati
		--modifica Emanuele x escludere l'agente di prova
		WHERE Cod_Agente <> '015312'
		--modifica Emanuele x escludere l'agente di prova
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '<td>' + @ragione + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	END
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati
	SET @testoMail = @testoMail + '<tr><td align="right">Totale:</td><td>' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Indirizzi più lunghi di 36 caratteri:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Indirizzo,
			LEN(Indirizzo) AS LunghezzaIndirizzo
		FROM
			#IndirizziLunghi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @indirizzo + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	END
	SELECT @totale = COUNT(*) FROM #IndirizziLunghi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con prodotti non a catalogo (CodConf, CodInt/SubProd/CodMaf/Isin):</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			CODICEFISCALE,
			CODICECONTRATTO,
			CODICEINTERNO,
			CODICESOTTOPRODOTTO,
			CODICEMAF,
			ISIN
		FROM #ProdNonInCat
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto, @codiceinterno, @codicesottoprodotto, @codicemaf, @isin
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '&nbsp;&nbsp;&nbsp;'
		SET @testoMail = @testoMail + ltrim(rtrim(@codiceinterno)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@codicesottoprodotto)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@codicemaf)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@isin)) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto, @codiceinterno, @codicesottoprodotto, @codicemaf, @isin
	END
	SELECT @totale = COUNT(*) FROM #ProdNonInCat
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti con VaR discordante:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			VAR_PERC_PTF,
			VAR_COMPLESSIVO_BF
		FROM
			#VaRDiscordanti
		WHERE
			VAR_CORRETTO = 'KO'
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varPercPtf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varComplessivoBf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	END
	SELECT @totale = COUNT(*) FROM #VaRDiscordanti WHERE VAR_CORRETTO = 'KO'
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con posizioni stato Liquidato:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#PosizioniStatoL
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #PosizioniStatoL
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza data sottoscrizione</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_AGENTE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#ClientiSenzaDataSott
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaDataSott
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza piramide modello</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			data_perf
		FROM
			#ClientiSenzaPiramideModello
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaPiramideModello
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader





	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Clienti senza righe Contratto Sintesi</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			codiceFiscale,
			data_perf
		FROM
			#ClientiSenzaContrattoSintesi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,@codiceAgente,@codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete,@codiceAgente,@codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaContrattoSintesi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="4">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader


	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe profilo MIFID</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,data_perf
		FROM
			#ClientiSenzaProfiloMIFID
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaProfiloMIFID
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	

---------------------------------------------------------------------
--Email non inviate

	--SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Email non inviate:</strong></td></tr>'
	--DECLARE reader CURSOR LOCAL FORWARD_ONLY
	--FOR

	--	SELECT a.rete, a.cod_fiscale, a.cod_agente, 
	--	CASE Tipo
	--		WHEN 'PERF' THEN 'perfezionamento'
	--		WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
	--		WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
	--		WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
	--		WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
	--		WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
	--		WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
	--		WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
	--		WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
	--		WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
	--		WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
	--		--V aggiunta tipo mail profilo non attivo
	--		WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
	--		WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
	--		WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
	--		WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
	--		WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
	--	END AS Tipo
	--	FROM C6Mart.Contrattosei a
	--	inner join C6Mart.GESTIONE_EMAIL b
	--	on
	--	a.rete = b.rete
	--	and
	--	a.cod_fiscale = b.cod_fiscale
	--	WHERE isnull(b.Inviata,'N')='N'

	--OPEN reader
	--FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--WHILE @@FETCH_STATUS = 0
	--BEGIN
	--	SET @testoMail = @testoMail + '<tr>'
	--	SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
	--	SET @testoMail = @testoMail + '</tr>'
	--	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--END
	--SELECT @totale = COUNT(*) FROM C6Mart.GESTIONE_EMAIL WHERE isnull(Inviata,'N')='N'
	--SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	--SET @testoMail = @testoMail + '</table>'
	--CLOSE reader
	--DEALLOCATE reader

---------------------------------------------------------------------

	SET @testoMail = @testoMail + '</table></body></html>'

	SELECT @testoMail

	DROP TABLE #ReportGenerati
	DROP TABLE #ReportNonGenerati
	DROP TABLE #EmailInviate
	DROP TABLE #IndirizziLunghi
	DROP TABLE #PosizioniStatoL
	DROP TABLE #ProdNonInCat
	DROP TABLE #VaRDiscordanti
	DROP TABLE #ClientiSenzaDataSott
	DROP TABLE #ClientiSenzaPiramideModello
	DROP TABLE #ClientiSenzaContrattoSintesi
	DROP TABLE #ClientiSenzaProfiloMIFID




END



GO
/****** Object:  StoredProcedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO_20161026_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO_20161026_2]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @DataOggiPerVar VARCHAR(8)
	SET @DataOggiPerVar = convert(VARCHAR(8), getdate(), 112)

	--V Esegue la procedura di estrazione dei CC
	EXEC [C6Mart].[SRV_ESTRAZ_GIORNALIERA_CC]

	-- Report generati
	SELECT
		C.Rete,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else C.Cod_Fiscale end as Cod_fiscale,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6Mart.GESTIONE_PDF_FTP AS GPF
		INNER JOIN C6Mart.VCONTRATTI AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  C.chiaveclientepb = M.chiaveclientepb
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()
	ORDER BY
		C.Rete,
		C.Cod_Agente,
		C.Cod_Fiscale

	-- Report non generati
	SELECT
		Rete,
		Cod_Agente,
		case when Cod_Fiscale  like '%@%' then piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else Cod_Fiscale end as Cod_fiscale,
		Data_Perf,
		ClienteMigrato,
		RisorseNA,
		profiloAttivo,
		'Ragione:' 
		---------------en 20161026 eliminated NA
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Cliente non migrato ' --/ Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato ' --/ Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Cliente non migrato / Profilo non attivo ' --/ Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'N' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato / Profilo non attivo ' --/ Risorse non associate '
		--	ELSE ''
		--END
		------------------en 20161026
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Cliente non migrato / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Cliente non migrato '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'N' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Cliente non migrato '
			ELSE ''
		END
		-------------------en 20161026  eliminated NA
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Risorse non associate / Profilo non attivo '
		--	ELSE ''
		--END
		--+ CASE
		--	WHEN ClienteMigrato = 'S' AND RisorseNA = 'S' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate / Profilo non attivo '
		--	ELSE ''
		--END
		-------------------en 20161026
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Risorse non associate '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is null THEN ' Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 0 AND Data_UltimaRevoca is not null THEN ' In attesa di gestione Revoca / Profilo non attivo '
			ELSE ''
		END
		+ CASE
			WHEN ClienteMigrato = 'S' AND RisorseNA = 'N' AND profiloAttivo = 1 AND Data_UltimaRevoca is null THEN ' In attesa di gestione Revoca '
			ELSE ''
		END
		/*+ CASE
			WHEN PartViaDisinv = 'S' THEN ' Partite viaggianti disinvestimento'
			ELSE ''
		END*/
		AS Ragione
	INTO #ReportNonGenerati
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  CONTRATTOSEI.chiaveclientepb = M.chiaveclientepb
	WHERE
		M.InvioBenvenuto = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND RisorseNA = 'N'
		AND (ClienteMigrato = 'N'
		-------------en 20161026 no risorse non alloacate / no NA
		--OR RisorseNA = 'S'
		-------------en 20161026
		--V Condizione per non generazione a causa di profilo non attivo
		OR ProfiloAttivo = 0
		OR Data_UltimaRevoca is not null
		--
		/*OR PartViaDisinv = 'S'*/)
		AND Data_FineAvanzato > getDate()

	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Email
	SELECT
		CASE Tipo
			WHEN 'PERF' THEN 'perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			--V aggiunta tipo mail profilo non attivo
			WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'

		END AS Tipo,
		COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM
		C6Mart.GESTIONE_EMAIL
	WHERE
		Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	GROUP BY
		Tipo
	ORDER BY TIPO
	-- Indirizzi più lunghi di 36 caratteri
	SELECT
		C.Rete,
		Cod_Agente,
		Cod_Fiscale,
		Indirizzo,
		LEN(Indirizzo) AS LunghezzaIndirizzo
	INTO #IndirizziLunghi
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.GESTIONE_PDF_FTP AS GPF
			ON C.Rete = GPF.RETE
			AND C.Cod_Fiscale = GPF.CODICEFISCALE
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND LEN(Indirizzo) > 36
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Prodotti non a catalogo
	SELECT
		RETE,
		CODICEFISCALE,
		CODICECONTRATTO,
		CODICEINTERNO,
		CODICESOTTOPRODOTTO,
		CODICEMAF,
		ISIN
	INTO #ProdNonInCat
	FROM
		C6Staging.SPB_CONTR_SINTESI
	WHERE
		POSITIONID IS NULL

	-- VaR discordanti
	SELECT
		RA.RETE,
		RA.COD_FISCALE,
		RA.VAR_PERC_PTF,
		VC.VAR_COMPLESSIVO_BF,
        CASE
			WHEN RA.VAR_PERC_PTF = VC.VAR_COMPLESSIVO_BF THEN 'OK'
			ELSE 'KO'
		END AS VAR_CORRETTO
	INTO #VaRDiscordanti
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
		--INNER JOIN VAR_CHECK AS VC
		INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
			ON RA.RETE = VC.RETE
			AND RA.COD_FISCALE = VC.COD_FISCALE
	WHERE
		(RA.COD_AGGREG = 'COMPLESSIVO|BF')
	ORDER BY
		RA.RETE,
		RA.COD_FISCALE

	INSERT INTO VaRDiscordanti_appo SELECT *, GETDATE() FROM #VaRDiscordanti

	-- Posizioni in stato liquidato
	SELECT
		PB.RETE,
		PB.COD_FISCALE,
		ID_CONTRATTO
	INTO #PosizioniStatoL
	FROM
		C6Mart.PATRIMONIO_BF AS PB
		INNER JOIN #VaRDiscordanti AS VD
			ON PB.RETE = VD.RETE
			AND PB.COD_FISCALE = VD.COD_FISCALE
	WHERE
		PB.COD_STATO = 'L'
		AND PB.CTV >= 0
		AND VD.VAR_CORRETTO = 'KO'
	ORDER BY
		PB.RETE,
		PB.COD_FISCALE

	-- Clienti senza data sottoscrizione
	SELECT DISTINCT
		PB.RETE,
		C.COD_AGENTE,
		PB.COD_FISCALE,
		PB.ID_CONTRATTO
	INTO #ClientiSenzaDataSott
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6Mart.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

	-- Clienti senza piramide modello
	SELECT
		Rete,
		Cod_Agente,
		Cod_Fiscale,
		data_perf
	INTO #ClientiSenzaPiramideModello
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
    inner join 
		C6Mart.contrattosei_metadati as M
    on CONTRATTOSEI.chiaveclientepb = m.chiaveclientepb
	WHERE
		--Data_FineAvanzato < getDate()
		Data_FineAvanzato > getDate()
		AND inviobenvenuto = 'N'
		AND clientemigrato = 'S'
		AND risorseNA = 'N'
		AND profiloAttivo = 1
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND Rete+Cod_Fiscale NOT IN (
			SELECT
				Rete+COD_FISCALE
            FROM
				C6Mart.PIRAMIDE_MOD)

	--scarti simpb contrattoSintesi
	SELECT C6.Rete, Cod_Agente, codiceFiscale,DATA_PERF
	INTO #ClientiSenzaContrattoSintesi
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_CONTRSINTESI' 

	--scarti simpb mifid
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaProfiloMIFID
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_MIFID'
	

	DECLARE @testoMail VARCHAR(MAX)
	DECLARE @rete CHAR(1)
	DECLARE @codiceAgente VARCHAR(6)
	DECLARE @codiceFiscale VARCHAR(25)
	DECLARE @data DATETIME
	DECLARE @ragione VARCHAR(100)
	DECLARE @tipo VARCHAR(100)
	DECLARE @indirizzo VARCHAR(100)
	DECLARE @totale INT
	DECLARE @codiceContratto VARCHAR(11)
	DECLARE @codiceinterno VARCHAR(10)
	DECLARE @codicesottoprodotto VARCHAR(5)
	DECLARE @codicemaf VARCHAR(20)
	DECLARE @isin VARCHAR(12)
	DECLARE @varPercPtf DECIMAL(5, 2)
	DECLARE @varComplessivoBf DECIMAL(5, 2)

	SET @testoMail = '<html><body><table border="0"><tr><td colspan="2"><strong>E-mail inviate:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Tipo,
			Totale
		FROM
			#EmailInviate
	OPEN reader
	FETCH NEXT FROM reader INTO @tipo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
		SET @testoMail = @testoMail + '<td align="right">' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @tipo, @totale
	END
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Report generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf
		FROM
			#ReportGenerati
		--modifica Emanuele x escludere l'agente di prova
		WHERE Cod_Agente <> '015312'
		--modifica Emanuele x escludere l'agente di prova
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ReportGenerati
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Report non generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf,
			Ragione
		FROM
			#ReportNonGenerati
		--modifica Emanuele x escludere l'agente di prova
		WHERE Cod_Agente <> '015312'
		--modifica Emanuele x escludere l'agente di prova
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '<td>' + @ragione + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	END
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati
	SET @testoMail = @testoMail + '<tr><td align="right">Totale:</td><td>' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Indirizzi più lunghi di 36 caratteri:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Indirizzo,
			LEN(Indirizzo) AS LunghezzaIndirizzo
		FROM
			#IndirizziLunghi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @indirizzo + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	END
	SELECT @totale = COUNT(*) FROM #IndirizziLunghi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con prodotti non a catalogo (CodConf, CodInt/SubProd/CodMaf/Isin):</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			CODICEFISCALE,
			CODICECONTRATTO,
			CODICEINTERNO,
			CODICESOTTOPRODOTTO,
			CODICEMAF,
			ISIN
		FROM #ProdNonInCat
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto, @codiceinterno, @codicesottoprodotto, @codicemaf, @isin
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '&nbsp;&nbsp;&nbsp;'
		SET @testoMail = @testoMail + ltrim(rtrim(@codiceinterno)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@codicesottoprodotto)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@codicemaf)) + '/'
		SET @testoMail = @testoMail + ltrim(rtrim(@isin)) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto, @codiceinterno, @codicesottoprodotto, @codicemaf, @isin
	END
	SELECT @totale = COUNT(*) FROM #ProdNonInCat
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti con VaR discordante:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			VAR_PERC_PTF,
			VAR_COMPLESSIVO_BF
		FROM
			#VaRDiscordanti
		WHERE
			VAR_CORRETTO = 'KO'
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varPercPtf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varComplessivoBf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	END
	SELECT @totale = COUNT(*) FROM #VaRDiscordanti WHERE VAR_CORRETTO = 'KO'
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con posizioni stato Liquidato:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#PosizioniStatoL
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #PosizioniStatoL
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza data sottoscrizione</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_AGENTE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#ClientiSenzaDataSott
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaDataSott
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza piramide modello</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			data_perf
		FROM
			#ClientiSenzaPiramideModello
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaPiramideModello
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader





	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Clienti senza righe Contratto Sintesi</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			codiceFiscale,
			data_perf
		FROM
			#ClientiSenzaContrattoSintesi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,@codiceAgente,@codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete,@codiceAgente,@codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaContrattoSintesi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="4">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader


	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe profilo MIFID</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,data_perf
		FROM
			#ClientiSenzaProfiloMIFID
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaProfiloMIFID
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	

---------------------------------------------------------------------
--Email non inviate

	--SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Email non inviate:</strong></td></tr>'
	--DECLARE reader CURSOR LOCAL FORWARD_ONLY
	--FOR

	--	SELECT a.rete, a.cod_fiscale, a.cod_agente, 
	--	CASE Tipo
	--		WHEN 'PERF' THEN 'perfezionamento'
	--		WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
	--		WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
	--		WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
	--		WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
	--		WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
	--		WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
	--		WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
	--		WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
	--		WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
	--		WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
	--		--V aggiunta tipo mail profilo non attivo
	--		WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
	--		WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
	--		WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
	--		WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
	--		WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
	--	END AS Tipo
	--	FROM C6Mart.Contrattosei a
	--	inner join C6Mart.GESTIONE_EMAIL b
	--	on
	--	a.rete = b.rete
	--	and
	--	a.cod_fiscale = b.cod_fiscale
	--	WHERE isnull(b.Inviata,'N')='N'

	--OPEN reader
	--FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--WHILE @@FETCH_STATUS = 0
	--BEGIN
	--	SET @testoMail = @testoMail + '<tr>'
	--	SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
	--	SET @testoMail = @testoMail + '</tr>'
	--	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--END
	--SELECT @totale = COUNT(*) FROM C6Mart.GESTIONE_EMAIL WHERE isnull(Inviata,'N')='N'
	--SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	--SET @testoMail = @testoMail + '</table>'
	--CLOSE reader
	--DEALLOCATE reader

---------------------------------------------------------------------

	SET @testoMail = @testoMail + '</table></body></html>'

	SELECT @testoMail

	DROP TABLE #ReportGenerati
	DROP TABLE #ReportNonGenerati
	DROP TABLE #EmailInviate
	DROP TABLE #IndirizziLunghi
	DROP TABLE #PosizioniStatoL
	DROP TABLE #ProdNonInCat
	DROP TABLE #VaRDiscordanti
	DROP TABLE #ClientiSenzaDataSott
	DROP TABLE #ClientiSenzaPiramideModello
	DROP TABLE #ClientiSenzaContrattoSintesi
	DROP TABLE #ClientiSenzaProfiloMIFID




END




GO
/****** Object:  StoredProcedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO_AND]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Nobili,,Andrea>
-- Create date: <Create Date,,>
-- Description:	<Email Log Giornaliero>
-- =============================================
CREATE procedure [C6Mart].[SRV_CHECK_C6_GIORNALIERO_AND]
AS
BEGIN
	SET NOCOUNT ON;



	 
SELECT DISTINCT * INTO #TEST_QUALITY FROM (

SELECT *,12 AS ISLOG FROM C6MART.TEST_QUALITY

UNION

SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'Cliente con VaR discordante '+ convert(varchar,RA.VAR_PERC_PTF) + ' ' + convert(varchar,VC.VAR_COMPLESSIVO_BF) AS MOTIVO,0
FROM
	C6Mart.RISCHIO_AGGREGATO AS RA
	INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
		ON RA.RETE = VC.RETE
		AND RA.COD_FISCALE = VC.COD_FISCALE
WHERE
	RA.COD_AGGREG = 'COMPLESSIVO|BF'
	AND ABS(RA.VAR_PERC_PTF - VC.VAR_COMPLESSIVO_BF) > 0.02
	AND (VC.FiduMulitMand = 'N')

UNION
	
SELECT DISTINCT RETE,COD_FISCALE,'Indirizzo più lunghi di 36 caratteri' AS MOTIVO,6	 
FROM C6Mart.vcontrattisei 
WHERE	data_fineavanzato > GETDATE() 
		AND isnull(numrevoche,0) = 0
		AND inviobenvenuto = 'N'
		AND LEN(Indirizzo) > 36 		

UNION
 
 SELECT DISTINCT RETE,CODICEFISCALE			    
	,'Prodotto non a catalogo ' + isnull(codiceContratto,'') +', '+  ltrim(rtrim(isnull(codiceinterno,''))) + '/'+ ltrim(rtrim(isnull(codicesottoprodotto,''))) + '/'+ ltrim(rtrim(isnull(codicemaf,''))) + '/'+ ltrim(rtrim(isnull(isin,'')))  As motivo  ,7 
FROM C6Staging.SPB_CONTR_SINTESI WHERE POSITIONID IS NULL



UNION
  
SELECT DISTINCT CM.Rete,CM.Cod_Fiscale,'Cliente senza righe Contratto Sintesi' AS MOTIVO,8 
FROM  C6Mart.RP_VContrattiMigrati CM
LEFT JOIN C6Staging.SPB_CONTR_SINTESI CS
ON CM.Cod_Fiscale = CS.CODICEFISCALE AND CM.RETE = CS.RETE
WHERE CS.CODICEFISCALE IS NULL

UNION

SELECT DISTINCT PB.RETE,PB.COD_FISCALE,'Cliente senza data sottoscrizione ' + dbo.toShortDateString(PB.ID_CONTRATTO)  AS MOTIVO,9		 
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6Mart.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

		
UNION

SELECT DISTINCT VC.Rete,VC.Cod_Fiscale,'Cliente senza piramide modello' AS MOTIVO,10
FROM C6Mart.vcontrattiSEI VC
	 LEFT JOIN C6Mart.PIRAMIDE_MOD PM
	 ON VC.Cod_Fiscale=PM.Cod_Fiscale AND VC.RETE=PM.RETE
WHERE	 
	VC.Data_FineAvanzato > getDate()
	AND VC.inviobenvenuto = 'N'
	AND VC.clientemigrato = 'S'
	AND VC.risorseNA = 'N'
	AND VC.profiloAttivo = 1
	AND DATEDIFF(d, VC.Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
	AND ISNULL(VC.NUMREVOCHE,0) = 0
	AND PM.Cod_Fiscale IS NULL
 
UNION
 
SELECT DISTINCT CM.RETE,CM.Cod_Fiscale,'Cliente senza righe profilo MIFID' AS MOTIVO,11
FROM  C6Mart.RP_VContrattiMigrati CM
LEFT JOIN  C6Staging.SPB_MIFID MD
ON CM.Cod_Fiscale = MD.CODICEFISCALE AND CM.RETE = MD.RETE
WHERE MD.CODICEFISCALE IS NULL


	 
) T

INSERT INTO #TEST_QUALITY
SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'Cliente con VaR discordante '+ convert(varchar,RA.VAR_PERC_PTF) + ' ' + convert(varchar,VC.VAR_COMPLESSIVO_BF) + CASE  WHEN VC.FiduMulitMand = 'S' THEN ' FiduMulitMand' ELSE ' ' END AS MOTIVO,5
FROM
	C6Mart.RISCHIO_AGGREGATO AS RA
	INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
		ON RA.RETE = VC.RETE
		AND RA.COD_FISCALE = VC.COD_FISCALE
WHERE
	RA.COD_AGGREG = 'COMPLESSIVO|BF'
	AND ABS(RA.VAR_PERC_PTF - VC.VAR_COMPLESSIVO_BF) <> 0.00	 
	
INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in EMAIL' AS MOTIVO,12
FROM C6Mart.vcontratti WHERE  [C6Mart].[CARATTERINONVALIDI](email) = 'S' and data_fineavanzato > getdate()  
		
INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in INDIRIZZO' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Indirizzo) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in CAP' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](CAP) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Citta' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Citta) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Provincia' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Provincia) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Nazione' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Nazione) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Presso' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Presso) = 'S' and data_fineavanzato > getdate()
			  

 

	SELECT
	    Tipo
		,CASE Tipo
			WHEN 'PERF' THEN 'Perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1&ordm sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2&ordm sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3&ordm sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'pi&ugrave di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1&ordm sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2&ordm sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3&ordm sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'pi&ugrave di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			WHEN '1_SOLL_NOPRO' THEN '1&ordm sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2&ordm sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3&ordm sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'pi&ugrave di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
		END AS DescTipo
		,CASE Tipo
			WHEN 'PERF' THEN 1
			WHEN '1_SOLL_NOMIG' THEN 2
			WHEN '2_SOLL_NOMIG' THEN 3
			WHEN '3_SOLL_NOMIG' THEN 4
			WHEN 'S_SOLL_NOMIG' THEN 5
			WHEN 'REVOCA_NOMIG' THEN 6
			WHEN '1_SOLL_NOASS' THEN 7
			WHEN '2_SOLL_NOASS' THEN 8
			WHEN '3_SOLL_NOASS' THEN 9
			WHEN 'S_SOLL_NOASS' THEN 10
			WHEN 'REVOCA_NOASS' THEN 11			
			WHEN '1_SOLL_NOPRO' THEN 12
			WHEN '2_SOLL_NOPRO' THEN 13
			WHEN '3_SOLL_NOPRO' THEN 14
			WHEN 'S_SOLL_NOPRO' THEN 15
			WHEN 'REVOCA_NOPRO' THEN 16
		END AS Ordine
		,COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM C6Mart.GESTIONE_EMAIL
	WHERE  dbo.toShortDateString(Data_generazione) = dbo.toShortDateString(GETDATE())
	GROUP BY Tipo	
	
	
	SELECT   C.rete
			,C.Cod_fiscale
			,C.cod_Agente
			,case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(C.cod_fiscale,4,6) else C.Cod_Fiscale end as cliente
			,C.data_perf
			,Tipo
			,C.ClienteMIGRATO
			,C.RISORSENA
			,C.PROFILOATTIVO
			,case when dbo.toShortDateString(Data_generazione) = dbo.toShortDateString(GETDATE()) then 'S' else 'N' end as FLAGG
			,case when dbo.toShortDateString(Data_invio) = dbo.toShortDateString(GETDATE()) then 'S' else 'N' end as FLAGI
			,inviata
			,row_number() over (partition by  C.rete,C.Cod_fiscale ORDER BY CASE Tipo
																				WHEN 'PERF' THEN 1
																				WHEN '1_SOLL_NOMIG' THEN 2
																				WHEN '2_SOLL_NOMIG' THEN 3
																				WHEN '3_SOLL_NOMIG' THEN 4
																				WHEN 'S_SOLL_NOMIG' THEN 5
																				WHEN 'REVOCA_NOMIG' THEN 6
																				WHEN '1_SOLL_NOASS' THEN 7
																				WHEN '2_SOLL_NOASS' THEN 8
																				WHEN '3_SOLL_NOASS' THEN 9
																				WHEN 'S_SOLL_NOASS' THEN 10
																				WHEN 'REVOCA_NOASS' THEN 11			
																				WHEN '1_SOLL_NOPRO' THEN 12
																				WHEN '2_SOLL_NOPRO' THEN 13
																				WHEN '3_SOLL_NOPRO' THEN 14
																				WHEN 'S_SOLL_NOPRO' THEN 15
																				WHEN 'REVOCA_NOPRO' THEN 16
																				END)  as duplicato
	   INTO #EmailInviateDett
	 FROM C6Mart.GESTIONE_EMAIL E INNER JOIN C6MART.VCONTRATTISEI C
	 ON E.COD_FISCALE = C.COD_FISCALE AND E.RETE=C.RETE 
	 WHERE dbo.toShortDateString(Data_generazione) = dbo.toShortDateString(GETDATE())
	   OR  dbo.toShortDateString(Data_invio) = dbo.toShortDateString(GETDATE())
	   
	   	
SELECT
		C.Rete,
		C.Cod_fiscale,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(C.cod_fiscale,4,6) else C.Cod_Fiscale end as cliente,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6Mart.GESTIONE_PDF_FTP AS GPF
		INNER JOIN C6Mart.VCONTRATTI AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  C.chiaveclientepb = M.chiaveclientepb
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()


SElECT DISTINCT  
	 V.COD_FISCALE
	,V.RETE
	,V.COD_AGENTE
	,V.piva_fiduciaria 
	,V.DATA_PERF
	,V.ClienteMigrato
	,V.RisorseNA
	,V.profiloAttivo
	,V.Data_UltimaRevoca 
	,CASE  WHEN Q.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END AS TestQuality
	,CASE  WHEN DATEDIFF(d, DATA_PERF, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)  THEN 'S' ELSE 'N' END AS FinePerf
	,InvioBenvenuto as Generato
INTO #TuttiReport		 
FROM C6MART.VCONTRATTISEI V
LEFT JOIN #TEST_QUALITY Q
	ON V.COD_FISCALE = Q.COD_FISCALE AND V.RETE = Q.RETE
WHERE 1=1
AND V.INVIOBENVENUTO = 'N'  
AND DATA_FINEAVANZATO > getDate()


SELECT *
, 'n.ro giorni trascorsi dal perfezionamento: ' + CONVERT(VARCHAR,DATEDIFF(d,DATA_PERF, GETDATE())) AS Motivo
,CASE when Cod_Fiscale  like '%@%' then  piva_fiduciaria + '  ' + substring( cod_fiscale,4,6) else  Cod_Fiscale end as CLIENTE	 
INTO #ReportNonGenerati 
FROM  #TuttiReport WHERE(FINEPERF = 'S') OR (FINEPERF = 'N' AND TestQuality = 'S')

SELECT 	 
	  Q.RETE	
	 ,Q.COD_FISCALE	 	
	 ,Q.MOTIVO 
	 ,CASE  WHEN Q.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END AS TestQuality
	 ,CASE  WHEN DATEDIFF(d, DATA_PERF, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)  THEN 'S' ELSE 'N' END AS FinePerf
	 ,InvioBenvenuto as Generato
	 ,Q.ISLOG		 
INTO #DettReport
FROM #TEST_QUALITY  Q   
INNER JOIN C6MART.VCONTRATTISEI V
	ON V.COD_FISCALE = Q.COD_FISCALE AND V.RETE = Q.RETE
	WHERE ISLOG > 0
UNION
SELECT  rete,COD_FISCALE,'In attesa di gestione Revoca 'AS MOTIVO,TestQuality,FinePerf, Generato,1 as ISLOG from #ReportNonGenerati WHERE Data_UltimaRevoca IS NOT NULL	
UNION	
SELECT  rete,COD_FISCALE,'Cliente non migrato ' AS MOTIVO,TestQuality,FinePerf,Generato,2 as ISLOG from #ReportNonGenerati WHERE isnull(ClienteMigrato,'N') = 'N'
UNION
SELECT  rete,COD_FISCALE,'Risorse non associate ' AS MOTIVO,TestQuality,FinePerf,Generato,3 as ISLOG  from #ReportNonGenerati WHERE isnull(RisorseNA,'S') = 'S'
UNION
SELECT  rete,COD_FISCALE,'Profilo non attivo ' AS MOTIVO,TestQuality,FinePerf,Generato,4 as ISLOG  from #ReportNonGenerati WHERE isnull(profiloAttivo,0) = 0
 

 
--  SELECT * FROM  #EmailInviateDett
--  SELECT * FROM   #EmailInviate 
--	SELECT * FROM #TEST_QUALITY
--	SELECT * FROM #TuttiReport where cod_fiscale = 'VCCGPP46D06F205X'
--	SELECT * FROM #ReportGenerati where cod_fiscale = 'VCCGPP46D06F205X'
--	SELECT * FROM #ReportNonGenerati  where cod_fiscale = 'VCCGPP46D06F205X'  
--	SELECT * FROM #DettReport where cod_fiscale = 'VCCGPP46D06F205X'  
--	SELECT * FROM #EmailInviate
DECLARE @testoMail0 VARCHAR(MAX)
DECLARE @testoMail1 VARCHAR(MAX)
DECLARE @testoMail2 VARCHAR(MAX)
DECLARE @testoMail3 VARCHAR(MAX)
DECLARE @testoMail4 VARCHAR(MAX)


DECLARE @rete CHAR(1)
DECLARE @cod_fiscale CHAR(16)
DECLARE @codiceAgente VARCHAR(6)
DECLARE @cliente VARCHAR(25)
DECLARE @data DATETIME
DECLARE @Motivo VARCHAR(100)
DECLARE @testQuality CHAR(1)
DECLARE @FinePerf CHAR(1)	
DECLARE @totale INT
 -- [C6Mart].[SRV_CHECK_C6_GIORNALIERO_AND]
set @testoMail0 = '<HTML><HEAD></HEAD><TITLE></TITLE><BODY><table><tr><td width=300><h2><b>Rapporto giornaliero</b></h2></td></tr></table>'
set @testoMail1 = '<HTML><HEAD></HEAD><TITLE></TITLE><SCRIPT type="text/javascript">var _email="chiuso";var _rngn="chiuso";var _rngs="chiuso";var cmd="";var menu="";function ac(item){var menu=item;if(item == "22N" && _email == "chiuso"){cmd=_email;_email="aperto";}else if(item=="22N" && _email=="aperto"){cmd=_email;_email="tutto";}else if(item=="22N" && _email=="tutto"){cmd=_email;_email="chiuso";}else if(item=="00N" && _rngn=="chiuso"){cmd=_rngn;_rngn="aperto";}else if(item=="00N" && _rngn=="aperto"){cmd=_rngn;_rngn="tutto";}else if(item == "00N" && _rngn == "tutto"){cmd=_rngn;_rngn="chiuso";}else if(item == "00S" && _rngs == "chiuso"){cmd=_rngs;_rngs="aperto";}else if(item == "00S" && _rngs == "aperto"){cmd=_rngs;_rngs="tutto";}else if(item == "00S" && _rngs == "tutto"){cmd=_rngs;_rngs="chiuso";}else{var padre=document.getElementById(item);if(padre.style.display=="block"){cmd="chiuditutto";}else{cmd="apritutto";}}var divs=document.getElementsByTagName("table");for(i=0;i<divs.length;i++)'
				+ 'if(cmd=="apritutto" && item==divs[i].id.substr(0,item.length)) divs[i].style.display="block";else if(cmd=="chiuditutto" && item==divs[i].id.substr(0,item.length))divs[i].style.display="none";else{if(menu==divs[i].id.substr(0,3))divs[i].style.display="none";if(cmd=="chiuso" && menu == divs[i].id)divs[i].style.display="block";if(cmd=="aperto" && menu==divs[i].id.substr(0,3))divs[i].style.display="block";}}'
				+ 'function carica(){divs=document.getElementsByTagName("table");for(i=0;i<divs.length;i++){if(divs[i].id!="111"){divs[i].style.display="none";}if(divs[i].id.length==3 || divs[i].style.color!=""){divs[i].onmouseout=function(){document.body.style.cursor="default";};divs[i].onmouseover=function(){document.body.style.cursor="pointer";};}else{divs[i].style.color="#778899";}if(divs[i].id.substr(0,3)== "00G" && divs[i].style.color=="red"){document.getElementById("warning00G").style.display="block";}if(divs[i].id.substr(0,3)== "22N" && divs[i].style.color=="red"){document.getElementById("warning22N").style.display="block";}}}</SCRIPT><body onload="carica();">';

SET @testoMail2 = ''
SET @testoMail3 = ''
SET @testoMail4 = '' 
SET @totale = 0  
--*********************************************************************************
--*********************************************************************************
--*********************************************************************************
    SET @totale = 0
	SELECT @totale = isnull(sum(totale),0) FROM #EmailInviate
	SET @testoMail1 = @testoMail1 + '<br><br><table id="111"><tr onclick="ac(''22N'')"><td><b>E-mail inviate</b></td><td><div id= "warning22N" STYLE="vertical-align:middle;font-size:9px;color:red;display:none">warning</div></td></tr>'
	DECLARE @tipoEmail VARCHAR(100)
	DECLARE @DescTipo VARCHAR(100)
	DECLARE @totaleEmail VARCHAR(100)	
	DECLARE @ClienteMIGRATO VARCHAR(1)
	DECLARE @RISORSENA  VARCHAR(1)
	DECLARE @FLAGG  VARCHAR(1)
	DECLARE @FLAGI  VARCHAR(1)	 
	DECLARE @PROFILOATTIVO INT
	DECLARE @DUPLICATO INT
		
	DECLARE reader CURSOR FOR SELECT DescTipo,convert(varchar,totale),tipo FROM #EmailInviate ORDER BY Ordine
	OPEN reader
	FETCH NEXT FROM reader INTO   @DescTipo, @totaleEmail,@tipoEmail
	WHILE @@FETCH_STATUS = 0
	BEGIN 
	    SET @testoMail1 = @testoMail1 +'<tr><table id="22N"><tr onclick="ac(''22N'+@tipoEmail+''')"><td width=300>'+@DescTipo+'</td><td width=100>'+@totaleEmail+'</td></tr></table></tr><!--[TY'+@tipoEmail+']-->'		 
		FETCH NEXT FROM reader INTO  @DescTipo, @totaleEmail,@tipoEmail
	END	
	SET @testoMail1 = @testoMail1 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + '</b></td></tr></table>'
	CLOSE reader
	DEALLOCATE reader
	 
	DECLARE reader CURSOR FOR SELECT  rete,Cod_fiscale,  cod_Agente, cliente, data_perf,tipo,ClienteMIGRATO,RISORSENA ,PROFILOATTIVO,DUPLICATO,FLAGG,FLAGI FROM #EmailInviateDett  order by  DUPLICATO asc
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,  @Cod_Fiscale,  @codiceAgente , @cliente, @data,@tipoEmail,@ClienteMIGRATO,@RISORSENA ,@PROFILOATTIVO,@DUPLICATO,@FLAGG,@FLAGI
	WHILE @@FETCH_STATUS = 0
	BEGIN
	    SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TY'+@tipoEmail+']-->','<!--[TY'+@tipoEmail+']-->'+'<tr><table style="color:black;" ID="22N'+@tipoEmail+'" ><tr onclick="ac(''22N'+@tipoEmail+@cod_fiscale+@rete +''')"><td width=80></td><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td></tr></table></tr><!--[TQ'+@tipoEmail+@cod_fiscale+@rete+']-->');
	    IF  @PROFILOATTIVO  =  1 AND @RISORSENA = 'N' AND @ClienteMIGRATO = 'S' AND @tipoEmail <> 'PERF'  AND @tipoEmail<>'REVOCA_NOMIG' AND @tipoEmail<>'REVOCA_NOASS'  AND @tipoEmail<>'REVOCA_NOPRO' 
			SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=150></td><td>Tipo Email Errata</td></table></tr>');
	    IF @DUPLICATO <> 1
	    	SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=150></td><td>' + CONVERT(VARCHAR,@DUPLICATO) + '&ordm  email inviata</td></table></tr>');
	    IF  @FLAGG = 'S' AND @FLAGI = 'N'
	    		SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=150></td><td>Email non inviata</td></table></tr>');
	    IF  @FLAGG = 'N' AND @FLAGI = 'S' AND @tipoEmail<>'REVOCA_NOMIG' AND @tipoEmail<>'REVOCA_NOASS'  AND @tipoEmail<>'REVOCA_NOPRO'
				SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=150></td><td>Invio Email Errata</td></table></tr>');
		IF @PROFILOATTIVO <> 1  
			SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'"><tr><td width=150></td><td>Profilo non attivo </td></table></tr>');
		IF @RISORSENA <> 'N'  
			SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'"><tr><td width=150></td><td>Risorse non associate </td></table></tr>');
		IF @ClienteMIGRATO <> 'S'  
			SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'"><tr><td width=150></td><td>Cliente non migrato </td></table></tr>');
		FETCH NEXT FROM reader INTO @rete,  @Cod_Fiscale,  @codiceAgente , @cliente, @data,@tipoEmail,@ClienteMIGRATO,@RISORSENA ,@PROFILOATTIVO,@DUPLICATO,@FLAGG,@FLAGI
	END	
	CLOSE reader
	DEALLOCATE reader
--*********************************************************************************
--*********************************************************************************
--*********************************************************************************
	SET @totale = 0
	SELECT @totale = COUNT(*)  FROM #ReportGenerati
	SET @testoMail2 = @testoMail2 + '<br><br><table id="111"><tr onclick="ac(''00G'')"><td><b>Report generati</b></td><td><div id= "warning00G" STYLE="vertical-align:middle;font-size:9px;color:red;display:none">warning</div></td></tr>'
	DECLARE reader CURSOR FOR SELECT  rete,Cod_fiscale,  cod_Agente, cliente, data_perf FROM #ReportGenerati ORDER BY DATA_PERF 	 		 
	OPEN reader
	FETCH NEXT FROM reader INTO  @rete,@Cod_fiscale,  @codiceAgente, @cliente, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		SET @testoMail2 = @testoMail2 +'<tr><table id="00G"><tr><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td><td width=300></td></tr></table></tr><!--[TQ'+@cod_fiscale+@rete+']-->'		 
		FETCH NEXT FROM reader INTO  @rete,@Cod_fiscale,  @codiceAgente, @cliente, @data
	END	
	SET @testoMail2 = @testoMail2 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + '</b></td></tr></table>'
	SET @testoMail0 = @testoMail0 + '<table><tr><td width=300>Report generati</td><td>'+CAST(@totale AS VARCHAR)+'</td></tr></table>'   
	CLOSE reader            
	DEALLOCATE reader
--*********************************************************************************
--*********************************************************************************
--*********************************************************************************
	SET @totale = 0
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati WHERE FINEPERF = 'S'
	SET @testoMail3 = @testoMail3 + '<br><br><table id="111"><tr onclick="ac(''00S'')"><td><b>Report non generati</b></td></tr>'
	DECLARE reader CURSOR FOR SELECT   rete, cod_fiscale, cod_Agente, cliente, data_perf, Motivo,testQuality  FROM #ReportNonGenerati WHERE FINEPERF = 'S' ORDER BY DATA_PERF 	 		 
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		SET @testoMail3 = @testoMail3 +'<tr><table id="00S" onclick="ac(''00S'+ @cod_fiscale+@rete +''')"><tr><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td><td width=300>'+@Motivo+'</td></tr></table></tr><!--[TQ'+@cod_fiscale+@rete+']-->'		 
		FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	END	
	SET @testoMail3 = @testoMail3 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + '</b></td></tr></table>'
	SET @testoMail0 = @testoMail0 +  '<table><tr><td width=300>Report non generati</td><td>'+CAST(@totale AS VARCHAR)+'</td></tr></table>'
	CLOSE reader   
	DEALLOCATE reader   
----*********************************************************************************
----*********************************************************************************
----*********************************************************************************
	SET @totale = 0
	DECLARE @totale2 INT 
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati WHERE FINEPERF = 'N' AND TestQuality = 'S'
	SELECT @totale2 = COUNT(*) FROM #TuttiReport WHERE FINEPERF = 'N' 
	SET @testoMail4 = @testoMail4 + '<br><br><table id="111"><tr onclick="ac(''00N'')"><td><b>Report errati in Perfezionamento</b></td></tr>'
	DECLARE reader CURSOR FOR SELECT  rete, cod_fiscale, cod_Agente, cliente, data_perf, Motivo,testQuality FROM #ReportNonGenerati WHERE FINEPERF = 'N' AND TestQuality = 'S' ORDER BY DATA_PERF 	 		 
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		SET @testoMail4 = @testoMail4 +'<tr><table id="00N" onclick="ac(''00N'+ @cod_fiscale+@rete +''')"><tr><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td><td width=300>'+@Motivo+'</td></tr></table></tr><!--[TQ'+@cod_fiscale+@rete+']-->'		 
		FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	END	
	SET @testoMail4 = @testoMail4 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + ' su ' + CAST(@totale2 AS VARCHAR) + '</b></td></tr></table>'
	SET @testoMail0 = @testoMail0 + '<table><tr><td width=300>Report errati in Perfezionamento</td><td>'+ CAST(@totale AS VARCHAR) + ' su ' + CAST(@totale2 AS VARCHAR) +'</td></tr></table>'
	CLOSE reader          
	DEALLOCATE reader
----*********************************************************************************
----*********************************************************************************
----*********************************************************************************
	DECLARE reader CURSOR FOR SELECT Rete,Cod_Fiscale,Motivo,TestQuality,CASE WHEN generato ='S' THEN 'G' ELSE FinePerf END FinePerf FROM #DettReport order by ISLOG desc 
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,  @Cod_Fiscale,  @Motivo , @testQuality, @FinePerf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail2 =  REPLACE(@testoMail2,'<!--[TQ'+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="00'+@FinePerf+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=100></td><td>'+@Motivo+'</td></table></tr>');
		SET @testoMail3 =  REPLACE(@testoMail3,'<!--[TQ'+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="00'+@FinePerf+@cod_fiscale+@rete+'"><tr><td width=100></td><td>'+@Motivo+'</td></table></tr>');
		SET @testoMail4 =  REPLACE(@testoMail4,'<!--[TQ'+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="00'+@FinePerf+@cod_fiscale+@rete+'"><tr><td width=100></td><td>'+@Motivo+'</td></table></tr>');
		FETCH NEXT FROM reader INTO @rete, @Cod_Fiscale, @Motivo, @testQuality, @FinePerf
	END	
	CLOSE reader
	DEALLOCATE reader	
----*********************************************************************************
----*********************************************************************************
----*********************************************************************************
SET @testoMail0 = @testoMail0 + '<br><br>In allegato dettaglio del Giornaliero</BODY></HTML>'
DROP TABLE #TEST_QUALITY
DROP TABLE #EmailInviate
DROP TABLE #EmailInviateDett
DROP TABLE #TuttiReport
DROP TABLE #ReportNonGenerati
DROP TABLE #DettReport
DROP TABLE #ReportGenerati
SELECT @testoMail0,@testoMail1,@testoMail2,@testoMail3,@testoMail4,'</body></html>'
 
 
 
END
GO
/****** Object:  StoredProcedure [C6Mart].[SRV_ESTRAZ_GIORNALIERA_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		alessandro Tringali
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[SRV_ESTRAZ_GIORNALIERA_CC]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_ESTRAZ_GIORNALIERA_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

--V Cancellazione delle tuple inserite nel giorno corrente, può accadere che la procedura viene 
-- lanciata più di una volta, in quel caso inserirei righe doppie.
DELETE FROM C6MART.ESTRAZ_GIORNALIERA_CC
WHERE DATEDIFF(dd,dataGenerazione,getDate()) = 0



INSERT INTO C6MART.ESTRAZ_GIORNALIERA_CC
SELECT
a.COD_FISCALE,
A.RETE,
CODICECONTRATTO,
DATAGENERAZIONE,
NUMERO_CC,
C.CTV_CC,
D.TOT_CTV,
D.TOT_CTV_NO_CC
FROM
C6MART.VCONTRATTI A,
C6MART.GESTIONE_PDF_FTP B, 
(
       SELECT 
       COD_FISCALE, 
       RETE, 
       COD_CC AS NUMERO_CC, 
       SUM(SALDOCONTABILE) AS CTV_CC 
       FROM C6MART.ANAG_CC 
       GROUP BY 
       COD_FISCALE, 
       RETE,
       COD_CC
  ) C,
(       SELECT COD_FISCALE, RETE,
       SUM(CTV) AS TOT_CTV,
       SUM(CASE WHEN TIPO_PRODOTTO='CC' THEN 0 ELSE CTV END) AS TOT_CTV_NO_CC FROM C6MART.PATRIMONIO_BF 
       GROUP BY COD_FISCALE, RETE
)D
WHERE
A.COD_FISCALE=B.CODICEFISCALE
AND A.RETE=B.RETE
AND A.COD_FISCALE=C.COD_FISCALE
AND A.RETE=C.RETE
AND A.COD_FISCALE=D.COD_FISCALE
AND A.RETE=D.RETE 
ORDER BY 1,2,3,5




	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_ESTRAZ_GIORNALIERA_CC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_ESTRAZ_GIORNALIERA_CC'
		)

	 

	
END





GO
/****** Object:  StoredProcedure [C6Mart].[SRV_SELECT_EMAIL_BY_ISODATE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[SRV_SELECT_EMAIL_BY_ISODATE]
	@date VARCHAR(8)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	IF ISDATE(@date) = 0
		RETURN
	SELECT
		Email_Id,
		Rete,
		Cod_Fiscale,
		Tipo,
		Data_Generazione,
		Inviata,
		Data_Invio,
		Data_Comunicazione_Host,
		ID_ELAB
	FROM
		C6Mart.GESTIONE_EMAIL
	WHERE
		DATEPART(yy, Data_Generazione) = DATEPART(yy, @date) AND
		DATEPART(m, Data_Generazione) = DATEPART(m, @date) AND
		DATEPART(d, Data_Generazione) = DATEPART(d, @date)
END

GO
/****** Object:  StoredProcedure [C6Mart].[SRV_STORICIZZAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		paolo giovanetti
-- Create date: 23 gennaio 2009
-- Description:	- rimossa la transazione inutile
--				- aggiunta la storicizzazione delle elaborazioni e del global_error
--				- la storicizzazione di GESTIONE_ZIP_FTP prevede la sua pulizia sul MART !!
-- =============================================
CREATE procedure [C6Mart].[SRV_STORICIZZAZIONE]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico espresso in giorni

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MART.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX INIZIO TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ALBERO_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALBERO_PRODOTTI')
	BEGIN
		DELETE FROM C6Storico.ALBERO_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ALBERO_PRODOTTI
		(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ID_ELAB)
		SELECT 
		 AP.DESCRIZIONE_ORIGINALE, AP.ALBERO_GERARCHIA_1, AP.ALBERO_GERARCHIA_2, AP.ALBERO_GERARCHIA_3, AP.ID_ELAB
		FROM C6Mart.ALBERO_PRODOTTI AP
		LEFT OUTER JOIN C6Storico.ALBERO_PRODOTTI SAP
			ON AP.DESCRIZIONE_ORIGINALE = SAP.DESCRIZIONE_ORIGINALE
		WHERE AP.ID_ELAB = @ID_ELAB AND AP.DESCRIZIONE_ORIGINALE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC')
	BEGIN
		DELETE FROM C6Storico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CC
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDOCONTABILE,SALDODISPONIBILE, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AC.RETE, AC.COD_FISCALE, AC.INTERMEDIARIO, AC.COINTEST, AC.COD_CC, AC.FASCIA_CPP, AC.SALDOCONTABILE, AC.SALDODISPONIBILE, AC.DATA_APERTURA, AC.DATA_CHIUSURA, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6Mart.ANAG_CC AC
		LEFT OUTER JOIN C6Storico.ANAG_CC SAC
			ON AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
			AND AC.COD_CC = SAC.COD_CC
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC_TERZI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CC_TERZI
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB)
		SELECT 
		 ACT.RETE, ACT.COD_FISCALE, ACT.INTERMEDIARIO, ACT.COINTEST, ACT.COD_CC, ACT.FASCIA_CPP, ACT.SALDO, ACT.DATA_APERTURA, ACT.DATA_CHIUSURA, ACT.ID_ELAB
		FROM C6Mart.ANAG_CC_TERZI ACT
		LEFT OUTER JOIN C6Storico.ANAG_CC_TERZI SACT
			ON ACT.RETE = SACT.RETE
			AND ACT.COD_FISCALE = SACT.COD_FISCALE
			AND ACT.INTERMEDIARIO = SACT.INTERMEDIARIO
			AND ACT.COD_CC = SACT.COD_CC
		WHERE ACT.ID_ELAB = @ID_ELAB AND SACT.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CLIENTI
		(RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AC.RETE, AC.COD_FISCALE, AC.NOME, AC.COGNOME, AC.DATA_NASCITA, AC.STATO_CIVILE, AC.NUM_COMPONENTI, AC.NUM_FIGLI, AC.ETA, AC.PARTITA_IVA, AC.CITTADINANZA, AC.PERSONA_FIS_GIUR, AC.INDIRIZZO, AC.LOCALITA, AC.PROVINCIA, AC.CAP, AC.NAZIONE, AC.PRESSO, AC.TEL_RECAPITO, AC.TEL_CELL, AC.E_MAIL, AC.DATA_INIZIO, AC.DATA_FINE, AC.STATO, AC.RAG_SOC, AC.SESSO, AC.ID_PROMOTORE, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6Mart.ANAG_CLIENTI AC
		LEFT OUTER JOIN C6Storico.ANAG_CLIENTI SAC
			ON AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI_PREV XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI_PREV')
	--	BEGIN
	--		DELETE FROM C6Storico.ANAG_CLIENTI_PREV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.ANAG_CLIENTI_PREV
	--		(RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.ANAG_CLIENTI_PREV WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CONTRATTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CONTRATTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CONTRATTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CONTRATTI
		(ID_CONTRATTO, RETE, COD_FISCALE, COD_PRODOTTO, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_PERF, DATA_CHIUSURA, STATO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, COD_INTERNO, COD_MANDATO, COD_CC, RUBRICATO, CUSTODIA_GAR, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AC.ID_CONTRATTO, AC.RETE, AC.COD_FISCALE, AC.COD_PRODOTTO, AC.INTERMEDIARIO, AC.DATA_SOTTOSCRIZIONE, AC.DATA_PERF, AC.DATA_CHIUSURA, AC.STATO, AC.COD_SOTTOPRODOTTO, AC.TIPO_PRODOTTO, AC.COD_INTERNO, AC.COD_MANDATO, AC.COD_CC, AC.RUBRICATO, AC.CUSTODIA_GAR, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6Mart.ANAG_CONTRATTI AC
		LEFT OUTER JOIN C6Storico.ANAG_CONTRATTI SAC
			ON AC.ID_CONTRATTO = SAC.ID_CONTRATTO
			AND AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
			AND AC.COD_PRODOTTO = SAC.COD_PRODOTTO
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.ID_CONTRATTO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CONTRATTI_ASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CONTRATTI_ASS')
	BEGIN
		DELETE FROM C6Storico.ANAG_CONTRATTI_ASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CONTRATTI_ASS
		(RETE, COD_FISCALE, NUM_POLIZZA, ID_CONTRATTO, TIPO_PRODOTTO, PREMIO, IMPORTO_RATA, FREQ_RATA, IMPORTO_ASSICURATO, DURATA_POLIZZA, ALIQUOTA, COD_SOTTOPRODOTTO, COD_INTERNO, DATA_APERTURA, DATA_CHIUSURA, INTERMEDIARIO, STATO, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 ACA.RETE, ACA.COD_FISCALE, ACA.NUM_POLIZZA, ACA.ID_CONTRATTO, ACA.TIPO_PRODOTTO, ACA.PREMIO, ACA.IMPORTO_RATA, ACA.FREQ_RATA, ACA.IMPORTO_ASSICURATO, ACA.DURATA_POLIZZA, ACA.ALIQUOTA, ACA.COD_SOTTOPRODOTTO, ACA.COD_INTERNO, ACA.DATA_APERTURA, ACA.DATA_CHIUSURA, ACA.INTERMEDIARIO, ACA.STATO, ACA.DIV_RIFERIMENTO, ACA.CAMBIO, ACA.ID_ELAB, ACA.TIPO_ELAB
		FROM C6Mart.ANAG_CONTRATTI_ASS ACA
		LEFT OUTER JOIN C6Storico.ANAG_CONTRATTI_ASS SACA
			ON ACA.RETE = SACA.RETE
			AND ACA.COD_FISCALE = SACA.COD_FISCALE
			AND ACA.ID_CONTRATTO = SACA.ID_CONTRATTO
			AND ACA.COD_SOTTOPRODOTTO = SACA.COD_SOTTOPRODOTTO
		WHERE ACA.ID_ELAB = @ID_ELAB AND SACA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_EMITTENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_EMITTENTI')
	--	BEGIN
	--		DELETE FROM C6Storico.ANAG_EMITTENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.ANAG_EMITTENTI
	--		(ID_EMITTENTE, DESCRIZIONE, NOTE, ID_ELAB)
	--		SELECT 
	--		 ID_EMITTENTE, DESCRIZIONE, NOTE, ID_ELAB
	--		FROM C6Mart.ANAG_EMITTENTI WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PRODOTTI
		(COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.COD_PRODOTTO, AP.COD_ISIN, AP.PAESE, AP.ID_AREA, AP.CAT_PRODOTTO, AP.TIPO_PRODOTTO, AP.DESCR_PRODOTTO, AP.DIV_QUOTAZIONE, AP.DIV_REGOLAMENTO, AP.ID_EMITTENTE, AP.MERCATO_CONTRATT, AP.COD_MAF, AP.RATING, AP.COD_ADEGUATEZZA, AP.COD_SOTTOPRODOTTO, AP.COD_INTERNO, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6Mart.ANAG_PRODOTTI AP
		LEFT OUTER JOIN C6Storico.ANAG_PRODOTTI SAP
			ON AP.COD_PRODOTTO = SAP.COD_PRODOTTO
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.COD_PRODOTTO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI_TERZI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PRODOTTI_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PRODOTTI_TERZI
		(COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB)
		SELECT 
		 APT.COD_PRODOTTO, APT.COD_PRODOTTO_TERZI, APT.NOME_PRODOTTO, APT.ALBERO_PRODOTTI, APT.COD_ISIN, APT.DESCR_PRODOTTO, APT.DIV_QUOTAZIONE, APT.INTERMEDIARIO, APT.DIV_REGOLAMENTO, APT.ID_EMITTENTE, APT.MERCATO_CONTRATT, APT.PAESE, APT.RATING, APT.ID_ELAB, APT.TIPO_ELAB
		FROM C6Mart.ANAG_PRODOTTI_TERZI APT
		LEFT OUTER JOIN C6Storico.ANAG_PRODOTTI_TERZI SAPT
			ON APT.COD_PRODOTTO_TERZI = SAPT.COD_PRODOTTO_TERZI
		WHERE APT.ID_ELAB = @ID_ELAB AND SAPT.COD_PRODOTTO_TERZI IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PROMOTORI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PROMOTORI
		(RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.RETE, AP.ID_PROMOTORE, AP.LIVELLO, AP.COD_FISCALE, AP.PARTITA_IVA, AP.COGNOME, AP.NOME, AP.RAG_SOC, AP.DATA_INIZIO, AP.DATA_FINE, AP.INDIRIZZO, AP.LOCALITA, AP.PROVINCIA, AP.CAP, AP.NAZIONE, AP.TEL_RECAPITO, AP.TEL_CELL, AP.E_MAIL, AP.COD_ABI, AP.COD_CAB, AP.COD_CIN, AP.COD_CC, AP.STATO, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6Mart.ANAG_PROMOTORI AP
		LEFT OUTER JOIN C6Storico.ANAG_PROMOTORI SAP
			ON AP.RETE = SAP.RETE
			AND AP.ID_PROMOTORE = SAP.ID_PROMOTORE
			AND AP.LIVELLO = SAP.LIVELLO
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREA_BISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREA_BISOGNO')
	BEGIN
		DELETE FROM C6Storico.AREA_BISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.AREA_BISOGNO
		(ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB)
		SELECT 
		 AB.ID_AREA, AB.NOME_AREA, AB.ORDINAMENTO, AB.ID_ELAB
		FROM C6Mart.AREA_BISOGNO AB
		LEFT OUTER JOIN C6Storico.AREA_BISOGNO SAB
			ON AB.ID_AREA = SAB.ID_AREA
		WHERE AB.ID_ELAB = @ID_ELAB AND SAB.ID_AREA IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC')
	BEGIN
		DELETE FROM C6Storico.ASSET_PERC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSET_PERC
		(COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.COD_PRODOTTO, AP.ID_ASSETCLASS, AP.COD_ISIN, AP.COD_MAF, AP.COD_INTERNO, AP.COD_SOTTOPRODOTTO, AP.LIVELLO, AP.PERC, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6Mart.ASSET_PERC AP
		LEFT OUTER JOIN C6Storico.ASSET_PERC SAP
			ON AP.COD_PRODOTTO = SAP.COD_PRODOTTO
			AND AP.ID_ASSETCLASS = SAP.ID_ASSETCLASS
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.COD_PRODOTTO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC_TERZI')
	BEGIN
		DELETE FROM C6Storico.ASSET_PERC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSET_PERC_TERZI
		(COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 APT.COD_PRODOTTO_TERZI, APT.ID_ASSETCLASS, APT.LIVELLO, APT.NOME_PRODOTTO, APT.TIPO_PRODOTTO, APT.PERC, APT.ID_ELAB, APT.TIPO_ELAB
		FROM C6Mart.ASSET_PERC_TERZI APT
		LEFT OUTER JOIN C6Storico.ASSET_PERC_TERZI SAPT
			ON APT.COD_PRODOTTO_TERZI = SAPT.COD_PRODOTTO_TERZI
			AND APT.ID_ASSETCLASS = SAPT.ID_ASSETCLASS
			AND APT.LIVELLO = SAPT.LIVELLO
		WHERE APT.ID_ELAB = @ID_ELAB AND SAPT.COD_PRODOTTO_TERZI IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6Storico.ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSETCLASS
		(ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB)
		SELECT 
		 A.ID_ASSETCLASS, A.DESCRIZIONE, A.LIVELLO, A.ORDINAMENTO, A.ID_ELAB
		FROM C6Mart.ASSETCLASS A
		LEFT OUTER JOIN C6Storico.ASSETCLASS SA
			ON A.ID_ASSETCLASS = SA.ID_ASSETCLASS
		WHERE A.ID_ELAB = @ID_ELAB AND SA.ID_ASSETCLASS IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS_TERZI')
	BEGIN
		DELETE FROM C6Storico.ASSETCLASS_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSETCLASS_TERZI
		(ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AT.ID_ASSETCLASS, AT.COD_ISIN, AT.COD_MAF, AT.COD_ADEGUATEZZA, AT.ID_ELAB, AT.TIPO_ELAB
		FROM C6Mart.ASSETCLASS_TERZI AT
		LEFT OUTER JOIN C6Storico.ASSETCLASS_TERZI SAT
			ON AT.ID_ASSETCLASS = SAT.ID_ASSETCLASS
		WHERE AT.ID_ELAB = @ID_ELAB AND SAT.ID_ASSETCLASS IS NULL
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX CATEGORIE_PRODOTTO XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATEGORIE_PRODOTTO')
--	BEGIN
--		DELETE FROM C6Storico.CATEGORIE_PRODOTTO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.CATEGORIE_PRODOTTO
--		(CAT_PRODOTTO, DESCRIZIONE, ORDINAMENTO)
--		SELECT 
--		 CAT_PRODOTTO, DESCRIZIONE, ORDINAMENTO
--		FROM C6Mart.CATEGORIE_PRODOTTO WHERE ID_ELAB = @ID_ELAB
--	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX CODICI_PROMOTORI_FITTIZI XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODICI_PROMOTORI_FITTIZI')
--	BEGIN
--		DELETE FROM C6Storico.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.CODICI_PROMOTORI_FITTIZI
--		(Rete, CodiceDA, CodiceA)
--		SELECT 
--		 Rete, CodiceDA, CodiceA
--		FROM C6Mart.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_PIRAMIDI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_PIRAMIDI')
	--	BEGIN
	--		DELETE FROM C6Storico.CODIFICA_PIRAMIDI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.CODIFICA_PIRAMIDI
	--		(ID_PIRAMIDE, DESCRIZIONE, NOTE, ID_ELAB)
	--		SELECT 
	--		 ID_PIRAMIDE, DESCRIZIONE, NOTE, ID_ELAB
	--		FROM C6Mart.CODIFICA_PIRAMIDI WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_RISCHIO')
	BEGIN
		DELETE FROM C6Storico.CODIFICA_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CODIFICA_RISCHIO
		(PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB)
		SELECT 
		 CR.PROFILO, CR.DESCRIZIONE, CR.MIN_VAR, CR.MAX_VAR, CR.ID_ELAB
		FROM C6Mart.CODIFICA_RISCHIO CR
		LEFT OUTER JOIN C6Storico.CODIFICA_RISCHIO SCR
			ON CR.PROFILO = SCR.PROFILO
		WHERE CR.ID_ELAB = @ID_ELAB AND SCR.PROFILO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX COLORI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'COLORI')
	--	BEGIN
	--		DELETE FROM C6Storico.COLORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.COLORI
	--		(Tipo, Codice, Ordinamento, [Descrizione breve], [Descrizione estesa], HexColor, Red, Green, Blue, ID_ELAB)
	--		SELECT 
	--		 Tipo, Codice, Ordinamento, [Descrizione breve], [Descrizione estesa], HexColor, Red, Green, Blue, ID_ELAB
	--		FROM C6Mart.COLORI WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI')
	BEGIN
		DELETE FROM C6Storico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CONTRATTOSEI
		(Rete, Cod_Fiscale, PIva_Fiduciaria, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, ID_ELAB)
		SELECT 
		 C.Rete, C.Cod_Fiscale, C.PIva_Fiduciaria, C.Data_Sott, C.CodiceContratto, C.Cod_Agente, C.Data_Perf_Base, C.Data_Perf, C.Fascia_CPP, C.Email, C.Indirizzo, C.CAP, C.Citta, C.Prov, C.Nazione, C.Presso, C.Data_Inizio, C.Freq_Diagnosi, C.Freq_Monitor, C.Freq_DiagnosiPrec, C.Freq_MonitorPrec, C.Data_InizioConsInv, C.Data_InizioBase, C.Data_FineBase, C.Data_InizioAvanzato, C.Data_FineAvanzato, C.ProgressivoInvio, C.GenerazioneReport, C.InvioBenvenuto, C.DataUltimoInvio, C.ClienteMigrato, C.RisorseNA, C.NumSolleciti, C.Data_UltimoSollecito, C.NumRevoche, C.Data_UltimaRevoca, C.Note, @ID_ELAB
		FROM C6Mart.CONTRATTOSEI C
		LEFT OUTER JOIN C6Storico.CONTRATTOSEI SC
			ON C.Rete = SC.Rete
			AND C.Cod_Fiscale = SC.Cod_Fiscale
			AND C.CodiceContratto = SC.CodiceContratto
		WHERE SC.Rete IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DATI_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'DATI_REPORT')
	--	BEGIN
	--		DELETE FROM C6Storico.DATI_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.DATI_REPORT
	--		(RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.DATI_REPORT WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DETTAGLIO_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DETTAGLIO_ASUL')
	BEGIN
		DELETE FROM C6Storico.DETTAGLIO_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.DETTAGLIO_ASUL
		(RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB)
		SELECT 
		 DA.RETE, DA.COD_FISCALE, DA.COD_PRODOTTO, DA.ID_CONTRATTO, DA.COD_SOTTOPRODOTTO, DA.COD_INTERNO, DA.CTV, DA.DATA_RIF, DA.COD_ISIN_FITTIZIO, DA.COD_ISIN_SOTT, DA.COD_MAF_SOTT, DA.ID_ELAB, DA.TIPO_ELAB
		FROM C6Mart.DETTAGLIO_ASUL DA
		LEFT OUTER JOIN C6Storico.DETTAGLIO_ASUL SDA
			ON DA.RETE = SDA.RETE
			AND DA.COD_FISCALE = SDA.COD_FISCALE
			AND DA.COD_PRODOTTO = SDA.COD_PRODOTTO
			AND DA.ID_CONTRATTO = SDA.ID_CONTRATTO
			AND DA.COD_SOTTOPRODOTTO = SDA.COD_SOTTOPRODOTTO
			AND DA.COD_INTERNO = SDA.COD_INTERNO
			AND DA.CTV = SDA.CTV
			AND DA.DATA_RIF = SDA.DATA_RIF
			AND DA.COD_ISIN_FITTIZIO = SDA.COD_ISIN_FITTIZIO
			AND DA.COD_ISIN_SOTT = SDA.COD_ISIN_SOTT
			AND DA.COD_MAF_SOTT = SDA.COD_MAF_SOTT
		WHERE DA.ID_ELAB = @ID_ELAB AND SDA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI')
	BEGIN
		DELETE FROM C6Storico.ELABORAZIONI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ELABORAZIONI
		(ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE)
		SELECT 
		 E.ID_ELAB, E.TIPO_ELAB, E.DATA_OPERAZIONE
		FROM C6Mart.ELABORAZIONI E
		LEFT OUTER JOIN C6Storico.ELABORAZIONI SE
			ON E.ID_ELAB = SE.ID_ELAB
		WHERE E.ID_ELAB = @ID_ELAB AND SE.ID_ELAB IS NULL
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_ATTACHMENT XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_ATTACHMENT')
--	BEGIN
--		DELETE FROM C6Storico.EMAIL_ATTACHMENT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.EMAIL_ATTACHMENT
--		(Attachment_Id, Email_Id, Attachment)
--		SELECT 
--		 Attachment_Id, Email_Id, Attachment
--		FROM C6Mart.EMAIL_ATTACHMENT WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_PB')
	--	BEGIN
	--		DELETE FROM C6Storico.EMAIL_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.EMAIL_PB
	--		(RETE, CODICE, PREFISSO, FIRMA, EMAIL)
	--		SELECT 
	--		 EP.RETE, EP.CODICE, EP.PREFISSO, EP.FIRMA, EP.EMAIL
	--		FROM C6Mart.EMAIL_PB EP
	--		LEFT OUTER JOIN C6Storico.EMAIL_PB SEP
	--			ON EP.FIRMA = SEP.FIRMA
	--		WHERE EP.ID_ELAB = @ID_ELAB AND SEP.FIRMA IS NULL
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ESITI_CARICAMENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ESITI_CARICAMENTI')
	--	BEGIN
	--		DELETE FROM C6Storico.ESITI_CARICAMENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.ESITI_CARICAMENTI
	--		(PROGR, DATA_INIZIO, DATA_FINE, ESITO, NOTE, ID_ELAB)
	--		SELECT 
	--		 PROGR, DATA_INIZIO, DATA_FINE, ESITO, NOTE, ID_ELAB
	--		FROM C6Mart.ESITI_CARICAMENTI WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX GER_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GER_PROMOTORI')
	--	BEGIN
	--		DELETE FROM C6Storico.GER_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.GER_PROMOTORI
	--		(RETE, ID_PROMOTORE, LIVELLO, ID_MANAGER, SUBORDINATI, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, ID_PROMOTORE, LIVELLO, ID_MANAGER, SUBORDINATI, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.GER_PROMOTORI WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_EMAIL')
	BEGIN
		DELETE FROM C6Storico.GESTIONE_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GESTIONE_EMAIL
		(Email_Id, Rete, Cod_Fiscale, Tipo, Data_Generazione, Inviata, Data_Invio, Data_Comunicazione_Host, ID_ELAB)
		SELECT 
		 GE.Email_Id, GE.Rete, GE.Cod_Fiscale, GE.Tipo, GE.Data_Generazione, GE.Inviata, GE.Data_Invio, GE.Data_Comunicazione_Host, GE.ID_ELAB
		FROM C6Mart.GESTIONE_EMAIL GE
		LEFT OUTER JOIN C6Storico.GESTIONE_EMAIL SGE
			ON GE.Email_Id = SGE.Email_Id
		WHERE GE.ID_ELAB = @ID_ELAB AND SGE.Email_Id IS NULL
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_PDF_FTP XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_PDF_FTP')
--	BEGIN
--		DELETE FROM C6Storico.GESTIONE_PDF_FTP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.GESTIONE_PDF_FTP
--		(Rete, CodiceFiscale, IdReport, TipoReport, DataGenerazione, DataInvio, DataInvioRistampa, FlagInvio, NomeFile, numeroPagine, ID_ELAB, id_Fk_zip)
--		SELECT 
--		 Rete, CodiceFiscale, IdReport, TipoReport, DataGenerazione, DataInvio, DataInvioRistampa, FlagInvio, NomeFile, numeroPagine, ID_ELAB, id_Fk_zip
--		FROM C6Mart.GESTIONE_PDF_FTP WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_ZIP_FTP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_ZIP_FTP')
	BEGIN
		DELETE FROM C6Storico.GESTIONE_ZIP_FTP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GESTIONE_ZIP_FTP
		(id, nomefile, dataInvio, flagInvio, nomeCartella, ID_ELAB)
		SELECT 
		 GZF.id, GZF.nomefile, GZF.dataInvio, GZF.flagInvio, GZF.nomeCartella, GZF.ID_ELAB
		FROM C6Mart.GESTIONE_ZIP_FTP GZF
		LEFT OUTER JOIN C6Storico.GESTIONE_ZIP_FTP SGZF
			ON GZF.id = SGZF.id
		WHERE GZF.ID_ELAB = @ID_ELAB AND SGZF.id IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MIFID')
	BEGIN
		DELETE FROM C6Storico.MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.MIFID
		(RETE, COD_FISCALE, COMPILAZIONE, PROFILO_ASS, PROFILO_CALC, DATA_INIZIO_VAL, DATA_FINE_VAL, ID_ELAB, TIPO_ELAB)
		SELECT 
		 M.RETE, M.COD_FISCALE, M.COMPILAZIONE, M.PROFILO_ASS, M.PROFILO_CALC, M.DATA_INIZIO_VAL, M.DATA_FINE_VAL, M.ID_ELAB, M.TIPO_ELAB
		FROM C6Mart.MIFID M
		LEFT OUTER JOIN C6Storico.MIFID SM
			ON M.RETE = SM.RETE
			AND M.COD_FISCALE = SM.COD_FISCALE
		WHERE M.ID_ELAB = @ID_ELAB AND SM.RETE IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX PARTITE_VIAGGIANTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PARTITE_VIAGGIANTI')
	BEGIN
		DELETE FROM C6Storico.PARTITE_VIAGGIANTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PARTITE_VIAGGIANTI
		(RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PV.RETE, PV.COD_FISCALE, PV.IMPORTO, PV.ID_ELAB, PV.TIPO_ELAB
		FROM C6Mart.PARTITE_VIAGGIANTI PV
		LEFT OUTER JOIN C6Storico.PARTITE_VIAGGIANTI SPV
			ON PV.RETE = SPV.RETE
			AND PV.COD_FISCALE = SPV.COD_FISCALE
		WHERE PV.ID_ELAB = @ID_ELAB AND SPV.RETE IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_AGG XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_AGG')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_AGG WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_AGG
		(RETE, COD_FISCALE, COD_PRODOTTO, LIQUIDATO, INVESTITO, ID_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_PRODOTTO, LIQUIDATO, INVESTITO, ID_AREA, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_AGG WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_ALTRO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_ALTRO')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_ALTRO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_ALTRO
		(RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PA.RETE, PA.COD_FISCALE, PA.QUANTITA, PA.DESCRIZIONE, PA.CTV, PA.ID_ELAB, PA.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_ALTRO PA
		LEFT OUTER JOIN C6Storico.PATRIMONIO_ALTRO SPA
			ON PA.RETE = SPA.RETE
			AND PA.COD_FISCALE = SPA.COD_FISCALE
			AND PA.QUANTITA = SPA.QUANTITA
			AND PA.DESCRIZIONE = SPA.DESCRIZIONE
			AND PA.CTV = SPA.CTV
		WHERE PA.ID_ELAB = @ID_ELAB AND SPA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_BF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_BF')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_BF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_BF
		(RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PB.RETE, PB.COD_FISCALE, PB.POSITION_ID, PB.COD_PRODOTTO, PB.ID_CONTRATTO, PB.DATA_SOTTOSCRIZIONE, PB.COD_STATO, PB.NUM_POLIZZA, PB.COD_MAF, PB.COD_INTERNO, PB.COD_SOTTOPRODOTTO, PB.TIPO_PRODOTTO, PB.NOME_PROGETTO, PB.ID_AREA, PB.DATA_OPERAZIONE, PB.DATA_VALUTA, PB.DATA_REGOLAMENTO, PB.QUANTITA, PB.PREZZO, PB.CTV, PB.CTV_NOMINALE, PB.VERSATO_NETTO, PB.PARTVIA_DISINV, PB.DATA_PARTVIA_DISINV, PB.PARTVIA_INV, PB.REND_SOTTOSCRIZIONE, PB.REND_TRIMESTRE, PB.REND_ANNO, PB.ID_ELAB, PB.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_BF  PB
		LEFT OUTER JOIN C6Storico.PATRIMONIO_BF SPB
			ON PB.RETE = SPB.RETE
			AND PB.COD_FISCALE = SPB.COD_FISCALE
			AND PB.POSITION_ID = SPB.POSITION_ID
		WHERE PB.ID_ELAB = @ID_ELAB AND SPB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_IMMOBILIARE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_IMMOBILIARE')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_IMMOBILIARE
		(RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PI.RETE, PI.COD_FISCALE, PI.DESCRIZIONE, PI.TIPOLOGIA, PI.LOCALITA, PI.PROVINCIA, PI.CAP, PI.NAZIONE, PI.VALORE_STIMATO, PI.AFFITTO, PI.NOTE, PI.DIV_RIFERIMENTO, PI.CAMBIO, PI.ID_ELAB, PI.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_IMMOBILIARE PI
		LEFT OUTER JOIN C6Storico.PATRIMONIO_IMMOBILIARE SPI
			ON PI.RETE = SPI.RETE
			AND PI.COD_FISCALE = SPI.COD_FISCALE
			AND PI.DESCRIZIONE = SPI.DESCRIZIONE
			AND PI.TIPOLOGIA = SPI.TIPOLOGIA
			AND PI.LOCALITA = SPI.LOCALITA
			AND PI.PROVINCIA = SPI.PROVINCIA
			AND PI.CAP = SPI.CAP
			AND PI.NAZIONE = PI.NAZIONE
			AND PI.VALORE_STIMATO = SPI.VALORE_STIMATO
			AND PI.AFFITTO = SPI.AFFITTO
			AND PI.NOTE = SPI.NOTE
			AND PI.DIV_RIFERIMENTO = SPI.DIV_RIFERIMENTO
			AND PI.CAMBIO = SPI.CAMBIO
		WHERE PI.ID_ELAB = @ID_ELAB AND SPI.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_TERZI')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_TERZI
		(RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PT.RETE, PT.COD_FISCALE, PT.NUM_POLIZZA, PT.TIPO_POLIZZA, PT.TIPO_PRODOTTO, PT.TIPO_PRODOTTO2, PT.COD_PRODOTTO, PT.COD_PRODOTTO_TERZI, PT.INTERMEDIARIO, PT.DATA_SOTTOSCRIZIONE, PT.DATA_SCADENZA, PT.FREQ_RATA, PT.DURATA_POLIZZA, PT.PREMIO, PT.ALIQUOTA, PT.DATA_SOTT_FP, PT.DATA_REGOLAMENTO, PT.QUANTITA, PT.PREZZO, PT.CTV, PT.VERSATO_NETTO, PT.DIV_REGOLAMENTO, PT.CAMBIO, PT.DESCR_GRUPPO_PRODOTTO, PT.ID_ELAB, PT.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_TERZI PT
		LEFT OUTER JOIN C6Storico.PATRIMONIO_TERZI SPT
			ON PT.RETE = SPT.RETE
			AND PT.COD_FISCALE = SPT.COD_FISCALE
			AND PT.COD_PRODOTTO = SPT.COD_PRODOTTO
			AND PT.COD_PRODOTTO_TERZI = SPT.COD_PRODOTTO_TERZI
		WHERE PT.ID_ELAB = @ID_ELAB AND SPT.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_MOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_MOD')
	BEGIN
		DELETE FROM C6Storico.PIRAMIDE_MOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PIRAMIDE_MOD
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PM.RETE, PM.COD_FISCALE, PM.ID_AREA, PM.NOME_PROGETTO, PM.TIPO_PROGETTO, PM.PERC_AREA, PM.CTV_PROGETTO, PM.CTV_AREA, PM.ORIZZ_TEMP, PM.CTV_TOTALE, PM.STATO_CONSULENZA, PM.DATA_STATO_CONS, PM.DATA_MIGR_CONS, PM.ID_CONTRATTO, PM.ID_ELAB, PM.TIPO_ELAB
		FROM C6Mart.PIRAMIDE_MOD PM
		LEFT OUTER JOIN C6Storico.PIRAMIDE_MOD SPM
			ON PM.RETE = SPM.RETE
			AND PM.COD_FISCALE = SPM.COD_FISCALE
			AND PM.ID_AREA = SPM.ID_AREA
			AND PM.NOME_PROGETTO = SPM.NOME_PROGETTO
		WHERE PM.ID_ELAB = @ID_ELAB AND SPM.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_VERT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_VERT')
	BEGIN
		DELETE FROM C6Storico.PIRAMIDE_VERT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PIRAMIDE_VERT
		(RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PV.RETE, PV.COD_FISCALE, PV.ID_AREA, PV.CTV_AREA, PV.ID_ELAB, PV.TIPO_ELAB
		FROM C6Mart.PIRAMIDE_VERT PV
		LEFT OUTER JOIN C6Storico.PIRAMIDE_VERT SPV
			ON PV.RETE = SPV.RETE
			AND PV.COD_FISCALE = SPV.COD_FISCALE
			AND PV.ID_AREA = SPV.ID_AREA
		WHERE PV.ID_ELAB = @ID_ELAB AND SPV.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PREVIDENZIALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PREVIDENZIALE')
	BEGIN
		DELETE FROM C6Storico.PREVIDENZIALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PREVIDENZIALE
		(RETE, COD_FISCALE, ANNO_PENSIONE, ETA_PENSIONE, TOT_CONSUMI_ATTESI, TOT_REDDITO_ANNUO, REDDITO_CONSUMI_ESS, PENSIONE_ATTESA_, RENDITA_PREV_COMPL, RENDITA_ASS, REDDITO_CONSUMI_SEC, RENDITA_ASS_TRAD, RENDITA_ASS_UNIT, RENDITA_IMMOB, ALTRE_RENDITE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 P.RETE, P.COD_FISCALE, P.ANNO_PENSIONE, P.ETA_PENSIONE, P.TOT_CONSUMI_ATTESI, P.TOT_REDDITO_ANNUO, P.REDDITO_CONSUMI_ESS, P.PENSIONE_ATTESA_, P.RENDITA_PREV_COMPL, P.RENDITA_ASS, P.REDDITO_CONSUMI_SEC, P.RENDITA_ASS_TRAD, P.RENDITA_ASS_UNIT, P.RENDITA_IMMOB, P.ALTRE_RENDITE, P.DIV_RIFERIMENTO, P.CAMBIO, P.ID_ELAB, P.TIPO_ELAB
		FROM C6Mart.PREVIDENZIALE P
		LEFT OUTER JOIN C6Storico.PREVIDENZIALE SP
			ON P.RETE = SP.RETE
			AND P.COD_FISCALE = SP.COD_FISCALE
		WHERE P.ID_ELAB = @ID_ELAB AND SP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_AGGREGATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_AGGREGATO')
	BEGIN
		DELETE FROM C6Storico.RISCHIO_AGGREGATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.RISCHIO_AGGREGATO
		(RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RA.RETE, RA.COD_FISCALE, RA.COD_AGGREG, RA.VAR_ASSOLUTO_PTF, RA.VAR_PERC_PTF, RA.CVAR_ASSOLUTO_PTF, RA.CVAR_PERC_PTF, RA.MCVAR, RA.MCVARP, RA.BENEFICIO, RA.COPERTURA, RA.CTV_AGGREG, RA.ID_ELAB, RA.TIPO_ELAB
		FROM C6Mart.RISCHIO_AGGREGATO RA
		LEFT OUTER JOIN C6Storico.RISCHIO_AGGREGATO SRA
			ON RA.RETE = SRA.RETE
			AND RA.COD_FISCALE = SRA.COD_FISCALE
			AND RA.COD_AGGREG = SRA.COD_AGGREG
		WHERE RA.ID_ELAB = @ID_ELAB AND SRA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_DETTAGLIO XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_DETTAGLIO')
	--	BEGIN
	--		DELETE FROM C6Storico.RISCHIO_DETTAGLIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.RISCHIO_DETTAGLIO
	--		(RETE, COD_FISCALE, COD_AGGREG, CHIAVE_PRODOTTO, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, TIPO_COPERTURA, CTV_AGGREG, MERCATO_CONTRATT, DIV_CONTRATT, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, COD_AGGREG, CHIAVE_PRODOTTO, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, TIPO_COPERTURA, CTV_AGGREG, MERCATO_CONTRATT, DIV_CONTRATT, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.RISCHIO_DETTAGLIO WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX STRUTTURA_RETE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'STRUTTURA_RETE')
	BEGIN
		DELETE FROM C6Storico.STRUTTURA_RETE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.STRUTTURA_RETE
		(Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB)
		SELECT 
		 SR.Rete, SR.PB, SR.CognomeNomePB, SR.SPV, SR.CognomeNomeSPV, SR.RM, SR.CognomeNomeRM, SR.DM, SR.CognomeNomeDM, SR.AM, SR.CognomeNomeAM, SR.Livello, SR.ID_ELAB, SR.TIPO_ELAB
		FROM C6Mart.STRUTTURA_RETE SR
		LEFT OUTER JOIN C6Storico.STRUTTURA_RETE SSR
			ON SR.Rete = SSR.Rete
			AND SR.PB = SSR.PB
		WHERE SR.ID_ELAB = @ID_ELAB AND SSR.Rete IS NULL
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX TABELLESTORICIZZATE XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TABELLESTORICIZZATE')
--	BEGIN
--		DELETE FROM C6Storico.TABELLESTORICIZZATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.TABELLESTORICIZZATE
--		(Nome)
--		SELECT 
--		 Nome
--		FROM C6Mart.TABELLESTORICIZZATE WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TESTO_LETTERA_ACCETTAZIONE XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TESTO_LETTERA_ACCETTAZIONE')
	--	BEGIN
	--		DELETE FROM C6Storico.TESTO_LETTERA_ACCETTAZIONE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.TESTO_LETTERA_ACCETTAZIONE
	--		(ID, TESTO, DESCRIZIONE, ID_ELAB)
	--		SELECT 
	--		 ID, TESTO, DESCRIZIONE, ID_ELAB
	--		FROM C6Mart.TESTO_LETTERA_ACCETTAZIONE WHERE ID_ELAB = @ID_ELAB
	--	END

--	--XXXXXXXXXXXXXXXXXXXXXXXX TIPO_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TIPO_EMAIL')
--	BEGIN
--		DELETE FROM C6Storico.TIPO_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.TIPO_EMAIL
--		(Tipo, Descrizione, E_From, E_To, E_Cc, E_Ccn, E_Subject, Testo)
--		SELECT 
--		 Tipo, Descrizione, E_From, E_To, E_Cc, E_Ccn, E_Subject, Testo
--		FROM C6Mart.TIPO_EMAIL WHERE ID_ELAB = @ID_ELAB
--	END
 
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	-- XX -- XX -- XX -- XX  AGGIORNAMENTO DATI C6Mart.TabelleStoricizzate XX -- XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6Mart.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END

END




GO
/****** Object:  StoredProcedure [C6Mart].[SRV_STORICIZZAZIONE_GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[SRV_STORICIZZAZIONE_GLOBAL_ERROR]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico espresso in giorni

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_STORICIZZAZIONE_GLOBAL_ERROR',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MART.GETIDELAB()

	DELETE FROM C6STORICO.GLOBAL_ERROR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_STORICIZZAZIONE_GLOBAL_ERROR',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	INSERT INTO C6STORICO.GLOBAL_ERROR
	(ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB)
	SELECT
	 ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB
	FROM dbo.GLOBAL_ERROR WHERE ID_ELAB = @ID_ELAB

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR'
		)

	TRUNCATE TABLE dbo.GLOBAL_ERROR

END




GO
/****** Object:  StoredProcedure [C6Mart].[SRV_STORICIZZAZIONE_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		paolo giovanetti
-- Create date: 23 gennaio 2009
-- Description:	- rimossa la transazione inutile
--				- aggiunta la storicizzazione delle elaborazioni e del global_error
--				- la storicizzazione di GESTIONE_ZIP_FTP prevede la sua pulizia sul MART !!
-- =============================================
CREATE PROCEDURE [C6Mart].[SRV_STORICIZZAZIONE_OLD]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico espresso in giorni

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MART.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX INIZIO TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ALBERO_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALBERO_PRODOTTI')
	BEGIN
		DELETE FROM C6Storico.ALBERO_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ALBERO_PRODOTTI
		(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ID_ELAB)
		SELECT 
		 DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ID_ELAB
		FROM C6Mart.ALBERO_PRODOTTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC')
	BEGIN
		DELETE FROM C6Storico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CC
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_CC WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC_TERZI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CC_TERZI
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB
		FROM C6Mart.ANAG_CC_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CLIENTI
		(RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_CLIENTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI_PREV XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI_PREV')
	BEGIN
		DELETE FROM C6Storico.ANAG_CLIENTI_PREV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CLIENTI_PREV
		(RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_CLIENTI_PREV WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CONTRATTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CONTRATTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CONTRATTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CONTRATTI
		(ID_CONTRATTO, RETE, COD_FISCALE, COD_PRODOTTO, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_PERF, DATA_CHIUSURA, STATO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, COD_INTERNO, COD_MANDATO, COD_CC, RUBRICATO, CUSTODIA_GAR, ID_ELAB, TIPO_ELAB)
		SELECT 
		 ID_CONTRATTO, RETE, COD_FISCALE, COD_PRODOTTO, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_PERF, DATA_CHIUSURA, STATO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, COD_INTERNO, COD_MANDATO, COD_CC, RUBRICATO, CUSTODIA_GAR, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_CONTRATTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CONTRATTI_ASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CONTRATTI_ASS')
	BEGIN
		DELETE FROM C6Storico.ANAG_CONTRATTI_ASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CONTRATTI_ASS
		(RETE, COD_FISCALE, NUM_POLIZZA, ID_CONTRATTO, TIPO_PRODOTTO, PREMIO, IMPORTO_RATA, FREQ_RATA, IMPORTO_ASSICURATO, DURATA_POLIZZA, ALIQUOTA, COD_SOTTOPRODOTTO, COD_INTERNO, DATA_APERTURA, DATA_CHIUSURA, INTERMEDIARIO, STATO, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, NUM_POLIZZA, ID_CONTRATTO, TIPO_PRODOTTO, PREMIO, IMPORTO_RATA, FREQ_RATA, IMPORTO_ASSICURATO, DURATA_POLIZZA, ALIQUOTA, COD_SOTTOPRODOTTO, COD_INTERNO, DATA_APERTURA, DATA_CHIUSURA, INTERMEDIARIO, STATO, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_CONTRATTI_ASS WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_EMITTENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_EMITTENTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_EMITTENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_EMITTENTI
		(ID_EMITTENTE, DESCRIZIONE, NOTE, ID_ELAB)
		SELECT 
		 ID_EMITTENTE, DESCRIZIONE, NOTE, ID_ELAB
		FROM C6Mart.ANAG_EMITTENTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PRODOTTI
		(COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_PRODOTTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI_TERZI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PRODOTTI_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PRODOTTI_TERZI
		(COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_PRODOTTI_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PROMOTORI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PROMOTORI
		(RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ANAG_PROMOTORI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREA_BISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREA_BISOGNO')
	BEGIN
		DELETE FROM C6Storico.AREA_BISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.AREA_BISOGNO
		(ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB)
		SELECT 
		 ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB
		FROM C6Mart.AREA_BISOGNO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC')
	BEGIN
		DELETE FROM C6Storico.ASSET_PERC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSET_PERC
		(COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ASSET_PERC WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC_TERZI')
	BEGIN
		DELETE FROM C6Storico.ASSET_PERC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSET_PERC_TERZI
		(COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ASSET_PERC_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6Storico.ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSETCLASS
		(ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB)
		SELECT 
		 ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB
		FROM C6Mart.ASSETCLASS WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS_TERZI')
	BEGIN
		DELETE FROM C6Storico.ASSETCLASS_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSETCLASS_TERZI
		(ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB
		FROM C6Mart.ASSETCLASS_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX CATEGORIE_PRODOTTO XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATEGORIE_PRODOTTO')
--	BEGIN
--		DELETE FROM C6Storico.CATEGORIE_PRODOTTO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.CATEGORIE_PRODOTTO
--		(CAT_PRODOTTO, DESCRIZIONE, ORDINAMENTO)
--		SELECT 
--		 CAT_PRODOTTO, DESCRIZIONE, ORDINAMENTO
--		FROM C6Mart.CATEGORIE_PRODOTTO WHERE ID_ELAB = @ID_ELAB
--	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX CODICI_PROMOTORI_FITTIZI XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODICI_PROMOTORI_FITTIZI')
--	BEGIN
--		DELETE FROM C6Storico.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.CODICI_PROMOTORI_FITTIZI
--		(Rete, CodiceDA, CodiceA)
--		SELECT 
--		 Rete, CodiceDA, CodiceA
--		FROM C6Mart.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_PIRAMIDI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_PIRAMIDI')
	BEGIN
		DELETE FROM C6Storico.CODIFICA_PIRAMIDI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CODIFICA_PIRAMIDI
		(ID_PIRAMIDE, DESCRIZIONE, NOTE, ID_ELAB)
		SELECT 
		 ID_PIRAMIDE, DESCRIZIONE, NOTE, ID_ELAB
		FROM C6Mart.CODIFICA_PIRAMIDI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_RISCHIO')
	BEGIN
		DELETE FROM C6Storico.CODIFICA_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CODIFICA_RISCHIO
		(PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB)
		SELECT 
		 PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB
		FROM C6Mart.CODIFICA_RISCHIO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX COLORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'COLORI')
	BEGIN
		DELETE FROM C6Storico.COLORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.COLORI
		(Tipo, Codice, Ordinamento, [Descrizione breve], [Descrizione estesa], HexColor, Red, Green, Blue, ID_ELAB)
		SELECT 
		 Tipo, Codice, Ordinamento, [Descrizione breve], [Descrizione estesa], HexColor, Red, Green, Blue, ID_ELAB
		FROM C6Mart.COLORI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI')
	BEGIN
		DELETE FROM C6Storico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CONTRATTOSEI
		(Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, ID_ELAB)
		SELECT 
		 Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, @ID_ELAB
		FROM C6Mart.CONTRATTOSEI --WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DATI_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DATI_REPORT')
	BEGIN
		DELETE FROM C6Storico.DATI_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.DATI_REPORT
		(RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB
		FROM C6Mart.DATI_REPORT WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DETTAGLIO_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DETTAGLIO_ASUL')
	BEGIN
		DELETE FROM C6Storico.DETTAGLIO_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.DETTAGLIO_ASUL
		(RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB
		FROM C6Mart.DETTAGLIO_ASUL WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI')
	BEGIN
		DELETE FROM C6Storico.ELABORAZIONI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ELABORAZIONI
		(ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE)
		SELECT 
		 ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE
		FROM C6Mart.ELABORAZIONI WHERE ID_ELAB = @ID_ELAB
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_ATTACHMENT XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_ATTACHMENT')
--	BEGIN
--		DELETE FROM C6Storico.EMAIL_ATTACHMENT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.EMAIL_ATTACHMENT
--		(Attachment_Id, Email_Id, Attachment)
--		SELECT 
--		 Attachment_Id, Email_Id, Attachment
--		FROM C6Mart.EMAIL_ATTACHMENT WHERE ID_ELAB = @ID_ELAB
--	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_PB XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_PB')
--	BEGIN
--		DELETE FROM C6Storico.EMAIL_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.EMAIL_PB
--		(RETE, CODICE, PREFISSO, FIRMA, EMAIL)
--		SELECT 
--		 RETE, CODICE, PREFISSO, FIRMA, EMAIL
--		FROM C6Mart.EMAIL_PB WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ESITI_CARICAMENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ESITI_CARICAMENTI')
	BEGIN
		DELETE FROM C6Storico.ESITI_CARICAMENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ESITI_CARICAMENTI
		(PROGR, DATA_INIZIO, DATA_FINE, ESITO, NOTE, ID_ELAB)
		SELECT 
		 PROGR, DATA_INIZIO, DATA_FINE, ESITO, NOTE, ID_ELAB
		FROM C6Mart.ESITI_CARICAMENTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX GER_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GER_PROMOTORI')
	BEGIN
		DELETE FROM C6Storico.GER_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GER_PROMOTORI
		(RETE, ID_PROMOTORE, LIVELLO, ID_MANAGER, SUBORDINATI, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, ID_PROMOTORE, LIVELLO, ID_MANAGER, SUBORDINATI, ID_ELAB, TIPO_ELAB
		FROM C6Mart.GER_PROMOTORI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_EMAIL')
	BEGIN
		DELETE FROM C6Storico.GESTIONE_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GESTIONE_EMAIL
		(Email_Id, Rete, Cod_Fiscale, Tipo, Data_Generazione, Inviata, Data_Invio, Data_Comunicazione_Host, ID_ELAB)
		SELECT 
		 Email_Id, Rete, Cod_Fiscale, Tipo, Data_Generazione, Inviata, Data_Invio, Data_Comunicazione_Host, ID_ELAB
		FROM C6Mart.GESTIONE_EMAIL WHERE ID_ELAB = @ID_ELAB
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_PDF_FTP XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_PDF_FTP')
--	BEGIN
--		DELETE FROM C6Storico.GESTIONE_PDF_FTP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.GESTIONE_PDF_FTP
--		(Rete, CodiceFiscale, IdReport, TipoReport, DataGenerazione, DataInvio, DataInvioRistampa, FlagInvio, NomeFile, numeroPagine, ID_ELAB, id_Fk_zip)
--		SELECT 
--		 Rete, CodiceFiscale, IdReport, TipoReport, DataGenerazione, DataInvio, DataInvioRistampa, FlagInvio, NomeFile, numeroPagine, ID_ELAB, id_Fk_zip
--		FROM C6Mart.GESTIONE_PDF_FTP WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_ZIP_FTP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_ZIP_FTP')
	BEGIN
		DELETE FROM C6Storico.GESTIONE_ZIP_FTP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GESTIONE_ZIP_FTP
		(id, nomefile, dataInvio, flagInvio, nomeCartella, ID_ELAB)
		SELECT 
		 id, nomefile, dataInvio, flagInvio, nomeCartella, ID_ELAB
		FROM C6Mart.GESTIONE_ZIP_FTP WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MIFID')
	BEGIN
		DELETE FROM C6Storico.MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.MIFID
		(RETE, COD_FISCALE, COMPILAZIONE, PROFILO_ASS, PROFILO_CALC, DATA_INIZIO_VAL, DATA_FINE_VAL, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COMPILAZIONE, PROFILO_ASS, PROFILO_CALC, DATA_INIZIO_VAL, DATA_FINE_VAL, ID_ELAB, TIPO_ELAB
		FROM C6Mart.MIFID WHERE ID_ELAB = @ID_ELAB
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX PARTITE_VIAGGIANTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PARTITE_VIAGGIANTI')
	BEGIN
		DELETE FROM C6Storico.PARTITE_VIAGGIANTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PARTITE_VIAGGIANTI
		(RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PARTITE_VIAGGIANTI WHERE ID_ELAB = @ID_ELAB
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_AGG XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_AGG')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_AGG WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_AGG
		(RETE, COD_FISCALE, COD_PRODOTTO, LIQUIDATO, INVESTITO, ID_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_PRODOTTO, LIQUIDATO, INVESTITO, ID_AREA, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_AGG WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_ALTRO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_ALTRO')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_ALTRO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_ALTRO
		(RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_ALTRO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_BF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_BF')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_BF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_BF
		(RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_BF WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_IMMOBILIARE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_IMMOBILIARE')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_IMMOBILIARE
		(RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_TERZI')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_TERZI
		(RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_MOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_MOD')
	BEGIN
		DELETE FROM C6Storico.PIRAMIDE_MOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PIRAMIDE_MOD
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PIRAMIDE_MOD WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_VERT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_VERT')
	BEGIN
		DELETE FROM C6Storico.PIRAMIDE_VERT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PIRAMIDE_VERT
		(RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PIRAMIDE_VERT WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PREVIDENZIALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PREVIDENZIALE')
	BEGIN
		DELETE FROM C6Storico.PREVIDENZIALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PREVIDENZIALE
		(RETE, COD_FISCALE, ANNO_PENSIONE, ETA_PENSIONE, TOT_CONSUMI_ATTESI, TOT_REDDITO_ANNUO, REDDITO_CONSUMI_ESS, PENSIONE_ATTESA_, RENDITA_PREV_COMPL, RENDITA_ASS, REDDITO_CONSUMI_SEC, RENDITA_ASS_TRAD, RENDITA_ASS_UNIT, RENDITA_IMMOB, ALTRE_RENDITE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ANNO_PENSIONE, ETA_PENSIONE, TOT_CONSUMI_ATTESI, TOT_REDDITO_ANNUO, REDDITO_CONSUMI_ESS, PENSIONE_ATTESA_, RENDITA_PREV_COMPL, RENDITA_ASS, REDDITO_CONSUMI_SEC, RENDITA_ASS_TRAD, RENDITA_ASS_UNIT, RENDITA_IMMOB, ALTRE_RENDITE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PREVIDENZIALE WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_AGGREGATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_AGGREGATO')
	BEGIN
		DELETE FROM C6Storico.RISCHIO_AGGREGATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.RISCHIO_AGGREGATO
		(RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB
		FROM C6Mart.RISCHIO_AGGREGATO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_DETTAGLIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_DETTAGLIO')
	BEGIN
		DELETE FROM C6Storico.RISCHIO_DETTAGLIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.RISCHIO_DETTAGLIO
		(RETE, COD_FISCALE, COD_AGGREG, CHIAVE_PRODOTTO, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, TIPO_COPERTURA, CTV_AGGREG, MERCATO_CONTRATT, DIV_CONTRATT, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_AGGREG, CHIAVE_PRODOTTO, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, TIPO_COPERTURA, CTV_AGGREG, MERCATO_CONTRATT, DIV_CONTRATT, ID_ELAB, TIPO_ELAB
		FROM C6Mart.RISCHIO_DETTAGLIO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX STRUTTURA_RETE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'STRUTTURA_RETE')
	BEGIN
		DELETE FROM C6Storico.STRUTTURA_RETE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.STRUTTURA_RETE
		(Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB)
		SELECT 
		 Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB
		FROM C6Mart.STRUTTURA_RETE WHERE ID_ELAB = @ID_ELAB
	END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX TABELLESTORICIZZATE XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TABELLESTORICIZZATE')
--	BEGIN
--		DELETE FROM C6Storico.TABELLESTORICIZZATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.TABELLESTORICIZZATE
--		(Nome)
--		SELECT 
--		 Nome
--		FROM C6Mart.TABELLESTORICIZZATE WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TESTO_LETTERA_ACCETTAZIONE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TESTO_LETTERA_ACCETTAZIONE')
	BEGIN
		DELETE FROM C6Storico.TESTO_LETTERA_ACCETTAZIONE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.TESTO_LETTERA_ACCETTAZIONE
		(ID, TESTO, DESCRIZIONE, ID_ELAB)
		SELECT 
		 ID, TESTO, DESCRIZIONE, ID_ELAB
		FROM C6Mart.TESTO_LETTERA_ACCETTAZIONE WHERE ID_ELAB = @ID_ELAB
	END
 



























































--	--XXXXXXXXXXXXXXXXXXXXXXXX TIPO_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TIPO_EMAIL')
--	BEGIN
--		DELETE FROM C6Storico.TIPO_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.TIPO_EMAIL
--		(Tipo, Descrizione, E_From, E_To, E_Cc, E_Ccn, E_Subject, Testo)
--		SELECT 
--		 Tipo, Descrizione, E_From, E_To, E_Cc, E_Ccn, E_Subject, Testo
--		FROM C6Mart.TIPO_EMAIL WHERE ID_ELAB = @ID_ELAB
--	END
 
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

END


GO
/****** Object:  StoredProcedure [C6Mart].[SRV_SVUOTAMART]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[SRV_SVUOTAMART]
AS
BEGIN
	SET NOCOUNT ON;

	TRUNCATE TABLE [C6Mart].[ALBERO_PRODOTTI]
	
	TRUNCATE TABLE [C6Mart].[ANAG_CC]

	TRUNCATE TABLE [C6Mart].[ANAG_CC_TERZI]

	DELETE C6MART.ANAG_CLIENTI 
	FROM C6MART.ANAG_CLIENTI
	INNER JOIN C6STAGING.ALL_CF_PB 
		ON ANAG_CLIENTI.RETE = ALL_CF_PB.RETE_PB
		AND ANAG_CLIENTI.COD_FISCALE = ALL_CF_PB.CODICEFISCALE

	TRUNCATE TABLE [C6Mart].[ANAG_CONTRATTI]

	TRUNCATE TABLE [C6Mart].[ANAG_CONTRATTI_ASS]

	TRUNCATE TABLE [C6Mart].[ANAG_PRODOTTI]

	TRUNCATE TABLE [C6Mart].[ANAG_PRODOTTI_TERZI]

	TRUNCATE TABLE [C6Mart].[ANAG_PROMOTORI]

	TRUNCATE TABLE [C6Mart].[AREA_BISOGNO]

	TRUNCATE TABLE [C6Mart].[ASSET_PERC]

	TRUNCATE TABLE [C6Mart].[ASSET_PERC_TERZI]

	TRUNCATE TABLE [C6Mart].[ASSETCLASS]

	TRUNCATE TABLE [C6Mart].[ASSETCLASS_TERZI]

	TRUNCATE TABLE [C6Mart].[CATEGORIE_PRODOTTO]

	TRUNCATE TABLE [C6Mart].[CODIFICA_RISCHIO]

	TRUNCATE TABLE [C6Mart].[DETTAGLIO_ASUL]

	TRUNCATE TABLE [C6Mart].[EMAIL_PB]

	TRUNCATE TABLE [C6Mart].[MIFID]

	TRUNCATE TABLE [C6Mart].[PARTITE_VIAGGIANTI]

	TRUNCATE TABLE [C6Mart].[PATRIMONIO_AGG]

	TRUNCATE TABLE [C6Mart].[PATRIMONIO_ALTRO]

	TRUNCATE TABLE [C6Mart].[PATRIMONIO_BF]

	TRUNCATE TABLE [C6Mart].[PATRIMONIO_IMMOBILIARE]

	TRUNCATE TABLE [C6Mart].[PATRIMONIO_TERZI]

	TRUNCATE TABLE [C6Mart].[PIRAMIDE_MOD]

	TRUNCATE TABLE [C6Mart].[PIRAMIDE_VERT]

	TRUNCATE TABLE [C6Mart].[PREVIDENZIALE]

	TRUNCATE TABLE [C6Mart].[RISCHIO_AGGREGATO]
	
	TRUNCATE TABLE [C6Mart].[STRUTTURA_RETE]
END


GO
/****** Object:  StoredProcedure [C6Mart].[SRV_TABELLE_IN_MART]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[SRV_TABELLE_IN_MART]
AS
BEGIN

	DECLARE @tabella AS VARCHAR(50) 
	SET @tabella = NULL

	SELECT TOP 1 @tabella = A.tabella
	FROM(
		SELECT tables.name tabella
		FROM sys.tables tables
		INNER JOIN sys.schemas schemas
			ON tables.schema_id = schemas.schema_id
		WHERE schemas.name = 'C6Mart'
			AND tables.name <> 'TabelleStoricizzate'
	) A
	WHERE A.tabella NOT IN (
		SELECT Nome 
		FROM C6Mart.TabelleStoricizzate
	)
	ORDER BY A.tabella

	-- vedi stessa sp di Staging
	/*INSERT INTO [C6Mart].[TabelleStoricizzate]
           ([Nome])
	VALUES
           (@tabella)*/

	DECLARE @tabellaMartDaStoricizzare AS SMALLINT
	IF @tabella IS NOT NULL
		BEGIN
			INSERT INTO [C6Mart].[TabelleStoricizzate]
				   ([Nome], [Inizio])
			VALUES
				   (@tabella, GETDATE())
			EXEC [C6Mart].[SRV_STORICIZZAZIONE] @tabella
			SET @tabellaMartDaStoricizzare = 1
		END
	ELSE
		SET @tabellaMartDaStoricizzare = 0

	SELECT @tabellaMartDaStoricizzare tabella, @tabella nome
	
END

GO
/****** Object:  StoredProcedure [C6Mart].[SRV_TRUNCATE_STAGING]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[SRV_TRUNCATE_STAGING]
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- *** TABELLE GESTIONE ERRORE *** --
	-- TRUNCATE TABLE dbo.GLOBAL_ERROR;
	-- *** FINE TABELLE GESTIONE ERRORE *** --
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'Staging SEI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6Staging.ALL_CF_PB;
	TRUNCATE TABLE C6Staging.ALL_CF_STATO;
	TRUNCATE TABLE C6Staging.ALL_CONSUL_ASUL;
	TRUNCATE TABLE C6Staging.ALL_PATR_TERZI;
	TRUNCATE TABLE C6Staging.ALL_PATRBF;
	TRUNCATE TABLE C6Staging.ALL_POS_CONS_CAT;
	TRUNCATE TABLE C6Staging.ALL_PROPOSTA;
	TRUNCATE TABLE C6Staging.ACBDENOTH;
	TRUNCATE TABLE C6Staging.ACBDENTRY;
	TRUNCATE TABLE C6Staging.ADBKRELAT;
	TRUNCATE TABLE C6Staging.ASSETCLASS;
	TRUNCATE TABLE C6Staging.C_BO_453FB;
	TRUNCATE TABLE C6Staging.CATINAREA;
	--TRUNCATE TABLE C6Staging.CATITEMREF; GESTITA SEPARATAMENTE
	TRUNCATE TABLE C6Staging.COMPTYPE;
	TRUNCATE TABLE C6Staging.CONO;
	TRUNCATE TABLE C6Staging.CONSAREA;
	TRUNCATE TABLE C6Staging.CONSUL;
	TRUNCATE TABLE C6Staging.INDREND;
	TRUNCATE TABLE C6Staging.INSTRBDS;
	TRUNCATE TABLE C6Staging.MACROASSETCLASS;
	TRUNCATE TABLE C6Staging.NEEDAREA;
	TRUNCATE TABLE C6Staging.OTHINTRST;
	TRUNCATE TABLE C6Staging.PORTMOD;
	TRUNCATE TABLE C6Staging.POSITION;
	TRUNCATE TABLE C6Staging.PRCONSUL;
	TRUNCATE TABLE C6Staging.QUANTIF;
	TRUNCATE TABLE C6Staging.S4_S5_S13_TRAD_UNTIL_LIV3;
	TRUNCATE TABLE C6Staging.WANAB;
	TRUNCATE TABLE C6Staging.WRENAB;
	TRUNCATE TABLE C6Staging.WSCABP;
	

END



GO
/****** Object:  StoredProcedure [C6Mart].[TabellaCaratteriAnomali]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- 1. Caratteri Anomali


CREATE procedure [C6Mart].[TabellaCaratteriAnomali]
as
begin

	create table #TableCaratteriAnomali (
		[Val_Ascii] [smallint] NOT NULL,
		[Val_Char] [varchar](1) NOT NULL,
		[Rete] [varchar](1) NOT NULL,
		[Cod_Fiscale] [varchar](16) NOT NULL,
		[Nome_Campo] [varchar](50) NOT NULL,
		[Val_Campo] [varchar](150) NOT NULL
		)

	INSERT INTO #TableCaratteriAnomali
	exec [C6Mart].[CercaCaratteriAnomali]

	select a.*,
		c.Indirizzo as Indirizzo_vContratti,
		d.indirizzo as indirizzo_Anag,
		d.localita as localita_Anag,
		d.Provincia as provincia_anag,
		d.nazione as nazione_anag,
		d.presso as presso_anag
	--into #RecordDaModificare
	from #TableCaratteriAnomali a
		inner join c6mart.gestione_pdf_ftp b
		on a.rete = b.rete
		and
		a.cod_fiscale = b.codicefiscale
			inner join C6Mart.VCONTRATTI c
			on a.rete = c.rete
			and
			a.cod_fiscale = c.cod_fiscale
				inner join C6Mart.ANAG_CLIENTI d
				on a.rete = d.rete
				and
				a.cod_fiscale = d.cod_fiscale
	where b.DataInvio is null

	drop table #TableCaratteriAnomali
end
GO
/****** Object:  StoredProcedure [C6Mart].[temp_RP_DM_GestioneEmail]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--delete from c6mart.gestione_Email where data_Generazione > getDate()-1
--truncate table log_esecuzione
--select * from log_esecuzione
CREATE procedure [C6Mart].[temp_RP_DM_GestioneEmail] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	PERFEZIONAMENTO;
--	MANCATA MIGRAZIONE;
--	REINVIO SOLLECITO MANCATA MIGRAZIONE.

--LA GESTIONE DELLE EMAIL PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO O
--PER REINVIO DEL SOLLECITO PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO 
--VIENE FATTA DOPO L'ALLINEAMENTO CON I DATI DEL SIMPB

	
--ESTRAZIONE EMAIL PERFEZIONAMENTO
--TIPO EMAIL: "PERF"
--L'EMAIL VIENE INVIATA PER TUTTI I CLIENTI CHE HANNO DATA DI PERFEZIONAMENTO VALORIZZATA
--IL CONTROLLO SULLA DATA DI GENERAZIONE >= DELLA DATA DI PERFEZIONAMENTO E' DOVUTO AL
--FATTO CHE IL CONTRATTO PUO` ESSERE CHIUSO E RIAPERTO ED IN QUESTO CASO LA MAIL DI PERFEZIONAMENTO
--DEVE ESSERE REINVIATA

-- EMAIL DI ADESIONE AL SERVIZIO SEI
-- TIPO EMAIL 'PERF'
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MART.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_GestioneEmail - Mail Perf',GETDATE(),'Elaborazione giornaliera')
--0. MODIFICO I RECORD IN GESTIONE EMAIL CON TIPO = PERF PER EVITARE IL REINVIO MULTIPLO A SEGUITO DELLA RIATTIVAZIONE 
UPDATE C6MART.GESTIONE_EMAIL
SET TIPO = 'OLD'
FROM C6MART.Gestione_EMAIL EMAIL
	INNER JOIN C6MART.VCONTRATTI VC
	   ON VC.COD_FISCALE = EMAIL.COD_FISCALE
	   AND VC.rete = EMAIL.RETE
	   AND EMAIL.TIPO = 'PERF'
    INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI]  MC
       ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
       AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' 
       AND MC.Tip_riattivazione = 1


--1. INSERIMENTO MAIL DI "PERFEZIONAMENTO"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- NON PRESENTI SU GESTIONE_EMAIL

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione, ID_ELAB)
SELECT 
	VC.Rete,
	VC.Cod_Fiscale,
	'PERF' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.VCONTRATTI VC
INNER JOIN C6Mart.CONTRATTOSEI_METADATI MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6Mart.GESTIONE_EMAIL EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF'						
	AND EMAIL.Data_Generazione >= VC.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	--AND VC.InvioBenvenuto = 'N'
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf' AND
	Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - SollecitiNOMIG',GETDATE(),'Elaborazione giornaliera')

-- 2. INSERIMENTO MAIL "SOLLECITI"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE
-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT 
	VC.rete,
	VC.cod_fiscale,
	CASE 
		WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOMIG'
		WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOMIG'
		WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOMIG'
		ELSE 'S_SOLL_NOMIG'
	END as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6Mart.VCONTRATTI VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
--LEFT JOIN C6MART.GESTIONE_EMAIL EMAIL
--	ON VC.RETE = EMAIL.RETE
--	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
    --AND EMAIL.DATA_GENERAZIONE < getDate()
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE

WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' 
	AND VC.Data_FineAvanzato > getDate()
--	AND (EMAIL.COD_FISCALE IS NULL OR EMAIL.INVIATA = 'S')
	AND PF.RETE IS NULL
    AND VC.COD_FISCALE = 'TSSDNI82P44A984U'
		

-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
-- AUMENTIAMO IL NUMERO numSolleciti
-- AGGIORNIAMO LA DATA Data_UltimoSollecito

UPDATE 
	c6mart.[CONTRATTOSEI_METADATI]
SET 
	numSolleciti = isnull(numSolleciti,0) + 1,
	Data_UltimoSollecito = getDate()
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
	AND VC.COD_FISCALE = 'TSSDNI82P44A984U'
	
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG' AND Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - Mail Revoca',GETDATE(),'Elaborazione giornaliera')

-- 3. INSERIMENTO MAIL "REVOCA"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE DOPO @MaxInvioSoll SOLLECITI
-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.clienteMigrato = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
--		OVVERO: BUONA LA MIGRAZIONE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

INSERT INTO C6Mart.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT  
	email.rete,
	email.cod_fiscale,
	'REVOCA_NOMIG' as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB --max(Data_Generazione)
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN c6mart.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
    AND VC.COD_FISCALE = 'TSSDNI82P44A984U'
GROUP BY email.rete, email.cod_fiscale
		


-- 3.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
-- AUMENTIAMO IL NUMERO numSolleciti
-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

UPDATE c6mart.[CONTRATTOSEI_METADATI]
SET 
	numRevoche = isnull(numRevoche,0) + 1,
	data_UltimaRevoca = getDate()
FROM C6Mart.vcontratti VC
INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN c6mart.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
	AND VC.COD_FISCALE = 'TSSDNI82P44A984U'	

-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca' AND Inizio = (
		SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca')

COMMIT

END

GO
/****** Object:  StoredProcedure [C6Mart].[UT_INSERT_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Mart].[UT_INSERT_ERROR]
	@codiceErrore as int, 
    @descrizioErrore as text,
    @dataTime as datetime,
	@localeId as int,
    @descrizionePackage as text,
    @nomePackage as varchar(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    INSERT INTO [dbo].[GLOBAL_ERROR]
           ([Cancel]
           ,[ErrorCode]
           ,[ErrorDescription]
           ,[EventHandlerStartTime]
           ,[LocaleID]
           ,[Propagate]
           ,[SourceDescription]
           ,[SourceID]
           ,[SourceName]
           ,[Time])
     VALUES
           (null
           ,@codiceErrore 
           ,@descrizioErrore
           ,@dataTime
           ,@localeId
           ,null
           ,@descrizionePackage
           ,null
           ,@nomePackage
           ,@dataTime)
END

GO
/****** Object:  StoredProcedure [C6Mart].[Util_Test_PL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[Util_Test_PL]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT 'PL_S10PatrimonioFinanziario' 

	exec C6Mart.PL_S10PatrimonioFinanziario @Rete , @CodiceFiscale 

--select 1

	SELECT 'PL_S18PatrimonioFinanziarioRischio' 
--
--
	exec C6Mart.PL_S18PatrimonioFinanziarioRischio @Rete,@CodiceFiscale
--
	SELECT 'PL_S1Patrimonio' 
--
--
	exec C6Mart.PL_S1Patrimonio @Rete,@CodiceFiscale
--
--
	SELECT 'PL_S23DettaglioRischio' 

	exec C6Mart.PL_S23DettaglioRischio @Rete,@CodiceFiscale

	SELECT 'PL_S25Anagrafica' 

	exec C6Mart.PL_S25Anagrafica @Rete,@CodiceFiscale

	SELECT 'PL_S26PatrimonioImmobiliare' 

	exec C6Mart.PL_S26PatrimonioImmobiliare @Rete,@CodiceFiscale

	SELECT 'PL_S27ALtroPatrimonio' 

	exec C6Mart.PL_S27ALtroPatrimonio @Rete,@CodiceFiscale

	SELECT 'PL_S2PatrimonioFinanziario' 

	exec C6Mart.PL_S2PatrimonioFinanziario @Rete,@CodiceFiscale

	SELECT 'PL_S31PatrimonioFinanziarioIntermediario' 

	exec C6Mart.PL_S31PatrimonioFinanziarioIntermediario @Rete,@CodiceFiscale

	SELECT 'PL_S32PatrimonioFinanziarioMAssetClass' 

	exec C6Mart.PL_S32PatrimonioFinanziarioMAssetClass @Rete,@CodiceFiscale

	SELECT 'PL_S36ProfiloRischio' 

	exec C6Mart.PL_S36ProfiloRischio @Rete,@CodiceFiscale

	SELECT 'PL_S37PiramideModello' 

	exec C6Mart.PL_S37PiramideModello @Rete,@CodiceFiscale

	SELECT 'PL_S43DettaglioProdottiBF' 

	exec C6Mart.PL_S43DettaglioProdottiBF @Rete,@CodiceFiscale

	SELECT 'PL_S47ContoCorrenteBF' 

	exec C6Mart.PL_S47ContoCorrenteBF @Rete,@CodiceFiscale

	SELECT 'PL_S48DettaglioProdotti' 

	exec C6Mart.PL_S48DettaglioProdotti @Rete,@CodiceFiscale

	SELECT 'PL_S49PolizzeAltriIstituti' 

	exec C6Mart.PL_S49PolizzeAltriIstituti @Rete,@CodiceFiscale

	SELECT 'PL_S50FondiAltriIstituti' 

	exec C6Mart.PL_S50FondiAltriIstituti @Rete,@CodiceFiscale

	SELECT 'PL_S51ContoCorrenteAI' 

	exec C6Mart.PL_S51ContoCorrenteAI @Rete,@CodiceFiscale

	SELECT 'PL_S56PatrimonioBFAreeBisogno' 

	exec C6Mart.PL_S56PatrimonioBFAreeBisogno @Rete,@CodiceFiscale

	SELECT 'PL_S57ConfrontoPiramidi' 

	exec C6Mart.PL_S57ConfrontoPiramidi @Rete,@CodiceFiscale

	SELECT 'PL_S6PatrimonioFinanziario' 

	exec C6Mart.PL_S6PatrimonioFinanziario @Rete,@CodiceFiscale

	SELECT 'PL_S75GradoCopertura' 

	exec C6Mart.PL_S75GradoCopertura @Rete,@CodiceFiscale

	SELECT 'PL_S76PatrimonioNonRappresentabileAssettClass' 

	exec C6Mart.PL_S76PatrimonioNonRappresentabileAssettClass @Rete,@CodiceFiscale

END


GO
/****** Object:  StoredProcedure [C6Mart].[Verifica_Lancio_Giornaliero]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[Verifica_Lancio_Giornaliero]



AS
BEGIN

    declare @lancia_giornaliero as int
	--declare @data_inizio as datetime
	--select  max(inizio) from log_esecuzione
	--where nota like '%Elaborazione giornaliera%'
	
	if datediff(day,(select  max(inizio) from log_esecuzione where nota like '%Elaborazione giornaliera%'),getdate()) <= 0
 
	   begin
	   insert into LOG_ESECUZIONE values (
	   'C6Mart.Verifica_Lancio_Giornaliero',
	   GETDATE(),
	   GETDATE(),
	   'LANCIO DOPPIO',
	   1,'Errore elaborazione giornaliero')
	   
	   RAISERROR (50000,-1,-1, 'Lancio giornaliero');
		--set @lancia_giornaliero = 0
	   end
		
	--else
	
	--	begin
	--		insert into LOG_ESECUZIONE values (
	--		'C6Mart.Verifica_Lancio_Giornaliero',
	--		GETDATE(),GETDATE(),'LANCIO OK',1,'elaborazione giornaliero ok')
	--	end
		
	
    
END




GO
/****** Object:  StoredProcedure [C6Mart].[zzzPL_D_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
--         [C6Mart].[PL_D_S157ConfrontoPiramidi] 'F','CMRCST54E45B300G'
CREATE procedure [C6Mart].[zzzPL_D_S157ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MART.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			LEFT(ID_AREA,3) AS ID_AREA, 
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MART.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV')) -- AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')
		--V 
			DECLARE @TOTCC AS INT
			SELECT @TOTCC = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND TIPO_PRODOTTO = 'Cc'

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MART.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCC = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCC <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'jjn.c.' 
					
					--V SOLO CC -> VAR = 0
									




					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					WHEN @TOTCC = @TOT THEN NULL
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCC = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MART.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MART.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MART.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END





GO
/****** Object:  StoredProcedure [C6Mart].[zzzPL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Mart].[zzzPL_D_S170RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int

	select @contaCC = count(*)
	from C6MART.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from C6MART.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete



SELECT 
	K.COD_FISCALE,
	K.RETE,	
	K.CTV_AGGREG,
	K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,

CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END 
as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,

case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Banca Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,

b.max_var as var_profilo,

--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM  C6MART.RISCHIO_AGGREGATO K 
left outer JOIN C6MART.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
left outer join C6MART.CODIFICA_RISCHIO b 
	ON A.PROFILO_ASS=B.PROFILO

WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine


 

END 




GO
/****** Object:  StoredProcedure [C6Mart].[zzzPL_D2_S150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[zzzPL_D2_S150Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + isnull(CONTRATTOSEI.PROVINCIA,'') + ')','()','')
		END AS Residenza,
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_INZIOAVANZATO) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		null AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Provincia] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM         
		C6MART.VCONTRATTI AS CONTRATTOSEI -- TABELLA BASE
	INNER JOIN 
		C6MART.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MART.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MART.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MART.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END





GO
/****** Object:  StoredProcedure [C6Mart].[zzzPL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti]  'F','FF@7181'
CREATE procedure [C6Mart].[zzzPL_D2_S168TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END




GO
/****** Object:  StoredProcedure [C6Mart].[zzzQUALITY_CARATTERIVCONTRATTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6Mart].[zzzQUALITY_CARATTERIVCONTRATTI]
AS
BEGIN


declare @num int 
set @num = 1

CREATE TABLE #tab_temp(
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL)


set @num = 1
while @num < 150

begin	
	insert into #tab_temp
	SELECT ascii(substring(email,@num,1)),
		   substring(email,@num,1),
		   rete,
		   Cod_Fiscale,
		   'EMAIL',
		   email
	FROM C6Mart.vcontratti
	WHERE 
		ascii(substring(email,@num,len(email))) not between 64 and 90 
		and ascii(substring(email,@num,len(email))) not between 97 and 122
		and ascii(substring(email,@num,len(email))) not between 48 and 57
		and ascii(substring(email,@num,len(email))) <> 32
		and ascii(substring(email,@num,len(email))) <> 40
		and ascii(substring(email,@num,len(email))) <> 41
		and ascii(substring(email,@num,len(email))) <> 43
		and ascii(substring(email,@num,len(email))) <> 44
		and ascii(substring(email,@num,len(email))) <> 45
		and ascii(substring(email,@num,len(email))) <> 46
		and ascii(substring(email,@num,len(email))) <> 95
		and ascii(substring(email,@num,len(email))) <> 39
		and ascii(substring(email,@num,len(email))) <> 47
		and ascii(substring(email,@num,len(email))) <> 63
	set @num = @num + 1	
end	


set @num = 1
while @num < 150

begin	
		insert into #tab_temp
		SELECT ascii(substring(Indirizzo,@num,1)),
			   substring(Indirizzo,@num,1),
			   rete,
			   Cod_Fiscale,
			   'INDIRIZZO',
			   Indirizzo
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 64 and 90 
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 97 and 122
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 48 and 57
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 32
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 40
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 41
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 43
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 44
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 45
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 46
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 95
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 39
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 47
		and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 63
		set @num = @num + 1		
end	


set @num = 1
while @num < 150

begin	
		insert into #tab_temp
		SELECT ascii(substring(CAP,@num,1)),
			   substring(CAP,@num,1),
			   rete,
			   Cod_Fiscale,
			   'CAP',
			   CAP
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(CAP,@num,len(CAP))) not between 64 and 90 
		and ascii(substring(CAP,@num,len(CAP))) not between 97 and 122
		and ascii(substring(CAP,@num,len(CAP))) not between 48 and 57
		and ascii(substring(CAP,@num,len(CAP))) <> 32
		and ascii(substring(CAP,@num,len(CAP))) <> 40
		and ascii(substring(CAP,@num,len(CAP))) <> 41
		and ascii(substring(CAP,@num,len(CAP))) <> 43
		and ascii(substring(CAP,@num,len(CAP))) <> 44
		and ascii(substring(CAP,@num,len(CAP))) <> 45
		and ascii(substring(CAP,@num,len(CAP))) <> 46
		and ascii(substring(CAP,@num,len(CAP))) <> 95
		and ascii(substring(CAP,@num,len(CAP))) <> 39
		and ascii(substring(CAP,@num,len(CAP))) <> 47
		and ascii(substring(CAP,@num,len(CAP))) <> 63
		set @num = @num + 1		
end	


set @num = 1
while @num < 150

begin	
		insert into #tab_temp
		SELECT ascii(substring(Citta,@num,1)),
			   substring(Citta,@num,1),
			   rete,
			   Cod_Fiscale,
			   'Citta',
			   Citta
		FROM C6Mart.vcontratti
		WHERE 
			ascii(substring(Citta,@num,len(Citta))) not between 64 and 90 
		and ascii(substring(Citta,@num,len(Citta))) not between 97 and 122
		and ascii(substring(Citta,@num,len(Citta))) not between 48 and 57
		and ascii(substring(Citta,@num,len(Citta))) <> 32
		and ascii(substring(Citta,@num,len(Citta))) <> 40
		and ascii(substring(Citta,@num,len(Citta))) <> 41
		and ascii(substring(Citta,@num,len(Citta))) <> 43
		and ascii(substring(Citta,@num,len(Citta))) <> 44
		and ascii(substring(Citta,@num,len(Citta))) <> 45
		and ascii(substring(Citta,@num,len(Citta))) <> 46
		and ascii(substring(Citta,@num,len(Citta))) <> 95
		and ascii(substring(Citta,@num,len(Citta))) <> 39
		and ascii(substring(Citta,@num,len(Citta))) <> 47
		and ascii(substring(Citta,@num,len(Citta))) <> 63
		set @num = @num + 1		
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Provincia,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Provincia',
       Provincia
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Provincia,@num,len(Provincia))) not between 64 and 90 
and ascii(substring(Provincia,@num,len(Provincia))) not between 97 and 122
and ascii(substring(Provincia,@num,len(Provincia))) not between 48 and 57
and ascii(substring(Provincia,@num,len(Provincia))) <> 32
and ascii(substring(Provincia,@num,len(Provincia))) <> 40
and ascii(substring(Provincia,@num,len(Provincia))) <> 41
and ascii(substring(Provincia,@num,len(Provincia))) <> 43
and ascii(substring(Provincia,@num,len(Provincia))) <> 44
and ascii(substring(Provincia,@num,len(Provincia))) <> 45
and ascii(substring(Provincia,@num,len(Provincia))) <> 46
and ascii(substring(Provincia,@num,len(Provincia))) <> 95
and ascii(substring(Provincia,@num,len(Provincia))) <> 39
and ascii(substring(Provincia,@num,len(Provincia))) <> 47
and ascii(substring(Provincia,@num,len(Provincia))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nazione,@num,1)),
       substring(Nazione,@num,1),
       rete,
       Cod_Fiscale,
       'Nazione',
       Nazione
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Nazione,@num,len(Nazione))) not between 64 and 90 
and ascii(substring(Nazione,@num,len(Nazione))) not between 97 and 122
and ascii(substring(Nazione,@num,len(Nazione))) not between 48 and 57
and ascii(substring(Nazione,@num,len(Nazione))) <> 32
and ascii(substring(Nazione,@num,len(Nazione))) <> 40
and ascii(substring(Nazione,@num,len(Nazione))) <> 41
and ascii(substring(Nazione,@num,len(Nazione))) <> 43
and ascii(substring(Nazione,@num,len(Nazione))) <> 44
and ascii(substring(Nazione,@num,len(Nazione))) <> 45
and ascii(substring(Nazione,@num,len(Nazione))) <> 46
and ascii(substring(Nazione,@num,len(Nazione))) <> 95
and ascii(substring(Nazione,@num,len(Nazione))) <> 39
and ascii(substring(Nazione,@num,len(Nazione))) <> 47
and ascii(substring(Nazione,@num,len(Nazione))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Presso,@num,1)),
       substring(Presso,@num,1),
       rete,
       Cod_Fiscale,
       'Presso',
       Presso
FROM C6Mart.vcontratti
WHERE 
	ascii(substring(Presso,@num,len(Presso))) not between 64 and 90 
and ascii(substring(Presso,@num,len(Presso))) not between 97 and 122
and ascii(substring(Presso,@num,len(Presso))) not between 48 and 57
and ascii(substring(Presso,@num,len(Presso))) <> 32
and ascii(substring(Presso,@num,len(Presso))) <> 40
and ascii(substring(Presso,@num,len(Presso))) <> 41
and ascii(substring(Presso,@num,len(Presso))) <> 43
and ascii(substring(Presso,@num,len(Presso))) <> 44
and ascii(substring(Presso,@num,len(Presso))) <> 45
and ascii(substring(Presso,@num,len(Presso))) <> 46
and ascii(substring(Presso,@num,len(Presso))) <> 95
and ascii(substring(Presso,@num,len(Presso))) <> 39
and ascii(substring(Presso,@num,len(Presso))) <> 47
and ascii(substring(Presso,@num,len(Presso))) <> 63


set @num = @num + 1	
	
end	





 select * from #tab_temp a
--inner join c6mart.gestione_pdf_ftp b on a.rete=b.rete and a.cod_fiscale=b.codicefiscale 
--where flaginvio = 'N'
 


END
GO
/****** Object:  StoredProcedure [C6Mart].[zzzRP_DM_GestioneEmailNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <17/11/2008,,>
-- Description:	<Popola la tabella email con i clienti a cui deve essere inviato il report con risorse non associate,,>
-- =============================================
CREATE procedure [C6Mart].[zzzRP_DM_GestioneEmailNA]
AS
BEGIN

--INSERT INTO C6MART.LogVcontrattiseiAnd  
--	select getdate()as dtstamp,*  from c6mart.vcontrattisei where cod_fiscale + rete in (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)		 

--EXECUTE C6Mart.RP_DM_GestioneEmailNA_AND


BEGIN TRANSACTION	

DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)--7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)--12
SET @ID_ELAB = C6MART.GETIDELAB()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'RP_DM_GestioneEmailNA',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 1. INSERIMENTO MAIL "SOLLECITI"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ASSOCIAZIONE DELLE RISORSE
	-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF
		
	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		VC.rete,
		VC.cod_fiscale,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOASS'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOASS'
			ELSE 'S_SOLL_NOASS'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		AND VC.COD_FISCALE + VC.RETE NOT IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 1.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- AGGIORNIAMO LA DATA Data_UltimoSollecito

	UPDATE 
		c6mart.CONTRATTOSEI_METADATI
	SET 
		numSolleciti = isnull(numSolleciti,0) + 1,
		Data_UltimoSollecito = getDate()
	FROM C6Mart.vcontratti VC
	INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		AND VC.COD_FISCALE + VC.RETE NOT IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 2. INSERIMENTO MAIL "REVOCA"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ASSOCIAZIONE DELLE RISORSE DOPO @MaxInvioSoll SOLLECITI
	-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.risorseNA = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
	--		OVVERO: BUONA L'ASSOCIAZIONE DELLE RISORSE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

	INSERT INTO C6Mart.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOASS' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB --max(Data_Generazione)
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		AND VC.COD_FISCALE + VC.RETE NOT IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
	GROUP BY email.rete, email.cod_fiscale
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
	-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

	UPDATE c6mart.[CONTRATTOSEI_METADATI]
	SET 
		numRevoche = isnull(numRevoche,0) + 1,
		data_UltimaRevoca = getDate()
	FROM C6Mart.vcontratti VC
		INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN c6mart.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		AND VC.COD_FISCALE + VC.RETE NOT IN (SELECT COD_FISCALE+RETE FROM C6MART.TestEmailAnd)
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

COMMIT

END

GO
/****** Object:  StoredProcedure [C6Mart].[zzzSRV_CHECK_C6_GIORNALIERO_AND]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Nobili,,Andrea>
-- Create date: <Create Date,,>
-- Description:	<Email Log Giornaliero>
-- =============================================
CREATE procedure [C6Mart].[zzzSRV_CHECK_C6_GIORNALIERO_AND]
AS
BEGIN
	SET NOCOUNT ON;



	 
SELECT DISTINCT * INTO #TEST_QUALITY FROM (

SELECT *,12 AS ISLOG FROM C6MART.TEST_QUALITY

UNION

SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'Cliente con VaR discordante '+ convert(varchar,RA.VAR_PERC_PTF) + ' ' + convert(varchar,VC.VAR_COMPLESSIVO_BF) AS MOTIVO,0
FROM
	C6Mart.RISCHIO_AGGREGATO AS RA
	INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
		ON RA.RETE = VC.RETE
		AND RA.COD_FISCALE = VC.COD_FISCALE
WHERE
	RA.COD_AGGREG = 'COMPLESSIVO|BF'
	AND ABS(RA.VAR_PERC_PTF - VC.VAR_COMPLESSIVO_BF) > 0.02
	AND (VC.FiduMulitMand = 'N')

UNION
	
SELECT DISTINCT RETE,COD_FISCALE,'Indirizzo più lunghi di 36 caratteri' AS MOTIVO,6	 
FROM C6Mart.vcontrattisei 
WHERE	data_fineavanzato > GETDATE() 
		AND isnull(numrevoche,0) = 0
		AND inviobenvenuto = 'N'
		AND LEN(Indirizzo) > 36 		

UNION
 
 SELECT DISTINCT RETE,CODICEFISCALE			    
	,'Prodotto non a catalogo ' + isnull(codiceContratto,'') +', '+  ltrim(rtrim(isnull(codiceinterno,''))) + '/'+ ltrim(rtrim(isnull(codicesottoprodotto,''))) + '/'+ ltrim(rtrim(isnull(codicemaf,''))) + '/'+ ltrim(rtrim(isnull(isin,'')))  As motivo  ,7 
FROM C6Staging.SPB_CONTR_SINTESI WHERE POSITIONID IS NULL



UNION
  
SELECT DISTINCT CM.Rete,CM.Cod_Fiscale,'Cliente senza righe Contratto Sintesi' AS MOTIVO,8 
FROM  C6Mart.RP_VContrattiMigrati CM
LEFT JOIN C6Staging.SPB_CONTR_SINTESI CS
ON CM.Cod_Fiscale = CS.CODICEFISCALE AND CM.RETE = CS.RETE
WHERE CS.CODICEFISCALE IS NULL

UNION

SELECT DISTINCT PB.RETE,PB.COD_FISCALE,'Cliente senza data sottoscrizione ' + dbo.toShortDateString(PB.ID_CONTRATTO)  AS MOTIVO,9		 
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6Mart.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

		
UNION

SELECT DISTINCT VC.Rete,VC.Cod_Fiscale,'Cliente senza piramide modello' AS MOTIVO,10
FROM C6Mart.vcontrattiSEI VC
	 LEFT JOIN C6Mart.PIRAMIDE_MOD PM
	 ON VC.Cod_Fiscale=PM.Cod_Fiscale AND VC.RETE=PM.RETE
WHERE	 
	VC.Data_FineAvanzato > getDate()
	AND VC.inviobenvenuto = 'N'
	AND VC.clientemigrato = 'S'
	AND VC.risorseNA = 'N'
	AND VC.profiloAttivo = 1
	AND DATEDIFF(d, VC.Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
	AND ISNULL(VC.NUMREVOCHE,0) = 0
	AND PM.Cod_Fiscale IS NULL
 
UNION
 
SELECT DISTINCT CM.RETE,CM.Cod_Fiscale,'Cliente senza righe profilo MIFID' AS MOTIVO,11
FROM  C6Mart.RP_VContrattiMigrati CM
LEFT JOIN  C6Staging.SPB_MIFID MD
ON CM.Cod_Fiscale = MD.CODICEFISCALE AND CM.RETE = MD.RETE
WHERE MD.CODICEFISCALE IS NULL


	 
) T

INSERT INTO #TEST_QUALITY
SELECT DISTINCT VC.RETE,VC.COD_FISCALE,'Cliente con VaR discordante '+ convert(varchar,RA.VAR_PERC_PTF) + ' ' + convert(varchar,VC.VAR_COMPLESSIVO_BF) + CASE  WHEN VC.FiduMulitMand = 'S' THEN ' FiduMulitMand' ELSE ' ' END AS MOTIVO,5
FROM
	C6Mart.RISCHIO_AGGREGATO AS RA
	INNER JOIN C6staging.VAR_ADEGUATEZZA AS VC
		ON RA.RETE = VC.RETE
		AND RA.COD_FISCALE = VC.COD_FISCALE
WHERE
	RA.COD_AGGREG = 'COMPLESSIVO|BF'
	AND ABS(RA.VAR_PERC_PTF - VC.VAR_COMPLESSIVO_BF) <> 0.00	 
	
INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in EMAIL' AS MOTIVO,12
FROM C6Mart.vcontratti WHERE  [C6Mart].[CARATTERINONVALIDI](email) = 'S' and data_fineavanzato > getdate()  
		
INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in INDIRIZZO' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Indirizzo) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in CAP' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](CAP) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Citta' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Citta) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Provincia' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Provincia) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Nazione' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Nazione) = 'S' and data_fineavanzato > getdate()

INSERT INTO #TEST_QUALITY
SELECT DISTINCT RETE,Cod_Fiscale,'Caratteri non validi in Presso' AS MOTIVO,13
FROM C6Mart.vcontratti	WHERE [C6Mart].[CARATTERINONVALIDI](Presso) = 'S' and data_fineavanzato > getdate()
			  

 

	SELECT
	    Tipo
		,CASE Tipo
			WHEN 'PERF' THEN 'Perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1&ordm sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2&ordm sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3&ordm sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'pi&ugrave di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1&ordm sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2&ordm sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3&ordm sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'pi&ugrave di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			WHEN '1_SOLL_NOPRO' THEN '1&ordm sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2&ordm sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3&ordm sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'pi&ugrave di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
		END AS DescTipo
		,CASE Tipo
			WHEN 'PERF' THEN 1
			WHEN '1_SOLL_NOMIG' THEN 2
			WHEN '2_SOLL_NOMIG' THEN 3
			WHEN '3_SOLL_NOMIG' THEN 4
			WHEN 'S_SOLL_NOMIG' THEN 5
			WHEN 'REVOCA_NOMIG' THEN 6
			WHEN '1_SOLL_NOASS' THEN 7
			WHEN '2_SOLL_NOASS' THEN 8
			WHEN '3_SOLL_NOASS' THEN 9
			WHEN 'S_SOLL_NOASS' THEN 10
			WHEN 'REVOCA_NOASS' THEN 11			
			WHEN '1_SOLL_NOPRO' THEN 12
			WHEN '2_SOLL_NOPRO' THEN 13
			WHEN '3_SOLL_NOPRO' THEN 14
			WHEN 'S_SOLL_NOPRO' THEN 15
			WHEN 'REVOCA_NOPRO' THEN 16
		END AS Ordine
		,COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM C6Mart.GESTIONE_EMAIL
	WHERE Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
		 --AND  Data_Invio  > '20140320' and Data_Invio < '20140321'  
	GROUP BY Tipo	
	
	
	SELECT   C.rete
			,C.Cod_fiscale
			,C.cod_Agente
			,case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(C.cod_fiscale,4,6) else C.Cod_Fiscale end as cliente
			,C.data_perf
			,Tipo
			,C.ClienteMIGRATO
			,C.RISORSENA
			,C.PROFILOATTIVO
			,row_number() over (partition by  C.rete,C.Cod_fiscale ORDER BY CASE Tipo
																				WHEN 'PERF' THEN 1
																				WHEN '1_SOLL_NOMIG' THEN 2
																				WHEN '2_SOLL_NOMIG' THEN 3
																				WHEN '3_SOLL_NOMIG' THEN 4
																				WHEN 'S_SOLL_NOMIG' THEN 5
																				WHEN 'REVOCA_NOMIG' THEN 6
																				WHEN '1_SOLL_NOASS' THEN 7
																				WHEN '2_SOLL_NOASS' THEN 8
																				WHEN '3_SOLL_NOASS' THEN 9
																				WHEN 'S_SOLL_NOASS' THEN 10
																				WHEN 'REVOCA_NOASS' THEN 11			
																				WHEN '1_SOLL_NOPRO' THEN 12
																				WHEN '2_SOLL_NOPRO' THEN 13
																				WHEN '3_SOLL_NOPRO' THEN 14
																				WHEN 'S_SOLL_NOPRO' THEN 15
																				WHEN 'REVOCA_NOPRO' THEN 16
																				END)  as duplicato
	 INTO #EmailInviateDett
	 FROM C6Mart.GESTIONE_EMAIL E INNER JOIN C6MART.VCONTRATTISEI C
	 ON E.COD_FISCALE = C.COD_FISCALE AND E.RETE=C.RETE 
	 WHERE Inviata = 'S' 
	    AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	    --AND  Data_Invio  > '20140320' and Data_Invio < '20140321' 
	   
	   
	 SELECT  C.rete
			,C.Cod_fiscale
			,C.cod_Agente
			,case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(C.cod_fiscale,4,6) else C.Cod_Fiscale end as cliente
			,C.data_perf
			,'NoInviate' AS Tipo
			,C.ClienteMIGRATO
			,C.RISORSENA
			,C.PROFILOATTIVO
			,row_number() over (partition by  C.rete,C.Cod_fiscale ORDER BY TIPO)  as duplicato
	  INTO #EmailNoInviateDett
	   FROM C6Mart.GESTIONE_EMAIL E INNER JOIN C6MART.VCONTRATTISEI C
	 ON E.COD_FISCALE = C.COD_FISCALE AND E.RETE=C.RETE 
	 WHERE Data_Invio is null
	       AND dbo.toShortDateString(Data_generazione) = dbo.toShortDateString(GETDATE())
		  
	 
	DECLARE @EMAILNOINVIATE  AS INT
	SELECT  @EMAILNOINVIATE = ISnull(COUNT(*),0) FROM  #EmailNoInviateDett
	IF @EMAILNOINVIATE > 0	
	begin
		 INSERT INTO #EmailInviate VALUES ('NoInviate','Email non inviate',17,@EMAILNOINVIATE)
		 INSERT INTO #EmailInviateDett SELECT * FROM #EmailNoInviateDett
	end	
		
SELECT
		C.Rete,
		C.Cod_fiscale,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(C.cod_fiscale,4,6) else C.Cod_Fiscale end as cliente,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6Mart.GESTIONE_PDF_FTP AS GPF
		INNER JOIN C6Mart.VCONTRATTI AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  C.chiaveclientepb = M.chiaveclientepb
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()


SElECT DISTINCT  
	 V.COD_FISCALE
	,V.RETE
	,V.COD_AGENTE
	,V.piva_fiduciaria 
	,V.DATA_PERF
	,V.ClienteMigrato
	,V.RisorseNA
	,V.profiloAttivo
	,V.Data_UltimaRevoca 
	,CASE  WHEN Q.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END AS TestQuality
	,CASE  WHEN DATEDIFF(d, DATA_PERF, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)  THEN 'S' ELSE 'N' END AS FinePerf
	,InvioBenvenuto as Generato
INTO #TuttiReport		 
FROM C6MART.VCONTRATTISEI V
LEFT JOIN #TEST_QUALITY Q
	ON V.COD_FISCALE = Q.COD_FISCALE AND V.RETE = Q.RETE
WHERE 1=1
AND V.INVIOBENVENUTO = 'N'  
AND DATA_FINEAVANZATO > getDate()


SELECT *
, 'n.ro giorni trascorsi dal perfezionamento: ' + CONVERT(VARCHAR,DATEDIFF(d,DATA_PERF, GETDATE())) AS Motivo
,CASE when Cod_Fiscale  like '%@%' then  piva_fiduciaria + '  ' + substring( cod_fiscale,4,6) else  Cod_Fiscale end as CLIENTE	 
INTO #ReportNonGenerati 
FROM  #TuttiReport WHERE(FINEPERF = 'S') OR (FINEPERF = 'N' AND TestQuality = 'S')

SELECT 	 
	  Q.RETE	
	 ,Q.COD_FISCALE	 	
	 ,Q.MOTIVO 
	 ,CASE  WHEN Q.COD_FISCALE IS NULL THEN 'N' ELSE 'S' END AS TestQuality
	 ,CASE  WHEN DATEDIFF(d, DATA_PERF, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)  THEN 'S' ELSE 'N' END AS FinePerf
	 ,InvioBenvenuto as Generato
	 ,Q.ISLOG		 
INTO #DettReport
FROM #TEST_QUALITY  Q   
INNER JOIN C6MART.VCONTRATTISEI V
	ON V.COD_FISCALE = Q.COD_FISCALE AND V.RETE = Q.RETE
	WHERE ISLOG > 0
UNION
SELECT  rete,COD_FISCALE,'In attesa di gestione Revoca 'AS MOTIVO,TestQuality,FinePerf, Generato,1 as ISLOG from #ReportNonGenerati WHERE Data_UltimaRevoca IS NOT NULL	
UNION	
SELECT  rete,COD_FISCALE,'Cliente non migrato ' AS MOTIVO,TestQuality,FinePerf,Generato,2 as ISLOG from #ReportNonGenerati WHERE isnull(ClienteMigrato,'N') = 'N'
UNION
SELECT  rete,COD_FISCALE,'Risorse non associate ' AS MOTIVO,TestQuality,FinePerf,Generato,3 as ISLOG  from #ReportNonGenerati WHERE isnull(RisorseNA,'S') = 'S'
UNION
SELECT  rete,COD_FISCALE,'Profilo non attivo ' AS MOTIVO,TestQuality,FinePerf,Generato,4 as ISLOG  from #ReportNonGenerati WHERE isnull(profiloAttivo,0) = 0
 

 
--  SELECT * FROM  #EmailInviateDett
--  SELECT * FROM   #EmailInviate 
--	SELECT * FROM #TEST_QUALITY
--	SELECT * FROM #TuttiReport where cod_fiscale = 'VCCGPP46D06F205X'
--	SELECT * FROM #ReportGenerati where cod_fiscale = 'VCCGPP46D06F205X'
--	SELECT * FROM #ReportNonGenerati  where cod_fiscale = 'VCCGPP46D06F205X'  
--	SELECT * FROM #DettReport where cod_fiscale = 'VCCGPP46D06F205X'  
--	SELECT * FROM #EmailInviate
DECLARE @testoMail0 VARCHAR(MAX)
DECLARE @testoMail1 VARCHAR(MAX)
DECLARE @testoMail2 VARCHAR(MAX)
DECLARE @testoMail3 VARCHAR(MAX)
DECLARE @testoMail4 VARCHAR(MAX)


DECLARE @rete CHAR(1)
DECLARE @cod_fiscale CHAR(16)
DECLARE @codiceAgente VARCHAR(6)
DECLARE @cliente VARCHAR(25)
DECLARE @data DATETIME
DECLARE @Motivo VARCHAR(100)
DECLARE @testQuality CHAR(1)
DECLARE @FinePerf CHAR(1)	
DECLARE @totale INT
 -- [C6Mart].[SRV_CHECK_C6_GIORNALIERO_AND]
set @testoMail0 = '<HTML><HEAD></HEAD><TITLE></TITLE><BODY><table><tr><td width=300><h2><b>Rapporto giornaliero</b></h2></td></tr></table>'
set @testoMail1 = '<HTML><HEAD></HEAD><TITLE></TITLE><SCRIPT type="text/javascript">var _email="chiuso";var _rngn="chiuso";var _rngs="chiuso";var cmd="";var menu="";function ac(item){var menu=item;if(item == "22N" && _email == "chiuso"){cmd=_email;_email="aperto";}else if(item=="22N" && _email=="aperto"){cmd=_email;_email="tutto";}else if(item=="22N" && _email=="tutto"){cmd=_email;_email="chiuso";}else if(item=="00N" && _rngn=="chiuso"){cmd=_rngn;_rngn="aperto";}else if(item=="00N" && _rngn=="aperto"){cmd=_rngn;_rngn="tutto";}else if(item == "00N" && _rngn == "tutto"){cmd=_rngn;_rngn="chiuso";}else if(item == "00S" && _rngs == "chiuso"){cmd=_rngs;_rngs="aperto";}else if(item == "00S" && _rngs == "aperto"){cmd=_rngs;_rngs="tutto";}else if(item == "00S" && _rngs == "tutto"){cmd=_rngs;_rngs="chiuso";}else{var padre=document.getElementById(item);if(padre.style.display=="block"){cmd="chiuditutto";}else{cmd="apritutto";}}var divs=document.getElementsByTagName("table");for(i=0;i<divs.length;i++)'
				+ 'if(cmd=="apritutto" && item==divs[i].id.substr(0,item.length)) divs[i].style.display="block";else if(cmd=="chiuditutto" && item==divs[i].id.substr(0,item.length))divs[i].style.display="none";else{if(menu==divs[i].id.substr(0,3))divs[i].style.display="none";if(cmd=="chiuso" && menu == divs[i].id)divs[i].style.display="block";if(cmd=="aperto" && menu==divs[i].id.substr(0,3))divs[i].style.display="block";}}'
				+ 'function carica(){divs=document.getElementsByTagName("table");for(i=0;i<divs.length;i++){if(divs[i].id!="111"){divs[i].style.display="none";}if(divs[i].id.length==3 || divs[i].style.color!=""){divs[i].onmouseout=function(){document.body.style.cursor="default";};divs[i].onmouseover=function(){document.body.style.cursor="pointer";};}else{divs[i].style.color="#778899";}if(divs[i].id.substr(0,3)== "00G" && divs[i].style.color=="red"){document.getElementById("warning00G").style.display="block";}if(divs[i].id.substr(0,3)== "22N" && divs[i].style.color=="red"){document.getElementById("warning22N").style.display="block";}}}</SCRIPT><body onload="carica();">';

SET @testoMail2 = ''
SET @testoMail3 = ''
SET @testoMail4 = '' 
SET @totale = 0  
--*********************************************************************************
--*********************************************************************************
--*********************************************************************************
    SET @totale = 0
	SELECT @totale = isnull(sum(totale),0) FROM #EmailInviate
	SET @testoMail1 = @testoMail1 + '<br><br><table id="111"><tr onclick="ac(''22N'')"><td><b>E-mail inviate</b></td><td><div id= "warning22N" STYLE="vertical-align:middle;font-size:9px;color:red;display:none">warning</div></td></tr>'
	DECLARE @tipoEmail VARCHAR(100)
	DECLARE @DescTipo VARCHAR(100)
	DECLARE @totaleEmail VARCHAR(100)	
	DECLARE @ClienteMIGRATO VARCHAR(1)
	DECLARE @RISORSENA  VARCHAR(1)
	DECLARE @PROFILOATTIVO INT
	DECLARE @DUPLICATO INT
		
	DECLARE reader CURSOR FOR SELECT DescTipo,convert(varchar,totale),tipo FROM #EmailInviate ORDER BY Ordine
	OPEN reader
	FETCH NEXT FROM reader INTO   @DescTipo, @totaleEmail,@tipoEmail
	WHILE @@FETCH_STATUS = 0
	BEGIN 
	    SET @testoMail1 = @testoMail1 +'<tr><table id="22N"><tr onclick="ac(''22N'+@tipoEmail+''')"><td width=300>'+@DescTipo+'</td><td width=100>'+@totaleEmail+'</td></tr></table></tr><!--[TY'+@tipoEmail+']-->'		 
		FETCH NEXT FROM reader INTO  @DescTipo, @totaleEmail,@tipoEmail
	END	
	SET @testoMail1 = @testoMail1 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + '</b></td></tr></table>'
	CLOSE reader
	DEALLOCATE reader
	 
	DECLARE reader CURSOR FOR SELECT  rete,Cod_fiscale,  cod_Agente, cliente, data_perf,tipo,ClienteMIGRATO,RISORSENA ,PROFILOATTIVO,DUPLICATO FROM #EmailInviateDett  order by  DUPLICATO asc
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,  @Cod_Fiscale,  @codiceAgente , @cliente, @data,@tipoEmail,@ClienteMIGRATO,@RISORSENA ,@PROFILOATTIVO,@DUPLICATO
	WHILE @@FETCH_STATUS = 0
	BEGIN
	    SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TY'+@tipoEmail+']-->','<!--[TY'+@tipoEmail+']-->'+'<tr><table style="color:'+(CASE WHEN @DUPLICATO <> 1 OR @tipoEmail = 'NoInviate' THEN 'red' ELSE 'black' END)+';" ID="22N'+@tipoEmail+'" ><tr onclick="ac(''22N'+@tipoEmail+@cod_fiscale+@rete +''')"><td width=80></td><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td>' +(CASE WHEN @DUPLICATO <> 1 THEN '<td>' + CONVERT(VARCHAR,@DUPLICATO) + '&ordm  email inviata</td>'  ELSE '' END)+ '</tr></table></tr><!--[TQ'+@tipoEmail+@cod_fiscale+@rete+']-->');
	    IF @DUPLICATO = 1 AND  @tipoEmail <> 'NoInviate'
	    BEGIN
			IF @PROFILOATTIVO <> 1  
				SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'"><tr><td width=150></td><td>Profilo non attivo </td></table></tr>');
			IF @RISORSENA <> 'N'  
				SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'"><tr><td width=150></td><td>Risorse non associate </td></table></tr>');
			IF @ClienteMIGRATO <> 'S'  
				SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'"><tr><td width=150></td><td>Cliente non migrato </td></table></tr>');
			IF  @PROFILOATTIVO  =  1 AND @RISORSENA = 'N' AND @ClienteMIGRATO = 'S' AND @tipoEmail <> 'PERF'  
				SET @testoMail1 =  REPLACE(@testoMail1,'<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@tipoEmail+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="22N'+@tipoEmail+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=150></td><td>Invio Email Errata</td></table></tr>');
		END 
		FETCH NEXT FROM reader INTO @rete,  @Cod_Fiscale,  @codiceAgente , @cliente, @data,@tipoEmail,@ClienteMIGRATO,@RISORSENA ,@PROFILOATTIVO,@DUPLICATO
	END	
	CLOSE reader
	DEALLOCATE reader
--*********************************************************************************
--*********************************************************************************
--*********************************************************************************
	SET @totale = 0
	SELECT @totale = COUNT(*)  FROM #ReportGenerati
	SET @testoMail2 = @testoMail2 + '<br><br><table id="111"><tr onclick="ac(''00G'')"><td><b>Report generati</b></td><td><div id= "warning00G" STYLE="vertical-align:middle;font-size:9px;color:red;display:none">warning</div></td></tr>'
	DECLARE reader CURSOR FOR SELECT  rete,Cod_fiscale,  cod_Agente, cliente, data_perf FROM #ReportGenerati ORDER BY DATA_PERF 	 		 
	OPEN reader
	FETCH NEXT FROM reader INTO  @rete,@Cod_fiscale,  @codiceAgente, @cliente, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		SET @testoMail2 = @testoMail2 +'<tr><table id="00G"><tr><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td><td width=300></td></tr></table></tr><!--[TQ'+@cod_fiscale+@rete+']-->'		 
		FETCH NEXT FROM reader INTO  @rete,@Cod_fiscale,  @codiceAgente, @cliente, @data
	END	
	SET @testoMail2 = @testoMail2 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + '</b></td></tr></table>'
	SET @testoMail0 = @testoMail0 + '<table><tr><td width=300>Report generati</td><td>'+CAST(@totale AS VARCHAR)+'</td></tr></table>'   
	CLOSE reader            
	DEALLOCATE reader
--*********************************************************************************
--*********************************************************************************
--*********************************************************************************
	SET @totale = 0
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati WHERE FINEPERF = 'S'
	SET @testoMail3 = @testoMail3 + '<br><br><table id="111"><tr onclick="ac(''00S'')"><td><b>Report non generati</b></td></tr>'
	DECLARE reader CURSOR FOR SELECT   rete, cod_fiscale, cod_Agente, cliente, data_perf, Motivo,testQuality  FROM #ReportNonGenerati WHERE FINEPERF = 'S' ORDER BY DATA_PERF 	 		 
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		SET @testoMail3 = @testoMail3 +'<tr><table id="00S" onclick="ac(''00S'+ @cod_fiscale+@rete +''')"><tr><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td><td width=300>'+@Motivo+'</td></tr></table></tr><!--[TQ'+@cod_fiscale+@rete+']-->'		 
		FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	END	
	SET @testoMail3 = @testoMail3 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + '</b></td></tr></table>'
	SET @testoMail0 = @testoMail0 +  '<table><tr><td width=300>Report non generati</td><td>'+CAST(@totale AS VARCHAR)+'</td></tr></table>'
	CLOSE reader   
	DEALLOCATE reader   
----*********************************************************************************
----*********************************************************************************
----*********************************************************************************
	SET @totale = 0
	DECLARE @totale2 INT 
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati WHERE FINEPERF = 'N' AND TestQuality = 'S'
	SELECT @totale2 = COUNT(*) FROM #TuttiReport WHERE FINEPERF = 'N' 
	SET @testoMail4 = @testoMail4 + '<br><br><table id="111"><tr onclick="ac(''00N'')"><td><b>Report errati in Perfezionamento</b></td></tr>'
	DECLARE reader CURSOR FOR SELECT  rete, cod_fiscale, cod_Agente, cliente, data_perf, Motivo,testQuality FROM #ReportNonGenerati WHERE FINEPERF = 'N' AND TestQuality = 'S' ORDER BY DATA_PERF 	 		 
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	WHILE @@FETCH_STATUS = 0
	BEGIN 
		SET @testoMail4 = @testoMail4 +'<tr><table id="00N" onclick="ac(''00N'+ @cod_fiscale+@rete +''')"><tr><td width=80>'+@rete+'</td><td width=100>'+@codiceAgente+'</td><td width=200>'+@cliente+'</td><td width=100>'+dbo.toShortDateString(@data)+'</td><td width=300>'+@Motivo+'</td></tr></table></tr><!--[TQ'+@cod_fiscale+@rete+']-->'		 
		FETCH NEXT FROM reader INTO @rete, @cod_fiscale, @codiceAgente, @cliente, @data, @Motivo,@testQuality
	END	
	SET @testoMail4 = @testoMail4 + '<tr><td><b>Totale: ' + CAST(@totale AS VARCHAR) + ' su ' + CAST(@totale2 AS VARCHAR) + '</b></td></tr></table>'
	SET @testoMail0 = @testoMail0 + '<table><tr><td width=300>Report errati in Perfezionamento</td><td>'+ CAST(@totale AS VARCHAR) + ' su ' + CAST(@totale2 AS VARCHAR) +'</td></tr></table>'
	CLOSE reader          
	DEALLOCATE reader
----*********************************************************************************
----*********************************************************************************
----*********************************************************************************
	DECLARE reader CURSOR FOR SELECT Rete,Cod_Fiscale,Motivo,TestQuality,CASE WHEN generato ='S' THEN 'G' ELSE FinePerf END FinePerf FROM #DettReport order by ISLOG desc 
	OPEN reader
	FETCH NEXT FROM reader INTO @rete,  @Cod_Fiscale,  @Motivo , @testQuality, @FinePerf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail2 =  REPLACE(@testoMail2,'<!--[TQ'+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="00'+@FinePerf+@cod_fiscale+@rete+'" style="color:red;"><tr><td width=100></td><td>'+@Motivo+'</td></table></tr>');
		SET @testoMail3 =  REPLACE(@testoMail3,'<!--[TQ'+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="00'+@FinePerf+@cod_fiscale+@rete+'"><tr><td width=100></td><td>'+@Motivo+'</td></table></tr>');
		SET @testoMail4 =  REPLACE(@testoMail4,'<!--[TQ'+@Cod_Fiscale+@rete+']-->','<!--[TQ'+@Cod_Fiscale+@rete+']-->'+'<tr><table ID="00'+@FinePerf+@cod_fiscale+@rete+'"><tr><td width=100></td><td>'+@Motivo+'</td></table></tr>');
		FETCH NEXT FROM reader INTO @rete, @Cod_Fiscale, @Motivo, @testQuality, @FinePerf
	END	
	CLOSE reader
	DEALLOCATE reader	
----*********************************************************************************
----*********************************************************************************
----*********************************************************************************
SET @testoMail0 = @testoMail0 + '<br><br>In allegato dettaglio del Giornaliero</BODY></HTML>'
DROP TABLE #TEST_QUALITY
DROP TABLE #EmailInviate
DROP TABLE #EmailInviateDett
DROP TABLE #TuttiReport
DROP TABLE #ReportNonGenerati
DROP TABLE #DettReport
DROP TABLE #ReportGenerati
SELECT @testoMail0,@testoMail1,@testoMail2,@testoMail3,@testoMail4,'</body></html>'
 
 
 
END
GO
/****** Object:  StoredProcedure [C6Mart].[zzzzPL_D_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure



-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_D_S157ConfrontoPiramidi] 'S','CSLMCR54P48H501U'
-- CHIEDERE A FABRIZIO, case @TOTControvaloreModello when 0 ....
CREATE procedure [C6Mart].[zzzzPL_D_S157ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

--	DECLARE @minGradoCoperura AS INT
--	SET @minGradoCoperura = CAST(dbo.getParametro('MINGRADOCOPERTURA') AS INT)
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
    (SELECT PIRAMIDE_MOD.RETE, 
	     	PIRAMIDE_MOD.COD_FISCALE, 	
		    PIRAMIDE_MOD.ID_AREA,
		    SUM(PIRAMIDE_MOD.PERC_AREA) AS PERC_AREA
     FROM C6MART.PIRAMIDE_MOD
     WHERE 
        PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC', 'INV' )
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
     GROUP BY PIRAMIDE_MOD.RETE, 
	       PIRAMIDE_MOD.COD_FISCALE, 	
		   PIRAMIDE_MOD.ID_AREA) AS PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
		SELECT 
		RETE, 
		COD_FISCALE, 
		LEFT(ID_AREA,3) AS ID_AREA, 
		SUM(COALESCE(CTV,0)) AS CTV_AREA		
		FROM 
			C6MART.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (
                PIRAMIDE_MOD.ID_AREA = 'INV' 
   --             AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL
                ))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale

	IF(@@ROWCOUNT>0)

		BEGIN

			-- Ordinamento per Area di bisogno
			DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

			SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')

				
			--V 
			DECLARE @TOTCC DECIMAL (20,2)
			SELECT @TOTCC = ISNULL(CONTROVALORE,0)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'Cc'

			--V 
--			DECLARE @TOTNA DECIMAL (20,2)
--			SELECT @TOTCC = ISNULL(CONTROVALORE,0)
--			FROM #PIRAMIDE_VERT ATTUALE
--			WHERE ATTUALE.RETE = @Rete
--				AND ATTUALE.COD_FISCALE = @CodiceFiscale
--				AND ID_AREA = 'Na'

			--V 
			DECLARE @TOT DECIMAL (20,2)
			SELECT @TOT = SUM(ISNULL(CONTROVALORE,0))
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
				

			SELECT 
				AREA_BISOGNO.ID_AREA AS NeedArea,
				AREA_BISOGNO.NOME_AREA AS AreaName,
				ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
				CASE 
					WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
				END AS PercentualeAttuale,
				ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
				ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
				ATTUALE.PERC_AREA AS Totale_Percentuale,
				ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
				-- V D S
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
				--
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
				CASE
					WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS var_needareaString,
				ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
				CASE 
					WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS copertura_needareaString,
				0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
				ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
				ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
				0.00 AS somma_percentualeAttuale,
				0.00 AS somma_percentualeModello,
				--V
				CASE
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					--V SOLO CC -> VAR = 0
					WHEN @TOTCC = @TOT THEN NULL
					WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE.COPERTURA = 0 THEN 'n.c.' 
					
					
					ELSE NULL 
				END AS var_totString,
				--V

				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0
					WHEN @TOTCC = @TOT THEN NULL
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					ELSE NULL
				END AS var_tot_pirString,
				--
				ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
				CASE 
					WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS copertura_totString,
				--V
				ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
				CASE 
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS copertura_tot_pirString,
				--
			--V
			CASE 
				WHEN @TOTCC = @TOT THEN 0
				ELSE RISCHIORISFIN.VAR_PERC_PTF
			END AS VAR_RISFIN,
			CASE
				WHEN @TOTCC = @TOT THEN NULL 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			
				AREA_BISOGNO.ORDINAMENTO AS ordinamento
			FROM C6MART.AREA_BISOGNO
			LEFT JOIN #PIRAMIDE_VERT ATTUALE 
				ON ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
			LEFT JOIN C6Mart.RISCHIO_AGGREGATO RISCHIOAREA
				ON RISCHIOAREA.RETE = ATTUALE.RETE
					AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND

--[C6Mart].PL_S57ConfrontoPiramidi 'F','CVNPLA52D15H223S'
    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
			LEFT JOIN C6Mart.RISCHIO_AGGREGATO RISCHIOTOTALE
				ON RISCHIOTOTALE.RETE = ATTUALE.RETE
					AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
					AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'
			-- V
			LEFT JOIN
				C6Mart.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
				ON 
					RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
					AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
					AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'
		LEFT JOIN 
			C6Mart.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--              
			--WHERE AREA_BISOGNO.ORDINAMENTO < 6
			ORDER BY AREA_BISOGNO.ORDINAMENTO

		END

	ELSE

		SELECT * FROM #PIRAMIDE_VERT	

		DROP TABLE #PIRAMIDE_VERT

END














GO
/****** Object:  StoredProcedure [C6Mart].[zzzzRP_SRV_CHECK_C6_GIORNALIERO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[zzzzRP_SRV_CHECK_C6_GIORNALIERO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--V Esegue la procedura di estrazione dei CC
	EXEC [C6Mart].[RP_SRV_ESTRAZ_GIORNALIERA_CC]

	-- Report generati
	SELECT
		C.Rete,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else C.Cod_Fiscale end as Cod_fiscale,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6Mart.GESTIONE_PDF_FTP AS GPF
		INNER JOIN C6Mart.VCONTRATTI AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  C.chiaveclientepb = M.chiaveclientepb
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()
	ORDER BY
		C.Rete,
		C.Cod_Agente,
		C.Cod_Fiscale

	-- Report non generati
	SELECT
		Rete,
		Cod_Agente,
		case when Cod_Fiscale  like '%@%' then piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else Cod_Fiscale end as Cod_fiscale,
		Data_Perf,
		'Ragione:' + CASE
			WHEN ClienteMigrato = 'N' THEN ' Cliente non migrato'
			ELSE ''
		END
		+ CASE
			WHEN RisorseNA = 'S' THEN ' Risorse non associate'
			ELSE ''
		END
		+ CASE
			WHEN RisorseNA = 'N' and ClienteMigrato = 'S' and profiloAttivo = 0 THEN ' Profilo non attivo'
			ELSE ''
		END
		/*+ CASE
			WHEN PartViaDisinv = 'S' THEN ' Partite viaggianti disinvestimento'
			ELSE ''
		END*/ AS Ragione
	INTO #ReportNonGenerati
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
        INNER JOIN C6Mart.ContrattoSEI_metadati AS M
            on  CONTRATTOSEI.chiaveclientepb = M.chiaveclientepb
	WHERE
		M.InvioBenvenuto = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND (ClienteMigrato = 'N'
		OR RisorseNA = 'S'
		--V Condizione per non generazione a causa di profilo non attivo
		OR ProfiloAttivo = 0
		--
		/*OR PartViaDisinv = 'S'*/)
		AND Data_FineAvanzato > getDate()
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale


	

	-- Email
	SELECT
		CASE Tipo
			WHEN 'PERF' THEN 'perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			--V aggiunta tipo mail profilo non attivo
			WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'

		END AS Tipo,
		COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM
		C6Mart.GESTIONE_EMAIL
	WHERE
		Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	GROUP BY
		Tipo
	ORDER BY TIPO
	-- Indirizzi più lunghi di 36 caratteri
	SELECT
		C.Rete,
		Cod_Agente,
		Cod_Fiscale,
		Indirizzo,
		LEN(Indirizzo) AS LunghezzaIndirizzo
	INTO #IndirizziLunghi
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.GESTIONE_PDF_FTP AS GPF
			ON C.Rete = GPF.RETE
			AND C.Cod_Fiscale = GPF.CODICEFISCALE
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND LEN(Indirizzo) > 36
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Prodotti non a catalogo
	SELECT
		RETE,
		CODICEFISCALE,
		CODICECONTRATTO
	INTO #ProdNonInCat
	FROM
		C6Staging.SPB_CONTR_SINTESI
	WHERE
		POSITIONID IS NULL

	-- VaR discordanti
	SELECT
		RA.RETE,
		RA.COD_FISCALE,
		RA.VAR_PERC_PTF,
		VC.VAR_COMPLESSIVO_BF,
        CASE
			WHEN RA.VAR_PERC_PTF = VC.VAR_COMPLESSIVO_BF THEN 'OK'
			ELSE 'KO'
		END AS VAR_CORRETTO
	INTO #VaRDiscordanti
	FROM
		C6Mart.RISCHIO_AGGREGATO AS RA
		INNER JOIN VAR_CHECK AS VC
			ON RA.RETE = VC.RETE
			AND RA.COD_FISCALE = VC.COD_FISCALE
	WHERE
		(RA.COD_AGGREG = 'COMPLESSIVO|BF')
	ORDER BY
		RA.RETE,
		RA.COD_FISCALE

	-- Posizioni in stato liquidato
	SELECT
		PB.RETE,
		PB.COD_FISCALE,
		ID_CONTRATTO
	INTO #PosizioniStatoL
	FROM
		C6Mart.PATRIMONIO_BF AS PB
		INNER JOIN #VaRDiscordanti AS VD
			ON PB.RETE = VD.RETE
			AND PB.COD_FISCALE = VD.COD_FISCALE
	WHERE
		PB.COD_STATO = 'L'
		AND PB.CTV >= 0
		AND VD.VAR_CORRETTO = 'KO'
	ORDER BY
		PB.RETE,
		PB.COD_FISCALE

	-- Clienti senza data sottoscrizione
	SELECT DISTINCT
		PB.RETE,
		C.COD_AGENTE,
		PB.COD_FISCALE,
		PB.ID_CONTRATTO
	INTO #ClientiSenzaDataSott
	FROM
		C6Mart.vcontratti AS C
		INNER JOIN C6Mart.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6Mart.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

	-- Clienti senza piramide modello
	SELECT
		Rete,
		Cod_Agente,
		Cod_Fiscale
	INTO #ClientiSenzaPiramideModello
	FROM
		C6Mart.vcontratti as CONTRATTOSEI
    inner join 
		C6Mart.contrattosei_metadati as M
    on CONTRATTOSEI.chiaveclientepb = m.chiaveclientepb
	WHERE
		Data_FineAvanzato < getDate()
		AND inviobenvenuto = 'N'
		AND clientemigrato = 'S'
		AND risorseNA = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND Cod_Fiscale NOT IN (
			SELECT
				COD_FISCALE
            FROM
				C6Mart.PIRAMIDE_MOD)

	--scarti simpb contrattoSintesi
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaContrattoSintesi
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_CONTRSINTESI' 

	--scarti simpb mifid
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaProfiloMIFID
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MART.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_MIFID'
	

	DECLARE @testoMail VARCHAR(MAX)
	DECLARE @rete CHAR(1)
	DECLARE @codiceAgente VARCHAR(6)
	DECLARE @codiceFiscale VARCHAR(25)
	DECLARE @data DATETIME
	DECLARE @ragione VARCHAR(100)
	DECLARE @tipo VARCHAR(100)
	DECLARE @indirizzo VARCHAR(100)
	DECLARE @totale INT
	DECLARE @codiceContratto VARCHAR(11)
	DECLARE @varPercPtf DECIMAL(5, 2)
	DECLARE @varComplessivoBf DECIMAL(5, 2)

	SET @testoMail = '<html><body><table border="0"><tr><td colspan="2"><strong>E-mail inviate:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Tipo,
			Totale
		FROM
			#EmailInviate
	OPEN reader
	FETCH NEXT FROM reader INTO @tipo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
		SET @testoMail = @testoMail + '<td align="right">' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @tipo, @totale
	END
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Report generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf
		FROM
			#ReportGenerati
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ReportGenerati
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Report non generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf,
			Ragione
		FROM
			#ReportNonGenerati
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '<td>' + @ragione + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	END
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati
	SET @testoMail = @testoMail + '<tr><td align="right">Totale:</td><td>' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Indirizzi più lunghi di 36 caratteri:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Indirizzo,
			LEN(Indirizzo) AS LunghezzaIndirizzo
		FROM
			#IndirizziLunghi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @indirizzo + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	END
	SELECT @totale = COUNT(*) FROM #IndirizziLunghi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con prodotti non a catalogo:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			CODICEFISCALE,
			CODICECONTRATTO
		FROM #ProdNonInCat
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ProdNonInCat
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti con VaR discordante:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			VAR_PERC_PTF,
			VAR_COMPLESSIVO_BF
		FROM
			#VaRDiscordanti
		WHERE
			VAR_CORRETTO = 'KO'
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varPercPtf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varComplessivoBf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	END
	SELECT @totale = COUNT(*) FROM #VaRDiscordanti WHERE VAR_CORRETTO = 'KO'
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con posizioni stato Liquidato:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#PosizioniStatoL
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #PosizioniStatoL
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza data sottoscrizione</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_AGENTE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#ClientiSenzaDataSott
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaDataSott
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza piramide modello</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale
		FROM
			#ClientiSenzaPiramideModello
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaPiramideModello
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader





	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe Contratto Sintesi</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,
			data_perf
		FROM
			#ClientiSenzaContrattoSintesi
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaContrattoSintesi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader


	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe profilo MIFID</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,data_perf
		FROM
			#ClientiSenzaProfiloMIFID
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaProfiloMIFID
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	

---------------------------------------------------------------------
--Email non inviate

	--SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Email non inviate:</strong></td></tr>'
	--DECLARE reader CURSOR LOCAL FORWARD_ONLY
	--FOR

	--	SELECT a.rete, a.cod_fiscale, a.cod_agente, 
	--	CASE Tipo
	--		WHEN 'PERF' THEN 'perfezionamento'
	--		WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
	--		WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
	--		WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
	--		WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
	--		WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
	--		WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
	--		WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
	--		WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
	--		WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
	--		WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
	--		--V aggiunta tipo mail profilo non attivo
	--		WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
	--		WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
	--		WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
	--		WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
	--		WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
	--	END AS Tipo
	--	FROM C6Mart.Contrattosei a
	--	inner join C6Mart.GESTIONE_EMAIL b
	--	on
	--	a.rete = b.rete
	--	and
	--	a.cod_fiscale = b.cod_fiscale
	--	WHERE isnull(b.Inviata,'N')='N'

	--OPEN reader
	--FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--WHILE @@FETCH_STATUS = 0
	--BEGIN
	--	SET @testoMail = @testoMail + '<tr>'
	--	SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
	--	SET @testoMail = @testoMail + '</tr>'
	--	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--END
	--SELECT @totale = COUNT(*) FROM C6Mart.GESTIONE_EMAIL WHERE isnull(Inviata,'N')='N'
	--SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	--SET @testoMail = @testoMail + '</table>'
	--CLOSE reader
	--DEALLOCATE reader

---------------------------------------------------------------------

	SET @testoMail = @testoMail + '</table></body></html>'

	SELECT @testoMail

	DROP TABLE #ReportGenerati
	DROP TABLE #ReportNonGenerati
	DROP TABLE #EmailInviate
	DROP TABLE #IndirizziLunghi
	DROP TABLE #PosizioniStatoL
	DROP TABLE #ProdNonInCat
	DROP TABLE #VaRDiscordanti
	DROP TABLE #ClientiSenzaDataSott
	DROP TABLE #ClientiSenzaPiramideModello
	DROP TABLE #ClientiSenzaContrattoSintesi
	DROP TABLE #ClientiSenzaProfiloMIFID




END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AGGIORNA_NUMERO_PAGINE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[AGGIORNA_NUMERO_PAGINE]
(
	@rete varchar(1),
	@codicefiscale varchar(20),
	@idreport int,
	@incremento int
)
as
begin

	update c6martperiodico.gestione_pdf_ftp
	set numeroPagine = numeroPagine + @incremento
	where
		rete = @rete
		and
		codicefiscale = @CodiceFiscale
		and
		IdReport = @IdReport
end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AggiornaFlagRolContrattoSei]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[AggiornaFlagRolContrattoSei]
  
AS
BEGIN

-- Allineamento Flag Rol su contratto sei

Update C6MartPeriodico.ContrattoSei
Set Rol = Case D.statorol
		  When 'S' then D.statorol
		  Else 'N'
		  End,
    EmAil = Case d.alertrol
		  When 'S' then D.Email
		  End		 	  
from  C6MartPeriodico.ContrattoSei C inner join  C6StagingPeriodico.datiRol2 D
on d.codContratto = c.codiceContratto


End

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AggiornamentoDisponibilitaReport]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- Stored procedure
-- =============================================
-- Author:		Fabrizio Caruso
-- Create date: 16/01/2014
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[AggiornamentoDisponibilitaReport]
AS
BEGIN
	
	SET NOCOUNT ON;



Update rep
set rep.flagDefinitivo = 1
from [10.10.33.175\i1].[SEIReport].[dbo].[RepositoryMetadati] rep
inner join 
 (
select idReport
from c6martperiodico.gestione_pdf_ftp a 
join
c6martperiodico.controllo_trimestrale b
on a.rete = b.rete and a.codiceFiscale = b.cod_fiscale
and idreport<> identityreport
where stato_report = 8 ) pdf
on idInRepository = idreport
and rep.flagDefinitivo = 0




--old Upd

--Update [10.10.33.175\I1].Seireport.dbo.repositoryMetadati
--set flagDefinitivo = 1
--where idInRepository in (
--select idReport
--from c6martperiodico.gestione_pdf_ftp a 
--join
--c6martperiodico.controllo_trimestrale b
--on a.rete = b.rete and a.codiceFiscale = b.cod_fiscale
--where stato_report = 8
--)
--and flagDefinitivo = 0

 	

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AL_AggiornaPortafoglioCliente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
-- =============================================  
-- Author: <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[AL_AggiornaPortafoglioCliente]  
AS  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'AL_AggiornaPortafoglioCliente',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[PIRAMIDE_VERT]  
  
 --CALCOLO AGGREGATI  
 INSERT INTO [C6MartPeriodico].[PIRAMIDE_VERT]  
 (  
  RETE,  
  COD_FISCALE,  
  ID_AREA,  
  CTV_AREA/*,  
  ID_ELAB*/  
 )  
 SELECT  
  PATR.RETE,  
  PATR.COD_FISCALE,  
  PATR.ID_AREA,  
  SUM(CTV)/*,  
  ID_ELAB*/  
 FROM [C6MartPeriodico].[PATRIMONIO_BF] PATR  
 GROUP BY  
  PATR.RETE,  
  PATR.COD_FISCALE,  
  PATR.ID_AREA/*,  
  PATR.ID_ELAB*/  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'AL_AggiornaPortafoglioCliente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'AL_AggiornaPortafoglioCliente'  
  )  
  
END   

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AL_AggiornaPortafoglioCliente_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[AL_AggiornaPortafoglioCliente_pre_selective]
AS
BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'AL_AggiornaPortafoglioCliente_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[PIRAMIDE_VERT]

	--CALCOLO AGGREGATI
	INSERT INTO [C6MartPeriodico].[PIRAMIDE_VERT]
	(
		RETE,
		COD_FISCALE,
		ID_AREA,
		CTV_AREA/*,
		ID_ELAB*/
	)
	SELECT
		PATR.RETE,
		PATR.COD_FISCALE,
		PATR.ID_AREA,
		SUM(CTV)/*,
		ID_ELAB*/
	FROM [C6MartPeriodico].[PATRIMONIO_BF] PATR
	GROUP BY
		PATR.RETE,
		PATR.COD_FISCALE,
		PATR.ID_AREA/*,
		PATR.ID_ELAB*/

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'AL_AggiornaPortafoglioCliente_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'AL_AggiornaPortafoglioCliente_pre_selective'
		)

END 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AppRendTabReader]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6MartPeriodico].[AppRendTabReader]
	@ColumnSql varchar(5000),
	@whereSql varchar(5000)
AS
BEGIN
DECLARE @mywhere varchar(4000);
DECLARE @myselect varchar(5000);
DECLARE @mystmt varchar(5000);
SET @myselect = ' SELECT  '+ @ColumnSql;	
--SET @myselect = ' SELECT TOP(3000)* ';	
SET @mywhere = ' WHERE '+ @whereSql;	
SET @mystmt = @myselect + ' FROM [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] ' + @mywhere + 'order by codice_fiscale';
EXEC( @mystmt )
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[AppRendTabReader_bl]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6MartPeriodico].[AppRendTabReader_bl]
	@ColumnSql varchar(5000),
	@motivo varchar(5000)
AS
BEGIN
DECLARE @mywhere varchar(4000);
DECLARE @myselect varchar(1000);
DECLARE @mystmt varchar(5000);
SET @myselect = ' SELECT  '+ @ColumnSql;	
SET @mywhere = ' WHERE codice_fiscale in (select codicefiscale FROM [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList]"
	        		+ "  WHERE	[DescrErr] = '''+@motivo+''')';	
SET @mystmt = @myselect + ' FROM [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] ' + @mywhere ;
EXEC( @mystmt )
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Blacklist_Blocco_Tabellone]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodico].[Blacklist_Blocco_Tabellone]
@param1 varchar(20)
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  

-- [C6MartPeriodico].[Blacklist_Blocco_Tabellone] Blocco
-- [C6MartPeriodico].[Blacklist_Blocco_Tabellone] SBlocco
--select * from c6martperiodico.tabellone where blacklist is not null
--select * from C6MartPeriodico.ExcludedList 
--select * from C6MartPeriodico.ExcludedList_testing
--
--select * from c6martperiodico.tabellone where codice_fiscale='BBBMRA56T09L736R'

--select * from C6MartPeriodico.ExcludedList where codicefiscale='FRILXA72T04H501R'



--select codicefiscale,COUNT(*) from C6MartPeriodico.ExcludedList group by codicefiscale having COUNT(*)>1

--insert into C6MartPeriodico.ExcludedList
--values ('F','BBBMRA56T09L736R','TestF',GETDATE(),1),
--('F','BBBMRA56T09L736R','TestB',GETDATE(),1),
--('F','BBBMRA56T09L736R','TestC',GETDATE(),1),
--('F','BBBMRA56T09L736R','TestF',GETDATE(),1)
----delete from C6MartPeriodico.ExcludedList  where DescrErr='TestC'
if (@param1='BLOCCO')
begin
drop table if exists #riunisco
drop table if exists #rimuovoduplicati

update C6MartPeriodico.tabellone
set blacklist=NULL


select distinct rete,codicefiscale,DescrErr
into #rimuovoduplicati
from  C6MartPeriodico.ExcludedList

SELECT rete,codicefiscale,STRING_AGG( ISNULL(DescrErr, ' '), ',') As descrerr 
	into #riunisco
       From #rimuovoduplicati group by rete,codicefiscale

update C6MartPeriodico.tabellone 
set blacklist=r.descrerr
from #riunisco r inner join C6MartPeriodico.tabellone t 
on t.chiave_acn=r.Rete+r.codicefiscale

update C6MartPeriodico.tabellone 
set lettera_sost='S'
where blacklist like '%sostitutiva%'
end



if (@param1='SBLOCCO') 
begin
update C6MartPeriodico.tabellone 
set blacklist=NULL

drop  table if exists #riunisco1
drop table if exists #rimuovoduplicati1


select distinct rete,codicefiscale,DescrErr
into #rimuovoduplicati1
from  C6MartPeriodico.ExcludedList

SELECT rete,codicefiscale,STRING_AGG( ISNULL(DescrErr, ' '), ',') As descrerr 
	into #riunisco1
       From #rimuovoduplicati1 group by rete,codicefiscale

update C6MartPeriodico.tabellone 
set blacklist=r.descrerr
from #riunisco1 r inner join C6MartPeriodico.tabellone t 
on t.chiave_acn=r.Rete+r.codicefiscale

update C6MartPeriodico.tabellone 
set lettera_sost='S'
where blacklist like '%sostitutiva%'
end

--update C6MartPeriodico.tabellone 
----set inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--set blacklist=case when blacklist = exc.descrErr then REPLACE(blacklist,exc.DescrErr,'') else blacklist end
--from C6MartPeriodico.ExcludedList_testing exc
--where chiave_acn=exc.rete+exc.codicefiscale and exc.DescrErr<>'SEGNALAZIONE_VP'
--end

--select chiave_acn,value from C6MartPeriodico.tabellone 
--CROSS APPLY STRING_SPLIT(blacklist, ',')

--select * from C6MartPeriodico.motivazioni_blacklist


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Blocco_Blacklist_AppRendicontazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[Blocco_Blacklist_AppRendicontazione]
as
begin
	--select * 
	--from C6MartPeriodico.ExcludedList_testing 
	--where DescrErr='Segnalazione_VP'

	--select * from C6MartPeriodico.ExcludedList


	if((select COUNT(*) from C6MartPeriodico.ExcludedList_sblocco where DescrErr like '%VP%' )<>0) 
	begin 
	delete from C6MartPeriodico.ExcludedList where DescrErr like '%VP%'

	insert into C6MartPeriodico.ExcludedList
	select * from C6MartPeriodico.ExcludedList_sblocco
	where DescrErr like '%VP%'

	end

	delete from C6MartPeriodico.ExcludedList where Rete+codicefiscale+DescrErr in(
	select Rete+codicefiscale+DescrErr 
	from C6MartPeriodico.ExcludedList_sblocco
	where DescrErr not like '%Segnalazione_VP%' OR DescrErr not like '%Blacklist VP%' or DescrErr not like '%DESCR_ANOM_VP%'
	) 
	--aggiunta 23/08/2022 per gestire lo svuotamento di tutti i cf con descrizione='DESCR_ANOM_VP'

	if((select count(*) from C6MartPeriodico.ExcludedList_sblocco where DescrErr='XXXXXXXXXXXXXXXX')>0) --cioè se è presente una riga con questa motivazione
	begin
	delete from C6MartPeriodico.ExcludedList where DescrErr like '%DESCR_ANOM_VP%'
	end
	--fine aggiunta
	insert into C6MartPeriodico.Sblocco_Blacklist
	select rete,codicefiscale,DescrErr,DataIns,Bloccato from C6MartPeriodico.ExcludedList_sblocco --serve per avere una storia di tutte le operazioni fatte ma è inutile

	truncate table C6MartPeriodico.ExcludedList_sblocco
	end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[BONIFICA_WSEIUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- Stored procedure  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
  
-- NUOVA STORED PER INTERVENTO MIGRAZIONE ASU3  
  
CREATE procedure [C6MartPeriodico].[BONIFICA_WSEIUL]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
      
 SET @ID_ELAB = C6MART.GETIDELAB()  
 SET @TIPO_ELAB = C6MART.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'BONIFICA_WSEIUL',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
-- Bonifica effettuata nell'ambito della migrazione di alcuni prodotti alla tipologia ASU3:   
-- per tali prodotti, nel campo ISIN la replica DB2 fornisce il valore del sottoprodotto   
-- in quanto nel campo SUBPROD è stata impostata la Linea (al processo di Trimestrale l'informazione  
-- del sottoprodotto non è necessaria mentre è necessario ripulire il campo ISIN utilizzato esclusivamente  
-- per i prodotti SKANDIA  
  
 UPDATE C6STAGINGPERIODICO.WSEIUL  
 SET ISIN = ''  
 /* 20161220 introdotto nuovo prodotto con codint = RE */  
 WHERE CODINT in ('RM','RS','RB','RV','RE')  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'BONIFICA_WSEIUL' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'BONIFICA_WSEIUL'  
  )  
  
--grant execute on [C6MartPeriodico].[BONIFICA_WSEIUL] to public  
  
END  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[BONIFICA_WSEIUL_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

-- NUOVA STORED PER INTERVENTO MIGRAZIONE ASU3

CREATE procedure [C6MartPeriodico].[BONIFICA_WSEIUL_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'BONIFICA_WSEIUL_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

-- Bonifica effettuata nell'ambito della migrazione di alcuni prodotti alla tipologia ASU3: 
-- per tali prodotti, nel campo ISIN la replica DB2 fornisce il valore del sottoprodotto 
-- in quanto nel campo SUBPROD è stata impostata la Linea (al processo di Trimestrale l'informazione
-- del sottoprodotto non è necessaria mentre è necessario ripulire il campo ISIN utilizzato esclusivamente
-- per i prodotti SKANDIA

	UPDATE C6STAGINGPERIODICO.WSEIUL
	SET ISIN = ''
	/* 20161220 introdotto nuovo prodotto con codint = RE */
	WHERE CODINT in ('RM','RS','RB','RV','RE')
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'BONIFICA_WSEIUL_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'BONIFICA_WSEIUL_pre_selective'
		)

--grant execute on [C6MartPeriodico].[BONIFICA_WSEIUL_pre_selective] to public

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[BonificaDataQuality]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6MartPeriodico].[BonificaDataQuality]
as

 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'BonificaDataQuality',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
--1) copia

exec [dbo].[CreaTabellaBackUp] 'tb_SegnalazioniDataQuality','C6MartPeriodico','preBonifica'
--SELECT *  into  [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality_2018mmdd _preBonifica
--FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]

--2) metto in tabella temporanea la nuova tabella bonificata
SELECT q.*
into #appo
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] q
  left join c6stagingperiodico.appo_contratti_limiter limit
  on limit.cod_fiscale = q.codicefiscale  and limit.rete = q.rete
  where limit.cod_fiscale is not null or 0 = (select count(*) from  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] with (nolock))

--3) cancello la tabella attuale
truncate table [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]

--4) la ricreo bonificata
insert into [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] 
			([idTipoControllo]
           ,[rete]
           ,[codiceFiscale]
           ,[descSegnalazione]
           ,[idElaborazione]
           ,[richiesta]
           ,[idFaseElaborazione]
           ,[dataInserimento])
select 	[idTipoControllo],[rete],[codiceFiscale],[descSegnalazione],[idElaborazione],[richiesta],[idFaseElaborazione],[dataInserimento] from #appo

UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'BonificaDataQuality' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'BonificaDataQuality'  
  )  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Caricamento_TBGEN]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6martPeriodico].[Caricamento_TBGEN]
CREATE procedure [C6MartPeriodico].[Caricamento_TBGEN]
	-- Add the parameters for the stored procedure here

AS
BEGIN 

DECLARE @Rete char(1) 
DECLARE @CodiceFiscale varchar(16)

DECLARE cursore CURSOR FOR 

SELECT  --top 100
		rete, 
		cod_fiscale 
FROM	c6martperiodico.vcontrattipergenerazionereport

OPEN cursore

FETCH NEXT FROM cursore INTO @Rete,@CodiceFiscale

WHILE @@fetch_status=0
BEGIN

EXECUTE [C6MartPeriodico].[POPOLA_D2_S157ConfrontoPiramidi_SVIL] @Rete,@CodiceFiscale
--EXECUTE [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] @Rete,@CodiceFiscale

FETCH NEXT FROM cursore INTO @Rete, @CodiceFiscale

END

CLOSE cursore

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CercaCaratteriAnomali]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[CercaCaratteriAnomali]
AS
BEGIN


declare @num int 
set @num = 1

CREATE TABLE #tab_temp(
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL)


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(email,@num,1)),
       substring(email,@num,1),
       rete,
       Cod_Fiscale,
       'EMAIL',
       email
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(email,@num,len(email))) not between 64 and 90 
and ascii(substring(email,@num,len(email))) not between 97 and 122
and ascii(substring(email,@num,len(email))) not between 48 and 57
and ascii(substring(email,@num,len(email))) <> 32
and ascii(substring(email,@num,len(email))) <> 40
and ascii(substring(email,@num,len(email))) <> 41
and ascii(substring(email,@num,len(email))) <> 43
and ascii(substring(email,@num,len(email))) <> 44
and ascii(substring(email,@num,len(email))) <> 45
and ascii(substring(email,@num,len(email))) <> 46
and ascii(substring(email,@num,len(email))) <> 95
and ascii(substring(email,@num,len(email))) <> 39
and ascii(substring(email,@num,len(email))) <> 47
and ascii(substring(email,@num,len(email))) <> 63


set @num = @num + 1	
end	


--inizio intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6martperiodico.ANAG_CLIENTI

set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nome+Cognome,@num,1)),
       substring(Nome+Cognome,@num,1),
       rete,
       Cod_Fiscale,
       'Nome+Cognome',
       Nome+Cognome
FROM C6MartPeriodico.ANAG_CLIENTI
WHERE 
	ascii(substring(Nome+Cognome,@num,len(Nome))) not between 64 and 90 
and ascii(substring(Nome+Cognome,@num,len(Nome))) not between 97 and 122
and ascii(substring(Nome+Cognome,@num,len(Nome))) not between 48 and 57
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 32
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 40
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 41
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 43
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 44
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 45
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 46
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 95
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 39
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 38
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 47
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 63


set @num = @num + 1	
	
end	

--fine intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6martperiodico.ANAG_CLIENTI

set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Indirizzo,@num,1)),
       substring(Indirizzo,@num,1),
       rete,
       Cod_Fiscale,
       'INDIRIZZO',
       Indirizzo
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 64 and 90 
and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 97 and 122
and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 48 and 57
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 32
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 40
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 41
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 43
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 44
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 45
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 46
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 95
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 39
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 47
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(CAP,@num,1)),
       substring(CAP,@num,1),
       rete,
       Cod_Fiscale,
       'CAP',
       CAP
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(CAP,@num,len(CAP))) not between 64 and 90 
and ascii(substring(CAP,@num,len(CAP))) not between 97 and 122
and ascii(substring(CAP,@num,len(CAP))) not between 48 and 57
and ascii(substring(CAP,@num,len(CAP))) <> 32
and ascii(substring(CAP,@num,len(CAP))) <> 40
and ascii(substring(CAP,@num,len(CAP))) <> 41
and ascii(substring(CAP,@num,len(CAP))) <> 43
and ascii(substring(CAP,@num,len(CAP))) <> 44
and ascii(substring(CAP,@num,len(CAP))) <> 45
and ascii(substring(CAP,@num,len(CAP))) <> 46
and ascii(substring(CAP,@num,len(CAP))) <> 95
and ascii(substring(CAP,@num,len(CAP))) <> 39
and ascii(substring(CAP,@num,len(CAP))) <> 47
and ascii(substring(CAP,@num,len(CAP))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Citta,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Citta',
       Citta
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Citta,@num,len(Citta))) not between 64 and 90 
and ascii(substring(Citta,@num,len(Citta))) not between 97 and 122
and ascii(substring(Citta,@num,len(Citta))) not between 48 and 57
and ascii(substring(Citta,@num,len(Citta))) <> 32
and ascii(substring(Citta,@num,len(Citta))) <> 40
and ascii(substring(Citta,@num,len(Citta))) <> 41
and ascii(substring(Citta,@num,len(Citta))) <> 43
and ascii(substring(Citta,@num,len(Citta))) <> 44
and ascii(substring(Citta,@num,len(Citta))) <> 45
and ascii(substring(Citta,@num,len(Citta))) <> 46
and ascii(substring(Citta,@num,len(Citta))) <> 95
and ascii(substring(Citta,@num,len(Citta))) <> 39
and ascii(substring(Citta,@num,len(Citta))) <> 47
and ascii(substring(Citta,@num,len(Citta))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Prov,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Prov',
       Prov
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Prov,@num,len(Prov))) not between 64 and 90 
and ascii(substring(Prov,@num,len(Prov))) not between 97 and 122
and ascii(substring(Prov,@num,len(Prov))) not between 48 and 57
and ascii(substring(Prov,@num,len(Prov))) <> 32
and ascii(substring(Prov,@num,len(Prov))) <> 40
and ascii(substring(Prov,@num,len(Prov))) <> 41
and ascii(substring(Prov,@num,len(Prov))) <> 43
and ascii(substring(Prov,@num,len(Prov))) <> 44
and ascii(substring(Prov,@num,len(Prov))) <> 45
and ascii(substring(Prov,@num,len(Prov))) <> 46
and ascii(substring(Prov,@num,len(Prov))) <> 95
and ascii(substring(Prov,@num,len(Prov))) <> 39
and ascii(substring(Prov,@num,len(Prov))) <> 47
and ascii(substring(Prov,@num,len(Prov))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nazione,@num,1)),
       substring(Nazione,@num,1),
       rete,
       Cod_Fiscale,
       'Nazione',
       Nazione
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Nazione,@num,len(Nazione))) not between 64 and 90 
and ascii(substring(Nazione,@num,len(Nazione))) not between 97 and 122
and ascii(substring(Nazione,@num,len(Nazione))) not between 48 and 57
and ascii(substring(Nazione,@num,len(Nazione))) <> 32
and ascii(substring(Nazione,@num,len(Nazione))) <> 40
and ascii(substring(Nazione,@num,len(Nazione))) <> 41
and ascii(substring(Nazione,@num,len(Nazione))) <> 43
and ascii(substring(Nazione,@num,len(Nazione))) <> 44
and ascii(substring(Nazione,@num,len(Nazione))) <> 45
and ascii(substring(Nazione,@num,len(Nazione))) <> 46
and ascii(substring(Nazione,@num,len(Nazione))) <> 95
and ascii(substring(Nazione,@num,len(Nazione))) <> 39
and ascii(substring(Nazione,@num,len(Nazione))) <> 47
and ascii(substring(Nazione,@num,len(Nazione))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Presso,@num,1)),
       substring(Presso,@num,1),
       rete,
       Cod_Fiscale,
       'Presso',
       Presso
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Presso,@num,len(Presso))) not between 64 and 90 
and ascii(substring(Presso,@num,len(Presso))) not between 97 and 122
and ascii(substring(Presso,@num,len(Presso))) not between 48 and 57
and ascii(substring(Presso,@num,len(Presso))) <> 32
and ascii(substring(Presso,@num,len(Presso))) <> 40
and ascii(substring(Presso,@num,len(Presso))) <> 41
and ascii(substring(Presso,@num,len(Presso))) <> 43
and ascii(substring(Presso,@num,len(Presso))) <> 44
and ascii(substring(Presso,@num,len(Presso))) <> 45
and ascii(substring(Presso,@num,len(Presso))) <> 46
and ascii(substring(Presso,@num,len(Presso))) <> 95
and ascii(substring(Presso,@num,len(Presso))) <> 39
and ascii(substring(Presso,@num,len(Presso))) <> 47
and ascii(substring(Presso,@num,len(Presso))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Rol,@num,1)),
       substring(Rol,@num,1),
       rete,
       Cod_Fiscale,
       'Rol',
       Rol
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Rol,@num,len(Rol))) not between 64 and 90 
and ascii(substring(Rol,@num,len(Rol))) not between 97 and 122
and ascii(substring(Rol,@num,len(Rol))) not between 48 and 57
and ascii(substring(Rol,@num,len(Rol))) <> 32
and ascii(substring(Rol,@num,len(Rol))) <> 40
and ascii(substring(Rol,@num,len(Rol))) <> 41
and ascii(substring(Rol,@num,len(Rol))) <> 43
and ascii(substring(Rol,@num,len(Rol))) <> 44
and ascii(substring(Rol,@num,len(Rol))) <> 45
and ascii(substring(Rol,@num,len(Rol))) <> 46
and ascii(substring(Rol,@num,len(Rol))) <> 95
and ascii(substring(Rol,@num,len(Rol))) <> 39
and ascii(substring(Rol,@num,len(Rol))) <> 47
and ascii(substring(Rol,@num,len(Rol))) <> 63


set @num = @num + 1	
	
end	


select distinct * from #tab_temp

-------------------------------------------------------

--SELECT * FROM C6MartPeriodico.ContrattoSEI
--WHERE
--	Email like '%¿%'
--OR
--	Indirizzo like '%¿%'
--OR
--	CAP like '%¿%'
--OR
--	Citta like '%¿%'
--OR
--	Prov like '%¿%'
--OR
--	Nazione like '%¿%'
--OR
--	Presso like '%¿%'
--OR
--	Rol like '%¿%'
--OR
--	Email like '%Ç%'
--OR
--	Indirizzo like '%Ç%'
--OR
--	CAP like '%Ç%'
--OR
--	Citta like '%Ç%'
--OR
--	Prov like '%Ç%'
--OR
--	Nazione like '%Ç%'
--OR
--	Presso like '%Ç%'
--OR
--	Rol like '%Ç%'
--OR
--	Email like '%À%'
--OR
--	Indirizzo like '%À%'
--OR
--	CAP like '%À%'
--OR
--	Citta like '%À%'
--OR
--	Prov like '%À%'
--OR
--	Nazione like '%À%'
--OR
--	Presso like '%À%'
--OR
--	Rol like '%À%'
--OR
--	Email like '%É%'
--OR
--	Indirizzo like '%É%'
--OR
--	CAP like '%É%'
--OR
--	Citta like '%É%'
--OR
--	Prov like '%É%'
--OR
--	Nazione like '%É%'
--OR
--	Presso like '%É%'
--OR
--	Rol like '%É%'
--OR
--	Email like '%µ%'
--OR
--	Indirizzo like '%µ%'
--OR
--	CAP like '%µ%'
--OR
--	Citta like '%µ%'
--OR
--	Prov like '%µ%'
--OR
--	Nazione like '%µ%'
--OR
--	Presso like '%µ%'
--OR
--	Rol like '%µ%'


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CercaCaratteriAnomali_20150205]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[CercaCaratteriAnomali_20150205]
AS
BEGIN


declare @num int 
set @num = 1

CREATE TABLE #tab_temp(
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL)


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(email,@num,1)),
       substring(email,@num,1),
       rete,
       Cod_Fiscale,
       'EMAIL',
       email
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(email,@num,len(email))) not between 64 and 90 
and ascii(substring(email,@num,len(email))) not between 97 and 122
and ascii(substring(email,@num,len(email))) not between 48 and 57
and ascii(substring(email,@num,len(email))) <> 32
and ascii(substring(email,@num,len(email))) <> 40
and ascii(substring(email,@num,len(email))) <> 41
and ascii(substring(email,@num,len(email))) <> 43
and ascii(substring(email,@num,len(email))) <> 44
and ascii(substring(email,@num,len(email))) <> 45
and ascii(substring(email,@num,len(email))) <> 46
and ascii(substring(email,@num,len(email))) <> 95
and ascii(substring(email,@num,len(email))) <> 39
and ascii(substring(email,@num,len(email))) <> 47
and ascii(substring(email,@num,len(email))) <> 63


set @num = @num + 1	
end	

--inizio intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6martperiodico.ANAG_CLIENTI

set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nome+Cognome,@num,1)),
       substring(Nome+Cognome,@num,1),
       rete,
       Cod_Fiscale,
       'Nome+Cognome',
       Nome+Cognome
FROM C6MartPeriodico.ANAG_CLIENTI
WHERE 
	ascii(substring(Nome+Cognome,@num,len(Nome))) not between 64 and 90 
and ascii(substring(Nome+Cognome,@num,len(Nome))) not between 97 and 122
and ascii(substring(Nome+Cognome,@num,len(Nome))) not between 48 and 57
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 32
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 40
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 41
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 43
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 44
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 45
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 46
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 95
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 39
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 38
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 47
and ascii(substring(Nome+Cognome,@num,len(Nome))) <> 63


set @num = @num + 1	
	
end	

--fine intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6martperiodico.ANAG_CLIENTI

set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Indirizzo,@num,1)),
       substring(Indirizzo,@num,1),
       rete,
       Cod_Fiscale,
       'INDIRIZZO',
       Indirizzo
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 64 and 90 
and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 97 and 122
and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 48 and 57
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 32
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 40
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 41
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 43
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 44
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 45
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 46
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 95
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 39
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 47
and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(CAP,@num,1)),
       substring(CAP,@num,1),
       rete,
       Cod_Fiscale,
       'CAP',
       CAP
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(CAP,@num,len(CAP))) not between 64 and 90 
and ascii(substring(CAP,@num,len(CAP))) not between 97 and 122
and ascii(substring(CAP,@num,len(CAP))) not between 48 and 57
and ascii(substring(CAP,@num,len(CAP))) <> 32
and ascii(substring(CAP,@num,len(CAP))) <> 40
and ascii(substring(CAP,@num,len(CAP))) <> 41
and ascii(substring(CAP,@num,len(CAP))) <> 43
and ascii(substring(CAP,@num,len(CAP))) <> 44
and ascii(substring(CAP,@num,len(CAP))) <> 45
and ascii(substring(CAP,@num,len(CAP))) <> 46
and ascii(substring(CAP,@num,len(CAP))) <> 95
and ascii(substring(CAP,@num,len(CAP))) <> 39
and ascii(substring(CAP,@num,len(CAP))) <> 47
and ascii(substring(CAP,@num,len(CAP))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Citta,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Citta',
       Citta
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Citta,@num,len(Citta))) not between 64 and 90 
and ascii(substring(Citta,@num,len(Citta))) not between 97 and 122
and ascii(substring(Citta,@num,len(Citta))) not between 48 and 57
and ascii(substring(Citta,@num,len(Citta))) <> 32
and ascii(substring(Citta,@num,len(Citta))) <> 40
and ascii(substring(Citta,@num,len(Citta))) <> 41
and ascii(substring(Citta,@num,len(Citta))) <> 43
and ascii(substring(Citta,@num,len(Citta))) <> 44
and ascii(substring(Citta,@num,len(Citta))) <> 45
and ascii(substring(Citta,@num,len(Citta))) <> 46
and ascii(substring(Citta,@num,len(Citta))) <> 95
and ascii(substring(Citta,@num,len(Citta))) <> 39
and ascii(substring(Citta,@num,len(Citta))) <> 47
and ascii(substring(Citta,@num,len(Citta))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Prov,@num,1)),
       substring(Citta,@num,1),
       rete,
       Cod_Fiscale,
       'Prov',
       Prov
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Prov,@num,len(Prov))) not between 64 and 90 
and ascii(substring(Prov,@num,len(Prov))) not between 97 and 122
and ascii(substring(Prov,@num,len(Prov))) not between 48 and 57
and ascii(substring(Prov,@num,len(Prov))) <> 32
and ascii(substring(Prov,@num,len(Prov))) <> 40
and ascii(substring(Prov,@num,len(Prov))) <> 41
and ascii(substring(Prov,@num,len(Prov))) <> 43
and ascii(substring(Prov,@num,len(Prov))) <> 44
and ascii(substring(Prov,@num,len(Prov))) <> 45
and ascii(substring(Prov,@num,len(Prov))) <> 46
and ascii(substring(Prov,@num,len(Prov))) <> 95
and ascii(substring(Prov,@num,len(Prov))) <> 39
and ascii(substring(Prov,@num,len(Prov))) <> 47
and ascii(substring(Prov,@num,len(Prov))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Nazione,@num,1)),
       substring(Nazione,@num,1),
       rete,
       Cod_Fiscale,
       'Nazione',
       Nazione
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Nazione,@num,len(Nazione))) not between 64 and 90 
and ascii(substring(Nazione,@num,len(Nazione))) not between 97 and 122
and ascii(substring(Nazione,@num,len(Nazione))) not between 48 and 57
and ascii(substring(Nazione,@num,len(Nazione))) <> 32
and ascii(substring(Nazione,@num,len(Nazione))) <> 40
and ascii(substring(Nazione,@num,len(Nazione))) <> 41
and ascii(substring(Nazione,@num,len(Nazione))) <> 43
and ascii(substring(Nazione,@num,len(Nazione))) <> 44
and ascii(substring(Nazione,@num,len(Nazione))) <> 45
and ascii(substring(Nazione,@num,len(Nazione))) <> 46
and ascii(substring(Nazione,@num,len(Nazione))) <> 95
and ascii(substring(Nazione,@num,len(Nazione))) <> 39
and ascii(substring(Nazione,@num,len(Nazione))) <> 47
and ascii(substring(Nazione,@num,len(Nazione))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Presso,@num,1)),
       substring(Presso,@num,1),
       rete,
       Cod_Fiscale,
       'Presso',
       Presso
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Presso,@num,len(Presso))) not between 64 and 90 
and ascii(substring(Presso,@num,len(Presso))) not between 97 and 122
and ascii(substring(Presso,@num,len(Presso))) not between 48 and 57
and ascii(substring(Presso,@num,len(Presso))) <> 32
and ascii(substring(Presso,@num,len(Presso))) <> 40
and ascii(substring(Presso,@num,len(Presso))) <> 41
and ascii(substring(Presso,@num,len(Presso))) <> 43
and ascii(substring(Presso,@num,len(Presso))) <> 44
and ascii(substring(Presso,@num,len(Presso))) <> 45
and ascii(substring(Presso,@num,len(Presso))) <> 46
and ascii(substring(Presso,@num,len(Presso))) <> 95
and ascii(substring(Presso,@num,len(Presso))) <> 39
and ascii(substring(Presso,@num,len(Presso))) <> 47
and ascii(substring(Presso,@num,len(Presso))) <> 63


set @num = @num + 1	
	
end	


set @num = 1
while @num < 150

begin	
insert into #tab_temp
SELECT ascii(substring(Rol,@num,1)),
       substring(Rol,@num,1),
       rete,
       Cod_Fiscale,
       'Rol',
       Rol
FROM C6MartPeriodico.ContrattoSEI
WHERE 
	ascii(substring(Rol,@num,len(Rol))) not between 64 and 90 
and ascii(substring(Rol,@num,len(Rol))) not between 97 and 122
and ascii(substring(Rol,@num,len(Rol))) not between 48 and 57
and ascii(substring(Rol,@num,len(Rol))) <> 32
and ascii(substring(Rol,@num,len(Rol))) <> 40
and ascii(substring(Rol,@num,len(Rol))) <> 41
and ascii(substring(Rol,@num,len(Rol))) <> 43
and ascii(substring(Rol,@num,len(Rol))) <> 44
and ascii(substring(Rol,@num,len(Rol))) <> 45
and ascii(substring(Rol,@num,len(Rol))) <> 46
and ascii(substring(Rol,@num,len(Rol))) <> 95
and ascii(substring(Rol,@num,len(Rol))) <> 39
and ascii(substring(Rol,@num,len(Rol))) <> 47
and ascii(substring(Rol,@num,len(Rol))) <> 63


set @num = @num + 1	
	
end	


select distinct * from #tab_temp

-------------------------------------------------------

--SELECT * FROM C6MartPeriodico.ContrattoSEI
--WHERE
--	Email like '%¿%'
--OR
--	Indirizzo like '%¿%'
--OR
--	CAP like '%¿%'
--OR
--	Citta like '%¿%'
--OR
--	Prov like '%¿%'
--OR
--	Nazione like '%¿%'
--OR
--	Presso like '%¿%'
--OR
--	Rol like '%¿%'
--OR
--	Email like '%Ç%'
--OR
--	Indirizzo like '%Ç%'
--OR
--	CAP like '%Ç%'
--OR
--	Citta like '%Ç%'
--OR
--	Prov like '%Ç%'
--OR
--	Nazione like '%Ç%'
--OR
--	Presso like '%Ç%'
--OR
--	Rol like '%Ç%'
--OR
--	Email like '%À%'
--OR
--	Indirizzo like '%À%'
--OR
--	CAP like '%À%'
--OR
--	Citta like '%À%'
--OR
--	Prov like '%À%'
--OR
--	Nazione like '%À%'
--OR
--	Presso like '%À%'
--OR
--	Rol like '%À%'
--OR
--	Email like '%É%'
--OR
--	Indirizzo like '%É%'
--OR
--	CAP like '%É%'
--OR
--	Citta like '%É%'
--OR
--	Prov like '%É%'
--OR
--	Nazione like '%É%'
--OR
--	Presso like '%É%'
--OR
--	Rol like '%É%'
--OR
--	Email like '%µ%'
--OR
--	Indirizzo like '%µ%'
--OR
--	CAP like '%µ%'
--OR
--	Citta like '%µ%'
--OR
--	Prov like '%µ%'
--OR
--	Nazione like '%µ%'
--OR
--	Presso like '%µ%'
--OR
--	Rol like '%µ%'


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_AGGIORNA_ERRORI_GENERAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[CHECK_AGGIORNA_ERRORI_GENERAZIONE] AS BEGIN

	UPDATE
		C6MARTPERIODICO.CONTROLLO_TRIMESTRALE 
	SET
		STATO_REPORT = 11,
		DATA_TRANSIZIONE = GETDATE()	 
	WHERE  
		STATO_REPORT IN (1,10)
		AND RETE+COD_FISCALE IN 
			(SELECT RETE+COD_FISCALE FROM C6MARTPERIODICO.SCARTI)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_CTV_PER_NEEDAREA_PER_CLIENT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		Marian Zaki
-- Create date: 31 ottobre 2010
-- Description:	Compare the counter value calculated per need area and client between SP of section S57 and section S43
-- =============================================

CREATE procedure [C6MartPeriodico].[CHECK_CTV_PER_NEEDAREA_PER_CLIENT]

AS
BEGIN
DECLARE @reteLoop   varchar(1)
DECLARE @cod_FiscaleLoop varchar(16)

Create Table #tempDifferenceInCTVPerAreaPerClient (
RETE varchar(1),
Cod_Fiscale varchar(16),
NeedArea VARCHAR(20),
S57CTV decimal(38,3),
S43CTV decimal(38,3)
)



CREATE TABLE #tempS57Output (
	NeedArea VARCHAR(20), 
	AreaName VARCHAR(30),
	PercentualeModello decimal(38,3),
	PercentualeAttuale decimal(38,3),
	ControvaloreAttuale decimal(38,3), 
	ControvaloreModello decimal(38,3),
	Totale_Percentuale decimal (15,3),
	DifferenzaEuro decimal (15,3),
	DifferenzaPercentuale decimal (15,3),
	var_needarea decimal (15,3),
	var_needareaString varchar(5),
	copertura_needarea decimal(38,3),
	copertura_needareaString varchar(5),
	Nota int,
	somma_controvalAttuale decimal(38,3),
	somma_controvalModello decimal(38,3),
	somma_percentualeAttuale decimal(38,3),
	somma_percentualeModello decimal(38,3),
	var_tot decimal(38,3),
	var_totString varchar(5),
	var_tot_pir decimal(38,3),
	var_tot_pirString varchar(5),
	copertura_tot decimal(38,3),
	copertura_totString varchar(5),
	copertura_tot_pir decimal(38,3),
	copertura_tot_pirString varchar(5),
	VAR_RISFIN  decimal(38,3),
	VAR_RISFINSTRING varchar(5),
	copertura_risfin decimal(38,3),
	copertura_risfinString varchar(5),
	ordinamento int)



CREATE TABLE #tempS43Output (
	NeedArea VARCHAR(20), 
	AreaName VARCHAR(30),
	areasortorder int,
	nome_progetto varchar(50),
	somma_controval_needarea decimal(38,3),
	versato_needarea decimal(38,3),
	versato_needareaString varchar(5),
	MinusPlusValenza_needarea decimal(38,3),
	MinusPlusValenza_needareaString varchar(5),
	somma_controval_need_prog decimal(38,3),
	versato_need_prog decimal(38,3),
	versato_need_progString varchar(5),
	MinusPlusValenza_need_prog decimal(38,3),
	MinusPlusValenza_need_progString varchar(5),
	somma_var_need_prog decimal(38,3),
	somma_copertura_need_prog decimal(38,3),
	var_needarea decimal (15,3),
	var_needareaString varchar(5),
	copertura_needarea decimal (15,3),
	copertura_needareaString varchar(30),
	var_need_prog decimal(38,3),
	var_need_progString varchar(5),
	copertura_need_prog decimal(38,3),
	dataSottoscrizione varchar(10),
	ContrattoDossier varchar(11),
	Descrizione varchar(128),
	Controvalore decimal(38,3),
	VersatoNetto decimal(38,3),
	VersatoNettoString varchar(5),
	MinusPlusValenza decimal(38,3),
	MinusPlusValenzaString varchar(5),
	VaRprodotto decimal(38,3),
	varProdottoString varchar(5),
	Coperturaprodotto decimal(38,3),
	PerformanceYTD decimal(38,3),
	performanceDS decimal(38,3),
	partitaViaggiante decimal(38,3),
	nota_needarea  varchar(1),
	creditrisk int,
	creditriskstring varchar(5))




	

DECLARE allCleints_cursor CURSOR FOR  
--SELECT  distinct [Rete]
--      ,[Cod_Fiscale]
--      
--  FROM C6MartPeriodico.PATRIMONIO_BF
--where cod_fiscale in (select cod_fiscale from c6mart.contrattosei where cod_Esito=1)
--and cod_fiscale in ( select cod_fiscale from campionereport)



SELECT  distinct  [Rete]   ,[Cod_Fiscale]      
FROM C6MartPeriodico.PATRIMONIO_BF
--where cod_fiscale in (select cod_fiscale from c6mart.contrattosei where cod_Esito=1)
 Where [Cod_Fiscale] <> 'DNTTMS48E03F205P'
--and [Cod_Fiscale] = 'BRGNNI46T05H555X'

OPEN allCleints_cursor   
FETCH NEXT FROM allCleints_cursor INTO @reteLoop,   @cod_FiscaleLoop
WHILE @@FETCH_STATUS = 0   
BEGIN   
       


		print @reteLoop
		print @cod_FiscaleLoop
		INSERT INTO #tempS57Output 
		EXEC C6MartPeriodico.PL_S57ConfrontoPiramidi 		
		@Rete = @reteLoop,
		@CodiceFiscale = @cod_FiscaleLoop
		
		

		INSERT INTO #tempS43Output
		EXEC C6MartPeriodico.PL_S43DettaglioProdottiBF 		
		@Rete = @reteLoop,
		@CodiceFiscale = @cod_FiscaleLoop
		
		
--		select * from #tempS43Output

		insert into #tempDifferenceInCTVPerAreaPerClient
		select  @reteLoop  ,@cod_FiscaleLoop  ,
		S57.NeedArea as NeedArea, 
		SUM(S57.ControvaloreAttuale) as S57TotalCounterValuePerCleint,
		case when SUM(tempS43.Controvalore) is null then 0 else SUM(tempS43.Controvalore) end  as S43TotalCounterValuePerCleint
			from #tempS57Output as S57 
			left outer join ( select  S43.NeedArea,  SUM(S43.Controvalore)   as Controvalore
							  from #tempS43Output as S43 
							  where S43.NeedArea not in ('Cc','Na') 
							  group by S43.NeedArea) tempS43
			on S57.NeedArea = tempS43.NeedArea
			where S57.NeedArea not in ('Cc', 'Na')
			group by S57.NeedArea   
			
--select * from #tempDifferenceInCTVPerAreaPerClient

		
		--select * from #tempDifferenceInCTVPerAreaPerClient
		
		delete from #tempS43Output
		delete from #tempS57Output
       FETCH NEXT FROM allCleints_cursor INTO @reteLoop,   @cod_FiscaleLoop     
END   

CLOSE allCleints_cursor   
DEALLOCATE allCleints_cursor 


		
select * from #tempDifferenceInCTVPerAreaPerClient as Diff
where Diff.S43CTV <> Diff.S57CTV
--group by   Diff.Rete, Diff.Cod_Fiscale, Diff.NeedArea

		


DROP TABLE #tempS57output
DROP TABLE #tempS43output
DROP TABLE #tempDifferenceInCTVPerAreaPerClient

end







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_CTV_ISSUES]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'S','TMOSST58P03L840W'
CREATE procedure [C6MartPeriodico].[CHECK_GET_CTV_ISSUES]

AS
BEGIN
	
SELECT Rete, Cod_Fiscale , SUM(S57CTV) as S57CTV, SUM(S43_S47CTV) as S43_S47CTV, SUM(S10CTV) as S10CTV ,  SUM(S75CTV) as S75CTV 
FROM Check_DifferenceInCTVPerClient 
where S57CTV <> S43_S47CTV 
OR   S57CTV  <> S10CTV 
OR   S57CTV <>  S75CTV  
group by   Rete, Cod_Fiscale

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_CTV_ISSUES_PER_AREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================

CREATE procedure [C6MartPeriodico].[CHECK_GET_CTV_ISSUES_PER_AREA]

AS
BEGIN
	
--SELECT Rete, Cod_Fiscale , NeedArea, SUM(S57CTV) as S57CTV, SUM(S43CTV) as S43CTV 
SELECT Rete, Cod_Fiscale , NeedArea,  S57CTV,  S43CTV 

FROM  dbo.Check_DifferenceInCTVPerClientPerArea
where S57CTV <> S43CTV 
 
--group by   Rete, Cod_Fiscale ,NeedArea

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_CUSTOMERS_FOR_CHECK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================

CREATE procedure [C6MartPeriodico].[CHECK_GET_CUSTOMERS_FOR_CHECK]
-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT  distinct  [Rete]   ,[Cod_Fiscale]      
FROM C6MartPeriodico.PATRIMONIO_BF
--where cod_fiscale in (select cod_fiscale from c6mart.contrattosei where cod_Esito=1)
--And [Cod_Fiscale] <> 'DNTTMS48E03F205P'
Where  [Cod_Fiscale] <>'CVLGRL50A23C469M'
--AND   [Cod_Fiscale] = 'LBRRMN81R48L388B'
--AND  [Cod_Fiscale] IN ('BAASFN72B19E472H' ,'BAEMJA43E70Z133C')

--Select distinct   [Rete] , [Cod_Fiscale] FROM C6MartPeriodico.PATRIMONIO_BF
--where [Cod_Fiscale] <> 'DNTTMS48E03F205P'

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_NeedAreas]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE procedure [C6MartPeriodico].[CHECK_GET_NeedAreas]


AS
BEGIN

SELECT [ID_AREA] 
FROM [C6MartPeriodico].[AREA_BISOGNO]

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_Perc_ISSUES]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
CREATE procedure [C6MartPeriodico].[CHECK_GET_Perc_ISSUES]
-- Add the parameters for the stored procedure here
AS
BEGIN

select * 
from Check_TotalPercPerClient
where S10Perc <> 100

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_S10_Negative_BankAccount]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
-- C6MartPeriodico].[CHECK_GET_S10_Negative_BankAccount] 'f','LGGRRT61R13L736R'
CREATE PROCEDURE [C6MartPeriodico].[CHECK_GET_S10_Negative_BankAccount]
@Rete char(1), 
@CodiceFiscale varchar(16)
AS
BEGIN

SELECT
NOMEPATRIMONIO,
ORDINAMENTO,
ASSETCLASSNAME,
CONTROVALORE,
PERCENTUALE,
TOTALE
FROM
(
	
		SELECT 
				'BF' AS NOMEPATRIMONIO, 
			9999 AS ORDINAMENTO ,
			'' AS ASSETCLASSID ,
			'' AS ASSETCLASSNAME,
			sum(saldo) as CONTROVALORE,
			0.00 AS PERCENTUALE ,
			sum(saldo) as totale 
		  FROM [C6STAMPECENTRALIZZATE].[C6MARTPERIODICO].anag_cc
		  WHERE
		  RETE= @Rete
		  AND COD_FISCALE= @CodiceFiscale
) K
WHERE TOTALE < 0

END









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'S','TMOSST58P03L840W'
CREATE procedure [C6MartPeriodico].[CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET]
@Rete char(1), 
@CodiceFiscale varchar(16)
AS
BEGIN
	
		SELECT 
--		'BF' AS NOMEPATRIMONIO, 
--		9999 AS ORDINAMENTO ,
--		'' AS ASSETCLASSID ,
--		'' AS ASSETCLASSNAME,
		CONTROVALORE 
--		0.00 AS PERCENTUALE ,
--		--CONTROVALORE 
--		CONTROVALORE as totale
		  FROM [C6STAMPECENTRALIZZATE].[C6MARTPERIODICO].[VPATRIMONIONONRAPPRESENTABILEASSET]
		  WHERE RETE= @Rete
		  AND COD_FISCALE= @CodiceFiscale

END










GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET_ALL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'S','TMOSST58P03L840W'
CREATE procedure [C6MartPeriodico].[CHECK_GET_S10_PATRIMONIO_NON_RAPPRESENTABILE_ASSET_ALL]
--@Rete char(1), 
--@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT [RETE]
      ,[COD_FISCALE]
      ,[Controvalore]
  FROM [C6STAMPECENTRALIZZATE].[C6MartPeriodico].[vPatrimonioNonRappresentabileAsset]

END












GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_GET_VAR_ISSUES]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'S','TMOSST58P03L840W'
CREATE procedure [C6MartPeriodico].[CHECK_GET_VAR_ISSUES]

AS
BEGIN
	
SELECT Rete, Cod_Fiscale , S57VAR  , S75VAR
FROM Check_DifferenceInVARPerClient 


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_INSERT_CTV_PER_AREA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================

CREATE procedure [C6MartPeriodico].[CHECK_INSERT_CTV_PER_AREA]
-- Add the parameters for the stored procedure here
@Rete char(1), 
@CodiceFiscale varchar(16),
@NeedArea varchar(20),
@S57CTV decimal(38,3),
@S43CTV decimal(38,3)

AS
BEGIN

insert into  Check_DifferenceInCTVPerClientPerArea([RETE] ,[Cod_Fiscale] ,[NeedArea] ,[S57CTV] ,[S43CTV]) 
VALUES ( @Rete, @CodiceFiscale,  @NeedArea,@S57CTV , @S43CTV )

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_INSERT_CTV_PER_SECTION]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'S','TMOSST58P03L840W'
CREATE procedure [C6MartPeriodico].[CHECK_INSERT_CTV_PER_SECTION]
-- Add the parameters for the stored procedure here
@Rete char(1), 
@CodiceFiscale varchar(16),
@S57CTV decimal(38,3),
@S43_S47CTV decimal(38,3),
@S10CTV decimal(38,3),
@S75CTV decimal(38,3)
AS
BEGIN

insert into Check_DifferenceInCTVPerClient ([RETE] ,[Cod_Fiscale] ,[S57CTV] ,[S43_S47CTV] ,[S10CTV] , [S75CTV]) 
VALUES ( @Rete, @CodiceFiscale, @S57CTV, @S43_S47CTV, @S10CTV, @S75CTV )

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_INSERT_S10_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
CREATE procedure [C6MartPeriodico].[CHECK_INSERT_S10_PERC]
-- Add the parameters for the stored procedure here
@Rete char(1), 
@CodiceFiscale varchar(16),
@S10Perc decimal(38,3)

AS
BEGIN

insert into Check_TotalPercPerClient ([RETE] ,[Cod_Fiscale] ,[S10Perc]) 
VALUES ( @Rete, @CodiceFiscale, @S10Perc )

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_INSERT_VAR_PER_SECTION]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================

CREATE procedure [C6MartPeriodico].[CHECK_INSERT_VAR_PER_SECTION]
-- Add the parameters for the stored procedure here
@Rete char(1), 
@CodiceFiscale varchar(16),
@S57VAR decimal(38,3),
@S75VAR decimal(38,3)
AS
BEGIN

insert into Check_DifferenceInVARPerClient ([RETE] ,[Cod_Fiscale] ,[S57VAR] , [S75VAR]) 
VALUES ( @Rete, @CodiceFiscale, @S57VAR,  @S75VAR )

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_PROFILO_SCADUTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure  
  
-- ===============================================================  
-- Author:  colaianni-consoli  
-- Create date: 28/06/2011  
-- Description: Setta a stato 3 i report con profilo MIFID scaduto   
-- ===============================================================  
  
CREATE procedure [C6MartPeriodico].[CHECK_PROFILO_SCADUTO]  
AS  
BEGIN  
  
  
TRUNCATE TABLE C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO  
INSERT INTO C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO  
SELECT a.rete, a.cod_fiscale, a.codicecontratto   
from   
-- Modifica MV 18/04/2015  
--c6martperiodico.rp_vcontrattipergenerazionereport a  
C6stagingPERIODICO.appo_contratti_v a  
inner join C6MARTPERIODICO.MIFID b  
on a.rete = b.rete  
and a.cod_fiscale = b.cod_fiscale  
where b.SCADUTO=1  
  
UPDATE   
 C6MARTPERIODICO.CONTROLLO_TRIMESTRALE   
SET  
 STATO_REPORT = 3,  
 DATA_TRANSIZIONE = GETDATE()  
WHERE   
 RETE+COD_FISCALE IN  
 (  
  SELECT RETE+COD_FISCALE   
  FROM C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO  
   )  
  
  
  
--UPDATE   
-- C6MARTPERIODICO.CONTROLLO_TRIMESTRALE   
--SET  
-- STATO_REPORT = 3,  
-- DATA_TRANSIZIONE = GETDATE()  
--WHERE   
-- RETE+COD_FISCALE NOT IN  
-- (  
-- SELECT * FROM C6MARTPERIODICO.MIFID WHERE SCADUTO=1  
-- )  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_PROFILO_SCADUTO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- ===============================================================
-- Author:		colaianni-consoli
-- Create date: 28/06/2011
-- Description:	Setta a stato 3 i report con profilo MIFID scaduto 
-- ===============================================================

CREATE procedure [C6MartPeriodico].[CHECK_PROFILO_SCADUTO_pre_selective]
AS
BEGIN


TRUNCATE TABLE C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO
INSERT INTO C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO
SELECT a.rete, a.cod_fiscale, a.codicecontratto 
from 
-- Modifica MV 18/04/2015
--c6martperiodico.rp_vcontrattipergenerazionereport a
C6stagingPERIODICO.appo_contratti a
inner join C6MARTPERIODICO.MIFID b
on a.rete = b.rete
and a.cod_fiscale = b.cod_fiscale
where b.SCADUTO=1

UPDATE 
	C6MARTPERIODICO.CONTROLLO_TRIMESTRALE 
SET
	STATO_REPORT = 3,
	DATA_TRANSIZIONE = GETDATE()
WHERE 
	RETE+COD_FISCALE IN
	(
		SELECT RETE+COD_FISCALE 
		FROM C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO
  	)



--UPDATE 
--	C6MARTPERIODICO.CONTROLLO_TRIMESTRALE 
--SET
--	STATO_REPORT = 3,
--	DATA_TRANSIZIONE = GETDATE()
--WHERE 
--	RETE+COD_FISCALE NOT IN
--	(
--	SELECT * FROM C6MARTPERIODICO.MIFID WHERE SCADUTO=1
--	)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_PROFILOSCADUTO_RFAZERO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure  
  
-- ===========================================================================  
-- Author:  Emanuele atzeri  
-- Create date: 28/06/2011  
-- Description: Setta a stato 23 i report con profilo MIFID scaduto e RFA a 0  
-- ===========================================================================  
  
CREATE procedure [C6MartPeriodico].[CHECK_PROFILOSCADUTO_RFAZERO]  
AS  
BEGIN  
  
UPDATE   
 C6MARTPERIODICO.CONTROLLO_TRIMESTRALE   
SET  
 STATO_REPORT = 23,  
 DATA_TRANSIZIONE = GETDATE()  
WHERE RETE+COD_FISCALE IN  
(  
 select a.rete+a.cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO a  
 inner join C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO b  
 on a.rete = b.rete  
 and a.cod_fiscale = b.cod_fiscale  
)  
  
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_PROFILOSCADUTO_RFAZERO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- ===========================================================================
-- Author:		Emanuele atzeri
-- Create date: 28/06/2011
-- Description:	Setta a stato 23 i report con profilo MIFID scaduto e RFA a 0
-- ===========================================================================

CREATE procedure [C6MartPeriodico].[CHECK_PROFILOSCADUTO_RFAZERO_pre_selective]
AS
BEGIN

UPDATE 
	C6MARTPERIODICO.CONTROLLO_TRIMESTRALE 
SET
	STATO_REPORT = 23,
	DATA_TRANSIZIONE = GETDATE()
WHERE RETE+COD_FISCALE IN
(
	select a.rete+a.cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO a
	inner join C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO b
	on a.rete = b.rete
	and a.cod_fiscale = b.cod_fiscale
)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_RFA_ZERO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure  
  
  
-- =================================================  
-- Author:  COLAIANNI-CONSOLI  
-- Create date: 28/06/2011  
-- Description: SETTA A STATO 2 I REPORT CON RFA=0   
-- =================================================  
  
CREATE procedure [C6MartPeriodico].[CHECK_RFA_ZERO]  
AS  
BEGIN  
  
TRUNCATE TABLE C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO  
INSERT INTO C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO  
SELECT a.rete, a.cod_fiscale, a.codicecontratto   
from   
--c6martperiodico.rp_vcontrattipergenerazionereport a  
C6stagingPERIODICO.appo_contratti_v a  
left join C6MARTPERIODICO.PATRIMONIO_BF b  
on a.rete = b.rete  
and a.cod_fiscale = b.cod_fiscale  
where b.rete is null  
  
UPDATE   
 C6MARTPERIODICO.CONTROLLO_TRIMESTRALE   
SET  
 STATO_REPORT = 2,  
 DATA_TRANSIZIONE = GETDATE()  
WHERE   
 RETE+COD_FISCALE IN  
 (  
  SELECT RETE+COD_FISCALE FROM C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO  
 )  
  
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CHECK_RFA_ZERO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure


-- =================================================
-- Author:		COLAIANNI-CONSOLI
-- Create date: 28/06/2011
-- Description:	SETTA A STATO 2 I REPORT CON RFA=0 
-- =================================================

CREATE procedure [C6MartPeriodico].[CHECK_RFA_ZERO_pre_selective]
AS
BEGIN

TRUNCATE TABLE C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO
INSERT INTO C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO
SELECT a.rete, a.cod_fiscale, a.codicecontratto 
from 
--c6martperiodico.rp_vcontrattipergenerazionereport a
C6stagingPERIODICO.appo_contratti a
left join C6MARTPERIODICO.PATRIMONIO_BF b
on a.rete = b.rete
and a.cod_fiscale = b.cod_fiscale
where b.rete is null

UPDATE 
	C6MARTPERIODICO.CONTROLLO_TRIMESTRALE 
SET
	STATO_REPORT = 2,
	DATA_TRANSIZIONE = GETDATE()
WHERE 
	RETE+COD_FISCALE IN
	(
		SELECT RETE+COD_FISCALE FROM C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO
	)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CheckQuadraturaRfa0Mifid]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure
-- =============================================
-- Author:		Fabrizio Caruso
-- Create date: 10/01/2014
-- Description:	Controllo Quadratura Rfa0-Mifid
-- =============================================
CREATE procedure [C6MartPeriodico].[CheckQuadraturaRfa0Mifid]
AS
BEGIN
	

	truncate TABLE dbo.CheckQuadraturaProfiloRfaMifid 
	
	
insert into dbo.CheckQuadraturaProfiloRfaMifid 
	Select a.*
    from (
select rete as Rete,cod_fiscale as Codice_Fiscale,'MIFID-Manca su lista Fideuram' as Tipo_Controllo,getdate() as Data_Operazione 
from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO
except
select rete as Rete,codfis as Codice_Fiscale,'MIFID-Manca su lista Fideuram' as  Tipo_Controllo ,getdate() as Data_Operazione  
from  dbo.CheckMifidScirocco
) as a

insert into dbo.CheckQuadraturaProfiloRfaMifid 
	Select a.*
    from (
select rete as Rete,codfis as Codice_Fiscale,'MIFID-Manca su lista HP' as Tipo_Controllo,getdate() as Data_Operazione 
from dbo.CheckMifidScirocco
except
select rete as Rete,cod_fiscale as Codice_Fiscale,'MIFID-Manca su lista HP' as  Tipo_Controllo ,getdate() as Data_Operazione  
from  C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO
) as a


insert into dbo.CheckQuadraturaProfiloRfaMifid 
Select a.*
    from (
select rete as Rete,cod_fiscale as Codice_Fiscale,'RFA0-Manca su lista Fideuram' as Tipo_Controllo,getdate() as Data_Operazione 
from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO
except
select rete as Rete,codfis as Codice_Fiscale,'RFA0-Manca su lista Fideuram' as  Tipo_Controllo ,getdate() as Data_Operazione  
from  dbo.CheckRfaScirocco
) as a

insert into dbo.CheckQuadraturaProfiloRfaMifid 
Select a.*
    from (
select rete as Rete,codfis as Codice_Fiscale,'RFA0-Manca su lista HP' as Tipo_Controllo,getdate() as Data_Operazione 
from dbo.CheckRfaScirocco
except
select rete as Rete,cod_fiscale as Codice_Fiscale,'RFA0-Manca su lista HP' as  Tipo_Controllo ,getdate() as Data_Operazione  
from  C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO
) as a


END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Controlla_Stato_Stampa_Cruscotto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[Controlla_Stato_Stampa_Cruscotto]
AS


BEGIN

truncate table [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]

declare @conteggio_prima int
declare @conteggio_dopo int

insert into [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]
select  convert(varchar, getdate(), 121) as data_prima,count(*) as conteggio_prima,0 as data_dopo,0 as conteggio_dopo
 from c6martperiodico.controllo_trimestrale
 where stato_report=4
 group by stato_report
 having count(*)> 0

 WAITFOR DELAY '03:00:00'

update [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]
set conteggio_dopo=(select count(*) as conteggio_dopo
 from c6martperiodico.controllo_trimestrale
 where stato_report=4
 group by stato_report
 having count(*)> 0),
 data_dopo=convert(varchar, getdate(), 121)

 --select * from [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]
 select @conteggio_prima = conteggio_prima from [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]
 select @conteggio_dopo = conteggio_dopo from [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]
 if(@conteggio_prima=@conteggio_dopo)
 begin 
 print('OK')
 end
 else
 begin
 insert into [C6MartPeriodico].[TB_ST_Controlla_Stato_Stampa_Cruscotto]
 select * from [C6MartPeriodico].[TB_Controlla_Stato_Stampa_Cruscotto]
 exec [C6MartPeriodico].[Controlla_Stato_Stampa_Cruscotto] 

 end

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CREA_FIRMA_PROMOTORE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[CREA_FIRMA_PROMOTORE] as
begin
update  [C6StagingPeriodico].[ADS4WS_PROMOTORI]
set firma = case when rete = 'F' then 'R'+codice
				else  'P'+codice end,

prefisso = case when rete = 'F' then 'R'
				else  'P'end


end

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]
  @codiceFiscale as char(16)  = ''	
AS
BEGIN
   IF @codiceFiscale <> ''
        SELECT b.*,a.dtstamp,a.errormessage 
		FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b
		left join C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR a
		on a.codicefiscale = b.codicefiscale and a.rete=b.rete where 1=1
		and  b.codicefiscale = @codiceFiscale
	DECLARE @dt AS DATETIME
	DECLARE @dt2 AS DATETIME
	DECLARE @QUANTI AS INT
	DECLARE @APP AS varchar(100)
	PRINT '**********************************************************************'
    SELECT @dt =  min(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    SELECT @dt2 = max(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    set @APP =   'DataInizio ' + convert(varchar,@dt,103) + ' ' + convert(varchar,@dt,114)   
    IF (SELECT COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab in(0,1,2,3)) = 0    
    SET @APP = @APP + ' tempo totale di elaborazione ' ELSE  SET @APP = @APP + ' tempo parziale di elaborazione '        
    DECLARE @s bigint;
	DECLARE @mi int;
	DECLARE @h int;
	DECLARE @d int;
	SET @d=0
	SET @h=0
	SET @mi=0
	SET @s=0
	SELECT @s = DATEDIFF(second,@dt,getdate()) 
	IF @s <> 0 BEGIN
	 SET @mi = @s / 60;
	 SET @s = @s % 60;
	END;
	IF @mi <> 0 BEGIN
	 SET @h = @mi / 60;
	 SET @mi = @mi % 60;
	END;
	IF @h <> 0 BEGIN
	 SET @d = @h / 24;
	 SET @h = @h % 24;
	END;	
	SET @APP = @APP +  'Giorni:' + CONVERT( VARCHAR(3) , @d ) + ' Ore:' + CONVERT( VARCHAR(2) , @h ) + ' Minuti:' + CONVERT( VARCHAR(2) , @mi ) + ' Secondi:' + CONVERT( VARCHAR(2) , @s );
    IF @APP IS NULL   SET @APP = 'STANDBY'  
    PRINT  @APP
	PRINT '**********************************************************************'
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab in(0,1,2)    
    PRINT  'daElaborare						' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=3  
    PRINT  'inElaborazione					' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=10  
    PRINT  'Elaborati						' + convert(VARCHAR,@QUANTI)   
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-1   
    PRINT  'noElaborabili  ( Scartati-1 )	' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=4   
    PRINT  'Da NON Elaborare				' + convert(VARCHAR,@QUANTI)       
    SELECT @QUANTI = COUNT(*)  FROM [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]   
    PRINT  'ScartatiTAB						' + convert(VARCHAR,@QUANTI)
    PRINT '**********************************************************************' 
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-2 
    PRINT  'Scartati-2       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-3 
    PRINT  'Scartati-3       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab<-3 
    PRINT  'Scartati-n       ' + convert(VARCHAR,@QUANTI)   
    PRINT '**********************************************************************'    
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi > -1
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 1 
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 
	PRINT 'ELABORATI ********   ' + convert(VARCHAR,@QUANTI)
	
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi > -1 
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 1 
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 
	PRINT 'IN ELABORAZIONE ********   ' + convert(VARCHAR,@QUANTI)	
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2and tipocliente = 0 and isdiagnosi > -1
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2
	PRINT 'SCARTATI-2 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi > -1
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3
	PRINT 'SCARTATI-3 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi > -1
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3
	PRINT 'SCARTATI-n *******   ' + convert(VARCHAR,@QUANTI)
	/* SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 0 and isdiagnosi > -1
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1                     
	PRINT 'SCARTATI-1 *******   ' + convert(VARCHAR,@QUANTI)      */ 
	PRINT ' '
    PRINT '**********************************************************************' 
    PRINT 'ELAB 0 DA ELABORARE PRIORITA ALTA'--[C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]
	PRINT 'ELAB 1 DA ELABORARE PRIORITA MEDIA'
	PRINT 'ELAB 2 DA ELABORARE PRIORITA NORMALE'
	PRINT 'ELAB 3 IN ELABORAZIONE'
	PRINT 'ELAB 4 DA NON ELABORARE'
	PRINT 'ELAB 10 ELABORATO'
	PRINT 'ELAB -1 SCARTO DA DATATHREAD'
	PRINT 'ELAB -2 ERRORE APPLICATIVO'
	PRINT 'ELAB -3 ERRORE APPLICATIVO generatorpdf'
	PRINT 'ELAB < -3 ERRORE APPLICATIVO non assegnati'
	PRINT '**********************************************************************'
	 
      
 

   
  
END

 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE_FILE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE_FILE]
	
AS
BEGIN
	DECLARE @dt AS DATETIME
	DECLARE @dt2 AS DATETIME
	DECLARE @QUANTI AS INT
	DECLARE @APP AS varchar(100)
	declare @ooo as VARCHAR (2000)
	SET @ooo = ''
	
	set @ooo =  @ooo  + '\r\n' +   '**********************************************************************'
    SELECT @dt =  min(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    SELECT @dt2 = max(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    -- FC 02/03/2015 Aggiornamento Convert 
    set @APP =   'DataInizio ' + convert(varchar,@dt,120)
    
   
    IF (SELECT COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab in(0,1,2,3)) = 0    
          SET @APP = @APP + ' tempo totale di elaborazione '
     ELSE  
          SET @APP = @APP + ' tempo parziale di elaborazione '        
    SET @APP = @APP + convert(VARCHAR,DATEADD(second,DATEDIFF(second,@dt,getdate()), convert(varchar,@dt,102)) ,108) 
    IF @APP IS NULL   SET @APP = 'STANDBY'  
    set @ooo = @ooo + '\r\n '  +   @APP
	set @ooo = @ooo + '\r\n '  + '**********************************************************************'
    set @ooo = @ooo + '\r\n '  + '**********************************************************************'
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab in(0,1,2)    
    set @ooo = @ooo + '\r\n '  +  'daElaborare				' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=3  
    set @ooo = @ooo + '\r\n '  +  'inElaborazione				' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=10  
    set @ooo = @ooo + '\r\n '  +  'Elaborati					' + convert(VARCHAR,@QUANTI)   
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-1   
    set @ooo = @ooo + '\r\n '  +  'noElaborabili  ( Scartati-1 )			' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=4   
    set @ooo = @ooo + '\r\n '  +  'Da NON Elaborare				' + convert(VARCHAR,@QUANTI)       
    SELECT @QUANTI = COUNT(*)  FROM [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]   
    set @ooo = @ooo + '\r\n '  +  'ScartatiTAB				' + convert(VARCHAR,@QUANTI)
    set @ooo = @ooo + '\r\n '  + '**********************************************************************' 
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-2 
    set @ooo = @ooo + '\r\n '  +  'Scartati-2       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-3 
    set @ooo = @ooo + '\r\n '  +  'Scartati-3       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab<-3 
    set @ooo = @ooo + '\r\n '  +  'Scartati-n       ' + convert(VARCHAR,@QUANTI)   
        set @ooo = @ooo + '\r\n '  + '**********************************************************************'    
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old				' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi			' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 1 
	set @ooo = @ooo + '\r\n '  + 'Affluent				' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 
	set @ooo = @ooo + '\r\n '  + 'ELABORATI ********		' + convert(VARCHAR,@QUANTI)
	
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old				' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi > -1 
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi			' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 1 
	set @ooo = @ooo + '\r\n '  + 'Affluent				' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 
	set @ooo = @ooo + '\r\n '  + 'IN ELABORAZIONE ********   ' + convert(VARCHAR,@QUANTI)	
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old				' + convert(VARCHAR,@QUANTI)  
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi			' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 1  
	set @ooo = @ooo + '\r\n '  + 'Affluent				' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2
	set @ooo = @ooo + '\r\n '  + 'SCARTATI-2 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old				' + convert(VARCHAR,@QUANTI)  
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi			' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 1  
	set @ooo = @ooo + '\r\n '  + 'Affluent				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3
	set @ooo = @ooo + '\r\n '  + 'SCARTATI-3 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old				' + convert(VARCHAR,@QUANTI)  
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi			' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 1  
	set @ooo = @ooo + '\r\n '  + 'Affluent				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private				' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3
	set @ooo = @ooo + '\r\n '  + 'SCARTATI-n *******   ' + convert(VARCHAR,@QUANTI)
    set @ooo = @ooo + '\r\n '  +  '**********************************************************************'
    set @ooo = @ooo + '\r\n '  +  'ELAB 0 DA ELABORARE PRIORITA ALTA'--[C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]
	set @ooo = @ooo + '\r\n '  +  'ELAB 1 DA ELABORARE PRIORITA MEDIA'
	set @ooo = @ooo + '\r\n '  +  'ELAB 2 DA ELABORARE PRIORITA NORMALE'
	set @ooo = @ooo + '\r\n '  +  'ELAB 3 IN ELABORAZIONE'
	set @ooo = @ooo + '\r\n '  +  'ELAB 4 IN BLACKLIST'
	set @ooo = @ooo + '\r\n '  +  'ELAB 10 ELABORATO'
	set @ooo = @ooo + '\r\n '  +  'ELAB -1 SCARTO DA DATATHREAD'
	set @ooo = @ooo + '\r\n '  +  'ELAB -2 ERRORE APPLICATIVO'
	set @ooo = @ooo + '\r\n '  +  'ELAB -3 ERRORE APPLICATIVO generatorpdf'
	set @ooo = @ooo + '\r\n '  +  'ELAB < -3 ERRORE APPLICATIVO non assegnati'
	set @ooo = @ooo + '\r\n '  +  '**********************************************************************'
	 
     
    
    
     SELECT @ooo, COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab in(0,1,2)
     
END
 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE_FILE_test]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE_FILE_test]
	
AS
BEGIN
	DECLARE @dt AS DATETIME
	DECLARE @dt2 AS DATETIME
	DECLARE @QUANTI AS INT
	DECLARE @APP AS varchar(100)
	declare @ooo as VARCHAR (2000)
	SET @ooo = ''
	
	set @ooo =  @ooo  + '\r\n' +   '**********************************************************************'
    SELECT @dt =  min(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    SELECT @dt2 = max(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    -- FC 02/03/2015 Aggiornamento Convert 
    set @APP =   'DataInizio ' + convert(varchar,@dt,120)
    
   
    IF (SELECT COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab in(0,1,2,3)) = 0    
          SET @APP = @APP + ' tempo totale di elaborazione '
     ELSE  
          SET @APP = @APP + ' tempo parziale di elaborazione '        
    SET @APP = @APP + convert(VARCHAR,DATEADD(millisecond,DATEDIFF(millisecond,@dt,getdate()), convert(varchar,@dt,102)) ,108) 
    IF @APP IS NULL   SET @APP = 'STANDBY'  
    set @ooo = @ooo + '\r\n '  +   @APP
	set @ooo = @ooo + '\r\n '  +  '**********************************************************************'
    set @ooo = @ooo + '\r\n '  + '**********************************************************************'
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab in(0,1,2)    
    set @ooo = @ooo + '\r\n '  +  'daElaborare						' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=3  
    set @ooo = @ooo + '\r\n '  +  'inElaborazione					' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=10  
    set @ooo = @ooo + '\r\n '  +  'Elaborati						' + convert(VARCHAR,@QUANTI)   
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-1   
    set @ooo = @ooo + '\r\n '  +  'noElaborabili  ( Scartati-1 )	' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=4   
    set @ooo = @ooo + '\r\n '  +  'Da NON Elaborare				' + convert(VARCHAR,@QUANTI)       
    SELECT @QUANTI = COUNT(*)  FROM [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]   
    set @ooo = @ooo + '\r\n '  +  'ScartatiTAB						' + convert(VARCHAR,@QUANTI)
    set @ooo = @ooo + '\r\n '  + '**********************************************************************' 
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-2 
    set @ooo = @ooo + '\r\n '  +  'Scartati-2       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-3 
    set @ooo = @ooo + '\r\n '  +  'Scartati-3       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab<-3 
    set @ooo = @ooo + '\r\n '  +  'Scartati-n       ' + convert(VARCHAR,@QUANTI)   
        set @ooo = @ooo + '\r\n '  + '**********************************************************************'    
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old               ' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 1 
	set @ooo = @ooo + '\r\n '  + 'Affluent          ' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 
	set @ooo = @ooo + '\r\n '  + 'ELABORATI ********   ' + convert(VARCHAR,@QUANTI)
	
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old               ' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi > -1 
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 1 
	set @ooo = @ooo + '\r\n '  + 'Affluent          ' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 
	set @ooo = @ooo + '\r\n '  + 'IN ELABORAZIONE ********   ' + convert(VARCHAR,@QUANTI)	
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 1  
	set @ooo = @ooo + '\r\n '  + 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2
	set @ooo = @ooo + '\r\n '  + 'SCARTATI-2 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 1  
	set @ooo = @ooo + '\r\n '  + 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3
	set @ooo = @ooo + '\r\n '  + 'SCARTATI-3 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi = -1
	set @ooo = @ooo + '\r\n '  + 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi > -1
	set @ooo = @ooo + '\r\n '  + 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 1  
	set @ooo = @ooo + '\r\n '  + 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 2  
	set @ooo = @ooo + '\r\n '  + 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3
	set @ooo = @ooo + '\r\n '  + 'SCARTATI-n *******   ' + convert(VARCHAR,@QUANTI)
    set @ooo = @ooo + '\r\n '  +  '**********************************************************************'
    set @ooo = @ooo + '\r\n '  +  'ELAB 0 DA ELABORARE PRIORITA ALTA'--[C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]
	set @ooo = @ooo + '\r\n '  +  'ELAB 1 DA ELABORARE PRIORITA MEDIA'
	set @ooo = @ooo + '\r\n '  +  'ELAB 2 DA ELABORARE PRIORITA NORMALE'
	set @ooo = @ooo + '\r\n '  +  'ELAB 3 IN ELABORAZIONE'
	set @ooo = @ooo + '\r\n '  +  'ELAB 4 IN BLACKLIST'
	set @ooo = @ooo + '\r\n '  +  'ELAB 10 ELABORATO'
	set @ooo = @ooo + '\r\n '  +  'ELAB -1 SCARTO DA DATATHREAD'
	set @ooo = @ooo + '\r\n '  +  'ELAB -2 ERRORE APPLICATIVO'
	set @ooo = @ooo + '\r\n '  +  'ELAB -3 ERRORE APPLICATIVO generatorpdf'
	set @ooo = @ooo + '\r\n '  +  'ELAB < -3 ERRORE APPLICATIVO non assegnati'
	set @ooo = @ooo + '\r\n '  +  '**********************************************************************'
	 
     
    
    
     SELECT @ooo, COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab in(0,1,2)
     
END
 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALEMAU]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--select count(*)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 

--select top 10 * from global_error order by id desc
-- select count(*) from [C6StagingPeriodico].[datiROL2]
-- [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE] BTTPLA59B25F240A 
CREATE procedure [C6MartPeriodico].[CRUSCOTTOTRIMESTRALEMAU]
  @codiceFiscale as char(16)  = ''	
AS
BEGIN
   IF @codiceFiscale <> ''
        SELECT b.*,a.dtstamp,a.errormessage 
		FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b
		left join C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR a
		on a.codicefiscale = b.codicefiscale and a.rete=b.rete where 1=1
		and  b.codicefiscale = @codiceFiscale
	DECLARE @dt AS DATETIME
	DECLARE @dt2 AS DATETIME
	DECLARE @QUANTI AS INT
	DECLARE @APP AS varchar(100)
	PRINT '**********************************************************************'
    SELECT @dt =  min(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    SELECT @dt2 = max(dtstamp)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE dtstamp is not null 
    set @APP =   'DataInizio ' + convert(varchar,@dt,103) + ' ' + convert(varchar,@dt,114)   
    IF (SELECT COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab in(0,1,2,3)) = 0    
    SET @APP = @APP + ' tempo totale di elaborazione ' ELSE  SET @APP = @APP + ' tempo parziale di elaborazione '        
    DECLARE @s bigint;
	DECLARE @mi int;
	DECLARE @h int;
	DECLARE @d int;
	SET @d=0
	SET @h=0
	SET @mi=0
	SET @s=0
	SELECT @s = DATEDIFF(second,@dt,getdate()) 
	IF @s <> 0 BEGIN
	 SET @mi = @s / 60;
	 SET @s = @s % 60;
	END;
	IF @mi <> 0 BEGIN
	 SET @h = @mi / 60;
	 SET @mi = @mi % 60;
	END;
	IF @h <> 0 BEGIN
	 SET @d = @h / 24;
	 SET @h = @h % 24;
	END;	
	SET @APP = @APP +  'Giorni:' + CONVERT( VARCHAR(3) , @d ) + ' Ore:' + CONVERT( VARCHAR(2) , @h ) + ' Minuti:' + CONVERT( VARCHAR(2) , @mi ) + ' Secondi:' + CONVERT( VARCHAR(2) , @s );
    IF @APP IS NULL   SET @APP = 'STANDBY'  
    PRINT  @APP
	PRINT '**********************************************************************'
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab in(0,1,2)    
    PRINT  'daElaborare      ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*)  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=3  
    PRINT  'inElaborazione   ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=10  
    PRINT  'Elaborati        ' + convert(VARCHAR,@QUANTI)   
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-1   
    PRINT  'noElaborabili    ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=4   
    PRINT  'BLACKLIST        ' + convert(VARCHAR,@QUANTI)       
    SELECT @QUANTI = COUNT(*)  FROM [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]   
    PRINT  'ScartatiTAB      ' + convert(VARCHAR,@QUANTI)
    PRINT '**********************************************************************' 
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-2 
    PRINT  'Scartati-2       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab=-3 
    PRINT  'Scartati-3       ' + convert(VARCHAR,@QUANTI)
    SELECT @QUANTI = COUNT(*) from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab<-3 
    PRINT  'Scartati-n       ' + convert(VARCHAR,@QUANTI)   
    PRINT '**********************************************************************'    
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 0 and isdiagnosi = 4
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 1 
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =10 
	PRINT 'ELABORATI ********   ' + convert(VARCHAR,@QUANTI)
	
	SELECT @QUANTI =  count(*)  FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)  
	SELECT @QUANTI = count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 0 and isdiagnosi = 4
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 1 
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI) 
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =3 
	PRINT 'IN ELABORAZIONE ********   ' + convert(VARCHAR,@QUANTI)	
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2and tipocliente = 0 and isdiagnosi = 4
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-2
	PRINT 'SCARTATI-2 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3and tipocliente = 0 and isdiagnosi = 4
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-3
	PRINT 'SCARTATI-3 *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 0 and isdiagnosi = 4
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab <-3
	PRINT 'SCARTATI-n *******   ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 0 and isdiagnosi = -1
	PRINT 'Old               ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 0 and isdiagnosi = 4
	PRINT 'Old con diagnosi  ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 1  
	PRINT 'Affluent          ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1 and tipocliente = 2  
	PRINT 'Private           ' + convert(VARCHAR,@QUANTI)
	SELECT  @QUANTI =  count(*) FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where  elab =-1                     
	PRINT 'SCARTATI-1 *******   ' + convert(VARCHAR,@QUANTI)      
    PRINT '**********************************************************************'
    PRINT 'ELAB 0 DA ELABORARE PRIORITA ALTA'--[C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]
	PRINT 'ELAB 1 DA ELABORARE PRIORITA MEDIA'
	PRINT 'ELAB 2 DA ELABORARE PRIORITA NORMALE'
	PRINT 'ELAB 3 IN ELABORAZIONE'
	PRINT 'ELAB 4 IN BLACKLIST'
	PRINT 'ELAB 10 ELABORATO'
	PRINT 'ELAB -1 SCARTO DA DATATHREAD'
	PRINT 'ELAB -2 ERRORE APPLICATIVO'
	PRINT 'ELAB -3 ERRORE APPLICATIVO generatorpdf'
	PRINT 'ELAB < -3 ERRORE APPLICATIVO non assegnati'
	PRINT '**********************************************************************'
	 
      
 

   
  --   SELECT b.*,a.dtstamp,a.errormessage 
  --FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b
  --left join C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR a
  --on a.codicefiscale = b.codicefiscale and a.rete=b.rete where 1=1
  --and  elab< 0
END

 
--select time,* from global_error order by id desc  DELETE global_error


--SELECT * FROM [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]
--SELECT count(*) FROM [C6MartPeriodico].[CRUSCOTTO_CONTRATTISEI]
--select count(*)  from c6martperiodico.contrattosei
--update [C6MartPeriodico].[CRUSCOTTOSWITCH] set elab = 0



--truncate table [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR]	
--truncate  table C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
--insert into C6MartPeriodico.CRUSCOTTO_CONTRATTISEI select  cod_fiscale as codice_fiscale,rete as rete ,4 as elab,null,null,null as dtstamp   from  c6stagingperiodico.appo_contratti
--update [C6MartPeriodico].[CRUSCOTTOSWITCH] set elab = 1
 
 --c6stagingperiodico.appo_contratti  

  --delete C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR where  codicefiscale+rete in (
  --select  codicefiscale+rete  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
  --where elab = -2) 
  --update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  set elab= 2 where elab = 3
  
 --update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 400 where elab = -2
--delete C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR  
--where codicefiscale in (select codicefiscale from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab = 4)
--update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 where elab = 400



 
      
--update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 
--where codicefiscale in 
--(select cod_fiscale from appoCampioneReport where TipoContratto = 'Affluent')
 

--update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 
--where codicefiscale in 
--(select cod_fiscale from appoCampioneReport where TipoContratto = 'private')
 

--update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 
--where codicefiscale in 
--(select cod_fiscale from appoCampioneReport where TipoContratto = 'old')
 
-- update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 
--where codicefiscale in 
-- ('GSTMGS42D51L833Z')
 

 
--   [C6MartPeriodico].[CRUSCOTTOTRIMESTRALE]


 --scartati da datathread SE STATO_REPORT != 2 O 3 --problema
--SELECT a.*,B.STATO_REPORT FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  A
--LEFT JOIN C6MartPeriodico.CONTROLLO_TRIMESTRALE B
--ON A.CODICEFISCALE  = B.COD_fISCALE and a.RETE=B.RETE
--WHERE  A.elab in(0,1,2,-1,4) AND B.STATO_REPORT IN (2,3,23) 
--ORDER BY STATO_REPORT
   
  
 
 
 -- delete C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR  
 --where codicefiscale in (select codicefiscale from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab = -2)
 --update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 where elab = -2


--select * from global_error order by id desc




  --SELECT  'update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 5 where codicefiscale+rete = ''' + b.codicefiscale+b.rete+''''
  --FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b
  --left join C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR a
  --on a.codicefiscale = b.codicefiscale and a.rete=b.rete 
  --left join disallineati2  d
  --on d.rete = b.rete and  d.cod_fiscale = b.codicefiscale  
  --where 1=1
  --and  elab =2
  --and tipocliente = 2
 
  
  
  
  
  
  
   
      
   
   
   
  --      SELECT b.*,a.dtstamp,a.errormessage 
  --FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b
  --left join C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR a
  --on a.codicefiscale = b.codicefiscale and a.rete=b.rete where 1=1
  --and  elab = 4
  
  
 
 --select * from c6mart.contrattosei where cod_fiscale = 'TGLMRA30A04A409N'
 
 
 
-- select * from c6martperiodico.cruscotto_contrattisei
--where elab in (-2,-3,3)

--update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 where elab = -2 
--update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 2 where elab = 3  

 --[C6MartPeriodico].[CRUSCOTTOTRIMESTRALE] CNLMTT75A24C111A

--DGALGO47C44H379A	F	1.OLD con Diagnosi		2.Elaborati		Da stampare
--DGRMRA70L14H703Z	F	1.OLD con Diagnosi		2.Elaborati		Da stampare
--DLARNT59S67Z315W	F	0.OLD					2.Elaborati		Da stampare
--CNLMTT75A24C111A	S	0.OLD					2.Elaborati		Da stampare
 
 
 --select 'update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI set elab = 4 where codicefiscale+rete ='''+ codicefiscale+rete+''''  from  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI where elab = 4
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Decodifica_Concentrazione_Prodotti_Complessi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--[C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225'
CREATE    procedure [C6MartPeriodico].[Decodifica_Concentrazione_Prodotti_Complessi] --'F','SPNTTR67T20F205D'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

declare @adeguato char(1)
select @adeguato= flgconc from C6MartPeriodico.WSEIAN2 where RETE=@Rete and CODFIS=@CodiceFiscale

if(@adeguato='N')
begin

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @TotalePatrimonio = ctv
	FROM
		C6MartPeriodico.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
--
 SELECT
    1 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
	into #temp
FROM
    [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 3

	union all
	SELECT
    2 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 2

	union all
	SELECT
    3 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 1

	-- --20180905 Fine modifica
	order by ordine,Compl_Base desc

	delete from #temp where ordine=1 and SommaPesi<20 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta è <20 
	delete from #temp where ordine=2 and SommaPesi<30 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta è <30 
	delete from #temp where ordine=3 and SommaPesi<50 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta e medio-bassa è <50 

DECLARE @countLimMax VARCHAR(50)
SELECT @countLimMax = count(*) FROM #temp 

DECLARE @maxCompl VARCHAR(50)
select @maxCompl = max(compl_base) from [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta] where rete=@rete and Cod_fiscale=@CodiceFiscale

declare @IndPatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @IndPatrimonio = case when ctv>50000 then 2 
								 when ctv>75000 then 3
								 when ctv>150000 then 4
								else 0 end 
	FROM
		C6MartPeriodico.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
--print(@countLimMax)
--print(@maxCompl)
--print(@IndPatrimonio)

if (@countLimMax=0 and @maxCompl>@IndPatrimonio)
begin
update C6MartPeriodico.WSEIAN2
set FLGCONC = 'A'
where rete=@Rete
and CODFIS=@CodiceFiscale
--print('Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto non coerente rispetto al patrimonio minimo richiesto per la sottoscrizione di tali prodotti.')
end


if (@countLimMax>0 and @maxCompl<=@IndPatrimonio)
begin
update C6MartPeriodico.WSEIAN2
set FLGCONC = 'B'
where rete=@Rete
and CODFIS=@CodiceFiscale
--print('Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto superiore ai limiti massimi stabiliti dalla Banca.')
end

if (@countLimMax>0 and @maxCompl>@IndPatrimonio)
begin
update C6MartPeriodico.WSEIAN2
set FLGCONC = 'C'
where rete=@Rete
and CODFIS=@CodiceFiscale
--print('Il livello di concentrazione di prodotti complessi nel suo portafoglio è NON ADEGUATO in quanto superiore ai limiti massimi stabiliti dalla Banca e non coerente rispetto al patrimonio minimo richiesto per la sottoscrizione di tali prodotti.')
end





end
end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DeleteGruppo_ExcludedList]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[DeleteGruppo_ExcludedList]
	@motivo varchar(200)
AS
BEGIN

Delete FROM [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList_testing]
  WHERE	[DescrErr] 	= @motivo 
		 

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DistinctGruppo_ExcludedList]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[DistinctGruppo_ExcludedList]
AS
BEGIN

SELECT distinct [DescrErr]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList_testing]
		 

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ALL_PATRIMONIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- AUTHOR:		ALESSANDRO TRINGALI
-- CREATE DATE: 18 SETTEMBRE 2009
-- DESCRIPTION:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ALL_PATRIMONIO]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MARTPERIODICO].GETIDELAB()

	-- LOG ESECUZIONE
	INSERT INTO LOG_ESECUZIONE
		(NOME, INIZIO, NOTA)
	VALUES (
		'DM_ALL_PATRIMONIO',
		GETDATE(),
		'ELABORAZIONE TRIMESTRALE'
	)

	TRUNCATE TABLE [C6MartPeriodico].[ALL_PATRIMONIO] 

	INSERT INTO [C6MARTPERIODICO].[ALL_PATRIMONIO]

           (
           [CODICE_FISCALE]
           ,[RETE]
           ,[POSITIONID]
           ,[CATALOGUENAME]
           ,[CATALOGUEID]
           ,[COD_ADEGUATEZZA]
           ,[INTERMEDIARIO]
           ,[PATRIMONIO_INTERMEDIARIO]
           ,[EMITTENTE]
           ,[PATRIMONIO_EMITTENTE]
           ,[COMPLESSITA]
           ,[TIPO_PRODOTTO]
           ,[CONTROVALORE_PRODOTTO]
           ,[AZ_OB]
           ,[PATRIMONIO_AZ_OB_EMIT]
           ,[PATRIM_AZ_OB_EMIT_INTER]   
           ,[PATRIMONIO_COMPLESSIVO] 
           ,[CHIAVE_THR]
           )

SELECT 
       CODICE_FISCALE,
       RETE,
       POSITIONID,
       DATI.CATALOGUENAME,
       CAT.CATALOGUEID,
       CASE
            WHEN ADEGUATEZZA IS NULL
                 THEN CAT.COD_ADEGUATEZZA
            ELSE ADEGUATEZZA
       END AS COD_ADEGUATEZZA,
       INTERMEDIARIO,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,INTERMEDIARIO) AS PATRIMONIO_INTERMEDIARIO,
       EMIT.DESCR AS EMITTENTE,
       CASE
            WHEN EMIT.DESCR IS NULL THEN NULL
            ELSE SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,EMIT.DESCR)
       END AS PATRIMONIO_EMITTENTE,
       CAT.COMPLEX AS COMPLESSITA,
       CAT.TIPOPRODOTTO,
       CONTROVALORE  AS CONTROVALORE_PRODOTTO,
       CASE WHEN CAT.STRTYPE IS NULL
            THEN AZ_OB
            ELSE CAT.STRTYPE
       END AS AZ_OB,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,CASE WHEN CAT.STRTYPE IS NULL THEN AZ_OB ELSE CAT.STRTYPE END,EMIT.DESCR) AS PATRIMONIO_AZ_OB_EMIT,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE,INTERMEDIARIO,CASE WHEN CAT.STRTYPE IS NULL THEN AZ_OB ELSE CAT.STRTYPE END,EMIT.DESCR, POSITIONID) AS PATRIM_AZ_OB_EMIT_INTER,
       SUM(CONTROVALORE) OVER (PARTITION BY CODICE_FISCALE,RETE) AS PATRIMONIO_COMPLESSIVO,
       CHIAVE_THR

  FROM (

       SELECT NULL AS AGENTE,
               C.RETE,
               C.CODICE_FISCALE,
               C.CATALOGUENAME,
               C.CONTROVALORE,
               'BF' AS INTERMEDIARIO,
               SUBSTRING(C.STRINGONA_POS, 1, 57) AS CATALOGUEID,
               C.STRINGONA_POS AS POSITIONID,
               NULL AS ADEGUATEZZA,
               'BF' AS PROVENIENZA,
               NULL AZ_OB,
               '' AS CHIAVE_THR
          FROM C6STAGINGPERIODICO.ALL_CONSUL_ASUL C
         
        union all
        SELECT agente,
               substring(agente,1,1) as rete,
               codicefiscale as codice_FISCALE,
               nome_prodotto as cataloguename,
               SUM(controvalore) AS controvalore,
               intermediario,
				case when codiceisin =  '' then '############' else  codiceisin + replicate(' ', 12-len(codiceisin))  end
				 +
				case when codicemaf =  '' then '###############' else  codicemaf + replicate(' ', 15-len(codicemaf))   end
				+
				case when codiceinterno =  '' then '###############' else  codiceinterno + replicate(' ', 15-len(codiceinterno))   end
				+
				case when codicesottoprodotto =  '' then '###############' else  codicesottoprodotto + replicate(' ', 15-len(codicesottoprodotto))   end

				 as catalogueid,
                      null as positionid,
                      codiceadeguatezza as ADEGUATEZZA ,
                      'PPT' as provenienza,
                      --alberatura,
                      case
                          when substring( alberatura,1,13)='Amm.Titoli.Ob'
                               OR substring( alberatura,1,15)='Amm.Strutturati'
                          then 'OB'
                          when substring( alberatura,1,17)='Amm.Titoli.Azioni'
                               OR substring( alberatura,1,18)='Amm.Titoli.Diritti'
                               OR substring( alberatura,1,20)='Amm.Derivati.Warrant'
                               OR substring( alberatura,1,19)='Amm.Derivati.CovWar'
                          then 'AZ'
                          else null
                       end as az_ob, 
                       CHIAVE_THR
          FROM (SELECT cf_e_pb.agente AS agente,
                       cf_e_pb.codice_fiscale AS codicefiscale,
                       nome_istituto AS intermediario,
                       SUM(paTRIMonio) AS controvalore,
                       REPLACE(codice_isin, '$', '') AS codiceisin,
                       REPLACE(codice_adeguatezza, '$', '') AS codiceadeguatezza,
                       REPLACE(codice_maf, '$', '') AS codicemaf,
                       REPLACE(codice_interno, '$', '') AS codiceinterno,
                       REPLACE(codice_sottoprodotto,
                              '$',
                              ''    ) AS codicesottoprodotto,
                       CASE
                         WHEN traduz_alberat.albero_gerarchia_3 =
                              'Conti correnti' AND
                              tipo_prodotto =
                              'Assets.FinancialAssets.CurrentAccount' THEN
                          'Cc'
                         ELSE
                          'xxx'
                       END AS need_si_o_no_cc,
                       provenienza,
                       CASE
                         WHEN provenienza = 'dati NON in catalogo' THEN
                          1
                         ELSE
                          0
                       END AS prodotti_non_in_catalogo,
                       tipo_prodotto,
                       nome_prodotto,
                       alberatura,
                       CHIAVE_THR
                  FROM (
                        -- asset per dati NON in catalogo
                        SELECT aa.paTRIMonio,
                                aa.chiave_cliente,
                                aa.nome_istituto,
                                bb.codice_isin,
                                bb.codice_adeguatezza,
                                bb.codice_maf,
                                NULL AS codice_interno,
                                NULL AS codice_sottoprodotto,
                                aa.alberatura,
                                aa.provenienza,
                                tipo_prodotto,
                                nomeprodotto AS nome_prodotto,
                                CHIAVE_THR
                          FROM (SELECT patr_tp.paTRIMonio_terzi *
                                        acb.bdpercentage AS paTRIMonio,
                                        patr_tp.chiave_per_cliente AS chiave_cliente,
                                        patr_tp.intermediario AS nome_istituto,
                                        ass.assetclassid,
                                        substring(patr_tp.descrizione_alberatura,
                                               1,
                                               45) AS alberatura,
                                        'dati NON in catalogo' AS provenienza,
                                        patr_tp.descrizione_prodotto AS tipo_prodotto,
                                        patr_tp.nomeprodotto,
                                        CHIAVE_THR
                                   FROM c6stagingperiodico.All_patr_terzi_senza_asset patr_tp,
                                        c6stagingperiodico.acbdenoth                    acb,
                                        c6stagingperiodico.assetclass                   ass
                                  WHERE ass.assetclasslev = 2
                                    AND patr_tp.prodotto_in_catalogo IS NULL
                                    AND patr_tp.chiave_fnc IS NOT NULL
                                    AND acb.f_pfinancial_815c0 = patr_tp.chiave_fnc
                                    AND acb.f_oid$_passe_cdf1a = ass.oid$
                                    ) aa,
                                c6stagingperiodico.all_asset_class_per_promet bb
                         WHERE bb.codice_asset_class_ingresso = aa.assetclassid
                        UNION ALL
                        -- asset per dati in catalogo che hanno cod_adeguatezza valorizzato
                        SELECT patr_tp.paTRIMonio_terzi AS paTRIMonio,
                               patr_tp.chiave_per_cliente AS chiave_cliente,
                               patr_tp.intermediario AS nome_istituto,
                               cat.cod_isin,
                               cat.cod_adeguatezza,
                               cat.cod_maf,
                               cat.cod_interno,
                               cat.cod_sottoprodotto,
                               substring(cat.type$_bcatal_fc317, 64, 45) AS alberatura,
                               'dati in catalogo che hanno cod_adeguatezza valorizzato' AS provenienza,
                               patr_tp.descrizione_prodotto AS tipo_prodotto,
                               patr_tp.nomeprodotto,
								CHIAVE_THR
                          FROM c6stagingperiodico.all_patr_terzi_senza_asset patr_tp,
                               c6stagingperiodico.catitemref                   cat
                         WHERE patr_tp.chiave_fnc IS NOT NULL
                           AND cat.cod_adeguatezza != '$'
                           AND patr_tp.prodotto_in_catalogo = cat.catalogueid
                        UNION ALL
                        SELECT a.paTRIMonio,
                               a.chiave_cliente,
                               a.nome_istituto,
                               b.codice_isin,
                               b.codice_adeguatezza,
                               b.codice_maf,
                               NULL AS codice_interno,
                               NULL AS codice_sottoprodotto,
                               a.alberatura,
                               a.provenienza,
                               tipo_prodotto,
                               nomeprodotto AS nome_prodotto,
                               CHIAVE_THR
                          FROM (
                                -- ASSET ESISTENTI PER DATI DEL CATALOGO CON ADEGUATEZZA A NULL
                                SELECT PATR_TP.PATRIMONIO_TERZI *
                                        ACB.BDPERCENTAGE AS PATRIMONIO,
                                        PATR_TP.CHIAVE_PER_CLIENTE AS CHIAVE_CLIENTE,
                                        PATR_TP.INTERMEDIARIO AS NOME_ISTITUTO,
                                        LTRIM(ASS.ASSETCLASSID) AS ASSETCLASSID,
                                        ASS.ASSETCLASSLEV,
                                        SUBSTRING(CAT.TYPE$_BCATAL_FC317, 64, 45) AS ALBERATURA,
                                        'DATI IN CATALOGO CHE HANNO COD_ADEGUATEZZA A NULL E ASSET VALORIZZATO' AS PROVENIENZA,
                                        PATR_TP.DESCRIZIONE_PRODOTTO AS TIPO_PRODOTTO,
                                        PATR_TP.NOMEPRODOTTO,
                                        patr_tp.CHIAVE_THR
                                  FROM  C6STAGINGPERIODICO.ASSETCLASS                   ASS,
                                        C6STAGINGPERIODICO.ALL_PATR_TERZI_SENZA_ASSET PATR_TP,
                                        C6STAGINGPERIODICO.CATITEMREF                   CAT,
                                        C6STAGINGPERIODICO.INSTRBDS                     INS,
                                        C6STAGINGPERIODICO.ACBDENTRY                    ACB
                                 WHERE CAT.COD_ADEGUATEZZA = '$'
                                   AND ASS.ASSETCLASSLEV = 2
                                   AND PATR_TP.PRODOTTO_IN_CATALOGO = CAT.CATALOGUEID
                                   AND PATR_TP.CHIAVE_FNC IS NOT NULL
                                   AND CAT.OID$ = INS.F_OID$_PCATA_5DDA6
                                   AND INS.OID$ = ACB.F_PINSTRUMEN_FBCDE
                                   AND ACB.F_OID$_PASSE_B8A1E = ASS.OID$
                                UNION ALL
                                -- ASSET NON ESISTENTI PER DATI DEL CATALOGO CON ADEGUATEZZA A NULL (SETTATI AD ALTRO PER CONVENZIONE)
                                SELECT PATR_TP.PATRIMONIO_TERZI AS PATRIMONIO,
                                       PATR_TP.CHIAVE_PER_CLIENTE AS CHIAVE_CLIENTE,
                                       PATR_TP.INTERMEDIARIO AS NOME_ISTITUTO,
                                       'AL1' AS ASSETCLASSID,
                                       2,
                                       SUBSTRING(CAT.TYPE$_BCATAL_FC317, 64, 45) AS ALBERATURA,
                                       'DATI IN CATALOGO CHE HANNO COD_ADEGUATEZZA A NULL E ASSET NON VALORIZZATO',
                                       PATR_TP.DESCRIZIONE_PRODOTTO AS TIPO_PRODOTTO,
                                       PATR_TP.NOMEPRODOTTO,
                                       	patr_tp.CHIAVE_THR
                                  FROM C6STAGINGPERIODICO.ALL_PATR_TERZI_SENZA_ASSET PATR_TP,
                                       C6STAGINGPERIODICO.CATITEMREF                   CAT,
                                       C6STAGINGPERIODICO.INSTRBDS                     INS
                                 WHERE CAT.COD_ADEGUATEZZA = '$'
                                   AND PATR_TP.CHIAVE_FNC IS NOT NULL
                                   AND PATR_TP.PRODOTTO_IN_CATALOGO = CAT.CATALOGUEID
                                   AND CAT.OID$ = INS.F_OID$_PCATA_5DDA6  --(+)
                                   AND INS.F_OID$_PCATA_5DDA6 IS NULL
                                ) A,
                               C6STAGINGPERIODICO.ALL_ASSET_CLASS_PER_PROMET B
                         WHERE B.CODICE_ASSET_CLASS_INGRESSO = A.ASSETCLASSID
                         ) patrimonio_PT,
                       C6STAGINGPERIODICO.ALL_CF_PB CF_E_PB,
                       C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3 TRADUZ_ALBERAT
                 WHERE CF_E_PB.OID = patrimonio_PT.CHIAVE_CLIENTE
                   AND TRADUZ_ALBERAT.DESCRIZIONE_ORIGINALE = patrimonio_PT.ALBERATURA
                 GROUP BY CF_E_PB.AGENTE,
                          CF_E_PB.CODICE_FISCALE,
                          NOME_ISTITUTO,
                          REPLACE(codice_isin, '$', ''),
                          REPLACE(codice_adeguatezza,
                                 '$',
                                 ''
                                 ),
                          REPLACE(codice_maf, '$', ''),
                          REPLACE(codice_interno, '$', ''),
                          REPLACE(codice_sottoprodotto,
                                 '$',
                                 ''
                                 ),
                          PROVENIENZA,
                          TRADUZ_ALBERAT.ALBERO_GERARCHIA_3,
                          TIPO_PRODOTTO,
                          NOME_PRODOTTO,
                          ALBERATURA,
                          CHIAVE_THR) TUTTO_PPT
         GROUP BY AGENTE,
                  CODICEFISCALE,
                  INTERMEDIARIO,
                  NOME_PRODOTTO,
                  CODICEISIN,
                  CODICEADEGUATEZZA,
                  CODICEMAF,
                  CODICEINTERNO,
                  CODICESOTTOPRODOTTO,
                  PRODOTTI_NON_IN_CATALOGO,
                  ALBERATURA,
                  CHIAVE_THR
                  ) DATI,
       C6STAGINGPERIODICO.CATITEMREF CAT,
       C6STAGINGPERIODICO.EMIT
 WHERE CAT.CATALOGUEID = DATI.CATALOGUEID
   AND CAT.CODEMI = EMIT.CODEMI


	-- LOG ESECUZIONE
	UPDATE
		LOG_ESECUZIONE
	SET
		FINE = GETDATE(),
		TIPO = 'INSERT',
		RIGHE = @@ROWCOUNT
	WHERE
		NOME = 'DM_ALL_PATRIMONIO' AND
		INIZIO = (
			SELECT
				MAX(INIZIO)
			FROM
				LOG_ESECUZIONE
			WHERE
				NOME = 'DM_ALL_PATRIMONIO'
		)

END












GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
   
-- Stored procedure    
    
-- =============================================    
-- Author:  <Author,,Name>    
-- Create date: <Create Date,,>    
-- Description: <Description,,>    
-- =============================================    
CREATE procedure [C6MartPeriodico].[DM_ANAG_CC]    
AS    
BEGIN    
 -- SET NOCOUNT ON added to prevent extra result sets from    
 -- interfering with SELECT statements.    
 SET NOCOUNT ON;    
    
  DECLARE @ID_ELAB INT    
 DECLARE @TIPO_ELAB VARCHAR(1)    
        
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()    
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()    
    
 -- Log esecuzione    
 INSERT INTO LOG_ESECUZIONE_PERIODICO    
  (Nome, Inizio, Nota)    
 VALUES (    
  'DM_ANAG_CC',    
  GETDATE(),    
  'Elaborazione trimestrale'    
 )    
      
 TRUNCATE TABLE [C6MartPeriodico].[ANAG_CC]    
    
 INSERT INTO [C6MartPeriodico].[ANAG_CC]    
           ([RETE]    
     ,[COD_FISCALE]    
     ,[INTERMEDIARIO]    
     ,[COINTEST]    
     ,[COD_CC]    
     ,[FASCIA_CPP]    
     ,[SALDOCONTABILE]    
     ,[SALDODISPONIBILE]    
     ,[DATA_APERTURA]    
     ,[DATA_CHIUSURA]    
     ,[ID_ELAB]    
     ,[TIPO_ELAB])    
 SELECT     
  CONTR_SINTESI.RETE AS RETE,    
  CONTR_SINTESI.CODFIS AS COD_FISCALE,    
  'FIDEURAM' AS INTERMEDIARIO,    
  NULL AS COINTEST,    
  CONTR_SINTESI.CONTO AS COD_CC,    
  '' AS FASCIA_CPP,    
  CONTR_SINTESI.CTV AS SALDOCONTABILE,    
  CONTR_SINTESI.SALRISC AS SALDODISPONIBILE,    
  --CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_APERTURA,    
  CAST(CAST(CONTR_SINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME) AS DATA_APERTURA,    
  NULL AS DATA_CHIUSURA,    
  @ID_ELAB AS ID_ELAB,    
  @TIPO_ELAB AS TIPO_ELAB    
 FROM     
  C6StagingPeriodico.SPB_CONTR_SINTESI AS CONTR_SINTESI    
 WHERE     
  CONTR_SINTESI.TIPPROD = 'Cc'  
  -- FerAcu 20240116 risolvere duplicazioni  
    and not (CODFIS = 'NFRDNL84L30D612S' and CONTO = '00166487247' and RETE = 'F' and CODINT = 'VP')  
    and not (CODFIS = 'CRLNTN57R17G273H' and CONTO = '00167278823' and RETE = 'F' and CODINT = '91')    
    and not (CODFIS = 'CNOGRG38D23A271O' and CONTO = '00166129502' and RETE = 'F' and CODINT = '91')  
    and not (CODFIS = 'NDRGNN42L59D704K' and CONTO = '00166139788' and RETE = 'F' and CODINT = '91')  
    and not (CODFIS = 'FRRGRL57M24B885X' and CONTO = '00166050608' and RETE = 'F' and CODINT = '91')  
    and not (CODFIS = 'LNRFRC79R18F401E' and CONTO = '00167389552' and RETE = 'F' and CODINT = '91')  
    and not (CODFIS = 'VIEPRZ64D63D612I' and CONTO = '00166403317' and RETE = 'F' and CODINT = '91')  
   
  
   
   
     
 -- Log esecuzione    
 UPDATE    
  LOG_ESECUZIONE_PERIODICO    
 SET    
  Fine = GETDATE(),    
  Tipo = 'INSERT',    
  Righe = @@ROWCOUNT    
 WHERE    
  Nome = 'DM_ANAG_CC' AND    
  Inizio = (    
   SELECT    
    MAX(Inizio)    
   FROM    
    LOG_ESECUZIONE_PERIODICO    
   WHERE    
    Nome = 'DM_ANAG_CC'    
  )    
    
END    
    
    
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CC_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_CC_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CC_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		
	TRUNCATE TABLE [C6MartPeriodico].[ANAG_CC]

	INSERT INTO [C6MartPeriodico].[ANAG_CC]
           ([RETE]
		   ,[COD_FISCALE]
		   ,[INTERMEDIARIO]
		   ,[COINTEST]
		   ,[COD_CC]
		   ,[FASCIA_CPP]
		   ,[SALDOCONTABILE]
		   ,[SALDODISPONIBILE]
		   ,[DATA_APERTURA]
		   ,[DATA_CHIUSURA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		CONTR_SINTESI.RETE AS RETE,
		CONTR_SINTESI.CODFIS AS COD_FISCALE,
		'FIDEURAM' AS INTERMEDIARIO,
		NULL AS COINTEST,
		CONTR_SINTESI.CONTO AS COD_CC,
		'' AS FASCIA_CPP,
		CONTR_SINTESI.CTV AS SALDOCONTABILE,
		CONTR_SINTESI.SALRISC AS SALDODISPONIBILE,
		--CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_APERTURA,
		CAST(CAST(CONTR_SINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME) AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.SPB_CONTR_SINTESI AS CONTR_SINTESI
	WHERE 
		CONTR_SINTESI.TIPPROD = 'Cc' 
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CC_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CC_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_CC_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
  
    SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_CC_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
 TRUNCATE TABLE C6MartPeriodico.ANAG_CC_TERZI  
  
 INSERT INTO [C6MartPeriodico].[ANAG_CC_TERZI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[INTERMEDIARIO]  
           ,[COINTEST]  
           ,[COD_CC]  
           ,[FASCIA_CPP]  
           ,[SALDO]  
           ,[DATA_APERTURA]  
           ,[DATA_CHIUSURA]  
           ,[ID_ELAB])  
 SELECT   
  ALL_PATR_TERZI.RETE_PB AS RETE,  
  ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,  
  NULL AS COINTEST,  
  ALL_PATR_TERZI.NOMEPRODOTTO AS COD_CC,  
  CONTRATTOSEI.FASCIA_CPP AS FASCIA_CPP,  
  ALL_PATR_TERZI.PATRIMONIO_TERZI AS SALDO,  
  NULL AS DATA_APERTURA,  
  NULL AS DATA_CHIUSURA,  
  @ID_ELAB AS ID_ELAB  
 FROM   
  C6StagingPeriodico.ALL_PATR_TERZI   
 LEFT JOIN   
  C6Mart.CONTRATTOSEI   
  ON   
   CONTRATTOSEI.COD_FISCALE = ALL_PATR_TERZI.CODICE_FISCALE  
   AND CONTRATTOSEI.RETE = ALL_PATR_TERZI.RETE_PB  
 WHERE   
  ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_FNC  
  AND DESCRIZIONE_PRODOTTO LIKE '%CURRENTACCOUNT%'  
  AND DESCRIZIONE_ALBERATURA LIKE '%CONTICORRENTI%'   
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_CC_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_CC_TERZI'  
  )  
  
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CC_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_CC_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT

    SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CC_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	TRUNCATE TABLE C6MartPeriodico.ANAG_CC_TERZI

	INSERT INTO [C6MartPeriodico].[ANAG_CC_TERZI]
           ([RETE]
           ,[COD_FISCALE]
           ,[INTERMEDIARIO]
           ,[COINTEST]
           ,[COD_CC]
           ,[FASCIA_CPP]
           ,[SALDO]
           ,[DATA_APERTURA]
           ,[DATA_CHIUSURA]
           ,[ID_ELAB])
	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
		NULL AS COINTEST,
		ALL_PATR_TERZI.NOMEPRODOTTO AS COD_CC,
		CONTRATTOSEI.FASCIA_CPP AS FASCIA_CPP,
		ALL_PATR_TERZI.PATRIMONIO_TERZI AS SALDO,
		NULL AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB
	FROM 
		C6StagingPeriodico.ALL_PATR_TERZI 
	LEFT JOIN 
		C6Mart.CONTRATTOSEI 
		ON 
			CONTRATTOSEI.COD_FISCALE = ALL_PATR_TERZI.CODICE_FISCALE
			AND CONTRATTOSEI.RETE = ALL_PATR_TERZI.RETE_PB
	WHERE 
		ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_FNC
		AND DESCRIZIONE_PRODOTTO LIKE '%CURRENTACCOUNT%'
		AND DESCRIZIONE_ALBERATURA LIKE '%CONTICORRENTI%' 

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CC_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CC_TERZI_pre_selective'
		)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_CLIENTI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_CLIENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI   
  
 INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[NOME]  
           ,[COGNOME]  
           ,[DATA_NASCITA]  
           ,[STATO_CIVILE]  
           ,[NUM_COMPONENTI]  
           ,[NUM_FIGLI]  
           ,[ETA]  
           ,[PARTITA_IVA]  
           ,[CITTADINANZA]  
           ,[PERSONA_FIS_GIUR]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[PRESSO]  
           ,[TEL_RECAPITO]  
           ,[TEL_CELL]  
           ,[E_MAIL]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[STATO]  
           ,[RAG_SOC]  
           ,[SESSO]  
           ,[ID_PROMOTORE]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT  
  AL.RETE_PB AS RETE,  
  AL.CODICEFISCALE AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOME)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOME)) AS COGNOME,  
  ISNULL(  
   AL.DATA_NASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
  CASE  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40'   
    AND AL.MARITALSTATUS = 'Married' THEN 'Coniugato'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40'   
    AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziato'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40'   
    AND AL.MARITALSTATUS = 'Single' THEN 'Libero'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40'   
    AND AL.MARITALSTATUS = 'Married' THEN 'Coniugata'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40'   
    AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziata'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40'   
    AND AL.MARITALSTATUS = 'Single' THEN 'Libera'  
       ELSE NULL  
  END AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
    
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DATA_NASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  NULL AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.CODICE_PB AS ID_PROMOTORE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.ALL_CF_PB AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL  
  ON CL.RETE = AL.RETE_PB  
  AND ( ltrim(rtrim(CL.CODFIS)) = AL.CODICEFISCALE)  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2  
 ) and Al.codicefiscale not like '%@%'  
  
   union  
  SELECT  
  AL.RETE_PB AS RETE,  
  AL.CODICEFISCALE AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOME)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOME)) AS COGNOME,  
  ISNULL(  
   AL.DATA_NASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
  CASE  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40'   
    AND AL.MARITALSTATUS = 'Married' THEN 'Coniugato'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40'   
    AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziato'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40'   
    AND AL.MARITALSTATUS = 'Single' THEN 'Libero'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40'   
    AND AL.MARITALSTATUS = 'Married' THEN 'Coniugata'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40'   
    AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziata'  
       WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40'   
    AND AL.MARITALSTATUS = 'Single' THEN 'Libera'  
       ELSE NULL  
  END AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
    
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DATA_NASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  NULL AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.CODICE_PB AS ID_PROMOTORE ,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.ALL_CF_PB AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL  
  ON CL.RETE = AL.RETE_PB  
  AND ( CL.CODMAN = substring(AL.CODICEFISCALE,4,4))  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2  
 ) and Al.codicefiscale like '%@%'  
  
  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_CLIENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_CLIENTI'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
           ([RETE]
           ,[COD_FISCALE]
           ,[NOME]
           ,[COGNOME]
           ,[DATA_NASCITA]
           ,[STATO_CIVILE]
           ,[NUM_COMPONENTI]
           ,[NUM_FIGLI]
           ,[ETA]
           ,[PARTITA_IVA]
           ,[CITTADINANZA]
           ,[PERSONA_FIS_GIUR]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[PRESSO]
           ,[TEL_RECAPITO]
           ,[TEL_CELL]
           ,[E_MAIL]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[STATO]
           ,[RAG_SOC]
           ,[SESSO]
           ,[ID_PROMOTORE]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT
		AL.RETE_PB AS RETE,
		AL.CODICEFISCALE AS COD_FISCALE,
		AL.NOME AS NOME,
		AL.COGNOME AS COGNOME,
		AL.DATA_NASCITA AS DATA_NASCITA, 
		CASE
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libero'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libera'
     		ELSE NULL
		END AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		
		/*DATEDIFF(YY,
			ISNULL(
				AL.DATA_NASCITA,
				CASE
					WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
					ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
				END), 
			GETDATE()) AS ETA,*/
		dbo.Eta(AL.DATA_NASCITA) AS ETA,
		NULL AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(C6.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(C6.CITTA, '') AS LOCALITA,
		ISNULL(C6.PROV, '') AS PROVINCIA,
		ISNULL(C6.CAP, '') AS CAP,
		ISNULL(C6.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		NULL AS SESSO,
		AL.CODICE_PB AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ALL_CF_PB AL
	LEFT JOIN
	(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, INDIRIZZO, CITTA, PROV, CAP, NAZIONE, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
		C6Mart.CONTRATTOSEI) C6
		ON AL.RETE_PB = C6.RETE
		AND AL.CODICEFISCALE = C6.COD_FISCALE
	WHERE
		--C6.Data_FINEAvanzato IS NULL
        ISNULL(C6.Data_FineAvanzato, CAST('99991231' AS datetime)) > cast(c6martperiodico.getPreviousTrimestre(getDate(),0) as datetime)--CAST('20100930' AS datetime))
	AND C6.UltimoAperto = 1


/*	
LEFT JOIN C6STAGINGPERIODICO.WSEIAN CL
		ON CL.RETE = AL.RETE_PB
		AND CL.CODFIS = AL.CODICEFISCALE
	WHERE CL.DTTRIM = (
		SELECT MAX(DTTRIM)
		FROM C6StagingPeriodico.WSEIAN
	)
*/
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CLIENTI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti  / TRINGALI PER FIDUCIARIE
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_CLIENTI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CLIENTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
           ([RETE]
           ,[COD_FISCALE]
           ,[NOME]
           ,[COGNOME]
           ,[DATA_NASCITA]
           ,[STATO_CIVILE]
           ,[NUM_COMPONENTI]
           ,[NUM_FIGLI]
           ,[ETA]
           ,[PARTITA_IVA]
           ,[CITTADINANZA]
           ,[PERSONA_FIS_GIUR]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[PRESSO]
           ,[TEL_RECAPITO]
           ,[TEL_CELL]
           ,[E_MAIL]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[STATO]
           ,[RAG_SOC]
           ,[SESSO]
           ,[ID_PROMOTORE]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT
		AL.RETE_PB AS RETE,
		AL.CODICEFISCALE AS COD_FISCALE,
		RTRIM(ISNULL(CL.NOME,AL.NOME)) AS NOME,
		RTRIM(ISNULL(CL.COGNOME,AL.COGNOME)) AS COGNOME,
		ISNULL(
			AL.DATA_NASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END) AS DATA_NASCITA, 
		CASE
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libero'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libera'
     		ELSE NULL
		END AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		
		/*DATEDIFF(YY,
			ISNULL(
				AL.DATA_NASCITA,
				CASE
					WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
					ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
				END), 
			GETDATE()) AS ETA,*/
		dbo.Eta(ISNULL(
			AL.DATA_NASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END)
		) AS ETA,
		NULL AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(CL.CITTA, '') AS LOCALITA,
		ISNULL(CL.PROVINCIA, '') AS PROVINCIA,
		ISNULL(CL.CAP, '') AS CAP,
		ISNULL(CL.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		--NULL AS SESSO,
		CASE
 			WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		AL.CODICE_PB AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ALL_CF_PB AL
	LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL
		ON CL.RETE = AL.RETE_PB
		AND ( ltrim(rtrim(CL.CODFIS)) = AL.CODICEFISCALE)
	WHERE CL.DTTRIM = (
		SELECT MAX(DTTRIM)
		FROM C6StagingPeriodico.WSEIAN2
	) and Al.codicefiscale not like '%@%'

   union
 	SELECT
		AL.RETE_PB AS RETE,
		AL.CODICEFISCALE AS COD_FISCALE,
		RTRIM(ISNULL(CL.NOME,AL.NOME)) AS NOME,
		RTRIM(ISNULL(CL.COGNOME,AL.COGNOME)) AS COGNOME,
		ISNULL(
			AL.DATA_NASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END) AS DATA_NASCITA, 
		CASE
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libero'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libera'
     		ELSE NULL
		END AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		
		/*DATEDIFF(YY,
			ISNULL(
				AL.DATA_NASCITA,
				CASE
					WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
					ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
				END), 
			GETDATE()) AS ETA,*/
		dbo.Eta(ISNULL(
			AL.DATA_NASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END)
		) AS ETA,
		NULL AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(CL.CITTA, '') AS LOCALITA,
		ISNULL(CL.PROVINCIA, '') AS PROVINCIA,
		ISNULL(CL.CAP, '') AS CAP,
		ISNULL(CL.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		--NULL AS SESSO,
		CASE
 			WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		AL.CODICE_PB AS ID_PROMOTORE ,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ALL_CF_PB AL
	LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL
		ON CL.RETE = AL.RETE_PB
		AND ( CL.CODMAN = substring(AL.CODICEFISCALE,4,4))
	WHERE CL.DTTRIM = (
		SELECT MAX(DTTRIM)
		FROM C6StagingPeriodico.WSEIAN2
	) and Al.codicefiscale like '%@%'







	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CLIENTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CLIENTI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CLIENTI_PREV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_CLIENTI_PREV]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
    DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 TRUNCATE TABLE C6MARTPERIODICO.ANAG_CLIENTI_PREV;  
  
 INSERT INTO C6MartPeriodico.[ANAG_CLIENTI_PREV]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[STATO_LAVORATIVO]  
           ,[PROFESSIONE]  
           ,[CAT_PROFESSIONALE]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[RETRIB_LORDA]  
           ,[PROFESSIONE_SEC]  
           ,[CAT_PROFESSIONALE_SEC]  
           ,[DATA_INIZIO_SEC]  
           ,[DATA_FINE_SEC]  
           ,[RETRIB_LORDA_SEC]  
           ,[PROFESSIONE_PREC]  
           ,[CAT_PROFESSIONALE_PREC]  
           ,[DATA_INIZIO_PREC]  
           ,[DATA_FINE_PREC]  
           ,[RETRIB_LORDA_PREC]  
           ,[RICONGIUNZIONE]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT   
  SUBSTRING(ALL_CF_PB.RETE_PB,1,1) AS RETE,  
  SUBSTRING(ALL_CF_PB.CODICE_FISCALE,1,16) AS COD_FISCALE,  
  NULL AS  STATO_LAVORATIVO,  
  NULL AS  PROFESSIONE,  
  NULL AS  CAT_PROFESSIONALE,  
  NULL AS  DATA_INIZIO,  
  NULL AS  DATA_FINE,  
  NULL AS  RETRIB_LORDA,  
  NULL AS  PROFESSIONE_SEC,  
  NULL AS  CAT_PROFESSIONALE_SEC,  
  NULL AS  DATA_INIZIO_SEC,  
  NULL AS  DATA_FINE_SEC,  
  NULL AS  RETRIB_LORDA_SEC,  
  NULL AS  PROFESSIONE_PREC,  
  NULL AS  CAT_PROFESSIONALE_PREC,  
  NULL AS  DATA_INIZIO_PREC,  
  NULL AS  DATA_FINE_PREC,  
  NULL AS  RETRIB_LORDA_PREC,  
  NULL AS  RICONGIUNZIONE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.ALL_CF_PB  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_CLIENTI_PREV_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_CLIENTI_PREV_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

   	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	TRUNCATE TABLE C6MARTPERIODICO.ANAG_CLIENTI_PREV;

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI_PREV]
           ([RETE]
           ,[COD_FISCALE]
           ,[STATO_LAVORATIVO]
           ,[PROFESSIONE]
           ,[CAT_PROFESSIONALE]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[RETRIB_LORDA]
           ,[PROFESSIONE_SEC]
           ,[CAT_PROFESSIONALE_SEC]
           ,[DATA_INIZIO_SEC]
           ,[DATA_FINE_SEC]
           ,[RETRIB_LORDA_SEC]
           ,[PROFESSIONE_PREC]
           ,[CAT_PROFESSIONALE_PREC]
           ,[DATA_INIZIO_PREC]
           ,[DATA_FINE_PREC]
           ,[RETRIB_LORDA_PREC]
           ,[RICONGIUNZIONE]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT 
		SUBSTRING(ALL_CF_PB.RETE_PB,1,1) AS RETE,
		SUBSTRING(ALL_CF_PB.CODICE_FISCALE,1,16) AS COD_FISCALE,
		NULL AS  STATO_LAVORATIVO,
		NULL AS  PROFESSIONE,
		NULL AS  CAT_PROFESSIONALE,
		NULL AS  DATA_INIZIO,
		NULL AS  DATA_FINE,
		NULL AS  RETRIB_LORDA,
		NULL AS  PROFESSIONE_SEC,
		NULL AS  CAT_PROFESSIONALE_SEC,
		NULL AS  DATA_INIZIO_SEC,
		NULL AS  DATA_FINE_SEC,
		NULL AS  RETRIB_LORDA_SEC,
		NULL AS  PROFESSIONE_PREC,
		NULL AS  CAT_PROFESSIONALE_PREC,
		NULL AS  DATA_INIZIO_PREC,
		NULL AS  DATA_FINE_PREC,
		NULL AS  RETRIB_LORDA_PREC,
		NULL AS  RICONGIUNZIONE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ALL_CF_PB

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_PRODOTTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI  
   
 INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI]  
           ([COD_PRODOTTO]  
           ,[COD_ISIN]  
           ,[PAESE]  
           ,[ID_AREA]  
           ,[CAT_PRODOTTO]  
           ,[TIPO_PRODOTTO]  
           ,[DESCR_PRODOTTO]  
           ,[DIV_QUOTAZIONE]  
           ,[DIV_REGOLAMENTO]  
           ,[ID_EMITTENTE]  
           ,[MERCATO_CONTRATT]  
           ,[COD_MAF]  
           ,[RATING]  
           ,[COD_ADEGUATEZZA]  
           ,[COD_SOTTOPRODOTTO]  
           ,[COD_INTERNO]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB]  
           ,[DT_SCADENZA]  
           ,[TIPO_TASSO]  
           ,[TIPO_EMITTENTE]   
           ,[FLG_OB]  
           )  
 SELECT   
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  CATITEMREF.COD_ISIN AS COD_ISIN,  
  CATITEMREF.COUNTRY AS PAESE,  
  '' AS ID_AREA,  
  (SELECT CASE SUBSTRING(CATITEMREF.TYPE$_BCATAL_FC317,64,3)  
   WHEN 'Ges' THEN 'Gestito Finanziario'  
   WHEN 'Amm' THEN 'Amministrato'  
   WHEN 'Ass' THEN 'Assicurativo'  
  END) AS CAT_PRODOTTO,  
  CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,  
  CATITEMREF.CATALOGUENAME AS DESCR_PRODOTTO,  
  CATITEMREF.PRODUCTCURRENCY AS DIV_QUOTAZIONE,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  CATITEMREF.PIAZZA AS MERCATO_CONTRATT,  
  CATITEMREF.COD_MAF AS COD_MAF,  
  CATITEMREF.RATOBBLIG AS RATING,  
  CATITEMREF.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,  
  CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,  
  CATITEMREF.COD_INTERNO AS COD_INTERNO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  
  CATITEMREF.expirationdate AS DT_SCADENZA,  
        CASE   
   WHEN CATITEMREF.TIP_TASSO = '0 CPN' THEN 'Zero Coupon'  
   ELSE CATITEMREF.TIP_TASSO   
  END AS TIPO_TASSO,  
   CATITEMREF.TIP_EMITTENTE AS TIPO_EMITTENTE,  
  CASE WHEN TYPE$_BCATAL_FC317 like  '%.Titoli.Ob%'  THEN 'S'     
   ELSE 'N'  
  END AS FLG_OB         
 FROM C6STAGINGPERIODICO.CATITEMREF  
 INNER JOIN (  
  SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID  
  FROM C6STAGINGPERIODICO.CATITEMREF  
  GROUP BY CATITEMREF.CATALOGUEID  
 ) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_PRODOTTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_PRODOTTI'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PRODOTTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI
	
	INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI]
           ([COD_PRODOTTO]
           ,[COD_ISIN]
           ,[PAESE]
           ,[ID_AREA]
           ,[CAT_PRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[DESCR_PRODOTTO]
           ,[DIV_QUOTAZIONE]
           ,[DIV_REGOLAMENTO]
           ,[ID_EMITTENTE]
           ,[MERCATO_CONTRATT]
           ,[COD_MAF]
           ,[RATING]
           ,[COD_ADEGUATEZZA]
           ,[COD_SOTTOPRODOTTO]
           ,[COD_INTERNO]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[DT_SCADENZA]
           ,[TIPO_TASSO]
           ,[TIPO_EMITTENTE] 
           ,[FLG_OB]
           )
	SELECT 
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		CATITEMREF.COD_ISIN AS COD_ISIN,
		CATITEMREF.COUNTRY AS PAESE,
		'' AS ID_AREA,
		(SELECT CASE SUBSTRING(CATITEMREF.TYPE$_BCATAL_FC317,64,3)
			WHEN 'Ges' THEN 'Gestito Finanziario'
			WHEN 'Amm' THEN 'Amministrato'
			WHEN 'Ass' THEN 'Assicurativo'
		END) AS CAT_PRODOTTO,
		CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
		CATITEMREF.CATALOGUENAME AS DESCR_PRODOTTO,
		CATITEMREF.PRODUCTCURRENCY AS DIV_QUOTAZIONE,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		CATITEMREF.PIAZZA AS MERCATO_CONTRATT,
		CATITEMREF.COD_MAF AS COD_MAF,
		CATITEMREF.RATOBBLIG AS RATING,
		CATITEMREF.COD_ADEGUATEZZA AS COD_ADEGUATEZZA,
		CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		CATITEMREF.COD_INTERNO AS COD_INTERNO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		CATITEMREF.expirationdate AS DT_SCADENZA,
        CASE 
			WHEN CATITEMREF.TIP_TASSO = '0 CPN' THEN 'Zero Coupon'
			ELSE CATITEMREF.TIP_TASSO 
		END AS TIPO_TASSO,
		 CATITEMREF.TIP_EMITTENTE AS TIPO_EMITTENTE,
		CASE WHEN TYPE$_BCATAL_FC317 like  '%.Titoli.Ob%'  THEN 'S'		 
			ELSE 'N'
		END AS FLG_OB       
	FROM C6STAGINGPERIODICO.CATITEMREF
	INNER JOIN (
		SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID
		FROM C6STAGINGPERIODICO.CATITEMREF
		GROUP BY CATITEMREF.CATALOGUEID
	) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PRODOTTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PRODOTTI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_PRODOTTI_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_PRODOTTI_TERZI  
  
 INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_TERZI]  
           ([COD_PRODOTTO]  
           ,[COD_PRODOTTO_TERZI]  
           ,[NOME_PRODOTTO]  
           ,[ALBERO_PRODOTTI]  
           ,[COD_ISIN]  
           ,[DESCR_PRODOTTO]  
           ,[DIV_QUOTAZIONE]  
           ,[INTERMEDIARIO]  
           ,[DIV_REGOLAMENTO]  
           ,[ID_EMITTENTE]  
           ,[MERCATO_CONTRATT]  
           ,[PAESE]  
           ,[RATING]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT   
  ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO AS COD_PRODOTTO,  
  ALL_PATR_TERZI.CHIAVE_THR AS COD_PRODOTTO_TERZI,  
  ALL_PATR_TERZI.NOMEPRODOTTO AS NOME_PRODOTTO,  
  ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA AS ALBERO_PRODOTTI,   
  NULL AS COD_ISIN,  
  ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO AS DESCR_PRODOTTO,  
  NULL AS DIV_QUOTAZIONE,  
  ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  NULL AS MERCATO_CONTRATT,  
  NULL AS PAESE,  
  NULL AS RATING,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6StagingPeriodico.ALL_PATR_TERZI ALL_PATR_TERZI  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_PRODOTTI_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_PRODOTTI_TERZI'  
  )  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PRODOTTI_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_PRODOTTI_TERZI

	INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_TERZI]
           ([COD_PRODOTTO]
           ,[COD_PRODOTTO_TERZI]
           ,[NOME_PRODOTTO]
           ,[ALBERO_PRODOTTI]
           ,[COD_ISIN]
           ,[DESCR_PRODOTTO]
           ,[DIV_QUOTAZIONE]
           ,[INTERMEDIARIO]
           ,[DIV_REGOLAMENTO]
           ,[ID_EMITTENTE]
           ,[MERCATO_CONTRATT]
           ,[PAESE]
           ,[RATING]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT 
		ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO AS COD_PRODOTTO,
		ALL_PATR_TERZI.CHIAVE_THR AS COD_PRODOTTO_TERZI,
		ALL_PATR_TERZI.NOMEPRODOTTO AS NOME_PRODOTTO,
		ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA AS ALBERO_PRODOTTI, 
		NULL AS COD_ISIN,
		ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO AS DESCR_PRODOTTO,
		NULL AS DIV_QUOTAZIONE,
		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		NULL AS MERCATO_CONTRATT,
		NULL AS PAESE,
		NULL AS RATING,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.ALL_PATR_TERZI ALL_PATR_TERZI
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PRODOTTI_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PRODOTTI_TERZI_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_VALUTE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_VALUTE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_PRODOTTI_VALUTE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI_VALUTE  
   
 INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE]  
            
 SELECT   
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  VALUTE.DIVISA,  
  VALUTE.PESO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
    
 FROM C6STAGINGPERIODICO.CATITEMREF  
 INNER JOIN (  
  SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID  
  FROM C6STAGINGPERIODICO.CATITEMREF  
  GROUP BY CATITEMREF.CATALOGUEID  
 ) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID  
 INNER JOIN --SELECT TOP 1 * FROM  
  [C6StagingPeriodico].[RDR_VALUTE_DB_DTGIORNALIERI] VALUTE  
 ON VALUTE.CHIAVEPRODOTTO = CATITEMREF.OID$  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_PRODOTTI_VALUTE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_PRODOTTI_VALUTE'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_VALUTE_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_PRODOTTI_VALUTE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PRODOTTI_VALUTE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI_VALUTE
	
	INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE]
          
	SELECT 
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		VALUTE.DIVISA,
		VALUTE.PESO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		
	FROM C6STAGINGPERIODICO.CATITEMREF
	INNER JOIN (
		SELECT CATITEMREF.CATALOGUEID, MAX(OID$) AS OID
		FROM C6STAGINGPERIODICO.CATITEMREF
		GROUP BY CATITEMREF.CATALOGUEID
	) DOPPICATITEMREF ON CATITEMREF.OID$ = DOPPICATITEMREF.OID
	INNER JOIN --SELECT TOP 1 * FROM
		[C6StagingPeriodico].[RDR_VALUTE_DB_DTGIORNALIERI] VALUTE
	ON VALUTE.CHIAVEPRODOTTO = CATITEMREF.OID$

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PRODOTTI_VALUTE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PRODOTTI_VALUTE_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_PROMOTORI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_PROMOTORI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_PROMOTORI  
  
 INSERT INTO C6MartPeriodico.[ANAG_PROMOTORI]  
           ([RETE]  
           ,[ID_PROMOTORE]  
           ,[LIVELLO]  
           ,[COD_FISCALE]  
           ,[PARTITA_IVA]  
           ,[COGNOME]  
           ,[NOME]  
           ,[RAG_SOC]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[TEL_RECAPITO]  
           ,[TEL_CELL]  
           ,[E_MAIL]  
           ,[COD_ABI]  
           ,[COD_CAB]  
           ,[COD_CIN]  
           ,[COD_CC]  
           ,[STATO]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT DISTINCT  
  ADS4WS_PROMOTORI.RETE AS RETE,  
  ADS4WS_PROMOTORI.CODICE AS ID_PROMOTORE,  
  'PB' AS LIVELLO, -- TODO: DA RIMUOVERE UNA VOLTA IMPORTATI I DATI DAL SIMPB  
  NULL AS COD_FISCALE,  
  NULL AS PARTITA_IVA,  
  rtrim(ltrim(ADS4WS_PROMOTORI.COGNOME)) AS COGNOME,  
  rtrim(ltrim(ADS4WS_PROMOTORI.NOME)) AS NOME,  
  NULL AS RAG_SOC,  
  CASE WHEN ADS4WS_PROMOTORI.DataInizioCollaborazione=0 THEN  NULL ELSE  
  CAST(CAST(ADS4WS_PROMOTORI.DataInizioCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO,  
  CASE WHEN ADS4WS_PROMOTORI.DataFineCollaborazione=0 THEN  NULL ELSE  
  CAST(CAST(ADS4WS_PROMOTORI.DataFineCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_FINE,    
  rtrim(ltrim(ADS4WS_PROMOTORI.INDIRIZZO)) AS INDIRIZZO,  
  rtrim(ltrim(ADS4WS_PROMOTORI.CITTA)) AS LOCALITA,  
  rtrim(ltrim(ADS4WS_PROMOTORI.PROVINCIA)) AS PROVINCIA,  
  rtrim(ltrim(ADS4WS_PROMOTORI.CAP)) AS CAP,  
  NULL AS NAZIONE,  
  rtrim(ltrim(ADS4WS_PROMOTORI.prefissotelefono + ADS4WS_PROMOTORI.TelefonoAgenzia1)) AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,  
  NULL AS COD_ABI,  
  NULL AS COD_CAB,  
  NULL AS COD_CIN,  
  NULL AS COD_CC,  
--  CASE   
--   WHEN SPB_NAC.CODICEAGENTE IS NULL THEN 'TERMINATO'   
--   ELSE   
    CASE   
     WHEN PF.RETE IS NULL THEN 'ATTIVO'  
     ELSE 'FITTIZIO'  
    END  
--  END  
   AS STATO  
,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.ADS4WS_PROMOTORI ADS4WS_PROMOTORI  
 LEFT JOIN C6MARTPERIODICO.EMAIL_PB EMAIL_PB  
  ON ADS4WS_PROMOTORI.RETE = EMAIL_PB.RETE  
  AND ADS4WS_PROMOTORI.CODICE = EMAIL_PB.CODICE  
 LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF  
  ON (ADS4WS_PROMOTORI.CODICE  BETWEEN PF.CODICEDA AND PF.CODICEA)  
  AND ADS4WS_PROMOTORI.RETE = PF.RETE  
 WHERE ADS4WS_PROMOTORI.STATO = 'A'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_PROMOTORI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ANAG_PROMOTORI'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_PROMOTORI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_PROMOTORI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_PROMOTORI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_PROMOTORI

	INSERT INTO C6MartPeriodico.[ANAG_PROMOTORI]
           ([RETE]
           ,[ID_PROMOTORE]
           ,[LIVELLO]
           ,[COD_FISCALE]
           ,[PARTITA_IVA]
           ,[COGNOME]
           ,[NOME]
           ,[RAG_SOC]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[TEL_RECAPITO]
           ,[TEL_CELL]
           ,[E_MAIL]
           ,[COD_ABI]
           ,[COD_CAB]
           ,[COD_CIN]
           ,[COD_CC]
           ,[STATO]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		ADS4WS_PROMOTORI.RETE AS RETE,
		ADS4WS_PROMOTORI.CODICE AS ID_PROMOTORE,
		'PB' AS LIVELLO, -- TODO: DA RIMUOVERE UNA VOLTA IMPORTATI I DATI DAL SIMPB
		NULL AS COD_FISCALE,
		NULL AS PARTITA_IVA,
		rtrim(ltrim(ADS4WS_PROMOTORI.COGNOME)) AS COGNOME,
		rtrim(ltrim(ADS4WS_PROMOTORI.NOME)) AS NOME,
		NULL AS RAG_SOC,
		CASE WHEN ADS4WS_PROMOTORI.DataInizioCollaborazione=0 THEN  NULL ELSE
		CAST(CAST(ADS4WS_PROMOTORI.DataInizioCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO,
		CASE WHEN ADS4WS_PROMOTORI.DataFineCollaborazione=0 THEN  NULL ELSE
		CAST(CAST(ADS4WS_PROMOTORI.DataFineCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_FINE,		
		rtrim(ltrim(ADS4WS_PROMOTORI.INDIRIZZO)) AS INDIRIZZO,
		rtrim(ltrim(ADS4WS_PROMOTORI.CITTA)) AS LOCALITA,
		rtrim(ltrim(ADS4WS_PROMOTORI.PROVINCIA)) AS PROVINCIA,
		rtrim(ltrim(ADS4WS_PROMOTORI.CAP)) AS CAP,
		NULL AS NAZIONE,
		rtrim(ltrim(ADS4WS_PROMOTORI.prefissotelefono + ADS4WS_PROMOTORI.TelefonoAgenzia1)) AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,
		NULL AS COD_ABI,
		NULL AS COD_CAB,
		NULL AS COD_CIN,
		NULL AS COD_CC,
--		CASE 
--			WHEN SPB_NAC.CODICEAGENTE IS NULL THEN 'TERMINATO' 
--			ELSE 
				CASE 
					WHEN PF.RETE IS NULL THEN 'ATTIVO'
					ELSE 'FITTIZIO'
				END
--		END
		 AS STATO
,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ADS4WS_PROMOTORI ADS4WS_PROMOTORI
	LEFT JOIN C6MARTPERIODICO.EMAIL_PB EMAIL_PB
		ON ADS4WS_PROMOTORI.RETE = EMAIL_PB.RETE
		AND ADS4WS_PROMOTORI.CODICE = EMAIL_PB.CODICE
	LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
		ON (ADS4WS_PROMOTORI.CODICE  BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND ADS4WS_PROMOTORI.RETE = PF.RETE
	WHERE ADS4WS_PROMOTORI.STATO = 'A'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_PROMOTORI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_PROMOTORI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_SELF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
-- Stored procedure  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_SELF]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
      
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_SELF',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[ANAG_SELF]  
  
 INSERT INTO [C6MartPeriodico].[ANAG_SELF]  
  (RETE  
  ,CODFIS  
  ,CODCONF  
  ,NOMEPRODOTTO  
  ,CTV  
  ,DATASOTT  
  ,[ID_ELAB]  
  ,[TIPO_ELAB]
  ,CodInterno
  ,CodSottoprodotto)  
 SELECT  
   SPB.RETE  
  ,SPB.CODFIS  
  ,SPB.CODCONF  
  ,CAT.NomeProdotto  
  ,SPB.CTV  
  ,SPB.DTSOTTOS  
  ,@ID_ELAB AS ID_ELAB  
  ,@TIPO_ELAB AS TIPO_ELAB 
  ,CodInterno
  ,CodSottoprodotto 
 FROM   
  C6StagingPeriodico.SPB_CONTR_SINTESI SPB  
 inner join C6StagingPeriodico.RP_CatalogoProdotti CAT  
 on SPB.isin = CAT.codisin and CAT.visibilita = 1
 -- aggiunto il 17/12/2018 per gestire l'ambiguità tra GP e FO a parità di Isin
 and SPB.CodInt = CAT.CodInterno
 -- fine modifica
 WHERE SPB.isin in ('EURO00000009', 'EURO10000007')  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_SELF' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_ANAG_SELF'  
  )  
  
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_SELF_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
-- Stored procedure  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ANAG_SELF_20181214_PreMioFoglio]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
      
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_SELF',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[ANAG_SELF]  
  
 INSERT INTO [C6MartPeriodico].[ANAG_SELF]  
  (RETE  
  ,CODFIS  
  ,CODCONF  
  ,NOMEPRODOTTO  
  ,CTV  
  ,DATASOTT  
  ,[ID_ELAB]  
  ,[TIPO_ELAB])  
 SELECT  
   SPB.RETE  
  ,SPB.CODFIS  
  ,SPB.CODCONF  
  ,CAT.NomeProdotto  
  ,SPB.CTV  
  ,SPB.DTSOTTOS  
  ,@ID_ELAB AS ID_ELAB  
  ,@TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6StagingPeriodico.SPB_CONTR_SINTESI SPB  
 inner join C6StagingPeriodico.RP_CatalogoProdotti CAT  
 on SPB.isin = CAT.codisin and CAT.visibilita = 1  
 WHERE SPB.isin in ('EURO00000009', 'EURO10000007')  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_SELF' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_ANAG_SELF'  
  )  
  
END  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_SELF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_SELF_BK_eligoTitoli]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_SELF',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[ANAG_SELF]

	INSERT INTO [C6MartPeriodico].[ANAG_SELF]
		(RETE
		,CODFIS
		,CODCONF
		,CTV
		,DATASOTT
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		RETE
		,CODFIS
		,CODCONF
		,CTV
		,DTSOTTOS
		,@ID_ELAB AS ID_ELAB
		,@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.SPB_CONTR_SINTESI
	WHERE isin = 'EURO00000009'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_SELF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_SELF'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ANAG_SELF_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ANAG_SELF_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_SELF_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[ANAG_SELF]

	INSERT INTO [C6MartPeriodico].[ANAG_SELF]
		(RETE
		,CODFIS
		,CODCONF
		,NOMEPRODOTTO
		,CTV
		,DATASOTT
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		 SPB.RETE
		,SPB.CODFIS
		,SPB.CODCONF
		,CAT.NomeProdotto
		,SPB.CTV
		,SPB.DTSOTTOS
		,@ID_ELAB AS ID_ELAB
		,@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	inner join C6StagingPeriodico.RP_CatalogoProdotti CAT
	on SPB.isin = CAT.codisin and CAT.visibilita = 1
	WHERE SPB.isin in ('EURO00000009', 'EURO10000007')

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_SELF_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_SELF_pre_selective'
		)

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_AREA_BISOGNO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_AREA_BISOGNO]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
  
 TRUNCATE TABLE C6MartPeriodico.AREA_BISOGNO  
   
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_AREA_BISOGNO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 INSERT INTO C6MartPeriodico.[AREA_BISOGNO]  
           ([ID_AREA]  
           ,[NOME_AREA]  
           ,[ORDINAMENTO]  
           ,[ID_ELAB])  
 SELECT   
  LTRIM(RTRIM(NEEDAREA.OID$)) AS ID_AREA,  
  LTRIM(RTRIM(NEEDAREA.AREANAME)) AS NOME_AREA,  
  NEEDAREA.AREASORTORDER AS ORDINAMENTO,  
  @ID_ELAB AS ID_ELAB  
 FROM C6STAGINGPERIODICO.NEEDAREA  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_AREA_BISOGNO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_AREA_BISOGNO'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_AREA_BISOGNO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_AREA_BISOGNO_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here

	TRUNCATE TABLE C6MartPeriodico.AREA_BISOGNO
	
	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_AREA_BISOGNO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	INSERT INTO C6MartPeriodico.[AREA_BISOGNO]
           ([ID_AREA]
           ,[NOME_AREA]
           ,[ORDINAMENTO]
           ,[ID_ELAB])
	SELECT 
		LTRIM(RTRIM(NEEDAREA.OID$)) AS ID_AREA,
		LTRIM(RTRIM(NEEDAREA.AREANAME)) AS NOME_AREA,
		NEEDAREA.AREASORTORDER AS ORDINAMENTO,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGINGPERIODICO.NEEDAREA

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_AREA_BISOGNO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_AREA_BISOGNO_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSET_PERC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ASSET_PERC]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ASSET_PERC',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[ASSET_PERC]  
  
 INSERT INTO [C6MartPeriodico].[ASSET_PERC]  
           ([COD_PRODOTTO]  
           ,[ID_ASSETCLASS]  
           ,[COD_ISIN]  
           ,[COD_MAF]  
           ,[COD_INTERNO]  
           ,[COD_SOTTOPRODOTTO]  
           ,[LIVELLO]  
           ,[PERC]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT DISTINCT  
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  LTRIM(RTRIM(ACBDENTRY.F_OID$_PASSE_B8A1E)) AS ID_ASSETCLASS,   
  CATITEMREF.COD_ISIN AS COD_ISIN,  
  CATITEMREF.COD_MAF AS COD_MAF,  
  CATITEMREF.COD_INTERNO AS COD_INTERNO,  
  CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,  
  LTRIM(RTRIM(ASSETCLASS.ASSETCLASSLEV)) AS LIVELLO,  
  LTRIM(RTRIM(ACBDENTRY.BDPERCENTAGE)) AS PERC,   
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodico.CATITEMREF  
 INNER JOIN   
  C6StagingPeriodico.INSTRBDS  
  ON   
   INSTRBDS.F_OID$_PCATA_5DDA6 = CATITEMREF.OID$  
 INNER JOIN   
  C6StagingPeriodico.ACBDENTRY  
  ON   
   ACBDENTRY.F_PINSTRUMEN_FBCDE = INSTRBDS.OID$  
 INNER JOIN   
  C6StagingPeriodico.ASSETCLASS  
  ON   
   ASSETCLASS.OID$ = ACBDENTRY.F_OID$_PASSE_B8A1E  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ASSET_PERC' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ASSET_PERC'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSET_PERC_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ASSET_PERC_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSET_PERC_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[ASSET_PERC]

	INSERT INTO [C6MartPeriodico].[ASSET_PERC]
           ([COD_PRODOTTO]
           ,[ID_ASSETCLASS]
           ,[COD_ISIN]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[LIVELLO]
           ,[PERC]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		LTRIM(RTRIM(ACBDENTRY.F_OID$_PASSE_B8A1E)) AS ID_ASSETCLASS, 
		CATITEMREF.COD_ISIN AS COD_ISIN,
		CATITEMREF.COD_MAF AS COD_MAF,
		CATITEMREF.COD_INTERNO AS COD_INTERNO,
		CATITEMREF.COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		LTRIM(RTRIM(ASSETCLASS.ASSETCLASSLEV)) AS LIVELLO,
		LTRIM(RTRIM(ACBDENTRY.BDPERCENTAGE)) AS PERC, 
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6StagingPeriodico.CATITEMREF
	INNER JOIN 
		C6StagingPeriodico.INSTRBDS
		ON 
			INSTRBDS.F_OID$_PCATA_5DDA6 = CATITEMREF.OID$
	INNER JOIN 
		C6StagingPeriodico.ACBDENTRY
		ON 
			ACBDENTRY.F_PINSTRUMEN_FBCDE = INSTRBDS.OID$
	INNER JOIN 
		C6StagingPeriodico.ASSETCLASS
		ON 
			ASSETCLASS.OID$ = ACBDENTRY.F_OID$_PASSE_B8A1E

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSET_PERC_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSET_PERC_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ASSET_PERC_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
 SET @TIPO_ELAB = [C6MartPeriodico].GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ASSET_PERC_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[ASSET_PERC_TERZI]  
  
 INSERT INTO [C6MartPeriodico].[ASSET_PERC_TERZI]  
           ([COD_PRODOTTO_TERZI]  
           ,[ID_ASSETCLASS]  
           ,[LIVELLO]  
           ,[NOME_PRODOTTO]  
           ,[TIPO_PRODOTTO]  
           ,[PERC]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT DISTINCT  
  PATR_TP.CHIAVE_THR AS COD_PRODOTTO_TERZI,  
  ASS.OID$ AS ID_ASSETCLASS,  
  ASS.ASSETCLASSLEV AS LIVELLO,  
  CONVERT( VARCHAR(50),PATR_TP.NOMEPRODOTTO) AS NOME_PRODOTTO,  
  ALBERO.ALBERO_GERARCHIA_3 AS TIPO_PRODOTTO,  
  ACB.BDPERCENTAGE AS PERC,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodico.ALL_PATR_TERZI PATR_TP,  
  C6StagingPeriodico.ACBDENOTH ACB,  
  C6StagingPeriodico.ASSETCLASS ASS,  
  C6StagingPeriodico.S4_S5_S13_TRAD_UNTIL_LIV3 ALBERO  
 WHERE 1 = 1  
  AND PATR_TP.CHIAVE_FNC IS NOT NULL  
  AND ALBERO.DESCRIZIONE_ORIGINALE = PATR_TP.DESCRIZIONE_ALBERATURA  
  AND ACB.F_PFINANCIAL_815C0 = PATR_TP.CHIAVE_FNC  
  AND ACB.F_OID$_PASSE_CDF1A = ASS.OID$  
  AND ASS.ASSETCLASSLEV IN (1,2)  
  AND PATR_TP.PRODOTTO_IN_CATALOGO IS NULL  
 GROUP BY  
  PATR_TP.CHIAVE_THR,  
  PATR_TP.NOMEPRODOTTO,   
  ASS.OID$,   
  ASS.ASSETCLASSLEV,  
  ALBERO.ALBERO_GERARCHIA_3,  
  ACB.BDPERCENTAGE,  
  ACB.OID$  
 ORDER BY 2,4  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ASSET_PERC_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ASSET_PERC_TERZI'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSET_PERC_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ASSET_PERC_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()
	SET @TIPO_ELAB = [C6MartPeriodico].GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSET_PERC_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[ASSET_PERC_TERZI]

	INSERT INTO [C6MartPeriodico].[ASSET_PERC_TERZI]
           ([COD_PRODOTTO_TERZI]
           ,[ID_ASSETCLASS]
           ,[LIVELLO]
           ,[NOME_PRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[PERC]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		PATR_TP.CHIAVE_THR AS COD_PRODOTTO_TERZI,
		ASS.OID$ AS ID_ASSETCLASS,
		ASS.ASSETCLASSLEV AS LIVELLO,
		CONVERT( VARCHAR(50),PATR_TP.NOMEPRODOTTO) AS NOME_PRODOTTO,
		ALBERO.ALBERO_GERARCHIA_3 AS TIPO_PRODOTTO,
		ACB.BDPERCENTAGE AS PERC,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6StagingPeriodico.ALL_PATR_TERZI PATR_TP,
		C6StagingPeriodico.ACBDENOTH ACB,
		C6StagingPeriodico.ASSETCLASS ASS,
		C6StagingPeriodico.S4_S5_S13_TRAD_UNTIL_LIV3 ALBERO
	WHERE 1 = 1
		AND PATR_TP.CHIAVE_FNC IS NOT NULL
		AND ALBERO.DESCRIZIONE_ORIGINALE = PATR_TP.DESCRIZIONE_ALBERATURA
		AND ACB.F_PFINANCIAL_815C0 = PATR_TP.CHIAVE_FNC
		AND ACB.F_OID$_PASSE_CDF1A = ASS.OID$
		AND ASS.ASSETCLASSLEV IN (1,2)
		AND PATR_TP.PRODOTTO_IN_CATALOGO IS NULL
	GROUP BY
		PATR_TP.CHIAVE_THR,
		PATR_TP.NOMEPRODOTTO, 
		ASS.OID$, 
		ASS.ASSETCLASSLEV,
		ALBERO.ALBERO_GERARCHIA_3,
		ACB.BDPERCENTAGE,
		ACB.OID$
	ORDER BY 2,4

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSET_PERC_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSET_PERC_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSETCLASS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ASSETCLASS]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ASSETCLASS',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].ASSETCLASS  
  
 INSERT INTO [C6MartPeriodico].[ASSETCLASS]  
           ([ID_ASSETCLASS]  
           ,[DESCRIZIONE]  
           ,[LIVELLO]  
           ,[ORDINAMENTO]  
           ,[ID_ELAB])  
 SELECT   
  LTRIM(RTRIM(ASSETCLASS.OID$)) AS ID_ASSETCLASS,  
  LTRIM(RTRIM(ASSETCLASS.ASSETCLASSDESCR)) AS DESCRIZIONE,  
  ASSETCLASS.ASSETCLASSLEV AS LIVELLO,  
  ASSETCLASS.ORDINE AS ORDINAMENTO,  
  @ID_ELAB AS ID_ELAB  
 FROM C6StagingPeriodico.ASSETCLASS  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ASSETCLASS' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ASSETCLASS'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSETCLASS_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ASSETCLASS_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSETCLASS_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].ASSETCLASS

	INSERT INTO [C6MartPeriodico].[ASSETCLASS]
           ([ID_ASSETCLASS]
           ,[DESCRIZIONE]
           ,[LIVELLO]
           ,[ORDINAMENTO]
           ,[ID_ELAB])
	SELECT 
		LTRIM(RTRIM(ASSETCLASS.OID$)) AS ID_ASSETCLASS,
		LTRIM(RTRIM(ASSETCLASS.ASSETCLASSDESCR)) AS DESCRIZIONE,
		ASSETCLASS.ASSETCLASSLEV AS LIVELLO,
		ASSETCLASS.ORDINE AS ORDINAMENTO,
		@ID_ELAB AS ID_ELAB
	FROM C6StagingPeriodico.ASSETCLASS

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSETCLASS_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSETCLASS_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_ASSETCLASS_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
   
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
 SET @TIPO_ELAB = [C6MartPeriodico].GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ASSETCLASS_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].ASSETCLASS_TERZI  
   
 INSERT INTO [C6MartPeriodico].[ASSETCLASS_TERZI]  
           ([ID_ASSETCLASS]  
           ,[COD_ISIN]  
           ,[COD_MAF]  
           ,[COD_ADEGUATEZZA]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT   
  LTRIM(RTRIM(ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO)) AS ID_ASSETCLASS,  
  LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN,'$'))) AS COD_ISIN,  
  LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF,'$'))) AS COD_MAF,  
  LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA,'$'))) AS COD_ADEGUATEZZA,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6StagingPeriodico.ALL_ASSET_CLASS_PER_PROMET  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ASSETCLASS_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_ASSETCLASS_TERZI'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ASSETCLASS_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ASSETCLASS_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()
	SET @TIPO_ELAB = [C6MartPeriodico].GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ASSETCLASS_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].ASSETCLASS_TERZI
	
	INSERT INTO [C6MartPeriodico].[ASSETCLASS_TERZI]
           ([ID_ASSETCLASS]
           ,[COD_ISIN]
           ,[COD_MAF]
           ,[COD_ADEGUATEZZA]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT 
		LTRIM(RTRIM(ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO)) AS ID_ASSETCLASS,
		LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN,'$'))) AS COD_ISIN,
		LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF,'$'))) AS COD_MAF,
		LTRIM(RTRIM(ISNULL(ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA,'$'))) AS COD_ADEGUATEZZA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.ALL_ASSET_CLASS_PER_PROMET

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ASSETCLASS_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ASSETCLASS_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_BONUS]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[DM_BONUS]  
AS  
BEGIN  
    
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
    DECLARE @DTMAX INT  
      
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
      
    SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEIBO     
       
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_BONUS',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE [C6MartPeriodico].[BONUS]  
  
 INSERT INTO [C6MartPeriodico].[BONUS]  
           (   
   [RETE],  
   [COD_FISCALE],      
   [CTV],  
   [DT_TRIM],    
   [BONUS_M],  
   [DTDEC_M],   
   [BONUS_5],  
   [DTDEC_5],   
   [BONUS_10],  
   [DTDEC_10],  
   [COD_CONF],   
   [COD_PROD]  
   )  
 SELECT   
   WSEIBO.[RETE] as [RETE],  
   WSEIBO.[CODFIS] as [COD_FISCALE],  
   WSEIBO.[CTV] as [CTV],  
   convert(datetime,convert(varchar,WSEIBO.[DTTRIM]),100) as [DT_TRIM],    
   WSEIBO.[BONUSM] as [BONUS_M],  
   convert(datetime,convert(varchar,WSEIBO.[DTDECM]),100) as [DTDEC_M],   
   WSEIBO.[BONUS5] as [BONUS_5],  
   convert(datetime,convert(varchar,WSEIBO.[DTDEC5]),100) as [DTDEC_5],   
   WSEIBO.[BONUS10] as [BONUS_10],  
   convert(datetime,convert(varchar,WSEIBO.[DTDEC10]),100) as [DTDEC_10],     
   WSEIBO.[CODCONF] as [COD_CONF],  
   WSEIBO.[CODPROD] as [COD_PROD]  
 FROM   
  c6StagingPeriodico.WSEIBO    
 WHERE   
   WSEIBO.[DTTRIM] = @DTMAX  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_BONUS' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_BONUS'  
  )  
  
END  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_BONUS_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_BONUS_pre_selective]
AS
BEGIN
	 
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    DECLARE @DTMAX INT
    
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

    
    SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEIBO   
     
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_BONUS_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		
	TRUNCATE TABLE [C6MartPeriodico].[BONUS]

	INSERT INTO [C6MartPeriodico].[BONUS]
           ( 
			[RETE],
			[COD_FISCALE],    
			[CTV],
			[DT_TRIM],		
			[BONUS_M],
			[DTDEC_M],	
			[BONUS_5],
			[DTDEC_5],	
			[BONUS_10],
			[DTDEC_10],
			[COD_CONF],	
			[COD_PROD]
			)
	SELECT 
			WSEIBO.[RETE] as [RETE],
			WSEIBO.[CODFIS] as [COD_FISCALE],
			WSEIBO.[CTV] as [CTV],
			convert(datetime,convert(varchar,WSEIBO.[DTTRIM]),100) as [DT_TRIM],		
			WSEIBO.[BONUSM]	as [BONUS_M],
			convert(datetime,convert(varchar,WSEIBO.[DTDECM]),100)	as [DTDEC_M],	
			WSEIBO.[BONUS5]	as [BONUS_5],
			convert(datetime,convert(varchar,WSEIBO.[DTDEC5]),100)	as [DTDEC_5],	
			WSEIBO.[BONUS10]	as [BONUS_10],
			convert(datetime,convert(varchar,WSEIBO.[DTDEC10]),100)	as [DTDEC_10],			
			WSEIBO.[CODCONF] as [COD_CONF],
			WSEIBO.[CODPROD] as [COD_PROD]
	FROM 
		c6StagingPeriodico.WSEIBO  
	WHERE 
	  WSEIBO.[DTTRIM] = @DTMAX
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_BONUS_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_BONUS_pre_selective'
		)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CAPPROT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



 
  
-- =============================================  
-- Author:  <Federica Cianfa>  
-- Create date: <18/11/2014, Pomezia>  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT  
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>  
-- =============================================  
  
-- =============================================  
--   
-- MOd: <26/11/2015, Pomezia>  
-- Description: Aggiunto il campo 'des_prod_tit' per modifiche E-FOI80  
-- =============================================  
  
--[C6MartPeriodico].[DM_CAPPROT]  
CREATE procedure [C6MartPeriodico].[DM_CAPPROT]  
   
  
  
AS  
BEGIN  
  
SET NOCOUNT ON;  
  
  
DECLARE @Par_percentuale INT  
SET @Par_percentuale = 80  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CAPPROT',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE C6MartPeriodico.CAPPROT  
  
 INSERT INTO C6MartPeriodico.CAPPROT  
 ([RETE]  
 ,[CODFIS]  
 ,[DES_PROD]  
 ,[COD_CONF]  
 ,[QUOTA]  
 ,[NUMEROQUOTE]  
 ,[CONTROVALORE]  
 ,[DATARIF]  
 ,[DES_MAX]  
 ,[QUOTA_MAX]  
 ,[QUOTA_MAX_PERC]  
 ,[DATARIF_MAX]  
 ,[DES_PROT]  
 ,[QUOTA_PROT]  
 ,[NUMEROQUOTE_PROT]  
 ,[CONTROVALORE_PROT]  
 ,[DES_PROD_TIT]  
 )  
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0) AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIUL UL  
 LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and UL.isin=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isin <> ''  
   
 union  
   
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIUL UL  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and UL.isinFIT=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isinFIT <> ''  
   
 union  
   
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
 QUOTE AS NUMEROQUOTE_PROT,     
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIUL UL  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isin = ''  
 AND UL.isinFIT = ''  
  
 union  
   
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIGP GP  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  GP.isin=ISNULL(CAT.codisin,'')  
    and CAT.tipoprodotto = 'GP'  
    and CAT.visibilita = 1  
  WHERE GP.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
  

-- lancio il caricamento delle nuove tabelle per la gestione del capitale protetto (My Blue 'CS80', 
-- My White 'CT80', Linea Protetta 'RF/FP' ----
-- Dicembre 2017
exec [C6MartPeriodico].[DM_CAPPROT_FVI] 

exec [C6MartPeriodico].[DM_STORICO_CAPPROT_FVI]
---------------------------------------------------------------------------------------------------

 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CAPPROT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CAPPROT'  
  )  
  
END   
  
  
  
  
  
  
  
  
  
  
  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CAPPROT_20171129]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


 
  
-- =============================================  
-- Author:  <Federica Cianfa>  
-- Create date: <18/11/2014, Pomezia>  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT  
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>  
-- =============================================  
  
-- =============================================  
--   
-- MOd: <26/11/2015, Pomezia>  
-- Description: Aggiunto il campo 'des_prod_tit' per modifiche E-FOI80  
-- =============================================  
  
--[C6MartPeriodico].[DM_CAPPROT]  
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_20171129]  
   
  
  
AS  
BEGIN  
  
SET NOCOUNT ON;  
  
  
DECLARE @Par_percentuale INT  
SET @Par_percentuale = 80  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CAPPROT',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE C6MartPeriodico.CAPPROT  
  
 INSERT INTO C6MartPeriodico.CAPPROT  
 ([RETE]  
 ,[CODFIS]  
 ,[DES_PROD]  
 ,[COD_CONF]  
 ,[QUOTA]  
 ,[NUMEROQUOTE]  
 ,[CONTROVALORE]  
 ,[DATARIF]  
 ,[DES_MAX]  
 ,[QUOTA_MAX]  
 ,[QUOTA_MAX_PERC]  
 ,[DATARIF_MAX]  
 ,[DES_PROT]  
 ,[QUOTA_PROT]  
 ,[NUMEROQUOTE_PROT]  
 ,[CONTROVALORE_PROT]  
 ,[DES_PROD_TIT]  
 )  
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0) AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIUL UL  
 LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and UL.isin=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isin <> ''  
   
 union  
   
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIUL UL  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and UL.isinFIT=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isinFIT <> ''  
   
 union  
   
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
 QUOTE AS NUMEROQUOTE_PROT,     
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIUL UL  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  UL.codint=CAT.codinterno  
    and UL.subprod=CAT.codsottoprodotto  
    and CAT.visibilita = 1  
 WHERE UL.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 AND UL.isin = ''  
 AND UL.isinFIT = ''  
  
 union  
   
 select --top 10  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    CAT.NOMEPRODOTTO as DES_PROD,  
 CODCONF AS COD_CONF,  
 PREZZO AS QUOTA,  
-- CTV/ PREZZO AS NUMEROQUOTE,   
 QUOTE AS NUMEROQUOTE,   
 CTV AS CONTROVALORE,  
 @DataFineTrim AS DATARIF,   
 'Quota massima' AS DES_MAX,  
 PREZZOMAX AS QUOTA_MAX,  
 @Par_percentuale AS QUOTA_MAX_PERC,   
 CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
   
 --  E-FOI80  
 --'Quota e controvalore protetti'  AS DES_PROT,  
 'Quota e controvalore protetti *'  AS DES_PROT,  
 --  fine E-FOI80  
   
 PREZZOPROT AS QUOTA_PROT,  
-- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
 QUOTE AS NUMEROQUOTE_PROT,   
 CTRVIMPPROT AS CONTROVALORE_PROT,  
 -- Campo aggiunto per E-FOI80  
 'Interfund Crescita Protetta 80' AS DES_PROD_TIT  
   
 FROM C6StagingPeriodico.WSEIGP GP  
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  GP.isin=ISNULL(CAT.codisin,'')  
    and CAT.tipoprodotto = 'GP'  
    and CAT.visibilita = 1  
  WHERE GP.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CAPPROT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CAPPROT'  
  )  
  
END   
  
  
  
  
  
  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CAPPROT_BKP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Federica Cianfa>
-- Create date: <18/11/2014, Pomezia>
-- Description:	<La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2): 
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>
-- =============================================
--[C6MartPeriodico].[DM_CAPPROT]
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_BKP]
	


AS
BEGIN

SET NOCOUNT ON;


DECLARE @Par_percentuale INT
SET @Par_percentuale = 80

DECLARE @DataFineTrim VARCHAR(8)
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CAPPROT',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		
	TRUNCATE TABLE C6MartPeriodico.CAPPROT

	INSERT INTO C6MartPeriodico.CAPPROT
	([RETE]
	,[CODFIS]
	,[DES_PROD]
	,[COD_CONF]
	,[QUOTA]
	,[NUMEROQUOTE]
	,[CONTROVALORE]
	,[DATARIF]
	,[DES_MAX]
	,[QUOTA_MAX]
	,[QUOTA_MAX_PERC]
	,[DATARIF_MAX]
	,[DES_PROT]
	,[QUOTA_PROT]
	,[NUMEROQUOTE_PROT]
	,[CONTROVALORE_PROT]
	)
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0) AS DATARIF_MAX,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT
	FROM C6StagingPeriodico.WSEIUL UL
	LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  UL.codint=CAT.codinterno
    and UL.subprod=CAT.codsottoprodotto
    and UL.isin=ISNULL(CAT.codisin,'')
    and CAT.visibilita = 1
	WHERE UL.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	AND UL.isin <> ''
	
	union
	
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT
	FROM C6StagingPeriodico.WSEIUL UL
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  UL.codint=CAT.codinterno
    and UL.subprod=CAT.codsottoprodotto
    and UL.isinFIT=ISNULL(CAT.codisin,'')
    and CAT.visibilita = 1
	WHERE UL.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	AND UL.isinFIT <> ''
	
	union
	
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
	QUOTE AS NUMEROQUOTE_PROT, 	 
	CTRVIMPPROT AS CONTROVALORE_PROT
	FROM C6StagingPeriodico.WSEIUL UL
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  UL.codint=CAT.codinterno
    and UL.subprod=CAT.codsottoprodotto
    and CAT.visibilita = 1
	WHERE UL.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	AND UL.isin = ''
	AND UL.isinFIT = ''

	union
	
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
	'Quota e controvalore protetti'  AS DES_PROT,
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT
	FROM C6StagingPeriodico.WSEIGP GP
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  GP.isin=ISNULL(CAT.codisin,'')
    and CAT.tipoprodotto = 'GP'
    and CAT.visibilita = 1
 	WHERE GP.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CAPPROT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CAPPROT'
		)

END	









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CAPPROT_FVI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
-- =============================================  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT  
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>  
-- =============================================  

  
--[C6MartPeriodico].[DM_CAPPROT_FVI]
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_FVI]  
   
  
  
AS  
BEGIN  
  
SET NOCOUNT ON;  
  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CAPPROT_FVI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE C6MartPeriodico.CAPPROT_FVI  
  
 INSERT INTO C6MartPeriodico.CAPPROT_FVI  
 (
[RETE],
[CODFIS],
[CODPROD],
[SUBPROD],
[DES_PROD],
[COD_CONF],
[CONTROVALORE_RIFERIMENTO],
[COMPONENTE_PERFORMANCE],
[COMPONENTE_PROTEZIONE],
[DES_PROT],
[CONTROVALORE_PROT],
[DATARIF],
[DES_PROD_TIT],
[somma_ctv]
 )  
 select   
 RETE,  
 CODFIS,  
 CODPROD,
 SUBPROD,
 DES_PROD,  
 COD_CONF, 
 CONTROVALORE_RIFERIMENTO, 
 COMPONENTE_PERFORMANCE,
 COMPONENTE_PROTEZIONE,
 DES_PROT,   
 CONTROVALORE_PROT, 
 DATARIF,  
 DES_PROD_TIT  ,
 
 -- Errore segnalato in certificazione campione ad Aprile 2018 - 
 -- cf PRNMCD44M17L682S/F -  id 4  -  verificare a pag 17/24 del report il totale patrimonio controvalore protetto ( non quadra il tot € 28.346,65) che non ritorna con le due linee blue e white pag  18/19
 --          IL TOTALE DELLA LINEA NON DEVE ESSERE RAGGRUPPATO PER CODCONF MA PER LINEA (SUBPROD)
 --
 --			    sum(CONTROVALORE_RIFERIMENTO) over  (partition by COD_CONF ) as tot_controvalore	
 sum(CONTROVALORE_RIFERIMENTO) over  (partition by codfis,COD_CONF,SUBPROD ) as tot_controvalore
 -- Fine modifica  Aprile 2018

 from( 
 
 select   
 LP.RETE AS RETE,  
 LP.CODFIS AS CODFIS,  
 LP.CODPROD AS CODPROD,
 LP.CODLINEA AS SUBPROD,
 CAT.NOMEPRODOTTO as DES_PROD,  
 LP.CODCONF AS COD_CONF, 
 CS.CTV AS CONTROVALORE_RIFERIMENTO, 

 -- correzione calcolo per errore documento di analisi - 18/12/2017
     --LP.[CTV PROT] - LP.CTVMON AS COMPONENTE_PERFORMANCE,
	 CS.CTV - LP.CTVMON AS COMPONENTE_PERFORMANCE,
 -- fine correzione calcolo per errore documento di analisi - 18/12/2017

 LP.CTVMON AS COMPONENTE_PROTEZIONE,
 'Quota e controvalore protetti *'  AS DES_PROT,   
 LP.[CTV_PROT] AS CONTROVALORE_PROT, 
 @DataFineTrim AS DATARIF,  
 case
	when lp.codlinea = 'CS80' then 'FV Insieme Linea My Blue Protection 80'
	when lp.codlinea = 'CT80' then 'FV Insieme Linea My White Protection 80'
 end
  AS DES_PROD_TIT  
   
  FROM C6StagingPeriodico.WSEILP LP  
  
  JOIN [C6StagingPeriodico].[wseics] CS
  ON 
  LP.RETE = CS.RETE  
  AND LP.CODFIS = CS.CODFIS 
  AND LP.CODCONF = CS.CODCONF 
  AND LP.CODLINEA = CS.SUBPROD

  LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
  on  
   cat.codmaf = 'RS_'+lp.codlinea
  and CAT.visibilita = 1  
WHERE LP.DTTRIM = @DataFineTrim  and cs.dttrim = @DataFineTrim and lp.codlinea in ('CS80','CT80')

union

select   
 LP.RETE AS RETE,  
 LP.CODFIS AS CODFIS,  
 LP.CODPROD AS CODPROD,
 LP.CODLINEA AS SUBPROD,
 'FV Sintonia Linea Protezione 85' as DES_PROD,  
 LP.CODCONF AS COD_CONF, 
/* 
  il controvalore di riferimento deve coincidere con la somma dei controvalori dei singoli fondi
   sottostanti alla linea (selezionati dal cliente e monetari movimentati dal Risk Provider) 
   e della gestione separata “FV Vivadue” 
*/
(select sum(CTV) from  [C6StagingPeriodico].[wseics] 
	where rete = LP.RETE   
  AND  CODFIS = LP.CODFIS  and dttrim = @DataFineTrim and CODCONF = LP.CODCONF and codprod = lp.codprod)
  AS CONTROVALORE_RIFERIMENTO, 

 -- correzione calcolo per errore documento di analisi - 18/12/2017
		---LP.[CTV PROT] - LP.CTVMON AS COMPONENTE_PERFORMANCE,
		(select sum(CTV) from  [C6StagingPeriodico].[wseics] 
	where rete = LP.RETE   
  AND  CODFIS = LP.CODFIS  and dttrim = @DataFineTrim and CODCONF = LP.CODCONF and codprod = lp.codprod) - LP.CTVMON AS COMPONENTE_PERFORMANCE,
 -- fine correzione calcolo per errore documento di analisi - 18/12/2017

 LP.CTVMON AS COMPONENTE_PROTEZIONE,
 'Quota e controvalore protetti *'  AS DES_PROT,   
 LP.[CTV_PROT] AS CONTROVALORE_PROT, 
 @DataFineTrim AS DATARIF,  
 'FV Sintonia Linea Protezione 85' AS DES_PROD_TIT  
   
  FROM C6StagingPeriodico.WSEILP LP  
  
  JOIN [C6StagingPeriodico].[wseics] CS
  ON 
  LP.RETE = CS.RETE  
  AND LP.CODFIS = CS.CODFIS 
  AND LP.CODCONF = CS.CODCONF 
  AND LP.CODLINEA = CS.SUBPROD


WHERE
 LP.DTTRIM = @DataFineTrim 
  and cs.dttrim = @DataFineTrim
   and lp.codlinea = 'MP'
    and lp.flagtrim = 'S' --creo un record per ogni contratto, prendendo i dati del record con i dati aggregati (flagtrim = 's')
   ) a
 
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CAPPROT_FVI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CAPPROT_FVI'  
  )  
  
END   
  
  
  
  
  
  
  
  
  
  
  
  


















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CAPPROT_FVI_20180424]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
-- =============================================  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT  
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>  
-- =============================================  

  
--[C6MartPeriodico].[DM_CAPPROT_FVI]
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_FVI_20180424]  
   
  
  
AS  
BEGIN  
  
SET NOCOUNT ON;  
  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CAPPROT_FVI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE C6MartPeriodico.CAPPROT_FVI  
  
 INSERT INTO C6MartPeriodico.CAPPROT_FVI  
 (
[RETE],
[CODFIS],
[CODPROD],
[SUBPROD],
[DES_PROD],
[COD_CONF],
[CONTROVALORE_RIFERIMENTO],
[COMPONENTE_PERFORMANCE],
[COMPONENTE_PROTEZIONE],
[DES_PROT],
[CONTROVALORE_PROT],
[DATARIF],
[DES_PROD_TIT],
[somma_ctv]
 )  
 select   
 RETE,  
 CODFIS,  
 CODPROD,
 SUBPROD,
 DES_PROD,  
 COD_CONF, 
 CONTROVALORE_RIFERIMENTO, 
 COMPONENTE_PERFORMANCE,
 COMPONENTE_PROTEZIONE,
 DES_PROT,   
 CONTROVALORE_PROT, 
 DATARIF,  
 DES_PROD_TIT  ,
 
 sum(CONTROVALORE_RIFERIMENTO) over  (partition by COD_CONF ) as tot_controvalore
 
 from( 
 
 select   
 LP.RETE AS RETE,  
 LP.CODFIS AS CODFIS,  
 LP.CODPROD AS CODPROD,
 LP.CODLINEA AS SUBPROD,
 CAT.NOMEPRODOTTO as DES_PROD,  
 LP.CODCONF AS COD_CONF, 
 CS.CTV AS CONTROVALORE_RIFERIMENTO, 

 -- correzione calcolo per errore documento di analisi - 18/12/2017
     --LP.[CTV PROT] - LP.CTVMON AS COMPONENTE_PERFORMANCE,
	 CS.CTV - LP.CTVMON AS COMPONENTE_PERFORMANCE,
 -- fine correzione calcolo per errore documento di analisi - 18/12/2017

 LP.CTVMON AS COMPONENTE_PROTEZIONE,
 'Quota e controvalore protetti *'  AS DES_PROT,   
 LP.[CTV PROT] AS CONTROVALORE_PROT, 
 @DataFineTrim AS DATARIF,  
 case
	when lp.codlinea = 'CS80' then 'FV Insieme Linea My Blue Protection 80'
	when lp.codlinea = 'CT80' then 'FV Insieme Linea My White Protection 80'
 end
  AS DES_PROD_TIT  
   
  FROM C6StagingPeriodico.WSEILP LP  
  
  JOIN [C6StagingPeriodico].[wseics] CS
  ON 
  LP.RETE = CS.RETE  
  AND LP.CODFIS = CS.CODFIS 
  AND LP.CODCONF = CS.CODCONF 
  AND LP.CODLINEA = CS.SUBPROD

  LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
  on  
   cat.codmaf = 'RS_'+lp.codlinea
  and CAT.visibilita = 1  
WHERE LP.DTTRIM = @DataFineTrim  and cs.dttrim = @DataFineTrim and lp.codlinea in ('CS80','CT80')

union

select   
 LP.RETE AS RETE,  
 LP.CODFIS AS CODFIS,  
 LP.CODPROD AS CODPROD,
 LP.CODLINEA AS SUBPROD,
 'FV Sintonia Linea Protezione 85' as DES_PROD,  
 LP.CODCONF AS COD_CONF, 
/* 
  il controvalore di riferimento deve coincidere con la somma dei controvalori dei singoli fondi
   sottostanti alla linea (selezionati dal cliente e monetari movimentati dal Risk Provider) 
   e della gestione separata “FV Vivadue” 
*/
(select sum(CTV) from  [C6StagingPeriodico].[wseics] 
	where rete = LP.RETE   
  AND  CODFIS = LP.CODFIS  and dttrim = @DataFineTrim and CODCONF = LP.CODCONF and codprod = lp.codprod)
  AS CONTROVALORE_RIFERIMENTO, 

 -- correzione calcolo per errore documento di analisi - 18/12/2017
		---LP.[CTV PROT] - LP.CTVMON AS COMPONENTE_PERFORMANCE,
		(select sum(CTV) from  [C6StagingPeriodico].[wseics] 
	where rete = LP.RETE   
  AND  CODFIS = LP.CODFIS  and dttrim = @DataFineTrim and CODCONF = LP.CODCONF and codprod = lp.codprod) - LP.CTVMON AS COMPONENTE_PERFORMANCE,
 -- fine correzione calcolo per errore documento di analisi - 18/12/2017

 LP.CTVMON AS COMPONENTE_PROTEZIONE,
 'Quota e controvalore protetti *'  AS DES_PROT,   
 LP.[CTV PROT] AS CONTROVALORE_PROT, 
 @DataFineTrim AS DATARIF,  
 'FV Sintonia Linea Protezione 85' AS DES_PROD_TIT  
   
  FROM C6StagingPeriodico.WSEILP LP  
  
  JOIN [C6StagingPeriodico].[wseics] CS
  ON 
  LP.RETE = CS.RETE  
  AND LP.CODFIS = CS.CODFIS 
  AND LP.CODCONF = CS.CODCONF 
  AND LP.CODLINEA = CS.SUBPROD


WHERE
 LP.DTTRIM = @DataFineTrim 
  and cs.dttrim = @DataFineTrim
   and lp.codlinea = 'MP'
    and lp.flagtrim = 'S' --creo un record per ogni contratto, prendendo i dati del record con i dati aggregati (flagtrim = 's')
   ) a
 
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CAPPROT_FVI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CAPPROT_FVI'  
  )  
  
END   
  
  
  
  
  
  
  
  
  
  
  
  
















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CAPPROT_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Federica Cianfa>
-- Create date: <18/11/2014, Pomezia>
-- Description:	<La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2): 
-- C6StagingPeriodico.WSEIGP e C6StagingPeriodico.WSEIUL, e con tali dati popola la tb dbo.C6MartPeriodico.CAPPROT
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>
-- =============================================

-- =============================================
-- 
-- MOd: <26/11/2015, Pomezia>
-- Description:	Aggiunto il campo 'des_prod_tit' per modifiche E-FOI80
-- =============================================

--[C6MartPeriodico].[DM_CAPPROT_pre_selective]
CREATE procedure [C6MartPeriodico].[DM_CAPPROT_pre_selective]
	


AS
BEGIN

SET NOCOUNT ON;


DECLARE @Par_percentuale INT
SET @Par_percentuale = 80

DECLARE @DataFineTrim VARCHAR(8)
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CAPPROT_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		
	TRUNCATE TABLE C6MartPeriodico.CAPPROT

	INSERT INTO C6MartPeriodico.CAPPROT
	([RETE]
	,[CODFIS]
	,[DES_PROD]
	,[COD_CONF]
	,[QUOTA]
	,[NUMEROQUOTE]
	,[CONTROVALORE]
	,[DATARIF]
	,[DES_MAX]
	,[QUOTA_MAX]
	,[QUOTA_MAX_PERC]
	,[DATARIF_MAX]
	,[DES_PROT]
	,[QUOTA_PROT]
	,[NUMEROQUOTE_PROT]
	,[CONTROVALORE_PROT]
	,[DES_PROD_TIT]
	)
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0) AS DATARIF_MAX,
	
	--  E-FOI80
	--'Quota e controvalore protetti'  AS DES_PROT,
	'Quota e controvalore protetti *'  AS DES_PROT,
	--  fine E-FOI80
	
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT,
	-- Campo aggiunto per E-FOI80
	'Interfund Crescita Protetta 80' AS DES_PROD_TIT
	
	FROM C6StagingPeriodico.WSEIUL UL
	LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  UL.codint=CAT.codinterno
    and UL.subprod=CAT.codsottoprodotto
    and UL.isin=ISNULL(CAT.codisin,'')
    and CAT.visibilita = 1
	WHERE UL.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	AND UL.isin <> ''
	
	union
	
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
	
	--  E-FOI80
	--'Quota e controvalore protetti'  AS DES_PROT,
	'Quota e controvalore protetti *'  AS DES_PROT,
	--  fine E-FOI80
	
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT,
	-- Campo aggiunto per E-FOI80
	'Interfund Crescita Protetta 80' AS DES_PROD_TIT
	
	FROM C6StagingPeriodico.WSEIUL UL
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  UL.codint=CAT.codinterno
    and UL.subprod=CAT.codsottoprodotto
    and UL.isinFIT=ISNULL(CAT.codisin,'')
    and CAT.visibilita = 1
	WHERE UL.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	AND UL.isinFIT <> ''
	
	union
	
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
	
	--  E-FOI80
	--'Quota e controvalore protetti'  AS DES_PROT,
	'Quota e controvalore protetti *'  AS DES_PROT,
	--  fine E-FOI80
	
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
	QUOTE AS NUMEROQUOTE_PROT, 	 
	CTRVIMPPROT AS CONTROVALORE_PROT,
	-- Campo aggiunto per E-FOI80
	'Interfund Crescita Protetta 80' AS DES_PROD_TIT
	
	FROM C6StagingPeriodico.WSEIUL UL
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  UL.codint=CAT.codinterno
    and UL.subprod=CAT.codsottoprodotto
    and CAT.visibilita = 1
	WHERE UL.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	AND UL.isin = ''
	AND UL.isinFIT = ''

	union
	
	select --top 10
	RETE AS RETE,
    CODFIS AS CODFIS,
    CAT.NOMEPRODOTTO as DES_PROD,
	CODCONF AS COD_CONF,
	PREZZO AS QUOTA,
--	CTV/ PREZZO AS NUMEROQUOTE, 
	QUOTE AS NUMEROQUOTE, 
	CTV AS CONTROVALORE,
	@DataFineTrim AS DATARIF, 
	'Quota massima' AS DES_MAX,
	PREZZOMAX AS QUOTA_MAX,
	@Par_percentuale AS QUOTA_MAX_PERC, 
	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
	
	--  E-FOI80
	--'Quota e controvalore protetti'  AS DES_PROT,
	'Quota e controvalore protetti *'  AS DES_PROT,
	--  fine E-FOI80
	
	PREZZOPROT AS QUOTA_PROT,
--	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
	QUOTE AS NUMEROQUOTE_PROT, 
	CTRVIMPPROT AS CONTROVALORE_PROT,
	-- Campo aggiunto per E-FOI80
	'Interfund Crescita Protetta 80' AS DES_PROD_TIT
	
	FROM C6StagingPeriodico.WSEIGP GP
    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  GP.isin=ISNULL(CAT.codisin,'')
    and CAT.tipoprodotto = 'GP'
    and CAT.visibilita = 1
 	WHERE GP.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CAPPROT_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CAPPROT_pre_selective'
		)

END	












GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CLIENTI_CON_RNA_ALTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_CLIENTI_CON_RNA_ALTO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	DECLARE @Rna DECIMAL(19,3)
	SET @Rna = CAST(dbo.getParametro('PERCMAXRISORSENA') AS DECIMAL(19,3)) * 0.01


    
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()
		
	TRUNCATE TABLE [C6MartPeriodico].[CLIENTI_CON_RNA_ALTO]

	INSERT INTO [C6MartPeriodico].[CLIENTI_CON_RNA_ALTO]
           (Rete, 
			CodicePB,
			CodiceFiscale, 
			Percentuale, 
			DataCalcolo,
			ID_ELAB,
			TIPO_ELAB)
	SELECT 
		Rete, 
		CodicePB,
		CodiceFiscale, 
		Percentuale, 
		DataCalcolo,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.CLIENTI_CON_RNA
	WHERE Percentuale > @Rna 
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CLIENTI_NON_MIGRATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_CLIENTI_NON_MIGRATI]  
AS  
BEGIN  
 SELECT  
  RETE,   
  COD_FISCALE,   
  ID_PROMOTORE  
 FROM           
  C6MartPeriodico.ANAG_CLIENTI  
 WHERE  
  (NOME IS NULL OR NOME = '')   
  AND (COGNOME IS NULL OR COGNOME = '')  
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CLIENTI_NON_MIGRATI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_CLIENTI_NON_MIGRATI_pre_selective]
AS
BEGIN
	SELECT
		RETE, 
		COD_FISCALE, 
		ID_PROMOTORE
	FROM         
		C6MartPeriodico.ANAG_CLIENTI
	WHERE
		(NOME IS NULL OR NOME = '') 
		AND (COGNOME IS NULL OR COGNOME = '')
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CODIFICA_CREDITRISK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
-- =============================================  
-- Author:  Valerio Colaianni  
-- Create date: 17 marzo 2009  
  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_CODIFICA_CREDITRISK]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CODIFICA_CREDITRISK',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.CODIFICA_CREDITRISK  
  
 INSERT INTO C6MartPeriodico.[CODIFICA_CREDITRISK]  
           ([PROFILO]  
           ,[DESCRIZIONE]  
           ,[MIN_VAL]  
           ,[MAX_VAL]  
           ,[ID_ELAB])  
 SELECT   
  COD,  
  DESCR,  
  MINVAL,  
  MAXVAL,  
  @ID_ELAB AS ID_ELAB  
 FROM C6STAGINGPERIODICO.RISKCLASS  
   
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CODIFICA_CREDITRISK' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CODIFICA_CREDITRISK'  
  )  
  
END  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CODIFICA_CREDITRISK_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Valerio Colaianni
-- Create date: 17 marzo 2009

-- =============================================
CREATE procedure [C6MartPeriodico].[DM_CODIFICA_CREDITRISK_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CODIFICA_CREDITRISK_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.CODIFICA_CREDITRISK

	INSERT INTO C6MartPeriodico.[CODIFICA_CREDITRISK]
           ([PROFILO]
           ,[DESCRIZIONE]
           ,[MIN_VAL]
           ,[MAX_VAL]
           ,[ID_ELAB])
	SELECT 
		COD,
		DESCR,
		MINVAL,
		MAXVAL,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGINGPERIODICO.RISKCLASS
	

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CODIFICA_CREDITRISK_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CODIFICA_CREDITRISK_pre_selective'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 17 marzo 2009  
-- Description: NOTA BENE: I JOIN NON DOVREBBERO MAI ESSERE FATTI COME SOTTO, TRATTASI DI WORK AROUND  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_CODIFICA_RISCHIO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CODIFICA_RISCHIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.CODIFICA_RISCHIO  
  
 INSERT INTO C6MartPeriodico.[CODIFICA_RISCHIO]  
           ([PROFILO]  
           ,[DESCRIZIONE]  
           ,[MIN_VAR]  
           ,[MAX_VAR]  
           ,[ID_ELAB])  
 SELECT   
  SPB_PROF_RISCHIO.CODICEPROFILO AS PROFILO,  
  SPB_PROF_RISCHIO.DESCRIZIONEPROFILO AS DESCRIZIONE,  
  ISNULL(SPB_MIN.VARTRIMESTRALE,-0.01) + 0.01 AS MIN_VAR,  
  SPB_PROF_RISCHIO.VARTRIMESTRALE AS MAX_VAR,  
  @ID_ELAB AS ID_ELAB  
 FROM C6STAGINGPERIODICO.SPB_PROF_RISCHIO  
 LEFT JOIN C6STAGINGPERIODICO.SPB_PROF_RISCHIO SPB_MIN   
  ON SPB_MIN.CODICEPROFILO + 1 = SPB_PROF_RISCHIO.CODICEPROFILO  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CODIFICA_RISCHIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CODIFICA_RISCHIO'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CODIFICA_RISCHIO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 marzo 2009
-- Description:	NOTA BENE: I JOIN NON DOVREBBERO MAI ESSERE FATTI COME SOTTO, TRATTASI DI WORK AROUND
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_CODIFICA_RISCHIO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CODIFICA_RISCHIO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.CODIFICA_RISCHIO

	INSERT INTO C6MartPeriodico.[CODIFICA_RISCHIO]
           ([PROFILO]
           ,[DESCRIZIONE]
           ,[MIN_VAR]
           ,[MAX_VAR]
           ,[ID_ELAB])
	SELECT 
		SPB_PROF_RISCHIO.CODICEPROFILO AS PROFILO,
		SPB_PROF_RISCHIO.DESCRIZIONEPROFILO AS DESCRIZIONE,
		ISNULL(SPB_MIN.VARTRIMESTRALE,-0.01) + 0.01 AS MIN_VAR,
		SPB_PROF_RISCHIO.VARTRIMESTRALE AS MAX_VAR,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGINGPERIODICO.SPB_PROF_RISCHIO
	LEFT JOIN C6STAGINGPERIODICO.SPB_PROF_RISCHIO SPB_MIN 
		ON SPB_MIN.CODICEPROFILO + 1 = SPB_PROF_RISCHIO.CODICEPROFILO

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CODIFICA_RISCHIO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CODIFICA_RISCHIO_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_COMPLESSITA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- =============================================  
-- Author:  <Alessandro Tringali,,Name>  
-- Create date: <12/05/2010>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_COMPLESSITA]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_COMPLESSITA',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].COMPLESSITA  
   
 INSERT INTO [C6MartPeriodico].[COMPLESSITA]  
           (  
            [RETE]  
           ,[COD_FISCALE]  
           ,[COMPLESSITA]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
  
  
    SELECT   
        [RETE],  
        [COD_FISCALE],  
        MAX([COMPLESSITA])  AS [COMPLESSITA],  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
FROM  
(  
 SELECT   
        [RETE],  
        [COD_FISCALE],  
        MAX([COMPLEx])  AS [COMPLESSITA]  
 FROM C6MARTPERIODICO.patrimonio_bf  
        where tipo_prodOTTO <>'ASUL'   
        GROUP BY   
        [RETE],  
        [COD_FISCALE]  
     
    union all  
      
 SELECT   
        m.[RETE],  
        m.[COD_FISCALE],  
        MAX(c.[COMPLEX])  AS [COMPLESSITA]  
 FROM C6MARTPERIODICO.patrimonio_bf m,  
        c6martperiodico.dettaglio_asul k,  
        c6stagingperiodico.catitemref c  
    where m.cod_fiscale= k.cod_fiscale  
          and m.rete=k.rete  
          and k.id_contratto=m.id_contratto  
          and k.cod_prodotto= c.catalogueid  
          and m.tipo_prodotto='ASUL'  
    group by    
         m.[RETE],  
        m.[COD_FISCALE]  
 ) H  
    group by    
         [RETE],  
         [COD_FISCALE]  
  
  
  
  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_COMPLESSITA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_COMPLESSITA'  
  )  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_COMPLESSITA_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Alessandro Tringali,,Name>
-- Create date: <12/05/2010>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_COMPLESSITA_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_COMPLESSITA_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].COMPLESSITA
	
	INSERT INTO [C6MartPeriodico].[COMPLESSITA]
           (
            [RETE]
           ,[COD_FISCALE]
           ,[COMPLESSITA]
           ,[ID_ELAB]
           ,[TIPO_ELAB])


    SELECT 
        [RETE],
        [COD_FISCALE],
        MAX([COMPLESSITA])  AS [COMPLESSITA],
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
FROM
(
	SELECT 
        [RETE],
        [COD_FISCALE],
        MAX([COMPLEx])  AS [COMPLESSITA]
	FROM C6MARTPERIODICO.patrimonio_bf
        where tipo_prodOTTO <>'ASUL' 
        GROUP BY 
        [RETE],
        [COD_FISCALE]
   
    union all
    
	SELECT 
        m.[RETE],
        m.[COD_FISCALE],
        MAX(c.[COMPLEX])  AS [COMPLESSITA]
	FROM C6MARTPERIODICO.patrimonio_bf m,
        c6martperiodico.dettaglio_asul k,
        c6stagingperiodico.catitemref c
    where m.cod_fiscale= k.cod_fiscale
          and m.rete=k.rete
          and k.id_contratto=m.id_contratto
          and k.cod_prodotto= c.catalogueid
          and m.tipo_prodotto='ASUL'
    group by  
         m.[RETE],
        m.[COD_FISCALE]
 ) H
    group by  
         [RETE],
         [COD_FISCALE]









	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_COMPLESSITA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_COMPLESSITA_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONGELAMENTO_SEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_CONGELAMENTO_SEI]   
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 TRUNCATE TABLE C6MartPeriodico.CONGELAMENTO_SEI  
  
 INSERT INTO C6MartPeriodico.CONGELAMENTO_SEI  
  ([DATA_CONGELAMENTO]  
  ,[ID_ELAB])  
 SELECT  
  DATA_CONGELAMENTO,  
  @ID_ELAB  
 FROM  
  C6StagingPeriodico.CONGELAMENTO_SEI  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONGELAMENTO_SEI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_CONGELAMENTO_SEI_pre_selective] 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	TRUNCATE TABLE C6MartPeriodico.CONGELAMENTO_SEI

	INSERT INTO C6MartPeriodico.CONGELAMENTO_SEI
		([DATA_CONGELAMENTO]
		,[ID_ELAB])
	SELECT
		DATA_CONGELAMENTO,
		@ID_ELAB
	FROM
		C6StagingPeriodico.CONGELAMENTO_SEI

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONO_PIANIFICAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 19 marzo 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_CONO_PIANIFICAZIONE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CONO_PIANIFICAZIONE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[CONO_PIANIFICAZIONE]   
  
 INSERT INTO [C6MartPeriodico].[CONO_PIANIFICAZIONE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_CONO]  
           ,[SCENARIO_PESSIMISTICO]  
           ,[SCENARIO_MEDIO]  
           ,[SCENARIO_OTTIMISTICO]  
           ,[ID_ELAB]  
   ,ordinamento_progetto)  
  
 SELECT  
           CONSUL.INSTID AS RETE,  
           CONSUL.ADBKID AS COD_FISCALE,  
     AREA.C_NEEDAREA_v_46360 AS ID_AREA,  
           ISNULL(CASE  
    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A  
    ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO  
     END, 'XXX') AS NOME_PROGETTO,  
           CONO.C_DATA_FD2A6 AS DATA_CONO,  
           CAST(CONO.C_QUANTILE5_BF710 AS DECIMAL(19,7)) * 100 AS SCENARIO_PESSIMISTICO,  
           CAST(CONO.C_QUANTILE50_C47E0 AS DECIMAL(19,7)) * 100 AS SCENARIO_MEDIO,  
           CAST(CONO.C_QUANTILE95_0D6CE AS DECIMAL(19,7)) * 100 AS SCENARIO_OTTIMISTICO,  
           @ID_ELAB,  
   wanab.codprog  
  
 FROM C6StagingPeriodico.TANAB AS WANAB  
 INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
  ON WANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
 INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
 INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
  AND CONSUL.INSTID = SCELTA_STATO.RETE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
 INNER JOIN C6StagingPeriodico.C_BO_453FB AS ORIZZ_TEMP  
  ON PRCONSUL.F_OID$_ORIZZ_4A868 = ORIZZ_TEMP.OID$  
 INNER JOIN C6StagingPeriodico.CONO AS CONO  
  ON PRCONSUL.OID$ = CONO.F_PPROJECT_P_46507  
 LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
 WHERE 1 = 1  
 AND WANAB.DTFINE = '99991231'  
 AND ((PRCONSUL.NEEDAREAID = 'Inv' AND PRCONSUL.TYPE$_PROJEC_14674 = 'ProgettoInvestimento')  
 OR PRCONSUL.NEEDAREAID = 'Ris')  
 AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
 --and wanab.codfis <> 'GRVMRZ63C14L566J'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CONO_PIANIFICAZIONE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_CONO_PIANIFICAZIONE'  
  )  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONO_PIANIFICAZIONE_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 19 marzo 2009
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_CONO_PIANIFICAZIONE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CONO_PIANIFICAZIONE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[CONO_PIANIFICAZIONE] 

	INSERT INTO [C6MartPeriodico].[CONO_PIANIFICAZIONE]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_CONO]
           ,[SCENARIO_PESSIMISTICO]
           ,[SCENARIO_MEDIO]
           ,[SCENARIO_OTTIMISTICO]
           ,[ID_ELAB]
			,ordinamento_progetto)

	SELECT
           CONSUL.INSTID AS RETE,
           CONSUL.ADBKID AS COD_FISCALE,
		   AREA.C_NEEDAREA_v_46360 AS ID_AREA,
           ISNULL(CASE
				WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A
				ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO
		   END, 'XXX') AS NOME_PROGETTO,
           CONO.C_DATA_FD2A6 AS DATA_CONO,
           CAST(CONO.C_QUANTILE5_BF710 AS DECIMAL(19,7)) * 100 AS SCENARIO_PESSIMISTICO,
           CAST(CONO.C_QUANTILE50_C47E0 AS DECIMAL(19,7)) * 100 AS SCENARIO_MEDIO,
           CAST(CONO.C_QUANTILE95_0D6CE AS DECIMAL(19,7)) * 100 AS SCENARIO_OTTIMISTICO,
           @ID_ELAB,
			wanab.codprog

	FROM C6StagingPeriodico.TANAB AS WANAB
	INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL
		ON WANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31
	INNER JOIN C6StagingPeriodico.CONSAREA AS AREA
		ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$
	INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL
		ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO
		ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE
		AND CONSUL.INSTID = SCELTA_STATO.RETE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA
	INNER JOIN C6StagingPeriodico.C_BO_453FB AS ORIZZ_TEMP
		ON PRCONSUL.F_OID$_ORIZZ_4A868 = ORIZZ_TEMP.OID$
	INNER JOIN C6StagingPeriodico.CONO AS CONO
		ON PRCONSUL.OID$ = CONO.F_PPROJECT_P_46507
	LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA
		ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22
	WHERE 1 = 1
	AND WANAB.DTFINE = '99991231'
	AND ((PRCONSUL.NEEDAREAID = 'Inv' AND PRCONSUL.TYPE$_PROJEC_14674 = 'ProgettoInvestimento')
	OR PRCONSUL.NEEDAREAID = 'Ris')
	AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1
	--and wanab.codfis <> 'GRVMRZ63C14L566J'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CONO_PIANIFICAZIONE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CONO_PIANIFICAZIONE_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONS_ATTIVAGGIORNATA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
--select ordinamento_progetto,id_area,*  
--FROM   
--   C6MARTPERIODICO.PATRIMONIO_BF  
--   WHERE   
--   1=1  
--   AND ID_AREA  not in ('Na', 'Cc')  
--   and ctv >0  
--   and cod_fiscale = 'GNGFRZ63H17D810C'  
--   and id_area like 'pre%'  
--  
--select * from c6martperiodico.cons_attivaggiornata  
--where cod_fiscale = 'GNGFRZ63H17D810C'  
  
-- =============================================  
-- Author:  ALESSANDRO TRINGALI  
-- Create date: < 26/09/2009>  
-- Description: <Consulenza Aggiornata>  
-- =============================================  
--[C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]   
CREATE procedure [C6MartPeriodico].[DM_CONS_ATTIVAGGIORNATA]  
 -- Add the parameters for the stored procedure here  
 -- Add the parameters for the stored procedure here  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CONS_ATTIVAGGIORNATA',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
 TRUNCATE TABLE [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]  
      
  
 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]  
   (        [RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[PERC_AREA]  
           ,[CTV_PROGETTO]  
           ,[CTV_AREA]  
           ,[ORIZZ_TEMP_NUM]  
           ,[ORIZZ_TEMP]  
           ,[CTV_TOTALE]  
           ,[STATO_CONSULENZA]  
           ,[DATA_STATO_CONS]  
           ,[DATA_MIGR_CONS]  
           ,[DATA_PIANIF]  
           ,[ID_CONTRATTO]  
           ,[ORDINAMENTO_PROGETTO])  
  
   SELECT  
            [RETE]  
           ,[COD_FISCALE]  
           ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END AS  ID_AREA  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA  
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO  
   ,MAX(CTV_AREA) AS CTV_aREA  
            ,max([ORIZZ_TEMP_NUM])  
            ,max([ORIZZ_TEMP])  
   ,MAX(CTV_TOTALE) AS CTV_TOTALE  
   ,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA  
   ,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS  
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS  
      ,MAX(DATA_PIANIF) AS DATA_PIANIF  
   ,[ID_CONTRATTO]  
           ,[ORDINAMENTO_PROGETTO]  
   FROM  
   (  
   SELECT  
   COD_FISCALE,  
   RETE,  
   ID_AREA,  
   NOME_PROGETTO,  
   CTV,   
            0 AS ID_CONTRATTO,  
            [ORDINAMENTO_PROGETTO],  
            [tipo_progetto],  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,  
   MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],  
   MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],  
   SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,  
   MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],  
   MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,  
   MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,  
   MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF  
   FROM   
   C6MARTPERIODICO.PATRIMONIO_BF  
   WHERE   
   1=1  
   AND ID_AREA  not in ('Na', 'Cc','Pre','Pre1','Pre2')  
   and ctv >0  
   ) K  
    GROUP BY   
    COD_FISCALE  
   ,RETE  
   ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END  
            ,[NOME_PROGETTO]  
            ,[TIPO_PROGETTO]  
            ,[ID_CONTRATTO]  
            ,[ORDINAMENTO_PROGETTO]  
  
     
  
 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]  
   (        [RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[PERC_AREA]  
           ,[CTV_PROGETTO]  
           ,[CTV_AREA]  
           ,[ORIZZ_TEMP_NUM]  
           ,[ORIZZ_TEMP]  
           ,[CTV_TOTALE]  
           ,[STATO_CONSULENZA]  
           ,[DATA_STATO_CONS]  
           ,[DATA_MIGR_CONS]  
           ,[DATA_PIANIF]  
           ,[ID_CONTRATTO]  
           ,[ORDINAMENTO_PROGETTO])  
  
   SELECT  
            [RETE]  
           ,[COD_FISCALE]  
           ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END AS  ID_AREA  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA  
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO  
   ,MAX(CTV_AREA) AS CTV_aREA  
            ,max([ORIZZ_TEMP_NUM])  
            ,max([ORIZZ_TEMP])  
   ,MAX(CTV_TOTALE) AS CTV_TOTALE  
   ,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA  
   ,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS  
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS  
      ,MAX(DATA_PIANIF) AS DATA_PIANIF  
   ,[ID_CONTRATTO]  
           ,MAX([ORDINAMENTO_PROGETTO])  
   FROM  
   (  
   SELECT  
   COD_FISCALE,  
   RETE,  
   ID_AREA,  
   NOME_PROGETTO,  
   CTV,   
            0 AS ID_CONTRATTO,  
            [ORDINAMENTO_PROGETTO],  
            case   
    when extranac = 1  
    then 'Default'   
    else tipo_progetto  
   end as tipo_progetto,  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,  
   SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,  
   MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],  
   MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],  
   SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,  
   MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],  
   MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,  
   MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,  
   MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF  
   FROM   
   C6MARTPERIODICO.PATRIMONIO_BF  
   WHERE   
   1=1  
   AND ID_AREA   in ('Pre','Pre1','Pre2')  
   and ctv >0  
   ) K  
    GROUP BY   
    COD_FISCALE  
   ,RETE  
   ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END  
            ,[NOME_PROGETTO]  
            ,[TIPO_PROGETTO]  
            ,[ID_CONTRATTO]  
            --,[ORDINAMENTO_PROGETTO]  
  
  
  
  
-- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CONS_ATTIVAGGIORNATA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_CONS_ATTIVAGGIORNATA'  
  )  
  
END  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONS_ATTIVAGGIORNATA_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select ordinamento_progetto,id_area,*
--FROM 
--			C6MARTPERIODICO.PATRIMONIO_BF
--			WHERE 
--			1=1
--			AND ID_AREA  not in ('Na', 'Cc')
--			and ctv >0
--			and cod_fiscale = 'GNGFRZ63H17D810C'
--			and id_area like 'pre%'
--
--select * from c6martperiodico.cons_attivaggiornata
--where cod_fiscale = 'GNGFRZ63H17D810C'

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: < 26/09/2009>
-- Description:	<Consulenza Aggiornata>
-- =============================================
--[C6MartPeriodico]. [CONS_ATTIVAGGIORNATA] 
CREATE procedure [C6MartPeriodico].[DM_CONS_ATTIVAGGIORNATA_pre_selective]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_CONS_ATTIVAGGIORNATA_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	TRUNCATE TABLE [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]
    

 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]
   (        [RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[PERC_AREA]
           ,[CTV_PROGETTO]
           ,[CTV_AREA]
           ,[ORIZZ_TEMP_NUM]
           ,[ORIZZ_TEMP]
           ,[CTV_TOTALE]
           ,[STATO_CONSULENZA]
           ,[DATA_STATO_CONS]
           ,[DATA_MIGR_CONS]
           ,[DATA_PIANIF]
           ,[ID_CONTRATTO]
           ,[ORDINAMENTO_PROGETTO])

			SELECT
            [RETE]
           ,[COD_FISCALE]
           ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END AS  ID_AREA
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO
			,MAX(CTV_AREA) AS CTV_aREA
            ,max([ORIZZ_TEMP_NUM])
            ,max([ORIZZ_TEMP])
			,MAX(CTV_TOTALE) AS CTV_TOTALE
			,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA
			,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS
		    ,MAX(DATA_PIANIF) AS DATA_PIANIF
			,[ID_CONTRATTO]
           ,[ORDINAMENTO_PROGETTO]
			FROM
			(
			SELECT
			COD_FISCALE,
			RETE,
			ID_AREA,
			NOME_PROGETTO,
			CTV, 
            0 AS ID_CONTRATTO,
            [ORDINAMENTO_PROGETTO],
            [tipo_progetto],
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,
			MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],
			MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],
			SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,
			MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],
			MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,
			MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,
			MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF
			FROM 
			C6MARTPERIODICO.PATRIMONIO_BF
			WHERE 
			1=1
			AND ID_AREA  not in ('Na', 'Cc','Pre','Pre1','Pre2')
			and ctv >0
			) K
			 GROUP BY 
			 COD_FISCALE
			,RETE
			,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END
            ,[NOME_PROGETTO]
            ,[TIPO_PROGETTO]
            ,[ID_CONTRATTO]
            ,[ORDINAMENTO_PROGETTO]

			

 INSERT INTO [C6MartPeriodico]. [CONS_ATTIVAGGIORNATA]
   (        [RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[PERC_AREA]
           ,[CTV_PROGETTO]
           ,[CTV_AREA]
           ,[ORIZZ_TEMP_NUM]
           ,[ORIZZ_TEMP]
           ,[CTV_TOTALE]
           ,[STATO_CONSULENZA]
           ,[DATA_STATO_CONS]
           ,[DATA_MIGR_CONS]
           ,[DATA_PIANIF]
           ,[ID_CONTRATTO]
           ,[ORDINAMENTO_PROGETTO])

			SELECT
            [RETE]
           ,[COD_FISCALE]
           ,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END AS  ID_AREA
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,(MAX(ISNULL(CTV_AREA,0))/MAX(ISNULL(CTV_TOTALE,0)))*100 AS PERC_AREA
           , MAX(CTV_PROGETTO) AS CTV_PROGETTO
			,MAX(CTV_AREA) AS CTV_aREA
            ,max([ORIZZ_TEMP_NUM])
            ,max([ORIZZ_TEMP])
			,MAX(CTV_TOTALE) AS CTV_TOTALE
			,MAX([STATO_CONSULENZA]) AS STATO_CONSULENZA
			,MAX([DATA_STATO_CONS]) AS DATA_sTATO_CONS
            ,max([DATA_MIGR_CONS]) as DATA_MIGR_CONS
		    ,MAX(DATA_PIANIF) AS DATA_PIANIF
			,[ID_CONTRATTO]
           ,MAX([ORDINAMENTO_PROGETTO])
			FROM
			(
			SELECT
			COD_FISCALE,
			RETE,
			ID_AREA,
			NOME_PROGETTO,
			CTV, 
            0 AS ID_CONTRATTO,
            [ORDINAMENTO_PROGETTO],
            case 
				when extranac = 1
				then 'Default' 
				else tipo_progetto
			end as tipo_progetto,
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, SUBSTRING(ID_AREA,1,3), NOME_PROGETTO) CTV_PROGETTO,
			SUM(C6MARTPERIODICO.PATRIMONIO_BF.CTV) OVER (PARTITION BY COD_FISCALE, RETE,SUBSTRING(ID_AREA,1,3)) CTV_AREA,
			MAX([ORIZZ_TEMP_NUM])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) AS [ORIZZ_TEMP_NUM],
			MAX([ORIZZ_TEMP])OVER (PARTITION BY COD_FISCALE, RETE, SUBSTRING(ID_AREA,1,3), ORDINAMENTO_PROGETTO) [ORIZZ_TEMP],
			SUM([CTV])OVER (PARTITION BY COD_FISCALE) AS CTV_TOTALE,
			MAX([STATO_CONSULENZA])OVER (PARTITION BY COD_FISCALE, RETE) AS [STATO_CONSULENZA],
			MAX([DATA_STATO_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_STATO_CONS] ,
			MAX([DATA_MIGR_CONS])OVER (PARTITION BY COD_FISCALE, RETE) AS [DATA_MIGR_CONS] ,
			MAX([DATA_PIANIF])OVER (PARTITION BY COD_FISCALE, RETE ) AS DATA_PIANIF
			FROM 
			C6MARTPERIODICO.PATRIMONIO_BF
			WHERE 
			1=1
			AND ID_AREA   in ('Pre','Pre1','Pre2')
			and ctv >0
			) K
			 GROUP BY 
			 COD_FISCALE
			,RETE
			,CASE WHEN ID_AREA IN ('Pre','Pre1','Pre2') THEN 'Pre' ELSE ID_AREA END
            ,[NOME_PROGETTO]
            ,[TIPO_PROGETTO]
            ,[ID_CONTRATTO]
            --,[ORDINAMENTO_PROGETTO]




-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_CONS_ATTIVAGGIORNATA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CONS_ATTIVAGGIORNATA_pre_selective'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONTRATTOSEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select count(distinct cod_fiscale) from c6martperiodico.rischio_aggregato
--select * from c6martperiodico.scarti
-- FARE FUNZIONE GETPREVTRIMESTRE PER LA DATA DI REVOCA
--select c6martperiodico.gettrimestre2(getdate(),0) 
--select c6martperiodico.gettrimestre2(getdate(),1) 
--select count(*) from [C6MartPeriodico].[vContrattiPerGenerazioneReport] select count(*) from [C6MartPeriodico].gestione_pdf_ftp where dataGenerazione > c6martperiodico.gettrimestre2(getDate(),1)
--select count(*) from [C6MartPeriodico].[vContrattiPerGenerazioneReport] where freq_diagnosi is not null
--select  c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
CREATE procedure [C6MartPeriodico].[DM_CONTRATTOSEI]
AS

TRUNCATE TABLE C6MartPERIODICO.CONTRATTOSEI
INSERT INTO C6MartPERIODICO.CONTRATTOSEI
SELECT     
	distinct C6.*
FROM 
	C6Mart.CONTRATTOSEI AS C6
INNER JOIN C6MartPeriodico.vContrattiPerGenerazioneReport VCON
ON
C6.CodiceContratto = VCON.CodiceContratto


--FROM        
--	C6Mart.CONTRATTOSEI AS C6
--	INNER JOIN  C6Mart.GESTIONE_PDF_FTP AS PDF 
--	ON C6.Rete = PDF.Rete AND C6.Cod_Fiscale = PDF.CodiceFiscale AND C6.CodiceContratto = SUBSTRING(pdf.NomeFile, 1, 11) --SUBSTRING(PDF.NomeFile, 0, 12) 
--	--INNER JOIN c6Martperiodico.Mifid AS mi ON c6.rete=mi.rete AND c6.cod_fiscale=mi.cod_fiscale 
--	--inner join c6martperiodico.patrimonio_bf bf on c6.rete = bf.rete and c6.cod_fiscale = bf.cod_fiscale
--	--includi campione	
--	--INNER JOIN dbo.CampioneReport AS t ON t.Cod_fiscale = C6.Cod_Fiscale AND t.Rete = C6.Rete
--WHERE
--	--CONDIZIONE 1: Stampo i clienti che hanno revocato nel trimestre
--	ISNULL(C6.Data_FineAvanzato, CAST('99991231' AS datetime)) > c6martperiodico.getPreviousTrimestre(getdate(),0)  
--    --V commentare nel giro email
--	--and mi.scaduto =0
--	--CONDIZIONE 2: Stampo i clienti che hanno ricevuto il benvenuto fino al 1 giorno del mese della chiusura del trimestre
--	and PDF.DataGenerazione < c6martperiodico.gettrimestre2(getdate(),1) --'20110301'
--	--and c6.cod_fiscale in('BLDRRT64D28G482H') --'GZZSLD52E20G869L')
--	--stampa campione per dipartimento
--	--and (provenienza = 'QC')
--	--STAMPO SOLO CHI HA DIAGNOSI and c6.Freq_Diagnosi is not null
--	--CONDIZIONE 3: Stampo il report trimestrale una sola volta nel trimestre
--	AND isnull(C6.Data_Invio_Monitoraggio_Trimestrale,cast('20091101' as datetime)) < c6martperiodico.gettrimestre2(getdate(),0)--'20110331' --cast(C6MartPeriodico.getTrimestre(GETDATE(), 0) as datetime)

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_CONTROLLO_TRIMESTRALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =====================================================
-- Author:		colaianni-consoli
-- Create date: 28/06/2011
-- Description:	CARICA LA TABELLA CONTROLLO_TRIMESTRALE 
--				CON TUTTI I REPORT OGGETTO DI STAMPA 
-- =====================================================

CREATE procedure [C6MartPeriodico].[DM_CONTROLLO_TRIMESTRALE] AS BEGIN

TRUNCATE TABLE C6MARTPERIODICO.CONTROLLO_TRIMESTRALE

INSERT INTO 
	C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
SELECT 
	COD_FISCALE, RETE, CASE WHEN FREQ_DIAGNOSI IS NULL THEN 0 ELSE 1 END, NULL, NULL, 1, NULL, GETDATE()
FROM 
	C6MARTPERIODICO.VCONTRATTIPERGENERAZIONEREPORT

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DATI_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_DATI_REPORT]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 TRUNCATE TABLE C6MartPeriodico.DATI_REPORT  
  
 INSERT INTO C6MartPeriodico.[DATI_REPORT]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[FLAG_REPORT]  
           ,[REPORT_DIAGN]  
           ,[REPORT_MONIT]  
           ,[DATA_REPORT]  
           ,[REPORT_FREQ]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT   
  NULL AS RETE,  
  NULL AS COD_FISCALE,  
  NULL AS INDIRIZZO,  
  NULL AS LOCALITA,  
  NULL AS PROVINCIA,  
  NULL AS CAP,  
  NULL AS NAZIONE,  
  NULL AS FLAG_REPORT,  
  NULL AS REPORT_DIAGN,  
  NULL AS REPORT_MONIT,  
  NULL AS DATA_REPORT,  
  NULL AS REPORT_PROP,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.CATITEMREF  
 WHERE 1=0  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DATI_REPORT_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_DATI_REPORT_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	TRUNCATE TABLE C6MartPeriodico.DATI_REPORT

	INSERT INTO C6MartPeriodico.[DATI_REPORT]
           ([RETE]
           ,[COD_FISCALE]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[FLAG_REPORT]
           ,[REPORT_DIAGN]
           ,[REPORT_MONIT]
           ,[DATA_REPORT]
           ,[REPORT_FREQ]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT 
		NULL AS RETE,
		NULL AS COD_FISCALE,
		NULL AS INDIRIZZO,
		NULL AS LOCALITA,
		NULL AS PROVINCIA,
		NULL AS CAP,
		NULL AS NAZIONE,
		NULL AS FLAG_REPORT,
		NULL AS REPORT_DIAGN,
		NULL AS REPORT_MONIT,
		NULL AS DATA_REPORT,
		NULL AS REPORT_PROP,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.CATITEMREF
	WHERE 1=0

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_DETTAGLIO_ASUL]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_DETTAGLIO_ASUL',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MARTPERIODICO.DETTAGLIO_ASUL  
  
 INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[COD_PRODOTTO]  
           ,[ID_CONTRATTO]  
           ,[COD_SOTTOPRODOTTO]  
           ,[COD_INTERNO]  
           ,[CTV]  
           ,[DATA_RIF]  
           ,[COD_ISIN_FITTIZIO]  
           ,[COD_ISIN_SOTT]  
           ,[COD_MAF_SOTT]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA  
           --********* DA AGGIUNGERE  
           --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL  
           --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE    
  SPB_CONTR_SINTESI.RETE AS RETE,  
  SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,  
  ISNULL(  
   dbo.Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD),   
   SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,  
  SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,  
  SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,  
  SPB_ASS_UNIT.CODINT AS COD_INTERNO,  
  SPB_ASS_UNIT.CTV AS CTV,  
  CASE  
   WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_RIF,  
  SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,  
  SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,  
  SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6STAGINGPERIODICO.SPB_CONTR_SINTESI   
 INNER JOIN  
  C6STAGINGPERIODICO.WSEIUL AS SPB_ASS_UNIT  
  ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF  
 LEFT OUTER JOIN  
  C6STAGING.CATITEMREF   
  ON SPB_ASS_UNIT.CODINT = CATITEMREF.COD_INTERNO   
  AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.COD_SOTTOPRODOTTO   
  AND (LTRIM(RTRIM(SPB_ASS_UNIT.ISIN)) = '' --SPB_ASS_UNIT.ISIN = '            '   
                 OR (  
      SPB_ASS_UNIT.ISIN = CATITEMREF.COD_ADEGUATEZZA AND  
      SPB_ASS_UNIT.MAF = CATITEMREF.COD_MAF  
     )  
    )  
    WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'  
  AND SPB_ASS_UNIT.DTTRIM = (  
   SELECT  
    MAX(DTTRIM)  
   FROM  
    C6STAGINGPERIODICO.WSEIUL  
  )  
 AND CATITEMREF.isvisible = 1  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_DETTAGLIO_ASUL' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_DETTAGLIO_ASUL'  
  )  
  
END  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DETTAGLIO_ASUL_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_DETTAGLIO_ASUL_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_DETTAGLIO_ASUL_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MARTPERIODICO.DETTAGLIO_ASUL

	INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]
           ([RETE]
           ,[COD_FISCALE]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[COD_SOTTOPRODOTTO]
           ,[COD_INTERNO]
           ,[CTV]
           ,[DATA_RIF]
           ,[COD_ISIN_FITTIZIO]
           ,[COD_ISIN_SOTT]
           ,[COD_MAF_SOTT]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
           --********* DA AGGIUNGERE
           --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
           --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		ISNULL(
			dbo.Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
			SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
		CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL AS SPB_ASS_UNIT
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGING.CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.COD_INTERNO 
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.COD_SOTTOPRODOTTO 
		AND (LTRIM(RTRIM(SPB_ASS_UNIT.ISIN)) = '' --SPB_ASS_UNIT.ISIN = '            ' 
                 OR (
						SPB_ASS_UNIT.ISIN = CATITEMREF.COD_ADEGUATEZZA AND
						SPB_ASS_UNIT.MAF = CATITEMREF.COD_MAF
					)
				)
    WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = (
			SELECT
				MAX(DTTRIM)
			FROM
				C6STAGINGPERIODICO.WSEIUL
		)
	AND CATITEMREF.isvisible = 1

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_DETTAGLIO_ASUL_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_DETTAGLIO_ASUL_pre_selective'
		)

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_dettaglio_MOV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_dettaglio_MOV]
AS BEGIN
--INSERT INTO C6MartPeriodico.Dettaglio_MOV

SELECT 
	[RETE],
    
	CASE 
		WHEN CODMAN ='' 
			THEN CODFIS
			ELSE 'FF@'+CODMAN
		END AS CODFIS,

    sum(APPORTI) - sum(PRELIEVI) as dettaglio

FROM 
	[C6StagingPeriodico].[W6APTR]

WHERE 
	DTTRIM =(select max(dttrim) from [C6StagingPeriodico].[W6APTR])

GROUP BY 
		RETE, 
		CASE WHEN CODMAN ='' THEN CODFIS ELSE 'FF@'+CODMAN END

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DettaglioMovimenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6MartPeriodico].[DM_DettaglioMovimenti]  
AS BEGIN  
  
DECLARE @RETE char(1), @CODFIS varchar(16), @CODMAN varchar(6)  
DECLARE @DETT_MOV_PREC decimal(15,2), @DETT_MOV_CORR decimal(15,2), @MOV_TRIMESTRE_PREC decimal(15,2)  
DECLARE @TrimestreDettMov varchar(8)  
DECLARE @appoDataAvvioMon varchar(8)  
  
--SET @appoDataAvvioMon = '20151201'  
  
  
-- Modifica del 13/9/2016 con la creazione di una funzione che torna la dataAvvioMon, eliminando così l'aggiornamento manuale e quindi uno step dalla simulazione  
--------->SET @appoDataAvvioMon = '20160301' --simulazione del 18/03/2016  
SET @appoDataAvvioMon = c6martperiodico.get_appoDataAvvioMon(null)  
-- Fine modifica del 13/9/2016  
  
  
  
--SET @TrimestreDettMov = C6MartPeriodico.getTrimestreDettMov()  
SET @TrimestreDettMov = C6MartPeriodico.getTrimestre2(getdate(), 0) --'20120531' simul  
  
  
TRUNCATE TABLE C6MartPeriodico.DettaglioMovimenti  
  
DECLARE DettMov_cursor CURSOR FOR  
  
SELECT   
 RETE,  
 CODFIS,  
 CODMAN  
FROM  
 [C6StagingPeriodico].[W6APAG]  
--WHERE   
-- CODFIS='BCCPRZ52T67H945W' AND RETE='F'  
GROUP BY  
 RETE,  
 CODFIS,  
 CODMAN  
   
/*  
SELECT   
 [RETE],  
 CASE  
  WHEN CODMAN = ''  
   THEN CODFIS  
   ELSE 'FF@' + CODMAN  
  END AS COD_FIS  
FROM  
 [C6StagingPeriodico].[W6APTR]  
GROUP BY  
 RETE,  
 CASE WHEN CODMAN = '' THEN CODFIS ELSE 'FF@' + CODMAN END  
*/  
  
DECLARE @DataAvvioMon DATETIME --varchar(8)  
DECLARE @DataPrecInvioRep DATETIME --varchar(8)  
  
OPEN DettMov_cursor  
  
FETCH NEXT FROM DettMov_cursor  
INTO @RETE, @CODFIS, @CODMAN  
  
WHILE @@FETCH_STATUS = 0  
BEGIN  
  
 IF @CODMAN <> ''  
  SET @CODFIS = 'FF@' + @CODMAN  
  
 SELECT @DataAvvioMon = DATA_FOTO  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_INIZIALE  
 WHERE   
      RETE = @RETE AND  
      COD_FISCALE = @CODFIS  
  
  
 IF EXISTS (SELECT * FROM C6MARTPERIODICO.MONITORAGGIO_REPORT  
 WHERE RETE = @RETE AND COD_FISCALE = @CODFIS)  
 BEGIN  
  --PRECEDENTE  
  IF @DataAvvioMon < '20111001'  
     SET @DETT_MOV_PREC = null  
  
-----------------------------------  
  IF @CODMAN <> ''  
   SET @CODFIS = 'FF§' + @CODMAN  
  
  IF @DataAvvioMon >= '20111001' AND @DataAvvioMon <= @appoDataAvvioMon  
   SELECT  
    @DETT_MOV_PREC = (sum(APPORTI) - sum(PRELIEVI))  
    FROM [C6StagingPeriodico].[W6APAG]  
   WHERE  
    RETE = @RETE  
   AND  
    CODFIS = @CODFIS  
   AND  
    CODMAN = @CODMAN  
   AND  
    DTTRIM < @TrimestreDettMov  
   GROUP BY RETE, CODFIS, CODMAN  
  
  
  --CORRENTE  
  SELECT  
   @DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))  
   FROM [C6StagingPeriodico].[W6APAG]  
  WHERE  
   RETE = @RETE  
  AND  
   CODFIS = @CODFIS  
  AND  
   CODMAN = @CODMAN  
  AND  
   DTTRIM = @TrimestreDettMov  
  GROUP BY RETE, CODFIS, CODMAN  
    
  Set @MOV_TRIMESTRE_PREC = @DETT_MOV_CORR  
 END  
 ELSE  
 BEGIN  
  --ACCORPAMENTO (cambiare prossima simulazione)  
  SET @DETT_MOV_PREC = null  
  
  IF @DataAvvioMon < '20111001'  
   SET @DETT_MOV_CORR = null  
  IF @DataAvvioMon >= '20111001' AND @DataAvvioMon < @appoDataAvvioMon  
     begin  
    SELECT  
    @DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))  
    FROM [C6StagingPeriodico].[W6APAG]  
    WHERE  
     RETE = @RETE  
    AND  
     CODFIS = @CODFIS  
    AND  
     CODMAN = @CODMAN  
    GROUP BY RETE, CODFIS, CODMAN  
  
    SELECT  
    @MOV_TRIMESTRE_PREC = (sum(APPORTI) - sum(PRELIEVI))  
    FROM [C6StagingPeriodico].[W6APAG]  
    WHERE  
     RETE = @RETE  
    AND  
     CODFIS = @CODFIS  
    AND  
     CODMAN = @CODMAN  
    AND  
     DTTRIM = @TrimestreDettMov  
    GROUP BY RETE, CODFIS, CODMAN  
   end  
     
  IF @DataAvvioMon >= @appoDataAvvioMon  
     begin  
    SELECT  
    @DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))     
    FROM [C6StagingPeriodico].[W6APAG]  
    WHERE  
     RETE = @RETE  
    AND  
     CODFIS = @CODFIS  
    AND  
     CODMAN = @CODMAN  
    AND  
     DTTRIM = @TrimestreDettMov  
    GROUP BY RETE, CODFIS, CODMAN  
     
    Set @MOV_TRIMESTRE_PREC = @DETT_MOV_CORR  
   end  
------------------------------------  
    
 END  
   
 IF @CODMAN <> ''  
  SET @CODFIS = 'FF@' + @CODMAN  
  
 INSERT INTO C6MartPeriodico.DettaglioMovimenti  
  (RETE, COD_FIS, DETT_MOV_PREC, DETT_MOV_CORR, DETT_MOV_TRIMESTRE_PREC)  
 VALUES  
  (@RETE, @CODFIS, @DETT_MOV_PREC, @DETT_MOV_CORR, @MOV_TRIMESTRE_PREC)  
  
 SET @DETT_MOV_PREC = null  
 SET @DETT_MOV_CORR = null  
 SET @MOV_TRIMESTRE_PREC = null  
 FETCH NEXT FROM DettMov_cursor  
 INTO @RETE, @CODFIS, @CODMAN  
   
END  
  
CLOSE DettMov_cursor  
DEALLOCATE DettMov_cursor  
  
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DettaglioMovimenti_20160913]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE procedure [C6MartPeriodico].[DM_DettaglioMovimenti_20160913]
AS BEGIN

DECLARE @RETE char(1), @CODFIS varchar(16), @CODMAN varchar(6)
DECLARE @DETT_MOV_PREC decimal(15,2), @DETT_MOV_CORR decimal(15,2), @MOV_TRIMESTRE_PREC decimal(15,2)
DECLARE @TrimestreDettMov varchar(8)
DECLARE @appoDataAvvioMon varchar(8)

--SET @appoDataAvvioMon = '20151201'
SET @appoDataAvvioMon = '20160301' --simulazione del 18/03/2016

--SET @TrimestreDettMov = C6MartPeriodico.getTrimestreDettMov()
SET @TrimestreDettMov = C6MartPeriodico.getTrimestre2(getdate(), 0) --'20120531' simul


TRUNCATE TABLE C6MartPeriodico.DettaglioMovimenti

DECLARE DettMov_cursor CURSOR FOR

SELECT 
	RETE,
	CODFIS,
	CODMAN
FROM
	[C6StagingPeriodico].[W6APAG]
--WHERE 
--	CODFIS='BCCPRZ52T67H945W' AND RETE='F'
GROUP BY
	RETE,
	CODFIS,
	CODMAN
	
/*
SELECT 
	[RETE],
	CASE
		WHEN CODMAN = ''
			THEN CODFIS
			ELSE 'FF@' + CODMAN
		END AS COD_FIS
FROM
	[C6StagingPeriodico].[W6APTR]
GROUP BY
	RETE,
	CASE WHEN CODMAN = '' THEN CODFIS ELSE 'FF@' + CODMAN END
*/

DECLARE @DataAvvioMon DATETIME --varchar(8)
DECLARE @DataPrecInvioRep DATETIME --varchar(8)

OPEN DettMov_cursor

FETCH NEXT FROM DettMov_cursor
INTO @RETE, @CODFIS, @CODMAN

WHILE @@FETCH_STATUS = 0
BEGIN

	IF @CODMAN <> ''
		SET @CODFIS = 'FF@' + @CODMAN

	SELECT @DataAvvioMon = DATA_FOTO
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @RETE AND
		    COD_FISCALE = @CODFIS


	IF EXISTS (SELECT * FROM C6MARTPERIODICO.MONITORAGGIO_REPORT
	WHERE RETE = @RETE AND COD_FISCALE = @CODFIS)
	BEGIN
		--PRECEDENTE
		IF @DataAvvioMon < '20111001'
			  SET @DETT_MOV_PREC = null

-----------------------------------
		IF @CODMAN <> ''
			SET @CODFIS = 'FF§' + @CODMAN

		IF @DataAvvioMon >= '20111001' AND @DataAvvioMon <= @appoDataAvvioMon
			SELECT
				@DETT_MOV_PREC = (sum(APPORTI) - sum(PRELIEVI))
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
			WHERE
				RETE = @RETE
			AND
				CODFIS = @CODFIS
			AND
				CODMAN = @CODMAN
			AND
				DTTRIM < @TrimestreDettMov
			GROUP BY RETE, CODFIS, CODMAN


		--CORRENTE
		SELECT
			@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))
			FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
		WHERE
			RETE = @RETE
		AND
			CODFIS = @CODFIS
		AND
			CODMAN = @CODMAN
		AND
			DTTRIM = @TrimestreDettMov
		GROUP BY RETE, CODFIS, CODMAN
		
		Set @MOV_TRIMESTRE_PREC = @DETT_MOV_CORR
	END
	ELSE
	BEGIN
		--ACCORPAMENTO (cambiare prossima simulazione)
		SET @DETT_MOV_PREC = null

		IF @DataAvvioMon < '20111001'
			SET @DETT_MOV_CORR = null
		IF @DataAvvioMon >= '20111001' AND @DataAvvioMon < @appoDataAvvioMon
		   begin
				SELECT
				@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
				WHERE
					RETE = @RETE
				AND
					CODFIS = @CODFIS
				AND
					CODMAN = @CODMAN
				GROUP BY RETE, CODFIS, CODMAN

				SELECT
				@MOV_TRIMESTRE_PREC = (sum(APPORTI) - sum(PRELIEVI))
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
				WHERE
					RETE = @RETE
				AND
					CODFIS = @CODFIS
				AND
					CODMAN = @CODMAN
				AND
					DTTRIM = @TrimestreDettMov
				GROUP BY RETE, CODFIS, CODMAN
			end
			
		IF @DataAvvioMon >= @appoDataAvvioMon
		   begin
				SELECT
				@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))			
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
				WHERE
					RETE = @RETE
				AND
					CODFIS = @CODFIS
				AND
					CODMAN = @CODMAN
				AND
					DTTRIM = @TrimestreDettMov
				GROUP BY RETE, CODFIS, CODMAN
			
				Set @MOV_TRIMESTRE_PREC = @DETT_MOV_CORR
			end
------------------------------------
		
	END
	
	IF @CODMAN <> ''
		SET @CODFIS = 'FF@' + @CODMAN

	INSERT INTO C6MartPeriodico.DettaglioMovimenti
		(RETE, COD_FIS, DETT_MOV_PREC, DETT_MOV_CORR, DETT_MOV_TRIMESTRE_PREC)
	VALUES
		(@RETE, @CODFIS, @DETT_MOV_PREC, @DETT_MOV_CORR, @MOV_TRIMESTRE_PREC)

	SET @DETT_MOV_PREC = null
	SET @DETT_MOV_CORR = null
	SET @MOV_TRIMESTRE_PREC = null
	FETCH NEXT FROM DettMov_cursor
	INTO @RETE, @CODFIS, @CODMAN
	
END

CLOSE DettMov_cursor
DEALLOCATE DettMov_cursor


END









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DettaglioMovimenti_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_DettaglioMovimenti_old]
AS BEGIN

DECLARE @RETE char(1), @CODFIS varchar(16), @CODMAN varchar(6)
DECLARE @DETT_MOV_PREC decimal(15,2), @DETT_MOV_CORR decimal(15,2)
DECLARE @TrimestreDettMov varchar(8)

SET @TrimestreDettMov = C6MartPeriodico.getTrimestreDettMov()

TRUNCATE TABLE C6MartPeriodico.DettaglioMovimenti

DECLARE DettMov_cursor CURSOR FOR

SELECT 
	RETE,
	CODFIS,
	CODMAN
FROM
	[C6StagingPeriodico].[W6APTR]
GROUP BY
	RETE,
	CODFIS,
	CODMAN
	
/*
SELECT 
	[RETE],
	CASE
		WHEN CODMAN = ''
			THEN CODFIS
			ELSE 'FF@' + CODMAN
		END AS COD_FIS
FROM
	[C6StagingPeriodico].[W6APTR]
GROUP BY
	RETE,
	CASE WHEN CODMAN = '' THEN CODFIS ELSE 'FF@' + CODMAN END
*/

OPEN DettMov_cursor

FETCH NEXT FROM DettMov_cursor
INTO @RETE, @CODFIS, @CODMAN

WHILE @@FETCH_STATUS = 0
BEGIN

	IF EXISTS (SELECT * FROM [C6StagingPeriodico].[S80_EVOL_STAMPA_C6]
	WHERE RETE = @RETE AND COD_FISCALE = @CODFIS)
	BEGIN
		--PRECEDENTE
		SELECT
			@DETT_MOV_PREC = (sum(APPORTI) - sum(PRELIEVI))
			FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
		WHERE
			RETE = @RETE
		AND
			CODFIS = @CODFIS
		AND
			CODMAN = @CODMAN
		AND
			DTTRIM < @TrimestreDettMov
		GROUP BY RETE, CODFIS, CODMAN

		--CORRENTE
		SELECT
			@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))
			FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
		WHERE
			RETE = @RETE
		AND
			CODFIS = @CODFIS
		AND
			CODMAN = @CODMAN
		AND
			DTTRIM = @TrimestreDettMov
		GROUP BY RETE, CODFIS, CODMAN
	END
	ELSE
	BEGIN
		--ACCORPAMENTO (cambiare prossima simulazione)
		SELECT
			@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))
			FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
		WHERE
			RETE = @RETE
		AND
			CODFIS = @CODFIS
		AND
			CODMAN = @CODMAN
		GROUP BY RETE, CODFIS, CODMAN
	END
	
	IF @CODMAN <> ''
		SET @CODFIS = 'FF@' + @CODMAN

	INSERT INTO C6MartPeriodico.DettaglioMovimenti
		(RETE, COD_FIS, DETT_MOV_PREC, DETT_MOV_CORR)
	VALUES
		(@RETE, @CODFIS, @DETT_MOV_PREC, @DETT_MOV_CORR)

	SET @DETT_MOV_PREC = null
	SET @DETT_MOV_CORR = null
	
	FETCH NEXT FROM DettMov_cursor
	INTO @RETE, @CODFIS, @CODMAN
	
END

CLOSE DettMov_cursor
DEALLOCATE DettMov_cursor


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DettaglioMovimenti_old2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create PROCEDURE [C6MartPeriodico].[DM_DettaglioMovimenti_old2]
AS BEGIN

--nuovo
DECLARE @MaxTrim varchar(8)
DECLARE @MinTrim varchar(8)
--fine nuovo

/*DECLARE @RETE char(1), @CODFIS varchar(16), @CODMAN varchar(6)
DECLARE @DETT_MOV_PREC decimal(15,2), @DETT_MOV_CORR decimal(15,2)
DECLARE @TrimestreDettMov varchar(8)
*/

--SET @TrimestreDettMov = C6MartPeriodico.getTrimestreDettMov()

TRUNCATE TABLE C6MartPeriodico.DettaglioMovimenti

SELECT @MaxTrim = max(DTTRIM) FROM
(SELECT TOP 2 DTTRIM from [C6StagingPeriodico].[W6APAG]
ORDER BY DTTRIM DESC) a

SELECT @MinTrim = min(DTTRIM) FROM
(SELECT TOP 2 DTTRIM from [C6StagingPeriodico].[W6APAG]
ORDER BY DTTRIM DESC) b

--SELECT * FROM C6MartPeriodico.DettaglioMovimenti
--SELECT * FROM [C6StagingPeriodico].[W6APAG]

INSERT INTO C6MartPeriodico.DettaglioMovimenti
SELECT 
	RETE,
	CASE
		WHEN CODMAN  = '' --is null
			THEN CODFIS
			ELSE 'FF@' + CODMAN
		END AS COD_FIS,
	(APPORTI - PRELIEVI) AS DETT_MOV,
	1
FROM
	[C6StagingPeriodico].[W6APAG]
WHERE
	DTTRIM = @MaxTrim

INSERT INTO C6MartPeriodico.DettaglioMovimenti
SELECT 
	RETE,
	CASE
		WHEN CODMAN = '' --is null
			THEN CODFIS
			ELSE 'FF@' + CODMAN
		END AS COD_FIS,
	(APPORTI - PRELIEVI) AS DETT_MOV,
	0
FROM
	[C6StagingPeriodico].[W6APAG]
WHERE
	DTTRIM = @MinTrim



END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_DettaglioMovimenti_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










CREATE procedure [C6MartPeriodico].[DM_DettaglioMovimenti_pre_selective]
AS BEGIN

DECLARE @RETE char(1), @CODFIS varchar(16), @CODMAN varchar(6)
DECLARE @DETT_MOV_PREC decimal(15,2), @DETT_MOV_CORR decimal(15,2), @MOV_TRIMESTRE_PREC decimal(15,2)
DECLARE @TrimestreDettMov varchar(8)
DECLARE @appoDataAvvioMon varchar(8)

--SET @appoDataAvvioMon = '20151201'


-- Modifica del 13/9/2016 con la creazione di una funzione che torna la dataAvvioMon, eliminando così l'aggiornamento manuale e quindi uno step dalla simulazione
--------->SET @appoDataAvvioMon = '20160301' --simulazione del 18/03/2016
SET @appoDataAvvioMon = c6martperiodico.get_appoDataAvvioMon(null)
-- Fine modifica del 13/9/2016



--SET @TrimestreDettMov = C6MartPeriodico.getTrimestreDettMov()
SET @TrimestreDettMov = C6MartPeriodico.getTrimestre2(getdate(), 0) --'20120531' simul


TRUNCATE TABLE C6MartPeriodico.DettaglioMovimenti

DECLARE DettMov_cursor CURSOR FOR

SELECT 
	RETE,
	CODFIS,
	CODMAN
FROM
	[C6StagingPeriodico].[W6APAG]
--WHERE 
--	CODFIS='BCCPRZ52T67H945W' AND RETE='F'
GROUP BY
	RETE,
	CODFIS,
	CODMAN
	
/*
SELECT 
	[RETE],
	CASE
		WHEN CODMAN = ''
			THEN CODFIS
			ELSE 'FF@' + CODMAN
		END AS COD_FIS
FROM
	[C6StagingPeriodico].[W6APTR]
GROUP BY
	RETE,
	CASE WHEN CODMAN = '' THEN CODFIS ELSE 'FF@' + CODMAN END
*/

DECLARE @DataAvvioMon DATETIME --varchar(8)
DECLARE @DataPrecInvioRep DATETIME --varchar(8)

OPEN DettMov_cursor

FETCH NEXT FROM DettMov_cursor
INTO @RETE, @CODFIS, @CODMAN

WHILE @@FETCH_STATUS = 0
BEGIN

	IF @CODMAN <> ''
		SET @CODFIS = 'FF@' + @CODMAN

	SELECT @DataAvvioMon = DATA_FOTO
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @RETE AND
		    COD_FISCALE = @CODFIS


	IF EXISTS (SELECT * FROM C6MARTPERIODICO.MONITORAGGIO_REPORT
	WHERE RETE = @RETE AND COD_FISCALE = @CODFIS)
	BEGIN
		--PRECEDENTE
		IF @DataAvvioMon < '20111001'
			  SET @DETT_MOV_PREC = null

-----------------------------------
		IF @CODMAN <> ''
			SET @CODFIS = 'FF§' + @CODMAN

		IF @DataAvvioMon >= '20111001' AND @DataAvvioMon <= @appoDataAvvioMon
			SELECT
				@DETT_MOV_PREC = (sum(APPORTI) - sum(PRELIEVI))
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
			WHERE
				RETE = @RETE
			AND
				CODFIS = @CODFIS
			AND
				CODMAN = @CODMAN
			AND
				DTTRIM < @TrimestreDettMov
			GROUP BY RETE, CODFIS, CODMAN


		--CORRENTE
		SELECT
			@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))
			FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
		WHERE
			RETE = @RETE
		AND
			CODFIS = @CODFIS
		AND
			CODMAN = @CODMAN
		AND
			DTTRIM = @TrimestreDettMov
		GROUP BY RETE, CODFIS, CODMAN
		
		Set @MOV_TRIMESTRE_PREC = @DETT_MOV_CORR
	END
	ELSE
	BEGIN
		--ACCORPAMENTO (cambiare prossima simulazione)
		SET @DETT_MOV_PREC = null

		IF @DataAvvioMon < '20111001'
			SET @DETT_MOV_CORR = null
		IF @DataAvvioMon >= '20111001' AND @DataAvvioMon < @appoDataAvvioMon
		   begin
				SELECT
				@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
				WHERE
					RETE = @RETE
				AND
					CODFIS = @CODFIS
				AND
					CODMAN = @CODMAN
				GROUP BY RETE, CODFIS, CODMAN

				SELECT
				@MOV_TRIMESTRE_PREC = (sum(APPORTI) - sum(PRELIEVI))
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
				WHERE
					RETE = @RETE
				AND
					CODFIS = @CODFIS
				AND
					CODMAN = @CODMAN
				AND
					DTTRIM = @TrimestreDettMov
				GROUP BY RETE, CODFIS, CODMAN
			end
			
		IF @DataAvvioMon >= @appoDataAvvioMon
		   begin
				SELECT
				@DETT_MOV_CORR = (sum(APPORTI) - sum(PRELIEVI))			
				FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APAG]
				WHERE
					RETE = @RETE
				AND
					CODFIS = @CODFIS
				AND
					CODMAN = @CODMAN
				AND
					DTTRIM = @TrimestreDettMov
				GROUP BY RETE, CODFIS, CODMAN
			
				Set @MOV_TRIMESTRE_PREC = @DETT_MOV_CORR
			end
------------------------------------
		
	END
	
	IF @CODMAN <> ''
		SET @CODFIS = 'FF@' + @CODMAN

	INSERT INTO C6MartPeriodico.DettaglioMovimenti
		(RETE, COD_FIS, DETT_MOV_PREC, DETT_MOV_CORR, DETT_MOV_TRIMESTRE_PREC)
	VALUES
		(@RETE, @CODFIS, @DETT_MOV_PREC, @DETT_MOV_CORR, @MOV_TRIMESTRE_PREC)

	SET @DETT_MOV_PREC = null
	SET @DETT_MOV_CORR = null
	SET @MOV_TRIMESTRE_PREC = null
	FETCH NEXT FROM DettMov_cursor
	INTO @RETE, @CODFIS, @CODMAN
	
END

CLOSE DettMov_cursor
DEALLOCATE DettMov_cursor


END









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_ELABORAZIONI_EMAIL_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_ELABORAZIONI_EMAIL_RNA]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
           ([RETE]
           ,[COD_FISCALE]
           ,[NOME]
           ,[COGNOME]
           ,[DATA_NASCITA]
           ,[STATO_CIVILE]
           ,[NUM_COMPONENTI]
           ,[NUM_FIGLI]
           ,[ETA]
           ,[PARTITA_IVA]
           ,[CITTADINANZA]
           ,[PERSONA_FIS_GIUR]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[PRESSO]
           ,[TEL_RECAPITO]
           ,[TEL_CELL]
           ,[E_MAIL]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[STATO]
           ,[RAG_SOC]
           ,[SESSO]
           ,[ID_PROMOTORE]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT
		AL.RETE_PB AS RETE,
		AL.CODICEFISCALE AS COD_FISCALE,
		AL.NOME AS NOME,
		AL.COGNOME AS COGNOME,
		ISNULL(AL.DATA_NASCITA, CL.DTNASCI) AS DATA_NASCITA,
		CASE
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) < '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libero'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Married' THEN 'Coniugata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
     		WHEN SUBSTRING(AL.CODICE_FISCALE,10,2) > '40' 
				AND AL.MARITALSTATUS = 'Single' THEN 'Libera'
     		ELSE NULL
		END AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		DATEDIFF(YY, ISNULL(AL.DATA_NASCITA, CL.DTNASCI), GETDATE()) AS ETA,
		NULL AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(CL.CITTA, '') AS LOCALITA,
		ISNULL(CL.PROVINCIA, '') AS PROVINCIA,
		ISNULL(CL.CAP, '') AS CAP,
		ISNULL(CL.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		NULL AS SESSO,
		AL.CODICE_PB AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ALL_CF_PB AL
	LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL
		ON CL.RETE = AL.RETE_PB
		AND CL.CODFIS = AL.CODICEFISCALE

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_EMAIL_PB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 22 gennaio 2009  
-- Description: MOLTO SEMPLIFICATA RISPETTO A QUELLA DELLA FASE UNO: SOLO PB  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_EMAIL_PB]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 --TRUNCATE TABLE C6MARTPERIODICO.EMAIL_PB  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_EMAIL_PB',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 SELECT DISTINCT  
  CONTRATTOSEI.RETE AS RETE,   
  CONTRATTOSEI.COD_AGENTE AS CODICE,  
  CASE CONTRATTOSEI.RETE   
   WHEN 'F' THEN 'R' 
   when 'W' THEN 'W'
   ELSE 'P'   
  END AS PREFISSO,  
  CASE CONTRATTOSEI.RETE   
   WHEN 'F' THEN 'R'   
   when 'W' THEN 'W'
   ELSE 'P'   
  END + CONTRATTOSEI.COD_AGENTE AS FIRMA  
,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6MARTPERIODICO.RP_vContrattiPerGenerazioneReport CONTRATTOSEI  
 LEFT JOIN C6MARTPERIODICO.EMAIL_PB EMAIL_PB_ESISTENTI  
  ON EMAIL_PB_ESISTENTI.RETE = CONTRATTOSEI.RETE  
  AND EMAIL_PB_ESISTENTI.CODICE = CONTRATTOSEI.COD_AGENTE  
 LEFT JOIN C6MARTPERIODICO.CODICI_PROMOTORI_FITTIZI PF  
  ON (CONTRATTOSEI.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)  
  AND CONTRATTOSEI.RETE = PF.RETE  
 WHERE EMAIL_PB_ESISTENTI.EMAIL IS NULL   
  
 AND PF.RETE IS NULL  
    ORDER BY 1,2  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'SELECT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_EMAIL_PB' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_EMAIL_PB'  
  )  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_EMAIL_PB_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22 gennaio 2009
-- Description:	MOLTO SEMPLIFICATA RISPETTO A QUELLA DELLA FASE UNO: SOLO PB
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_EMAIL_PB_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--TRUNCATE TABLE C6MARTPERIODICO.EMAIL_PB

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_EMAIL_PB_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	SELECT DISTINCT
		CONTRATTOSEI.RETE AS RETE, 
		CONTRATTOSEI.COD_AGENTE AS CODICE,
		CASE CONTRATTOSEI.RETE 
			WHEN 'F' THEN 'R' 
			ELSE 'P' 
		END AS PREFISSO,
		CASE CONTRATTOSEI.RETE 
			WHEN 'F' THEN 'R' 
			ELSE 'P' 
		END + CONTRATTOSEI.COD_AGENTE AS FIRMA
,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6MARTPERIODICO.RP_vContrattiPerGenerazioneReport CONTRATTOSEI
	LEFT JOIN C6MARTPERIODICO.EMAIL_PB EMAIL_PB_ESISTENTI
		ON EMAIL_PB_ESISTENTI.RETE = CONTRATTOSEI.RETE
		AND EMAIL_PB_ESISTENTI.CODICE = CONTRATTOSEI.COD_AGENTE
	LEFT JOIN C6MARTPERIODICO.CODICI_PROMOTORI_FITTIZI PF
		ON (CONTRATTOSEI.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND CONTRATTOSEI.RETE = PF.RETE
	WHERE EMAIL_PB_ESISTENTI.EMAIL IS NULL 

	AND PF.RETE IS NULL
    ORDER BY 1,2


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_EMAIL_PB_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_EMAIL_PB_pre_selective'
		)
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_FOI80]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  

  
  
-- =============================================  
  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEIFP  e con tali dati popola la tb dbo.C6MartPeriodico.FOI80  
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[DM_FOI80]  
   
  
  
AS  
BEGIN  
  
SET NOCOUNT ON;  
  
  
DECLARE @Par_percentuale INT  
SET @Par_percentuale = 80  
  
DECLARE @DataFineTrim VARCHAR(8)  
  
  
    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_FOI80',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE C6MartPeriodico.FOI80  
  
 INSERT INTO C6MartPeriodico.FOI80  
 ([DTTRIM]  
      ,[DTRIFE]  
      ,[RETE]  
      ,[CODFIS]  
      ,[DESPROD]  
      ,[CODMAN]  
      ,[CODCONF]  
      ,[CODPROD]  
      ,[SUBPROD]  
      ,[ISIN]  
      ,[CTV]  
      ,[PREZZO]  
      ,[QUOTE]  
      ,[PREZZOMAX]  
      ,[DTPREZZOMAX]  
      ,[DESMAX]  
      ,[PREZZOPROT]  
      ,[CTRVIMPPROT]  
      ,[DESPROT]  
      ,[DESPRODTIT]  
      ,[QUOTA_MAX_PERC]  
 )  
 select --top 10  
 @DataFineTrim AS DTTRIM,  
 DTRIFE AS DTRIFE,  
 RETE AS RETE,  
    CODFIS AS CODFIS,  
    --ISNULL(CAT.NOMEPRODOTTO,'Da SP - Fonditalia Crescita Protetta 80 Cap EUR') as DESPROD,   
    CAT.NOMEPRODOTTO as DESPROD,  
    ISNULL(CODMAN,'') AS CODMAN,  
    CODCONF AS COD_CONF,  
    CODPROD AS CODPROD,  
    SUBPROD AS SUBPROD,  
    ISIN AS ISIN,  
    CTV AS CTV,  
 PREZZO AS PREZZO,  
 QUOTE AS QUOTE,   
 PREZZOMAX AS PREZZOMAX,  
 DTPREZZOMAX AS DTPREZZOMAX,  
 'Quota massima' AS DESMAX,  
 PREZZOPROT AS PREZZOPROT,  
 CTRVIMPPROT AS CTRVIMPPROT,  
 'Quota e controvalore protetti *'  AS DESPROT,  
 'Fonditalia Crescita Protetta 80' AS [DESPRODTIT],  
 @Par_percentuale AS QUOTA_MAX_PERC   
   
 FROM C6StagingPeriodico.WSEIFP FP  
 LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
    on  --UL.codint=CAT.codinterno and  
    FP.subprod=CAT.codsottoprodotto  
    --and FP.isin=ISNULL(CAT.codisin,'')  
    and CAT.visibilita = 1  
 WHERE FP.DTTRIM = @DataFineTrim  
 and PREZZOMAX <> 0.000   
 --AND FP.isin <> ''  
   
-- union  
   
-- select --top 10  
-- RETE AS RETE,  
--    CODFIS AS CODFIS,  
--    CAT.NOMEPRODOTTO as DES_PROD,  
-- CODCONF AS COD_CONF,  
-- PREZZO AS QUOTA,  
---- CTV/ PREZZO AS NUMEROQUOTE,   
-- QUOTE AS NUMEROQUOTE,   
-- CTV AS CONTROVALORE,  
-- @DataFineTrim AS DATARIF,   
-- 'Quota massima' AS DES_MAX,  
-- PREZZOMAX AS QUOTA_MAX,  
-- @Par_percentuale AS QUOTA_MAX_PERC,   
-- CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
-- 'Quota e controvalore protetti'  AS DES_PROT,  
-- PREZZOPROT AS QUOTA_PROT,  
---- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
-- QUOTE AS NUMEROQUOTE_PROT,   
-- CTRVIMPPROT AS CONTROVALORE_PROT  
-- FROM C6StagingPeriodico.WSEIUL UL  
--    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
--    on  UL.codint=CAT.codinterno  
--    and UL.subprod=CAT.codsottoprodotto  
--    and UL.isinFIT=ISNULL(CAT.codisin,'')  
--    and CAT.visibilita = 1  
-- WHERE UL.DTTRIM = @DataFineTrim  
-- and PREZZOMAX <> 0.000   
-- AND UL.isinFIT <> ''  
   
-- union  
   
-- select --top 10  
-- RETE AS RETE,  
--    CODFIS AS CODFIS,  
--    CAT.NOMEPRODOTTO as DES_PROD,  
-- CODCONF AS COD_CONF,  
-- PREZZO AS QUOTA,  
---- CTV/ PREZZO AS NUMEROQUOTE,   
-- QUOTE AS NUMEROQUOTE,   
-- CTV AS CONTROVALORE,  
-- @DataFineTrim AS DATARIF,   
-- 'Quota massima' AS DES_MAX,  
-- PREZZOMAX AS QUOTA_MAX,  
-- @Par_percentuale AS QUOTA_MAX_PERC,   
-- CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
-- 'Quota e controvalore protetti'  AS DES_PROT,  
-- PREZZOPROT AS QUOTA_PROT,  
---- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,  
-- QUOTE AS NUMEROQUOTE_PROT,     
-- CTRVIMPPROT AS CONTROVALORE_PROT  
-- FROM C6StagingPeriodico.WSEIUL UL  
--    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
--    on  UL.codint=CAT.codinterno  
--    and UL.subprod=CAT.codsottoprodotto  
--    and CAT.visibilita = 1  
-- WHERE UL.DTTRIM = @DataFineTrim  
-- and PREZZOMAX <> 0.000   
-- AND UL.isin = ''  
-- AND UL.isinFIT = ''  
  
-- union  
   
-- select --top 10  
-- RETE AS RETE,  
--    CODFIS AS CODFIS,  
--    CAT.NOMEPRODOTTO as DES_PROD,  
-- CODCONF AS COD_CONF,  
-- PREZZO AS QUOTA,  
---- CTV/ PREZZO AS NUMEROQUOTE,   
-- QUOTE AS NUMEROQUOTE,   
-- CTV AS CONTROVALORE,  
-- @DataFineTrim AS DATARIF,   
-- 'Quota massima' AS DES_MAX,  
-- PREZZOMAX AS QUOTA_MAX,  
-- @Par_percentuale AS QUOTA_MAX_PERC,   
-- CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,  
-- 'Quota e controvalore protetti'  AS DES_PROT,  
-- PREZZOPROT AS QUOTA_PROT,  
---- CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,   
-- QUOTE AS NUMEROQUOTE_PROT,   
-- CTRVIMPPROT AS CONTROVALORE_PROT  
-- FROM C6StagingPeriodico.WSEIGP GP  
--    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT  
--    on  GP.isin=ISNULL(CAT.codisin,'')  
--    and CAT.tipoprodotto = 'GP'  
--    and CAT.visibilita = 1  
--  WHERE GP.DTTRIM = @DataFineTrim  
-- and PREZZOMAX <> 0.000   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_FOI80' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_FOI80'  
  )  
  
END   
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_FOI80_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















-- =============================================

-- Description:	<La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2): 
-- C6StagingPeriodico.WSEIFP  e con tali dati popola la tb dbo.C6MartPeriodico.FOI80
--N.B.: Le tb sono in join con la tb c6stagingperiodico.rp_catalogoprodotti, ciò è dettato dalla necessità di reperire il nome del fondo>
-- =============================================

CREATE procedure [C6MartPeriodico].[DM_FOI80_pre_selective]
	


AS
BEGIN

SET NOCOUNT ON;


DECLARE @Par_percentuale INT
SET @Par_percentuale = 80

DECLARE @DataFineTrim VARCHAR(8)


    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)


	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_FOI80_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		
	TRUNCATE TABLE C6MartPeriodico.FOI80

	INSERT INTO C6MartPeriodico.FOI80
	([DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[CODFIS]
      ,[DESPROD]
      ,[CODMAN]
      ,[CODCONF]
      ,[CODPROD]
      ,[SUBPROD]
      ,[ISIN]
      ,[CTV]
      ,[PREZZO]
      ,[QUOTE]
      ,[PREZZOMAX]
      ,[DTPREZZOMAX]
      ,[DESMAX]
      ,[PREZZOPROT]
      ,[CTRVIMPPROT]
      ,[DESPROT]
      ,[DESPRODTIT]
      ,[QUOTA_MAX_PERC]
	)
	select --top 10
	@DataFineTrim AS DTTRIM,
	DTRIFE AS DTRIFE,
	RETE AS RETE,
    CODFIS AS CODFIS,
    --ISNULL(CAT.NOMEPRODOTTO,'Da SP - Fonditalia Crescita Protetta 80 Cap EUR') as DESPROD, 
    CAT.NOMEPRODOTTO as DESPROD,
    ISNULL(CODMAN,'') AS CODMAN,
    CODCONF AS COD_CONF,
    CODPROD AS CODPROD,
    SUBPROD AS SUBPROD,
    ISIN AS ISIN,
    CTV AS CTV,
	PREZZO AS PREZZO,
	QUOTE AS QUOTE, 
	PREZZOMAX AS PREZZOMAX,
	DTPREZZOMAX AS DTPREZZOMAX,
	'Quota massima' AS DESMAX,
	PREZZOPROT AS PREZZOPROT,
	CTRVIMPPROT AS CTRVIMPPROT,
	'Quota e controvalore protetti *'  AS DESPROT,
	'Fonditalia Crescita Protetta 80' AS [DESPRODTIT],
	@Par_percentuale AS QUOTA_MAX_PERC 
	
	FROM C6StagingPeriodico.WSEIFP FP
	LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
    on  --UL.codint=CAT.codinterno and
    FP.subprod=CAT.codsottoprodotto
    --and FP.isin=ISNULL(CAT.codisin,'')
    and CAT.visibilita = 1
	WHERE FP.DTTRIM = @DataFineTrim
	and PREZZOMAX <> 0.000 
	--AND FP.isin <> ''
	
--	union
	
--	select --top 10
--	RETE AS RETE,
--    CODFIS AS CODFIS,
--    CAT.NOMEPRODOTTO as DES_PROD,
--	CODCONF AS COD_CONF,
--	PREZZO AS QUOTA,
----	CTV/ PREZZO AS NUMEROQUOTE, 
--	QUOTE AS NUMEROQUOTE, 
--	CTV AS CONTROVALORE,
--	@DataFineTrim AS DATARIF, 
--	'Quota massima' AS DES_MAX,
--	PREZZOMAX AS QUOTA_MAX,
--	@Par_percentuale AS QUOTA_MAX_PERC, 
--	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
--	'Quota e controvalore protetti'  AS DES_PROT,
--	PREZZOPROT AS QUOTA_PROT,
----	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
--	QUOTE AS NUMEROQUOTE_PROT, 
--	CTRVIMPPROT AS CONTROVALORE_PROT
--	FROM C6StagingPeriodico.WSEIUL UL
--    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
--    on  UL.codint=CAT.codinterno
--    and UL.subprod=CAT.codsottoprodotto
--    and UL.isinFIT=ISNULL(CAT.codisin,'')
--    and CAT.visibilita = 1
--	WHERE UL.DTTRIM = @DataFineTrim
--	and PREZZOMAX <> 0.000 
--	AND UL.isinFIT <> ''
	
--	union
	
--	select --top 10
--	RETE AS RETE,
--    CODFIS AS CODFIS,
--    CAT.NOMEPRODOTTO as DES_PROD,
--	CODCONF AS COD_CONF,
--	PREZZO AS QUOTA,
----	CTV/ PREZZO AS NUMEROQUOTE, 
--	QUOTE AS NUMEROQUOTE, 
--	CTV AS CONTROVALORE,
--	@DataFineTrim AS DATARIF, 
--	'Quota massima' AS DES_MAX,
--	PREZZOMAX AS QUOTA_MAX,
--	@Par_percentuale AS QUOTA_MAX_PERC, 
--	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
--	'Quota e controvalore protetti'  AS DES_PROT,
--	PREZZOPROT AS QUOTA_PROT,
----	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT,
--	QUOTE AS NUMEROQUOTE_PROT, 	 
--	CTRVIMPPROT AS CONTROVALORE_PROT
--	FROM C6StagingPeriodico.WSEIUL UL
--    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
--    on  UL.codint=CAT.codinterno
--    and UL.subprod=CAT.codsottoprodotto
--    and CAT.visibilita = 1
--	WHERE UL.DTTRIM = @DataFineTrim
--	and PREZZOMAX <> 0.000 
--	AND UL.isin = ''
--	AND UL.isinFIT = ''

--	union
	
--	select --top 10
--	RETE AS RETE,
--    CODFIS AS CODFIS,
--    CAT.NOMEPRODOTTO as DES_PROD,
--	CODCONF AS COD_CONF,
--	PREZZO AS QUOTA,
----	CTV/ PREZZO AS NUMEROQUOTE, 
--	QUOTE AS NUMEROQUOTE, 
--	CTV AS CONTROVALORE,
--	@DataFineTrim AS DATARIF, 
--	'Quota massima' AS DES_MAX,
--	PREZZOMAX AS QUOTA_MAX,
--	@Par_percentuale AS QUOTA_MAX_PERC, 
--	CONVERT(datetime, CONVERT(varchar,CONVERT(int,DTPREZZOMAX)), 0)  AS DATARIF_MAX,
--	'Quota e controvalore protetti'  AS DES_PROT,
--	PREZZOPROT AS QUOTA_PROT,
----	CTRVIMPPROT/ PREZZOPROT AS NUMEROQUOTE_PROT, 
--	QUOTE AS NUMEROQUOTE_PROT, 
--	CTRVIMPPROT AS CONTROVALORE_PROT
--	FROM C6StagingPeriodico.WSEIGP GP
--    LEFT OUTER join c6stagingperiodico.rp_catalogoprodotti CAT
--    on  GP.isin=ISNULL(CAT.codisin,'')
--    and CAT.tipoprodotto = 'GP'
--    and CAT.visibilita = 1
-- 	WHERE GP.DTTRIM = @DataFineTrim
--	and PREZZOMAX <> 0.000 


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_FOI80_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_FOI80_pre_selective'
		)

END	



















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_DA_GENERARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_DA_GENERARE] 
AS
BEGIN
--TRUNCATE TABLE C6MartPeriodico.GESTIONE_EMAIl
BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT

DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

DECLARE @GETDATE AS DATETIME
SELECT 	@GETDATE = GETDATE()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'DM_GESTIONE_EMAIL_REPORT_DA_GENERARE',
	GETDATE(),
	'Elaborazione trimestrale'
)
 --1. INSERIMENTO MAIL "LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- NON PRESENTI SU GESTIONE_EMAIL
DECLARE @TIPOEMAIL AS VARCHAR(50)
SET @TIPOEMAIL = 'LC_REP_DA_GEN'

DECLARE @id_periodiodo as int
	select @id_periodiodo = max(id_periodo) from [10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL

	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,Tipo,Data_Generazione, ID_ELAB)
	SELECT 
		DISTINCT
		C6.Rete,
		C6.Cod_Agente as CodicePB,
		@TIPOEMAIL as TipoEmail,
		@GETDATE AS DataGenerazione,
		@ID_ELAB as ID_ELAB
	--FROM C6MartPeriodico.vContrattiPerGenerazioneReport C6 --V cambiata la vista
	FROM 
      (select * from C6MartPeriodico.vContrattiPerGenerazioneReport 
        where rete + cod_agente in 
(
select 
	a.rete+ cod_agente
	from
	c6mart.contrattosei a
	left outer join
	[10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b
	on 
	(case 
	 when len("codice mandato") = 0
	 then   b."codice fiscale"
	 else 'FF@'+ "codice mandato"
	end) = a.cod_fiscale 
	and a.rete=b.rete
    and a.cod_agente = substring(b.codagente, 2, len(b.codagente)- 1)
	where 
	b.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	and a.data_fineavanzato is null
    and profilo > 0
    and dtprofilo is null

)) C6
--C6MartPeriodico.vContrattiPerGenerazioneReport C6
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON C6.RETE = EMAIL.RETE
			AND C6.COD_Agente = EMAIL.CodicePB
			AND EMAIL.TIPO = @TIPOEMAIL						
			AND YEAR(EMAIL.Data_Generazione) = YEAR(@GETDATE)	
			AND MONTH(EMAIL.Data_Generazione) = MONTH(@GETDATE)	
			AND ISNULL(EMAIL.[Inviata],'N') = 'N'	
	LEFT OUTER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.CodicePB IS NULL
		AND PF.RETE IS NULL
--recupero mail errate
--and c6.rete+c6.cod_agente in (
--	select * from temp_promotori)

-- 
IF @@ERROR<>0 ROLLBACK

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'DM_GESTIONE_EMAIL_REPORT_DA_GENERARE' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'DM_GESTIONE_EMAIL_REPORT_DA_GENERARE'
	)

COMMIT

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_DEFINITIVI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_DEFINITIVI] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT

DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

DECLARE @GETDATE AS DATETIME
SELECT 	@GETDATE = GETDATE()

 --1. INSERIMENTO MAIL "LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- NON PRESENTI SU GESTIONE_EMAIL
DECLARE @TIPOEMAIL AS VARCHAR(50)
SET @TIPOEMAIL = 'LC_REP_DEF'

	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,Tipo,Data_Generazione, ID_ELAB)
	SELECT 
		DISTINCT
		REPGEN.Rete,
		ANAG_CLIENTI.ID_PROMOTORE as CodicePB,
		@TIPOEMAIL as TipoEmail,
		@GETDATE AS DataGenerazione,
		@ID_ELAB as ID_ELAB
    FROM C6MartPeriodico.GESTIONE_PDF_FTP REPGEN
	INNER JOIN C6MartPeriodico.ANAG_CLIENTI ANAG_CLIENTI
			ON REPGEN.RETE = ANAG_CLIENTI.RETE
			AND REPGEN.CODICEFISCALE = ANAG_CLIENTI.COD_FISCALE
			AND ISNULL(REPGEN.FLAGINVIO,'N') = 'S'
			AND ISNULL(REPGEN.Definitivo,0) = 1	
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON REPGEN.RETE = EMAIL.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = EMAIL.CodicePB
			AND EMAIL.TIPO = @TIPOEMAIL					
			AND ISNULL(EMAIL.[Inviata],'N') = 'N'	
	LEFT OUTER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	
		ON ANAG_CLIENTI.ID_PROMOTORE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND REPGEN.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.CodicePB IS NULL
		AND PF.RETE IS NULL 

IF @@ERROR<>0 ROLLBACK

COMMIT

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_GENERATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_REPORT_GENERATI] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT

DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

DECLARE @GETDATE AS DATETIME
SELECT 	@GETDATE = GETDATE()

 --1. INSERIMENTO MAIL "LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- NON PRESENTI SU GESTIONE_EMAIL
DECLARE @TIPOEMAIL AS VARCHAR(50)
SET @TIPOEMAIL = 'LC_REP_GEN'
-- Controllo se ci sono report generati
	DECLARE @NUM_RIGHE AS INT
	SELECT @NUM_RIGHE = COUNT(*)
	FROM C6MartPeriodico.GESTIONE_PDF_FTP REPGEN
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON  REPGEN.ID_ELAB = EMAIL.ID_ELAB
			AND ISNULL(REPGEN.FLAGINVIO,'N') = 'N'	
			AND EMAIL.TIPO = @TIPOEMAIL
			AND ISNULL(EMAIL.[Inviata],'N') = 'N'						
	WHERE 1 = 1
		--AND REPGEN.ID_ELAB = @ID_ELAB
		AND EMAIL.ID_ELAB IS NULL

IF @NUM_RIGHE > 0
BEGIN
INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,SistemiOperativi ,Tipo,Data_Generazione, ID_ELAB)
VALUES('','','S',@TIPOEMAIL,@GETDATE,@ID_ELAB)
END		

IF @@ERROR<>0 ROLLBACK

COMMIT

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_GESTIONE_EMAIL_RNA] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT

DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

DECLARE @GETDATE AS DATETIME
SELECT 	@GETDATE = GETDATE()


-- RECUPERO LA TIPOLOGIA DI EMAIL DI SOLLECITO
DECLARE @NUMEL_EMAIL_AL_MESE AS INT
SELECT @NUMEL_EMAIL_AL_MESE = C6MartPeriodico.getNumeroElaborazioniEmailAlMese()

DECLARE @TIPOEMAIL AS VARCHAR(50)
IF(@NUMEL_EMAIL_AL_MESE = 0)
	SET @TIPOEMAIL = 'LC_NOASS'
ELSE
	SET @TIPOEMAIL = 'LC_' + CAST(@NUMEL_EMAIL_AL_MESE as VARCHAR(1)) + '_SOLL_NOASS'
 --1. INSERIMENTO MAIL "LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- NON PRESENTI SU GESTIONE_EMAIL

	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,Tipo,Data_Generazione, ID_ELAB)
	SELECT 
		DISTINCT
		C6.Rete,
		C6.CodicePB as CodicePB,
		@TIPOEMAIL as TipoEmail,
		@GETDATE AS DataGenerazione,
		@ID_ELAB as ID_ELAB
	FROM C6MartPeriodico.CLIENTI_CON_RNA_ALTO C6
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON C6.RETE = EMAIL.RETE
			AND C6.CodicePB = EMAIL.CodicePB
			AND EMAIL.TIPO = @TIPOEMAIL					
			AND YEAR(EMAIL.Data_Generazione) = YEAR(@GETDATE)	
			AND MONTH(EMAIL.Data_Generazione) = MONTH(@GETDATE)	
	LEFT OUTER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	
		ON C6.CodicePB BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.CodicePB IS NULL
		AND PF.RETE IS NULL

-- 
IF @@ERROR<>0 ROLLBACK

COMMIT

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MAIL_PROFILI_RISCHIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
CREATE procedure [C6MartPeriodico].[DM_MAIL_PROFILI_RISCHIO] AS
BEGIN

truncate table [C6MartPeriodico].[MAIL_PROFILI_RISCHIO]

insert into [C6MartPeriodico].[MAIL_PROFILI_RISCHIO]
SELECT [rete]
      ,[cod_fiscale]
      ,[codicecontratto]
      ,[cod_agente]
      ,[data_sott]
      ,[data_perf]
      ,[flag_invio_report]
      ,[profilo]
      ,[dt_creazione_profilo]
	  ,case
		when profilo = 0 then 1 
		else 0
	   end as flagScaduto
	
      ,case
		when datediff(dd,dt_creazione_profilo,c6martperiodico.gettrimestre2(getdate(),0)) / 365.25 < 3 then 0
		else 1 
	   end as flagScadenzaTrim

	 ,case
		when datediff(dd,dt_creazione_profilo,c6martperiodico.getNexttrimestre(getdate(),0)) / 365.25 < 3 then 0
		else 1 
	   end as flagScadenzaNextTrim

  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[RP_MAIL_PROFILI_RISCHIO]

end

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MIFID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 24/11/2008  
-- Description: Aggiunta chiave primaria autoincrement su tabella di staging   
--    per eliminazione duplicati.  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MIFID]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MIFID',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.MIFID  
  
 INSERT INTO C6MartPeriodico.[MIFID]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[PROFILO_ASS]  
           ,[DATA_INIZIO_VAL]  
           ,[ID_ELAB]  
           ,[RISKCLASS]  
           ,[EXPERIENCE]   
   ,SCADUTO )  
 SELECT  
  AN.RETE AS RETE,  
  AN.CODFIS AS COD_FISCALE,  
  case when RPF.FLGPROF='P' then 0 else  AN.CODPROF end AS PROFILO_ASS,  
  CASE  
   WHEN AN.DTINVAL = 0 THEN CASE  
    WHEN AN.CODPROF = 0 THEN NULL  
    ELSE GETDATE()  
   END  
   ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_INIZIO_VAL,  
  @ID_ELAB AS ID_ELAB,  
        CLASSeRC,  
   CASE   
   WHEN   
   RPF.FLGPROF='P' then -1 else COD_PROFEC
	end,  
--  CASE   
--   WHEN datediff(dd,   
--    case when isnull(AN.DTINVAL,0) <> 0    
--    then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)  
--    else CAST('19900101' as DATETIME)  
--    END  
--    , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0  
--   ELSE 1  
--  END AS SCADUTO  
  CASE   
   WHEN RPF.FLGPROF='P' then 2 
   when ISNULL(AN.CODPROF,0)>0 THEN 0 
   ELSE 1  
  END AS SCADUTO  
  
 FROM  
 C6StagingPeriodico.WSEIAN2 AS AN  
 LEFT JOIN  C6MartPeriodico.wseirpf RPF
 ON AN.RETE=RPF.RETE AND AN.CODFIS=RPF.CODFIS 
  --C6StagingPeriodico.ALL_CF_PB AS AL  
  --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN  
   --ON AL.RETE_PB = AN.RETE  
   --AND AL.CODICEFISCALE = AN.CODFIS  
 WHERE AN.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2 )  
        AND AN.CODMAN=''  
UNION   
SELECT  
  AN.RETE AS RETE,  
  'FF@' + AN.CODMAN AS COD_FISCALE, --AN.CODFIS AS COD_FISCALE,  
  case when RPF.FLGPROF='P' then 0 else  AN.CODPROF end AS PROFILO_ASS,  
  CASE  
   WHEN AN.DTINVAL = 0 THEN CASE  
    WHEN AN.CODPROF = 0 THEN NULL  
    ELSE GETDATE()  
   END  
   ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_INIZIO_VAL,  
  @ID_ELAB AS ID_ELAB,  
        classErc,  
   case when RPF.FLGPROF='P' then -1 else COD_PROFEC
   end, 
--  CASE   
--   WHEN datediff(dd,   
--    case when isnull(AN.DTINVAL,0) <> 0    
--    then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)  
--    else CAST('19900101' as DATETIME)  
--    END  
--    , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0  
--   ELSE 1  
--  END AS SCADUTO  
  CASE
  WHEN RPF.FLGPROF='P' then 2 
   WHEN   
    ISNULL(AN.CODPROF,0)>0 THEN 0   
   ELSE 1  
  END AS SCADUTO  
 FROM  
  C6StagingPeriodico.WSEIAN2 AS AN  
   LEFT JOIN  C6MartPeriodico.wseirpf RPF
 ON AN.RETE=RPF.RETE AND AN.CODFIS=RPF.CODFIS AND AN.CODMAN=RPF.CODMAN
  --C6StagingPeriodico.ALL_CF_PB AS AL  
  --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN  
  -- ON AL.RETE_PB = AN.RETE  
  -- AND SUBSTRING(AL.CODICEFISCALE,4,4) = AN.CODMAN  
 WHERE AN.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2 )  
        AND AN.CODMAN <> ''   
        --AND AL.CODICEFISCALE LIKE '%@%'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MIFID' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_MIFID'  
  )  
  
END  
  
  
--select count(*) from c6martperiodico.mifid  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MIFID_BKP_20231114_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 24/11/2008  
-- Description: Aggiunta chiave primaria autoincrement su tabella di staging   
--    per eliminazione duplicati.  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MIFID_BKP_20231114_PRE_RAFFORZAMENTO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MIFID',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.MIFID  
  
 INSERT INTO C6MartPeriodico.[MIFID]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[PROFILO_ASS]  
           ,[DATA_INIZIO_VAL]  
           ,[ID_ELAB]  
           ,[RISKCLASS]  
           ,[EXPERIENCE]   
   ,SCADUTO )  
 SELECT  
  AN.RETE AS RETE,  
  AN.CODFIS AS COD_FISCALE,  
  AN.CODPROF AS PROFILO_ASS,  
  CASE  
   WHEN AN.DTINVAL = 0 THEN CASE  
    WHEN AN.CODPROF = 0 THEN NULL  
    ELSE GETDATE()  
   END  
   ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_INIZIO_VAL,  
  @ID_ELAB AS ID_ELAB,  
        CLASSeRC,  
        COD_PROFEC,  
--  CASE   
--   WHEN datediff(dd,   
--    case when isnull(AN.DTINVAL,0) <> 0    
--    then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)  
--    else CAST('19900101' as DATETIME)  
--    END  
--    , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0  
--   ELSE 1  
--  END AS SCADUTO  
  CASE   
   WHEN   
    ISNULL(AN.CODPROF,0)>0 THEN 0  
   ELSE 1  
  END AS SCADUTO  
  
 FROM  
 C6StagingPeriodico.WSEIAN2 AS AN  
  --C6StagingPeriodico.ALL_CF_PB AS AL  
  --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN  
   --ON AL.RETE_PB = AN.RETE  
   --AND AL.CODICEFISCALE = AN.CODFIS  
 WHERE AN.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2 )  
        AND AN.CODMAN=''  
UNION   
SELECT  
  AN.RETE AS RETE,  
  'FF@' + AN.CODMAN AS COD_FISCALE, --AN.CODFIS AS COD_FISCALE,  
  AN.CODPROF AS PROFILO_ASS,  
  CASE  
   WHEN AN.DTINVAL = 0 THEN CASE  
    WHEN AN.CODPROF = 0 THEN NULL  
    ELSE GETDATE()  
   END  
   ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_INIZIO_VAL,  
  @ID_ELAB AS ID_ELAB,  
        classErc,  
        COD_PROFEC,  
--  CASE   
--   WHEN datediff(dd,   
--    case when isnull(AN.DTINVAL,0) <> 0    
--    then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)  
--    else CAST('19900101' as DATETIME)  
--    END  
--    , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0  
--   ELSE 1  
--  END AS SCADUTO  
  CASE   
   WHEN   
    ISNULL(AN.CODPROF,0)>0 THEN 0  
   ELSE 1  
  END AS SCADUTO  
 FROM  
  C6StagingPeriodico.WSEIAN2 AS AN  
  --C6StagingPeriodico.ALL_CF_PB AS AL  
  --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN  
  -- ON AL.RETE_PB = AN.RETE  
  -- AND SUBSTRING(AL.CODICEFISCALE,4,4) = AN.CODMAN  
 WHERE AN.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2 )  
        AND AN.CODMAN <> ''   
        --AND AL.CODICEFISCALE LIKE '%@%'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MIFID' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_MIFID'  
  )  
  
END  
  
  
--select count(*) from c6martperiodico.mifid  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MIFID_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 24/11/2008
-- Description:	Aggiunta chiave primaria autoincrement su tabella di staging 
--				per eliminazione duplicati.
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_MIFID_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MIFID_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.MIFID

	INSERT INTO C6MartPeriodico.[MIFID]
           ([RETE]
           ,[COD_FISCALE]
           ,[PROFILO_ASS]
           ,[DATA_INIZIO_VAL]
           ,[ID_ELAB]
           ,[RISKCLASS]
           ,[EXPERIENCE] 
			,SCADUTO )
	SELECT
		AN.RETE AS RETE,
		AN.CODFIS AS COD_FISCALE,
		AN.CODPROF AS PROFILO_ASS,
		CASE
			WHEN AN.DTINVAL = 0 THEN CASE
				WHEN AN.CODPROF = 0 THEN NULL
				ELSE GETDATE()
			END
			ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_INIZIO_VAL,
		@ID_ELAB AS ID_ELAB,
        CLASSeRC,
        COD_PROFEC,
--		CASE 
--			WHEN datediff(dd, 
--				case when isnull(AN.DTINVAL,0) <> 0  
--				then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)
--				else CAST('19900101' as DATETIME)
--				END
--				, c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0
--			ELSE 1
--		END AS SCADUTO
		CASE 
			WHEN 
				ISNULL(AN.CODPROF,0)>0 THEN 0
			ELSE 1
		END AS SCADUTO

	FROM
	C6StagingPeriodico.WSEIAN2 AS AN
		--C6StagingPeriodico.ALL_CF_PB AS AL
		--LEFT OUTER JOIN	C6StagingPeriodico.WSEIAN AS AN
			--ON AL.RETE_PB = AN.RETE
			--AND AL.CODICEFISCALE = AN.CODFIS
	WHERE AN.DTTRIM = (
		SELECT MAX(DTTRIM)
		FROM C6StagingPeriodico.WSEIAN2 )
        AND AN.CODMAN=''
UNION 
SELECT
		AN.RETE AS RETE,
		'FF@' + AN.CODMAN AS COD_FISCALE, --AN.CODFIS AS COD_FISCALE,
		AN.CODPROF AS PROFILO_ASS,
		CASE
			WHEN AN.DTINVAL = 0 THEN CASE
				WHEN AN.CODPROF = 0 THEN NULL
				ELSE GETDATE()
			END
			ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_INIZIO_VAL,
		@ID_ELAB AS ID_ELAB,
        classErc,
        COD_PROFEC,
--		CASE 
--			WHEN datediff(dd, 
--				case when isnull(AN.DTINVAL,0) <> 0  
--				then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)
--				else CAST('19900101' as DATETIME)
--				END
--				, c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0
--			ELSE 1
--		END AS SCADUTO
		CASE 
			WHEN 
				ISNULL(AN.CODPROF,0)>0 THEN 0
			ELSE 1
		END AS SCADUTO
	FROM
		C6StagingPeriodico.WSEIAN2 AS AN
		--C6StagingPeriodico.ALL_CF_PB AS AL
		--LEFT OUTER JOIN	C6StagingPeriodico.WSEIAN AS AN
		--	ON AL.RETE_PB = AN.RETE
		--	AND SUBSTRING(AL.CODICEFISCALE,4,4) = AN.CODMAN
	WHERE AN.DTTRIM = (
		SELECT MAX(DTTRIM)
		FROM C6StagingPeriodico.WSEIAN2	)
        AND AN.CODMAN <> '' 
        --AND AL.CODICEFISCALE LIKE '%@%'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MIFID_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MIFID_pre_selective'
		)

END


--select count(*) from c6martperiodico.mifid
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_ATTUALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 19 marzo 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_ATTUALE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MONITORAGGIO_ATTUALE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_ATTUALE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_ATTIVAZIONE]  
           ,[DATA_CTV]  
           ,[CTV_MONITORATO]  
           ,[APPORTO_INIZIALE]  
           ,[APPORTO_SUCCESSIVO]  
           ,[LIQUIDAZIONI]  
           ,[CEDOLE_DIVIDENDI]  
           ,[MINUS_PLUSVALENZA]  
           ,[RISORSE_ASSOCIATE]  
           ,[RENDIMENTO_CUMULATO]  
           ,[RENDIMENTO_ANNUALIZZATO]  
     ,[ORDINAMENTO_PROGETTO]  
           ,[ID_ELAB])  
  
-- SELECT  
--           WANAB.RETE,  
--           WANAB.CODFIS AS COD_FISCALE,  
--     CASE  
--    WHEN WANAB.CODAREA = 'INV' THEN 'Inv'  
--    WHEN WANAB.CODAREA = 'RIS' THEN 'Ris'  
--    WHEN WANAB.CODAREA = 'EXR' THEN 'Ext'  
--    WHEN WANAB.CODAREA = 'LIQ' THEN 'Liq'  
--     END AS ID_AREA,  
--           ISNULL(CASE  
--    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A  
--    ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO  
--     END, 'XXX') AS NOME_PROGETTO,  
--           CAST(CAST(WANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,  
--           CASE  
--    WHEN WANAB.DTCTV = 0 THEN NULL  
--    ELSE CAST(CAST(WANAB.DTCTV AS VARCHAR(8)) AS DATETIME)  
--     END AS DATA_CTV,  
--           WANAB.CTV AS CTV_MONITORATO,  
--           WANAB.APP_INI AS APPORTO_INIZIALE,  
--           WANAB.NTOT_APP AS APPORTO_SUCCESSIVO,  
--           WANAB.NTOT_LIQ AS LIQUIDAZIONI,  
--           WANAB.TOT_CED + WANAB.TOT_DIV AS CEDOLE_DIVIDENDI,  
--           WANAB.CTV - (WANAB.APP_INI + WANAB.TOT_APP - WANAB.TOT_LIQ - WANAB.TOT_CED - WANAB.TOT_DIV) AS MINUS_PLUSVALENZA,  
--           WANAB.APP_INI + WANAB.NTOT_APP - WANAB.NTOT_LIQ - WANAB.TOT_CED - WANAB.TOT_DIV AS RISORSE_ASSOCIATE,  
--           WANAB.RENDATT AS RENDIMENTO_CUMULATO,  
--           WANAB.RENDATT AS RENDIMENTO_ANNUALIZZATO,  
--     WANAB.CODPROG AS ORDINAMENTO_PROGETTO,  
--           @ID_ELAB AS ID_ELAB  
--  
-- FROM C6StagingPeriodico.WANAB AS WANAB  
-- INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
--  ON WANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
-- INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
--  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
-- INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
--  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
-- INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
--  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
--  AND CONSUL.INSTID = SCELTA_STATO.RETE  
--  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
-- LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
--  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
-- WHERE 1 = 1  
--  AND WANAB.DTFINE = 99991231  
--  AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
--  
-- UNION  
  
 SELECT  
  TANAB.RETE,  
  CASE  
   WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS  
   ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)  
  END AS COD_FISCALE,  
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END AS ID_AREA,  
           ISNULL(CASE  
    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))  
    ELSE LTRIM(RTRIM(PROGETTO_BOZZA.NUOVO_NOME_PROGETTO))  
     END, 'XXX') AS NOME_PROGETTO,  
           CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,  
           CASE  
    WHEN TANAB.DTCTV = 0 THEN NULL  
    ELSE CAST(CAST(TANAB.DTCTV AS VARCHAR(8)) AS DATETIME)  
     END AS DATA_CTV,  
           TANAB.CTV AS CTV_MONITORATO,  
           TANAB.APP_INI AS APPORTO_INIZIALE,  
           TANAB.NTOT_APP AS APPORTO_SUCCESSIVO,  
           TANAB.NTOT_LIQ AS LIQUIDAZIONI,  
           TANAB.TOT_CED + TANAB.TOT_DIV AS CEDOLE_DIVIDENDI,  
           TANAB.CTV - (TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ) AS MINUS_PLUSVALENZA,  
          -- TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ - TANAB.TOT_CED - TANAB.TOT_DIV AS RISORSE_ASSOCIATE,  
           TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ  AS RISORSE_ASSOCIATE,  
           cast(TANAB.RENDATT as decimal(15,2)) AS RENDIMENTO_CUMULATO,  
           TANAB.RENDATTANN AS RENDIMENTO_ANNUALIZZATO,  
     TANAB.CODPROG AS ORDINAMENTO_PROGETTO,  
           @ID_ELAB AS ID_ELAB  
  
 FROM C6StagingPeriodico.TANAB AS TANAB  
 INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
  ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
 INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
 INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
  AND CONSUL.INSTID = SCELTA_STATO.RETE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
 LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
 LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
  ON TANAB.CODFIS = MANDATI.CODMAND  
 WHERE 1 = 1  
  AND TANAB.DTFINE = 99991231  
  AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
  
  --da eliminare Trimestrale Ottobre 2012  
  --and TANAB.CODFIS <> '6120'  
  
  --V disabilitazione   
  --AND tanab.codfis not in('GRVMRZ63C14L566J','DNGMRA56E66D542Z')  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MONITORAGGIO_ATTUALE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_MONITORAGGIO_ATTUALE'  
  )  
  
END  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_ATTUALE_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 19 marzo 2009
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_ATTUALE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MONITORAGGIO_ATTUALE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_ATTUALE]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_ATTIVAZIONE]
           ,[DATA_CTV]
           ,[CTV_MONITORATO]
           ,[APPORTO_INIZIALE]
           ,[APPORTO_SUCCESSIVO]
           ,[LIQUIDAZIONI]
           ,[CEDOLE_DIVIDENDI]
           ,[MINUS_PLUSVALENZA]
           ,[RISORSE_ASSOCIATE]
           ,[RENDIMENTO_CUMULATO]
           ,[RENDIMENTO_ANNUALIZZATO]
		   ,[ORDINAMENTO_PROGETTO]
           ,[ID_ELAB])

--	SELECT
--           WANAB.RETE,
--           WANAB.CODFIS AS COD_FISCALE,
--		   CASE
--				WHEN WANAB.CODAREA = 'INV' THEN 'Inv'
--				WHEN WANAB.CODAREA = 'RIS' THEN 'Ris'
--				WHEN WANAB.CODAREA = 'EXR' THEN 'Ext'
--				WHEN WANAB.CODAREA = 'LIQ' THEN 'Liq'
--		   END AS ID_AREA,
--           ISNULL(CASE
--				WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A
--				ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO
--		   END, 'XXX') AS NOME_PROGETTO,
--           CAST(CAST(WANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,
--           CASE
--				WHEN WANAB.DTCTV = 0 THEN NULL
--				ELSE CAST(CAST(WANAB.DTCTV AS VARCHAR(8)) AS DATETIME)
--		   END AS DATA_CTV,
--           WANAB.CTV AS CTV_MONITORATO,
--           WANAB.APP_INI AS APPORTO_INIZIALE,
--           WANAB.NTOT_APP AS APPORTO_SUCCESSIVO,
--           WANAB.NTOT_LIQ AS LIQUIDAZIONI,
--           WANAB.TOT_CED + WANAB.TOT_DIV AS CEDOLE_DIVIDENDI,
--           WANAB.CTV - (WANAB.APP_INI + WANAB.TOT_APP - WANAB.TOT_LIQ - WANAB.TOT_CED - WANAB.TOT_DIV) AS MINUS_PLUSVALENZA,
--           WANAB.APP_INI + WANAB.NTOT_APP - WANAB.NTOT_LIQ - WANAB.TOT_CED - WANAB.TOT_DIV AS RISORSE_ASSOCIATE,
--           WANAB.RENDATT AS RENDIMENTO_CUMULATO,
--           WANAB.RENDATT AS RENDIMENTO_ANNUALIZZATO,
--		   WANAB.CODPROG AS ORDINAMENTO_PROGETTO,
--           @ID_ELAB AS ID_ELAB
--
--	FROM C6StagingPeriodico.WANAB AS WANAB
--	INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL
--		ON WANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31
--	INNER JOIN C6StagingPeriodico.CONSAREA AS AREA
--		ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$
--	INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL
--		ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
--	INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO
--		ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE
--		AND CONSUL.INSTID = SCELTA_STATO.RETE
--		AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA
--	LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA
--		ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22
--	WHERE 1 = 1
--		AND WANAB.DTFINE = 99991231
--		AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1
--
--	UNION

	SELECT
		TANAB.RETE,
		CASE
			WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS
			ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)
		END AS COD_FISCALE,
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END AS ID_AREA,
           ISNULL(CASE
				WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))
				ELSE LTRIM(RTRIM(PROGETTO_BOZZA.NUOVO_NOME_PROGETTO))
		   END, 'XXX') AS NOME_PROGETTO,
           CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,
           CASE
				WHEN TANAB.DTCTV = 0 THEN NULL
				ELSE CAST(CAST(TANAB.DTCTV AS VARCHAR(8)) AS DATETIME)
		   END AS DATA_CTV,
           TANAB.CTV AS CTV_MONITORATO,
           TANAB.APP_INI AS APPORTO_INIZIALE,
           TANAB.NTOT_APP AS APPORTO_SUCCESSIVO,
           TANAB.NTOT_LIQ AS LIQUIDAZIONI,
           TANAB.TOT_CED + TANAB.TOT_DIV AS CEDOLE_DIVIDENDI,
           TANAB.CTV - (TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ) AS MINUS_PLUSVALENZA,
          -- TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ - TANAB.TOT_CED - TANAB.TOT_DIV AS RISORSE_ASSOCIATE,
           TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ  AS RISORSE_ASSOCIATE,
           cast(TANAB.RENDATT as decimal(15,2)) AS RENDIMENTO_CUMULATO,
           TANAB.RENDATTANN AS RENDIMENTO_ANNUALIZZATO,
		   TANAB.CODPROG AS ORDINAMENTO_PROGETTO,
           @ID_ELAB AS ID_ELAB

	FROM C6StagingPeriodico.TANAB AS TANAB
	INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL
		ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31
	INNER JOIN C6StagingPeriodico.CONSAREA AS AREA
		ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$
	INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL
		ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO
		ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE
		AND CONSUL.INSTID = SCELTA_STATO.RETE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA
	LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA
		ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22
	LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI
		ON TANAB.CODFIS = MANDATI.CODMAND
	WHERE 1 = 1
		AND TANAB.DTFINE = 99991231
		AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1

		--da eliminare Trimestrale Ottobre 2012
		--and TANAB.CODFIS <> '6120'

		--V disabilitazione 
		--AND tanab.codfis not in('GRVMRZ63C14L566J','DNGMRA56E66D542Z')
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MONITORAGGIO_ATTUALE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MONITORAGGIO_ATTUALE_pre_selective'
		)

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  Alessandro Tringali  
-- Create date: 18 Settembre 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_DETTAGLIO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MONITORAGGIO_DETTAGLIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[ID_AREA]  
           ,[DATA_ASSOCIAZIONE]  
           ,[VERSATO_NETTO_DA_ASSOC]  
           ,[UTILE_PERDITA_DA_ASSOC]  
           ,[ID_ELAB])  
  
 SELECT  
   B.RETE,  
   B.CODFIS,  
   B.POSITIONID,  
   A.[ID_AREA],  
  
  
   case when A.TIPPROD='CC' and data_associazione < '20110211' then cast('20110211' AS DATETIME)  
   ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,  
   A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],  
   CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],  
   @ID_ELAB AS [ID_ELAB]  
   FROM  
   C6STAGINGPERIODICO.SPB_CONTR_SINTESI B  
   INNER JOIN  
   (  
            SELECT  
            TCP.RETE AS  [RETE],  
   CASE  
    WHEN MAN.CODMAND IS NULL THEN TCP.CODFIS  
    ELSE dbo.getFiduciariaByCodMand(MAN.CODMAND)  
   END AS [COD_FISCALE],  
      TCP.CODPROD,  
      TCP.TIPPROD,   
      TCP.CODINT,   
      TCP.MAF,  
      TCP.ISIN,  
      TCP.SUBPROD,   
      TCP.CODCONF,   
      TCP.NUMPOL,   
      TCP.CONTO,   
      TCP.RUBR,   
      TCP.CUSTGAR,  
      TCP.TERMID,   
      TCP.ANNO,   
      TCP.PROG,  
               TCP.CODPROG,  
   CASE   
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA   
            END AS ID_AREA,  
   CASE WHEN TCP.DTINGRESSO=0 THEN   
     (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)  
   ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)  
            --ELSE CAST(DTININAC AS DATETIME)    
            END AS [DATA_ASSOCIAZIONE],  
   TCP.CVNNAC  
   FROM  
            C6STAGINGPERIODICO.TANAB ANA   
            JOIN   
   C6STAGINGPERIODICO.TCPTAB TCP  
            ON ANA.CODAREA=TCP.CODAREA  
            AND ANA.RETE=TCP.RETE  
            AND ANA.CODPROG=TCP.CODPROG  
            AND ANA.CODFIS=TCP.CODFIS  
   LEFT OUTER JOIN  
   C6STAGINGPERIODICO.WMANDATI MAN  
   ON ANA.CODFIS = MAN.CODMAND  
            WHERE DTVALORIZ NOT IN (99991231) AND   
                  DTUSCITA=99991231) A  
   ON   
    A.COD_FISCALE=B.CODFIS  
   AND B.RETE=B.RETE  
   AND A.CODPROD=B.CODPROD  
   AND A.CODCONF=B.CODCONF  
   AND A.CODINT=B.CODINT  
   AND A.SUBPROD=B.SUBPROD  
   AND A.NUMPOL=B.NUMPOL  
   AND A.CONTO=B.CONTO  
   AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR  
            AND (  CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG  
   AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR  
--   AND A.MAF=B.MAF  
  --V Modifica skandia di tipo ASU2  
   AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end  
    
 --da eliminare Trimestrale Ottobre 2012  
 --and B.CODFIS not in ('FF@6120', 'SNTRNI51C01D077B', 'FNTLRA71A61E625O', 'NTMLSN59D60E625H')  
  
 --and a.cod_fiscale not in ('GHBSRG47C01B033J')  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MONITORAGGIO_DETTAGLIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_MONITORAGGIO_DETTAGLIO'  
  )  
  
END  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_DETTAGLIO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Alessandro Tringali
-- Create date: 18 Settembre 2009
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_DETTAGLIO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MONITORAGGIO_DETTAGLIO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]
           ([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[ID_AREA]
           ,[DATA_ASSOCIAZIONE]
           ,[VERSATO_NETTO_DA_ASSOC]
           ,[UTILE_PERDITA_DA_ASSOC]
           ,[ID_ELAB])

	SELECT
			B.RETE,
			B.CODFIS,
			B.POSITIONID,
			A.[ID_AREA],


			case when A.TIPPROD='CC' and data_associazione < '20110211' then cast('20110211' AS DATETIME)
			ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,
			A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],
			CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],
			@ID_ELAB AS [ID_ELAB]
			FROM
			C6STAGINGPERIODICO.SPB_CONTR_SINTESI B
			INNER JOIN
			(
            SELECT
            TCP.RETE AS  [RETE],
			CASE
				WHEN MAN.CODMAND IS NULL THEN TCP.CODFIS
				ELSE dbo.getFiduciariaByCodMand(MAN.CODMAND)
			END AS [COD_FISCALE],
			   TCP.CODPROD,
			   TCP.TIPPROD, 
			   TCP.CODINT, 
			   TCP.MAF,
			   TCP.ISIN,
			   TCP.SUBPROD, 
			   TCP.CODCONF, 
			   TCP.NUMPOL, 
			   TCP.CONTO, 
			   TCP.RUBR, 
			   TCP.CUSTGAR,
			   TCP.TERMID, 
			   TCP.ANNO, 
			   TCP.PROG,
               TCP.CODPROG,
			CASE 
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA 
            END AS ID_AREA,
			CASE WHEN TCP.DTINGRESSO=0 THEN 
				 (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)
			ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)
            --ELSE CAST(DTININAC AS DATETIME)  
            END AS [DATA_ASSOCIAZIONE],
			TCP.CVNNAC
			FROM
            C6STAGINGPERIODICO.TANAB ANA 
            JOIN 
			C6STAGINGPERIODICO.TCPTAB TCP
            ON ANA.CODAREA=TCP.CODAREA
            AND ANA.RETE=TCP.RETE
            AND ANA.CODPROG=TCP.CODPROG
            AND ANA.CODFIS=TCP.CODFIS
			LEFT OUTER JOIN
			C6STAGINGPERIODICO.WMANDATI MAN
			ON ANA.CODFIS = MAN.CODMAND
            WHERE DTVALORIZ NOT IN (99991231) AND 
                  DTUSCITA=99991231) A
			ON 
				A.COD_FISCALE=B.CODFIS
			AND B.RETE=B.RETE
			AND A.CODPROD=B.CODPROD
			AND A.CODCONF=B.CODCONF
			AND A.CODINT=B.CODINT
			AND A.SUBPROD=B.SUBPROD
			AND A.NUMPOL=B.NUMPOL
			AND A.CONTO=B.CONTO
			AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR
            AND (		CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG
			AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR
--			AND A.MAF=B.MAF
		--V Modifica skandia di tipo ASU2
			AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end
  
	--da eliminare Trimestrale Ottobre 2012
	--and B.CODFIS not in ('FF@6120', 'SNTRNI51C01D077B', 'FNTLRA71A61E625O', 'NTMLSN59D60E625H')

	--and a.cod_fiscale not in ('GHBSRG47C01B033J')


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MONITORAGGIO_DETTAGLIO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MONITORAGGIO_DETTAGLIO_pre_selective'
		)

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_INIZIALE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 19 marzo 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_INIZIALE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MONITORAGGIO_INIZIALE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_INIZIALE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[DATA_FOTO]  
           ,[CTV_TOTALE]  
           ,[CTV_EXT]  
           ,[CTV_INV]  
           ,[CTV_RIS]  
           ,[CTV_PRE]  
           ,[CTV_LIQ]  
           ,[CTV_CC]  
           ,[CTV_NA]  
           ,[PARTITA_VIAGGIANTE]  
           ,[VAR_COMPLESSIVO]  
           ,[VAR_COPERTURA]  
           ,[PROFILO]  
           ,[VAR_MAX_PROFILO]  
           ,[RISKCLASS]  
           , [RISKCLASSMAX]  
           ,[ID_ELAB])  
  
 SELECT  
           INSTID AS RETE,  
           ADBKID AS COD_FISCALE,  
           C_DATASALVAT_D40E3 AS DATA_FOTO,  
     C_CTVEXT_34DCC + C_CTVINV_990D8 + C_CTVRIS_43FEA + C_CTVPRE_A0E49 + C_CTVLIQ_54D1B + C_CTVCC_E242D + C_CTVNA_473EA   
    AS CTV_TOTALE,  
           C_CTVEXT_34DCC AS CTV_EXT,  
           C_CTVINV_990D8 AS CTV_INV,  
           C_CTVRIS_43FEA AS CTV_RIS,  
           C_CTVPRE_A0E49 AS CTV_PRE,  
           C_CTVLIQ_54D1B AS CTV_LIQ,  
           C_CTVCC_E242D AS CTV_CC,  
           C_CTVNA_473EA AS CTV_NA,  
           C_INVESTIMEN_5F936 AS PARTITA_VIAGGIANTE,  
           C_VAR_16494 AS VAR_COMPLESSIVO,  
           C_COPVAR_5C6E5 AS VAR_COPERTURA,  
           CODICE_PROFILO AS PROFILO,  
           VAR_MAX_PROFILO AS VAR_MAX_PROFILO,  
           c6martperiodico.Codifica_CRisk_PhotoData(RISKCLASS),  
           c6martperiodico.Codifica_CRisk_PhotoData(RISKCLASSMAX),  
           @ID_ELAB AS ID_ELAB  
 FROM C6STAGINGPERIODICO.PHOTO_DATA  
 WHERE 1 = 1  
  AND SUBSTRING(TYPE__TYPE_7CAB6, 1, 1) = '1'  
  AND SUBSTRING(TYPE__STATUS_1E30E, 1 , 1) = '2'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MONITORAGGIO_INIZIALE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_MONITORAGGIO_INIZIALE'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_INIZIALE_AGGIORNAMENTO_RFA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--exec C6MartPeriodico.DM_MONITORAGGIO_INIZIALE_AGGIORNAMENTO_RFA
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_INIZIALE_AGGIORNAMENTO_RFA]
as
begin

	DECLARE @DataCongelamento DATETIME;
	DECLARE @DataCongelamento_Day int;
	DECLARE @DataCongelamento_Month int;
	DECLARE @DataCongelamento_Year int;
	SET @DataCongelamento		= C6MartPeriodico.getDataCongelamento();
	SET @DataCongelamento_Day	= day(@DataCongelamento);
	SET @DataCongelamento_Month	= month(@DataCongelamento);
	SET @DataCongelamento_Year = year(@DataCongelamento);

	-------------------------------------------------------------------
	-- Preparazione del tracciato dei valori
	-- da inserire in MONITORAGGIO_INIZIALE e PHOTO_DATA
	-------------------------------------------------------------------
	declare @NuoviValori table
	(
		Rete						varchar(1)
		,Cod_Fiscale				varchar(16)
		,Data_Foto					datetime
		,Ctv_Totale					decimal(15, 2)
		,Ctv_Ext					decimal(15, 2)
		,Ctv_Inv					decimal(15, 2)
		,Ctv_Ris					decimal(15, 2)
		,Ctv_Pre					decimal(15, 2)
		,Ctv_Liq					decimal(15, 2)
		,Ctv_Cc						decimal(15, 2)
		,Ctv_Na						decimal(15, 2)
		,ImportoPartiteViaggianti	decimal(15, 2)
		,Var_Complessivo			decimal(15, 3)
		,Var_Copertura				decimal(15, 3)
	);

	with K as
	(	select distinct Rete, Cod_Fiscale, Data_Foto
		from	C6MartPeriodico.MONITORAGGIO_INIZIALE
		where	(	day(Data_Foto) = 31			and month(Data_Foto) = 12		and year(data_foto) = @dataCongelamento_year and
					@DataCongelamento_Day = 31	and @DataCongelamento_Month = 12)
				or
				(	day(Data_Foto) = 31			and month(Data_Foto) = 3		and year(data_foto) = @dataCongelamento_year and
					@DataCongelamento_Day = 1	and @DataCongelamento_Month = 4)
				or
				(	day(Data_Foto) = 30			and month(Data_Foto) = 6		and year(data_foto) = @dataCongelamento_year and
					@DataCongelamento_Day = 1	and @DataCongelamento_Month = 7)
				or
				(	day(Data_Foto) = 30			and month(Data_Foto) = 9		and year(data_foto) = @dataCongelamento_year and
					@DataCongelamento_Day = 1	and @DataCongelamento_Month = 10)
	)
	, Controvalore_Totale as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Totale
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Ext as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Ext
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area = 'Ext'
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Inv as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Inv
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area = 'Inv'
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Ris as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Ris
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area = 'Ris'
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Pre as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Pre
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area in ('Pre','Pre1','Pre2')
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Liq as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Liq
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area = 'Liq'
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Cc as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Cc
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area = 'Cc'
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, Controvalore_Na as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Ctv) as Ctv_Na
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Ctv
		from	C6MartPeriodico.Patrimonio_Bf
		where	id_Area = 'Na'
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, PartiteViaggianti as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Importo) as Importo
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Importo
		from	c6martperiodico.partite_viaggianti
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, PartiteViaggianti_Patrimonio_Bf as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.PartVia_DisInv) as Importo
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, PartVia_DisInv
		from	c6martperiodico.Patrimonio_Bf
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		group by K.Rete, K.Cod_Fiscale
	)
	, VarCopertura as
	(
		select	K.Rete, K.Cod_Fiscale,
				Sum(C.Var_Perc_Ptf) as Var_Complessivo,
				Sum(C.Copertura)	as Var_Copertura
		from	K
		inner join
		(
		select	Rete, Cod_Fiscale, Var_Perc_Ptf, Copertura, COD_AGGREG
		from	C6MartPeriodico.RISCHIO_AGGREGATO
		) C
		on	K.Rete = C.Rete and
			K.Cod_Fiscale = C.Cod_Fiscale
		where C.COD_AGGREG = 'COMPLESSIVO|BF'
		group by K.Rete, K.Cod_Fiscale
	)

	-------------------------------------------------------------------
	-- Calcolo dei nuovi valori per l'aggiornamento
	-- della MONITORAGGIO_INIZIALE e della PHOTO_DATA
	-------------------------------------------------------------------
	insert into @NuoviValori
	select	K.Rete,
			K.Cod_Fiscale,
			K.Data_Foto,

			coalesce(Controvalore_Totale.Ctv_Totale, 0)	as Ctv_Totale,
			coalesce(Controvalore_Ext.Ctv_Ext, 0)		as Ctv_Ext,
			coalesce(Controvalore_Inv.Ctv_Inv, 0)		as Ctv_Inv,
			coalesce(Controvalore_Ris.Ctv_Ris, 0)		as Ctv_Ris,
			coalesce(Controvalore_Pre.Ctv_Pre, 0)		as Ctv_Pre,
			coalesce(Controvalore_Liq.Ctv_Liq, 0)		as Ctv_Liq,
			coalesce(Controvalore_Cc.Ctv_Cc, 0)			as Ctv_Cc,
			coalesce(Controvalore_Na.Ctv_Na, 0)			as Ctv_Na,

			coalesce(PartiteViaggianti.Importo + PartiteViaggianti_Patrimonio_Bf.Importo, 0) as ImportoPartiteViaggianti,
			coalesce(VarCopertura.Var_Complessivo, 0)	as Var_Complessivo,
			coalesce(VarCopertura.Var_Copertura, 0)		as Var_Copertura

	from	K		
					inner join Controvalore_Totale	on	K.Rete = Controvalore_Totale.Rete							and
														K.Cod_Fiscale = Controvalore_Totale.Cod_Fiscale

					left join Controvalore_Ext		on	K.Rete = Controvalore_Ext.Rete								and
														K.Cod_Fiscale = Controvalore_Ext.Cod_Fiscale

					left join Controvalore_Inv		on	K.Rete = Controvalore_Inv.Rete								and
														K.Cod_Fiscale = Controvalore_Inv.Cod_Fiscale

					left join Controvalore_Ris		on	K.Rete = Controvalore_Ris.Rete								and
														K.Cod_Fiscale = Controvalore_Ris.Cod_Fiscale

					left join Controvalore_Pre		on	K.Rete = Controvalore_Pre.Rete								and
														K.Cod_Fiscale = Controvalore_Pre.Cod_Fiscale

					left join Controvalore_Liq		on	K.Rete = Controvalore_Liq.Rete								and
														K.Cod_Fiscale = Controvalore_Liq.Cod_Fiscale

					left join Controvalore_Cc		on	K.Rete = Controvalore_Cc.Rete								and
														K.Cod_Fiscale = Controvalore_Cc.Cod_Fiscale

					left join Controvalore_Na		on	K.Rete = Controvalore_Na.Rete								and
														K.Cod_Fiscale = Controvalore_Na.Cod_Fiscale

					inner join VarCopertura			on	Controvalore_Totale.Rete = VarCopertura.Rete				and
														Controvalore_Totale.Cod_Fiscale = VarCopertura.Cod_Fiscale

					left join PartiteViaggianti		on	VarCopertura.Rete = PartiteViaggianti.Rete					and
														VarCopertura.Cod_Fiscale = PartiteViaggianti.Cod_Fiscale

					left join PartiteViaggianti_Patrimonio_Bf
													on	PartiteViaggianti.Rete = PartiteViaggianti_Patrimonio_Bf.Rete	and
														PartiteViaggianti.Cod_Fiscale = PartiteViaggianti_Patrimonio_Bf.Cod_Fiscale

	-------------------------------------------------------------------
	-- Aggiornamento MONITORAGGIO_INIZIALE
	-------------------------------------------------------------------
	Update	Destinazione
	set		CTV_Totale			= NuoviValori.Ctv_Totale
			,CTV_EXT			= NuoviValori.Ctv_Ext
			,CTV_INV			= NuoviValori.Ctv_Inv
			,CTV_RIS			= NuoviValori.Ctv_Ris
			,CTV_PRE			= NuoviValori.Ctv_Pre
			,CTV_LIQ			= NuoviValori.Ctv_Liq
			,CTV_CC				= NuoviValori.Ctv_Cc
			,CTV_NA				= NuoviValori.Ctv_Na
			,PARTITA_VIAGGIANTE	= NuoviValori.ImportoPartiteViaggianti
			,VAR_COMPLESSIVO	= NuoviValori.Var_Complessivo
			,VAR_COPERTURA		= NuoviValori.Var_Copertura
	from	
	@NuoviValori NuoviValori
	inner join 
	C6MartPeriodico.MONITORAGGIO_INIZIALE	Destinazione
	on	NuoviValori.Rete		= Destinazione.Rete			and
		NuoviValori.Cod_Fiscale	= Destinazione.Cod_Fiscale

	-------------------------------------------------------------------
	-- Aggiornamento PHOTO_DATA
	-------------------------------------------------------------------
	Update	Destinazione
	set		C_CTVEXT_34DCC		= NuoviValori.Ctv_Ext
			,C_CTVINV_990D8		= NuoviValori.Ctv_Inv
			,C_CTVRIS_43FEA		= NuoviValori.Ctv_Ris
			,C_CTVPRE_A0E49		= NuoviValori.Ctv_Pre
			,C_CTVLIQ_54D1B		= NuoviValori.Ctv_Liq
			,C_CTVCC_E242D		= NuoviValori.Ctv_Cc
			,C_CTVNA_473EA		= NuoviValori.Ctv_Na
			,C_INVESTIMEN_5F936	= NuoviValori.ImportoPartiteViaggianti
			,C_VAR_16494		= NuoviValori.Var_Complessivo
			,C_COPVAR_5C6E5		= NuoviValori.Var_Copertura
	from	
	@NuoviValori NuoviValori
	inner join 
	C6STAGINGPERIODICO.PHOTO_DATA	Destinazione
	on	NuoviValori.Rete			= Destinazione.INSTID				and
		NuoviValori.Cod_Fiscale		= Destinazione.ADBKID				and
		NuoviValori.Data_Foto		= Destinazione.C_DATASALVAT_D40E3
	where	Destinazione.TYPE__STATUS_1E30E = 2

	-------------------------------------------------------------------
	-- Ritorno valori per uso ORACLE
	-------------------------------------------------------------------
	select	Staging.OID_
			,NuoviValori.Rete						as INSTID
			,NuoviValori.Cod_Fiscale				as ADBKID
			,NuoviValori.Data_Foto					as C_DATASALVAT_D40E3
			--,NuoviValori.Ctv_Totale				as 
			,NuoviValori.Ctv_Ext					as C_CTVEXT_34DCC
			,NuoviValori.Ctv_Inv					as C_CTVINV_990D8
			,NuoviValori.Ctv_Ris					as C_CTVRIS_43FEA
			,NuoviValori.Ctv_Pre					as C_CTVPRE_A0E49
			,NuoviValori.Ctv_Liq					as C_CTVLIQ_54D1B
			,NuoviValori.Ctv_Cc						as C_CTVCC_E242D
			,NuoviValori.Ctv_Na						as C_CTVNA_473EA
			,NuoviValori.ImportoPartiteViaggianti	as C_INVESTIMEN_5F936
			,NuoviValori.Var_Complessivo			as C_VAR_16494
			,NuoviValori.Var_Copertura				as C_COPVAR_5C6E5
	from
	@NuoviValori NuoviValori
	inner join 
	C6STAGINGPERIODICO.PHOTO_DATA	Staging
	on	NuoviValori.Rete			= Staging.INSTID				and
		NuoviValori.Cod_Fiscale		= Staging.ADBKID				and
		NuoviValori.Data_Foto		= Staging.C_DATASALVAT_D40E3
	where	Staging.TYPE__STATUS_1E30E = 2

	/*togliere "Developing" */
end

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_INIZIALE_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 19 marzo 2009
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_INIZIALE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MONITORAGGIO_INIZIALE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_INIZIALE]
           ([RETE]
           ,[COD_FISCALE]
           ,[DATA_FOTO]
           ,[CTV_TOTALE]
           ,[CTV_EXT]
           ,[CTV_INV]
           ,[CTV_RIS]
           ,[CTV_PRE]
           ,[CTV_LIQ]
           ,[CTV_CC]
           ,[CTV_NA]
           ,[PARTITA_VIAGGIANTE]
           ,[VAR_COMPLESSIVO]
           ,[VAR_COPERTURA]
           ,[PROFILO]
           ,[VAR_MAX_PROFILO]
           ,[RISKCLASS]
           , [RISKCLASSMAX]
           ,[ID_ELAB])

	SELECT
           INSTID AS RETE,
           ADBKID AS COD_FISCALE,
           C_DATASALVAT_D40E3 AS DATA_FOTO,
		   C_CTVEXT_34DCC + C_CTVINV_990D8 + C_CTVRIS_43FEA + C_CTVPRE_A0E49 + C_CTVLIQ_54D1B + C_CTVCC_E242D + C_CTVNA_473EA 
				AS CTV_TOTALE,
           C_CTVEXT_34DCC AS CTV_EXT,
           C_CTVINV_990D8 AS CTV_INV,
           C_CTVRIS_43FEA AS CTV_RIS,
           C_CTVPRE_A0E49 AS CTV_PRE,
           C_CTVLIQ_54D1B AS CTV_LIQ,
           C_CTVCC_E242D AS CTV_CC,
           C_CTVNA_473EA AS CTV_NA,
           C_INVESTIMEN_5F936 AS PARTITA_VIAGGIANTE,
           C_VAR_16494 AS VAR_COMPLESSIVO,
           C_COPVAR_5C6E5 AS VAR_COPERTURA,
           CODICE_PROFILO AS PROFILO,
           VAR_MAX_PROFILO AS VAR_MAX_PROFILO,
           c6martperiodico.Codifica_CRisk_PhotoData(RISKCLASS),
           c6martperiodico.Codifica_CRisk_PhotoData(RISKCLASSMAX),
           @ID_ELAB AS ID_ELAB
	FROM C6STAGINGPERIODICO.PHOTO_DATA
	WHERE 1 = 1
		AND SUBSTRING(TYPE__TYPE_7CAB6, 1, 1) = '1'
		AND SUBSTRING(TYPE__STATUS_1E30E, 1 , 1) = '2'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MONITORAGGIO_INIZIALE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MONITORAGGIO_INIZIALE_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_REPORT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  Alessandro Tringali  
-- Create date: 19 Dicembre 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_REPORT]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MONITORAGGIO_REPORT',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_REPORT]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_REPORT]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[DATA_INVIO]  
           ,[CTV_TOTALE]  
           ,[CTV_EXT]  
           ,[CTV_INV]  
           ,[CTV_RIS]  
           ,[CTV_PRE]  
           ,[CTV_LIQ]  
           ,[CTV_CC]  
           ,[CTV_NA]  
           ,[PARTITA_VIAGGIANTE]  
           ,[VAR_COMPLESSIVO]  
           ,[VAR_COPERTURA]  
     ,[PROFILO]  
     ,[VAR_MAX_PROFILO]  
,   riskclass  
,   riskclassmax  
           ,[ID_ELAB])  
  SELECT  
           RETE,  
           COD_FISCALE,  
           DATA_FASE AS DATA_INVIO,  
           SUM(CONTROVALORE) as CTV_TOTALE,  
           SUM(CASE WHEN AREA= 'EXT' THEN CONTROVALORE ELSE 0 END ) AS CTV_EXT,  
           SUM(CASE WHEN AREA= 'INV' THEN CONTROVALORE ELSE 0 END ) AS CTV_INV,  
            SUM(CASE WHEN AREA= 'RIS' THEN CONTROVALORE ELSE 0 END )AS CTV_RIS,  
            SUM(CASE WHEN AREA= 'PRE' THEN CONTROVALORE ELSE 0 END )AS CTV_PRE,  
            SUM(CASE WHEN AREA= 'LIQ' THEN CONTROVALORE ELSE 0 END ) AS CTV_LIQ,  
            Max(CONTOCORRENTE )AS CTV_CC,  
            Max(RISORSENONALLOCATE) AS CTV_NA,  
           MAX(INVESTIMENTIINCORSO) AS PARTITA_VIAGGIANTE,  
           MAX(VAR_PERC_PTF) AS VAR_COMPLESSIVO,  
           MAX(COPERTURA) as VAR_COPERTURA,  
     mAX(PROFILO) AS PROFILO,  
     MAX(MAX_VAR) AS VAR_MAX_PROFILO,  
           MAX(RISKCLASS) AS RISKCLASS,  
     MAX(RISKCLASSMAX) AS RISKCLASSMAX,  
           @ID_ELAB AS ID_ELAB  
 FROM C6STAGINGPERIODICO.S80_EVOL_STAMPA_C6  
    GROUP BY   
           RETE,  
           COD_FISCALE,  
           DATA_FASE  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MONITORAGGIO_REPORT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_MONITORAGGIO_REPORT'  
  )  
  
END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_REPORT_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Alessandro Tringali
-- Create date: 19 Dicembre 2009
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_REPORT_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MONITORAGGIO_REPORT_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_REPORT] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_REPORT]
           ([RETE]
           ,[COD_FISCALE]
           ,[DATA_INVIO]
           ,[CTV_TOTALE]
           ,[CTV_EXT]
           ,[CTV_INV]
           ,[CTV_RIS]
           ,[CTV_PRE]
           ,[CTV_LIQ]
           ,[CTV_CC]
           ,[CTV_NA]
           ,[PARTITA_VIAGGIANTE]
           ,[VAR_COMPLESSIVO]
           ,[VAR_COPERTURA]
		   ,[PROFILO]
		   ,[VAR_MAX_PROFILO]
,			riskclass
,			riskclassmax
           ,[ID_ELAB])
  SELECT
           RETE,
           COD_FISCALE,
           DATA_FASE AS DATA_INVIO,
           SUM(CONTROVALORE) as CTV_TOTALE,
           SUM(CASE WHEN AREA= 'EXT' THEN CONTROVALORE ELSE 0 END ) AS CTV_EXT,
           SUM(CASE WHEN AREA= 'INV' THEN CONTROVALORE ELSE 0 END ) AS CTV_INV,
            SUM(CASE WHEN AREA= 'RIS' THEN CONTROVALORE ELSE 0 END )AS CTV_RIS,
            SUM(CASE WHEN AREA= 'PRE' THEN CONTROVALORE ELSE 0 END )AS CTV_PRE,
            SUM(CASE WHEN AREA= 'LIQ' THEN CONTROVALORE ELSE 0 END ) AS CTV_LIQ,
            Max(CONTOCORRENTE )AS CTV_CC,
            Max(RISORSENONALLOCATE) AS CTV_NA,
           MAX(INVESTIMENTIINCORSO) AS PARTITA_VIAGGIANTE,
           MAX(VAR_PERC_PTF) AS VAR_COMPLESSIVO,
           MAX(COPERTURA) as VAR_COPERTURA,
		   mAX(PROFILO) AS PROFILO,
		   MAX(MAX_VAR) AS VAR_MAX_PROFILO,
           MAX(RISKCLASS) AS RISKCLASS,
		   MAX(RISKCLASSMAX) AS RISKCLASSMAX,
           @ID_ELAB AS ID_ELAB
	FROM C6STAGINGPERIODICO.S80_EVOL_STAMPA_C6
    GROUP BY 
           RETE,
           COD_FISCALE,
           DATA_FASE
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MONITORAGGIO_REPORT_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MONITORAGGIO_REPORT_pre_selective'
		)

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_STORICO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- Stored procedure  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 19 marzo 2009  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_STORICO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MONITORAGGIO_STORICO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_STORICO]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_STORICO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_CTV]  
           ,[CTV_MONITORATO]  
           ,[RISORSE_ASSOCIATE]  
           ,[ID_ELAB]  
           ,CEDOLE_DIV  
   ,ordinamento_progetto)  
  
 SELECT  
           TANAB.RETE AS RETE,  
     CASE  
    WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS  
    ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)  
     END AS COD_FISCALE,  
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END AS ID_AREA,  
           ISNULL(CASE  
    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))  
    ELSE LTRIM(RTRIM(PROGETTO_BOZZA.NUOVO_NOME_PROGETTO))  
     END, 'XXX') AS NOME_PROGETTO,  
           CAST(CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) AS DATETIME) AS DATA_CTV,  
           WRENAB.CTV AS CTV_MONITORATO,  
           WRENAB.CVN AS RISORSE_ASSOCIATE,  
           @ID_ELAB AS ID_ELAB,  
           (TANAB.TOT_CED + TANAB.TOT_DIV) AS CEDOLE_DIV,  
   tanab.codprog  
 FROM C6STAGINGPERIODICO.TANAB AS TANAB  
 INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB  
  ON TANAB.CODPROG = WRENAB.CODPROG  
  AND TANAB.DTRIF = WRENAB.DTRIF  
 INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
  ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
 INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
 INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
  AND CONSUL.INSTID = SCELTA_STATO.RETE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
 LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
 LEFT OUTER JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
  ON TANAB.CODFIS = MANDATI.CODMAND  
 WHERE 1 = 1  
 AND TANAB.DTFINE = '99991231'  
 AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
 --and tanab.codfis not in('GRVMRZ63C14L566J','DNGMRA56E66D542Z')  
  
-- UNION  
--  
-- SELECT  
--           TANAB.RETE AS RETE,  
--     CASE  
--    WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS  
--    ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)  
--     END AS COD_FISCALE,  
--     CASE  
--    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
--    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
--    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
--    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
--     END AS ID_AREA,  
--           ISNULL(CASE  
--    WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A  
--    ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO  
--     END, 'XXX') AS NOME_PROGETTO,  
--           CAST(CAST(TRENAB.DTVALORIZ AS VARCHAR(8)) AS DATETIME) AS DATA_CTV,  
--           TRENAB.CTV AS CTV_MONITORATO,  
--           TRENAB.CVN AS RISORSE_ASSOCIATE,  
--           @ID_ELAB AS ID_ELAB  
--  
-- FROM C6STAGINGPERIODICO.TANAB AS TANAB  
-- INNER JOIN C6StagingPeriodico.TRENAB AS TRENAB  
--  ON TANAB.CODPROG = TRENAB.CODPROG  
--  AND TANAB.DTRIF = TRENAB.DTRIF  
-- INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL  
--  ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31  
-- INNER JOIN C6StagingPeriodico.CONSAREA AS AREA  
--  ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$  
-- INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL  
--  ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
-- INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO  
--  ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE  
--  AND CONSUL.INSTID = SCELTA_STATO.RETE  
--  AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA  
-- LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA  
--  ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22  
-- LEFT OUTER JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--  ON TANAB.CODFIS = MANDATI.CODMAND  
-- WHERE 1 = 1  
-- AND TANAB.DTFINE = '99991231'  
-- AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
  
-- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MONITORAGGIO_STORICO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_MONITORAGGIO_STORICO'  
  )  
  
END  
  
---------------------------------------------------------------------------------------------------------------------  
  
  
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S84ControvaloreRisorseApportate]    Script Date: 12/02/2010 13:24:00 ******/  
SET ANSI_NULLS ON  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_MONITORAGGIO_STORICO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 19 marzo 2009
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_MONITORAGGIO_STORICO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_MONITORAGGIO_STORICO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_STORICO] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_STORICO]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_CTV]
           ,[CTV_MONITORATO]
           ,[RISORSE_ASSOCIATE]
           ,[ID_ELAB]
           ,CEDOLE_DIV
			,ordinamento_progetto)

	SELECT
           TANAB.RETE AS RETE,
		   CASE
				WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS
				ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)
		   END AS COD_FISCALE,
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END AS ID_AREA,
           ISNULL(CASE
				WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))
				ELSE LTRIM(RTRIM(PROGETTO_BOZZA.NUOVO_NOME_PROGETTO))
		   END, 'XXX') AS NOME_PROGETTO,
           CAST(CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) AS DATETIME) AS DATA_CTV,
           WRENAB.CTV AS CTV_MONITORATO,
           WRENAB.CVN AS RISORSE_ASSOCIATE,
           @ID_ELAB AS ID_ELAB,
           (TANAB.TOT_CED + TANAB.TOT_DIV) AS CEDOLE_DIV,
			tanab.codprog
	FROM C6STAGINGPERIODICO.TANAB AS TANAB
	INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB
		ON TANAB.CODPROG = WRENAB.CODPROG
		AND TANAB.DTRIF = WRENAB.DTRIF
	INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL
		ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31
	INNER JOIN C6StagingPeriodico.CONSAREA AS AREA
		ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$
	INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL
		ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO
		ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE
		AND CONSUL.INSTID = SCELTA_STATO.RETE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA
	LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA
		ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22
	LEFT OUTER JOIN C6StagingPeriodico.WMANDATI AS MANDATI
		ON TANAB.CODFIS = MANDATI.CODMAND
	WHERE 1 = 1
	AND TANAB.DTFINE = '99991231'
	AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1
	--and tanab.codfis not in('GRVMRZ63C14L566J','DNGMRA56E66D542Z')

--	UNION
--
--	SELECT
--           TANAB.RETE AS RETE,
--		   CASE
--				WHEN MANDATI.CODMAND IS NULL THEN TANAB.CODFIS
--				ELSE dbo.getFiduciariaByCodMand(MANDATI.CODMAND)
--		   END AS COD_FISCALE,
--		   CASE
--				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
--				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
--				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
--				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
--		   END AS ID_AREA,
--           ISNULL(CASE
--				WHEN PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL THEN PRCONSUL.C_PROJECTNAM_11D1A
--				ELSE PROGETTO_BOZZA.NUOVO_NOME_PROGETTO
--		   END, 'XXX') AS NOME_PROGETTO,
--           CAST(CAST(TRENAB.DTVALORIZ AS VARCHAR(8)) AS DATETIME) AS DATA_CTV,
--           TRENAB.CTV AS CTV_MONITORATO,
--           TRENAB.CVN AS RISORSE_ASSOCIATE,
--           @ID_ELAB AS ID_ELAB
--
--	FROM C6STAGINGPERIODICO.TANAB AS TANAB
--	INNER JOIN C6StagingPeriodico.TRENAB AS TRENAB
--		ON TANAB.CODPROG = TRENAB.CODPROG
--		AND TANAB.DTRIF = TRENAB.DTRIF
--	INNER JOIN C6StagingPeriodico.PRCONSUL AS PRCONSUL
--		ON TANAB.CODPROG = PRCONSUL.C_PROJECTIDM_1AF31
--	INNER JOIN C6StagingPeriodico.CONSAREA AS AREA
--		ON PRCONSUL.F_PCONSULENZ_B69E4 = AREA.OID$
--	INNER JOIN C6StagingPeriodico.CONSUL AS CONSUL
--		ON AREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
--	INNER JOIN C6StagingPeriodico.ALL_CF_STATO AS SCELTA_STATO
--		ON CONSUL.ADBKID = SCELTA_STATO.CF_CLIENTE
--		AND CONSUL.INSTID = SCELTA_STATO.RETE
--		AND CONSUL.TYPE$_TIPOCO_1EA7C = SCELTA_STATO.STATO_CONSULENZA
--	LEFT JOIN C6StagingPeriodico.NOME_PROGETTO_BOZZA AS PROGETTO_BOZZA
--		ON PRCONSUL.C_PROJECTIDR_51E22 = PROGETTO_BOZZA.C_PROJECTIDR_51E22
--	LEFT OUTER JOIN C6StagingPeriodico.WMANDATI AS MANDATI
--		ON TANAB.CODFIS = MANDATI.CODMAND
--	WHERE 1 = 1
--	AND TANAB.DTFINE = '99991231'
--	AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_MONITORAGGIO_STORICO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_MONITORAGGIO_STORICO_pre_selective'
		)

END

---------------------------------------------------------------------------------------------------------------------


/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S84ControvaloreRisorseApportate]    Script Date: 12/02/2010 13:24:00 ******/
SET ANSI_NULLS ON


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_PARTITE_VIAGGIANTI]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PARTITE_VIAGGIANTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MARTPERIODICO.PARTITE_VIAGGIANTI  
  
 INSERT INTO C6MartPeriodico.PARTITE_VIAGGIANTI  
  (RETE  
  ,COD_FISCALE  
  ,IMPORTO  
  ,ID_ELAB  
  ,TIPO_ELAB)  
 SELECT  
  WSEIPV.RETE AS RETE,  
  case when isnull(codman,'') ='' then  WSEIPV.CODFIS else 'FF@'+ codman end AS COD_FISCALE,  
  SUM(IMPVER) AS IMPORTO,  
  @ID_ELAB,  
  @TIPO_ELAB  
 FROM  
  C6StagingPeriodico.WSEIPV  
 WHERE  
  WSEIPV.DTTRIM = (  
   SELECT  
    MAX(DTTRIM)  
   FROM  
    C6StagingPeriodico.WSEIPV  
  )  
 GROUP BY  
  WSEIPV.RETE,  
  case when isnull(codman,'') ='' then  WSEIPV.CODFIS else 'FF@'+ codman end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PARTITE_VIAGGIANTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_PARTITE_VIAGGIANTI'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PARTITE_VIAGGIANTI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_PARTITE_VIAGGIANTI_pre_selective]
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PARTITE_VIAGGIANTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MARTPERIODICO.PARTITE_VIAGGIANTI

	INSERT INTO C6MartPeriodico.PARTITE_VIAGGIANTI
		(RETE
		,COD_FISCALE
		,IMPORTO
		,ID_ELAB
		,TIPO_ELAB)
	SELECT
		WSEIPV.RETE AS RETE,
		case when isnull(codman,'') ='' then  WSEIPV.CODFIS else 'FF@'+ codman end AS COD_FISCALE,
		SUM(IMPVER) AS IMPORTO,
		@ID_ELAB,
		@TIPO_ELAB
	FROM
		C6StagingPeriodico.WSEIPV
	WHERE
		WSEIPV.DTTRIM = (
			SELECT
				MAX(DTTRIM)
			FROM
				C6StagingPeriodico.WSEIPV
		)
	GROUP BY
		WSEIPV.RETE,
		case when isnull(codman,'') ='' then  WSEIPV.CODFIS else 'FF@'+ codman end

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PARTITE_VIAGGIANTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PARTITE_VIAGGIANTI_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_ALTRO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_ALTRO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_ALTRO  
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_ALTRO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[QUANTITA]  
           ,[DESCRIZIONE]  
           ,[CTV]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
  
 SELECT   
  ALL_PATR_TERZI.RETE_PB AS RETE,  
  ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  ALL_PATR_TERZI.NUMEROQUOTE AS QUANTITA,  
  right(ALL_PATR_TERZI.DENOMINAZIONE,50) AS DESCRIZIONE,  
  ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6StagingPeriodico.ALL_PATR_TERZI  
 WHERE   
  ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18  
  
 UNION  
  
 SELECT   
  ALL_PATR_TERZI.RETE_PB AS RETE,  
  ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  NULL AS QUANTITA,  
  right(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,50) AS DESCRIZIONE,  
  ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6StagingPeriodico.ALL_PATR_TERZI  
 WHERE   
  ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_ALTRO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_ALTRO'  
  )  
  
END  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_ALTRO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_ALTRO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_ALTRO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_ALTRO

	INSERT INTO [C6MartPeriodico].[PATRIMONIO_ALTRO]
           ([RETE]
           ,[COD_FISCALE]
           ,[QUANTITA]
           ,[DESCRIZIONE]
           ,[CTV]
           ,[ID_ELAB]
           ,[TIPO_ELAB])

	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		ALL_PATR_TERZI.NUMEROQUOTE AS QUANTITA,
		right(ALL_PATR_TERZI.DENOMINAZIONE,50) AS DESCRIZIONE,
		ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.ALL_PATR_TERZI
	WHERE 
		ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18

	UNION

	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		NULL AS QUANTITA,
		right(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,50) AS DESCRIZIONE,
		ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.ALL_PATR_TERZI
	WHERE 
		ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_ALTRO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_ALTRO_pre_selective'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_BF]  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_BF  
      
 SELECT   
  CONTRATTOSINTESI.RETE AS RETE,  
  CONTRATTOSINTESI.CODFIS AS COD_FISCALE,  
  CONTRATTOSINTESI.POSITIONID AS POSITIONID,  
  SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO,   
  CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,  
  CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  NULL AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,  
  CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,  
  CONTRATTOSINTESI.MAF AS COD_MAF,  
  CONTRATTOSINTESI.CODINT AS COD_INTERNO,  
  CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,  
  CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,  
  CASE  
   WHEN CONSAREA.C_NEEDAREA_V_46360 = 'Inv' AND PRCONSUL.C_PROJECTNAM_11D1A IS NULL THEN 'Prodotti non associati a progetti'  
   ELSE LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))  
  END AS NOME_PROGETTO,  
        PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,  
  CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,  
  NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,  
  CONTRATTOSINTESI.CTV AS CTV,  
  CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,  
  NULL AS VERSATO_NETTO,  
  CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  --PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,  
  NULL AS PARTVIA_INV,  
  --CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  CASE   
   WHEN (CONTRATTOSINTESI.TIPPROD = 'GE'   
    OR CONTRATTOSINTESI.TIPPROD = 'GES')  
    AND CONTRATTOSINTESI.DTSOTTOS < 20070101 --cast('2007-01-01' AS DATETIME)   
    THEN NULL   
   WHEN CONTRATTOSINTESI.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   --Modifica Luca  
   WHEN CONTRATTOSINTESI.TIPPROD = 'ASUL' AND CONTRATTOSINTESI.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
   --  
   ELSE CONTRATTOSINTESI.RENDINIZ  
  END AS REND_SOTTOSCRIZIONE,   
  NULL  AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  CASE   
   WHEN (CONTRATTOSINTESI.TIPPROD = 'GE'   
    OR CONTRATTOSINTESI.TIPPROD = 'GES')  
    AND CONTRATTOSINTESI.DTSOTTOS < 20070101 --cast('2007-01-01' AS DATETIME)   
    THEN NULL   
   WHEN CONTRATTOSINTESI.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   --Modifica Luca  
   WHEN CONTRATTOSINTESI.TIPPROD = 'ASUL' AND CONTRATTOSINTESI.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
   --  
   ELSE CONTRATTOSINTESI.RENDANNO  
  END AS REND_ANNO,   
  0 AS REND_NON_RAPPR,  
  PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,  
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,  
  C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,  
        CONSUL.TYPE$_TIPOCO_1EA7C AS STATO_CONSULENZA,  
        ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,  
  PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,  
  0 AS EXTRANAC,  
        KAT.STRTYPE,  
        KAT.COMPLEX,  
    MIT.DESCR AS EMITTENTE,  
  CONTRATTOSINTESI.ISIN,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
  
 INTO #PATRIMONIO  
  
 FROM   
  [C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI   
 INNER JOIN   
  C6STAGINGPERIODICO.ALL_CF_STATO AS ALL_CF_STATO  
  ON   
   ALL_CF_STATO.RETE = CONTRATTOSINTESI.RETE  
   AND ALL_CF_STATO.CF_CLIENTE = CONTRATTOSINTESI.CODFIS  
   AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale  
 INNER JOIN   
  C6STAGINGPERIODICO.POSITION AS POSITION  
  ON   
   POSITION.POSITIONID = CONTRATTOSINTESI.POSITIONID  
 INNER JOIN   
  C6STAGINGPERIODICO.CONSUL AS CONSUL  
  ON   
   CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23  
   AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'AttivaAggiornata'  
 INNER JOIN   
  C6STAGINGPERIODICO.PRCONSUL AS PRCONSUL  
  ON   
   PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629  
 INNER JOIN   
  C6STAGINGPERIODICO.CONSAREA AS CONSAREA  
  ON   
   CONSAREA.OID$ = PRCONSUL.F_PCONSULENZ_B69E4  
    INNER JOIN C6STAGINGPERIODICO.CATITEMREF KAT  
    ON   
    KAT.oid$ = POSITION.f_oid$_posit_00526  
    left join   
    C6STAGINGPERIODICO.EMIT MIT  
    ON KAT.CODEMI= MIT.CODEMI  
    LEFT JOIN   
 C6STAGINGPERIODICO.C_BO_453FB  
 ON C_BO_453FB.PK_PRC = PRCONSUL.OID$  
 WHERE   
  CONTRATTOSINTESI.POSITIONID IS NOT NULL  
        and CONTRATTOSINTESI.tipprod  <> 'CC'   --TRINGALI  
    
  --da eliminare Trimestrale Ottobre 12  
  --and CONTRATTOSINTESI.CODFIS not in ('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
  
--da eliminare Trimestrale Gen 2013  
--  and CONTRATTOSINTESI.RETE + '-' + CONTRATTOSINTESI.CODFIS not in --('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
--(  
--'F-DLMSFN62L10F464C',  
--'S-FF@7888',  
--'F-TRLGNI38T10D325V',  
--'F-SRRGNE58T04H981R',  
--'F-MGLNTN55C23L259M',  
--'F-TRFRLM68H67F132X',  
--'F-CNTLNE72B50H501I',  
--'S-FRLFRC77A42H501Z'  
--)  
  
  
 UNION ALL -- MODIFICA FATTA PER AVERE I CONTI CORRENTI 26 NOVEMBRE (MAURIZIO)  
  
--aggiunta consulenza per recuperare il cod progetto  
SELECT   
  CONTRATTOSINTESI.RETE AS RETE,  
  CONTRATTOSINTESI.CODFIS AS COD_FISCALE,  
  CONTRATTOSINTESI.POSITIONID AS POSITIONID,  
  SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO,   
  CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,  
  CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  NULL  AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,  
  CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,  
  CONTRATTOSINTESI.MAF AS COD_MAF,  
  CONTRATTOSINTESI.CODINT AS COD_INTERNO,  
  CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,  
  CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,  
  NULL AS NOME_PROGETTO,  
        '' AS TIPO_PROGETTO,  
  CASE WHEN CONTRATTOSINTESI.CTV>0 THEN 'Liq' ELSE 'Cc' END  AS ID_AREA,   
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,  
  NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,  
  CONTRATTOSINTESI.CTV AS CTV,  
  CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,  
  NULL AS VERSATO_NETTO, --CONTRATTOSINTESI.CVN AS VERSATO_NETTO,  
  CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  NULL AS PARTVIA_INV, --PARTITEVIAGGIANTI.IMPORTOVERSATO AS PARTVIA_INV,  
  CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  CONTRATTOSINTESI.RENDANNO AS REND_ANNO,  
  0 AS REND_NON_RAPPR,  
  PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,  
        null  AS ORIZZ_TEMP_NUM,  
  NULL AS ORIZZ_TEMP,  
        NULL AS STATO_CONSULENZA,  
        NULL  AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  NULL AS DATA_MIGR_CONS,  
  NULL AS DATA_PIANIF,  
  0 AS EXTRANAC,  
        KAT.STRTYPE,  
        KAT.COMPLEX,  
        MIT.DESCR AS EMITTENTE,  
  CONTRATTOSINTESI.ISIN,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  [C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI  
        INNER JOIN C6STAGINGPERIODICO.CATITEMREF KAT  
        ON SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57)=KAT.CATALOGUEID  
        LEFT OUTER JOIN C6STAGINGPERIODICO.EMIT MIT  
        ON  MIT.CODEMI=KAT.CODEMI  
 INNER JOIN   
  C6STAGINGPERIODICO.ALL_CF_STATO AS ALL_CF_STATO  
  ON   
   ALL_CF_STATO.RETE = CONTRATTOSINTESI.RETE  
   AND ALL_CF_STATO.CF_CLIENTE = CONTRATTOSINTESI.CODFIS  
   AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale  
 INNER JOIN   
  C6STAGINGPERIODICO.POSITION AS POSITION  
  ON   
   POSITION.POSITIONID = CONTRATTOSINTESI.POSITIONID  
 INNER JOIN   
  C6STAGINGPERIODICO.CONSUL AS CONSUL  
  ON   
   CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23  
   AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'AttivaAggiornata'  
 INNER JOIN   
  C6STAGINGPERIODICO.PRCONSUL AS PRCONSUL  
  ON   
   PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629  
  
              
 WHERE   
  TIPPROD = 'CC'  
  
  --and CONTRATTOSINTESI.CODFIS not in ('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF'  
  )  
  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 INSERT INTO C6MartPeriodico.[PATRIMONIO_BF]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[COD_PRODOTTO]  
           ,[ID_CONTRATTO]  
           ,[DATA_SOTTOSCRIZIONE]  
           ,[COD_STATO]  
           ,[NUM_POLIZZA]  
           ,[COD_MAF]  
           ,[COD_INTERNO]  
           ,[COD_SOTTOPRODOTTO]  
           ,[TIPO_PRODOTTO]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[ID_AREA]  
           ,[DATA_OPERAZIONE]  
           ,[DATA_VALUTA]  
           ,[DATA_REGOLAMENTO]  
           ,[QUANTITA]  
           ,[PREZZO]  
           ,[CTV]  
           ,[CTV_NOMINALE]  
           ,[VERSATO_NETTO]  
           ,[PARTVIA_DISINV]  
           ,[DATA_PARTVIA_DISINV]  
           ,[PARTVIA_INV]  
           ,[REND_SOTTOSCRIZIONE]  
           ,[REND_TRIMESTRE]  
           ,[REND_ANNO]  
     ,[REND_NON_RAPPR]  
     ,[ORDINAMENTO_PROGETTO]  
            ,[ORIZZ_TEMP_NUM]   
         ,[ORIZZ_TEMP]  
            ,[STATO_CONSULENZA]   
            ,[DATA_STATO_CONS]   
            ,[DATA_MIGR_CONS]  
           , [DATA_PIANIF]   
     ,[EXTRANAC]  
           ,[STRTYPE]  
           ,[COMPLEX]  
           ,[EMITTENTE]  
     ,[ISIN]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
  
 SELECT   
  RETE,  
  COD_FISCALE,  
  POSITIONID,  
  COD_PRODOTTO,   
  ID_CONTRATTO,  
  DATA_SOTTOSCRIZIONE,  
  COD_STATO,  
  NUM_POLIZZA,  
  COD_MAF,  
  COD_INTERNO,  
  COD_SOTTOPRODOTTO,  
  TIPO_PRODOTTO,  
  NOME_PROGETTO,  
        TIPO_PROGETTO,  
  ID_AREA,  
  DATA_OPERAZIONE,  
  DATA_VALUTA,  
  DATA_REGOLAMENTO,  
  QUANTITA,  
  PREZZO,  
  CTV,  
  CTV_NOMINALE,  
  VERSATO_NETTO,  
  PARTVIA_DISINV,  
  DATA_PARTVIA_DISINV,  
  PARTVIA_INV,  
  REND_SOTTOSCRIZIONE,  
  REND_TRIMESTRE,  
  REND_ANNO,  
  REND_NON_RAPPR,  
  ORDINAMENTO_PROGETTO,  
        ORIZZ_TEMP_NUM,   
     ORIZZ_TEMP,  
        STATO_CONSULENZA,   
        DATA_STATO_CONS,   
        DATA_MIGR_CONS,  
        DATA_PIANIF,   
  EXTRANAC,  
        STRTYPE,  
        COMPLEX,  
        EMITTENTE,  
  ISIN,  
  @ID_ELAB,  
  @TIPO_ELAB  
 FROM #PATRIMONIO  
  
 UNION ALL -- MODIFICA PER AVERE TUTTI I PRODOTTI NON ALLOCATI  
  
 SELECT   
  CONTRATTOSINTESI.RETE AS RETE,  
  CONTRATTOSINTESI.CODFIS AS COD_FISCALE,  
  CONTRATTOSINTESI.POSITIONID AS POSITIONID,  
  SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO,   
  CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,  
        CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  NULL AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,  
  CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,  
  CONTRATTOSINTESI.MAF AS COD_MAF,  
  CONTRATTOSINTESI.CODINT AS COD_INTERNO,  
  CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,  
  CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,  
  LTRIM(RTRIM(NEWPOSITION.NOME_PROGETTO)) AS NOME_PROGETTO,  
        '' AS TIPO_PROGETTO,  
  --V Modifica fatta per riallocare correttamente un cc che scende dallo scarico della wseics e non è presente in consulenza e in proposta,  
  --altrimenti verrebbe allocato a 'Na'  
  CASE  
   WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV < 0) THEN 'CC'  
--------------------------------------------------------------------------------------------------  
   --modificato Emanuele  
   --WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV >= 0) THEN 'LIQ'  
   WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV >= 0) THEN 'Liq'  
--------------------------------------------------------------------------------------------------  
   ELSE ISNULL(NEWPOSITION.NEED_BREVE,'Na')   
  END AS ID_AREA,  
  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,  
  NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,  
  CONTRATTOSINTESI.CTV AS CTV,  
  CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,  
  NULL AS VERSATO_NETTO,  
  CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  --PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,  
  NULL AS PARTVIA_INV,  
  CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  CONTRATTOSINTESI.RENDANNO AS REND_ANNO,  
  0 AS REND_NON_RAPPR,  
  NULL AS ORDINAMENTO_PROGETTO,  
        ORIZZ_TEMP_NUM,   
     ORIZZ_TEMP,  
        STATO_CONSULENZA,   
        DATA_STATO_CONS,   
        DATA_MIGR_CONS,  
        DATA_PIANIF,   
  0 AS EXTRANAC,  
        KAT.STRTYPE,  
        KAT.COMPLEX,  
        MIT.DESCR AS EMITTENTE,  
  CONTRATTOSINTESI.ISIN,  
  @ID_ELAB,  
  @TIPO_ELAB  
 FROM   
  [C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI   
 LEFT JOIN   
  #PATRIMONIO AS PATR  
  ON   
   CONTRATTOSINTESI.RETE = PATR.RETE  
   AND CONTRATTOSINTESI.CODFIS = PATR.COD_FISCALE  
   AND CONTRATTOSINTESI.POSITIONID = PATR.POSITIONID  
  
    LEFT OUTER JOIN C6STAGINGPERIODICO.CATITEMREF KAT  
        ON SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57)=KAT.CATALOGUEID  
  
    LEFT OUTER JOIN C6STAGINGPERIODICO.EMIT MIT  
        ON  MIT.CODEMI=KAT.CODEMI  
 LEFT JOIN C6STAGINGPERIODICO.vNewPositionProposta NEWPOSITION  
  ON   
   CONTRATTOSINTESI.RETE = NEWPOSITION.RETE  
   AND CONTRATTOSINTESI.CODFIS = NEWPOSITION.CODICEFISCALE  
   AND CONTRATTOSINTESI.POSITIONID = NEWPOSITION.positionIDProposta  
 WHERE   
  CONTRATTOSINTESI.POSITIONID IS NOT NULL  
  AND PATR.POSITIONID IS NULL  
  
--da eliminare Trimestrale Gen 2013  
--  and CONTRATTOSINTESI.RETE + '-' + CONTRATTOSINTESI.CODFIS not in --('CLNNNL71B67L259H', 'DNGFNC69C09E472H')  
--(  
--'F-DLMSFN62L10F464C',  
--'S-FF@7888',  
--'F-TRLGNI38T10D325V',  
--'F-SRRGNE58T04H981R',  
--'F-MGLNTN55C23L259M',  
--'F-TRFRLM68H67F132X',  
--'F-CNTLNE72B50H501I',  
--'S-FRLFRC77A42H501Z'  
--)  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF2'  
  )  
  
 DROP TABLE #PATRIMONIO  
  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 -- AGGIORNAMENTO PRODOTTI EXTRA NAC  
--  
-- SELECT  
--  MISS.POSITIONID,  
--  MISS.CODFIS AS COD_FISCALE,  
--  MISS.RETE,  
--  C_NEEDAREA_V_46360 AS ID_AREA,  
--  C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
--  C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO  
-- INTO #MISS_PAST  
-- FROM  
--   (  
--  SELECT A.POSITIONID, CODFIS, RETE  
--  FROM  
--  C6STAGINGPERIODICO.SPB_CONTR_SINTESI A  
--  LEFT OUTER JOIN  
--  (  
--  SELECT D.POSITIONID, A.ADBKID, A.INSTID  
--  FROM  
--  C6STAGINGPERIODICO.CONSUL A,  
--  C6STAGINGPERIODICO.PRCONSUL B,  
--  C6STAGINGPERIODICO.CONSAREA C,  
--  C6STAGINGPERIODICO.POSITION D,  
--  C6STAGINGPERIODICO.ALL_CF_STATO F  
--  WHERE   
--  1=1  
--  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
--  AND B.OID$ = D.F_PPROJECT_P_B5629  
--  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
--  AND F.RETE = A.INSTID  
--  AND F.CF_CLIENTE = A.ADBKID  
--  AND F.FLAG_UTILIZZO_STATO = 1  
--  AND A.TYPE$_TIPOCO_1EA7C =  F.STATO_CONSULENZA  
--     and C.C_NEEDAREA_V_46360 <> 'Cc'  
--  ) B  
--  ON   
--  B.POSITIONID=A.POSITIONID  
--  AND B.ADBKID=A.CODFIS  
--  AND B.INSTID=A.RETE  
--  WHERE  
--  B.POSITIONID IS NULL  
--   ) MISS,  
--   (  
--  SELECT D.POSITIONID,   
--         A.ADBKID, A.INSTID,   
--         C.C_NEEDAREA_V_46360,   
--         TYPE$_PROJEC_14674,   
--         C_PROJECTNAM_11D1A,  
--         C_PROJECTIDM_1AF31  
--  FROM  
--  C6STAGINGPERIODICO.CONSUL A,  
--  C6STAGINGPERIODICO.PRCONSUL B,  
--  C6STAGINGPERIODICO.CONSAREA C,  
--  C6STAGINGPERIODICO.POSITION D  
--  WHERE   
--  1=1  
--  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
--  AND B.OID$ = D.F_PPROJECT_P_B5629  
--  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
--  AND A.TYPE$_TIPOCO_1EA7C =  'Attiva'  
--     and C.C_NEEDAREA_V_46360 <> 'Cc'  
--    ) PAST  
-- WHERE   
-- MISS.POSITIONID=PAST.POSITIONID  
-- AND MISS.CODFIS=PAST.ADBKID  
  
  
--- MISS  
  
SELECT A.POSITIONID, CODFIS, RETE  
        into #MISS  
  FROM  
  C6STAGINGPERIODICO.SPB_CONTR_SINTESI A  
  LEFT OUTER JOIN  
  (  
  SELECT D.POSITIONID, A.ADBKID, A.INSTID  
  FROM  
  C6STAGINGPERIODICO.CONSUL A,  
  C6STAGINGPERIODICO.PRCONSUL B,  
  C6STAGINGPERIODICO.CONSAREA C,  
  C6STAGINGPERIODICO.POSITION D,  
  C6STAGINGPERIODICO.ALL_CF_STATO F  
  WHERE   
  1=1  
  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
  AND B.OID$ = D.F_PPROJECT_P_B5629  
  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
  AND F.RETE = A.INSTID  
  AND F.CF_CLIENTE = A.ADBKID  
  AND F.FLAG_UTILIZZO_STATO = 1  
  AND A.TYPE$_TIPOCO_1EA7C =  F.STATO_CONSULENZA  
     --and C.C_NEEDAREA_V_46360 <> 'Cc'  
  and D.type$_catalo_35E2a <> 'ContiCorrenti'  
          
  ) B  
  ON   
  B.POSITIONID=A.POSITIONID  
  AND B.ADBKID=A.CODFIS  
  AND B.INSTID=A.RETE  
  WHERE  
  B.POSITIONID IS NULL  
  
  
-- PAST  
  
SELECT D.POSITIONID,   
         A.ADBKID, A.INSTID,   
         C.C_NEEDAREA_V_46360,   
         TYPE$_PROJEC_14674,   
         C_PROJECTNAM_11D1A,  
         C_PROJECTIDM_1AF31  
  into #PAST  
        FROM  
  C6STAGINGPERIODICO.CONSUL A,  
  C6STAGINGPERIODICO.PRCONSUL B,  
  C6STAGINGPERIODICO.CONSAREA C,  
  C6STAGINGPERIODICO.POSITION D  
  WHERE   
  1=1  
  AND A.OID$ = C.F_PCONSULENZ_7FBE3  
  AND B.OID$ = D.F_PPROJECT_P_B5629  
  AND  C.OID$ = B.F_PCONSULENZ_B69E4  
  AND A.TYPE$_TIPOCO_1EA7C =  'Attiva'  
     --and C.C_NEEDAREA_V_46360 <> 'Cc'  
  and D.type$_catalo_35E2a <> 'ContiCorrenti'  
   
  
  
  
  
SELECT  
  MISS.POSITIONID,  
  MISS.CODFIS AS COD_FISCALE,  
  MISS.RETE,  
  C_NEEDAREA_V_46360 AS ID_AREA,  
  C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
  C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO  
 INTO #miss_PAST  
 FROM  
  #MISS miss,   
   #PAST past  
 WHERE   
 MISS.POSITIONID=PAST.POSITIONID  
 AND MISS.CODFIS=PAST.ADBKID  
  
  
  
  
  
  
  
 UPDATE  
  PATR_BF  
 SET  
  PATR_BF.ID_AREA = MISS_PAST.ID_AREA,  
  PATR_BF.NOME_PROGETTO = MISS_PAST.NOME_PROGETTO,  
  PATR_BF.ORDINAMENTO_PROGETTO = MISS_PAST.ORDINAMENTO_PROGETTO,  
  PATR_BF.EXTRANAC = 1  
 FROM  
  C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
  INNER JOIN #MISS_PAST AS MISS_PAST  
   ON PATR_BF.RETE = MISS_PAST.RETE  
   AND PATR_BF.COD_FISCALE = MISS_PAST.COD_FISCALE  
   AND PATR_BF.POSITION_ID = MISS_PAST.POSITIONID  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF3'  
  )  
  
 DROP TABLE #MISS_PAST  
  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF4',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 -- IMPOSTA IL FLAG DEI PRODOTTI CON RENDIMENTO NON RAPPRESENTABILE  
  
 UPDATE  
  PATR_BF  
 SET  
  PATR_BF.REND_NON_RAPPR = 1  
 FROM  
  (  
  
  SELECT  
   TSCA.RETE,  
   TSCA.CODFIS,  
   C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(  
    TSCA.TIPPROD,  
    PRC.COD_INTERNO,  
    PRC.COD_MAF,  
    '',  
    TSCA.SUBPROD  
   )  
   +  
   dbo.Crea_positionID(  
    TSCA.TIPPROD,  
    PRC.COD_INTERNO,  
    PRC.COD_MAF,  
    '',  
    TSCA.SUBPROD,  
    TSCA.CODCONF,  
    PRC.NUMPOL,  
    TSCA.CONTO,  
    TSCA.RUBR,  
    TSCA.CUSTGAR,  
    TSCA.TERMID,  
    TSCA.ANNO,  
    TSCA.PROG  
   ) AS POSITION_ID  
  FROM  
   C6StagingPeriodico.TSCABP AS TSCA  
            inner join     
            C6StagingPeriodico.tcptab as TCP  
            ON TCP.CODFIS=TSCA.CODFIS  
            AND TCP.RETE=TSCA.RETE  
            AND TCP.CODCONF=TSCA.CODCONF  
            AND TCP.CODPROG=TSCA.CODPROG  
            AND TCP.CODPROD=TSCA.CODPROD  
            AND TCP.CONTO=TSCA.CONTO  
            AND TCP.CUSTGAR=TSCA.CUSTGAR  
            AND TCP.CODABI=TSCA.CODABI  
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')  
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')  
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')  
            INNER  JOIN  
   C6StagingPeriodico.ALL_POS_CONS_CAT AS PRC ON  
    TSCA.CODPROG = PRC.ID_MONITORAGGIO  
    AND TSCA.CODCONF = PRC.CONTRATTO  
    AND REPLACE(TSCA.SUBPROD, '     ', '$') = PRC.COD_SOTTOPRODOTTO  
    AND TCP.CODINT = PRC.COD_INTERNO  
  WHERE  
   TSCA.DTRIF <> 0  
  ) REND_NON_RAPPR  
 INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
  ON PATR_BF.RETE = REND_NON_RAPPR.RETE  
  AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546  
    CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS  
      ELSE  REND_NON_RAPPR.CODFIS  
    END   
  AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF4' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF4'  
  )  
  
  
  
  
-- Log esecuzione  
  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_BF5',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
  
  
  
  
SELECT   
  ALL_CF_PB.RETE_PB AS RETE,  
  ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,  
  CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,  
  PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
  PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,  
  PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,  
  PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,  
  CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,  
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,  
  C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,  
  NULL AS CTV_TOTALE,  
  CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,  
  ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,  
        PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,  
  NULL AS ID_CONTRATTO,  
        PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO  
   into #AGG_PROG  
 FROM C6STAGINGPERIODICO.ALL_CF_PB  
 INNER JOIN C6STAGINGPERIODICO.CONSUL   
  ON CONSUL.INSTID = ALL_CF_PB.RETE_PB  
  AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza'   
          
 INNER JOIN C6STAGINGPERIODICO.CONSAREA   
  ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6STAGINGPERIODICO.PRCONSUL   
  ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$  
 LEFT JOIN C6STAGINGPERIODICO.C_BO_453FB  
  ON C_BO_453FB.PK_PRC = PRCONSUL.OID$  
    where  CONSAREA.C_NEEDAREA_V_46360='Inv'  
     
  
  
  
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
NOME_PROGETTO = L.NOME_PROGETTO  
FROM  
#AGG_PROG L  
WHERE   
C6MARTPERIODICO.PATRIMONIO_BF.COD_FISCALE=L.COD_FISCALE  
AND C6MARTPERIODICO.PATRIMONIO_BF.RETE=L.RETE  
AND C6MARTPERIODICO.PATRIMONIO_BF.ORDINAMENTO_PROGETTO=L.ORDINAMENTO_PROGETTO  
AND C6MARTPERIODICO.PATRIMONIO_BF.NOME_PROGETTO <> L.NOME_PROGETTO   
  
  
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
REND_NON_RAPPR=1  
FROM  
C6MARTPERIODICO.PATRIMONIO_BF  
WHERE   
TIPO_PRODOTTO='CC'  
AND CTV > 0  
AND ID_AREA='Liq'  
  
--aggiunta Emanuele/Valerio  
UPDATE   
c6martperiodico.patrimonio_bf  
SET Id_area = 'Liq'  
WHERE TIPO_PRODOTTO='CC'  
AND ID_AREA = 'na'  
AND CTV > 0  
  
--aggiunta Emanuele  
UPDATE   
c6martperiodico.patrimonio_bf  
SET id_area = 'Liq'  
WHERE id_area = 'LIQ'  
  
  
---------------------------------------  
  
  
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
 NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_BF5' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_BF5'  
  )  
  
  
  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_BF_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_BF_pre_selective]
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_BF
    
	SELECT 
		CONTRATTOSINTESI.RETE AS RETE,
		CONTRATTOSINTESI.CODFIS AS COD_FISCALE,
		CONTRATTOSINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,
		CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,
		CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,
		CONTRATTOSINTESI.MAF AS COD_MAF,
		CONTRATTOSINTESI.CODINT AS COD_INTERNO,
		CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,
		CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CONSAREA.C_NEEDAREA_V_46360 = 'Inv' AND PRCONSUL.C_PROJECTNAM_11D1A IS NULL THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(PRCONSUL.C_PROJECTNAM_11D1A))
		END AS NOME_PROGETTO,
        PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		CASE
			WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,
		NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,
		CONTRATTOSINTESI.CTV AS CTV,
		CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,
		NULL AS VERSATO_NETTO,
		CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		--CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,
		CASE 
			WHEN (CONTRATTOSINTESI.TIPPROD = 'GE' 
				OR CONTRATTOSINTESI.TIPPROD = 'GES')
				AND CONTRATTOSINTESI.DTSOTTOS < 20070101 --cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN CONTRATTOSINTESI.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN CONTRATTOSINTESI.TIPPROD = 'ASUL' AND CONTRATTOSINTESI.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE CONTRATTOSINTESI.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,	
		NULL  AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		CASE 
			WHEN (CONTRATTOSINTESI.TIPPROD = 'GE' 
				OR CONTRATTOSINTESI.TIPPROD = 'GES')
				AND CONTRATTOSINTESI.DTSOTTOS < 20070101 --cast('2007-01-01' AS DATETIME) 
				THEN NULL 
			WHEN CONTRATTOSINTESI.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			--Modifica Luca
			WHEN CONTRATTOSINTESI.TIPPROD = 'ASUL' AND CONTRATTOSINTESI.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			--
			ELSE CONTRATTOSINTESI.RENDANNO
		END AS REND_ANNO,	
		0 AS REND_NON_RAPPR,
		PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,
		C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,
        CONSUL.TYPE$_TIPOCO_1EA7C AS STATO_CONSULENZA,
        ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,
		PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,
		0 AS EXTRANAC,
        KAT.STRTYPE,
        KAT.COMPLEX,
        MIT.DESCR AS EMITTENTE,
		CONTRATTOSINTESI.ISIN,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB

	INTO #PATRIMONIO

	FROM 
		[C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI 
	INNER JOIN 
		C6STAGINGPERIODICO.ALL_CF_STATO AS ALL_CF_STATO
		ON 
			ALL_CF_STATO.RETE = CONTRATTOSINTESI.RETE
			AND ALL_CF_STATO.CF_CLIENTE = CONTRATTOSINTESI.CODFIS
			AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale
	INNER JOIN 
		C6STAGINGPERIODICO.POSITION AS POSITION
		ON 
			POSITION.POSITIONID = CONTRATTOSINTESI.POSITIONID
	INNER JOIN 
		C6STAGINGPERIODICO.CONSUL AS CONSUL
		ON 
			CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23
			AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'AttivaAggiornata'
	INNER JOIN 
		C6STAGINGPERIODICO.PRCONSUL AS PRCONSUL
		ON 
			PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629
	INNER JOIN 
		C6STAGINGPERIODICO.CONSAREA AS CONSAREA
		ON 
			CONSAREA.OID$ = PRCONSUL.F_PCONSULENZ_B69E4
    INNER JOIN C6STAGINGPERIODICO.CATITEMREF KAT
    ON 
    KAT.oid$ = POSITION.f_oid$_posit_00526
    left join 
    C6STAGINGPERIODICO.EMIT MIT
    ON KAT.CODEMI= MIT.CODEMI
    LEFT JOIN 
	C6STAGINGPERIODICO.C_BO_453FB
	ON C_BO_453FB.PK_PRC = PRCONSUL.OID$
	WHERE 
		CONTRATTOSINTESI.POSITIONID IS NOT NULL
        and CONTRATTOSINTESI.tipprod  <> 'CC'   --TRINGALI
		
		--da eliminare Trimestrale Ottobre 12
		--and CONTRATTOSINTESI.CODFIS not in ('CLNNNL71B67L259H', 'DNGFNC69C09E472H')

--da eliminare Trimestrale Gen 2013
--		and CONTRATTOSINTESI.RETE + '-' + CONTRATTOSINTESI.CODFIS not in --('CLNNNL71B67L259H', 'DNGFNC69C09E472H')
--(
--'F-DLMSFN62L10F464C',
--'S-FF@7888',
--'F-TRLGNI38T10D325V',
--'F-SRRGNE58T04H981R',
--'F-MGLNTN55C23L259M',
--'F-TRFRLM68H67F132X',
--'F-CNTLNE72B50H501I',
--'S-FRLFRC77A42H501Z'
--)


	UNION ALL	-- MODIFICA FATTA PER AVERE I CONTI CORRENTI 26 NOVEMBRE (MAURIZIO)

--aggiunta consulenza per recuperare il cod progetto
SELECT 
		CONTRATTOSINTESI.RETE AS RETE,
		CONTRATTOSINTESI.CODFIS AS COD_FISCALE,
		CONTRATTOSINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,
		CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		NULL  AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,
		CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,
		CONTRATTOSINTESI.MAF AS COD_MAF,
		CONTRATTOSINTESI.CODINT AS COD_INTERNO,
		CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,
		CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,
		NULL AS NOME_PROGETTO,
        '' AS TIPO_PROGETTO,
		CASE WHEN CONTRATTOSINTESI.CTV>0 THEN 'Liq' ELSE 'Cc' END  AS ID_AREA, 
		CASE
			WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,
		NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,
		CONTRATTOSINTESI.CTV AS CTV,
		CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,
		NULL AS VERSATO_NETTO, --CONTRATTOSINTESI.CVN AS VERSATO_NETTO,
		CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV, --PARTITEVIAGGIANTI.IMPORTOVERSATO AS PARTVIA_INV,
		CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		CONTRATTOSINTESI.RENDANNO AS REND_ANNO,
		0 AS REND_NON_RAPPR,
		PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,
        null  AS ORIZZ_TEMP_NUM,
		NULL AS ORIZZ_TEMP,
        NULL AS STATO_CONSULENZA,
        NULL  AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS DATA_PIANIF,
		0 AS EXTRANAC,
        KAT.STRTYPE,
        KAT.COMPLEX,
        MIT.DESCR AS EMITTENTE,
		CONTRATTOSINTESI.ISIN,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		[C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI
        INNER JOIN C6STAGINGPERIODICO.CATITEMREF KAT
        ON SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57)=KAT.CATALOGUEID
        LEFT OUTER JOIN C6STAGINGPERIODICO.EMIT MIT
        ON  MIT.CODEMI=KAT.CODEMI
	INNER JOIN 
		C6STAGINGPERIODICO.ALL_CF_STATO AS ALL_CF_STATO
		ON 
			ALL_CF_STATO.RETE = CONTRATTOSINTESI.RETE
			AND ALL_CF_STATO.CF_CLIENTE = CONTRATTOSINTESI.CODFIS
			AND ALL_CF_STATO.FLAG_UTILIZZO_STATO = 1 --Attuale
	INNER JOIN 
		C6STAGINGPERIODICO.POSITION AS POSITION
		ON 
			POSITION.POSITIONID = CONTRATTOSINTESI.POSITIONID
	INNER JOIN 
		C6STAGINGPERIODICO.CONSUL AS CONSUL
		ON 
			CONSUL.OID$ = POSITION.F_PCONSULENZ_56F23
			AND CONSUL.TYPE$_TIPOCO_1EA7C = ALL_CF_STATO.STATO_CONSULENZA --'AttivaAggiornata'
	INNER JOIN 
		C6STAGINGPERIODICO.PRCONSUL AS PRCONSUL
		ON 
			PRCONSUL.OID$ = POSITION.F_PPROJECT_P_B5629

            
	WHERE 
		TIPPROD = 'CC'

		--and CONTRATTOSINTESI.CODFIS not in ('CLNNNL71B67L259H', 'DNGFNC69C09E472H')

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF_pre_selective'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF_pre_selective2',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	INSERT INTO C6MartPeriodico.[PATRIMONIO_BF]
           ([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
            ,[STATO_CONSULENZA] 
            ,[DATA_STATO_CONS] 
            ,[DATA_MIGR_CONS]
           , [DATA_PIANIF] 
		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB])

	SELECT 
		RETE,
		COD_FISCALE,
		POSITIONID,
		COD_PRODOTTO, 
		ID_CONTRATTO,
		DATA_SOTTOSCRIZIONE,
		COD_STATO,
		NUM_POLIZZA,
		COD_MAF,
		COD_INTERNO,
		COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO,
		NOME_PROGETTO,
        TIPO_PROGETTO,
		ID_AREA,
		DATA_OPERAZIONE,
		DATA_VALUTA,
		DATA_REGOLAMENTO,
		QUANTITA,
		PREZZO,
		CTV,
		CTV_NOMINALE,
		VERSATO_NETTO,
		PARTVIA_DISINV,
		DATA_PARTVIA_DISINV,
		PARTVIA_INV,
		REND_SOTTOSCRIZIONE,
		REND_TRIMESTRE,
		REND_ANNO,
		REND_NON_RAPPR,
		ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM, 
	    ORIZZ_TEMP,
        STATO_CONSULENZA, 
        DATA_STATO_CONS, 
        DATA_MIGR_CONS,
        DATA_PIANIF, 
		EXTRANAC,
        STRTYPE,
        COMPLEX,
        EMITTENTE,
		ISIN,
		@ID_ELAB,
		@TIPO_ELAB
	FROM #PATRIMONIO

	UNION ALL	-- MODIFICA PER AVERE TUTTI I PRODOTTI NON ALLOCATI

	SELECT 
		CONTRATTOSINTESI.RETE AS RETE,
		CONTRATTOSINTESI.CODFIS AS COD_FISCALE,
		CONTRATTOSINTESI.POSITIONID AS POSITIONID,
		SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57) AS COD_PRODOTTO, 
		CONTRATTOSINTESI.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(CONTRATTOSINTESI.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(CONTRATTOSINTESI.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO, --CONTRATTOSINTESI.CODICESTATO AS COD_STATO,
		CONTRATTOSINTESI.NUMPOL AS NUM_POLIZZA,
		CONTRATTOSINTESI.MAF AS COD_MAF,
		CONTRATTOSINTESI.CODINT AS COD_INTERNO,
		CONTRATTOSINTESI.SUBPROD AS COD_SOTTOPRODOTTO,
		CONTRATTOSINTESI.TIPPROD AS TIPO_PRODOTTO,
		LTRIM(RTRIM(NEWPOSITION.NOME_PROGETTO)) AS NOME_PROGETTO,
        '' AS TIPO_PROGETTO,
		--V Modifica fatta per riallocare correttamente un cc che scende dallo scarico della wseics e non è presente in consulenza e in proposta,
		--altrimenti verrebbe allocato a 'Na'
		CASE
			WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV < 0) THEN 'CC'
--------------------------------------------------------------------------------------------------
			--modificato Emanuele
			--WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV >= 0) THEN 'LIQ'
			WHEN(CONTRATTOSINTESI.TIPPROD = 'CC' AND CONTRATTOSINTESI.CTV >= 0) THEN 'Liq'
--------------------------------------------------------------------------------------------------
			ELSE ISNULL(NEWPOSITION.NEED_BREVE,'Na') 
		END AS ID_AREA,

		CASE
			WHEN ISDATE(CONTRATTOSINTESI.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(CONTRATTOSINTESI.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE, --CONTRATTOSINTESI.DATADIRIFERIMENTO AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, --CONVERT(DATETIME, CONTRATTOSINTESI.DATAVALNAVAL, 105) AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		CONTRATTOSINTESI.QUOTE AS QUANTITA, --CONTRATTOSINTESI.QUOTE AS QUANTITA,
		NULL AS PREZZO, --CONTRATTOSINTESI.PREZZO AS PREZZO,
		CONTRATTOSINTESI.CTV AS CTV,
		CONTRATTOSINTESI.VALORE AS CTV_NOMINALE,
		NULL AS VERSATO_NETTO,
		CONTRATTOSINTESI.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(CONTRATTOSINTESI.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(CONTRATTOSINTESI.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		CONTRATTOSINTESI.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		CONTRATTOSINTESI.RENDANNO AS REND_ANNO,
		0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM, 
	    ORIZZ_TEMP,
        STATO_CONSULENZA, 
        DATA_STATO_CONS, 
        DATA_MIGR_CONS,
        DATA_PIANIF, 
		0 AS EXTRANAC,
        KAT.STRTYPE,
        KAT.COMPLEX,
        MIT.DESCR AS EMITTENTE,
		CONTRATTOSINTESI.ISIN,
		@ID_ELAB,
		@TIPO_ELAB
	FROM 
		[C6StagingPeriodico].[SPB_CONTR_SINTESI] AS CONTRATTOSINTESI 
	LEFT JOIN 
		#PATRIMONIO AS PATR
		ON	
			CONTRATTOSINTESI.RETE = PATR.RETE
			AND CONTRATTOSINTESI.CODFIS = PATR.COD_FISCALE
			AND CONTRATTOSINTESI.POSITIONID = PATR.POSITIONID

    LEFT OUTER JOIN C6STAGINGPERIODICO.CATITEMREF KAT
        ON SUBSTRING(CONTRATTOSINTESI.POSITIONID,1,57)=KAT.CATALOGUEID

    LEFT OUTER JOIN C6STAGINGPERIODICO.EMIT MIT
        ON  MIT.CODEMI=KAT.CODEMI
	LEFT JOIN C6STAGINGPERIODICO.vNewPositionProposta NEWPOSITION
		ON	
			CONTRATTOSINTESI.RETE = NEWPOSITION.RETE
			AND CONTRATTOSINTESI.CODFIS = NEWPOSITION.CODICEFISCALE
			AND CONTRATTOSINTESI.POSITIONID = NEWPOSITION.positionIDProposta
	WHERE 
		CONTRATTOSINTESI.POSITIONID IS NOT NULL
		AND PATR.POSITIONID IS NULL

--da eliminare Trimestrale Gen 2013
--		and CONTRATTOSINTESI.RETE + '-' + CONTRATTOSINTESI.CODFIS not in --('CLNNNL71B67L259H', 'DNGFNC69C09E472H')
--(
--'F-DLMSFN62L10F464C',
--'S-FF@7888',
--'F-TRLGNI38T10D325V',
--'F-SRRGNE58T04H981R',
--'F-MGLNTN55C23L259M',
--'F-TRFRLM68H67F132X',
--'F-CNTLNE72B50H501I',
--'S-FRLFRC77A42H501Z'
--)

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF_pre_selective2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF_pre_selective2'
		)

	DROP TABLE #PATRIMONIO

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF_pre_selective3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	-- AGGIORNAMENTO PRODOTTI EXTRA NAC
--
--	SELECT
--		MISS.POSITIONID,
--		MISS.CODFIS AS COD_FISCALE,
--		MISS.RETE,
--		C_NEEDAREA_V_46360 AS ID_AREA,
--		C_PROJECTNAM_11D1A AS NOME_PROGETTO,
--		C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO
--	INTO #MISS_PAST
--	FROM
--	  (
--		SELECT A.POSITIONID, CODFIS, RETE
--		FROM
--		C6STAGINGPERIODICO.SPB_CONTR_SINTESI A
--		LEFT OUTER JOIN
--		(
--		SELECT D.POSITIONID, A.ADBKID, A.INSTID
--		FROM
--		C6STAGINGPERIODICO.CONSUL A,
--		C6STAGINGPERIODICO.PRCONSUL B,
--		C6STAGINGPERIODICO.CONSAREA C,
--		C6STAGINGPERIODICO.POSITION D,
--		C6STAGINGPERIODICO.ALL_CF_STATO F
--		WHERE 
--		1=1
--		AND A.OID$ = C.F_PCONSULENZ_7FBE3
--		AND B.OID$ = D.F_PPROJECT_P_B5629
--		AND  C.OID$ = B.F_PCONSULENZ_B69E4
--		AND F.RETE = A.INSTID
--		AND F.CF_CLIENTE = A.ADBKID
--		AND F.FLAG_UTILIZZO_STATO = 1
--		AND A.TYPE$_TIPOCO_1EA7C =  F.STATO_CONSULENZA
--					and C.C_NEEDAREA_V_46360 <> 'Cc'
--		) B
--		ON 
--		B.POSITIONID=A.POSITIONID
--		AND B.ADBKID=A.CODFIS
--		AND B.INSTID=A.RETE
--		WHERE
--		B.POSITIONID IS NULL
--	  ) MISS,
--	  (
--		SELECT D.POSITIONID, 
--						   A.ADBKID, A.INSTID, 
--						   C.C_NEEDAREA_V_46360, 
--						   TYPE$_PROJEC_14674, 
--						   C_PROJECTNAM_11D1A,
--						   C_PROJECTIDM_1AF31
--		FROM
--		C6STAGINGPERIODICO.CONSUL A,
--		C6STAGINGPERIODICO.PRCONSUL B,
--		C6STAGINGPERIODICO.CONSAREA C,
--		C6STAGINGPERIODICO.POSITION D
--		WHERE 
--		1=1
--		AND A.OID$ = C.F_PCONSULENZ_7FBE3
--		AND B.OID$ = D.F_PPROJECT_P_B5629
--		AND  C.OID$ = B.F_PCONSULENZ_B69E4
--		AND A.TYPE$_TIPOCO_1EA7C =  'Attiva'
--					and C.C_NEEDAREA_V_46360 <> 'Cc'
--	   ) PAST
--	WHERE 
--	MISS.POSITIONID=PAST.POSITIONID
--	AND MISS.CODFIS=PAST.ADBKID


--- MISS

SELECT A.POSITIONID, CODFIS, RETE
        into #MISS
		FROM
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI A
		LEFT OUTER JOIN
		(
		SELECT D.POSITIONID, A.ADBKID, A.INSTID
		FROM
		C6STAGINGPERIODICO.CONSUL A,
		C6STAGINGPERIODICO.PRCONSUL B,
		C6STAGINGPERIODICO.CONSAREA C,
		C6STAGINGPERIODICO.POSITION D,
		C6STAGINGPERIODICO.ALL_CF_STATO F
		WHERE 
		1=1
		AND A.OID$ = C.F_PCONSULENZ_7FBE3
		AND B.OID$ = D.F_PPROJECT_P_B5629
		AND  C.OID$ = B.F_PCONSULENZ_B69E4
		AND F.RETE = A.INSTID
		AND F.CF_CLIENTE = A.ADBKID
		AND F.FLAG_UTILIZZO_STATO = 1
		AND A.TYPE$_TIPOCO_1EA7C =  F.STATO_CONSULENZA
					--and C.C_NEEDAREA_V_46360 <> 'Cc'
		and D.type$_catalo_35E2a <> 'ContiCorrenti'
        
		) B
		ON 
		B.POSITIONID=A.POSITIONID
		AND B.ADBKID=A.CODFIS
		AND B.INSTID=A.RETE
		WHERE
		B.POSITIONID IS NULL


-- PAST

SELECT D.POSITIONID, 
						   A.ADBKID, A.INSTID, 
						   C.C_NEEDAREA_V_46360, 
						   TYPE$_PROJEC_14674, 
						   C_PROJECTNAM_11D1A,
						   C_PROJECTIDM_1AF31
		into #PAST
        FROM
		C6STAGINGPERIODICO.CONSUL A,
		C6STAGINGPERIODICO.PRCONSUL B,
		C6STAGINGPERIODICO.CONSAREA C,
		C6STAGINGPERIODICO.POSITION D
		WHERE 
		1=1
		AND A.OID$ = C.F_PCONSULENZ_7FBE3
		AND B.OID$ = D.F_PPROJECT_P_B5629
		AND  C.OID$ = B.F_PCONSULENZ_B69E4
		AND A.TYPE$_TIPOCO_1EA7C =  'Attiva'
					--and C.C_NEEDAREA_V_46360 <> 'Cc'
		and D.type$_catalo_35E2a <> 'ContiCorrenti'
 




SELECT
		MISS.POSITIONID,
		MISS.CODFIS AS COD_FISCALE,
		MISS.RETE,
		C_NEEDAREA_V_46360 AS ID_AREA,
		C_PROJECTNAM_11D1A AS NOME_PROGETTO,
		C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO
	INTO #miss_PAST
	FROM
	 #MISS miss, 
	  #PAST past
	WHERE 
	MISS.POSITIONID=PAST.POSITIONID
	AND MISS.CODFIS=PAST.ADBKID







	UPDATE
		PATR_BF
	SET
		PATR_BF.ID_AREA = MISS_PAST.ID_AREA,
		PATR_BF.NOME_PROGETTO = MISS_PAST.NOME_PROGETTO,
		PATR_BF.ORDINAMENTO_PROGETTO = MISS_PAST.ORDINAMENTO_PROGETTO,
		PATR_BF.EXTRANAC = 1
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN #MISS_PAST AS MISS_PAST
			ON PATR_BF.RETE = MISS_PAST.RETE
			AND PATR_BF.COD_FISCALE = MISS_PAST.COD_FISCALE
			AND PATR_BF.POSITION_ID = MISS_PAST.POSITIONID

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF_pre_selective3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF_pre_selective3'
		)

	DROP TABLE #MISS_PAST

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF_pre_selective4',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	-- IMPOSTA IL FLAG DEI PRODOTTI CON RENDIMENTO NON RAPPRESENTABILE

	UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		(

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				PRC.COD_INTERNO,
				PRC.COD_MAF,
				'',
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				PRC.COD_INTERNO,
				PRC.COD_MAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				PRC.NUMPOL,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
		FROM
			C6StagingPeriodico.TSCABP AS TSCA
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            INNER  JOIN
			C6StagingPeriodico.ALL_POS_CONS_CAT AS PRC ON
				TSCA.CODPROG = PRC.ID_MONITORAGGIO
				AND TSCA.CODCONF = PRC.CONTRATTO
				AND REPLACE(TSCA.SUBPROD, '     ', '$') = PRC.COD_SOTTOPRODOTTO
				AND TCP.CODINT = PRC.COD_INTERNO
		WHERE
			TSCA.DTRIF <> 0
		) REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF_pre_selective4' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF_pre_selective4'
		)




-- Log esecuzione

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_BF_pre_selective5',
		GETDATE(),
		'Elaborazione trimestrale'
	)





SELECT 
		ALL_CF_PB.RETE_PB AS RETE,
		ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,
		PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,
		PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,
		PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,
		CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,
		C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,
		ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,
        PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,
		NULL AS ID_CONTRATTO,
        PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO
   into #AGG_PROG
	FROM C6STAGINGPERIODICO.ALL_CF_PB
	INNER JOIN C6STAGINGPERIODICO.CONSUL 
		ON CONSUL.INSTID = ALL_CF_PB.RETE_PB
		AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza' 
        
	INNER JOIN C6STAGINGPERIODICO.CONSAREA 
		ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6STAGINGPERIODICO.PRCONSUL 
		ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$
	LEFT JOIN C6STAGINGPERIODICO.C_BO_453FB
		ON C_BO_453FB.PK_PRC = PRCONSUL.OID$
    where  CONSAREA.C_NEEDAREA_V_46360='Inv'
   



UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
NOME_PROGETTO = L.NOME_PROGETTO
FROM
#AGG_PROG L
WHERE 
C6MARTPERIODICO.PATRIMONIO_BF.COD_FISCALE=L.COD_FISCALE
AND C6MARTPERIODICO.PATRIMONIO_BF.RETE=L.RETE
AND C6MARTPERIODICO.PATRIMONIO_BF.ORDINAMENTO_PROGETTO=L.ORDINAMENTO_PROGETTO
AND C6MARTPERIODICO.PATRIMONIO_BF.NOME_PROGETTO <> L.NOME_PROGETTO 


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq'
WHERE TIPO_PRODOTTO='CC'
AND ID_AREA = 'na'
AND CTV > 0

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


---------------------------------------


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_BF_pre_selective5' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_BF_pre_selective5'
		)




END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_EMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
-- =============================================  
-- Author:  <Alessandro Tringali>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_EMITTENTI]  
  
  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;     
  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_EMITTENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_EMITTENTI  
   
INSERT INTO  
[C6MARTPERIODICO].[PATRIMONIO_EMITTENTI]               
(  
  
COD_FISCALE,  
RETE,  
POSITION_ID,  
COD_PRODOTTO,  
COD_ADEGUATEZZA,  
INTERMEDIARIO,  
CTV_INTERMEDIARIO,  
CTV_INTER_NOCC_NEG,  
EMITTENTE,  
COMPLESSITA,  
CTV_EMITTENTE,  
CTV_PRODOTTO,  
FLG_AZ_OB,  
CREDITRISKCLASS,  
CTV_AZIONARIO,  
CTV_OBBLIGAZIONARIO,  
CTV_AZ_OB_EMIT,  
CTV_AZ_OB_EMIT_INTER,  
CTV_COMPLESSIVO,  
CTV_COMPL_NOCC_NEG,  
CONC_EMITTENTE,  
CONC_EMIT_INTERM,  
COPERTURA  
)  
  
         SELECT  H.COD_FISCALE,  
                H.RETE,  
                H.POSITION_ID,  
                H.COD_PRODOTTO AS CATALOGUENAME,  
                '' AS COD_ADEGUATEZZA,  
                'BF'   AS INTERMEDIARIO,  
                 sum(h.ctv) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTERMEDIARIO,  
    sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END ) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTER_nocc_neg,  
                H.EMITTENTE,  
                H.COMPLEX AS COMPLESSITA,  
                 sum(h.ctv) over (partition by h.cod_fiscale, H.rete, H.EMITTENTE)  AS PATRIMONIO_EMITTENTE,  
                h.ctv as CONTROVALORE_PRODOTTO,  
                CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB,  
                K.classe  AS CREDITRISKCLASS,  
                SUM( case when   STRTYPE = 'AZ' then  h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_AZIONARIO,  
                SUM(case when   STRTYPE = 'OB' then  h.ctv  else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_OBBLIGAZIONARIO,  
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT,  
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  h.ctv else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE)  PATRIM_AZ_OB_EMIT_INTER,  
                sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO,  
    sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPL_nocc_neg,  
    0 as concentrazione_emittente,  
                0 AS  concentraz_emit_interm,  
                r.copertura  
      FROM C6MARTPERIODICO.PATRIMONIO_BF H  
      LEFT OUTER join   
       C6MARTPERIODICO.RISCHIO_AGGREGATO    R    
       on  
     H.COD_FISCALE=R.COD_FISCALE  
    AND H.RETE=R.RETE    
    AND r.COD_AGGREG =   
     ((CASE   
      WHEN (h.NOME_PROGETTO IS NOT NULL)  
       THEN 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' + h.NOME_PROGETTO+ '|'+ isnull(cast(H.ordinamento_progetto as varchar),'')+'|'  
      ELSE  
       CASE WHEN (h.ID_AREA = 'NA') THEN 'RISFIN|' + LEFT(h.ID_AREA,3) + '|'   
       ELSE 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|'   
       END  
     END)  
   + h.POSITION_ID)   
       left outer join   
         
       --select * from  
       --C6MartPeriodico.CODIFICA_CREDITRISK K  
       C6MartPeriodico.RISCHIOEMITTENTI K  
       on   
       R.CREDITRISKEMIT=ORDINE  
  
---- PATRIMONIO TERZI  
UNION all  
  
SELECT DISTINCT h.COD_FISCALE,  
                h.RETE,  
                '' AS POSITION_ID,  
                H.COD_PRODOTTO AS CATALOGUENAME,  
                '' as COD_ADEGUATEZZA,  
                CASE  
                  WHEN h.INTERMEDIARIO = 'BF' THEN  
                   NULL  
                  ELSE  
                   h.INTERMEDIARIO  
                END AS INTERMEDIARIO,  
                sum(ROUND(h.CTV,2)) over (partition by h.cod_fiscale, h.rete, H.INTERMEDIARIO)  as PATRIMONIO_INTERMEDIARIO,  
                sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else ROUND(h.CTV,2) END ) over (partition by h.cod_fiscale, h.rete, H.INTERMEDIARIO) AS PATRIMONIO_INTER_nocc_neg,  
                h.EMITTENTE,  
                h.complex as COMPLESSITA,  
                0 AS PATRIMONIO_EMITTENTE,  
                ROUND(h.CTV,2) as CONTROVALORE_PRODOTTO,  
                CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB,  
                K.classe  AS CREDITRISKCLASS,  
                SUM( case when   STRTYPE = 'AZ' then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI) AS CTV_AZIONARIO,--aggiunto il cod_prodotto_terzi per identificare il singolo prodotto  
                SUM(case when   STRTYPE = 'OB' then  h.ctv  else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI ) AS CTV_OBBLIGAZIONARIO, --aggiunto il cod_prodotto_terzi per identificare il singolo prodotto  
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT,  
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE, h.intermediario )  PATRIM_AZ_OB_EMIT_INTER,  
                sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO,  
    sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete, h.intermediario) as PATRIMONIO_COMPL_nocc_neg,  
                0   as concentrazione_emittente,  
                0   as concentraz_emit_interm,  
                r.copertura  
 FROM    
       C6MARTPERIODICO.PATRIMONIO_TERZI H  
       LEFT OUTER JOIN  
       C6MARTPERIODICO.RISCHIO_AGGREGATO    R    
       ON  
        H.COD_FISCALE=R.COD_FISCALE  
       AND H.RETE=R.RETE  
       AND r.COD_AGGREG ='COMPLESSIVO|TERZI|' + RTRIM(H.INTERMEDIARIO) + '|' + RTRIM(H.chiave_thr)         
       LEFT OUTER join  
         
    C6Martperiodico.RISCHIOEMITTENTI K  
        on   
       R.CREDITRISKEMIT=ORDINE  
 WHERE   
   1=1   
   AND H.INTERMEDIARIO <> 'BF'  
   --AND V.POSITIONID=H.COD_PRODOTTO  
     
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_EMITTENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_PATRIMONIO_EMITTENTI'  
  )  
  
END  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_EMITTENTI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_EMITTENTI_pre_selective]


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


	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_EMITTENTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_EMITTENTI
 
INSERT INTO
[C6MARTPERIODICO].[PATRIMONIO_EMITTENTI]             
(

COD_FISCALE,
RETE,
POSITION_ID,
COD_PRODOTTO,
COD_ADEGUATEZZA,
INTERMEDIARIO,
CTV_INTERMEDIARIO,
CTV_INTER_NOCC_NEG,
EMITTENTE,
COMPLESSITA,
CTV_EMITTENTE,
CTV_PRODOTTO,
FLG_AZ_OB,
CREDITRISKCLASS,
CTV_AZIONARIO,
CTV_OBBLIGAZIONARIO,
CTV_AZ_OB_EMIT,
CTV_AZ_OB_EMIT_INTER,
CTV_COMPLESSIVO,
CTV_COMPL_NOCC_NEG,
CONC_EMITTENTE,
CONC_EMIT_INTERM,
COPERTURA
)

         SELECT  H.COD_FISCALE,
                H.RETE,
                H.POSITION_ID,
                H.COD_PRODOTTO AS CATALOGUENAME,
                '' AS COD_ADEGUATEZZA,
                'BF'   AS INTERMEDIARIO,
                 sum(h.ctv) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTERMEDIARIO,
				sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END ) over (partition by h.cod_fiscale, h.rete) AS PATRIMONIO_INTER_nocc_neg,
                H.EMITTENTE,
                H.COMPLEX AS COMPLESSITA,
                 sum(h.ctv) over (partition by h.cod_fiscale, H.rete, H.EMITTENTE)  AS PATRIMONIO_EMITTENTE,
                h.ctv as CONTROVALORE_PRODOTTO,
                CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB,
                K.classe  AS CREDITRISKCLASS,
                SUM( case when   STRTYPE = 'AZ' then  h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_AZIONARIO,
                SUM(case when   STRTYPE = 'OB' then  h.ctv  else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE, H.POSITION_ID) AS CTV_OBBLIGAZIONARIO,
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  h.ctv else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT,
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  h.ctv else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE)  PATRIM_AZ_OB_EMIT_INTER,
                sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO,
				sum(case when h.tipo_prodotto='CC' and h.ctv < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPL_nocc_neg,
				0 as concentrazione_emittente,
                0 AS  concentraz_emit_interm,
                r.copertura
      FROM C6MARTPERIODICO.PATRIMONIO_BF H
      LEFT OUTER join 
       C6MARTPERIODICO.RISCHIO_AGGREGATO    R  
       on
	    H.COD_FISCALE=R.COD_FISCALE
	   AND H.RETE=R.RETE  
	   AND r.COD_AGGREG = 
					((CASE 
						WHEN (h.NOME_PROGETTO IS NOT NULL)
							THEN 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' + h.NOME_PROGETTO+ '|'+ isnull(cast(H.ordinamento_progetto as varchar),'')+'|'
						ELSE
							CASE WHEN (h.ID_AREA = 'NA') THEN 'RISFIN|' + LEFT(h.ID_AREA,3) + '|' 
							ELSE 'RISFIN|PIRAMIDE|' + LEFT(h.ID_AREA,3) + '|' 
							END
					END)
			+ h.POSITION_ID) 
       left outer join 
       
       --select * from
       --C6MartPeriodico.CODIFICA_CREDITRISK K
       C6MartPeriodico.RISCHIOEMITTENTI K
       on 
       R.CREDITRISKEMIT=ORDINE

---- PATRIMONIO TERZI
UNION all

SELECT DISTINCT h.COD_FISCALE,
                h.RETE,
                '' AS POSITION_ID,
                H.COD_PRODOTTO AS CATALOGUENAME,
                '' as COD_ADEGUATEZZA,
                CASE
                  WHEN h.INTERMEDIARIO = 'BF' THEN
                   NULL
                  ELSE
                   h.INTERMEDIARIO
                END AS INTERMEDIARIO,
                sum(ROUND(h.CTV,2)) over (partition by h.cod_fiscale, h.rete, H.INTERMEDIARIO)  as PATRIMONIO_INTERMEDIARIO,
                sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else ROUND(h.CTV,2) END ) over (partition by h.cod_fiscale, h.rete, H.INTERMEDIARIO) AS PATRIMONIO_INTER_nocc_neg,
                h.EMITTENTE,
                h.complex as COMPLESSITA,
                0 AS PATRIMONIO_EMITTENTE,
                ROUND(h.CTV,2) as CONTROVALORE_PRODOTTO,
                CASE WHEN H.STRTYPE IN ('AZ', 'OB') THEN H.STRTYPE ELSE NULL END AS AZ_OB,
                K.classe  AS CREDITRISKCLASS,
                SUM( case when   STRTYPE = 'AZ' then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI) AS CTV_AZIONARIO,--aggiunto il cod_prodotto_terzi per identificare il singolo prodotto
                SUM(case when   STRTYPE = 'OB' then  h.ctv  else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE, H.EMITTENTE, H.intermediario, H.COD_PRODOTTO_TERZI ) AS CTV_OBBLIGAZIONARIO, --aggiunto il cod_prodotto_terzi per identificare il singolo prodotto
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COD_FISCALE,H.RETE,EMITTENTE) PATRIMONIO_AZ_OB_EMIT,
                SUM( case when   STRTYPE IN ( 'AZ','OB') then  ROUND(h.CTV,2) else 0 end ) OVER( PARTITION BY H.COd_FISCALE,H.RETE,EMITTENTE, h.intermediario )  PATRIM_AZ_OB_EMIT_INTER,
                sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete) as PATRIMONIO_COMPLESSIVO,
				sum(case when h.tipo_prodotto='CC' and ROUND(h.CTV,2) < 0 then 0 else h.ctv END) over (partition by h.cod_fiscale, h.rete, h.intermediario) as PATRIMONIO_COMPL_nocc_neg,
                0   as concentrazione_emittente,
                0   as concentraz_emit_interm,
                r.copertura
 FROM  
       C6MARTPERIODICO.PATRIMONIO_TERZI H
       LEFT OUTER JOIN
       C6MARTPERIODICO.RISCHIO_AGGREGATO    R  
       ON
        H.COD_FISCALE=R.COD_FISCALE
       AND H.RETE=R.RETE
       AND r.COD_AGGREG ='COMPLESSIVO|TERZI|' + RTRIM(H.INTERMEDIARIO) + '|' + RTRIM(H.chiave_thr)       
       LEFT OUTER join
       
	   C6Martperiodico.RISCHIOEMITTENTI K
        on 
       R.CREDITRISKEMIT=ORDINE
 WHERE 
   1=1 
   AND H.INTERMEDIARIO <> 'BF'
   --AND V.POSITIONID=H.COD_PRODOTTO
   
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_EMITTENTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_EMITTENTI_pre_selective'
		)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_IMMOBILIARE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_IMMOBILIARE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_IMMOBILIARE  
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[DESCRIZIONE]  
           ,[TIPOLOGIA]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[VALORE_STIMATO]  
           ,[AFFITTO]  
           ,[NOTE]  
           ,[DIV_RIFERIMENTO]  
           ,[CAMBIO]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT   
          
        --DISTINCT atringali 12012010  
  ALL_PATR_TERZI.RETE_PB AS RETE,  
  ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE,  
        CASE ALL_PATR_TERZI.TIPOLOGIA_RDESCR  
             WHEN 'Civil' THEN 'Civile'  
             WHEN 'Economic' THEN 'Economica'  
             WHEN 'Posh' THEN 'Signorile'  
             ELSE ''   
        END AS TIPOLOGIA,  
  ALL_PATR_TERZI.LOCALITA AS LOCALITA,  
  NULL AS PROVINCIA,  
  NULL AS CAP,  
  NULL AS NAZIONE,  
  ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE AS VALORE_STIMATO,  
  ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO,  
  NULL AS NOTE,  
  NULL AS DIV_RIFERIMENTO,  
  NULL AS CAMBIO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6StagingPeriodico.ALL_PATR_TERZI  
 WHERE   
  ALL_PATR_TERZI.CHIAVE_PR_31921 IS NOT NULL  
  AND ALL_PATR_TERZI.DESCRIZIONE_RDESCR IS NOT NULL   
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_IMMOBILIARE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_IMMOBILIARE'  
  )  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_IMMOBILIARE_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_IMMOBILIARE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_IMMOBILIARE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_IMMOBILIARE

	INSERT INTO [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE]
           ([RETE]
           ,[COD_FISCALE]
           ,[DESCRIZIONE]
           ,[TIPOLOGIA]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[VALORE_STIMATO]
           ,[AFFITTO]
           ,[NOTE]
           ,[DIV_RIFERIMENTO]
           ,[CAMBIO]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT 
        
        --DISTINCT atringali 12012010
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE,
        CASE ALL_PATR_TERZI.TIPOLOGIA_RDESCR
             WHEN 'Civil' THEN 'Civile'
             WHEN 'Economic' THEN 'Economica'
             WHEN 'Posh' THEN 'Signorile'
             ELSE '' 
        END AS TIPOLOGIA,
		ALL_PATR_TERZI.LOCALITA AS LOCALITA,
		NULL AS PROVINCIA,
		NULL AS CAP,
		NULL AS NAZIONE,
		ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE AS VALORE_STIMATO,
		ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO,
		NULL AS NOTE,
		NULL AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.ALL_PATR_TERZI
	WHERE 
		ALL_PATR_TERZI.CHIAVE_PR_31921 IS NOT NULL
		AND ALL_PATR_TERZI.DESCRIZIONE_RDESCR IS NOT NULL 

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_IMMOBILIARE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_IMMOBILIARE_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PATRIMONIO_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_TERZI  
  
 INSERT INTO C6MartPeriodico.[PATRIMONIO_TERZI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[NUM_POLIZZA]  
           ,[TIPO_POLIZZA]  
           ,[TIPO_PRODOTTO]  
           ,[TIPO_PRODOTTO2]  
           ,[COD_PRODOTTO]  
           ,[COD_PRODOTTO_TERZI]  
           ,[INTERMEDIARIO]  
           ,[DATA_SOTTOSCRIZIONE]  
           ,[DATA_SCADENZA]  
           ,[FREQ_RATA]  
           ,[DURATA_POLIZZA]  
           ,[PREMIO]  
           ,[ALIQUOTA]  
           ,[DATA_SOTT_FP]  
           ,[DATA_REGOLAMENTO]  
           ,[QUANTITA]  
           ,[PREZZO]  
           ,[CTV]  
           ,[VERSATO_NETTO]  
           ,[DIV_REGOLAMENTO]  
           ,[CAMBIO]  
           ,[DESCR_GRUPPO_PRODOTTO]  
           ,[STRTYPE]  
           ,[COMPLEX]  
           ,[EMITTENTE]  
           ,[CHIAVE_THR]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB]  
       
)  
  
 SELECT   
  ALL_PATR_TERZI.RETE_PB AS RETE,  
  ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  NULL AS NUM_POLIZZA,  
  ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE AS TIPO_POLIZZA,  
  --COALESCE(PRODOTTI_A_CATALOGO.TIPO_PRODOTTO, PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO) AS TIPO_PRODOTTO,     
  CASE  
   WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'  
    THEN 'Altro'  
   ELSE  
    COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1))   
  END AS TIPO_PRODOTTO,  
  PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO2 AS TIPO_PRODOTTO2,     
  ISNULL(ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO,'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,  
  ISNULL(ALL_PATR_TERZI.CHIAVE_THR,'PRODOTTO IN CATALOGO') AS COD_PRODOTTO_TERZI,  
  ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,  
    
  CASE   
   WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.PolizzeRivalutabili')  -- PRODOTTI S49  
    THEN ISNULL(ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ)  
   WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali') -- PRODOTTI S50  
    THEN ALL_PATR_TERZI.BALANCEDATE_DI_THR -- EQUIVALENTE A ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ  
   ELSE -- PRODOTTI S48  
    ALL_PATR_TERZI.DATA_INIZIO_INV  
  END    
 AS DATA_SOTTOSCRIZIONE,  
  ALL_PATR_TERZI.DATA_SCADENZA   
AS DATA_SCADENZA,  
  ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797A AS FREQ_RATA,  
  NULL AS DURATA_POLIZZA,  
  ALL_PATR_TERZI.PREMIO_VERSAMENTO AS PREMIO,  
  NULL AS ALIQUOTA,  
  ALL_PATR_TERZI.BALANCEDATE_DI_THR AS DATA_SOTT_FP,  
  NULL AS DATA_REGOLAMENTO,  
  NULL AS QUANTITA,  
  NULL AS PREZZO,  
  ALL_PATR_TERZI.PATRIMONIO_TERZI AS CTV,  
  ALL_PATR_TERZI.CAPITALE_INVESTITO AS VERSATO_NETTO,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS CAMBIO,  
  CASE   
   WHEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' THEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' THEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN (C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato'   
     AND ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))  
    THEN 'Prodotti di Tipo amministrato (escluso C/C)'  
   WHEN (C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')  
                   or (S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale'   
                     and  S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita'   
                     and S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))  
    THEN 'Assicurativi Unit/Index Linked'  
   WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other'  THEN 'Portafoglio Generico'  
   WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  THEN NULL  
   ELSE NULL   
  END AS DESCR_GRUPPO_PRODOTTO,  
        STRTYPE,  
        COMPLEX,  
        EMITTENTE,      
        ALL_PATR_TERZI.CHIAVE_THR,   
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
  
FROM   
  c6stagingperiodico.all_patr_terzi as ALL_PATR_TERZI--C6STAGINGPERIODICO.ALL_PATR_TERZI C6STAGINGPERIODICO.ALL_PATR_TERZI  
 INNER JOIN   
  C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3   
   ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA  
 LEFT JOIN (  
  SELECT DISTINCT   
   ALL_PATR_TERZI.CHIAVE_THR AS CHIAVE_THR,  
   COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO,  
   S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 AS TIPO_PRODOTTO2  
  FROM   
   c6stagingperiodico.all_patr_terzi as ALL_PATR_TERZI --C6STAGINGPERIODICO.ALL_PATR_TERZI  
  INNER JOIN   
   C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3   
    ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA  
  ) PRODOTTI_NON_A_CATALOGO   
   ON PRODOTTI_NON_A_CATALOGO.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_THR  
 LEFT JOIN (  
  SELECT   
   CATITEMREF.CATALOGUEID AS CATALOGUEID,  
   CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,  
            CATITEMREF.STRTYPE,  
            CATITEMREF.COMPLEX,  
            MIT.DESCR AS EMITTENTE  
  FROM   
   C6STAGINGPERIODICO.CATITEMREF  LEFT OUTER JOIN  
          C6STAGINGPERIODICO.EMIT MIT  
          ON MIT.CODEMI=CATITEMREF.CODEMI   
  ) PRODOTTI_A_CATALOGO   
   ON PRODOTTI_A_CATALOGO.CATALOGUEID = ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PATRIMONIO_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PATRIMONIO_TERZI'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PATRIMONIO_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_PATRIMONIO_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PATRIMONIO_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_TERZI

	INSERT INTO C6MartPeriodico.[PATRIMONIO_TERZI]
           ([RETE]
           ,[COD_FISCALE]
           ,[NUM_POLIZZA]
           ,[TIPO_POLIZZA]
           ,[TIPO_PRODOTTO]
           ,[TIPO_PRODOTTO2]
           ,[COD_PRODOTTO]
           ,[COD_PRODOTTO_TERZI]
           ,[INTERMEDIARIO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[DATA_SCADENZA]
           ,[FREQ_RATA]
           ,[DURATA_POLIZZA]
           ,[PREMIO]
           ,[ALIQUOTA]
           ,[DATA_SOTT_FP]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[VERSATO_NETTO]
           ,[DIV_REGOLAMENTO]
           ,[CAMBIO]
           ,[DESCR_GRUPPO_PRODOTTO]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
           ,[CHIAVE_THR]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
		   
)

	SELECT 
		ALL_PATR_TERZI.RETE_PB AS RETE,
		ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE AS TIPO_POLIZZA,
		--COALESCE(PRODOTTI_A_CATALOGO.TIPO_PRODOTTO, PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO) AS TIPO_PRODOTTO,   
		CASE
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other' AND S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 = 'Conti correnti'
				THEN 'Altro'
			ELSE
				COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) 
		END AS TIPO_PRODOTTO,
		PRODOTTI_NON_A_CATALOGO.TIPO_PRODOTTO2 AS TIPO_PRODOTTO2,   
		ISNULL(ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO,'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,
		ISNULL(ALL_PATR_TERZI.CHIAVE_THR,'PRODOTTO IN CATALOGO') AS COD_PRODOTTO_TERZI,
		ALL_PATR_TERZI.NOME_ISTITUTO AS INTERMEDIARIO,
		
		CASE 
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.PolizzeRivalutabili')		-- PRODOTTI S49
				THEN ISNULL(ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ)
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali')	-- PRODOTTI S50
				THEN ALL_PATR_TERZI.BALANCEDATE_DI_THR -- EQUIVALENTE A ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ
			ELSE	-- PRODOTTI S48
				ALL_PATR_TERZI.DATA_INIZIO_INV
		END  
 AS DATA_SOTTOSCRIZIONE,
		ALL_PATR_TERZI.DATA_SCADENZA 
AS DATA_SCADENZA,
		ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797A AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		ALL_PATR_TERZI.PREMIO_VERSAMENTO AS PREMIO,
		NULL AS ALIQUOTA,
		ALL_PATR_TERZI.BALANCEDATE_DI_THR AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,
		ALL_PATR_TERZI.PATRIMONIO_TERZI AS CTV,
		ALL_PATR_TERZI.CAPITALE_INVESTITO AS VERSATO_NETTO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' THEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' THEN C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
                   or (S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
                     and  S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
                     and S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO = 'Assets.FinancialAssets.Other'  THEN 'Portafoglio Generico'
			WHEN ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
        STRTYPE,
        COMPLEX,
        EMITTENTE,    
        ALL_PATR_TERZI.CHIAVE_THR, 
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB

FROM 
		c6stagingperiodico.all_patr_terzi as ALL_PATR_TERZI--C6STAGINGPERIODICO.ALL_PATR_TERZI C6STAGINGPERIODICO.ALL_PATR_TERZI
	INNER JOIN 
		C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3 
			ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
	LEFT JOIN (
		SELECT DISTINCT 
			ALL_PATR_TERZI.CHIAVE_THR AS CHIAVE_THR,
			COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO,
			S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 AS TIPO_PRODOTTO2
		FROM 
			c6stagingperiodico.all_patr_terzi as ALL_PATR_TERZI --C6STAGINGPERIODICO.ALL_PATR_TERZI
		INNER JOIN 
			C6STAGINGPERIODICO.S4_S5_S13_TRAD_UNTIL_LIV3 
				ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA
		) PRODOTTI_NON_A_CATALOGO 
			ON PRODOTTI_NON_A_CATALOGO.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_THR
	LEFT JOIN (
		SELECT 
			CATITEMREF.CATALOGUEID AS CATALOGUEID,
			CATITEMREF.TIPOPRODOTTO AS TIPO_PRODOTTO,
            CATITEMREF.STRTYPE,
            CATITEMREF.COMPLEX,
            MIT.DESCR AS EMITTENTE
		FROM 
			C6STAGINGPERIODICO.CATITEMREF  LEFT OUTER JOIN
          C6STAGINGPERIODICO.EMIT MIT
          ON MIT.CODEMI=CATITEMREF.CODEMI 
		) PRODOTTI_A_CATALOGO 
			ON PRODOTTI_A_CATALOGO.CATALOGUEID = ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PATRIMONIO_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PATRIMONIO_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_PIRAMIDE_MOD]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
   
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PIRAMIDE_MOD',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PIRAMIDE_MOD  
  
 INSERT INTO C6MartPeriodico.[PIRAMIDE_MOD]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[PERC_AREA]  
           ,[CTV_PROGETTO]  
           ,[CTV_AREA]  
           ,[ORIZZ_TEMP_NUM]  
           ,[ORIZZ_TEMP]  
           ,[CTV_TOTALE]  
           ,[STATO_CONSULENZA]  
           ,[DATA_STATO_CONS]  
           ,[DATA_MIGR_CONS]  
           ,[DATA_PIANIF]  
           ,[ID_CONTRATTO]  
     ,[ORDINAMENTO_PROGETTO]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
  SELECT   
  ALL_CF_PB.RETE_PB AS RETE,  
  ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,  
  CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,  
  PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,  
  PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,  
  PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,  
  PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,  
  CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,  
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,  
  C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,  
  NULL AS CTV_TOTALE,  
  CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,  
  ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO  
  CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,  
        PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,  
  NULL AS ID_CONTRATTO,  
        PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.ALL_CF_PB  
 INNER JOIN C6STAGINGPERIODICO.CONSUL   
  ON CONSUL.INSTID = ALL_CF_PB.RETE_PB  
  AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE  
  AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza' --'AttivaAggiornata'  
 INNER JOIN C6STAGINGPERIODICO.CONSAREA   
  ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$  
 INNER JOIN C6STAGINGPERIODICO.PRCONSUL   
  ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$  
 LEFT JOIN C6STAGINGPERIODICO.C_BO_453FB  
  ON C_BO_453FB.PK_PRC = PRCONSUL.OID$  
     -- WHERE C6STAGINGPERIODICO.ALL_CF_PB.CODICEFISCALE='PDRSRG35P16A794I'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PIRAMIDE_MOD' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_PIRAMIDE_MOD'  
  )  
  
END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PIRAMIDE_MOD_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_PIRAMIDE_MOD_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PIRAMIDE_MOD_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PIRAMIDE_MOD

	INSERT INTO C6MartPeriodico.[PIRAMIDE_MOD]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[PERC_AREA]
           ,[CTV_PROGETTO]
           ,[CTV_AREA]
           ,[ORIZZ_TEMP_NUM]
           ,[ORIZZ_TEMP]
           ,[CTV_TOTALE]
           ,[STATO_CONSULENZA]
           ,[DATA_STATO_CONS]
           ,[DATA_MIGR_CONS]
           ,[DATA_PIANIF]
           ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
		SELECT 
		ALL_CF_PB.RETE_PB AS RETE,
		ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		PRCONSUL.C_PROJECTNAM_11D1A AS NOME_PROGETTO,
		PRCONSUL.TYPE$_PROJEC_14674 AS TIPO_PROGETTO,
		PRCONSUL.C_PERCENTUAL_69019 AS PERC_AREA,
		PRCONSUL.C_PROJECTCTV_39520 AS CTV_PROGETTO,
		CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,
        C_BO_453FB.C_VALUE_7BD3C AS ORIZZ_TEMP_NUM,
		C_BO_453FB.C_DESCRIZION_93ABE AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		CONSUL.TYPE$_TIPOCO_1EA7C  AS STATO_CONSULENZA,
		ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		CONSUL.C_DATAMIGRAZ_BF705  AS DATA_MIGR_CONS,
        PRCONSUL.C_LASTMODIFI_3BF4A AS DATA_PIANIF,
		NULL AS ID_CONTRATTO,
        PRCONSUL.C_PROJECTIDM_1AF31 AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.ALL_CF_PB
	INNER JOIN C6STAGINGPERIODICO.CONSUL 
		ON CONSUL.INSTID = ALL_CF_PB.RETE_PB
		AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE
		AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza' --'AttivaAggiornata'
	INNER JOIN C6STAGINGPERIODICO.CONSAREA 
		ON CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$
	INNER JOIN C6STAGINGPERIODICO.PRCONSUL 
		ON PRCONSUL.F_PCONSULENZ_B69E4 = CONSAREA.OID$
	LEFT JOIN C6STAGINGPERIODICO.C_BO_453FB
		ON C_BO_453FB.PK_PRC = PRCONSUL.OID$
     -- WHERE C6STAGINGPERIODICO.ALL_CF_PB.CODICEFISCALE='PDRSRG35P16A794I'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_MOD_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_MOD_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 25/11/2008
-- Description:	Modificate le tabelle da cui pescare i dati (non più la all_pos_cons_cat)
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_PIRAMIDE_VERT]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()
	SET @TIPO_ELAB = [C6MartPeriodico].GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PIRAMIDE_VERT',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[PIRAMIDE_VERT]

	INSERT INTO [C6MartPeriodico].[PIRAMIDE_VERT]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[CTV_AREA]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		ALL_CF_PB.RETE_PB AS RETE,
		ALL_CF_PB.CODICE_FISCALE AS COD_FISCALE,
		CONSAREA.C_NEEDAREA_V_46360 AS ID_AREA,
		CONSAREA.C_CTVNEEDARE_EA4FB AS CTV_AREA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6StagingPeriodico.ALL_CF_PB
	INNER JOIN 
		C6StagingPeriodico.CONSUL 
		ON 
			CONSUL.INSTID = ALL_CF_PB.RETE_PB
			AND CONSUL.ADBKID = ALL_CF_PB.CODICEFISCALE
			AND CONSUL.TYPE$_TIPOCO_1EA7C = 'Bozza'  --'AttivaAggiornata'
	INNER JOIN 
		C6StagingPeriodico.CONSAREA 
		ON 
			CONSAREA.F_PCONSULENZ_7FBE3 = CONSUL.OID$

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_VERT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_VERT'
		)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_POPOLAMENTO_AM_OperazioniUltimoTrimestre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[DM_POPOLAMENTO_AM_OperazioniUltimoTrimestre]

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

-- storicizzare le operazione dell'ultimo trimestre prima di troncare la tabella


 --troncare la tabella esistente 

truncate table [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre

-- step propedeutici al popolamento della tabella svuotata

select sca.rete,sca.codfis, sca.NumeroContratto, sca.Contratto, sca.ImportoOperazione, sca.Operazione, sca.DataOperazione, sca.FirmaDigitale
into #propedeutica
from 
(
select 
a.rete,
case 
when isnull(a.codman,'') = '' then a.codfis
when a.codman <> '' then 'FF@'+ a.codman
end as codfis,
a.codconf as NumeroContratto, 
a.DESPROD as Contratto, 
a.IMPORTO as ImportoOperazione, 
a.DESCAU as Operazione, 
substring(cast(a.DTOPE as varchar),7,2) + '/'+ substring(cast(a.DTope as varchar),5,2) + '/' + substring(cast(a.Dtope as varchar),1,4) as DataOperazione,
w.descrizione_report as FirmaDigitale
from c6stagingPeriodico.w6aput AS a
inner join [dbo].[W6APUT_AnaFirma] as w
on a.firma = w.firma
where a.dttrim = (select max(dttrim) from c6stagingPeriodico.w6aput)
--AND @datacongelamento
) sca


--- aggiunta del CF e rete per entrare nella SP successiva

insert into [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre
SELECT RETE, 
	codfis AS CodiceFiscale
	,DataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,ImportoOperazione
	,FirmaDigitale
FROM #propedeutica 
order by rete,codicefiscale, CONVERT(DATETIME, DataOperazione, 103)


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_POPOLAMENTO_AM_OperazioniUltimoTrimestre_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [C6MartPeriodico].[DM_POPOLAMENTO_AM_OperazioniUltimoTrimestre_old]

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

-- settaggio variabili del trimestre

declare @datacongelamento as datetime
declare @dataInizioTrimestre as datetime

set @datacongelamento = C6MartPeriodico.getDataCongelamento()

set @dataInizioTrimestre = DATEADD(m,-3,DATEADD(mm, DATEDIFF(m,0,@datacongelamento), 0))

--print @datacongelamento
--print @dataInizioTrimestre

-- storicizzare le operazione dell'ultimo trimestre prima di troncare la tabella


 --troncare la tabella esistente 

truncate table [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre

-- step propedeutici al popolamento della tabella svuotata

select a.NumeroContratto, a.chiaveclientepb, a.Contratto, a.ImportoOperazione, a.Operazione, a.DataOperazione, a.FirmaDigitale
into #propedeutica
from 
(
SELECT 
	distinct pospro.codConf as NumeroContratto
	,pos.chiaveclientepb
	,pn.descrizione as Contratto
	--,dop.investi
	--,dop.disinvesti
	,isnull(dop.investi, (dop.disinvesti * - 1)) as ImportoOperazione
	,dto.descrizione as Operazione
	,Convert(VARCHAR, dop.dtAggiornamento, 103) AS DataOperazione
	--, null as Firma
	,CASE
	WHEN sca.WSMOV_FIRMA_DIGITALE = 'G' then 'Grafometrica'
    WHEN sca.WSMOV_FIRMA_DIGITALE = 'N' then 'Olografa'
       WHEN sca.WSMOV_FIRMA_DIGITALE = 'S' then 'Elettronica'
       ELSE 'Olografa'
	END AS FirmaDigitale
FROM Consuni_Periodico.ConsulenzaUnica.dbo.ST_DettaglioOperazione dop
LEFT JOIN Consuni.ConsulenzaUnica.dbo.PosizioniProposta pospro ON dop.chiavePosizionePro = pospro.chiavePosizionePro
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.DTipoOperazione dto ON  dto.codTipoOperazione = dop.codTipoOperazione
LEFT JOIN Consuni.CatalogoProdotti.dbo.ProdottiNucleo pn ON pn.codinterno = substring(pospro.codConf, 7, 2)
LEFT JOIN Consuni.CatalogoProdotti.dbo.CatalogoProdotti cat ON --posport.chiaveProdotto = cat.ChiaveProdotto AND
CAT.CODINTERNO = PN.codinterno AND pn.tipoprodotto = cat.tipoprodotto
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.Proposta pos ON pos.chiaveProposta = dop.chiaveProposta
--LEFT JOIN (SELECT cod_fiscale+rete from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]) rp ON rp.chiaveclientePB = pos.chiaveclientePB
--LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.vInfoCliente vi ON vi.chiavePB = pos.chiaveClientePB
--LEFT JOIN WSMOV_CONTRATTO_scarico sca ON sca.WSMOV_CONTRATTO = posport.codConf
LEFT JOIN (select wsmov_data_eseguito,WSMOV_FIRMA_DIGITALE,wsmov_contratto, wsmov_operazione from [C6StagingPeriodico].WSMOV_CONTRATTO_SCARICO 
	where CONVERT(DATETIME, CONVERT(VARCHAR, wsmov_data_eseguito, 103),103) --between 
>= @dataInizioTrimestre 
--AND @datacongelamento
) sca 
	ON sca.wsmov_contratto = pospro.codConf 
	AND substring(dop.codTipoOperazione, 1, 1) = sca.wsmov_operazione
WHERE dop.chiaveProposta-- = '32255229'
IN (select chiaveProposta from Consuni_Periodico.ConsulenzaUnica.dbo.Proposta where chiaveclientepb in (select distinct chiaveclientepb from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport])
AND status not in ('VA', 'EX', 'BO'))
AND pospro.chiavePosizionePro <> '0'
AND dop.dtAggiornamento between @dataInizioTrimestre AND @datacongelamento


	 union all

SELECT 
	distinct posport.codConf as NumeroContratto
	,pos.chiaveclientepb
	,pn.descrizione as Contratto
	--,dop.investi
	--,dop.disinvesti
	,isnull(dop.investi, (dop.disinvesti * - 1)) as ImportoOperazione
	,dto.descrizione as Operazione
	,Convert(VARCHAR, dop.dtAggiornamento, 103) AS DataOperazione
	--, null as Firma
	,CASE
	WHEN sca.WSMOV_FIRMA_DIGITALE = 'G' then 'Grafometrica'
    WHEN sca.WSMOV_FIRMA_DIGITALE = 'N' then 'Olografa'
       WHEN sca.WSMOV_FIRMA_DIGITALE = 'S' then 'Elettronica'
       ELSE 'Olografa'
	END AS FirmaDigitale
FROM Consuni_Periodico.ConsulenzaUnica.dbo.ST_DettaglioOperazione dop
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.PosizioniPortafoglio posport ON dop.chiavePosizionePtf = posport.chiavePosizionePtf
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.DTipoOperazione dto ON  dto.codTipoOperazione = dop.codTipoOperazione
LEFT JOIN Consuni.CatalogoProdotti.dbo.ProdottiNucleo pn ON pn.codinterno = substring(posport.codConf, 7, 2)
LEFT JOIN Consuni.CatalogoProdotti.dbo.CatalogoProdotti cat ON --posport.chiaveProdotto = cat.ChiaveProdotto AND
CAT.CODINTERNO = PN.codinterno AND pn.tipoprodotto = cat.tipoprodotto
LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.Proposta pos ON pos.chiaveProposta = dop.chiaveProposta
--LEFT JOIN (SELECT cod_fiscale+rete from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]) rp ON rp.chiaveclientePB = pos.chiaveclientePB
--LEFT JOIN Consuni_Periodico.ConsulenzaUnica.dbo.vInfoCliente vi ON vi.chiavePB = pos.chiaveClientePB
--LEFT JOIN WSMOV_CONTRATTO_scarico sca ON sca.WSMOV_CONTRATTO = posport.codConf
LEFT JOIN (select wsmov_data_eseguito,WSMOV_FIRMA_DIGITALE,wsmov_contratto, wsmov_operazione from [C6StagingPeriodico].WSMOV_CONTRATTO_SCARICO 
	where CONVERT(DATETIME, CONVERT(VARCHAR, wsmov_data_eseguito, 103),103) --between 
>= @dataInizioTrimestre --AND @datacongelamento
) sca 
	ON sca.wsmov_contratto = posport.codConf 
	AND substring(dop.codTipoOperazione, 1, 1) = sca.wsmov_operazione
WHERE dop.chiaveProposta-- = '32255229'
in (select chiaveProposta from Consuni_Periodico.ConsulenzaUnica.dbo.Proposta where chiaveclientepb in (select distinct chiaveclientepb from [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport])
AND status not in ('VA', 'EX', 'BO'))
and posport.chiavePosizionePtf <> '0'
AND dop.dtAggiornamento between @dataInizioTrimestre AND @datacongelamento
--AND CODCONF = '29838895201'
) a


-- appiattire e raggruppare per la somma delle operazioni

SELECT ChiaveclientePB
	,DataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,SUM(ImportoOperazione) as ImportoOperazione
	,FirmaDigitale
into #propedeutica_raggruppata
FROM #propedeutica
GROUP BY ChiaveclientePB 
	,dataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,FirmaDigitale
ORDER BY CONVERT(DATETIME, DataOperazione, 103)


--- aggiunta del CF e rete per entrare nella SP successiva

insert into [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre
SELECT RP.RETE, 
	RP.cod_fiscale AS CodiceFiscale
	,DataOperazione
	,Contratto
	,NumeroContratto
	,Operazione
	,ImportoOperazione
	,FirmaDigitale
FROM #propedeutica_raggruppata TEMP 
INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] RP
ON RP.CHIAVECLIENTEPB = TEMP.CHIAVECLIENTEPB
order by rete, codicefiscale, CONVERT(DATETIME, DataOperazione, 103)


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PROVENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
CREATE procedure [C6MartPeriodico].[DM_PROVENTI]  
AS  
BEGIN  
    
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
    DECLARE @DTMAX INT    
     
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
 SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEIPR  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PROVENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
     
 TRUNCATE TABLE [C6MartPeriodico].[PROVENTI]  
--select * from [C6MartPeriodico].[PROVENTI]  
 INSERT INTO [C6MartPeriodico].[PROVENTI] (   
  WSEIPR.RETE,   
  DTTRIM,   
  COD_FISCALE,  
        COD_INTERNO ,   
  COD_SOTTOPRODOTTO ,  
  DESPROD  ,  
  DTRIFE,  
  TIPMOV,  
  IMPORTO    
 )  
 SELECT  
  WSEIPR.RETE,   
  convert(datetime,convert(varchar,WSEIPR.[DTTRIM]),100) as [DT_TRIM],   
  WSEIPR.CODFIS,  
        COD_INTERNO = CASE  
  -- WHEN WSEIPR.FAMPROD <> 'DT' THEN WSEIPR.CODPROD           
  -- ELSE WSEIPR.CODABI                          
   WHEN LTRIM(RTRIM(isnull(WSEIPR.CODABI,''))) = '' THEN WSEIPR.CODPROD           
   ELSE LTRIM(RTRIM(WSEIPR.CODABI))                        
        END,   
  COD_SOTTOPRODOTTO = CASE     
   WHEN LTRIM(RTRIM(isnull(WSEIPR.SUBPROD,''))) = '' THEN ''          
   ELSE LTRIM(RTRIM(WSEIPR.SUBPROD))  
  END,  
  --[C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,  
  [C6MartPeriodico].[getDESPRODCAT]  
  (CASE  
   WHEN LTRIM(RTRIM(isnull(WSEIPR.CODABI,''))) = '' THEN WSEIPR.CODPROD           
   ELSE LTRIM(RTRIM(WSEIPR.CODABI))                         
        END,  
        CASE     
   WHEN LTRIM(RTRIM(isnull(WSEIPR.SUBPROD,''))) = '' THEN NULL        
   ELSE LTRIM(RTRIM(WSEIPR.SUBPROD))  
  END) as DESPROD  ,  
  convert(datetime,convert(varchar,WSEIPR.[DTRIFE]),100) as DTRIFE,    
  WSEIPR.TIPMOV,  
  WSEIPR.IMPORTO     
 FROM  c6StagingPeriodico.WSEIPR  WSEIPR  
 WHERE   
   WSEIPR.[DTTRIM] = @DTMAX   
   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PROVENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_PROVENTI'  
  )  
  
-- FC 22/01/2014  
-- Verifica e scarto prodotti   
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
       SELECT a.RETE, a.COD_FISCALE, 'PROVENTI.DESPROD IS NULL'   
   FROM [C6MartPeriodico].[PROVENTI] a --WHERE ISNULL(DesProd,'') =''  
    INNER JOIN c6stagingperiodico.appo_contratti_v b  
    on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and b.tip_contratto=2   
    WHERE ISNULL(DesProd,'') =''  
  
END  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_PROVENTI_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [C6MartPeriodico].[DM_PROVENTI_pre_selective]
AS
BEGIN
	 
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    DECLARE @DTMAX INT  
   
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()
	SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEIPR

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_PROVENTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
 		
	TRUNCATE TABLE [C6MartPeriodico].[PROVENTI]
--select * from [C6MartPeriodico].[PROVENTI]
	INSERT INTO [C6MartPeriodico].[PROVENTI] ( 
		WSEIPR.RETE,	
		DTTRIM,	
		COD_FISCALE,
        COD_INTERNO , 
		COD_SOTTOPRODOTTO ,
		DESPROD  ,
		DTRIFE,
		TIPMOV,
		IMPORTO 	
	)
	SELECT
		WSEIPR.RETE,	
		convert(datetime,convert(varchar,WSEIPR.[DTTRIM]),100) as [DT_TRIM],	
		WSEIPR.CODFIS,
        COD_INTERNO = CASE
		--	WHEN WSEIPR.FAMPROD <> 'DT' THEN WSEIPR.CODPROD								 
		--	ELSE WSEIPR.CODABI  		                   	
			WHEN LTRIM(RTRIM(isnull(WSEIPR.CODABI,''))) = '' THEN WSEIPR.CODPROD								 
			ELSE LTRIM(RTRIM(WSEIPR.CODABI))		                   	
        END, 
		COD_SOTTOPRODOTTO = CASE 		
			WHEN LTRIM(RTRIM(isnull(WSEIPR.SUBPROD,''))) = '' THEN ''  					 
			ELSE LTRIM(RTRIM(WSEIPR.SUBPROD))
		END,
		--[C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,
		[C6MartPeriodico].[getDESPRODCAT]
		(CASE
			WHEN LTRIM(RTRIM(isnull(WSEIPR.CODABI,''))) = '' THEN WSEIPR.CODPROD								 
			ELSE LTRIM(RTRIM(WSEIPR.CODABI)) 		                   	
        END,
        CASE 		
			WHEN LTRIM(RTRIM(isnull(WSEIPR.SUBPROD,''))) = '' THEN NULL					 
			ELSE LTRIM(RTRIM(WSEIPR.SUBPROD))
		END) as DESPROD  ,
		convert(datetime,convert(varchar,WSEIPR.[DTRIFE]),100) as DTRIFE,	 
		WSEIPR.TIPMOV,
		WSEIPR.IMPORTO 		
	FROM  c6StagingPeriodico.WSEIPR  WSEIPR
	WHERE 
	  WSEIPR.[DTTRIM] = @DTMAX 
 


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PROVENTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PROVENTI_pre_selective'
		)

-- FC 22/01/2014
-- Verifica e scarto prodotti 
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
	      SELECT a.RETE, a.COD_FISCALE, 'PROVENTI.DESPROD IS NULL' 
			FROM [C6MartPeriodico].[PROVENTI] a --WHERE ISNULL(DesProd,'') =''
		  INNER JOIN c6stagingperiodico.appo_contratti b
		  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and b.tip_contratto=2 
		  WHERE ISNULL(DesProd,'') =''

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_RISCHIO_AGGREGATO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO  
   
 INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(  
  RETE,  
  COD_FISCALE,  
  COD_AGGREG,  
  VAR_ASSOLUTO_PTF,  
  VAR_PERC_PTF,  
  CVAR_ASSOLUTO_PTF,  
  CVAR_PERC_PTF,  
  MCVAR,  
  MCVARP,  
  BENEFICIO,  
  COPERTURA,  
  CTV_AGGREG,  
  ID_ELAB,  
  TIPO_ELAB,  
  CREDITRISK,  
  Ully_perc,  
  CREDITRISKEMIT  
 )  
 SELECT   
  PROMETEIA_AGGR.RETE AS RETE,  
  PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,  
  PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,  
  ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,  
  case when PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO >= 99.99 then 99.99
  when PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO <= 0.0 then 0.0 
  else CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) end AS CVAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,  
  CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,  
  -- Modifica del 27/6/2018 - per errore cast
     --CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,  
	 CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(12,3)) AS BENEFICIO,
  -- fine Modifica del 27/6/2018 


  CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,  
  CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  
  C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,  
  CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,  
  c6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT  
 FROM   
  C6martPERIODICO.brsvarallaggr PROMETEIA_AGGR  
  
--begin transaction  
update c6martperiodico.rischio_aggregato  
set copertura = 100  
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'  
and CTV_AGGREG = 0  
--commit  
--and cod_fiscale= 'TRPDRA75D15A794T'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_RISCHIO_AGGREGATO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_RISCHIO_AGGREGATO'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_20180627_preNewInd]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_20180627_preNewInd]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_RISCHIO_AGGREGATO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO  
   
 INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(  
  RETE,  
  COD_FISCALE,  
  COD_AGGREG,  
  VAR_ASSOLUTO_PTF,  
  VAR_PERC_PTF,  
  CVAR_ASSOLUTO_PTF,  
  CVAR_PERC_PTF,  
  MCVAR,  
  MCVARP,  
  BENEFICIO,  
  COPERTURA,  
  CTV_AGGREG,  
  ID_ELAB,  
  TIPO_ELAB,  
  CREDITRISK,  
  Ully_perc,  
  CREDITRISKEMIT  
 )  
 SELECT   
  PROMETEIA_AGGR.RETE AS RETE,  
  PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,  
  PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,  
  ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,  
  CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,  
  CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,  
  CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,  
  CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  
  C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,  
  CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,  
  c6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT  
 FROM   
  C6STAGINGPERIODICO.PROMETEIA_AGGR  
  
--begin transaction  
update c6martperiodico.rischio_aggregato  
set copertura = 100  
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'  
and CTV_AGGREG = 0  
--commit  
--and cod_fiscale= 'TRPDRA75D15A794T'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_RISCHIO_AGGREGATO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_RISCHIO_AGGREGATO'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_old]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO
	
	INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc		
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
		CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(10,2)) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC		
	FROM 
		C6STAGINGPERIODICO.PROMETEIA_AGGR

--begin transaction
update c6martperiodico.rischio_aggregato
set copertura = 100
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'
and CTV_AGGREG = 0
--commit
--and cod_fiscale= 'TRPDRA75D15A794T'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO'
		)

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_OLD2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_OLD2]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO
	
	INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc,
		CREDITRISKEMIT
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
		CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(10,2)) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		--CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,
		--V il CC deve avere sempre copertura = 100
		CASE 
			WHEN PORTAFOGLIO = 'COMPLESSIVO|BF|CC' THEN 100
			ELSE CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) 
		END AS COPERTURA,
		--CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(10,2)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,
		--nuovo
		C6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISK_EMIT
	FROM 
		C6STAGINGPERIODICO.PROMETEIA_AGGR

--begin transaction
update c6martperiodico.rischio_aggregato
set copertura = 100
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'
and CTV_AGGREG = 0
--commit
--and cod_fiscale= 'TRPDRA75D15A794T'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO
	
	INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc,
		CREDITRISKEMIT
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,
		c6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT
	FROM 
		C6martPERIODICO.brsvarallaggr PROMETEIA_AGGR

--begin transaction
update c6martperiodico.rischio_aggregato
set copertura = 100
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'
and CTV_AGGREG = 0
--commit
--and cod_fiscale= 'TRPDRA75D15A794T'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_pre_selective_preAladdin]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_pre_selective_preAladdin]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_RISCHIO_AGGREGATO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO
	
	INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(
		RETE,
		COD_FISCALE,
		COD_AGGREG,
		VAR_ASSOLUTO_PTF,
		VAR_PERC_PTF,
		CVAR_ASSOLUTO_PTF,
		CVAR_PERC_PTF,
		MCVAR,
		MCVARP,
		BENEFICIO,
		COPERTURA,
		CTV_AGGREG,
		ID_ELAB,
		TIPO_ELAB,
		CREDITRISK,
		Ully_perc,
		CREDITRISKEMIT
	)
	SELECT 
		PROMETEIA_AGGR.RETE AS RETE,
		PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,
		PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,
		ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,
		CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,
		ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,
		CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,
		CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,
		CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,
		CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,
		CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,
		c6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT
	FROM 
		C6STAGINGPERIODICO.PROMETEIA_AGGR

--begin transaction
update c6martperiodico.rischio_aggregato
set copertura = 100
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'
and CTV_AGGREG = 0
--commit
--and cod_fiscale= 'TRPDRA75D15A794T'

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_RISCHIO_AGGREGATO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_RISCHIO_AGGREGATO_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_preAladdin]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[DM_RISCHIO_AGGREGATO_preAladdin]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_RISCHIO_AGGREGATO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.RISCHIO_AGGREGATO  
   
 INSERT INTO C6MartPeriodico.RISCHIO_AGGREGATO(  
  RETE,  
  COD_FISCALE,  
  COD_AGGREG,  
  VAR_ASSOLUTO_PTF,  
  VAR_PERC_PTF,  
  CVAR_ASSOLUTO_PTF,  
  CVAR_PERC_PTF,  
  MCVAR,  
  MCVARP,  
  BENEFICIO,  
  COPERTURA,  
  CTV_AGGREG,  
  ID_ELAB,  
  TIPO_ELAB,  
  CREDITRISK,  
  Ully_perc,  
  CREDITRISKEMIT  
 )  
 SELECT   
  PROMETEIA_AGGR.RETE AS RETE,  
  PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,  
  PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,  
  ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,  
  CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP,  
  -- Modifica del 27/6/2018 - per errore cast
     --CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO,  
	 CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(12,3)) AS BENEFICIO,
  -- fine Modifica del 27/6/2018 


  CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,  
  CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  
  C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,  
  CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,  
  c6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT  
 FROM   
  C6STAGINGPERIODICO.PROMETEIA_AGGR  
  
--begin transaction  
update c6martperiodico.rischio_aggregato  
set copertura = 100  
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'  
and CTV_AGGREG = 0  
--commit  
--and cod_fiscale= 'TRPDRA75D15A794T'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_RISCHIO_AGGREGATO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_RISCHIO_AGGREGATO'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_RISCHIOEMITTENTI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_RISCHIOEMITTENTI]
as
begin 

truncate table C6MARTperiodico.[RischioEmittenti]
INSERT INTO [C6StampeCentralizzate].C6MARTperiodico.[RischioEmittenti]
           ([Classe]
           ,[Min]
           ,[Max]
           ,[Ordine])
	SELECT [Classe]
		  ,[MinVal]
		  ,[MaxVal]
		  ,[Ordine]
	 FROM [C6StampeCentralizzate].[C6Stagingperiodico].[RiskEmit]
end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_SCADENZE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[DM_SCADENZE]  
AS  
BEGIN  
    
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
    DECLARE @DTMAX INT      
     
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
   
 SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEISC  
   
   
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_SCADENZE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
     
 TRUNCATE TABLE [C6MartPeriodico].[SCADENZE]  
--select * from [C6MartPeriodico].[[SCADENZE]]  
 INSERT INTO [C6MartPeriodico].[SCADENZE] (   
  WSEIPR.RETE,   
  DTTRIM,   
  COD_FISCALE,  
        COD_INTERNO ,   
  COD_SOTTOPRODOTTO,  
  DESPROD,  
  DTSCAD,  
  TIPMOV    
 )  
 SELECT  
  WSEISC.RETE,   
  convert(datetime,convert(varchar,WSEISC.[DTTRIM]),100) as [DT_TRIM],   
  WSEISC.CODFIS,  
        COD_INTERNO = CASE  
  -- WHEN WSEISC.FAMPROD <> 'DT' THEN WSEISC.CODPROD           
  -- ELSE WSEISC.CODABI                          
   WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD           
   ELSE LTRIM(RTRIM(WSEISC.CODABI))                         
        END,   
  COD_SOTTOPRODOTTO = CASE     
   WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN ''          
   ELSE LTRIM(RTRIM(WSEISC.SUBPROD))  
  END,  
  -- [C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,  
  [C6MartPeriodico].[getDESPRODCAT]  
  (CASE  
   WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD           
   ELSE LTRIM(RTRIM(WSEISC.CODABI))                          
        END,  
        CASE     
   WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN NULL          
   ELSE LTRIM(RTRIM(WSEISC.SUBPROD))  
  END) as DESPROD  ,     
  convert(datetime,convert(varchar,WSEISC.DTSCAD),100) as DTSCAD,          
       WSEISC.TIPMOV        
 FROM  c6StagingPeriodico.WSEISC  WSEISC  
  -- modifica del 28/4/2017 per s&m selective 
		 inner join c6StagingPeriodico.appo_contratti_v appo
		on wseisc.rete = appo.rete and
		   wseisc.codfis = appo.cod_fiscale
 --fine modifica del 28/4/2017 per s&m selective 
 WHERE   
   WSEISC.[DTTRIM] = @DTMAX  
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_SCADENZE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_SCADENZE'  
  )  
  
-- FC 22/01/2014  
-- Verifica e scarto prodotti   
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
       SELECT RETE, COD_FISCALE, 'SCADENZE.DESPROD IS NULL'   
   FROM [C6MartPeriodico].[SCADENZE] WHERE ISNULL(DesProd,'') =''   
  
  
END  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_SCADENZE_pre_selective]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[DM_SCADENZE_pre_selective]
AS
BEGIN
	 
	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
    DECLARE @DTMAX INT    
   
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()
	
	SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEISC
	
	
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_SCADENZE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
 		
	TRUNCATE TABLE [C6MartPeriodico].[SCADENZE]
--select * from [C6MartPeriodico].[[SCADENZE]]
	INSERT INTO [C6MartPeriodico].[SCADENZE] ( 
		WSEIPR.RETE,	
		DTTRIM,	
		COD_FISCALE,
        COD_INTERNO , 
		COD_SOTTOPRODOTTO,
		DESPROD,
		DTSCAD,
		TIPMOV 	
	)
	SELECT
		WSEISC.RETE,	
		convert(datetime,convert(varchar,WSEISC.[DTTRIM]),100) as [DT_TRIM],	
		WSEISC.CODFIS,
        COD_INTERNO = CASE
		--	WHEN WSEISC.FAMPROD <> 'DT' THEN WSEISC.CODPROD								 
		--	ELSE WSEISC.CODABI  		                   	
			WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD								 
			ELSE LTRIM(RTRIM(WSEISC.CODABI)) 		                   	
        END, 
		COD_SOTTOPRODOTTO = CASE 		
			WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN ''  					 
			ELSE LTRIM(RTRIM(WSEISC.SUBPROD))
		END,
		-- [C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,
		[C6MartPeriodico].[getDESPRODCAT]
		(CASE
			WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD								 
			ELSE LTRIM(RTRIM(WSEISC.CODABI))  		                   	
        END,
        CASE 		
			WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN NULL  					 
			ELSE LTRIM(RTRIM(WSEISC.SUBPROD))
		END) as DESPROD  ,		 
		convert(datetime,convert(varchar,WSEISC.DTSCAD),100) as DTSCAD,	 		 		 
  	    WSEISC.TIPMOV 			 	
	FROM  c6StagingPeriodico.WSEISC  WSEISC
	WHERE 
	  WSEISC.[DTTRIM] = @DTMAX
 
 
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_SCADENZE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_SCADENZE_pre_selective'
		)

-- FC 22/01/2014
-- Verifica e scarto prodotti 
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
	      SELECT RETE, COD_FISCALE, 'SCADENZE.DESPROD IS NULL' 
			FROM [C6MartPeriodico].[SCADENZE] WHERE ISNULL(DesProd,'') ='' 


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_SCADENZE_pre_selective_luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[DM_SCADENZE_pre_selective_luca]  
AS  
BEGIN  
    
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
    DECLARE @DTMAX INT      
     
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
   
 SELECT  @DTMAX = ISNULL(MAX(DTTRIM),0) FROM c6StagingPeriodico.WSEISC  
   
   
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_SCADENZE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
     
 TRUNCATE TABLE [C6MartPeriodico].[SCADENZE]  
--select * from [C6MartPeriodico].[[SCADENZE]]  
 INSERT INTO [C6MartPeriodico].[SCADENZE] (   
  WSEIPR.RETE,   
  DTTRIM,   
  COD_FISCALE,  
        COD_INTERNO ,   
  COD_SOTTOPRODOTTO,  
  DESPROD,  
  DTSCAD,  
  TIPMOV    
 )  
 SELECT  
  WSEISC.RETE,   
  convert(datetime,convert(varchar,WSEISC.[DTTRIM]),100) as [DT_TRIM],   
  WSEISC.CODFIS,  
        COD_INTERNO = CASE  
  -- WHEN WSEISC.FAMPROD <> 'DT' THEN WSEISC.CODPROD           
  -- ELSE WSEISC.CODABI                          
   WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD           
   ELSE LTRIM(RTRIM(WSEISC.CODABI))                         
        END,   
  COD_SOTTOPRODOTTO = CASE     
   WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN ''          
   ELSE LTRIM(RTRIM(WSEISC.SUBPROD))  
  END,  
  -- [C6MartPeriodico].[getDESPRODCAT](CODPROD,SUBPROD) as DESPROD  ,  
  [C6MartPeriodico].[getDESPRODCAT]  
  (CASE  
   WHEN LTRIM(RTRIM(isnull(WSEISC.CODABI,''))) = '' THEN WSEISC.CODPROD           
   ELSE LTRIM(RTRIM(WSEISC.CODABI))                          
        END,  
        CASE     
   WHEN LTRIM(RTRIM(isnull(WSEISC.SUBPROD,''))) = '' THEN NULL          
   ELSE LTRIM(RTRIM(WSEISC.SUBPROD))  
  END) as DESPROD  ,     
  convert(datetime,convert(varchar,WSEISC.DTSCAD),100) as DTSCAD,          
       WSEISC.TIPMOV        
 FROM  c6StagingPeriodico.WSEISC  WSEISC  
 WHERE   
   WSEISC.[DTTRIM] = @DTMAX  
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_SCADENZE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'DM_SCADENZE'  
  )  
  
-- FC 22/01/2014  
-- Verifica e scarto prodotti   
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
       SELECT RETE, COD_FISCALE, 'SCADENZE.DESPROD IS NULL'   
   FROM [C6MartPeriodico].[SCADENZE] WHERE ISNULL(DesProd,'') =''   
  
  
END  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_STORICO_CAPPROT_FVI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
-- =============================================  
-- Description: <La sp legge i dati, rispettivamente, dalle seguenti tb (scaricate da DB2):   
-- C6StagingPeriodico.WSEILP e C6StagingPeriodico.WSEICS, e con tali dati popola la tb dbo.C6MartPeriodico.STORICO_CAPPROT_FVI  
-- =============================================  

  
--[C6MartPeriodico].[DM_STORICO_CAPPROT_FVI]
CREATE procedure [C6MartPeriodico].[DM_STORICO_CAPPROT_FVI]
   
  
  
AS  
BEGIN  
  
SET NOCOUNT ON;  
  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_STORICO_CAPPROT_FVI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
    
 TRUNCATE TABLE C6MartPeriodico.STORICO_CAPPROT_FVI  
  
 INSERT INTO C6MartPeriodico.STORICO_CAPPROT_FVI 
 (
[RETE],
[CODFIS],
[CODPROD],
[CODLINEA],
[COD_CONF],
[DTSOTTOS],
[DTRIFE],
[DTTRIM],
[CTV],
[CTVPROT],
[CTVMON]
 )  
		 select   
		lp.rete,
		lp.codfis,
		lp.codprod,
		lp.codlinea,
		lp.codconf,
		cs.dtsottos,
		lp.dtrife,
		lp.dttrim,
		lp.ctv,
		lp.[ctv_prot],
		lp.ctvmon

 
		 from c6stagingperiodico.wseilp lp
		 join
		c6stagingperiodico.wseics cs
		on lp.rete=cs.rete and lp.codfis = cs.codfis and lp.codlinea = cs.subprod and lp.codprod = cs.codprod
		where 1=1
		and lp.codprod = 'RF'
		and lp.codlinea = 'MP'
		and lp.flagtrim <> 'S'
		and LP.DTTRIM = @DataFineTrim  and cs.dttrim = @DataFineTrim


--------------------------------------------------------------------------
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_STORICO_CAPPROT_FVI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'DM_STORICO_CAPPROT_FVI'  
  )  
  
END   
  
  
  
  
  
  
  
  
  
  
  
  








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[DM_TEST_QUALITY]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6MartPeriodico].[DM_TEST_QUALITY]
AS
BEGIN

declare @date datetime
declare @trimestre datetime

set @date = getdate()
set @trimestre = [C6MartPeriodico].[getTrimestre] (@date, 0)
SELECT 'TESTING FOR TRIMESTRALE = ' + cast( @trimestre as NVARCHAR(20))
--set @trimestre = '2017-06-30'
SELECT 'TESTING DATA_MONIT'

;with dd as
(
SELECT
	CONO.ID_AREA AS NEED_AREA,
	CASE
		WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
		ELSE CONO.NOME_PROGETTO
	END AS NOME_PROGETTO,
	CONO.RETE,
	CONO.COD_FISCALE,
	CONO.DATA_CONO,
	MONIT.DATA_CTV as DATA_MONIT
FROM
	C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
	AND CONO.COD_FISCALE = MONIT.COD_FISCALE
	AND CONO.ID_AREA = MONIT.ID_AREA
	AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
	AND cono.ordinamento_progetto=monit.ordinamento_progetto 
),reduced_data as
(
select distinct d.* 
from dd d 
	inner join (select * from dd where data_cono = @trimestre) x on d.need_area = x.need_area and d.nome_progetto = x.nome_progetto 
	and x.rete = d.rete and x.cod_fiscale = d.cod_fiscale 
),
correct_data as
(
select * from reduced_data d where data_cono = data_monit
)
select  d.RETE, d.COD_FISCALE, 'missing data for DATA_MONIT for NOME_PROGETTO = ' + d.nome_progetto + ' NEED_AREA = '+ d.need_area as MOTIVO
from reduced_data d 
 left join correct_data x on d.need_area = x.need_area and d.nome_progetto = x.nome_progetto 
	and x.rete = d.rete and x.cod_fiscale = d.cod_fiscale 
where x.need_area is null
group by d.rete, d.cod_fiscale, d.need_area, d.nome_progetto

SELECT 'TESTING data_perf in c6mart.vcontratti'
DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.getPreviousTrimestre(getDate(),0) 


		SELECT codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim,rank INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

select * from wh.Maledetti m 	 inner join #WSEIAN_1 wse 
			 on wse.codfis = m.i_codiceFiscale and wse.rete = m.i_rete	left join   [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]  VC
on vc.cod_fiscale = i_codiceFiscale and vc.rete = i_rete
where data_perf is null and wse.FLGPROF = 'S'

SELECT 'TESTING SCARTO PER PIRAMIDE MODELLO'

SELECT RETE, COD_FISCALE,		 
		 CASE 
			WHEN PMOD.PRC > 100 THEN 'SCARTO PER PIRAMIDE MODELLO SUPERIORE A 100'
			WHEN PMOD.PRC < 1  THEN 'SCARTO PER PIRAMIDE MODELLO BELOW 1'
			ELSE 'SCARTO PER PIRAMIDE MODELLO INFERIORE A 100'
END AS MOTIVO
FROM C6MARTPeriodico.VCONTRATTI VC
	INNER JOIN	
		(SELECT chiaveclientepb, sum(percentualeprogetto) AS PRC FROM c6stagingperiodico.rp_progettipiramidemodello 
		WHERE 1=1
			AND ((area = 'Inv' and tipoProgetto = 1) OR (area <> 'Inv' and tipoProgetto = 0))
			AND DtFineValidita > getdate() 
		GROUP BY chiaveclientepb
		) AS PMOD
	ON VC.chiaveclientepb = PMOD.chiaveclientepb	
WHERE	PMOD.PRC < 1 or  PMOD.PRC > 100

DECLARE @d nvarchar(8)
set @d = c6martperiodico.getTrimestre(getdate(), 1)

;with alldata as 
(
select * from [C6StagingPeriodico].[WSEIAN2] WHERE codfis not like 'FF%' and  DTTRIM=@d
), moddata as 
(	SELECT an.*
	FROM [C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codfis not like 'FF%' and  DTTRIM=@d
)
select * from alldata d left join moddata m on m.rete = d.rete and m.codfis = d.codfis and m.dttrim = d.dttrim
where m.codfis is null
	

;with alldata as 
(
select * from [C6StagingPeriodico].[WSEIAN2] WHERE codfis  like 'FF%' and  DTTRIM=@d
), moddata as 
(	SELECT an.* 
	FROM [C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE] 
	and adeg.[FLAGPG]=0 and adeg.[FLAGNQP]='N' and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE   codfis  like 'FF%'
	and DTTRIM=@d
)
select * from alldata d left join moddata m on m.rete = d.rete and m.codfis = d.codfis and m.dttrim = d.dttrim
where m.codfis is null

END







	
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Estrazione_Campione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodico].[Estrazione_Campione]
AS
BEGIN
drop table if exists C6MartPeriodico.TB_Estrazione_Campione
select top(1) rete_acn,codice_fiscale,'Cliente W Retail (Non Professionale) con solo Monitoraggio' as Nota into C6MartPeriodico.TB_Estrazione_Campione from C6MartPeriodico.tabellone where rete_acn='W' and segmento<>'PRIVATE' and freq_diagnosi<>'T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente W Private (Non Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='W' and segmento='PRIVATE' and freq_diagnosi<>'T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente W Retail (Non Professionale) con Monitoraggio e Diagnosi'as Nota from C6MartPeriodico.tabellone where rete_acn='W' and segmento='PRIVATE' and freq_diagnosi='T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente S Retail (Non Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='S' and segmento<>'PRIVATE' and freq_diagnosi<>'T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente S Retail (Non Professionale) con Monitoraggio e Diagnosi'as Nota from C6MartPeriodico.tabellone where rete_acn='S' and segmento<>'PRIVATE' and freq_diagnosi='T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente S Private (Non Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='S' and segmento='PRIVATE' and freq_diagnosi<>'T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Retail (Non Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento<>'PRIVATE' and freq_diagnosi<>'T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Retail (Non Professionale) con Monitoraggio e Diagnosi'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento<>'PRIVATE' and freq_diagnosi='T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Private (Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento='PRIVATE' and freq_diagnosi<>'T' and flgprof='S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Private (Non Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento='PRIVATE' and freq_diagnosi<>'T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Retail (Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento<>'PRIVATE' and freq_diagnosi<>'T' and flgprof='S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Retail (Professionale) con Monitoraggio e Diagnosi'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento<>'PRIVATE' and freq_diagnosi='T' and flgprof='S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente F Private (Non Professionale) con Monitoraggio e Diagnosi'as Nota from C6MartPeriodico.tabellone where rete_acn='F' and segmento='PRIVATE' and freq_diagnosi='T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente S Retail (Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='S' and segmento<>'PRIVATE' and freq_diagnosi<>'T' and flgprof='S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente S Private (Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='S' and segmento='PRIVATE' and freq_diagnosi<>'T' and flgprof='S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente S Private (Non Professionale) con Monitoraggio e Diagnosi'as Nota from C6MartPeriodico.tabellone where rete_acn='S' and segmento='PRIVATE' and freq_diagnosi='T' and flgprof<>'S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente W Retail (Professionale) con solo Monitoraggio' as Nota from C6MartPeriodico.tabellone where rete_acn='W' and segmento<>'PRIVATE' and freq_diagnosi<>'T' and flgprof='S'
union all
select top(1) rete_acn,codice_fiscale,'Cliente W Private (Professionale) con solo Monitoraggio'as Nota from C6MartPeriodico.tabellone where rete_acn='W' and segmento='PRIVATE' and freq_diagnosi<>'T' and flgprof='S'
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Estrazione_Campione_Cruscotto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6MartPeriodico].[Estrazione_Campione_Cruscotto]
AS
BEGIN
drop table if exists C6MartPeriodico.TB_Estrazione_Campione_Cruscotto
select top(1) rete,codice_fiscale,'Cliente W Retail (Non Professionale) con solo Monitoraggio' as Nota into C6MartPeriodico.TB_Estrazione_Campione_Cruscotto from c6martperiodico.rp_tb_tipologia_campione where rete='W' and segmento<>'PRIVATE' and Diagnosi<>'SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente W Private (Non Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='W' and segmento='PRIVATE' and Diagnosi<>'SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente W Retail (Non Professionale) con Monitoraggio e Diagnosi'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='W' and segmento='PRIVATE' and Diagnosi='SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente S Retail (Non Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='S' and segmento<>'PRIVATE' and Diagnosi<>'SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente S Retail (Non Professionale) con Monitoraggio e Diagnosi'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='S' and segmento<>'PRIVATE' and Diagnosi='SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente S Private (Non Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='S' and segmento='PRIVATE' and Diagnosi<>'SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Retail (Non Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento<>'PRIVATE' and Diagnosi<>'SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Retail (Non Professionale) con Monitoraggio e Diagnosi'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento<>'PRIVATE' and Diagnosi='SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Private (Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento='PRIVATE' and Diagnosi<>'SI' and Professionale='SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Private (Non Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento='PRIVATE' and Diagnosi<>'SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Retail (Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento<>'PRIVATE' and Diagnosi<>'SI' and Professionale='SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Retail (Professionale) con Monitoraggio e Diagnosi'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento<>'PRIVATE' and Diagnosi='SI' and Professionale='SI'
union all
select top(1) rete,codice_fiscale,'Cliente F Private (Non Professionale) con Monitoraggio e Diagnosi'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='F' and segmento='PRIVATE' and Diagnosi='SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente S Retail (Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='S' and segmento<>'PRIVATE' and Diagnosi<>'SI' and Professionale='SI'
union all
select top(1) rete,codice_fiscale,'Cliente S Private (Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='S' and segmento='PRIVATE' and Diagnosi<>'SI' and Professionale='SI'
union all
select top(1) rete,codice_fiscale,'Cliente S Private (Non Professionale) con Monitoraggio e Diagnosi'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='S' and segmento='PRIVATE' and Diagnosi='SI' and Professionale<>'SI'
union all
select top(1) rete,codice_fiscale,'Cliente W Retail (Professionale) con solo Monitoraggio' as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='W' and segmento<>'PRIVATE' and Diagnosi<>'SI' and Professionale='SI'
union all
select top(1) rete,codice_fiscale,'Cliente W Private (Professionale) con solo Monitoraggio'as Nota from c6martperiodico.rp_tb_tipologia_campione where rete='W' and segmento='PRIVATE' and Diagnosi<>'SI' and Professionale='SI'
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GC_CONVALIDAREPORTSELECT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Berni Francesco
-- Create date: 24 Aprile 2009
-- Description: 
-- =============================================
-- [C6MartPeriodico].[GC_CONVALIDAREPORTSELECT] 
CREATE procedure [C6MartPeriodico].[GC_CONVALIDAREPORTSELECT]
 
AS
BEGIN
Declare @DiagnosiVerificati as int
Declare @DiagnosiNonVerificati as int
Declare @DiagnosiOK as int
Declare @DiagnosiKO as int
Declare @MonitoraggioVerificati as int
Declare @MonitoraggioNonVerificati as int
Declare @MonitoraggioOK as int
Declare @MonitoraggioKO as int
-- Totali
Declare @TotaleDiagnosi as int
Declare @TotaleMonitoraggio as int

Declare @TotaleVerificati as int
Declare @TotaleNonVerificati as int
Declare @TotaleOK as int
Declare @TotaleKO as int


-- Diagnosi
			
			
-- Diagnosi Verificati
SELECT @DiagnosiVerificati = count(distinct B.IDREPORT) 
	FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'D' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	AND ISNULL(C.Verifica, 0) = 1


-- Diagnosi Non Verificati
SELECT @DiagnosiNonVerificati = count(distinct B.IDREPORT) 
	FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'D' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	AND ISNULL(C.Verifica, 0) = 0

-- Diagnosi OK
SELECT @DiagnosiOK = count(distinct B.IDREPORT)
	FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'D' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	and ISNULL(C.Esito,'-') = 'OK' 


-- Diagnosi KO
SELECT @DiagnosiKO = count(distinct B.IDREPORT) 
	FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'D' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	and ISNULL(C.Esito,'-') = 'KO' 

-- Monitoraggio


-- Monitoraggio Verificati
SELECT @MonitoraggioVerificati = count(distinct B.IDREPORT) 
		FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'M' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	AND ISNULL(C.Verifica, 0) = 1


-- Monitoraggio Non Verificati
SELECT @MonitoraggioNonVerificati = count(distinct B.IDREPORT) 
	FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'M' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	AND ISNULL(C.Verifica, 0) = 0

-- Monitoraggio OK
SELECT @MonitoraggioOK = count(distinct B.IDREPORT) 
	FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'M' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	and ISNULL(C.Esito,'-') = 'OK' 


-- Monitoraggio KO
SELECT @MonitoraggioKO = count(distinct B.IDREPORT) 
		FROM
		C6Mart.CONTRATTOSEI  A INNER JOIN
        C6MartPeriodico.GESTIONE_PDF_FTP B ON 
		A.Rete = B.Rete AND 
        A.Cod_Fiscale = B.CodiceFiscale 
	 
	Left outer JOIN C6MartPeriodico.VERIFICHECAMPIONE C
	ON B.IDREPORT  = C.IDREPORT
	WHERE  
	B.[TipoReport] = 'M' 
	AND ISNULL(B.FlagInvio,'N') = 'N'
	AND ISNULL(B.DEFINITIVO, 0) = 0
	AND C.datafine is  null 
	and ISNULL(C.Esito,'-') = 'KO' 

--print convert(varchar, @DiagnosiVerificati)

set @TotaleDiagnosi = @DiagnosiVerificati+@DiagnosiNonVerificati--+	@DiagnosiOK+@DiagnosiKO
set @TotaleMonitoraggio = @MonitoraggioVerificati+@MonitoraggioNonVerificati --+	@MonitoraggioOK+@MonitoraggioKO
set @TotaleVerificati = @DiagnosiVerificati+@MonitoraggioVerificati
set @TotaleNonVerificati = @DiagnosiNonVerificati+@MonitoraggioNonVerificati
set @TotaleOK = @DiagnosiOK+@MonitoraggioOK
set @TotaleKO = @DiagnosiKO+@MonitoraggioKO


Select riga, Report, Diagnosi,UrlDiagnosi, Monitoraggio,UrlMonitoraggio, UrlTotale, Totale
from
(
	Select	1 as riga, 
			'Totale' as Report, 
			@TotaleDiagnosi AS Diagnosi, 
			'VerificheCampione.aspx?tiporeport=D&prov=CR' As UrlDiagnosi,
			@TotaleMonitoraggio AS Monitoraggio,
			'VerificheCampione.aspx?tiporeport=M&prov=CR' As UrlMonitoraggio,
			'VerificheCampione.aspx?prov=CR' As UrlTotale,
			@TotaleDiagnosi + @TotaleMonitoraggio as Totale
    union
	
	Select	2 as riga, 
			'Verificati' as Report, 
			@DiagnosiVerificati AS Diagnosi,
			'VerificheCampione.aspx?tiporeport=D&verificati=1&prov=CR' As UrlDiagnosi, 
			@MonitoraggioVerificati AS Monitoraggio,
			'VerificheCampione.aspx?tiporeport=M&verificati=1&prov=CR' As UrlMonitoraggio,
			'VerificheCampione.aspx?verificati=1&prov=CR' As UrlTotale,
			@TotaleVerificati as Totale

 union
	
	Select	3 as riga, 
			'Non Verificati' as Report, 
			@DiagnosiNonVerificati AS Diagnosi, 
			'VerificheCampione.aspx?tiporeport=D&verificati=0&prov=CR' As UrlDiagnosi, 
			@MonitoraggioNonVerificati AS Monitoraggio,
			'VerificheCampione.aspx?tiporeport=M&verificati=0&prov=CR' As UrlMonitoraggio,
			'VerificheCampione.aspx?verificati=0&prov=CR' As UrlTotale,
			@TotaleNonVerificati  as Totale
 union
	
	Select	4 as riga, 
			'Esito OK' as Report, 
			@DiagnosiOK AS Diagnosi, 
			'VerificheCampione.aspx?tiporeport=D&esito=OK&prov=CR' As UrlDiagnosi, 
			@MonitoraggioOK AS Monitoraggio,
			'VerificheCampione.aspx?tiporeport=M&esito=OK&prov=CR' As UrlMonitoraggio,
			'VerificheCampione.aspx?esito=OK&prov=CR' As UrlTotale,
			@TotaleOK as Totale
 union
	
	Select	5 as riga, 
			'Esito KO' as Report, 
			@DiagnosiKO AS Diagnosi, 
			'VerificheCampione.aspx?tiporeport=D&esito=KO&prov=CR' As UrlDiagnosi, 
			@MonitoraggioKO AS Monitoraggio,
			'VerificheCampione.aspx?tiporeport=M&esito=KO&prov=CR' As UrlMonitoraggio,
			'VerificheCampione.aspx?esito=KO&prov=CR' As UrlTotale,
			@TotaleKO as Totale
			

) As Tabella

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GC_DELETE_CONVALIDA_ANNULLA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Francesco Berni
-- Create date: 28/04/2009
-- Description:	Stored Procedure inserimento dati varifiche campione
-- =============================================
CREATE procedure [C6MartPeriodico].[GC_DELETE_CONVALIDA_ANNULLA]
  @Idreports varchar(3000) = 'NODELETE',
  @Delimiter char(1) = '|',
  @TipoOperazione char(1)
AS
BEGIN



IF (@Idreports <> 'NODELETE')
BEGIN
		Declare @contatore as int
		-- Inizio Log
		CREATE TABLE #ConvalidaReport(
		riga int NULL,
		Report varchar(100) NULL,
		Diagnosi int NULL,
		UrlDiagnosi varchar(100) NULL,
		Monitoraggio int NULL,
		UrlMonitoraggio    varchar(100) NULL,                                        
		UrlTotale          varchar(100) NULL,                         
		Totale int NULL
		)


		INSERT INTO #ConvalidaReport
		 EXEC 
		[C6MartPeriodico].[GC_CONVALIDAREPORTSELECT]


		insert into [C6MartPeriodico].LogOperazioniConvalidaAnnulla
		select 
		getdate() as data,
		case @TipoOperazione when 'A' then 'ANNULLA' else
		case @TipoOperazione when 'C' then 'CONVALIDA' End End AS TIPO_OPERAZIONE,
		Report ,
		Diagnosi ,
		Monitoraggio ,                  
		Totale  
		from #ConvalidaReport


		drop table #ConvalidaReport
		-- Fine Log


		-- Cancella tutti i report su GESTIONE_PDF_FTP
		DELETE C6MartPeriodico.GESTIONE_PDF_FTP 
		from	C6MartPeriodico.GESTIONE_PDF_FTP
		inner join (select [value] from  dbo.Split(@Delimiter, @Idreports)) as tab
		on C6MartPeriodico.GESTIONE_PDF_FTP.idreport = tab.[value]

		set @contatore = @@rowcount

		-- Convalida 
		if (@TipoOperazione = 'C')
		Begin
			UPDATE C6MartPeriodico.GESTIONE_PDF_FTP
			SET Definitivo = 1
			WHERE --Secondo berni: isnull(Definitivo, 0) = 0
				--V
				codicefiscale in(SELECT codiceFiscale FROM c6martperiodico.VERIFICHECAMPIONE where esito = 'OK' and DATAFINE is null)
		End

		-- Storicizzo anche i record cancellati
		UPDATE [C6MartPeriodico].[VERIFICHECAMPIONE]
		SET datafine = GETDATE()
		WHERE datafine is null

		return @contatore
END
ELSE	
	return -1
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GC_INSERT_VERIFICHE_CAMPIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Francesco Berni
-- Create date: 28/04/2009
-- Description:	Stored Procedure inserimento dati varifiche campione
-- =============================================
CREATE procedure [C6MartPeriodico].[GC_INSERT_VERIFICHE_CAMPIONE]
 @IdReport int,
 @Rete char(1) = '', 
 @CodicePB varchar(6) = '',
 @CodiceFiscale varchar(16) = '',
 @UserModify varchar(7) = '',
 @TipoReport varchar(2) = '',
 @Verifica bit = null,
 @Esito varchar(2) = '-'
 
AS
BEGIN

	SET NOCOUNT ON;

   
		    UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[VERIFICHECAMPIONE]
			SET datafine = getdate()
			WHERE IdReport = @IdReport and datafine is null

	INSERT INTO [C6StampeCentralizzate].[C6MartPeriodico].[VERIFICHECAMPIONE]
           ([Rete]
           ,[CodiceFiscale]
           ,[CodAgente]
           ,[UserModify]
		   ,[TipoReport]
           ,[Verifica]
           ,[Esito]
           ,[IdReport]
           ,[datainizio]
           ,[datafine])
     VALUES
           (@Rete
           ,@CodiceFiscale
           ,@CodicePB
           ,@UserModify
		   ,@TipoReport
           ,@Verifica
           ,@Esito
           ,@IdReport
           , GetDate()
           , null
           )
	END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GC_REPORTDACANCELLARESELECT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Berni Francesco
-- Create date: 24 Aprile 2009
-- Description: 
-- =============================================
-- [C6MartPeriodico].[GC_REPORTDACANCELLARESELECT] 
CREATE procedure [C6MartPeriodico].[GC_REPORTDACANCELLARESELECT]
 -- Add the parameters for the stored procedure here
 @flag char(1)
 
AS
BEGIN

if (@flag = 'A') 
	   -- ANNULLA REPORT
	   Select distinct IdReport from	C6MartPeriodico.GESTIONE_PDF_FTP
	   where  isnull(FlagInvio,'N') = 'N'
			  
else if (@flag = 'C')
	   -- CONVALIDA REPORT
	   Select distinct C6MartPeriodico.GESTIONE_PDF_FTP.IdReport 
	   FROM	C6MartPeriodico.GESTIONE_PDF_FTP
	   INNER JOIN C6MartPeriodico.VERIFICHECAMPIONE
	   ON C6MartPeriodico.GESTIONE_PDF_FTP.IdReport = C6MartPeriodico.VERIFICHECAMPIONE.IdReport
	   where  isnull(C6MartPeriodico.GESTIONE_PDF_FTP.FlagInvio,'N') = 'N'
	   AND  isnull(C6MartPeriodico.GESTIONE_PDF_FTP.Definitivo, 0) = 0	 	
	   AND C6MartPeriodico.VERIFICHECAMPIONE.Esito = 'KO'
	   AND C6MartPeriodico.VERIFICHECAMPIONE.datafine IS NULL
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GC_VerificheCampioneSelect]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Berni Francesco
-- Create date: 24 Aprile 2009
-- Description: 
-- =============================================
-- C6MartPeriodico.[GC_VerificheCampioneSelect] 'F', '011717'
CREATE procedure [C6MartPeriodico].[GC_VerificheCampioneSelect]


 -- Add the parameters for the stored procedure here
 @Rete char(1) = null, 
 @CodicePB varchar(6) = null,
 @CodiceFiscale varchar(16) = null,
 @NomeCliente varchar(50) = null,
 @CognomeCliente varchar(50) = null,
 @DataSottDA datetime = null,
 @DataSottA datetime = null,
 @RFADA decimal = null, 
 @RFAA decimal = null, 
 @VaRDA decimal = null, 
 @VaRA decimal = null,
 @Delimiter char(1) = '|',
 @Profilo varchar(50) = null,
 @Diagnosi bit = 0, 
 @Monitoraggio bit = 0, 
 @NonVerificato bit = 0,
 @Verificato bit = 0, 
 @OK bit = 0, 
 @KO bit = 0,
 @pdfC6 int = 1

AS
BEGIN

SELECT		   distinct  C6MartPeriodico.GESTIONE_PDF_FTP.IdReport,
			   C6Mart.CONTRATTOSEI.Rete, 
				Case C6Mart.CONTRATTOSEI.Rete when 'F' then 'Fideuram' else
			    Case  C6Mart.CONTRATTOSEI.Rete when 'S' then 'San Paolo' End End
				as Rete,	
			   C6Mart.CONTRATTOSEI.Cod_Agente,
				CASE 
					WHEN C6Mart.CONTRATTOSEI.Cod_Fiscale LIKE '%@%' THEN C6MartPeriodico.ANAG_CLIENTI.COGNOME + ' ' + REPLACE(C6MartPeriodico.ANAG_CLIENTI.NOME,'$','') + ' - ' + SUBSTRING(C6Mart.CONTRATTOSEI.Cod_Fiscale, CHARINDEX('@',C6Mart.CONTRATTOSEI.Cod_Fiscale) + 1 , LEN(C6Mart.CONTRATTOSEI.Cod_Fiscale) - CHARINDEX('@',C6Mart.CONTRATTOSEI.Cod_Fiscale) + 1)
					ELSE C6MartPeriodico.ANAG_CLIENTI.COGNOME + ' ' + C6MartPeriodico.ANAG_CLIENTI.NOME
				END AS NOMINATIVOCLIENTE, 
			   Case C6MartPeriodico.GESTIONE_PDF_FTP.TipoReport when 'D' then 'Diagnosi' else
			   Case C6MartPeriodico.GESTIONE_PDF_FTP.TipoReport when 'M' then 'Monitoraggio' End End
				as TipoReport,	
			   C6MartPeriodico.VERIFICHECAMPIONE.UserModify,
               ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Verifica, 0) AS VERIFICA,
			   ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Esito, '-') AS Esito,

               C6Mart.CONTRATTOSEI.Cod_Fiscale,
			   @pdfC6 as pdfC6   

-- From 
    FROM			C6Mart.CONTRATTOSEI INNER JOIN
                C6MartPeriodico.GESTIONE_PDF_FTP ON 
				C6Mart.CONTRATTOSEI.Rete = C6MartPeriodico.GESTIONE_PDF_FTP.Rete AND 
                C6Mart.CONTRATTOSEI.Cod_Fiscale = C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale 
	--INNER JOIN
	LEFT OUTER JOIN
               C6MartPeriodico.RISCHIO_AGGREGATO 
			   ON C6Mart.CONTRATTOSEI.Rete = C6MartPeriodico.RISCHIO_AGGREGATO.RETE 
			   AND C6Mart.CONTRATTOSEI.Cod_Fiscale = C6MartPeriodico.RISCHIO_AGGREGATO.COD_FISCALE 
			   --AND C6MartPeriodico.RISCHIO_AGGREGATO.COD_AGGREG = 'COMPLESSIVO|BF' 	
	INNER JOIN
	
               C6MartPeriodico.MIFID 
			   ON C6Mart.CONTRATTOSEI.Rete = C6MartPeriodico.MIFID.RETE 
			   AND C6Mart.CONTRATTOSEI.Cod_Fiscale = C6MartPeriodico.MIFID.COD_FISCALE 
	INNER JOIN
               C6MartPeriodico.ANAG_CLIENTI ON 
			   C6Mart.CONTRATTOSEI.Rete = C6MartPeriodico.ANAG_CLIENTI.RETE 
			   AND C6Mart.CONTRATTOSEI.Cod_Fiscale = C6MartPeriodico.ANAG_CLIENTI.COD_FISCALE 
	INNER JOIN
               C6MartPeriodico.vPatrimonioBFAggregato ON 
			   C6Mart.CONTRATTOSEI.Rete = C6MartPeriodico.vPatrimonioBFAggregato.RETE 
			   AND C6Mart.CONTRATTOSEI.Cod_Fiscale = C6MartPeriodico.vPatrimonioBFAggregato.COD_FISCALE 
	LEFT OUTER JOIN
               C6MartPeriodico.VERIFICHECAMPIONE ON 
			   C6MartPeriodico.GESTIONE_PDF_FTP.IdReport = C6MartPeriodico.VERIFICHECAMPIONE.IdReport 
	
	WHERE	1=1 
	-- rete
	AND (@Rete is null OR @Rete = '-' OR C6Mart.CONTRATTOSEI.Rete = @Rete)
    AND (@CodicePB is null OR C6Mart.CONTRATTOSEI.Cod_Agente = @CodicePB)
    --AND (@CodiceFiscale is null OR C6Mart.CONTRATTOSEI.Cod_Fiscale = @CodiceFiscale)
	AND (@CodiceFiscale is null OR C6Mart.CONTRATTOSEI.Cod_Fiscale like @CodiceFiscale + '%')
    AND (@NomeCliente is null OR C6MartPeriodico.ANAG_CLIENTI.NOME LIKE '%' + @NomeCliente + '%')
    AND (@CognomeCliente is null OR UPPER(C6MartPeriodico.ANAG_CLIENTI.COGNOME) LIKE UPPER(@CognomeCliente))
    AND ( 	     
			(@Diagnosi = 1 AND  C6MartPeriodico.GESTIONE_PDF_FTP.TipoReport = 'D')
			 OR 
			(@Monitoraggio = 1 AND C6MartPeriodico.GESTIONE_PDF_FTP.TipoReport = 'M')
			OR
			(@Monitoraggio = 0 AND @Diagnosi = 0 AND C6MartPeriodico.GESTIONE_PDF_FTP.TipoReport IN ('D', 'M'))
		) 
	AND (@DataSottDA is null OR C6Mart.CONTRATTOSEI.Data_Sott > CONVERT(DATETIME, @DataSottDA , 103))

	AND (@DataSottA is null OR C6Mart.CONTRATTOSEI.Data_Sott < CONVERT(DATETIME, @DataSottA , 103))

	AND (@RFADA is null OR C6MartPeriodico.vPatrimonioBFAggregato.CTV > @RFADA)

	AND (@RFAA is null OR C6MartPeriodico.vPatrimonioBFAggregato.CTV < @RFAA)

	AND (@VaRDA is null OR C6MartPeriodico.RISCHIO_AGGREGATO.VAR_PERC_PTF > @VaRDA)

	AND (@VaRA is null OR C6MartPeriodico.RISCHIO_AGGREGATO.VAR_PERC_PTF < @VaRA)

    AND (
			@Profilo IS NULL OR C6MartPeriodico.MIFID.PROFILO_ASS in 
			(select [value] from  dbo.Split(@Delimiter, @Profilo)) 
		)
    AND ( 
----			(@Verificato = 0 OR (@Verificato = 1 AND  C6MartPeriodico.VERIFICHECAMPIONE.Verifica = 1))
----			 OR 
----			(@NonVerificato = 0 OR (@NonVerificato = 1 AND C6MartPeriodico.VERIFICHECAMPIONE.Verifica = 0))
				(@Verificato = 1 AND  ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Verifica,0) = 1)
				OR 
				(@NonVerificato = 1 AND ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Verifica,0) = 0)
				OR 
				(@Verificato = 0 AND @NonVerificato = 0 
				 AND (ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Verifica,0) = 1 
				 OR ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Verifica,0) = 0))
		) 

	AND ( 
	     
			(@OK = 1 AND  ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Esito, '-') = 'OK')
			 OR 
			(@KO = 1 AND ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Esito, '-') = 'KO')
			 OR
			(@OK = 0 AND @KO = 0 AND ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Esito, '-') IN ('-','KO','OK'))
			 OR
			(@OK = 1 AND @KO = 1 AND ISNULL(C6MartPeriodico.VERIFICHECAMPIONE.Esito, '-') IN ('-','KO','OK'))

		) 
	
    --AND ISNULL(C6MartPeriodico.GESTIONE_PDF_FTP.FlagInvio,'N') = 'N' --C6MartPeriodico.getIdElab() 
	AND C6MartPeriodico.VERIFICHECAMPIONE.datafine is  null 
	--AND ISNULL(C6MartPeriodico.GESTIONE_PDF_FTP.DEFINITIVO, 0) = 0

	

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Genera_Cruscotto_ContrattoSei]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[Genera_Cruscotto_ContrattoSei]
  
AS
BEGIN
  
-- INSERIMNETO NELLA TABELLA  [C6MartPeriodico].Cruscotto_ContrattoSei dei contratti da elaborare 
-- nel processo GeneraPDF
--  ELAB 0 DA ELABORARE PRIORITA ALTA'
--  ELAB 1 DA ELABORARE PRIORITA MEDIA'
--  ELAB 2 DA ELABORARE PRIORITA NORMALE'
--  ELAB 3 IN ELABORAZIONE'
--  ELAB 4 DA NON ELABORARE'
--  ELAB 10 ELABORATO'
--  ELAB -1 SCARTO DA DATATHREAD'
--  ELAB -2 ERRORE APPLICATIVO'
--  ELAB -3 ERRORE APPLICATIVO generatorpdf'
--  ELAB < -3 ERRORE APPLICATIVO non assegnati'



-- truncate Tabella [C6MartPeriodico].Cruscotto_ContrattoSei ( Elaborazione Precendete)
-- Lista Contratti da Elaborare in Processo GeneraPDF
truncate  table C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 

-- truncate Tabella [C6MartPeriodico].CRUSCOTTO_SCARTI_PDFGENERATOR ( Elaborazione Precendete)
-- Tabella Degli Scarti Processi PRecedenti
truncate  table C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR 

-- Aggiornamento Tabella C6MartPeriodico].[CRUSCOTTOSWITCH]
-- Flag di Elaborazione Processo GeneraPDf 
-- 0 = Stop esecuzione Processo
-- 1 = Ok esecuzione processo
update [C6MartPeriodico].[CRUSCOTTOSWITCH] set elab = 1


-- Inserimenti in Tabella Cruscotto  di tutti i contratti da elaborare
insert into C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
select  cod_fiscale as codice_fiscale,
 rete as rete ,
 2 as elab, -- Flag Elaborazione 
 null,
 null,
 null as dtstamp   
-- Modifica del 27/3/2017 - Staging e Mart selettivo
	--from  C6StagingPeriodico.APPO_CONTRATTI
from C6stagingPERIODICO.appo_contratti_v
-- Fine Modifica del 27/3/2017 - Staging e Mart selettivo


-- Aggiornamento Dei Contratti da "non elaborare"

-- Non elaborare i contratti Scartati dal Mart ( Tabella Data Quality C6MartPeriodico.tb_SegnalazioniDataQuality )


Update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
set Elab=4
from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI Cr inner join C6MartPeriodico.tb_SegnalazioniDataQuality Dq
on Cr.Rete=Dq.Rete and Cr.CodiceFiscale=Dq.CodiceFiscale


-- Non elaborare i contratti Scartati x Disallineamenti
--Update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
--set Elab=4
--from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI Cr inner join dbo.disallineati2  Di
--on Cr.Rete=Di.Rete and Cr.CodiceFiscale=Di.Cod_Fiscale
  
END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Genera_Cruscotto_ContrattoSei_20170407.SAVE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6MartPeriodico].[Genera_Cruscotto_ContrattoSei_20170407.SAVE]
  
AS
BEGIN
  
-- INSERIMNETO NELLA TABELLA  [C6MartPeriodico].Cruscotto_ContrattoSei dei contratti da elaborare 
-- nel processo GeneraPDF
--  ELAB 0 DA ELABORARE PRIORITA ALTA'
--  ELAB 1 DA ELABORARE PRIORITA MEDIA'
--  ELAB 2 DA ELABORARE PRIORITA NORMALE'
--  ELAB 3 IN ELABORAZIONE'
--  ELAB 4 DA NON ELABORARE'
--  ELAB 10 ELABORATO'
--  ELAB -1 SCARTO DA DATATHREAD'
--  ELAB -2 ERRORE APPLICATIVO'
--  ELAB -3 ERRORE APPLICATIVO generatorpdf'
--  ELAB < -3 ERRORE APPLICATIVO non assegnati'



-- truncate Tabella [C6MartPeriodico].Cruscotto_ContrattoSei ( Elaborazione Precendete)
-- Lista Contratti da Elaborare in Processo GeneraPDF
truncate  table C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 

-- truncate Tabella [C6MartPeriodico].CRUSCOTTO_SCARTI_PDFGENERATOR ( Elaborazione Precendete)
-- Tabella Degli Scarti Processi PRecedenti
truncate  table C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR 

-- Aggiornamento Tabella C6MartPeriodico].[CRUSCOTTOSWITCH]
-- Flag di Elaborazione Processo GeneraPDf 
-- 0 = Stop esecuzione Processo
-- 1 = Ok esecuzione processo
update [C6MartPeriodico].[CRUSCOTTOSWITCH] set elab = 1


-- Inserimenti in Tabella Cruscotto  di tutti i contratti da elaborare
insert into C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
select  cod_fiscale as codice_fiscale,
 rete as rete ,
 2 as elab, -- Flag Elaborazione 
 null,
 null,
 null as dtstamp   
from  C6StagingPeriodico.APPO_CONTRATTI


-- Aggiornamento Dei Contratti da "non elaborare"

-- Non elaborare i contratti Scartati dal Mart ( Tabella Data Quality C6MartPeriodico.tb_SegnalazioniDataQuality )


Update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
set Elab=4
from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI Cr inner join C6MartPeriodico.tb_SegnalazioniDataQuality Dq
on Cr.Rete=Dq.Rete and Cr.CodiceFiscale=Dq.CodiceFiscale


-- Non elaborare i contratti Scartati x Disallineamenti
--Update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
--set Elab=4
--from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI Cr inner join dbo.disallineati2  Di
--on Cr.Rete=Di.Rete and Cr.CodiceFiscale=Di.Cod_Fiscale
  
END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Gestione_Bonus]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[Gestione_Bonus] 'S', 'CHTDRA58S17D969J'
CREATE procedure [C6MartPeriodico].[Gestione_Bonus]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

BEGIN
	select COD_FISCALE as CodiceFiscale
	from [C6MartPeriodico].Bonus
	where
	RETE = @Rete 
	AND COD_FISCALE = @CodiceFiscale
END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_C6_S_Generator]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 4, 14, 'T' PPVV
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 4, 6, 'T' Direct Advisory
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 1, 5, 'T' Diagnosi
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 4, 13, 'T' (monitoraggio,private,trim)
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 4, 12, 'T' (monitoraggio,old/affluent,trim)

CREATE    procedure [C6MartPeriodico].[GESTIONE_C6_S_Generator]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'T'
AS
BEGIN
	SET NOCOUNT ON;


if (@idModello=12)
begin
select * from C6MartPeriodico.generator_monitoraggio  order BY ordineCapitolo,ordineParagrafo,ordineSezione
end

if (@idModello=13)
begin
select * from C6MartPeriodico.generator_monitoraggio_private 
--where codicesezione not in ('S181','S185')
order BY ordineCapitolo,ordineParagrafo,ordineSezione
end


if (@idModello=5)
begin
select * from C6MartPeriodico.generator_diagnosi  order BY ordineCapitolo,ordineParagrafo,ordineSezione
end

if (@idModello=6)
begin
select * from C6MartPeriodico.generator_direct  order BY ordineCapitolo,ordineParagrafo,ordineSezione
end

if (@idModello=14)
begin
select * from  C6MartPeriodico.generator_PPVV  order BY ordineCapitolo,ordineParagrafo,ordineSezione
end

END


 






















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_C6_S_Generator_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 1, 4, 'T'
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 1, 5, 'T' diagnosi
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 4, 13, 'T' (monitoraggio,private,trim)
-- [C6MartPeriodico].[GESTIONE_C6_S_Generator] 4, 12, 'T' (monitoraggio,old/affluent,trim)

CREATE procedure [C6MartPeriodico].[GESTIONE_C6_S_Generator_OLD]
@idReport as int,
@idModello as int,
@periodicita as varchar(1) = 'T'
AS
BEGIN
	SET NOCOUNT ON;





-- CREO LA TABELLA #R6Capitolopdf
SELECT  dboPeriodico.R6Capitolo.id, 
		dboPeriodico.R6Capitolo.titolo, 
		dboPeriodico.R6Capitolo.testo,
		dboPeriodico.R6Capitolo.testoAlternativo,
		dboPeriodico.R6Capitolo.nuovapagina, 
		dboPeriodico.R6Capitolo.queryOracle, 
		dboPeriodico.R6Capitolo.querySql,
		dboPeriodico.R6Capitolo.querySqlPeriodico
into #R6CAPITOLOPDF  
FROM   
dboPeriodico.ReportSezionePers AS a INNER JOIN
dboPeriodico.R6_SezioneR6Capitolo AS b ON a.IdSezione = b.IdSezione INNER JOIN
dboPeriodico.R6Capitolo ON b.IdCapitoloPDF = dboPeriodico.R6Capitolo.id
where a.idreport = @idModello

-- CREO LA TABELLA #R6ParagrafoPDF

SELECT  dboPeriodico.R6Paragrafo.id, 
		dboPeriodico.R6Paragrafo.titolo, 
		dboPeriodico.R6Paragrafo.testo, 
		dboPeriodico.R6Paragrafo.queryOracle, 
		dboPeriodico.R6Paragrafo.querySql, 
		dboPeriodico.R6Paragrafo.querySqlPeriodico,
		dboPeriodico.R6Paragrafo.SottoTitoloQuery,
		dboPeriodico.R6Paragrafo.SpazioNecessarioSezioneSuccessiva	

into #R6PARAGRAFOPDF   
FROM  dboPeriodico.ReportSezionePers AS a INNER JOIN
               dboPeriodico.R6_SezioneR6Paragrafo AS b ON a.IdSezione = b.IdSezione INNER JOIN
               dboPeriodico.R6Paragrafo ON b.IdParagrafoPDF = dboPeriodico.R6Paragrafo.id
				where a.idreport = @idModello


-- CREO LA TABELLA #R6SEZIONEPDF
SELECT 
		dboPeriodico.R6Sezione.id, 
		dboPeriodico.R6Sezione.codice, 
		dboPeriodico.R6Sezione.queryOracle, 
		dboPeriodico.R6Sezione.querySql, 
		dboPeriodico.R6Sezione.querySqlPeriodico,
		dboPeriodico.R6Sezione.ordineQueryOracle, 
		dboPeriodico.R6Sezione.ordineQuerySql
		--R6Sezione.nuovaPaginaDopo
into #R6SEZIONEPDF 
FROM  dboPeriodico.ReportSezionePers AS a INNER JOIN
               dboPeriodico.R6_SezioneR6Sezione AS b ON a.IdSezione = b.idFkSezione INNER JOIN
               dboPeriodico.R6Sezione ON b.idFkC6Sezione = dboPeriodico.R6Sezione.id
WHERE (a.IdReport = @idModello)


SELECT  DISTINCT #R6CAPITOLOPDF.id as idCapitolo
		,dboPeriodico.R6ReportR6Capitolo.ordineCapitolo as ordineCapitolo
		,#R6CAPITOLOPDF.titolo as titoloCapitolo
		,#R6CAPITOLOPDF.testo as testoCapitolo
		,#R6CAPITOLOPDF.testoAlternativo as testoCapitoloAlternativo
		,#R6CAPITOLOPDF.nuovapagina as nuovaPaginaCapitolo
--		,#R6CAPITOLOPDF.queryOracle as queryOracleCapitolo		
,Case when @periodicita = 'G' then  isnull(#R6CAPITOLOPDF.querySql,'') else
 Case when @periodicita = 'T' then  isnull(#R6CAPITOLOPDF.querySqlPeriodico,'')	
 END END as querySqlCapitolo	
		,#R6PARAGRAFOPDF.id as idParagrafo
		,dboPeriodico.R6CapitoloR6Paragrafo.ordineParagrafo as ordineParagrafo
		,#R6PARAGRAFOPDF.titolo as titoloParagrafo
		,#R6PARAGRAFOPDF.sottoTitoloQuery as sottoTitoloParagrafo
		,#R6PARAGRAFOPDF.testo as testoParagrafo
		,#R6PARAGRAFOPDF.spazioNecessarioSezioneSuccessiva as spazioNecessarioSezioneSuccessiva	
--		,isnull(#R6PARAGRAFOPDF.queryOracle,'') as queryOracleParagrafo
,Case when @periodicita = 'G' then  isnull(#R6PARAGRAFOPDF.querySql,'') else
 Case when @periodicita = 'T' then  isnull(#R6PARAGRAFOPDF.querySqlPeriodico,'')	
 END END as querySqlParagrafo
		,dboPeriodico.R6CapitoloR6Paragrafo.indicizzato as indicizzatoParagrafo		
		,dboPeriodico.R6ParagrafoR6Sezione.ordineSezione as ordineSezione
		,#R6SEZIONEPDF.id as idSezione
		,#R6SEZIONEPDF.codice as codiceSezione
--		,isnull(#R6SEZIONEPDF.queryOracle,'') as queryOracleSezione
,Case when @periodicita = 'G' then  isnull(#R6SEZIONEPDF.querySql,'') else
 Case when @periodicita = 'T' then  isnull(#R6SEZIONEPDF.querySqlPeriodico,'')	
 END END as querySqlSezione
		,dboPeriodico.R6ParagrafoR6Sezione.indicizzato as indicizzatoSezione
		,dboPeriodico.R6ParagrafoR6Sezione.filtroDataView as filtroSezione
		,dboPeriodico.R6ParagrafoR6Sezione.titolo as titoloSezione
		,isnull(dboPeriodico.R6ParagrafoR6Sezione.testo,'') as testoSezione
		,isnull(dboPeriodico.R6ParagrafoR6Sezione.testo1 ,'') as testoSezioneAlternativo
		,isnull(dboPeriodico.R6ParagrafoR6Sezione.nota,'') as notaSezione
		,isnull(dboPeriodico.R6ParagrafoR6Sezione.nota1,'') as notaSezioneAlternativo,
		dboPeriodico.R6ParagrafoR6Sezione.nuovaPaginaDopo as nuovaPaginaDopo
		--,#R6SEZIONEPDF.nuovaPaginaDopo as nuovaPaginaDopo
INTO #TABV
FROM  #R6SEZIONEPDF
INNER JOIN dboPeriodico.R6ParagrafoR6Sezione ON #R6SEZIONEPDF.id = dboPeriodico.R6ParagrafoR6Sezione.idFkSezione 
INNER JOIN #R6PARAGRAFOPDF ON dboPeriodico.R6ParagrafoR6Sezione.idFkParagrafo = #R6PARAGRAFOPDF.id 
INNER JOIN dboPeriodico.R6CapitoloR6Paragrafo ON #R6PARAGRAFOPDF.id = dboPeriodico.R6CapitoloR6Paragrafo.idFkParagrafo 
INNER JOIN #R6CAPITOLOPDF ON dboPeriodico.R6CapitoloR6Paragrafo.idFkCapitolo = #R6CAPITOLOPDF.id
INNER JOIN dboPeriodico.R6ReportR6Capitolo ON #R6CAPITOLOPDF.id = dboPeriodico.R6ReportR6Capitolo.idFkCapitolo
WHERE dboPeriodico.R6ParagrafoR6Sezione.idFkReport = @idReport
ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

  

DROP TABLE #R6CAPITOLOPDF
DROP TABLE #R6PARAGRAFOPDF
DROP TABLE #R6SEZIONEPDF



SELECT * FROM #TABV ORDER BY ordineCapitolo,ordineParagrafo,ordineSezione

END


 






















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_CRUSCOTTO_APPLICAZIONE_SIMULAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[GESTIONE_CRUSCOTTO_APPLICAZIONE_SIMULAZIONE] 'leggi','flag_archiviazione',2
CREATE procedure [C6MartPeriodico].[GESTIONE_CRUSCOTTO_APPLICAZIONE_SIMULAZIONE]
@tipoOperazione nvarchar(30)
--@tipoFlag nvarchar(30),
--@valoreFlag int

as

IF @tipoOperazione = 'leggi' 
	
	begin
		select * from dbo.Cruscotto_Applicazione_Simulazione
	end

ELSE IF @tipoOperazione = 'truncate' 
	begin
		truncate table  dbo.Cruscotto_Applicazione_Simulazione
		select * from dbo.dbo.Cruscotto_Applicazione_Simulazione;
	end
	
ELSE IF @tipoOperazione = 'updateFlag' 
	begin
	
		
		--EXECUTE ('update dbo.Cruscotto_Archiviazione set ' + @tipoFlag + '=' + @valoreFlag);

		select * from dbo.Cruscotto_Archiviazione;
	end
	






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_CUSTOMER_ERROR]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		Marian Zaki
-- Create date: 18/08/2010
-- Description:	Insert the exception raised for a customer 
--              while generating the diagnosis or the monitoring reports.
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_CUSTOMER_ERROR]
	@rete as char(1), 
    @cod_fiscale as varchar(16),
    @tipoReport as char(1),
	@errorText as text
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    INSERT INTO [C6MartPeriodico].[Scarti]
           ([Rete]
           ,[Cod_fiscale]
           ,[TipoReport]
           ,[ErrorText])
         
     VALUES
           (@rete
           ,@cod_fiscale 
           ,@tipoReport
           ,@errorText)
          
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONE_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONE_ZIP]
AS
BEGIN 
		DECLARE @IDElaborazioneZip int
		
		-- Controllo se esiste un'ultima elaborazione zip non terminata.
		SELECT @IDElaborazioneZip = IDElaborazioneZip
		FROM [C6MartPeriodico].ELABORAZIONI_ZIP
		WHERE  IDElaborazioneZip = (SELECT MAX(IDElaborazioneZip)
									FROM [C6MartPeriodico].ELABORAZIONI_ZIP)
				AND DataFine IS NULL
		
		IF @IDElaborazioneZip IS NULL
		BEGIN
			BEGIN TRY
				BEGIN TRANSACTION INSERT_ELABORAZIONE_ZIP
				INSERT INTO [C6MartPeriodico].[ELABORAZIONI_ZIP]
					   ([DataInizio])
				VALUES
						(GETDATE())
				COMMIT TRANSACTION INSERT_ELABORAZIONE_ZIP
				SELECT SCOPE_IDENTITY() AS IDElaborazioneZIP
			END TRY
			BEGIN CATCH
				ROLLBACK TRANSACTION INSERT_ELABORAZIONE_ZIP
				SELECT 0 AS IDElaborazioneZIP
			END CATCH
		END
		ELSE
			SELECT @IDElaborazioneZip AS IDElaborazioneZIP
END
		

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONE_ZIP_20170328]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONE_ZIP_20170328]
AS
BEGIN 
		DECLARE @IDElaborazioneZip int
		
		-- Controllo se esiste un'ultima elaborazione zip non terminata.
		SELECT @IDElaborazioneZip = IDElaborazioneZip
		FROM [C6MartPeriodico].ELABORAZIONI_ZIP
		WHERE  IDElaborazioneZip = (SELECT MAX(IDElaborazioneZip)
									FROM [C6MartPeriodico].ELABORAZIONI_ZIP)
				AND DataFine IS NULL
		
		IF @IDElaborazioneZip IS NULL
		BEGIN
			BEGIN TRY
				BEGIN TRANSACTION INSERT_ELABORAZIONE_ZIP
				INSERT INTO [C6StampeCentralizzate].[C6MartPeriodico].[ELABORAZIONI_ZIP]
					   ([DataInizio])
				VALUES
						(GETDATE())
				COMMIT TRANSACTION INSERT_ELABORAZIONE_ZIP
				SELECT SCOPE_IDENTITY() AS IDElaborazioneZIP
			END TRY
			BEGIN CATCH
				ROLLBACK TRANSACTION INSERT_ELABORAZIONE_ZIP
				SELECT 0 AS IDElaborazioneZIP
			END CATCH
		END
		ELSE
			SELECT @IDElaborazioneZip AS IDElaborazioneZIP
END
		

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONI_EMAIL_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_ELABORAZIONI_EMAIL_RNA]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	INSERT INTO [C6StampeCentralizzate].[C6MartPeriodico].[ELABORAZIONI_EMAIL_RNA]
           ([Data_Elaborazione]
           ,[ID_ELAB])
     VALUES
           (getdate()
           ,@ID_ELAB)
	END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_EMAIL_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_EMAIL_DA_INVIARE]
AS

--INSERT INTO C6MartPeriodico.Gestione_EmailBCK
--SELECT * FROM C6MartPeriodico.GESTIONE_EMAIL
--WHERE Data_Generazione < '20130613'

--UPDATE STATISTICS C6MartPeriodico.GESTIONE_EMAIL



--select * from c6martperiodico.anag_promotori where id_promotore = '014890'
--select * from c6storico.anag_promotori where id_promotore = '014890'
--update c6martperiodico.anag_promotori set e_mail = 'LBATTISTI2@bancafideuram.it' where id_promotore = '014890'
--drop table temp_mail
--
--select *
--from temp_mail
--where testo not like '<html>%'


BEGIN


	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'GESTIONE_INSERT_EMAIL_DA_INVIARE',
		GETDATE(),
		'Elaborazione trimestrale'
	)
		


--recupero la percentuale limite di risorse non associate

DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')

DECLARE @SERVIZI_OPERATIVI as varchar(50)
select @SERVIZI_OPERATIVI= dbo.getParametro('EmailServiziOperativi')

DECLARE @RESPONSABILE_PROCESSO as varchar(50)
select @RESPONSABILE_PROCESSO= dbo.getParametro('EmailResponsabileProcesso')

-- Cancellazione delle email non inviate, da rigenerare

DELETE from C6MartPeriodico.MailAvvisoTrimestraleAiPB
WHERE email_id  in (
SELECT m.email_id
from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
inner join [C6MartPeriodico].[GESTIONE_EMAIL]
  ON GESTIONE_EMAIL.email_id = m.email_id
WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N')

INSERT INTO C6MartPeriodico.MailAvvisoTrimestraleAiPB
SELECT --top 800
		GESTIONE_EMAIL.[ID_ELAB]
		,GESTIONE_EMAIL.rete
		,GESTIONE_EMAIL.codICEPB cod_agente
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,'' Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
				@Ambiente = 'Produzione' 
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,@SERVIZI_OPERATIVI,@RESPONSABILE_PROCESSO)
			else
				@DestinatarioEmail
		 end as [E_To]
		,'' E_Ccn
		,'' E_Cc
		, case 
			when 
				@Ambiente = 'Produzione' 
			then 
			    /* 20161206 solo per periodico */
				dbo.Replace_Subject_Email_Periodico(TIPO_EMAIL.[E_Subject],'','',ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			else
				dbo.Replace_Subject_Email_Periodico(TIPO_EMAIL.[E_Subject],'','',ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '---'
		 end as E_Subject
      ,dbo.Replace_Testo_Email_Periodico(GESTIONE_EMAIL.RETE,GESTIONE_EMAIL.[CodicePB],GESTIONE_EMAIL.TIPO,TIPO_EMAIL.[Testo])  Testo
--drop table temp_mail
--into temp_mail
FROM [C6MartPeriodico].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6MartPeriodico].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  AND GESTIONE_EMAIL.[Tipo] <> 'LC_REP_GEN'
--  INNER JOIN [C6Mart].[CONTRATTOSEI] CONTRATTOSEI
--  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
--  AND CONTRATTOSEI.Cod_Agente = GESTIONE_EMAIL.CodicePB
--  INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] ANAG_CLIENTI
--  ON ANAG_CLIENTI.Rete = CONTRATTOSEI.[Rete]
--  AND ANAG_CLIENTI.Cod_Fiscale = CONTRATTOSEI.Cod_Fiscale
  INNER JOIN [C6MartPeriodico].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = GESTIONE_EMAIL.[CodicePB]
  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
  --AND GESTIONE_EMAIL.rete = 's'

--da inserire su select
--	and testo like '<html>%'



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'GESTIONE_INSERT_EMAIL_DA_INVIARE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'GESTIONE_INSERT_EMAIL_DA_INVIARE'
		)


END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP] 
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@IDReport int,
	@NomeFile varchar(50),
	@TipoReport varchar(1),
	@NumeroPagine int,
	@RFA decimal(18,2) = 0,
	@CodiceContratto   varchar(11)
 
AS  
BEGIN

BEGIN TRY

BEGIN TRANSACTION

 declare @step varchar(20)
		DECLARE @ID_ELAB INT
		SET @ID_ELAB = C6Martperiodico.GETIDELAB()

 set @step='Step 1'
		DECLARE @isDelete int
declare @appIdReport int

		select @isDelete=count(*)
		from C6MartPeriodico.GESTIONE_PDF_FTP  WITH (TABLOCKX) WHERE 
        rete=@Rete and  codicefiscale=@CodiceFiscale
        and TipoReport = @TipoReport
		and IDReport = identityReport

IF @isDelete > 0 
   BEGIN
		   
set @step='Step 2'
        DELETE C6MartPeriodico.GESTIONE_PDF_FTP WITH (TABLOCKX) WHERE 
        rete=@Rete and  codicefiscale=@CodiceFiscale
        and TipoReport = @TipoReport
        and IDReport = identityReport
   end
   set @step='Step 3'
		DECLARE @isUpdate int


		select @isUpdate=count(*)
		from C6MartPeriodico.GESTIONE_PDF_FTP WITH (TABLOCKX) WHERE 
        rete=@Rete and  codicefiscale=@CodiceFiscale
        and TipoReport = @TipoReport
		and IDReport <> identityReport

IF @isUpdate = 0 
   BEGIN
   set @step='Step 4'

while exists(select 1 from  C6MartPeriodico.GESTIONE_PDF_FTP where IDReport = @IDReport)
begin
set @IDReport = @IDReport+ 1
end

		insert into C6MartPeriodico.GESTIONE_PDF_FTP
		(
			Rete,
			CodiceFiscale,
			IDReport,
			DataGenerazione,
			DataInvio,
			FlagInvio,
			NomeFile,
			TipoReport,
			numeroPagine,
			RFA,
			id_Fk_zip,
			ID_ELAB,
			Definitivo,
			codicecontratto
		)
		values
		(
			@Rete,
			@CodiceFiscale,
			@IDReport,
			Getdate(),
			null,
			'N',
			@NomeFile,
			@TipoReport,
			@NumeroPagine,
			@RFA,
			-1,
			@ID_ELAB,
			0,
			@CodiceContratto
			)

        -- ToDo ...togliere la select e gestire la variabile @@identity
			
		-- Recupero id appena creato 
		--where condition per nomefile ( r e cf possono dare id sbagliati ( Mon-Diag) )
		set @step='Step 5'
		select @appIdReport=identityReport
		from C6MartPeriodico.GESTIONE_PDF_FTP WITH (TABLOCKX)
		where rete=@Rete and  codicefiscale=@CodiceFiscale
		and tiporeport=@TipoReport
		--where nomefile=@NomeFile;
		

	  if @appIDReport > 0  Begin
	   
		set @step='Step 6'
		--aggiorno id report per mantenere la gestione in tutto il progetto
		update C6MartPeriodico.GESTIONE_PDF_FTP
		set idReport=@appIdReport
		where rete=@Rete and  codicefiscale=@CodiceFiscale
		and identityReport=@appIdReport and tiporeport=@TipoReport

	  END	


	END
ELSE
  BEGIN
  set @step='Step 7'
    UPdate C6martperiodico.Gestione_pdf_ftp
	SET  
	        DataGenerazione=Getdate(),
			DataInvio=null,
			FlagInvio='N',
			NomeFile=@NomeFile,
			TipoReport=@TipoReport,
			numeroPagine=@NumeroPagine,
			RFA=@RFA,
			id_Fk_zip=-1,
			ID_ELAB=@ID_ELAB,
			Definitivo=0,
			codicecontratto=@CodiceContratto 
    where RETE = @Rete and CodiceFiscale=@CodiceFiscale
	 and idReport=@IDReport

	 set @step='Step 8'
	 select @appIdReport=identityReport
	 from C6MartPeriodico.GESTIONE_PDF_FTP WITH (TABLOCKX)
	 where rete=@Rete and  codicefiscale=@CodiceFiscale
	and tiporeport=@TipoReport
  END 
		

set @IdReport = @appIdReport		
-- FC 05022015
-- IdReport temporaneo per gestione Parallelizzazione
-- L'idReport verrà aggiornato una volta generato in fase di inserimento del PDF su ReportManager

-- ToDo ...togliere la select e gestire la variabile @@identity
		
	--	declare @appIdReport int
	--	-- Recupero id appena creato 
	--	--where condition per nomefile ( r e cf possono dare id sbagliati ( Mon-Diag) )
	--	select @appIdReport=identityReport
	--	from C6MartPeriodico.GESTIONE_PDF_FTP
	--	where rete=@Rete and  codicefiscale=@CodiceFiscale
	--	and tiporeport=@TipoReport
	--	--where nomefile=@NomeFile;
		
	--if @appIDReport > 0  Begin
	   
		
	--	--aggiorno id report per mantenere la gestione in tutto il progetto
	--	update C6MartPeriodico.GESTIONE_PDF_FTP
	--	set idReport=@appIdReport
	--	where rete=@Rete and  codicefiscale=@CodiceFiscale
	--	and identityReport=@appIdReport and tiporeport=@TipoReport
		
		
		




-- COLAIANNI-CONSOLI - 28.06.2011
-- SETTA NELLA CONTROLLO_TRIMESTRALE LO STATO REPORT CORRISPONDENTE ALLA PRODUZIONE DEL REPORT:
-- DI DIAGNOSI (STATO: SEMILAVORATO) O DI MONITORAGGIO (STATO: STAMPATO)

		IF (@TipoReport = 'D')
			BEGIN
			set @step='Step 9'
				UPDATE c6martperiodico.controllo_trimestrale 
				SET stato_report=10, id_report_d=@IDReport, DATA_TRANSIZIONE=GETDATE() 
				WHERE  stato_report = 1
					   AND Rete = @Rete
					   AND Cod_Fiscale = @CodiceFiscale
					   
			END
		ELSE IF (@TipoReport = 'M')
			BEGIN
			set @step='Step 10'
				UPDATE c6martperiodico.controllo_trimestrale 
				SET  stato_report=4, id_report_m=@IDReport, DATA_TRANSIZIONE=GETDATE() 
				WHERE  ( (stato_report = 1 and flag_diagnosi=0) OR (stato_report = 10) )
					   AND Rete = @Rete
					   AND Cod_Fiscale = @CodiceFiscale
					    
			END

	    --return @numeroRighe
	   -- return  @@ROWCOUNT
	   
			set @step='Step 11'
	 update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
	set
	dtstamp = getdate()
	,elab = 10
	from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  
	where 	 Rete = @Rete
					   AND CodiceFiscale = @CodiceFiscale	


-- FC 05022015
-- IdReport temporaneo per gestione Parallelizzazione
-- L'idReport verrà aggiornato una volta generato in fase di inserimento del PDF su ReportManager
   set @step='Step 12'
   if @IDReport > 0 Begin
	   select @IdReport
	   from C6MartPeriodico.GESTIONE_PDF_FTP
	   where rete=@Rete and  codicefiscale=@CodiceFiscale
	   and tiporeport=@TipoReport
   end
   else
       Begin
         set @IDReport=-1
         select @IDReport
       END
   
COMMIT TRANSACTION

END TRY

BEGIN CATCH
   IF @@TRANCOUNT > 0
        ROLLBACK TRAN --RollBack in case of Error

  Declare @CodiceErrore int
	Declare @DescirzioneErrore varchar(250)
	declare @dataTime datetime
	Declare @nomePackage varchar(250)
	        
	select @CodiceErrore=error_number(),
			@nomePackage=ERROR_PROCEDURE() ,
			@DescirzioneErrore=ERROR_MESSAGE() ,
			@dataTime = getdate()
	set @DescirzioneErrore = @DescirzioneErrore + @step + ' (' + @CodiceFiscale + ';' + @Rete + cast(@IDReport as nvarchar(20)) + ')'
 exec  [C6Mart].[UT_INSERT_ERROR] @CodiceErrore,@DescirzioneErrore,@dataTime,null,null,@nomePackage
    
	 IF @@TRANCOUNT > 0
        ROLLBACK TRAN --RollBack in case of Error

END CATCH



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_04082015]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_04082015] 
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@IDReport int,
	@NomeFile varchar(50),
	@TipoReport varchar(1),
	@NumeroPagine int,
	@RFA decimal(18,2) = 0,
	@CodiceContratto   varchar(11)
 
AS  
BEGIN
 
		DECLARE @ID_ELAB INT
		SET @ID_ELAB = C6Martperiodico.GETIDELAB()
BEGIN TRY

        DELETE C6MartPeriodico.GESTIONE_PDF_FTP WHERE 
        rete=@Rete and  codicefiscale=@CodiceFiscale
        and TipoReport = @TipoReport
        --IDReport = @IDReport

		insert into C6MartPeriodico.GESTIONE_PDF_FTP
		(
			Rete,
			CodiceFiscale,
			IDReport,
			DataGenerazione,
			DataInvio,
			FlagInvio,
			NomeFile,
			TipoReport,
			numeroPagine,
			RFA,
			id_Fk_zip,
			ID_ELAB,
			Definitivo,
			codicecontratto
		)
		values
		(
			@Rete,
			@CodiceFiscale,
			@IDReport,
			Getdate(),
			null,
			'N',
			@NomeFile,
			@TipoReport,
			@NumeroPagine,
			@RFA,
			-1,
			@ID_ELAB,
			0,
			@CodiceContratto
			)
		
		
-- FC 05022015
-- IdReport temporaneo per gestione Parallelizzazione
-- L'idReport verrà aggiornato una volta generato in fase di inserimento del PDF su ReportManager

-- ToDo ...togliere la select e gestire la variabile @@identity
		
		declare @appIdReport int
		-- Recupero id appena creato 
		--where condition per nomefile ( r e cf possono dare id sbagliati ( Mon-Diag) )
		select @appIdReport=identityReport
		from C6MartPeriodico.GESTIONE_PDF_FTP
		where rete=@Rete and  codicefiscale=@CodiceFiscale
		and tiporeport=@TipoReport
		--where nomefile=@NomeFile;
		
	if @appIDReport > 0  Begin
	   
		
		--aggiorno id report per mantenere la gestione in tutto il progetto
		update C6MartPeriodico.GESTIONE_PDF_FTP
		set idReport=@appIdReport
		where rete=@Rete and  codicefiscale=@CodiceFiscale
		and identityReport=@appIdReport and tiporeport=@TipoReport
		
		
		
		 
		set @IdReport = @appIdReport



-- COLAIANNI-CONSOLI - 28.06.2011
-- SETTA NELLA CONTROLLO_TRIMESTRALE LO STATO REPORT CORRISPONDENTE ALLA PRODUZIONE DEL REPORT:
-- DI DIAGNOSI (STATO: SEMILAVORATO) O DI MONITORAGGIO (STATO: STAMPATO)

		IF (@TipoReport = 'D')
			BEGIN
				UPDATE c6martperiodico.controllo_trimestrale 
				SET stato_report=10, id_report_d=@IDReport, DATA_TRANSIZIONE=GETDATE() 
				WHERE  stato_report = 1
					   AND Rete = @Rete
					   AND Cod_Fiscale = @CodiceFiscale
					   
			END
		ELSE IF (@TipoReport = 'M')
			BEGIN
				UPDATE c6martperiodico.controllo_trimestrale 
				SET  stato_report=4, id_report_m=@IDReport, DATA_TRANSIZIONE=GETDATE() 
				WHERE  ( (stato_report = 1 and flag_diagnosi=0) OR (stato_report = 10) )
					   AND Rete = @Rete
					   AND Cod_Fiscale = @CodiceFiscale
					    
			END

	    --return @numeroRighe
	   -- return  @@ROWCOUNT
	   
			
	 update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
	set
	dtstamp = getdate()
	,elab = 10
	from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  
	where 	 Rete = @Rete
					   AND CodiceFiscale = @CodiceFiscale	

	END 
-- FC 05022015
-- IdReport temporaneo per gestione Parallelizzazione
-- L'idReport verrà aggiornato una volta generato in fase di inserimento del PDF su ReportManager
   
   if @IDReport > 0 Begin
	   select @IdReport
	   from C6MartPeriodico.GESTIONE_PDF_FTP
	   where rete=@Rete and  codicefiscale=@CodiceFiscale
	   and tiporeport=@TipoReport
   end
   else
       Begin
         set @IDReport=-1
         select @IDReport
       END
   
END TRY

BEGIN CATCH
  Declare @CodiceErrore int
	Declare @DescirzioneErrore varchar	
	declare @dataTime datetime
	Declare @nomePackage varchar
	        
	select @CodiceErrore=error_number(),
			@nomePackage=ERROR_PROCEDURE() ,
			@DescirzioneErrore=ERROR_MESSAGE() ,
			@dataTime = getdate()
			
 exec  [C6Mart].[UT_INSERT_ERROR] @CodiceErrore,@DescirzioneErrore,@dataTime,null,null,@nomePackage
    
END CATCH



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_GET_ID]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_GET_ID] 
(
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@TipoReport varchar(1)
)
AS  
BEGIN  
if exists ( select 1 from C6MartPeriodico.GESTIONE_PDF_FTP
	   where rete=@Rete and  codicefiscale=@CodiceFiscale
	   and tiporeport=@TipoReport)

	   select top(1) IdReport
	   from C6MartPeriodico.GESTIONE_PDF_FTP
	   where rete=@Rete and  codicefiscale=@CodiceFiscale
	   and tiporeport=@TipoReport

	   else
	   select -1
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22/12/2008
-- Description:	Per gestione richieste di reinvio PDF da parte di utenti HD o US
-- =============================================
--[C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]1055,1081
CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_PDF_FTP_RISTAMPA]
	@Id INT,
	@IdNuovo INT
AS
BEGIN

	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	INSERT INTO C6MartPeriodico.GESTIONE_PDF_FTP
		(
			Rete,
			CodiceFiscale,
			IDReport,
			DataGenerazione,
			DataInvio,
			FlagInvio,
			NomeFile,
			TipoReport,
			numeroPagine,
			RFA,
			id_Fk_zip,
			ID_ELAB
		)
	SELECT 
			Rete,
			CodiceFiscale,
			@IdNuovo,
			Getdate(),
			null,
			'N',
			NomeFile,
			'LR',
			numeroPagine + 1,
			RFA,
			-1,
			@ID_ELAB
	FROM C6MartPeriodico.GESTIONE_PDF_FTP
	WHERE IdReport = @Id
	RETURN @@ROWCOUNT
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- Inserimento nuovo [C6Mart].[GESTIONE_INSERT_ZIP] -1,'NomeFileOk','NomeFileOk'
CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_ZIP]
@NomeFile as varchar(255),
@NomeCartella as varchar(255),
@FKIDElaborazioneZip as int
AS
BEGIN 
BEGIN TRANSACTION
DECLARE @ID_ELAB INT
SET @ID_ELAB = C6Martperiodico.GETIDELAB()
declare @IdZip as int
set @IdZip = -1
--recupero idzip se Esiste insieme al NomeCartella
SELECT @IdZip=id,@NomeCartella=NomeCartella 
FROM
	C6MartPeriodico.GESTIONE_ZIP_FTP
WHERE
	FlagInvio = 'N'
	AND DateCopyToSend IS NULL

IF(@IDZIP = -1)--NON ESISTE
	BEGIN
	 INSERT INTO [C6MartPeriodico].[GESTIONE_ZIP_FTP]
           ( [NOMEFILE]
			,[DATAINVIO]
			,[FLAGINVIO]
			,[NOMECARTELLA]
			,[ID_ELAB]
			,[FKIDElaborazioneZip])
     VALUES
           ( @NOMEFILE
			,NULL
			,'N'
			,@NOMECARTELLA
			,@ID_ELAB
			,@FKIDElaborazioneZip)
	SET @IDZIP = SCOPE_IDENTITY()
	END
ELSE --ESISTE
	BEGIN
		 UPDATE [C6MartPeriodico].[GESTIONE_ZIP_FTP]
		 SET [NOMEFILE] = @NOMEFILE
		 WHERE ID = @IDZIP
	END
IF @@error <> 0
	begin
		rollback
	end
else
	begin
		commit
		select @IdZip IdZip,@NomeFile NomeFile,@NomeCartella NomeCartella
	end


end

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_INSERT_ZIP_IDX_NOINSERT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_INSERT_ZIP_IDX_NOINSERT]
@NomeCartella as varchar(255)
AS
bEGIN
--select id IdZip, NomeFile, NomeCartella
--from [C6MartPeriodico].[GESTIONE_ZIP_FTP_idx] where nomecartella = @NomeCartella


declare @c as varchar(1)
set @c = '['

declare @path as varchar(max)
set @path =  @NomeCartella
declare @nomefile as varchar(100)
declare @id as int
set @nomefile = substring(@path, 0, charindex('_LOTTO',@path))
set @id = cast( substring(@path,  charindex('_PACK_',@path)+6, charindex(@c,@path)-(charindex('_PACK_',@path)+6)) as int)

select id IdZip, @NomeCartella as NomeFile, NomeCartella
from [C6MartPeriodico].[GESTIONE_ZIP_FTP]
where  nomefile = @nomefile and id = @id

end


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_PDF_REVERT_FISCAL_CODE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[GESTIONE_PDF_REVERT_FISCAL_CODE]
(
 @FiscalCode nvarchar(max),
 @Rete nvarchar(max)
)	
AS
BEGIN
	
		update [C6MartPeriodico].[cruscotto_contrattisei] set elab=1 where  codicefiscale = @FiscalCode and rete=@rete
		update [C6MartPeriodico].[CONTROLLO_TRIMESTRALE] set stato_report=1, flag_diagnosi = 0 where  cod_fiscale = @FiscalCode and rete=@rete
		delete from  [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR] where  codicefiscale = @FiscalCode and rete=@rete
		
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Gestione_ProdottiProtetti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--[C6MartPeriodico].[Gestione_ProdottiProtetti] 'F', 'BBNLSN51E27D612T'
CREATE procedure [C6MartPeriodico].[Gestione_ProdottiProtetti]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

declare @isinInterfund80 varchar(20)

set @isinInterfund80 = 'LU1106988527'

BEGIN

declare @OrdineRiga int
declare @conta int

set @conta = 0
set @OrdineRiga = 0

	-- 1 LINEA MULTIRAMO
		SELECT
			@CodiceFiscale as CodiceFiscale
			,'FV Sintonia Linea Protezione 85' as DescrizioneProdotto
			,COD_CONF as Contratto
			,'TipoParagrafo1' as TipoParagrafo
			,'TipoProdotto1' as TipoProdotto
			,ROW_NUMBER() OVER(order by @CodiceFiscale) as OrdineRiga
		into #LineaMultiramo
		from [C6MartPeriodico].[CAPPROT_FVI]
		where rete = @Rete
			and codfis = @CodiceFiscale
			and codprod = 'RF' and subprod = 'MP'

	    select @conta = count(*) from #LineaMultiramo

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #LineaMultiramo

	-- 2 BLUE AND WHITE
		SELECT
			@CodiceFiscale as CodiceFiscale
			,DES_PROD_TIT as DescrizioneProdotto
			,COD_CONF as Contratto
			,'TipoParagrafo2' as TipoParagrafo
			,
			case
				when SUBPROD = 'CS80' then 'TipoProdotto2'
				when SUBPROD = 'CT80' then 'TipoProdotto3'
			end as TipoProdotto
			,ROW_NUMBER() OVER(order by somma_ctv desc, controvalore_riferimento desc) + @OrdineRiga AS OrdineRiga
		into #BlueWhite
		from [C6MartPeriodico].[CAPPROT_FVI]
		where SUBPROD in ('CS80', 'CT80')
		and Rete = @Rete
		and CODFIS = @CodiceFiscale
		order by somma_ctv desc, controvalore_riferimento desc

		select @conta = count(*) from #BlueWhite

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #BlueWhite

	--3 INTERFUND
		SELECT
			a.CODFIS as CodiceFiscale
			,a.des_prod_tit as DescrizioneProdotto
			,'' as Contratto
			,'TipoParagrafo3' as TipoParagrafo
			,'TipoProdotto1' as TipoProdotto
			,@OrdineRiga + 1 AS OrdineRiga
		into #Interfund80
		FROM C6MartPeriodico.capprot a
		WHERE 1=1
		AND a.RETE = @Rete 
		AND a.CODFIS = @CodiceFiscale

		select @conta = count(*) from #Interfund80

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #Interfund80

	-- 4 FONDITALIA
		SELECT
			a.CODFIS as CodiceFiscale
			,a.desprodtit as DescrizioneProdotto
			,'' as Contratto
			,'TipoParagrafo3' as TipoParagrafo
			,'TipoProdotto2' as TipoProdotto
			,@OrdineRiga + 1 AS OrdineRiga
		into #Fonditalia80
		FROM c6martperiodico.foi80 a
		WHERE 1=1
		AND a.RETE = @Rete 
		AND a.CODFIS = @CodiceFiscale

	select * from #LineaMultiramo
	union
	select * from #BlueWhite
	union
	select * from #Interfund80
	union
	select * from #Fonditalia80
	order by OrdineRiga
END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Gestione_ProdottiProtetti_20171215]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6MartPeriodico].[Gestione_ProdottiProtetti] 'F', 'TTVNNA39S64H935H'
CREATE procedure [C6MartPeriodico].[Gestione_ProdottiProtetti_20171215]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

declare @isinInterfund80 varchar(20)

set @isinInterfund80 = 'LU1106988527'

BEGIN

declare @OrdineRiga int
declare @conta int

set @conta = 0
set @OrdineRiga = 0

	-- 1 LINEA MULTIRAMO
		SELECT
			@CodiceFiscale as CodiceFiscale
			,'Polizza Multiramo con protezione Linea Protetta' as DescrizioneProdotto
			,COD_CONF as Contratto
			,'TipoParagrafo1' as TipoParagrafo
			,'TipoProdotto1' as TipoProdotto
			,ROW_NUMBER() OVER(order by @CodiceFiscale) as OrdineRiga
		into #LineaMultiramo
		from [C6MartPeriodico].[CAPPROT_FVI]
		where rete = @Rete
			and codfis = @CodiceFiscale
			and codprod = 'RF' and subprod = 'MP'

	    select @conta = count(*) from #LineaMultiramo

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #LineaMultiramo

	-- 2 BLUE AND WHITE
		SELECT
			@CodiceFiscale as CodiceFiscale
			,DES_PROD_TIT as DescrizioneProdotto
			,COD_CONF as Contratto
			,'TipoParagrafo2' as TipoParagrafo
			,
			case
				when SUBPROD = 'CS80' then 'TipoProdotto2'
				when SUBPROD = 'CT80' then 'TipoProdotto3'
			end as TipoProdotto
			,ROW_NUMBER() OVER(order by somma_ctv desc, controvalore_riferimento desc) + @OrdineRiga AS OrdineRiga
		into #BlueWhite
		from [C6MartPeriodico].[CAPPROT_FVI]
		where SUBPROD in ('CS80', 'CT80')
		and Rete = @Rete
		and CODFIS = @CodiceFiscale
		order by somma_ctv desc, controvalore_riferimento desc

		select @conta = count(*) from #BlueWhite

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #BlueWhite

	--3 INTERFUND
		SELECT
			a.CODFIS as CodiceFiscale
			,a.des_prod_tit as DescrizioneProdotto
			,'' as Contratto
			,'TipoParagrafo3' as TipoParagrafo
			,'TipoProdotto1' as TipoProdotto
			,ROW_NUMBER() OVER(order by controvalore desc) + @OrdineRiga AS OrdineRiga
		into #Interfund80
		FROM C6MartPeriodico.capprot a
		WHERE 1=1
		AND a.RETE = @Rete 
		AND a.CODFIS = @CodiceFiscale

		select @conta = count(*) from #Interfund80

		if @conta > 0
			select @OrdineRiga = max(OrdineRiga) from #Interfund80

	-- 4 FONDITALIA
		SELECT
			a.CODFIS as CodiceFiscale
			,a.desprodtit as DescrizioneProdotto
			,'' as Contratto
			,'TipoParagrafo3' as TipoParagrafo
			,'TipoProdotto2' as TipoProdotto
			,ROW_NUMBER() OVER(order by ctv desc) + @OrdineRiga AS OrdineRiga
		into #Fonditalia80
		FROM c6martperiodico.foi80 a
		WHERE 1=1
		AND a.RETE = @Rete 
		AND a.CODFIS = @CodiceFiscale

	select * from #LineaMultiramo
	union
	select * from #BlueWhite
	union
	select * from #Interfund80
	union
	select * from #Fonditalia80
	order by OrdineRiga
END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_S_Intermediari]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Mart].[GESTIONE_S_Intermediari]  'S','GHGRTI63T44L219D'
--[C6MartPeriodico].[GESTIONE_S_Intermediari]  'F','BGLSRG61E30L702A'
CREATE procedure [C6MartPeriodico].[GESTIONE_S_Intermediari] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceCliente varchar(16)
AS

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

	SELECT DISTINCT INTERMEDIARIO
	FROM	C6MartPeriodico.PATRIMONIO_TERZI
	WHERE RETE = @Rete
	AND COD_FISCALE = @CodiceCliente
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SCARTI_CRUSCOTTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[GESTIONE_SCARTI_CRUSCOTTO]
    @codicefiscale as varchar(16),
	@rete as varchar(1),	
	@stato as int,
	@errormessage as varchar(1000) 

AS
BEGIN		
	update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
	set elab = @stato  where  codicefiscale = @codicefiscale and  rete = @rete and elab = 3
	
	IF @@ROWCOUNT <> 0  AND @stato < -1 
		INSERT  INTO [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR] VALUES (@codicefiscale,@rete,getdate(),@errormessage)
END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_ELABORAZIONI_EMAIL_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_ELABORAZIONI_EMAIL_RNA]
AS
BEGIN

	SET NOCOUNT ON;

	select C6MartPeriodico.getNumeroElaborazioniEmailAlMese() as righe

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--[C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
AS


BEGIN

--***********************  Modifica del 13-14/09/2016 per inserire gli eventuali errori nella nuova tabella
insert into [C6MartPeriodico].MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO (ID_ELAB,rete,cod_agente,TIPO,Email_Id,Cod_Fiscale,E_From,E_To,E_Ccn,E_Cc,E_Subject,Testo,codicePB,data_generazione,Inviata,Data_Invio)
SELECT m.*, e.codicePB,  e.data_generazione,  e.Inviata, e.Data_Invio
from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
inner join [C6MartPeriodico].[GESTIONE_EMAIL] e
  ON e.email_id = m.email_id
left join C6MartPeriodico.MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO err 
on err.cod_agente = m.cod_agente and err.cod_fiscale = m.cod_fiscale
WHERE isnull(e.Inviata,'N')='N'
and m.testo like '<html>%'
and m.e_subject is not null
and e.email_id NOT IN ('14383','2176','137')
and (m.e_to is  null or m.e_to = '')
and err.cod_agente is null


--SELECT top 800 *
--from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
--inner join [C6MartPeriodico].[GESTIONE_EMAIL]
--  ON GESTIONE_EMAIL.email_id = m.email_id
--WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
--and testo like '<html>%'
--and e_subject is not null
--and GESTIONE_EMAIL.email_id NOT IN ('14383','2176','137')


SELECT top 800 *
from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
inner join [C6MartPeriodico].[GESTIONE_EMAIL] e
  ON e.email_id = m.email_id
WHERE isnull(e.Inviata,'N')='N'
and testo like '<html>%'
and e_subject is not null
and e.email_id NOT IN ('14383','2176','137')
and (e_to is not null and e_to <> '')
--*********************** Fine Modifica del 13-14/09/2016

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE_20160913]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE_20160913]
AS


BEGIN

SELECT top 800 *
from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
inner join [C6MartPeriodico].[GESTIONE_EMAIL]
  ON GESTIONE_EMAIL.email_id = m.email_id
WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
and testo like '<html>%'
and e_subject is not null
and GESTIONE_EMAIL.email_id NOT IN ('14383','2176','137')

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE_bk]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE_bk]
AS


BEGIN

--***********************  Modifica del 13-14/09/2016 per inserire gli eventuali errori nella nuova tabella
insert into [C6MartPeriodico].MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO (ID_ELAB,rete,cod_agente,TIPO,Email_Id,Cod_Fiscale,E_From,E_To,E_Ccn,E_Cc,E_Subject,Testo,codicePB,data_generazione,Inviata,Data_Invio)
SELECT m.*, e.codicePB,  e.data_generazione,  e.Inviata, e.Data_Invio
from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
inner join [C6MartPeriodico].[GESTIONE_EMAIL] e
  ON e.email_id = m.email_id
left join C6MartPeriodico.MailAvvisoTrimestraleAiPB__ERR_EMAIL_TO err 
on err.cod_agente = m.cod_agente and err.cod_fiscale = m.cod_fiscale
WHERE isnull(e.Inviata,'N')='N'
and m.testo like '<html>%'
and m.e_subject is not null
and e.email_id NOT IN ('14383','2176','137')
and (m.e_to is  null or m.e_to = '')
and err.cod_agente is null


--SELECT top 800 *
--from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
--inner join [C6MartPeriodico].[GESTIONE_EMAIL]
--  ON GESTIONE_EMAIL.email_id = m.email_id
--WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
--and testo like '<html>%'
--and e_subject is not null
--and GESTIONE_EMAIL.email_id NOT IN ('14383','2176','137')


SELECT top 800 *
from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
inner join [C6MartPeriodico].[GESTIONE_EMAIL] e
  ON e.email_id = m.email_id
WHERE isnull(e.Inviata,'N')='N'
and testo like '<html>%'
and e_subject is not null
and e.email_id NOT IN ('14383','2176','137')
and (e_to is not null and e_to <> '')
--*********************** Fine Modifica del 13-14/09/2016

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [C6MartPeriodico].[GESTIONE_SELECT_FTP_DA_INVIARE]
 @isLotto1 int = 0
AS
BEGIN
	SELECT 
		GESTIONE_PDF_FTP.Rete,
		GESTIONE_PDF_FTP.CodiceFiscale ,
		--GESTIONE_PDF_FTP.IdReport
		GESTIONE_PDF_FTP.identityreport as IdReport
--		,(NomeFile + '_' + (Case TipoReport when 'D' then 'DP' WHEN 'M' THEN 'MP' else TipoReport end)) as NomeFile
		,(
		  NomeFile + '_' 
		           + (
		              CASE GESTIONE_PDF_FTP.TipoReport WHEN 'D' THEN 'DP' 
		                                               WHEN 'M' THEN (
																	  CASE CONTRATTOSEI.TIP_CONTRATTO 
																	  WHEN 2 THEN 'PP' 
		                                                              ELSE 'MP' 
		                                                               END 
		                                                             ) 
		                                               ELSE GESTIONE_PDF_FTP.TipoReport 
		                                                END
		             )
		 ) as NomeFile		
		,TipoReport
		--,convert(varchar,GESTIONE_PDF_FTP.IdReport)+ '_' +  NomeFile   NomeFilelocale
		,convert(varchar,GESTIONE_PDF_FTP.identityreport)+ '_' +  NomeFile   NomeFilelocale
	FROM       C6MartPeriodico.GESTIONE_PDF_FTP
    INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON  CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale	
    INNER JOIN c6martperiodico.controllo_trimestrale 
    on  controllo_trimestrale.Rete = GESTIONE_PDF_FTP.Rete
		and controllo_trimestrale.Cod_Fiscale = GESTIONE_PDF_FTP.CodiceFiscale
		LEFT JOIN (SELECT [Cod_Fiscale],[Rete] FROM [C6MartPeriodico].[WHITELIST_ZIP]
		WHERE [Pacchetto_Zip] iS null) WHITELIST_ZIP
		on WHITELIST_ZIP.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
		and WHITELIST_ZIP.Rete = CONTRATTOSEI.RETE
			left join [C6MartPeriodico].[ExcludedList] on GESTIONE_PDF_FTP.Rete = [ExcludedList].Rete and GESTIONE_PDF_FTP.codicefiscale = [ExcludedList].codicefiscale
	WHERE
		FlagInvio = 'N'
	--	and GESTIONE_PDF_FTP.Rete = null and GESTIONE_PDF_FTP.codicefiscale = null
		and  ExcludedList.Rete is null
		---- AND Definitivo = 0 Il FLag non è piu gestito per la generazione Zip
		and dataGenerazione > c6martperiodico.gettrimestre(getdate(),0)
		--and stato_report=4
		and (WHITELIST_ZIP.rete is not null or @isLotto1 = 0 or 0 = ( SELECT count(*) 
		FROM [C6MartPeriodico].[WHITELIST_ZIP]
		WHERE [Pacchetto_Zip] iS null
		))
	--EN20170706 - output ordered by CAP demand from SELECTA	
	--order by rete,codiceFiscale,identityreport --idreport
	order by rete,CAP, codiceFiscale,identityreport --idreport
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_DA_INVIARE_20170413_b4_NewZipFtpProcess]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE PROCEDURE [C6MartPeriodico].[GESTIONE_SELECT_FTP_DA_INVIARE_20170413_b4_NewZipFtpProcess]
 @isLotto1 int = 0
AS
BEGIN
	SELECT 
		GESTIONE_PDF_FTP.Rete,
		GESTIONE_PDF_FTP.CodiceFiscale ,
		--GESTIONE_PDF_FTP.IdReport
		GESTIONE_PDF_FTP.identityreport as IdReport
--		,(NomeFile + '_' + (Case TipoReport when 'D' then 'DP' WHEN 'M' THEN 'MP' else TipoReport end)) as NomeFile
		,(
		  NomeFile + '_' 
		           + (
		              CASE GESTIONE_PDF_FTP.TipoReport WHEN 'D' THEN 'DP' 
		                                               WHEN 'M' THEN (
																	  CASE CONTRATTOSEI.TIP_CONTRATTO 
																	  WHEN 2 THEN 'PP' 
		                                                              ELSE 'MP' 
		                                                               END 
		                                                             ) 
		                                               ELSE GESTIONE_PDF_FTP.TipoReport 
		                                                END
		             )
		 ) as NomeFile		
		,TipoReport
		--,convert(varchar,GESTIONE_PDF_FTP.IdReport)+ '_' +  NomeFile   NomeFilelocale
		,convert(varchar,GESTIONE_PDF_FTP.identityreport)+ '_' +  NomeFile   NomeFilelocale

--	,Case TipoReport when 'D' then 'DW' else TipoReport end
--		,dp mp
--		DataGenerazione,
--		DataInvio,
--		FlagInvio,
--		NomeFile
	FROM       C6MartPeriodico.GESTIONE_PDF_FTP
    INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON  CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale	
    INNER JOIN c6martperiodico.controllo_trimestrale 
    on  controllo_trimestrale.Rete = GESTIONE_PDF_FTP.Rete
		and controllo_trimestrale.Cod_Fiscale = GESTIONE_PDF_FTP.CodiceFiscale
		LEFT JOIN (SELECT [Cod_Fiscale],[Rete] FROM [C6MartPeriodico].[WHITELIST_ZIP]
		WHERE [Pacchetto_Zip] iS null) WHITELIST_ZIP
		on WHITELIST_ZIP.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
		and WHITELIST_ZIP.Rete = CONTRATTOSEI.RETE
	WHERE
		FlagInvio = 'N'
		---- AND Definitivo = 0 Il FLag non è piu gestito per la generazione Zip
		and dataGenerazione > c6martperiodico.gettrimestre(getdate(),0)
		and stato_report=4
		and (WHITELIST_ZIP.rete is not null or @isLotto1 = 0 or 0 = ( SELECT count(*) 
		FROM [C6MartPeriodico].[WHITELIST_ZIP]
		WHERE [Pacchetto_Zip] iS null
		))
		
	order by rete,codiceFiscale,identityreport --idreport
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_DA_INVIARE_20170712_b4_OrderedByCAP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6MartPeriodico].[GESTIONE_SELECT_FTP_DA_INVIARE_20170712_b4_OrderedByCAP]
 @isLotto1 int = 0
AS
BEGIN
	SELECT 
		GESTIONE_PDF_FTP.Rete,
		GESTIONE_PDF_FTP.CodiceFiscale ,
		--GESTIONE_PDF_FTP.IdReport
		GESTIONE_PDF_FTP.identityreport as IdReport
--		,(NomeFile + '_' + (Case TipoReport when 'D' then 'DP' WHEN 'M' THEN 'MP' else TipoReport end)) as NomeFile
		,(
		  NomeFile + '_' 
		           + (
		              CASE GESTIONE_PDF_FTP.TipoReport WHEN 'D' THEN 'DP' 
		                                               WHEN 'M' THEN (
																	  CASE CONTRATTOSEI.TIP_CONTRATTO 
																	  WHEN 2 THEN 'PP' 
		                                                              ELSE 'MP' 
		                                                               END 
		                                                             ) 
		                                               ELSE GESTIONE_PDF_FTP.TipoReport 
		                                                END
		             )
		 ) as NomeFile		
		,TipoReport
		--,convert(varchar,GESTIONE_PDF_FTP.IdReport)+ '_' +  NomeFile   NomeFilelocale
		,convert(varchar,GESTIONE_PDF_FTP.identityreport)+ '_' +  NomeFile   NomeFilelocale
	FROM       C6MartPeriodico.GESTIONE_PDF_FTP
    INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON  CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale	
    INNER JOIN c6martperiodico.controllo_trimestrale 
    on  controllo_trimestrale.Rete = GESTIONE_PDF_FTP.Rete
		and controllo_trimestrale.Cod_Fiscale = GESTIONE_PDF_FTP.CodiceFiscale
		LEFT JOIN (SELECT [Cod_Fiscale],[Rete] FROM [C6MartPeriodico].[WHITELIST_ZIP]
		WHERE [Pacchetto_Zip] iS null) WHITELIST_ZIP
		on WHITELIST_ZIP.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
		and WHITELIST_ZIP.Rete = CONTRATTOSEI.RETE
			left join [C6MartPeriodico].[ExcludedList] on GESTIONE_PDF_FTP.Rete = [ExcludedList].Rete and GESTIONE_PDF_FTP.codicefiscale = [ExcludedList].codicefiscale
	WHERE
		FlagInvio = 'N'
	--	and GESTIONE_PDF_FTP.Rete = null and GESTIONE_PDF_FTP.codicefiscale = null
		and  ExcludedList.Rete is null
		---- AND Definitivo = 0 Il FLag non è piu gestito per la generazione Zip
		and dataGenerazione > c6martperiodico.gettrimestre(getdate(),0)
		--and stato_report=4
		and (WHITELIST_ZIP.rete is not null or @isLotto1 = 0 or 0 = ( SELECT count(*) 
		FROM [C6MartPeriodico].[WHITELIST_ZIP]
		WHERE [Pacchetto_Zip] iS null
		))
		
	order by rete,codiceFiscale,identityreport --idreport
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]
-- =============================================
-- Author:		<Adriano Colaneri>
-- Create date: <2018/03/06>
-- Description:	<Sostituisce la GESTIONE_SELECT_FTP_INVIATI, restituendo nel recordset finale, oltre alla riga,
--					anche il campo Tipo che indica, col valore 1, che la riga è relativa ad un unico report prodotto,
--					col valore 2, che la riga è relativa a due report prodotti.>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]  
@idFkzip int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
  	
	-- Estrazione dei record
    SELECT DISTINCT
		   C6MartPeriodico.GESTIONE_PDF_FTP.Rete, 
		   [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale
	into #t
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip

	 -- Conteggio dei report generati per ciascuna coppia Rete-CodiceFiscale (Se uno solo di tipo M oppure due, di tipo D + tipo M)
	 select
		#t.Rete,
		#t.CodiceFiscale,
		count(*) as cont
	 into #t1
	 from #t inner join C6MartPeriodico.GESTIONE_PDF_FTP
		on #t.Rete = C6MartPeriodico.GESTIONE_PDF_FTP.Rete
		and #t.CodiceFiscale = C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale
	 group by #t.Rete, #t.CodiceFiscale

	 -- Composizione della riga da scrivere nel file IDX
	 select
		[C6MartPeriodico].CONCATENA(#t.Rete, #t.CodiceFiscale) as Riga,
		#t1.cont as Tipo
	 from #t inner join #t1
	 on #t.Rete = #t1.Rete
	 and #t.CodiceFiscale = #t1.CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20180214_bonifica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec sp_recompile '[C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]'
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20180214_bonifica]  
@idFkzip int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
  	
    SELECT DISTINCT 
		[C6MartPeriodico].CONCATENA_20180214_bonifica(C6MartPeriodico.GESTIONE_PDF_FTP.Rete, 
		   [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale,
		   @idFkzip) AS riga
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip 
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20180308_PreIDX2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec sp_recompile '[C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]'
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20180308_PreIDX2]  
@idFkzip int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
  	
    SELECT DISTINCT 
		[C6MartPeriodico].CONCATENA(C6MartPeriodico.GESTIONE_PDF_FTP.Rete, 
		   [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale) AS riga
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip 
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20180420]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]
-- =============================================
-- Author:		<Adriano Colaneri>
-- Create date: <2018/03/06>
-- Description:	<Sostituisce la GESTIONE_SELECT_FTP_INVIATI, restituendo nel recordset finale, oltre alla riga,
--					anche il campo Tipo che indica, col valore 1, che la riga è relativa ad un unico report prodotto,
--					col valore 2, che la riga è relativa a due report prodotti.>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20180420]  
@idFkzip int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
  	
	-- Estrazione dei record
    SELECT DISTINCT
		   C6MartPeriodico.GESTIONE_PDF_FTP.Rete, 
		   [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale
	into #t
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip

	 -- Conteggio dei report generati per ciascuna coppia Rete-CodiceFiscale (Se uno solo di tipo M oppure due, di tipo D + tipo M)
	 select
		#t.Rete,
		#t.CodiceFiscale,
		count(*) as cont
	 into #t1
	 from #t inner join C6MartPeriodico.GESTIONE_PDF_FTP
		on #t.Rete = C6MartPeriodico.GESTIONE_PDF_FTP.Rete
		and #t.CodiceFiscale = C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale
	 group by #t.Rete, #t.CodiceFiscale

	 -- Composizione della riga da scrivere nel file IDX
	 select
		#t1.cont as Tipo,
		[C6MartPeriodico].CONCATENA(#t.Rete, #t.CodiceFiscale) as Riga
	 from #t inner join #t1
	 on #t.Rete = #t1.Rete
	 and #t.CodiceFiscale = #t1.CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20240225]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--exec [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]
-- =============================================
-- Author:		<Adriano Colaneri>
-- Create date: <2018/03/06>
-- Description:	<Sostituisce la GESTIONE_SELECT_FTP_INVIATI, restituendo nel recordset finale, oltre alla riga,
--					anche il campo Tipo che indica, col valore 1, che la riga è relativa ad un unico report prodotto,
--					col valore 2, che la riga è relativa a due report prodotti.>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_20240225]  --''
@idFkzip int
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
  	
	-- Estrazione dei record
    SELECT DISTINCT
		   C6MartPeriodico.GESTIONE_PDF_FTP.Rete, 
		   [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale
	into #t
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale


	 -- Conteggio dei report generati per ciascuna coppia Rete-CodiceFiscale (Se uno solo di tipo M oppure due, di tipo D + tipo M)
	 select
		#t.Rete,
		#t.CodiceFiscale,
		count(*) as cont
	 into #t1
	 from #t inner join C6MartPeriodico.GESTIONE_PDF_FTP
		on #t.Rete = C6MartPeriodico.GESTIONE_PDF_FTP.Rete
		and #t.CodiceFiscale = C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale
	 group by #t.Rete, #t.CodiceFiscale

	 -- Composizione della riga da scrivere nel file IDX
	 select
		[C6MartPeriodico].CONCATENA_20240225(#t.Rete, #t.CodiceFiscale) as Riga,
		#t1.cont as Tipo
	 from #t inner join #t1
	 on #t.Rete = #t1.Rete
	 and #t.CodiceFiscale = #t1.CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME]
-- =============================================
-- Author:		<Adriano Colaneri>
-- Create date: <2018/03/06>
-- Description:	<Sostituisce la GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME, restituendo nel recordset finale, oltre alla riga e al nome del file,
--					anche il campo Tipo che indica, col valore 1, che la riga è relativa ad un unico report prodotto,
--					col valore 2, che la riga è relativa a due report prodotti.>
-- =============================================

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME]  
@idFkzip int
AS
BEGIN

	SET NOCOUNT ON;
       
    SELECT DISTINCT 
		[C6MartPeriodico].GESTIONE_PDF_FTP.Rete, 
		[C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale,
		(case when tiporeport = 'D' then '' else NomeFile end) as NomeFile
	into #t
    FROM [C6MartPeriodico].GESTIONE_PDF_FTP
		INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
			ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
			AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
			ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
			AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip

	-- Conteggio dei report generati per ciascuna coppia Rete-CodiceFiscale (Se uno solo di tipo M oppure due, di tipo D + tipo M)
	 select
		#t.Rete,
		#t.CodiceFiscale,
		count(*) as cont
	 into #t1
	 from #t inner join C6MartPeriodico.GESTIONE_PDF_FTP
		on #t.Rete = C6MartPeriodico.GESTIONE_PDF_FTP.Rete
		and #t.CodiceFiscale = C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale
	 group by #t.Rete, #t.CodiceFiscale

	 -- Composizione della riga da scrivere nel file IDX
	 select
		[C6MartPeriodico].CONCATENA(#t.Rete, #t.CodiceFiscale) as Riga,
		#t.NomeFile,
		#t1.cont as Tipo
	 from #t inner join #t1
	 on #t.Rete = #t1.Rete
	 and #t.CodiceFiscale = #t1.CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME_20180308_PreIDX2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME_20180308_PreIDX2]  
@idFkzip int
AS
BEGIN
       SET NOCOUNT ON;
       
    SELECT DISTINCT 
            		[C6MartPeriodico].CONCATENA(C6MartPeriodico.GESTIONE_PDF_FTP.Rete, 
		   [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale) AS riga , (case when tiporeport = 'D' then '' else NomeFile end) as NomeFile
    	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip 
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME_20180420]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME]
-- =============================================
-- Author:		<Adriano Colaneri>
-- Create date: <2018/03/06>
-- Description:	<Sostituisce la GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME, restituendo nel recordset finale, oltre alla riga e al nome del file,
--					anche il campo Tipo che indica, col valore 1, che la riga è relativa ad un unico report prodotto,
--					col valore 2, che la riga è relativa a due report prodotti.>
-- =============================================

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_INCLUDINGFILENAME_20180420]  
@idFkzip int
AS
BEGIN

	SET NOCOUNT ON;
       
    SELECT DISTINCT 
		[C6MartPeriodico].GESTIONE_PDF_FTP.Rete, 
		[C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale,
		(case when tiporeport = 'D' then '' else NomeFile end) as NomeFile
	into #t
    FROM [C6MartPeriodico].GESTIONE_PDF_FTP
		INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
			ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
			AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
		INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
			ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
			AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	 GESTIONE_PDF_FTP.id_fk_zip = @idFkzip

	-- Conteggio dei report generati per ciascuna coppia Rete-CodiceFiscale (Se uno solo di tipo M oppure due, di tipo D + tipo M)
	 select
		#t.Rete,
		#t.CodiceFiscale,
		count(*) as cont
	 into #t1
	 from #t inner join C6MartPeriodico.GESTIONE_PDF_FTP
		on #t.Rete = C6MartPeriodico.GESTIONE_PDF_FTP.Rete
		and #t.CodiceFiscale = C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale
	 group by #t.Rete, #t.CodiceFiscale

	 -- Composizione della riga da scrivere nel file IDX
	 select
		#t1.cont as Tipo,
		[C6MartPeriodico].CONCATENA(#t.Rete, #t.CodiceFiscale) as Riga,
		#t.NomeFile
	 from #t inner join #t1
	 on #t.Rete = #t1.Rete
	 and #t.CodiceFiscale = #t1.CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_prova_20141223]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--exec sp_recompile '[C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI]'
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_INVIATI_prova_20141223] 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    declare @idFkzip int
    
 select @idFkzip  = max(id_fk_zip) 
	from c6martperiodico.gestione_pdf_ftp_prova_20141223 



print @idFkzip
-- Facciate(6)CppBollettini(2)IDENTIFICATIVODOCUMENTO(50)NOMINATIVODESTINATARIO(50)VIA(50)CAP(5)LOCALITA(50)PROVINCIA(2)NAZIONE(1)TIPOPOSTALIZZAZIONE(2)FILESPOOL(50)ALLEGATO1(1)ALLEGATO1(2)NAZIONEESTERA(30)
--FacciateXXXXX(6)00CodiceFiscale(50)NOMINATIVODESTINATARIO(50)VIA(50)CAP(5)LOCALITA(50)PROVINCIA(2)IoE(1)PE(2)NOMEFILE(50)0(1)0(2)NAZIONEESTERA(30)
--	(right('000000' + cast(isnull(GESTIONE_PDF_FTP.numeroPagine,0) as varchar(6)),6) -- Facciate(6)
--	+ '00' --CppBollettini(2)
--	+ '                                                  ' --IDENTIFICATIVODOCUMENTO(50)
--	+ LEFT(isnull(ANAG_CLIENTI.Cognome,'COGNOME') + ' ' + ISNULL(ANAG_CLIENTI.Nome,'NOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
--    + LEFT(CONTRATTOSEI.Indirizzo + '                                                  ',50) --VIA(50)
--    + LEFT(CONTRATTOSEI.CAP + '     ',5) --CAP(5)  
--	+ LEFT(CONTRATTOSEI.Citta + '                                                  ',50) --LOCALITA(50)
--	+ LEFT(CONTRATTOSEI.Prov + '  ',2)--PROVINCIA(2)
--	+ (CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
--    + 'PE' --TIPOPOSTALIZZAZIONE(2)
--	+ LEFT(GESTIONE_PDF_FTP.NomeFile + '                                                  ',50)--NOMEFILE(50)
--	+ '0' --0(1)
--    + '0' --0(2)
--    + LEFT((CASE UPPER(CONTRATTOSEI.Nazione) WHEN 'ITALIA' THEN '' ELSE CONTRATTOSEI.Nazione END) + '                               ',30)) -- NAZIONEESTERA(30)
--	
    SELECT DISTINCT 
		--codiceFiscale,
		--id_fk_zip,
		[C6MartPeriodico].CONCATENA_prova_20141223(C6MartPeriodico.GESTIONE_PDF_FTP_prova_20141223.Rete, C6MartPeriodico.GESTIONE_PDF_FTP_prova_20141223.CodiceFiscale) AS riga
					
	FROM C6MartPeriodico.GESTIONE_PDF_FTP_prova_20141223
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP_prova_20141223.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP_prova_20141223.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP_prova_20141223.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP_prova_20141223.CodiceFiscale
	WHERE --DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvio,GETDATE()) = 0
--		OR DATEDIFF(DAY,GESTIONE_PDF_FTP.DataInvioRistampa,GETDATE()) = 0
	 GESTIONE_PDF_FTP_prova_20141223.id_fk_zip = @idFkzip -- 351
		--(select max(id_fk_zip) 
		-- from c6martperiodico.gestione_pdf_ftp
	 --)	
	--order by codiceFiscale
END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_WHITELIST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

--[C6MartPeriodico].[GESTIONE_SELECT_FTP_WHITELIST]343
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_FTP_WHITELIST]
@IdZip as INT
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    SELECT DISTINCT 
	contrattosei.cod_fiscale,contrattosei.rete,
	[C6MartPeriodico].[CONCATENA_WHITELIST](C6MartPeriodico.GESTIONE_PDF_FTP.Rete, C6MartPeriodico.GESTIONE_PDF_FTP.CodiceFiscale, @IdZip) AS riga
	FROM [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MARTPERIODICO.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = GESTIONE_PDF_FTP.Rete
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN [C6MartPeriodico].ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = GESTIONE_PDF_FTP.Rete
		AND ANAG_CLIENTI.COD_FISCALE = GESTIONE_PDF_FTP.CodiceFiscale
	WHERE 
	
    GESTIONE_PDF_FTP.id_fk_zip  = @IdZip
	AND 
	contrattosei.rete+CONTRATTOSEI.COD_FISCALE NOT IN (SELECT rete+CodiceFiscale FROM C6MartPeriodico.ExcludedList where bloccato = 1)

	UPDATE C6MARTPERIODICO.CONTROLLO_TRIMESTRALE SET
	       STATO_REPORT = 8,
		   DATA_TRANSIZIONE=GETDATE()	
	WHERE  STATO_REPORT=6 
		   AND
		   cod_fiscale+rete in 
			(select codicefiscale+rete 
			 from c6martperiodico.gestione_pdf_ftp
			 where id_fk_zip=@idZIP
			)		
		   AND
		   RETE+cod_fiscale NOT IN (SELECT rete+CodiceFiscale FROM C6MartPeriodico.ExcludedList where bloccato = 1)


	UPDATE C6MARTPERIODICO.CONTROLLO_TRIMESTRALE SET
		   STATO_REPORT = 7,
		   DATA_TRANSIZIONE=GETDATE()	
	WHERE  STATO_REPORT=9
		   AND
		   cod_fiscale+rete in 
			(select codicefiscale+rete 
			 from c6martperiodico.gestione_pdf_ftp
			 where id_fk_zip=@idZIP
			)		
		   AND
		   RETE+cod_fiscale IN (SELECT rete+CodiceFiscale FROM C6MartPeriodico.ExcludedList where bloccato = 1)		

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_HOST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<ATTENZIONE FATTO REPLAT IN DATA 14/10/2013 SOSTITUENDO C6MART.PERIODICO IN C6MARTPERIODICO.VCONTRATTIPERGENERAZIONEREPORT >
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_HOST] 
	AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	--FTP
	SELECT 
--	null idFtp,
--	null idEmail,
--C6Mart.GESTIONE_PDF_FTP.*,
	([C6MartPeriodico].GESTIONE_PDF_FTP.Rete + [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale + right('00000000000' + 
      --C6Mart.CONTRATTOSEI.CodiceContratto,11
      v.CodiceContratto,11
     ) 
      + 'C'  + 
	
	(Case TipoReport when 'D' then 'LD' 
					 when 'LR' then 'LR' 
					 when 'M' then 'LM'
	 else TipoReport end) + 
		
	(Case TipoReport when 'D' then CONVERT(VARCHAR(10), [C6MartPeriodico].GESTIONE_PDF_FTP.DataInvio, 112) 
						 when 'LR' then CONVERT(VARCHAR(10), [C6MartPeriodico].GESTIONE_PDF_FTP.DataInvioRistampa, 112) 
						 when 'M' then CONVERT(VARCHAR(10), [C6MartPeriodico].GESTIONE_PDF_FTP.DataInvio, 112) else null end)) as riga
	

	FROM        [C6MartPeriodico].GESTIONE_PDF_FTP
	INNER JOIN C6MartPeriodico.vContrattiPerGenerazioneReport v --C6Mart.VCONTRATTOSEI
	ON v.Rete = [C6MartPeriodico].GESTIONE_PDF_FTP.Rete
	and v.COD_FISCALE = [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale
	INNER JOIN  [C6MartPeriodico].ANAG_CLIENTI 
	ON [C6MartPeriodico].ANAG_CLIENTI.Rete = [C6MartPeriodico].GESTIONE_PDF_FTP.Rete
	and [C6MartPeriodico].ANAG_CLIENTI.COD_FISCALE = [C6MartPeriodico].GESTIONE_PDF_FTP.CodiceFiscale
--	WHERE		DAY(C6Mart.GESTIONE_PDF_FTP.DataInvio) = DAY(GETDATE()) 
--	AND			MONTH(GETDATE()) = MONTH(C6Mart.GESTIONE_PDF_FTP.DataInvio)
--	AND         YEAR(GETDATE()) = YEAR(C6Mart.GESTIONE_PDF_FTP.DataInvio)
    WHERE DATEDIFF(DAY,isnull([C6MartPeriodico].GESTIONE_PDF_FTP.DataInvio,[C6MartPeriodico].GESTIONE_PDF_FTP.DataInvioRistampa),GETDATE()) = 0
	and isnull(data_fineAvanzato,cast('99991231' as datetime)) > c6martperiodico.getTrimestre(getDate(),0)
--	UNION ALL
--	--EMAIL
--	SELECT 
--	null idFtp,
--	C6Mart.GESTIONE_EMAIL.Email_Id idEmail,
--	('Rete:' + isnull(C6Mart.GESTIONE_EMAIL.Rete,'') + ';' + 'CodiceFiscale:' + isnull(C6Mart.GESTIONE_EMAIL.Cod_Fiscale,'') + ';' + 'Codice Contratto:' + isnull(C6Mart.CONTRATTOSEI.CodiceContratto,'') + ';' +  'Tipo Invio:' + 'E' + ';' + 'Tipo Comunicazione:' + 'EI' + ';' +  'Data Invio al Cliente:' + isnull(CONVERT(VARCHAR(10), C6Mart.GESTIONE_EMAIL.Data_Invio, 112),'')) as riga
--	FROM        C6Mart.GESTIONE_EMAIL
--	INNER JOIN C6Mart.CONTRATTOSEI
--	ON C6Mart.CONTRATTOSEI.Rete = C6Mart.GESTIONE_EMAIL.Rete
--	and C6Mart.CONTRATTOSEI.COD_FISCALE = C6Mart.GESTIONE_EMAIL.Cod_Fiscale
--	INNER JOIN  C6Mart.ANAG_CLIENTI 
--	ON C6Mart.ANAG_CLIENTI.Rete = C6Mart.GESTIONE_EMAIL.Rete
--	and C6Mart.ANAG_CLIENTI.COD_FISCALE = C6Mart.GESTIONE_EMAIL.Cod_Fiscale
--	WHERE		Data_Comunicazione_Host is null
--	and C6Mart.GESTIONE_EMAIL.Data_Invio is not null

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_LAST_ELAB_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_LAST_ELAB_ZIP]
AS
BEGIN

	SELECT IDElaborazioneZip, DataFine
	FROM [C6MartPeriodico].ELABORAZIONI_ZIP
	WHERE  IDElaborazioneZip = (SELECT MAX(IDElaborazioneZip)
								FROM [C6MartPeriodico].ELABORAZIONI_ZIP)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_LAST_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- Inserimento nuovo [C6Mart].[GESTIONE_INSERT_ZIP] -1,'NomeFileOk','NomeFileOk'
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_LAST_ZIP]
AS
BEGIN 

	DECLARE @IdZip AS INT
	SET @IdZip = -1

	DECLARE @NomeCartella AS VARCHAR(255)
    Declare @NomeFile    as varchar(50)
    Declare @NumeroCFZip   as int
	--recupero idzip se Esiste insieme al NomeCartella

	SELECT @IdZip=id,@NomeCartella=NomeCartella,@NomeFile =NomeFile
	FROM
		C6MartPeriodico.GESTIONE_ZIP_FTP
	WHERE
		FlagInvio = 'N'
		AND DateCopyToSend IS NULL
		
	-- Se la generazione file Zip è in fase di ripartenza ( FlagInvio = 'N'
	-- AND DateCopyToSend IS NULL	 ) conto il Numero dei Clienti relativo ai report già copiati
	-- nella cartella di appoggio(NomeCartella)
	IF @IdZip > -1 Begin
	 	select @NumeroCFZip=count( *)
			from (
			select distinct rete,codicefiscale
			from c6martperiodico.gestione_pdf_ftp
			where id_fk_zip=@IdZip) a
   end
	--SELECT @IdZip IdZip, @NomeCartella NomeCartella,@NomeFile
	select @IdZip IdZip,@NomeFile NomeFile,@NomeCartella NomeCartella,@NumeroCFZip  NumeroCFZip

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_LETTERE_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6MartPeriodico].[GESTIONE_SELECT_LETTERE_DA_INVIARE]'F','CSCGPP34A03L050L',106,-1,'Monitoraggio'

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_LETTERE_DA_INVIARE]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()
	--Modifica per la variazione di testo nella lettera di accompagnamento nel caso di diagnosi
	
	IF @codiceLettera in (7,8) AND @tipoReport = 'DIAGNOSI'
		SET @codiceLettera = @codiceLettera + 2 
	
	--aggiunto controllo per clienti speciali in data 21/09/2020

	IF @rete+@cf in (select rete+codFis from [C6MartPeriodico].[GESTIONE_TESTO_PARTICOLARE_LETTERE_DA_INVIARE] where flagAttivo = 1) AND @tipoReport = 'DIAGNOSI'
		begin
			IF @rete = 'F'
				begin
				SET @codiceLettera = 110
				print @codiceLettera
				end
			IF @rete = 'S'
				begin
				SET @codiceLettera = 111
				print @codiceLettera
			end
		end
		
	SELECT
			c6martperiodico.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			


	--Modifica per le persone giuridiche
	CASE 
		WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
			THEN aclie.cognome --+ 'JJ'
			ELSE aclie.nome
	END	AS nome,
	
	--aclie.nome as nome,
	CASE
		WHEN LEN(csei.cod_fiscale) = 11
			THEN aclie.nome
			ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
					THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
			ELSE
				aclie.cognome
			END	
	END	AS cognome,
			



csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.prov end as provincia,
			case when (upper(csei.nazione) <> 'ITALIA') then '' else csei.cap end as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			c6martperiodico.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_Monitor,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												csei.Data_Sott,
												@dataRichiestaRistampa,
												gpdf.DataGenerazione,
												tla.[TESTO]
											) as testo,
											
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
 0 as pagina
 
		FROM	
			[C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[C6MartPeriodico].[CONTRATTOSEI] csei
			INNER JOIN
			[C6MartPeriodico].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
			LEFT OUTER JOIN
			C6MartPeriodico.GESTIONE_PDF_FTP gpdf
			on
				gpdf.rete = csei.rete and
				gpdf.codiceFiscale = csei.cod_fiscale
			
		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			tla.id = @codiceLettera and
			(gpdf.idReport = @idReport or @idreport = -1)
			AND isnull(csei.data_fineavanzato,'99991231') > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getDate(),-1),0)

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_LETTERE_DA_INVIARE_Rosaspina]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_LETTERE_DA_INVIARE_Rosaspina]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()
	--Modifica per la variazione di testo nella lettera di accompagnamento nel caso di diagnosi
	
	IF @codiceLettera in (7,8) AND @tipoReport = 'DIAGNOSI'
		SET @codiceLettera = @codiceLettera + 2 
	
	--aggiunto controllo per clienti speciali in data 21/09/2020

	IF @rete+@cf in (select rete+codFis from [C6MartPeriodico].[GESTIONE_TESTO_PARTICOLARE_LETTERE_DA_INVIARE] where flagAttivo = 1) AND @tipoReport = 'DIAGNOSI'
		begin
			IF @rete = 'F'
				begin
				SET @codiceLettera = 110
				print @codiceLettera
				end
			IF @rete = 'S'
				begin
				SET @codiceLettera = 111
				print @codiceLettera
			end
		end
		
	SELECT
			c6martperiodico.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			


	--Modifica per le persone giuridiche
	CASE 
		WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
			THEN aclie.cognome --+ 'JJ'
			ELSE aclie.nome
	END	AS nome,
	
	--aclie.nome as nome,
	CASE
		WHEN LEN(csei.cod_fiscale) = 11
			THEN aclie.nome
			ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
					THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
			ELSE
				aclie.cognome
			END	
	END	AS cognome,
			



csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.prov end as provincia,
			case when (upper(csei.nazione) <> 'ITALIA') then '' else csei.cap end as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			c6martperiodico.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_Monitor,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												csei.Data_Sott,
												@dataRichiestaRistampa,
												gpdf.DataGenerazione,
												tla.[TESTO]
											) as testo,
											
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
 0 as pagina
 
		FROM	
			[C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE_Rosaspina] tla,	
			[C6MartPeriodico].[CONTRATTOSEI] csei
			INNER JOIN
			[C6MartPeriodico].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
			LEFT OUTER JOIN
			C6MartPeriodico.GESTIONE_PDF_FTP gpdf
			on
				gpdf.rete = csei.rete and
				gpdf.codiceFiscale = csei.cod_fiscale
			
		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			tla.id = @codiceLettera and
			(gpdf.idReport = @idReport or @idreport = -1)
		--	AND isnull(csei.data_fineavanzato,'99991231') > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getDate(),-1),0)
		-- 22/12/2022 commentata la condizione di sopra che per me non ha senso di esistere in quanto in trim sono presenti solo clienti che devono avere il report

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_NUM_MAX_ELABORAZIONI_EMAIL_RNA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_NUM_MAX_ELABORAZIONI_EMAIL_RNA]
AS
BEGIN

	SET NOCOUNT ON;

	select CAST(dbo.getParametro('MaxInvioSoll_Periodico') AS INT) as numMaxSolleciti

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22/12/2008
-- Description:	Per gestione richieste di reinvio PDF da parte di utenti HD o US
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_FTP_RISTAMPA_SI_NO]
	@IdReport INT
AS
BEGIN
	
	declare @ritorno  as int
	set @ritorno = 1

	select @ritorno = 0
	from C6MartPeriodico.GESTIONE_PDF_FTP A
	inner join (select Rete, CodiceFiscale FROM C6MartPeriodico.GESTIONE_PDF_FTP WHERE IdReport = @IdReport) B
	on A.Rete = B.Rete
	and A.CodiceFiscale = B.CodiceFiscale
	and TipoReport = 'LR'
	and FlagInvio = 'N'
	
	select @ritorno
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE     procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		--set @dtrim = '20241231'


		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6stagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6stagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT top(@volThreads)  
 Maledetti.[CodiceFiscale]
,Maledetti.[Rete]
,Maledetti.[tip_contratto]
,Maledetti.[NomeRete],Maledetti.[Agente],Maledetti.[CognomeAgente]
,Maledetti.[NomeAgente],Maledetti.[IndirizzoAgente]
,Maledetti.[CapAgente],Maledetti.[CittaAgente],Maledetti.[TelefonoAgente],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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	
		and tip_contratto<>3
		order by 
		Maledetti.[CodiceFiscale]
	   ,Maledetti.[Rete]
	   ,Maledetti.[tip_contratto] 
		--prendo quelli SEI

-- update t set flag_stampa=2 from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	--update #result
	--set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	
select * from #result 
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE    procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		--set @dtrim = '20230331'

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

SELECT top(@volThreads)  
 Maledetti.[CodiceFiscale]
,Maledetti.[Rete]
,Maledetti.[tip_contratto]
,Maledetti.[NomeRete]
,Maledetti.[Agente]
,Maledetti.[CognomeAgente]
,Maledetti.[NomeAgente]
,Maledetti.[IndirizzoAgente]
,Maledetti.[CapAgente]
,Maledetti.[CittaAgente]
,Maledetti.[TelefonoAgente]
,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione_DA Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	
		and tip_contratto=3
order by 
 Maledetti.[CodiceFiscale]
,Maledetti.[Rete]
,Maledetti.[tip_contratto]
		--prendo quelli Fideuram Direct\ Direct Advisory

-- update t set flag_stampa=2
--		from  c6martperiodico.TB_Campione_DA t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	----update #result
	----set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	select * from #result

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA_FA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE    procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA_FA] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		--set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		-- Ultimo ggiorno del mese scorso
		set @dtrim = Convert(varchar(8), Dateadd(d, -1, CONVERT(varchar(6), getDate(), 112) + '01'), 112)


		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione_DA Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	
		and tip_contratto=3 --prendo quelli Fideuram Direct\ Direct Advisory

 --update t set flag_stampa=2
--		from  c6martperiodico.TB_Campione_DA t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	----update #result
	----set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	select * from #result

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA_Francesco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE    procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA_Francesco] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		--set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		set @dtrim = '20240229'


		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti  Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione_DA Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	
		and tip_contratto=3 --prendo quelli Fideuram Direct\ Direct Advisory

 --update t set flag_stampa=2
	--	from  c6martperiodico.TB_Campione_DA t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	----update #result
	----set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	select * from #result

END

--select top 1000 * from wh.Maledetti 
--where 1 = 1
--and i_CodiceFiscale in (
--'DLLNTN75E26C034V'
--,'GLSHBR78H05D530H'
--,'LCNGNZ82P14H163B'
--,'MRLSLV83E60D912U'
--,'MTUGNN75R08L109R'
--,'PNTMRZ72P13F152Q'
--,'VGNMRA68C64F205S'
--)
----where idReportMonitoraggio is null
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE    procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_DA_GB] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 
		--set @dtrim = '20230331'

		WITH WSEIAN_1 as 
		(		select					codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6StagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6StagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			WHEN wse.flagnqp IS NULL or wse.flagnqp ='' THEN 'N'
			ELSE wse.flagnqp
		END as 'flagnqp'
		,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

		FROM wh.Maledetti  Maledetti
		inner join  c6martperiodico.TB_Campione_GB Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
		
		WHERE 1=1 
		and flag_stampa=1	
		and tip_contratto=3
		ORDER BY
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto];

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_FA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE     procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_FA] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		--set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		--set @dtrim = '20231130' --simulazione
		-- Ultimo ggiorno del mese scorso
		set @dtrim = '20250228' --Convert(varchar(8), Dateadd(d, -1, CONVERT(varchar(6), getDate(), 112) + '01'), 112)

		--select @dtrim

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		--and flag_stampa=1	
		--and tip_contratto<>3 --prendo quelli SEI
		and Maledetti.[CodiceFiscale] in ('PVNMRA43R67C814I', 'BRBCRL73B65E256C')

 --update t set flag_stampa=2
--		from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	--update #result
	--set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	
select * from #result 
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_FOR_STATISTICS.obs]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_FOR_STATISTICS.obs]
(@VolThreads int = 100000)
AS
BEGIN
		SET NOCOUNT ON;
 declare @dataTrimestre as datetime
 declare @dataTrimestrePRec as datetime
 
SELECT @dataTrimestre = c6martperiodico.gettrimestre2(getdate(),0),
@dataTrimestrePRec=c6martperiodico.getPreviousTrimestre(getDate(),0)


 SELECT  DISTINCT
		
			contratti.Cod_Fiscale CodiceFiscale
		
	 FROM  [C6MartPeriodico].contrattoSEI contratti		 
		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'
			--modificata da Valerio 12 marzo 2012
			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		inner 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 Campione
		on contratti.rete= Campione.rete and contratti.cod_fiscale= Campione.cod_fiscale
		and flag_stampa=1
		WHERE 1=1
-- DA ELIMINARE .... IL CAMPIONE DEVE ESSERE INSERITO E GESTITO NELLA TABELLA c6martperiodico.TB_CAMPIONE
  --and  contratti.rete+contratti.cod_fiscale in 
  --(
  --select rete+cod_fiscale from c6martperiodico.TB_CAMPIONE
  --) 


--and  contratti.rete+contratti.cod_fiscale in
--(
--'FGSPLSN31B26E648J',
--'FVSNPTR31L14B402B',
--'FBRGFBA61P09B639N'



--)



--insert into c6martperiodico.TB_Campione
--values ('F','RZUGTN30M07C351I',1)
 
 
END




 


















































































GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_FORCE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












CREATE       procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_FORCE] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;


		DECLARE @dtrim VARCHAR(8)
		--> ricommentare 
	--	set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 


		--set @dtrim = '20230331'
	  set @dtrim = '20240831' --> decommentare 


		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6martPeriodico].[WSEIAN2]
		WHERE codman = '' --and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6martPeriodico].[WSEIAN2]
		WHERE codman <> '' --and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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
			-- left outer join #WSEIAN_1 wse 
			inner join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	
		and tip_contratto<>3 --prendo quelli SEI
		

 update t set flag_stampa=2
		from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	--update #result
	--set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	
select * from #result 
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_Francesco]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE     procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_Francesco] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		--set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		--set @dtrim = '20231130' --simulazione
		set @dtrim = '20240630'


		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			--inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		--and flag_stampa=1	
		--and CodiceFiscale = 'SVNPTR37B21D725U'
		and CodiceFiscale  = 'GLTFNC52R23B832X'
		--and tip_contratto<>3 --prendo quelli SEI

 --update t set flag_stampa=2
--		from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #result)

	----forzatura per Fideuram direct
	--update #result
	--set tip_contratto=3, idModelloMonitoraggio=6
	----fine forzatura per fideuram direct
	
select * from #result 
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_luca] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = '20201231'
		

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti  Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	

 update t set flag_stampa=2
		from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #result)
	
select * from #result
END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano] 10
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.gettrimestre(getDate(),0)
		--set @dtrim = '20180630' 

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
		WHERE 1=1
		and rank=1
		and codiceFiscale in (
'TMPFDN42P05B648Q'
	)



select * from #result
END


--exec [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano] 1000
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano_PROVAPROF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano] 10
create procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Adriano_PROVAPROF] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		--set @dtrim = select c6martperiodico.gettrimestre(getDate(),0)
		set @dtrim = '20180531' 

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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]
,5 as idModelloDiagnosi
--,Maledetti.[idReportDiagnosi]
,1 as 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			'S' as FLGPROF
			into #result
		FROM wh.Maledetti Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
		WHERE 1=1

		

and codiceFiscale in (

'BDCGNN45T31H223V'

)

select * from #result
END











GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_EN]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





















CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_EN] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti  Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
		WHERE 1=1 
		and rank=1 
		and codiceFiscale in (
'BZZDNL44P18G927I', --con /rend
		--'FRRFBA63P19D704L' -- sostituisce TC  TMSRRT59R13L967T
'TRNLRT63C18L826X', -- on page 16 black spot isn’t aligned on chart of chapter “Piani d'Accumulo”
--'TTVNNA39S64H935H',
'STTLNZ56R58L781G' --nota sovrascrive linea rosso, perchè spazio sotto tabella non disponibile
--------'02477630582' --suore problema con sezione Dettaglio Prodotti 
--, --suore: mancano progetti delle are Inv e Ris
--'GRSRRT58A28E379O',  --- PL_S85RendimentoPortafoglioCono Ris Default orizzonte_mesi=0
--'GSNMDL32E57I470S', --- PL_S85RendimentoPortafoglioCono Ris Default orizzonte_mesi=0, ma non monitorato
--'TMSRRT59R13L967T', --per nota spazio disponibile sotto tabella
--'CSLLFA49H25F004M',
--'MTTGLG26T01F205L'

--'MRTVNT41H17C740W',
--'DNDGNN63S43A246B'
		)

select * from #result
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Luca]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Luca] 10
CREATE PROCEDURE [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_onDemand_Luca]
@volThreads int = 10000
WITH EXEC AS CALLER
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		--set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 
		set @dtrim = '20200630'

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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]
--,5 as [idModelloDiagnosi]
--,1 as [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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti  Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
		WHERE 1=1 
		and rank=1
		--and codiceFiscale = '02477630582'-- 'BTTMRS67A69F839N'--
		--and codiceFiscale = '80002590711' -- HA 4+4 CON PROTEZIONE ED E' SEI PRIVATE
		--and codiceFiscale in ('BBNLSN51E27D612T') --HA INTERFUND CON PROTEZIONE ED E' SEI
		--and codiceFiscale in ('BCCFNC79H62F205H') --HA FONDITALIA CON PROTEZIONE ED E' SEI
		--and codiceFiscale in ('CHTDRA58S17D969J') --HA 4+4 CON PROTEZIONE ED E' SEI PRIVATE
		--and codiceFiscale in ('MRNNMR31D50D969T') --HA 4+4 CON PROTEZIONE ED E' SEI PRIVATE
		--and codiceFiscale in ('TZZMGB41H57F241X') --HA 4+4 CON PROTEZIONE ED E' SEI

		--and codiceFiscale in ('BCCRRT43T09H449J') -- HA INTERFUND E FONDITALIA

		--and codiceFiscale in ('STTLNZ56R58L781G') --NON HA PRODOTTI CON PROTEZIONE
		--and codiceFiscale in ('CRLSRG45M29A271V') --NON HA PRODOTTI CON PROTEZIONE
		--and codiceFiscale in ('80060810589') --NON HA PRODOTTI CON PROTEZIONE
		--and codiceFiscale in ('SRRGMR39P04Z315W') --NON HA PRODOTTI CON PROTEZIONE

		and codiceFiscale in (
--'PSSPND83R64Z604J',
--'PSSPTR59R30L400E',
'CRLFNC41S11A561R'

  )
		
select * from #result
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_Pino]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_Pino] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.gettrimestre(getDate(),0)-201

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti  Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		and rank=1 
		and flag_stampa=1	

 update t set flag_stampa=2
		from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #result)
	
select * from #result
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_PK]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_PK] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8)
		set @dtrim = c6martperiodico.gettrimestre(getDate(),0) 

		SELECT * INTO #WSEIAN_1
		FROM
		(
		select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1  as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman = '' and dttrim = @dtrim
		UNION ALL 
		select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, 1 as rank  
		from [C6StagingPeriodico].[WSEIAN]
		WHERE codman <> '' and dttrim = @dtrim
		)X

 	SELECT  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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.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'
			into #result
		FROM wh.Maledetti  Maledetti
			 left outer join #WSEIAN_1 wse 
			 on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete		
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
			inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
		WHERE 1=1 
		--and rank=1 
		--and flag_stampa=1	
		and Maledetti.[CodiceFiscale] = 'MSATTL51L23E648U'

select * from #result
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_QRM_NonOptimized.obs]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_QRM_NonOptimized.obs]  --10
(@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;
 declare @dataTrimestre as datetime
 declare @dataTrimestrePRec as datetime
 
SELECT @dataTrimestre = c6martperiodico.gettrimestre2(getdate(),0),
@dataTrimestrePRec=c6martperiodico.getPreviousTrimestre(getDate(),0)




 Select distinct top (@volThreads) contratti.Cod_Fiscale
 into #ct
 FROM  [C6MartPeriodico].contrattoSEI contratti		 
		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'
			--modificata da Valerio 12 marzo 2012
			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		inner 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 Campione
		on contratti.rete= Campione.rete and contratti.cod_fiscale= Campione.cod_fiscale
		and flag_stampa=1
		




 SELECT  DISTINCT
			--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
			--*************************************************
			,CASE WHEN count(monit.id_area) OVER (PARTITION BY monit.rete,monit.cod_fiscale) = 0
				or isnull(monitInit.data_foto,getDate()) >= @dataTrimestrePRec
				or monitReport.cod_fiscale is null 
				THEN 1
				ELSE 0
			END AS NoMonitoraggio
			,'Diagnosi' as descrizioneDiagnosi

--INIZIO
--	PER FORZARE LA STAMPA DEL REPORT DI DIAGNOSI A PRESCINDERE DAL TIPO DI CONTRATTO 
--  E DAL VALORE PRESENTE NEL FLAG DI FREQUENZA DIAGNOSI, E' NECESSARIO
--	ASTERISCARE LE RIGHE SEGUENTI:
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
				ELSE -1
			END AS idModelloDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
				ELSE -1
			END AS idReportDiagnosi
			
--	E DISASTERISCARE LE RIGHE SEGUENTI:
			--,5 as idModelloDiagnosi
			--,1 as idReportDiagnosi
--FINE			
			
			,'Monitoraggio' as descrizioneMonitoraggio
			,4 as idReportMonitoraggio--4
--			,13 as idModelloMonitoraggio
			,CASE isnull(tip_contratto,0) 
					WHEN 0 THEN 12--12
					WHEN 1 THEN 12--12
					WHEN 2 THEN 13--13
			END 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 
 
	 FROM  [C6MartPeriodico].contrattoSEI contratti		 
		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'
			--modificata da Valerio 12 marzo 2012
			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		inner 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 Campione
		on contratti.rete= Campione.rete and contratti.cod_fiscale= Campione.cod_fiscale
		and flag_stampa=1
		WHERE 1=1 and contratti.Cod_Fiscale in
		(select Cod_Fiscale from #ct)

		update t set flag_stampa=2
		from  c6martperiodico.TB_Campione t where cod_fiscale in (select Cod_Fiscale from #ct)
-- DA ELIMINARE .... IL CAMPIONE DEVE ESSERE INSERITO E GESTITO NELLA TABELLA c6martperiodico.TB_CAMPIONE
  --and  contratti.rete+contratti.cod_fiscale in 
  --(
  --select rete+cod_fiscale from c6martperiodico.TB_CAMPIONE
  --) 


--and  contratti.rete+contratti.cod_fiscale in
--(
--'FGSPLSN31B26E648J',
--'FVSNPTR31L14B402B',
--'FBRGFBA61P09B639N'



--)



--insert into c6martperiodico.TB_Campione
--values ('F','RZUGTN30M07C351I',1)
 
 
END




 





















































































GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_QRM_ONDEMAND_OPT_EN.obs]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE PROCEDURE [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_QRM_ONDEMAND_OPT_EN.obs] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;


 	SELECT 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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) 
			AS IdReportPDFMonitoraggio 
			into #result
		FROM wh.Maledetti  Maledetti
			--inner join  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.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 
----			inner join  c6martperiodico.TB_Campione_ONDEMAND Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
----			and flag_stampa=1	
		WHERE 1=1
and codiceFiscale in (
'LCRTMS53A29A271R'
)
----
---- update t set flag_stampa=2
----		from  c6martperiodico.TB_Campione_ONDEMAND t where cod_fiscale in (select CodiceFiscale from #result)
----	
select * from #result
END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_SEI_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CAMPIONE_SEI_GB] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 

		WITH WSEIAN_1 as 
		(
				select                  codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			 WHEN wse.flagnqp IS NULL or wse.flagnqp ='' 
			 THEN 'N'
			 ELSE wse.flagnqp
			 END as 'flagnqp'
		,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
		FROM 
			 wh.Maledetti  Maledetti
			 inner join  c6martperiodico.TB_Campione_GB Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
			 left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete
		WHERE 1=1 
			 and flag_stampa=1	
			 and tip_contratto<>3
		ORDER BY 
			Maledetti.[CodiceFiscale]
		   ,Maledetti.[Rete]
		   ,Maledetti.[tip_contratto];

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE   procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO] (@volThreads int=99999)
AS
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 
	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 WHERE elab = @elab 
	
	if(@conta=0) 
	BEGIN
		set @elab = 1--DA ELABORARE PRIORITA MEDIA
		select @conta = count(*)   from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab = @elab
	END
	if(@conta=0)
	BEGIN
		set @elab = 2--DA ELABORARE
		select @conta = count(*)   from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 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
			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 
	on a.codicefiscale = b.codicefiscale and a.rete = b.rete
	           
	select * from #result 
	 	
END

COMMIT TRANSACTION

END

 






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_01]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_01] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 1

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_02]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_02] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 2

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_03]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_03] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 3

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_04]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_04] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 4

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_05]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_05] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 5

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_06]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_06] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 6

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_07]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_07] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 7

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_08]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_08] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 8

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_09]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_09] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int = 9

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_1]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_1] (@volThreads int=99999)
AS
Declare @ID_PARALLEL int = 1

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_10]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_10] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =10

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_11]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_11] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =11

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_12]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_12] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =12

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_13]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_14]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_14] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =14

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_15]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_15] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =15

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_16]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_16] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =16

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_17]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_17] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =17

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_18]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_18] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =18

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_19]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_19] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =19

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_2] (@volThreads int=99999)
AS
Declare @ID_PARALLEL int = 2

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_20]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_20] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =20

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_21]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_21] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =21

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_22]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_22] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =22

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_23]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_23] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =23

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_24]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_24] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =24

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_25]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_25] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =25

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
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_DA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE    procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_DA] (@volThreads int=99999)
AS
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 
	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 WHERE elab = @elab 
	
	if(@conta=0) 
	BEGIN
		set @elab = 1--DA ELABORARE PRIORITA MEDIA
		select @conta = count(*)   from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab = @elab
	END
	if(@conta=0)
	BEGIN
		set @elab = 2--DA ELABORARE
		select @conta = count(*)   from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 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
			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 
	on a.codicefiscale = b.codicefiscale and a.rete = b.rete
	           
	select * from #result 
	 	
END

COMMIT TRANSACTION

END

 






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti]  
(@volThreads int)  
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  
SCADUTO
  
  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.CRUSCOTTO_CONTRATTISEI CRUS  
   on contratti.rete = CRUS.rete  
   and contratti.cod_fiscale = CRUS.codicefiscale        
  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 C6MartPeriodico.CRUSCOTTO_CONTRATTISEI   
set  
dtstamp = getdate()  
,elab = 3  
,tipoCliente = m.TIP_CONTRATTO      
,isDiagnosi = m.IDMODELLODIAGNOSI        
from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI cru  
inner join #Maledetti m  
    on cru.codicefiscale = m.codicefiscale  
    and cru.rete = m.rete  
where   elab in (0,1,2)  
       
            
select * from #Maledetti   
                
END  
   
   
COMMIT TRANSACTION    
      
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti_CAMPIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


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		
				




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti_OnDemand_Adriano]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- exec [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti_OnDemand_Adriano] 10
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti_OnDemand_Adriano]
(@volThreads int)
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].[WSEIAN]
	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].[WSEIAN]
	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.CRUSCOTTO_CONTRATTISEI CRUS
			on contratti.rete = CRUS.rete
			and contratti.cod_fiscale = CRUS.codicefiscale 					
		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)

			  and contratti.cod_fiscale in ('VNCLNI44T60G388L')
	    	    
select * from #Maledetti 
              
END
 
 
COMMIT TRANSACTION		
				




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_REPORTS_ERRATACORRIGE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--[C6MartPeriodico].[GESTIONE_SELECT_REPORTS_ERRATACORRIGE]

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_REPORTS_ERRATACORRIGE]

as
begin

	select
			b.Rete,
			b.CodiceFiscale,
			b.IdReport,
			b.TipoReport,
			b.DataGenerazione,
			b.DataInvio,
			b.DataInvioRistampa,
			b.FlagInvio,
			b.NomeFile,
			b.numeroPagine,
			b.ID_ELAB,
			b.id_Fk_zip,
			b.Definitivo,
			b.CodiceContratto,
			b.identityReport,
			convert(varchar(10), IdReport) + '_' + NomeFile + '.pdf' as nomeFileReportGenerato
	from [C6MartPeriodico].[clienti_brochure] a
		inner join C6MartPeriodico.Gestione_PDF_FTP b
		on a.rete = b.rete
		and a.cod_fiscale = b.codicefiscale

	-- TEST

	--create table #clienti_brochure (
	--[rete] [char](1),
	--[cod_fiscale] [varchar](16))

	--insert into #clienti_brochure
	--select 'F', '85005130159' union
	--select 'S', '03844111009'

	--select
	--		b.Rete,
	--		b.CodiceFiscale,
	--		b.IdReport,
	--		b.TipoReport,
	--		b.DataGenerazione,
	--		b.DataInvio,
	--		b.DataInvioRistampa,
	--		b.FlagInvio,
	--		b.NomeFile,
	--		b.numeroPagine,
	--		b.ID_ELAB,
	--		b.id_Fk_zip,
	--		b.Definitivo,
	--		b.CodiceContratto,
	--		b.identityReport,
	--		convert(varchar(10), IdReport) + '_' + NomeFile + '.pdf' as nomeFileReportGenerato
	----from [C6MartPeriodico].[clienti_brochure] a
	--from #clienti_brochure a
	--	inner join C6MartPeriodico.Gestione_PDF_FTP b
	--	on a.rete = b.rete
	--	and a.cod_fiscale = b.codicefiscale

end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_REPORTS_ERRATACORRIGE_test]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--[C6MartPeriodico].[GESTIONE_SELECT_REPORTS_ERRATACORRIGE]

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_REPORTS_ERRATACORRIGE_test]

as
begin

	select
			b.Rete,
			b.CodiceFiscale,
			b.IdReport,
			b.TipoReport,
			b.DataGenerazione,
			b.DataInvio,
			b.DataInvioRistampa,
			b.FlagInvio,
			b.NomeFile,
			b.numeroPagine,
			b.ID_ELAB,
			b.id_Fk_zip,
			b.Definitivo,
			b.CodiceContratto,
			b.identityReport,
			convert(varchar(10), IdReport) + '_' + NomeFile + '.pdf' as nomeFileReportGenerato
	from [C6MartPeriodico].[clienti_brochure] a
		inner join C6MartPeriodico.Gestione_PDF_FTP b
		on a.rete = b.rete
		and a.cod_fiscale = b.codicefiscale

		where b.identityreport = 91

	-- TEST

	--create table #clienti_brochure (
	--[rete] [char](1),
	--[cod_fiscale] [varchar](16))

	--insert into #clienti_brochure
	--select 'F', '85005130159' union
	--select 'S', '03844111009'

	--select
	--		b.Rete,
	--		b.CodiceFiscale,
	--		b.IdReport,
	--		b.TipoReport,
	--		b.DataGenerazione,
	--		b.DataInvio,
	--		b.DataInvioRistampa,
	--		b.FlagInvio,
	--		b.NomeFile,
	--		b.numeroPagine,
	--		b.ID_ELAB,
	--		b.id_Fk_zip,
	--		b.Definitivo,
	--		b.CodiceContratto,
	--		b.identityReport,
	--		convert(varchar(10), IdReport) + '_' + NomeFile + '.pdf' as nomeFileReportGenerato
	----from [C6MartPeriodico].[clienti_brochure] a
	--from #clienti_brochure a
	--	inner join C6MartPeriodico.Gestione_PDF_FTP b
	--	on a.rete = b.rete
	--	and a.cod_fiscale = b.codicefiscale

end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_EVOLUZIONE_CTV]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[GESTIONE_SELECT_S80_EVOLUZIONE_CTV] '31/12/2015'
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_EVOLUZIONE_CTV]
	@datafase varchar(10)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    SELECT
	a.rete,
	a.cod_fiscale,
	@datafase as DataFase,
	EXTRARENDIMENTO,
	INVESTIMENTO,
	PREVIDENZA,
	RISERVA,
	LIQUIDITA,
	RisorseNonAllocate,
	contocorrente,
	PARTVIA_DISINV + isnull(b.importo,0) AS Partita_viaggiante,
	--sum(case Upper(a.id_area) when 'CC' then 0 else a.ctv end ) as risorseFinanziarie,
	a.CTV + isnull(b.importo,0)+ PARTVIA_DISINV AS Totale,

	--V
	CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00 ELSE ROUND(RA.VAR_PERC_PTF,2) END AS VarComplessivo,
	isnull(RA.COPERTURA,0) AS Copertura,
	CR.MAX_VAR AS VarMassimoProfiloFinanziario,
	-- TRINGALI MODIFICARE
	ra.creditrisk as RISKCLASS,
	mifid.riskclass as RISKCLASSMAX,
	case when ra.creditrisk is null then 'n.a.' else null end as RiskClassString,
	case when mifid.riskclass is null then 'n.a.' else null end as RiskClassMaxString
FROM
	(SELECT
		rete,
		cod_fiscale,
		sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) AS EXTRARENDIMENTO,
		sum(case Upper(id_area) when 'INV' then ctv else 0 end ) AS INVESTIMENTO,
		sum(case when Upper(id_area) IN ('PRE1', 'PRE2') then ctv else 0 end ) AS PREVIDENZA,
		sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) AS RISERVA,
		sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS LIQUIDITA,
		sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS RisorseNonAllocate,
		sum(case Upper(id_area) when 'CC' then ctv else 0 end ) as contocorrente,
		sum((isnull(PARTVIA_DISINV,0))) as PARTVIA_DISINV,
		sum(CTV) as CTV
	FROM 
		[C6MartPeriodico].PATRIMONIO_BF
	GROUP BY rete, cod_fiscale) a
LEFT JOIN c6martperiodico.partite_viaggianti b
	on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
INNER JOIN C6MartPeriodico.MIFID AS MIFID
	ON 	a.RETE = MIFID.RETE
	AND a.COD_FISCALE = MIFID.COD_FISCALE
INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
	ON MIFID.PROFILO_ASS = CR.PROFILO
LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
	ON 	RA.RETE = a.RETE
	AND RA.COD_FISCALE = a.COD_FISCALE
	AND RA.COD_AGGREG = 'COMPLESSIVO|BF'
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_EVOLUZIONE_CTV_dopoMart]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_EVOLUZIONE_CTV_dopoMart]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


SELECT
		INI.rete AS Rete,
		INI.cod_fiscale AS [Codice fiscale],
		convert(varchar(8), rep.DATA_INVIO, 112) AS [Data fase],
		rep.ctv_ext as Extrarendimento,
		rep.ctv_inv as Investimento,
		rep.ctv_pre as Previdenza,
		rep.ctv_ris as Riserva,
		rep.ctv_liq as Liquidità,
		rep.CTV_NA AS [Risorse non allocate],
		rep.CTV_CC AS [Conto Corrente],
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS [Partita viaggiante],
		--CTV_TOTALE + CTV_CC + CTV_NA  + ISNULL(PARTITA_VIAGGIANTE,0)  AS ControvaloreComplessivo  --V aggiunto il cc e na per coerenza con le altre fasi
		rep.CTV_TOTALE  + ISNULL(rep.PARTITA_VIAGGIANTE,0)  AS [Totale CTV],  --V tolto il cc e na in quanto gia conteggiati
		rep.VAR_COMPLESSIVO AS [Var complessivo],
rep.VAR_COPERTURA AS [Var copertura],
rep.VAR_MAX_PROFILO AS [Var MAX profilo finanziario],
isnull(rep.RISKCLASS, 0) as RisksClass, --0 al posto di n.a. altrimenti rompeva
rep.RISKCLASSMAX AS RisksClassMax
--,case when ra.creditrisk is null then 'n.a.' else null end as RiskClassString,
--	case when mifid.riskclass is null then 'n.a.' else null end as RiskClassMaxString

	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
--	WHERE 1=1
--		
--		and INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
--		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<'20110331'
--
--		AND rep.rete is not null

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'


insert into [CONSEVO].ConsulenzaEvoluta.dbo.REP_S80_EVOL_STAMPA_C6
SELECT 
	A.ChiaveClientePB,
	UPPER(AREA) as AREA,
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 WHEN AREA = 'Self' THEN 8
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'

insert into [CONSUNI].ConsulenzaUnica.dbo.REP_S80_EVOL_STAMPA_C6
SELECT 
	A.ChiaveClientePB,
		 -- 20190206
	 CASE
		 WHEN AREA IN ('SELFXY', 'SELFFO') THEN 'SELF'
		ELSE UPPER(AREA)
	 END as AREA,
	--UPPER(AREA) as AREA,
	 --/20190206
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 -- 20190206 nella subquery c'è stato bisogno di differenziare l'Area Self tra XY e FO, quindi adesso bisogna gestire le aree come SELFXY e SELFFO
		 WHEN AREA = 'SelfXY' THEN 8
		 WHEN AREA = 'SelfFO' THEN 9
		 --WHEN AREA = 'Self' THEN 8
		 --/20190206
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	CASE WHEN ISNULL(W.flgprof,'A')='P' THEN 0.00 ELSE MAX_VAR END AS MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	-- 20190206 in base al cod_interno (XY/FO) l'Area è restituita dalla subquery su Patrimonio_BF come SELFXY e SELFFO, una restituisce il controvalore della LineaSelf e l'altra il controvalore della LineaSelfFogli
	CASE WHEN AREA IN ('SelfXY') THEN CONTROVALORE ELSE 0 END AS LineaSelf,
	CASE WHEN AREA IN ('SelfFO') THEN CONTROVALORE ELSE 0 END AS LineaSelfFoglio
	--CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
	--/20190206
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END as AREA,

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		--/20190206
		

		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
		--/20190206
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
		LEFT JOIN C6MartPeriodico.WSEIRPF W
		ON W.rete=A.RETE AND W.chiave_acn=A.COD_FISCALE
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_20190206_preMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_20190206_preMioFoglio]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'


insert into [CONSUNI].ConsulenzaUnica.dbo.REP_S80_EVOL_STAMPA_C6
SELECT 
	A.ChiaveClientePB,
	UPPER(AREA) as AREA,
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 WHEN AREA = 'Self' THEN 8
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_mariano]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_mariano]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'


insert into [CONSUNI].ConsulenzaUnica.dbo.REP_S80_EVOL_STAMPA_C6
SELECT 
	A.ChiaveClientePB,
		 -- 20190206
	 CASE
		 WHEN AREA IN ('SELFXY', 'SELFFO') THEN 'SELF'
		ELSE UPPER(AREA)
	 END as AREA,
	--UPPER(AREA) as AREA,
	 --/20190206
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 -- 20190206 nella subquery c'è stato bisogno di differenziare l'Area Self tra XY e FO, quindi adesso bisogna gestire le aree come SELFXY e SELFFO
		 WHEN AREA = 'SelfXY' THEN 8
		 WHEN AREA = 'SelfFO' THEN 9
		 --WHEN AREA = 'Self' THEN 8
		 --/20190206
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	-- 20190206 in base al cod_interno (XY/FO) l'Area è restituita dalla subquery su Patrimonio_BF come SELFXY e SELFFO, una restituisce il controvalore della LineaSelf e l'altra il controvalore della LineaSelfFogli
	CASE WHEN AREA IN ('SelfXY') THEN CONTROVALORE ELSE 0 END AS LineaSelf,
	CASE WHEN AREA IN ('SelfFO') THEN CONTROVALORE ELSE 0 END AS LineaSelfFoglio
	--CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
	--/20190206
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END as AREA,

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		--/20190206
		

		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		(
select codicefiscale,rete,tiporeport,flaginvio from C6MartPeriodico.gestione_pdf_ftp_bk2510_1stlotto
union
select codicefiscale,rete,tiporeport,flaginvio from C6MartPeriodico.gestione_pdf_ftp_bk2810_2ndlotto
union
select codicefiscale,rete,tiporeport,flaginvio from C6MartPeriodico.gestione_pdf_ftp_bk2910
union
select codicefiscale,rete,tiporeport,flaginvio from C6MartPeriodico.gestione_pdf_ftp_bk2910b)  PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
		--/20190206
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_POST_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_POST_RAFFORZAMENTO]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'

insert into [CONSUNI].ConsulenzaUnica.dbo.REP_S80_EVOL_STAMPA_C6
SELECT 
	A.ChiaveClientePB,
		 -- 20190206
	 CASE
		 WHEN AREA IN ('SELFXY', 'SELFFO') THEN 'SELF'
		ELSE UPPER(AREA)
	 END as AREA,
	--UPPER(AREA) as AREA,
	 --/20190206
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 -- 20190206 nella subquery c'è stato bisogno di differenziare l'Area Self tra XY e FO, quindi adesso bisogna gestire le aree come SELFXY e SELFFO
		 WHEN AREA = 'SelfXY' THEN 8
		 WHEN AREA = 'SelfFO' THEN 9
		 --WHEN AREA = 'Self' THEN 8
		 --/20190206
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	CASE WHEN ISNULL(W.flgprof,'A')='P' THEN 0.00 ELSE MAX_VAR END AS MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	-- 20190206 in base al cod_interno (XY/FO) l'Area è restituita dalla subquery su Patrimonio_BF come SELFXY e SELFFO, una restituisce il controvalore della LineaSelf e l'altra il controvalore della LineaSelfFogli
	CASE WHEN AREA IN ('SelfXY') THEN CONTROVALORE ELSE 0 END AS LineaSelf,
	CASE WHEN AREA IN ('SelfFO') THEN CONTROVALORE ELSE 0 END AS LineaSelfFoglio
	--CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
	--/20190206
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END as AREA,

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		--/20190206
		

		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
		--/20190206
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
		LEFT JOIN C6MartPeriodico.WSEIRPF W
		ON W.rete=A.RETE AND W.chiave_acn=A.COD_FISCALE
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_CU_PRE_RAFFORZAMENTO]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'


insert into [CONSUNI].ConsulenzaUnica.dbo.REP_S80_EVOL_STAMPA_C6
SELECT 
	A.ChiaveClientePB,
		 -- 20190206
	 CASE
		 WHEN AREA IN ('SELFXY', 'SELFFO') THEN 'SELF'
		ELSE UPPER(AREA)
	 END as AREA,
	--UPPER(AREA) as AREA,
	 --/20190206
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 -- 20190206 nella subquery c'è stato bisogno di differenziare l'Area Self tra XY e FO, quindi adesso bisogna gestire le aree come SELFXY e SELFFO
		 WHEN AREA = 'SelfXY' THEN 8
		 WHEN AREA = 'SelfFO' THEN 9
		 --WHEN AREA = 'Self' THEN 8
		 --/20190206
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	-- 20190206 in base al cod_interno (XY/FO) l'Area è restituita dalla subquery su Patrimonio_BF come SELFXY e SELFFO, una restituisce il controvalore della LineaSelf e l'altra il controvalore della LineaSelfFogli
	CASE WHEN AREA IN ('SelfXY') THEN CONTROVALORE ELSE 0 END AS LineaSelf,
	CASE WHEN AREA IN ('SelfFO') THEN CONTROVALORE ELSE 0 END AS LineaSelfFoglio
	--CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
	--/20190206
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END as AREA,

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		--/20190206
		

		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		-- 20190206
		CASE
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
			WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
			ELSE LEFT(PBF.ID_AREA,3)
		END

		--CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
		--/20190206
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_SELECTIVE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_SELECTIVE]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'


insert into c6martperiodico.RP_REP_S80_EVOL_STAMPA_C6_TMP
SELECT 
	A.ChiaveClientePB,
	UPPER(AREA) as AREA,
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 WHEN AREA = 'Self' THEN 8
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'

---------------------------------------------------------------------------------------
--SELECT 
--	H.ChiaveClientePB,
----	ltrim(rtrim(H.COD_FISCALE)) as COD_FISCALE,
----	H.RETE,
--
--	UPPER(AREA) as AREA,
--	CASE
--		 WHEN AREA = 'Inv' THEN 2
--		 WHEN AREA = 'Pre' THEN 3
--		 WHEN AREA = 'Ris' THEN 4
--		 WHEN AREA = 'Ext' THEN 1
--		 WHEN AREA = 'Liq' THEN 5
--		 WHEN AREA = 'Na' THEN 6
--		 WHEN AREA = 'Cc' THEN 7
--		 ELSE 0
--	END AS ORDINE,
--	FASE,
--    --Cast('20110930' as datetime) AS DATA_FASE,
--	--'20091231' AS DATA_FASE,
--	--CONVERT(DATETIME, C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 103) AS DATA_FASE,
--	--CONVERT(varchar(8), C6MARTPERIODICO.GETPREVIOUSTRIMESTRE(getdate(),0), 112) AS DATA_FASE,
--	CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) AS DATA_FASE,
--	CONTROVALORE,
--	SUM(RISORSEALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSEALLOCATE,
--	SUM(RISORSENONALLOCATE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS RISORSENONALLOCATE,
--	SUM(CONTOCORRENTE) OVER (PARTITION BY H.COD_FISCALE,H.RETE) AS CONTOCORRENTE,
--	sum(PVDISINV) over (partition by h.cod_fiscale,H.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
--	VAR_PERC_PTF,
--	MAX_VAR,
--    RA.COPERTURA,
--    M.PROFILO_ASS AS PROFILO,
--    COD_AGENTE AS AGENTE,
--    case 
--		when isnull(ra.CREDITRISK,0) > 0 
--			then cast(ra.CREDITRISK  as varchar(5))
--			--else 'n.a.'
--			else '5'
--	end AS RISKCLASS,
--    M.RISKCLASS AS RISKCLASSMAX
--FROM
--	(SELECT 
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3) AS AREA,
--		2 AS FASE,
--		SUM(CTV) AS CONTROVALORE,
--		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
--		max(isnull(C.IMPORTO,0)) AS PVINV,
--		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE A.CTV END) AS  RISORSEALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Na') THEN  A.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
--		SUM(CASE WHEN ID_AREA IN ('Cc') THEN A.CTV ELSE 0 END) AS  CONTOCORRENTE
--	FROM
--		C6MART.VCONTRATTI VC
--		INNER JOIN
--		C6MARTPERIODICO.PATRIMONIO_BF A
--		ON VC.rete = A.rete
--		AND VC.cod_Fiscale = A.cod_fiscale
--        LEFT OUTER JOIN 
--		C6MARTPERIODICO.PARTITE_VIAGGIANTI C
--        ON
--		A.COD_FISCALE=C.COD_FISCALE 
--		AND A.RETE=C.RETE
--		WHERE  A.COD_FISCALE IN (
--			SELECT DISTINCT
--				CODICEFISCALE
--			FROM
--				C6MARTPERIODICO.GESTIONE_PDF_FTP B
--			WHERE 
--				FLAGINVIO='S'
--				--AND DEFINITIVO=1 -- DA SCOMMENTARE IN PRODUZIONE
--		)
--	GROUP BY
--		VC.ChiaveClientePB,
--		A.COD_FISCALE,
--		A.RETE,
--		LEFT(A.ID_AREA,3)
--	) H
--	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
--		ON H.RETE = RA.RETE
--		AND H.COD_FISCALE = RA.COD_FISCALE
--	INNER JOIN C6MartPeriodico.MIFID AS M
--		ON H.RETE = M.RETE
--		AND H.COD_FISCALE = M.COD_FISCALE
--    INNER JOIN C6MART.CONTRATTOSEI C6
--    ON H.COD_FISCALE=C6.COD_FISCALE 
--    AND H.RETE=C6.RETE
---- MODIFICARE ATRINGALI     
--   AND ISNULL(C6.DATA_FINEAVANZATO, '99991231') > getdate() --'20091231'
--	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--	WHERE COD_AGGREG = 'COMPLESSIVO|BF'
--	--and H.cod_fiscale='PCTGNN45A30G276G'
---------------------------------------------------------------------------------------

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_SELECTIVE_FINAL]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_FASE2_SELECTIVE_FINAL]
AS
BEGIN

SET NOCOUNT ON;

insert into Consuni.ConsulenzaUnica.dbo.REP_S80_EVOL_STAMPA_C6
select * from c6martperiodico.RP_REP_S80_EVOL_STAMPA_C6_TMP

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_S80_PARZIALE_FASE2_CU]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_S80_PARZIALE_FASE2_CU]
AS
BEGIN

SET NOCOUNT ON;

DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, C6MARTPERIODICO.GETTRIMESTRE2(getdate(),0), 103) --'20130930'
SET @DataFineAvanzato = getdate() --'20130731'


insert into [dbo].[REP_S80_EVOL_STAMPA_C6_PARZIALE]
SELECT 
	A.ChiaveClientePB,
	UPPER(AREA) as AREA,
	CASE
		 WHEN AREA = 'Inv' THEN 2
		 WHEN AREA = 'Pre' THEN 3
		 WHEN AREA = 'Ris' THEN 4
		 WHEN AREA = 'Ext' THEN 1
		 WHEN AREA = 'Liq' THEN 5
		 WHEN AREA = 'Na' THEN 6
		 WHEN AREA = 'Cc' THEN 7
		 WHEN AREA = 'Self' THEN 8
		 ELSE 0
	END AS ORDINE,
	FASE,
	@DataFase AS DATA_FASE,
	CONTROVALORE,
	SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
	SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
	SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
	SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
	VAR_PERC_PTF,
	MAX_VAR,
    RA.COPERTURA,
    MFD.PROFILO_ASS AS PROFILO,
    COD_AGENTE AS AGENTE,
    case 
		when isnull(ra.CREDITRISK,0) > 0 
			then cast(ra.CREDITRISK  as varchar(5))
			--else 'n.a.'
			else '5'
	end AS RISKCLASS,
    MFD.RISKCLASS AS RISKCLASSMAX,
	CASE WHEN AREA IN ('Self') THEN CONTROVALORE ELSE 0 END AS LineaSelf
FROM
	(SELECT
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END AS AREA,
		2 AS FASE,
		SUM(CTV) AS CONTROVALORE,
		sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
		max(isnull(PVIA.IMPORTO,0)) AS PVINV,
		SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
		SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
	FROM
		C6MART.VCONTRATTI VC
	INNER JOIN
		C6MARTPERIODICO.PATRIMONIO_BF PBF
	ON VC.rete = PBF.rete
		AND VC.cod_Fiscale = PBF.cod_fiscale
    LEFT OUTER JOIN 
		C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
    ON
		PBF.COD_FISCALE=PVIA.COD_FISCALE 
		AND PBF.RETE=PVIA.RETE
	INNER JOIN
		C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
	ON
		VC.COD_FISCALE=PDFFTP.CODICEFISCALE
		AND VC.RETE=PDFFTP.RETE
	WHERE 1=1
		AND TIPOREPORT = 'M'
		AND FLAGINVIO='S'
--		AND DEFINITIVO=1
		AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
	GROUP BY
		VC.ChiaveClientePB,
		VC.COD_AGENTE,
		PBF.COD_FISCALE,
		PBF.RETE,
		CASE WHEN PBF.ID_AREA = 'Self' THEN PBF.ID_AREA ELSE LEFT(PBF.ID_AREA,3) END
	) A
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON A.RETE = RA.RETE
		AND A.COD_FISCALE = RA.COD_FISCALE
	INNER JOIN C6MartPeriodico.MIFID AS MFD
		ON A.RETE = MFD.RETE
		AND A.COD_FISCALE = MFD.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MFD.PROFILO_ASS = CR.PROFILO
	WHERE COD_AGGREG = 'COMPLESSIVO|BF'


END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_SPECIFIC_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_SPECIFIC_ZIP]
(@CARTELLA as VARCHAR(255))
as
BEGIN 

       DECLARE @IdZip AS INT
       SET @IdZip = -1

       DECLARE @NomeCartella AS VARCHAR(255)
    Declare @NomeFile    as varchar(50)
    Declare @NumeroCFZip   as int


       SELECT @IdZip=id,@NomeCartella=NomeCartella,@NomeFile =NomeFile
       FROM
              C6MartPeriodico.GESTIONE_ZIP_FTP_IDX
       WHERE
              NomeCartella = @CARTELLA
              
       IF @IdZip > -1 Begin
             select @NumeroCFZip=count( *)
                     from (
                     select distinct rete,codicefiscale
                     from c6martperiodico.GESTIONE_PDF_FTP_IDX
                     where id_fk_zip=@IdZip) a
   end
              select @IdZip IdZip,@NomeFile NomeFile,@NomeCartella NomeCartella,@NumeroCFZip  NumeroCFZip

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_ZIP_DA_INVIARE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_ZIP_DA_INVIARE]
@FKIDElaborazioneZip int
AS
BEGIN
	SELECT
--		Rete,
--		CodiceFiscale,
		id IdZip
		,NomeFile
--		,
--		TipoReport,
--		DataGenerazione,
--		DataInvio,
--		FlagInvio,
--		NomeFile SELECT *
	FROM
		[C6MartPeriodico].GESTIONE_ZIP_FTP
	WHERE
		FlagInvio = 'N'
		AND DateCopyToSend IS NOT NULL
		AND FKIDElaborazioneZip = @FKIDElaborazioneZip

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_SELECT_ZIP_WHITELIST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Hazem
-- Create date: 09/06/2010
-- Description:	Selecta white list packages
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_SELECT_ZIP_WHITELIST]
AS
BEGIN

	declare @lotto as smallint
	select @lotto =    max(IDElaborazioneZIP) FROM C6MartPeriodico.ELABORAZIONI_ZIP WHERE  DataFine IS NOT NULL
	
	SELECT 
		id as IdZip,
		@lotto as lotto,
		nomeFile
		 
	FROM
		C6MartPeriodico.GESTIONE_ZIP_FTP
	WHERE
		--DataInvio >= C6MartPeriodico.getTrimestre(GETDATE(),0) 
		--AND
		--id = 998 and 
		fkIDElaborazioneZIP = @lotto--(SELECT max(IDElaborazioneZIP) FROM C6MartPeriodico.ELABORAZIONI_ZIP WHERE DataFine IS NOT NULL)

	
END
 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_ELABORAZIONE_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_ELABORAZIONE_ZIP]
@IDElaborazioneZip int
AS
BEGIN 

	BEGIN TRY
		BEGIN TRANSACTION INSERT_ELABORAZIONE_ZIP
			UPDATE [C6MartPeriodico].[ELABORAZIONI_ZIP]
			SET	   [DataFine] = GETDATE()
			WHERE IDElaborazioneZip = @IDElaborazioneZip 
		COMMIT TRANSACTION INSERT_ELABORAZIONE_ZIP
	END TRY
	BEGIN CATCH
		ROLLBACK TRANSACTION INSERT_ELABORAZIONE_ZIP
	END CATCH

END
		

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_ELABORAZIONE_ZIP_20170328]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_ELABORAZIONE_ZIP_20170328]
@IDElaborazioneZip int
AS
BEGIN 

	BEGIN TRY
		BEGIN TRANSACTION INSERT_ELABORAZIONE_ZIP
			UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[ELABORAZIONI_ZIP]
			SET	   [DataFine] = GETDATE()
			WHERE IDElaborazioneZip = @IDElaborazioneZip 
		COMMIT TRANSACTION INSERT_ELABORAZIONE_ZIP
	END TRY
	BEGIN CATCH
		ROLLBACK TRANSACTION INSERT_ELABORAZIONE_ZIP
	END CATCH

END
		

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_EMAIL_HOST]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec [C6Mart].[Gestione_EMAIL_Inviate] @Email_Id=7,@DataInvio='2008-11-17 18:10:43:603'
CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_EMAIL_HOST]
	@Email_Id int
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE [C6MartPeriodico].GESTIONE_EMAIL
	SET Data_Comunicazione_Host = getdate()
	WHERE Email_Id = @Email_Id
	RETURN @@ROWCOUNT
END


SELECT *
FROM [C6MartPeriodico].GESTIONE_EMAIL

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_EMAIL_INVIATE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec [C6Mart].[Gestione_EMAIL_Inviate] @Email_Id=7,@DataInvio='2008-11-17 18:10:43:603'
CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_EMAIL_INVIATE]
	@Email_Id int,
	@DataInvio datetime
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE [C6MartPeriodico].GESTIONE_EMAIL
	SET Data_Invio = @DataInvio,
	    Inviata = 'S'
	WHERE Email_Id = @Email_Id
	RETURN @@ROWCOUNT
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- 22/12/2008 MODIFICA PER GESTIONE RISTAMPE
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_FTP]
	@Id INT,
	@TipoReport varchar(2),
	@IdZip INT
AS
BEGIN
	

	


	IF @TipoReport <> 'LR' -- INVIO NORMALE
	BEGIN	
		UPDATE [C6MartPeriodico].GESTIONE_PDF_FTP
		SET
			DataInvio = GetDate(),
			FlagInvio = 'S',
			Id_fk_Zip = @IdZip
		WHERE
			IdReport = @Id
	END 
	ELSE -- INVIO DI UNA RISTAMPA. TENGO TRACCIA SOLO DELL'ULTIMA DATA DI RISTAMPA
	BEGIN
		UPDATE [C6MartPeriodico].GESTIONE_PDF_FTP
		SET
			DataInvioRistampa = GetDate(),
			FlagInvio = 'S',
			Id_fk_Zip = @IdZip
		WHERE
			IdReport = @Id
	END 
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_ZIP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6MartPeriodico].[GESTIONE_UPDATE_ZIP] 
	@Id int
AS
BEGIN

Begin try

	UPDATE [C6MartPeriodico].GESTIONE_ZIP_FTP
	SET
		DataInvio = GetDate(),
		FlagInvio = 'S'
	WHERE
		Id = @Id;

update t
SET
		t.STATO_REPORT = 6, 
		t.PACCHETTO_ZIP = @Id, 
		t.DATA_TRANSIZIONE=GETDATE()
from C6MartPeriodico.CONTROLLO_TRIMESTRALE t
inner join  C6MARTPERIODICO.GESTIONE_PDF_FTP	 g
on 	t.rete=g.rete and t.cod_fiscale = g.codicefiscale
and ID_FK_ZIP = @Id
where STATO_REPORT = 4


update t
SET
		t.[Pacchetto_Zip] = @Id, 
		t.DATA_TRANSIZIONE=GETDATE()
from [C6MartPeriodico].[WHITELIST_ZIP] t
inner join  C6MARTPERIODICO.GESTIONE_PDF_FTP	 g
on 	t.rete=g.rete and t.cod_fiscale = g.codicefiscale


	end try
	begin catch
	
	end catch		

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_ZIP_COPY]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6MartPeriodico].[GESTIONE_UPDATE_ZIP_COPY] 811
CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_ZIP_COPY] 
	@Id int
AS
BEGIN
	UPDATE [C6MartPeriodico].GESTIONE_ZIP_FTP
	SET
		DateCopyToSend = GetDate()
	WHERE
		Id = @Id;


-- COLAIANNI-CONSOLI - 28.06.2011
-- SETTA NELLA CONTROLLO_REPORT LO STATO 6 (INVIATO)
-- PER TUTTI I REPORT CHE SI TROVANO NELLO STATO 4 (STAMPATO)
	--UPDATE [C6MartPeriodico].CONTROLLO_TRIMESTRALE
	--SET
	--	STATO_REPORT = 6, 
	--	PACCHETTO_ZIP = @Id, 
	--	DATA_TRANSIZIONE=GETDATE()
	--WHERE
	--	STATO_REPORT = 4
	--	AND COD_FISCALE+RETE IN 
	--		(
	--		 SELECT CODICEFISCALE+RETE 
	--		 FROM C6MARTPERIODICO.GESTIONE_PDF_FTP
	--		 WHERE ID_FK_ZIP = @id
	--		);

-- Caruso-Verdecchia 17/04/2014
--Sostituita per time-out
update t
SET
		t.STATO_REPORT = 6, 
		t.PACCHETTO_ZIP = @Id, 
		t.DATA_TRANSIZIONE=GETDATE()
from C6MartPeriodico.CONTROLLO_TRIMESTRALE t
inner join  C6MARTPERIODICO.GESTIONE_PDF_FTP	 g
on 	t.rete=g.rete and t.cod_fiscale = g.codicefiscale
and ID_FK_ZIP = @Id
where STATO_REPORT = 4
			
			
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GESTIONE_UPDATE_ZIP_SENT_FTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[GESTIONE_UPDATE_ZIP_SENT_FTP] 
	@Id int
AS
BEGIN
	UPDATE [C6MartPeriodico].GESTIONE_ZIP_FTP
	SET
		DataInvio = GetDate(),
		FlagInvio = 'S'
	WHERE
		Id = @Id




-- COLAIANNI-CONSOLI - 28.06.2011
-- SETTA NELLA CONTROLLO_REPORT LO STATO 6 (INVIATO)
-- PER TUTTI I REPORT CHE SI TROVANO NELLO STATO 4 (STAMPATO)
	UPDATE [C6MartPeriodico].CONTROLLO_TRIMESTRALE
	SET
		STATO_REPORT = 6, 
		PACCHETTO_ZIP = @Id, 
		DATA_TRANSIZIONE=GETDATE()
	WHERE
		STATO_REPORT = 4
		AND COD_FISCALE+RETE IN 
			(
			 SELECT CODICEFISCALE+RETE 
			 FROM C6MARTPERIODICO.GESTIONE_PDF_FTP
			 WHERE ID_FK_ZIP = @id
			);
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_DA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_DA] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 

		WITH WSEIAN_1 as 
		(
				select                  codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			 WHEN wse.flagnqp IS NULL or wse.flagnqp ='' 
			 THEN 'N'
			 ELSE wse.flagnqp
			 END as 'flagnqp'
		,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
		FROM 
			 wh.Maledetti  Maledetti
			 inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
			 left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete
		WHERE 
			Maledetti.tip_contratto=3
		and flag_stampa=1	
		      
		ORDER BY 
			Maledetti.[CodiceFiscale]
		   ,Maledetti.[Rete]

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_DA_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE     procedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_DA_GB] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 

		WITH WSEIAN_1 as 
		(
				select                  codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			 WHEN wse.flagnqp IS NULL or wse.flagnqp ='' 
			 THEN 'N'
			 ELSE wse.flagnqp
			 END as 'flagnqp'
		,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
		FROM 
			 wh.Maledetti  Maledetti
			 inner join  c6martperiodico.TB_Campione_GB Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
			 left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete
		WHERE
			 Maledetti.tip_contratto=3 
			 and flag_stampa=1	
		ORDER BY 
		    Maledetti.[CodiceFiscale]
		   ,Maledetti.[Rete];

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_GB] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 

		WITH WSEIAN_1 as 
		(
				select                  codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			 WHEN wse.flagnqp IS NULL or wse.flagnqp ='' 
			 THEN 'N'
			 ELSE wse.flagnqp
			 END as 'flagnqp'
		,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
		FROM 
			 wh.Maledetti  Maledetti
			 inner join  c6martperiodico.TB_Campione_GB Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
			 left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete
		WHERE 
	--		Maledetti.tip_contratto<>3
	--	and 
		flag_stampa=1	
		      
		ORDER BY 
			Maledetti.tip_contratto desc
		   ,Maledetti.[CodiceFiscale]
		   ,Maledetti.[Rete]

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_SEI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_SEI] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 

		WITH WSEIAN_1 as 
		(
				select                  codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			 WHEN wse.flagnqp IS NULL or wse.flagnqp ='' 
			 THEN 'N'
			 ELSE wse.flagnqp
			 END as 'flagnqp'
		,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
		FROM 
			 wh.Maledetti  Maledetti
			 inner join  c6martperiodico.TB_Campione Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
			 left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete
		WHERE 
			Maledetti.tip_contratto<>3
		and flag_stampa=1	
		      
		ORDER BY 
			Maledetti.[CodiceFiscale]
		   ,Maledetti.[Rete]

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_SEI_GB]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE     procedure [C6MartPeriodico].[GETDATATHREADS_TRIMESTRALE_SEI_GB] (@volThreads int = 10000)
AS
BEGIN
		SET NOCOUNT ON;

		DECLARE @dtrim VARCHAR(8) = c6martperiodico.gettrimestre(getDate(),0); 

		WITH WSEIAN_1 as 
		(
				select                  codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman  = '' and dttrim = @dtrim
				UNION ALL 
				select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim from [C6stagingPeriodico].[WSEIAN2] WHERE codman <> '' and dttrim = @dtrim
		)
		SELECT TOP (@volThreads) 
		 Maledetti.[CodiceFiscale]
		,Maledetti.[Rete]
		,Maledetti.[tip_contratto]
		,Maledetti.[NomeRete]
		,Maledetti.[Agente]
		,Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente]
		,Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente]
		,Maledetti.[CittaAgente]
		,Maledetti.[TelefonoAgente]
		,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.[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 = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' AND ftp.codicefiscale = Maledetti.codicefiscale AND ftp.rete = Maledetti.Rete),0) AS IdReportPDFMonitoraggio
		,CASE 
			 WHEN wse.flagnqp IS NULL or wse.flagnqp ='' 
			 THEN 'N'
			 ELSE wse.flagnqp
			 END as 'flagnqp'
		,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
		FROM 
			 wh.Maledetti  Maledetti
			 inner join  c6martperiodico.TB_Campione_GB Campione on Maledetti.rete= Campione.rete and Maledetti.i_codicefiscale= Campione.cod_fiscale
			 left outer join WSEIAN_1 wse on wse.codfis = Maledetti.CodICEFiscale and wse.rete = Maledetti.rete
		WHERE
			 Maledetti.tip_contratto<>3 
			 and flag_stampa=1	
		ORDER BY 
		    Maledetti.[CodiceFiscale]
		   ,Maledetti.[Rete];

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GetFilesForSendingByFTP]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[GetFilesForSendingByFTP]

AS
BEGIN
		select id, nomefile from [C6MartPeriodico].[GESTIONE_ZIP_FTP] where datecopytosend is null
	
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GetQueryContratti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE   procedure [C6MartPeriodico].[GetQueryContratti]

as

	SELECT
		'[' + s.name + '].[' + p.Name + ']' as QueryContratti,
		SchemaName = s.name,
		ProcedureName = p.name,
		s.*
	FROM 
		sys.procedures p
		INNER JOIN sys.schemas s
		ON p.schema_id = s.schema_id
	where s.name like 'C6Mart%' and p.name like '%GETDATATHREADS%' 
	order by p.name
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[GetRiskArea]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[GetRiskArea] 'S', 'GLLRFL52L02L219D'
CREATE procedure [C6MartPeriodico].[GetRiskArea]
-- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	select

		case 
			when b.profilo is null then -1 
			else b.profilo
		end as profiloCode

	FROM
		C6MartPeriodico.mifid a
		left outer join C6MartPeriodico.CODIFICA_RISCHIO b
		on A.PROFILO_ASS=B.PROFILO
	WHERE

		a.COD_FISCALE = @CodiceFiscale
		and a.RETE= @Rete

END 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Inizializzazione_tabellone]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















 
CREATE     procedure [C6MartPeriodico].[Inizializzazione_tabellone]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 TRUNCATE TABLE  [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
 --drop index if exists [IDX_TABELLONE_RETE_ACN] on [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
 


  
 INSERT INTO [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
           ([rete_acn]
      ,[chiave_acn]
      ,[indirizzo]
      ,[cap]
      ,[citta]
      ,[provincia]
      ,[nazione]
      ,[codconf]
	  ,[codman]
	  ,rete
	  ,[chiave_cap]
	  ,[Tipo_cliente]
     ) 
select rete,rete+COD_FISCALE,INDIRIZZO,cap,CITTA,PROVINCIA,NAZIONE,codiceContratto,COD_MANDATO,rete,
case when COD_FISCALE not like '%@%' then rete+COD_FISCALE+isnull(PIVA_FIDUCIARIA,'')+isnull(COD_MANDATO,'')
else rete+isnull(PIVA_FIDUCIARIA,'')+isnull(COD_MANDATO,'') end, case when TIP_CONTRATTO=3 then 'Direct' else 'Sei' end as Tipo_Cliente
FROM [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI]
   --select * from consuni_periodico.ConsulenzaUnica.dbo.Cliente where codfis is null

--    create NONCLUSTERED INDEX [IDX_TABELLONE_RETE_ACN] ON [C6MartPeriodico].[tabellone]
--( [chiave_acn] ASC )
--WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]

 UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
 set DTTRIM=[C6MartPeriodico].[getTrimestre2](getdate(),0)
  
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set nome = tab.NOME , cognome = tab.COGNOME ,dtnasci=tab.dtNascita,codfis=tab.codfis
		from consuni_periodico.ConsulenzaUnica.dbo.Cliente tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on substring(a.chiave_acn,2,17)= tab.codfis
		--select * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI]
		
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set nome = tab.NOME , cognome = tab.COGNOME ,dtnasci=tab.dtNascita,codfis=tab.piva
		from consuni_periodico.ConsulenzaUnica.dbo.Cliente tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on substring(a.chiave_acn,2,17)= tab.piva 



UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set nome = tab.NOME , cognome = tab.COGNOME ,dtnasci=tab.dtNascita,codfis=tab.piva
		from consuni_periodico.ConsulenzaUnica.dbo.Cliente tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on substring(a.chiave_acn,5,11)= tab.codman
		where len(chiave_acn) <= 10 

--problema nome, cognome 
if((select COUNT(*) from C6MartPeriodico.tabellone where cognome is null)>0)
begin
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set nome = tab.NOME , cognome = tab.COGNOME ,dtnasci=tab.DATA_NASCITA
		from c6mart.anag_clienti tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on a.chiave_acn=tab.rete+tab.cod_fiscale
		where a.cognome is null
end


update  [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] 
set cognome =codman+' - '+'SOCIETA'' ITALIANA DI REVISIONE E FIDUCIARIA' ,nome=''
where 
cognome like '%SOCIETA'' ITALIANA DI RE%'


UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set codice_agente= w.Codice_Agente,nominativo_pb=trim(w.[Nominativo_ Agente]) ,codice_fiscale=w.CodiceFiscale,
		freq_monitoraggio=w.Freq_Monitoraggio,freq_diagnosi=w.[Freq_ Diagnosi],data_revoca=try_CONVERT(date,cast(w.Data_Revoca as varchar) ,23),
		tipo_contratto=w.TipoContratto,tipo_riattivazione=w.TipoRiattivazione,rol_effettiva=isnull(w.ROL,'S')   
		from [dbo].[W6TRCLI] w
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		on w.Rete+w.CodiceFiscale=a.chiave_acn

--data sottoscrizione (faccio due update per qualcuno che ha delle problematiche, per preferenza meglio il consuni_periodico perciò viene fatto dopo)		
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
set cfm_dsottos=data_sottoscrizione_c6
from consuni.consulenzaunicafl.dbo.cbs_dbcontrattosei c left join C6MartPeriodico.tabellone t on c.cod_conf=t.codconf

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
set cfm_dsottos=data_sottoscrizione_c6
from consuni_periodico.consulenzaunicafl.dbo.cbs_dbcontrattosei c left join C6MartPeriodico.tabellone t on c.cod_conf=t.codconf

--problema nominativo agente

if ((select COUNT(*) from C6MartPeriodico.tabellone where nominativo_pb='')>0)
begin 
update C6MartPeriodico.tabellone 
set nominativo_pb=v.nomePb+''+v.cognomePB
from consuni_periodico.consulenzaunica.dbo.vinfocliente v left join C6MartPeriodico.tabellone t on v.rete+v.Codfis+v.Agente=t.chiave_acn+t.codice_agente
where nominativo_pb=''

update C6MartPeriodico.tabellone 
set nominativo_pb=v.nomePb+''+v.cognomePB
from consuni_periodico.consulenzaunica.dbo.vinfocliente v left join C6MartPeriodico.tabellone t on v.rete+v.piva+v.Agente=t.chiave_acn+t.codice_agente
where nominativo_pb=''

update C6MartPeriodico.tabellone 
set nominativo_pb=v.nomePb+''+v.cognomePB
from consuni_periodico.consulenzaunica.dbo.vinfocliente v left join C6MartPeriodico.tabellone t on v.rete+'FF@'+v.codman+v.Agente=t.chiave_acn+t.codice_agente
where nominativo_pb=''


end 

--fine nominativo agente

--campi Cambio Rete

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set rete_c=tab.reteOLD,rete_r=tab.reteNEW,dt_ultimo_cr=dtcaricamento
	from [consuni_periodico].[consulenzaunicafl].[dbo].[ClienteCambioRete_st] tab inner join
	[C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		on tab.ReteNEW+tab.Codicefiscale=a.chiave_acn
		where tab.Codicefiscale <> ''  

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set rete_c=tab.reteOLD,rete_r=tab.reteNEW,dt_ultimo_cr=dtcaricamento
	from [consuni_periodico].[consulenzaunicafl].[dbo].[ClienteCambioRete_st] tab inner join
	[C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		on tab.ReteNEW+tab.partitaiva=a.chiave_acn
		where tab.partitaiva <> ''

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set rete_c=tab.reteOLD,rete_r=tab.reteNEW,dt_ultimo_cr=dtcaricamento
	from [consuni_periodico].[consulenzaunicafl].[dbo].[ClienteCambioRete_st] tab inner join
	[C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		on tab.ReteNEW+'FF@'+tab.Codman=a.chiave_acn
		where tab.codman <> ''

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set rete_c='',rete_r=''
	where rete_c is null or rete_r is null or dt_ultimo_cr is null

--fine Cambio rete

		--select * from [consuni_periodico].[consulenzaunicafl].[dbo].[ClienteCambioRete_fl] 
		--select * from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] where rete_r is not null

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set cocf_subprod='6P'
	from [dbo].[W6TRCLI] w inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a on w.rete+w.CodiceFiscale=a.chiave_acn

	--select * from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set segmento='PRIVATE'
	from [dbo].[W6TRCLI] w inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a on w.rete+w.CodiceFiscale=a.chiave_acn

--flag professional inizio immesso adesso perche ci serve come filtro

	Update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set flgprof= (case 
						when v.tipoconsulenza='P' then 'S'
						else 'N' end)
	from consuni_periodico.consulenzaunica.dbo.vinfocliente v left join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a on v.Rete+v.codfis=a.chiave_acn 
	where v.codfis <> '' and dtendsei is not null

	Update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set flgprof= (case 
						when v.tipoconsulenza='P' then 'S'
						else 'N' end)
	from consuni_periodico.consulenzaunica.dbo.vinfocliente v left join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 	on v.Rete+v.piva=a.chiave_acn 
	where v.piva <> '' and (v.codman is null or v.codman='') and dtendsei is not null

	Update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set flgprof= (case 
						when v.tipoconsulenza='P' then 'S'
						else 'N' end)
	from consuni_periodico.consulenzaunica.dbo.vinfocliente v left join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a on v.Rete+'FF@'+v.Codman=a.chiave_acn 
	where v.codman <> ''and dtendsei is not null
--fine flag professional

	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set cognome=cognome+' '+nome ,nome=''
	from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] where len(chiave_acn)=12 and cognome not like '%SOCIETA'' ITALIANA DI RE%' --per le piva

	update C6MartPeriodico.tabellone
	set campione1=case when chiave_acn in (select rete+cod_fiscale from C6MartPeriodico.TB_Campione) then 'S' else 'N' end

--lettera di benvenuto
drop table if exists #lettera_benvenuto
SELECT d.rete, d.codicefiscale,d.idreport,d.tiporeport,d.datagenerazione,d.datainvio,d.DataInvioRistampa,d.FlagInvio,d.NomeFile,d.numeroPagine,d.ID_ELAB,d.id_Fk_zip
into #lettera_benvenuto
FROM 
(
    SELECT rete,codicefiscale, Max(datainvio) as datamax  
    FROM C6Mart.gestione_pdf_ftp
    GROUP BY rete,codicefiscale
) r
INNER JOIN C6Mart.gestione_pdf_ftp d
ON d.rete=r.rete and d.CodiceFiscale=r.codicefiscale AND d.DataInvio=r.datamax
where d.Rete+d.CodiceFiscale in (select chiave_acn from C6MartPeriodico.tabellone) order by codicefiscale,datainvio

update C6MartPeriodico.tabellone
set cocf_dtletbenv=datainvio
from #lettera_benvenuto b inner join C6MartPeriodico.tabellone t on b.rete+b.codicefiscale=t.chiave_acn

--fine lettera benvenuto	

update c6martperiodico.tabellone
set lettera_sost='N'

update c6martperiodico.tabellone
set stato_cliente='Attivo'

-- FerAcu 20241029 Ogni volta che il TABELLONE viene ricostruito, si perdevano i dati dell'IMMOBILIARE
 UPDATE t 
 set flgpe_perimetro_semestr = i.FLAG_IN_PERIMETRO
   , solo_rend_imm = isnull(i.RENDICONTO_IMM,'N')
   , anche_rend_sei = i.RENDICONTO_SEI  
 from [C6MartPeriodicoImmobiliare].[W6IMM] i 
      Join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] t on t.chiave_acn = i.RETE+i.CODFIS

truncate table C6MartPeriodico.APPREND_DTSX_Tabellone 

insert into C6MartPeriodico.APPREND_DTSX_Tabellone 
select * from C6MartPeriodico.vTabellone

END  
  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Inserimento_TrimestraleScarti_ExcludedList]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6MartPeriodico].[Inserimento_TrimestraleScarti_ExcludedList]
as

 -- Log esecuzione  
 INSERT INTO [C6MartPeriodico].[ExcludedList]
 select rete,codfis,blacklist,datainsert,bloccato=1 from C6StagingPeriodico.TRIMESTRALE_SCARTI

 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Inserimento_TrimestraleScarti_SegnalazioneDataQuality]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6MartPeriodico].[Inserimento_TrimestraleScarti_SegnalazioneDataQuality]
as


SELECT idTipoControllo,RETE,CODFIS,DescSegnalazione,idElaborazione=(select max(id_elab) from  c6martperiodico.elaborazioni ),idFaseElaborazione=2,datainsert
 into #appoggio1
  FROM [C6StagingPeriodico].[Trimestrale_Scarti] q
  left join [C6MartPeriodico].[tb_TipoControllo] a
  on a.DescTipoControllo like q.BLACKLIST


 INSERT INTO [C6MartPeriodico].[tb_SegnalazioniDataQuality] (idTipoControllo,rete,codiceFiscale,descSegnalazione,idElaborazione,idFaseElaborazione,dataInserimento)
 select * from #appoggio1

 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[INSERISCI_FASE2_PER_CAMBIO_RETE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodico].[INSERISCI_FASE2_PER_CAMBIO_RETE]
AS

--Creo un cursore per ciclare sui cf per i quali devo ri-creare la fase2
DECLARE Cur_CF CURSOR FOR 
	SELECT [RETE_C],[RETE_R],[CODFIS],[FLAG_ELAB],DT_ELAB FROM [C6StampeCentralizzate].[C6MartPeriodico].[ANAG_CAMBIO_RETE]

--creo la tabella temporanea dove inserire la riga letta
declare	@t_DTCHRETE as datetime
declare	@t_COGNOME as varchar(50)
declare	@t_RETE_C [varchar](1) 
declare	@t_RETE_R [varchar](1) 
declare	@t_CODFIS [varchar](16) 
declare	@t_CODAGE_C [varchar](6)
declare	@t_CODAGE_R [varchar](6)
declare	@t_FLAG_ELAB [varchar](1)
declare	@t_DT_ELAB [datetime]  


----------------------------------------------------------
DECLARE @DataFase datetime
DECLARE @DataFineAvanzato datetime
SET @DataFase = CONVERT(DATETIME, [c6newcu].C6MARTPERIODICO.GETTRIMESTRE2('2019-02-14',0), 103) 
SET @DataFineAvanzato = '2019-02-14' --IMPOSTO LA DATA DEL BACKUP DEL DB TRIMESTRALE


----------------------------------------------------------
--ATTIVARE il CURSORE
OPEN Cur_CF

--PRELEVO la prossima riga 
FETCH NEXT FROM Cur_CF into @t_RETE_C,@t_RETE_R,@t_CODFIS,@t_FLAG_ELAB,@t_DT_ELAB


--Finchè trovo nuove righe...
WHILE @@FETCH_STATUS = 0
begin
		
		--print @t_RETE_R + '/' + @t_CODFIS + ' <' + @t_FLAG_ELAB + '>'

		if @t_FLAG_ELAB = 'S'
			
			begin
			

			-- inserisco nella tabella di log
			INSERT INTO [C6MartPeriodico].[LOG_CAMBIO_RETE] VALUES (getdate(),@t_RETE_C,@t_RETE_R,@t_CODFIS, 'GIA'' ELABORATO IN DATA '+LEFT(CONVERT(VARCHAR, @t_DT_ELAB, 120), 10));

			end


		ELSE

			begin

			--**********************************************************************************************
			--                   inserimento in [consulenzaUnica].dbo.REP_S80_EVOL_STAMPA_C6
			--               query estratta dalla sp di ribaltamento dei dati in post trimestrale
			--
			--**********************************************************************************************
			insert into [CONSUNI].[consulenzaUnica].dbo.REP_S80_EVOL_STAMPA_C6
			SELECT 
				A.ChiaveClientePB,
				 CASE
					 WHEN AREA IN ('SELFXY', 'SELFFO') THEN 'SELF'
					ELSE UPPER(AREA)
				 END as AREA,
				CASE
					 WHEN AREA = 'Inv' THEN 2
					 WHEN AREA = 'Pre' THEN 3
					 WHEN AREA = 'Ris' THEN 4
					 WHEN AREA = 'Ext' THEN 1
					 WHEN AREA = 'Liq' THEN 5
					 WHEN AREA = 'Na' THEN 6
					 WHEN AREA = 'Cc' THEN 7
					 WHEN AREA = 'SelfXY' THEN 8
					 WHEN AREA = 'SelfFO' THEN 9
					 ELSE 0
				END AS ORDINE,
				FASE,
				@DataFase AS DATA_FASE,
				CONTROVALORE,
				SUM(RISORSEALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSEALLOCATE,
				SUM(RISORSENONALLOCATE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS RISORSENONALLOCATE,
				SUM(CONTOCORRENTE) OVER (PARTITION BY A.COD_FISCALE,A.RETE) AS CONTOCORRENTE,
				SUM(PVDISINV) over (partition by A.cod_fiscale,A.RETE) + isnull(PVINV,0) AS INVESTIMENTIINCORSO,
				VAR_PERC_PTF,
				MAX_VAR,
				RA.COPERTURA,
				MFD.PROFILO_ASS AS PROFILO,
				COD_AGENTE AS AGENTE,
				case 
					when isnull(ra.CREDITRISK,0) > 0 
						then cast(ra.CREDITRISK  as varchar(5))
						--else 'n.a.'
						else '5'
				end AS RISKCLASS,
				MFD.RISKCLASS AS RISKCLASSMAX,
				CASE WHEN AREA IN ('SelfXY') THEN CONTROVALORE ELSE 0 END AS LineaSelf,
				CASE WHEN AREA IN ('SelfFO') THEN CONTROVALORE ELSE 0 END AS LineaSelfFoglio
			FROM
				(SELECT
					VC.ChiaveClientePB,
					VC.COD_AGENTE,
					PBF.COD_FISCALE,
					PBF.RETE,
					CASE
						WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
						WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
						ELSE LEFT(PBF.ID_AREA,3)
					END as AREA,
					2 AS FASE,
					SUM(CTV) AS CONTROVALORE,
					sum(isnull(PARTVIA_DISINV,0)) AS PVDISINV,
					max(isnull(PVIA.IMPORTO,0)) AS PVINV,
					SUM(CASE WHEN ID_AREA IN ('Na','Cc') THEN 0 ELSE PBF.CTV END) AS  RISORSEALLOCATE,
					SUM(CASE WHEN ID_AREA IN ('Na') THEN  PBF.CTV ELSE 0 END) AS  RISORSENONALLOCATE,
					SUM(CASE WHEN ID_AREA IN ('Cc') THEN PBF.CTV ELSE 0 END) AS  CONTOCORRENTE
				FROM
					[c6stampecentralizzate].C6MART.VCONTRATTI VC
				INNER JOIN
					[c6newcu].C6MARTPERIODICO.PATRIMONIO_BF PBF
				ON PBF.rete = @t_RETE_C
					AND VC.cod_Fiscale = PBF.cod_fiscale
				LEFT OUTER JOIN 
					[c6newcu].C6MARTPERIODICO.PARTITE_VIAGGIANTI PVIA
				ON
					PBF.COD_FISCALE=PVIA.COD_FISCALE 
					AND PBF.RETE=PVIA.RETE
				INNER JOIN
					[c6newcu].C6MARTPERIODICO.GESTIONE_PDF_FTP PDFFTP
				ON
					VC.COD_FISCALE=PDFFTP.CODICEFISCALE
					AND PDFFTP.RETE = @t_RETE_C
				WHERE 1=1
					AND TIPOREPORT = 'M'
					AND FLAGINVIO='S'
					AND ISNULL(VC.DATA_FINEAVANZATO, '99991231') > @DataFineAvanzato
					and vc.cod_fiscale = @t_CODFIS 
				GROUP BY
					VC.ChiaveClientePB,
					VC.COD_AGENTE,
					PBF.COD_FISCALE,
					PBF.RETE,
					CASE
						WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'XY' THEN 'SELFXY'
						WHEN PBF.ID_AREA = 'Self' and PBF.COD_INTERNO = 'FO' THEN 'SELFFO'
						ELSE LEFT(PBF.ID_AREA,3)
					END
				) A
				LEFT OUTER JOIN [c6newcu].C6MartPeriodico.RISCHIO_AGGREGATO AS RA
					ON A.RETE = RA.RETE
					AND A.COD_FISCALE = RA.COD_FISCALE
				INNER JOIN [c6newcu].C6MartPeriodico.MIFID AS MFD
					ON A.RETE = MFD.RETE
					AND A.COD_FISCALE = MFD.COD_FISCALE
				INNER JOIN [c6newcu].C6MartPeriodico.CODIFICA_RISCHIO AS CR
					ON MFD.PROFILO_ASS = CR.PROFILO
				WHERE COD_AGGREG = 'COMPLESSIVO|BF'
			--**********************************************************************************************
			--                   FINE inserimento in [consulenzaUnica].dbo.REP_S80_EVOL_STAMPA_C6
			--               
			--**********************************************************************************************

			-- inserisco nella tabella di log
			INSERT INTO [C6MartPeriodico].[LOG_CAMBIO_RETE] VALUES (getdate(),@t_RETE_C,@t_RETE_R,@t_CODFIS, 'Inserite ' +  Convert(Varchar(12),@@rowCount) + ' righe' );
			end
		

		--Continuo 
		FETCH NEXT FROM Cur_CF into @t_RETE_C,@t_RETE_R,@t_CODFIS,@t_FLAG_ELAB,@t_DT_ELAB


end

--CHIUDO il CURSORE
CLOSE Cur_CF

--RIMUOVO il CURSORE dalla memoria
DEALLOCATE Cur_CF



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[inserisci_promotori_fittizi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[inserisci_promotori_fittizi] as
begin
insert into [C6StagingPeriodico].[ADS4WS_PROMOTORI] (rete,codice,prefisso,firma)  
SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport C6
		INNER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Monitoraggio_Giornaliero]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE PROCEDURE [C6MartPeriodico].[Monitoraggio_Giornaliero]

AS



BEGIN 

declare @id1  as int 
select  @id1 = MAX (id)  from consuni.[ConsulenzaUnicaFL].[dbo].semaforo where nomebatch='Giornaliero'

declare @conta2 as int
set @conta2 = 0


while ( @conta2 = 0 )
begin

waitfor delay '00:00:30';

select @conta2 = flsemaforo from consuni.[ConsulenzaUnicaFL].[dbo].semaforo where id=@id1

end



END 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Motivo_ExcludedList]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[Motivo_ExcludedList]
	@motivo varchar(200)
AS
BEGIN

SELECT [Rete]
      ,[codicefiscale]
      ,[DescrErr]
      ,[DataIns]
      ,[Bloccato]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList_testing]
  WHERE	[DescrErr] 	= @motivo 
		 

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
CREATE      procedure [C6MartPeriodico].[PL_AreeMonitorate] --'F','BCCMLS56L57F257O'
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

BEGIN

declare @tip_contratto int 

select @tip_contratto=tip_contratto from wh.Maledetti where rete=@Rete and CodiceFiscale=@CodiceFiscale

--set @tip_contratto=3 --forzatura per FD

if(@tip_contratto=3)
begin
SELECT 
NEED_AREA,
NEED_ESTESA,
--NOME_PROGETTO,
 CASE
        WHEN ROW_NUMBER() OVER (PARTITION BY NOME_PROGETTO ORDER BY MAX(ORDINE), ORDINAMENTO_PROGETTO) > 1
        THEN NOME_PROGETTO + ' (' + CAST(ROW_NUMBER() OVER (PARTITION BY NOME_PROGETTO ORDER BY MAX(ORDINE), ORDINAMENTO_PROGETTO) - 1 AS NVARCHAR(10)) + ')'
        ELSE NOME_PROGETTO
    END AS Nome_Progetto,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
into #temp
FROM
(
	--1.1 liq sotto monit
	SELECT
		'Inv' AS Need_Area,
		'Investimento' AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
		--inner join C6StagingPeriodico.RP_Progetto_Robo rob ON rob.chiaveProgetto=monit.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0

------------------------    MIFID2 - MAGGIO 2018
		--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
       AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
	  -- and pirmod.Id_area in ('Inv','Liq') --aggiunta per fideuram Direct
-------------------------  FINE MIFID2 - MAGGIO 2018


) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		MAX(ORDINE),
		ORDINAMENTO_PROGETTO

		update #temp
		set ORDINE=4
		where Need_Area='Inv'

		select * from #temp


end

else
begin
SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0

------------------------    MIFID2 - MAGGIO 2018
		--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
       AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
-------------------------  FINE MIFID2 - MAGGIO 2018

    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  'Self' AS Need_Area,

	  -- 20181205 AC
	   --'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	   case
			when cod_interno = 'XY' then 'Liquidità negativa "Linea GP Eligo"'
			when cod_interno = 'FO' then 'Liquidità negativa "Il Mio Foglio"'
	   end AS Need_Estesa,
	  -- /20181205 AC
	  -- 20181205 AC
	  --NULL AS Nome_Progetto,
	  rtrim(cod_interno) AS Nome_Progetto,
	  -- /20181205 AC

	  --999999 as ORDINAMENTO_PROGETTO,
	  -- 20181205 AC
	  ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	  --'' as ORDINAMENTO_PROGETTO,
	  -- /20181205 AC
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 


) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
		end
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_20180604_PreMifid2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_20180604_PreMifid2] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_20180927_PreOttimizzazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_20180927_PreOttimizzazione] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0

------------------------    MIFID2 - MAGGIO 2018
		--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
       AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
-------------------------  FINE MIFID2 - MAGGIO 2018

    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_20181214_PreMioFoglio] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

-- 20180927 COMMENTATO PERCHE' QUESTE DUE TABELLE TEMPORANEE NON VENGONO UTILIZZATE
--select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
--into #tcptab_aggr_dt
--from c6stagingperiodico.tcptab
--where ctvatt>0
--group by rete,codfis,codarea,codprog

--select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
--into #dis_dt
--from c6stagingperiodico.tanab a full join
--#tcptab_aggr_dt b
--on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
--where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
--and b.dtfine<C6MartPeriodico.getDataCongelamento()
--and a.codfis not in (select cod_fiscale from disallineati2)
-- 20180927

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0

------------------------    MIFID2 - MAGGIO 2018
		--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
       AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
-------------------------  FINE MIFID2 - MAGGIO 2018

    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_85]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate]  'F','DNERNZ56P01A757W'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_85] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
min(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
--		case when PIRMOD.id_area='Na' then 999999 else 
--        PIRMOD.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
        PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'CC' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      PATRBF.ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0
-- End Of Bido Added for 'SN' Saldo Negativo
		   
    
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
--		999999 as ORDINAMENTO_PROGETTO,
        PATRBF.ORDINAMENTO_PROGETTO,
        7 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
       WHERE
        1=1 
         AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

	UNION
	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab


		SELECT distinct
		b.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
		END AS Nome_Progetto,
		--case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
        b.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE b.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
		from #dis_dt a inner join
			c6martperiodico.piramide_mod b
			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
			inner join c6martperiodico.patrimonio_bf c
			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			b.ID_AREA = AREA.ID_AREA
		where b.ctv_progetto>0
		and c.ctv>0 
		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
		and b.RETE= @Rete
		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END













GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_bck201204]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate_SIMULAZIONE]  'S','CZZLRD57R07I982G'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_bck201204]
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		case when PIRMOD.id_area='Na' then 999999 else PIRMOD.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre','Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'CC' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  999999 as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0
-- End Of Bido Added for 'SN' Saldo Negativo
		   
    
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		999999 as ORDINAMENTO_PROGETTO,
        7 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_BK_eligoTitoli] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  'Self' AS Need_Area,
	  'Liquidità GP Eligo Fondi'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_bkup_20120101]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'F','BRGNRC55E09H223U'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_bkup_20120101] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
--ORDINAMENTO_PROGETTO,
MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
min(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		case when PIRMOD.id_area='Na' then 999999 else PIRMOD.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'CC' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  999999 as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0
-- End Of Bido Added for 'SN' Saldo Negativo
		   
    
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		999999 as ORDINAMENTO_PROGETTO,
        7 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
         AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

UNION 
--impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
         AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND monit.ctv_monitorato = 0
        --AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 


	UNION
	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab


		SELECT distinct
		b.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
		END AS Nome_Progetto,
		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
	 CASE b.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
		from #dis_dt a inner join
			c6martperiodico.piramide_mod b
			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
			inner join c6martperiodico.patrimonio_bf c
			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			b.ID_AREA = AREA.ID_AREA
		where b.ctv_progetto>0
		and c.ctv>0 
		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
		and b.RETE= @Rete
		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO
--ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_preFD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_preFD] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

-- 20180927 COMMENTATO PERCHE' QUESTE DUE TABELLE TEMPORANEE NON VENGONO UTILIZZATE
--select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
--into #tcptab_aggr_dt
--from c6stagingperiodico.tcptab
--where ctvatt>0
--group by rete,codfis,codarea,codprog

--select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
--into #dis_dt
--from c6stagingperiodico.tanab a full join
--#tcptab_aggr_dt b
--on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
--where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
--and b.dtfine<C6MartPeriodico.getDataCongelamento()
--and a.codfis not in (select cod_fiscale from disallineati2)
-- 20180927

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0

------------------------    MIFID2 - MAGGIO 2018
		--AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
       AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc', 'LIGHT')
-------------------------  FINE MIFID2 - MAGGIO 2018

    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  'Self' AS Need_Area,

	  -- 20181205 AC
	   --'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	   case
			when cod_interno = 'XY' then 'Liquidità negativa "Linea GP Eligo"'
			when cod_interno = 'FO' then 'Liquidità negativa "Il Mio Foglio"'
	   end AS Need_Estesa,
	  -- /20181205 AC
	  -- 20181205 AC
	  --NULL AS Nome_Progetto,
	  rtrim(cod_interno) AS Nome_Progetto,
	  -- /20181205 AC

	  --999999 as ORDINAMENTO_PROGETTO,
	  -- 20181205 AC
	  ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	  --'' as ORDINAMENTO_PROGETTO,
	  -- /20181205 AC
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_PRESBAGLIATA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--
--select * from c6martperiodico.patrimonio_bf
--where id_area like 'Pre%'
--



-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'S','BLTRNZ48M02F269I'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_PRESBAGLIATA] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where  
 (b.dtfine<C6MartPeriodico.getDataCongelamento() or convert(datetime,convert(varchar(8),a.dtfine))< C6martPeriodico.getDataCongelamento())
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
min(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		case when PIRMOD.id_area='Na' then 999999 else PIRMOD.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre','Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'CC' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  999999 as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0
-- End Of Bido Added for 'SN' Saldo Negativo
		   
    
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		999999 as ORDINAMENTO_PROGETTO,
        7 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--

	UNION
	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab


		SELECT distinct
		b.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
		END AS Nome_Progetto,
		--case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
	 case when C.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  C.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE C.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
		from #dis_dt a inner join
			c6martperiodico.piramide_mod b
			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
			inner join c6martperiodico.patrimonio_bf c
			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			b.ID_AREA = AREA.ID_AREA
		where b.ctv_progetto>0
		and c.ctv>0 
		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
		and b.RETE= @Rete
		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_AreeMonitorate_SIMULAZIONE]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		ALESSANDRO TRINGALI
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_AreeMonitorate] 'F','DNGMRA56E66D542Z'
CREATE procedure [C6MartPeriodico].[PL_AreeMonitorate_SIMULAZIONE] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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


--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
	--exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

select max(convert(datetime,convert(varchar(8),dtuscita))) as dtfine,rete, codarea,codfis,codprog
into #tcptab_aggr_dt
from c6stagingperiodico.tcptab
where ctvatt>0
group by rete,codfis,codarea,codprog

select a.codfis,a.rete,a.codarea,a.codprog,a.dtfine tanab_dt,b.dtfine tcptab_dt
into #dis_dt
from c6stagingperiodico.tanab a full join
#tcptab_aggr_dt b
on a.rete = b.rete and a.codfis = b.codfis and a.codarea = b.codarea and a.codprog = b.codprog
where convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine 
and b.dtfine<C6MartPeriodico.getDataCongelamento()
and a.codfis not in (select cod_fiscale from disallineati2)

SELECT 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
		PIRMOD.ID_AREA AS Need_Area,
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		case when PIRMOD.id_area='Na' then 999999 else PIRMOD.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA
	WHERE 
        COD_FISCALE=@CodiceFiscale
        and rete= @Rete
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.RETE= @Rete
		AND PIRMOD.COD_FISCALE = @CodiceFiscale
		AND PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  'CC' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  999999 as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
      PATRBF.RETE= @Rete
	  AND PATRBF.COD_FISCALE = @CodiceFiscale
	  AND PATRBF.CTV < 0
-- End Of Bido Added for 'SN' Saldo Negativo
		   
    
    
    UNION 
    SELECT DISTINCT
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		999999 as ORDINAMENTO_PROGETTO,
        7 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
           PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
        AND PATRBF.RETE= @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

--UNION 
----impostiamo l'area non monitorata se il ctv monitorato monitorato è zero
--         SELECT DISTINCT
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
--		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
--		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
--        CASE PATRBF.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--         WHEN 'Pre1' THEN 3
--         WHEN 'Pre2' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 7
--	END AS ORDINE,
--       0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--	  FROM
--      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
--	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--	  PATRBF.ID_AREA = AREA.ID_AREA
--      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
--        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
--        AND MONIT.RETE=PATRBF.RETE
--        AND MONIT.ID_AREA= PATRBF.ID_AREA 
--        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
--		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
--
--       WHERE
--        1=1 
--         AND PATRBF.RETE= @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND monit.ctv_monitorato = 0
--        --AND PATRBF.EXTRANAC=1
--		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 
--
--
--	UNION
--	--marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
--
--
--		SELECT distinct
--		b.ID_AREA AS Need_Area,
--		AREA.NOME_AREA AS Need_Estesa,
--		CASE WHEN b.NOME_PROGETTO is null and b.id_area='Inv' THEN 'Prodotti non associati a progetti'		
--			ELSE LTRIM(RTRIM(b.NOME_PROGETTO))
--		END AS Nome_Progetto,
--		case when b.id_area='Na' then 999999 else b.ORDINAMENTO_PROGETTO end as ORDINAMENTO_PROGETTO,
--	 CASE b.ID_AREA 
--		 WHEN 'Liq' THEN 1
--		 WHEN 'Ris' THEN 2
--		 WHEN 'Pre' THEN 3
--		 WHEN 'Inv' THEN 4		 
--		 WHEN 'Ext' THEN 5
--		 WHEN 'Na' THEN 6
--	END AS ORDINE,
--    0 AS AREAPROGETTOSOTTOMONITORAGGIO 
--		from #dis_dt a inner join
--			c6martperiodico.piramide_mod b
--			on a.rete = b.rete and a.codfis = b.cod_fiscale and a.codarea = case when b.id_area='ext' then 'exr' else b.id_area end and a.codprog = b.ordinamento_progetto
--			inner join c6martperiodico.patrimonio_bf c
--			on a.rete = c.rete and a.codfis = c.cod_fiscale and a.codarea = case when c.id_area='ext' then 'exr' else c.id_area end and a.codprog = c.ordinamento_progetto
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--			b.ID_AREA = AREA.ID_AREA
--		where b.ctv_progetto>0
--		and c.ctv>0 
--		AND c.ID_AREA  NOT IN ('Na', 'Cc') 
--		and b.RETE= @Rete
--		AND b.COD_FISCALE = @CodiceFiscale
  

) A

GROUP BY
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_FD177ProfiloDiRischio_Adeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--[C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza] 'F', 'DVTMRA58B09F839W'
CREATE procedure [C6MartPeriodico].[PL_D_FD177ProfiloDiRischio_Adeguatezza]-- 'F', 'SPNTTR67T20F205D'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	

	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenza DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	declare @descrizioneProfilo varchar(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @riskclassDescr VARCHAR(250)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza varchar(20)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenza = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
		case m.experience
			when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
				--when 5 then 'Alta'
				else '-'
		end
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


	-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	declare @codman varchar(6)
	set @codman = ''

	if upper(left(@CodiceFiscale,3)) = 'FF@'
	    begin
			set @codman = substring(@CodiceFiscale,4,len(@CodiceFiscale)-3)
			select @dtfinval = dtfinval,@riserva=isnull(IMP_RISERVA,0.00),@inv_l_p=isnull(PERC_ILP,0.00) from C6StagingPeriodico.WSEIAN2
			where codman = @codman and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice mandato'
		end
	else
		begin
			select @dtfinval = dtfinval,@riserva=isnull(IMP_RISERVA,0.00),@inv_l_p=isnull(PERC_ILP,0.00) from C6StagingPeriodico.WSEIAN2
			where codfis = @CodiceFiscale and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice fiscale'
		end
		--
			
		if @dtfinval <> 0 and @dtfinval is not null and ltrim(rtrim(@dtfinval)) <> ''
			set @dataScadenza = CONVERT(datetime, CONVERT(varchar,CONVERT(int,@dtfinval)), 0)
		else
			set @dataScadenza = null

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (@dataScadenza) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as DescrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as descrizioneEsperienza,
		@riserva as riserva,
		@inv_l_p as investimento_l_periodo

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_FD178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















--[C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza] 's', 'LMZGNN35M47F205W'
CREATE        procedure [C6MartPeriodico].[PL_D_FD178IndicatoriEsitoAdeguatezza] --'W','DRNSNT51B44H090Q'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

--***************************************************************************  SOLO per test
--drop table @appo,#wseian,@TABELLAINDICATORI
--declare @Rete char(1),@CodiceFiscale varchar(16)
--set @Rete = 'f'
--set	@CodiceFiscale = 'BTTFST43C42B300A'--'LNGLGU49D23F587Z'--'BRSDRN64E24D749H'--'00703420968'--
--set @DataFineTrim = 20180430
--***************************************************************************

select *
into #WSEIAN2 
from C6MartPeriodico.WSEIAN2
where RETE=@Rete 
and CODFIS=@CodiceFiscale


DECLARE @adeguato [varchar](5)
DECLARE @descrizione [varchar](1000)


-- **************************  creo la tabella iniziale con tutti gli indicatori
declare @TABELLAINDICATORI table
(
   TI_Ordine  [smallint] null,
   TI_Indicatore [varchar](80) null,
   TI_Adeguato [varchar](5) null,
   TI_Descrizione [varchar](1000) null
)

insert into @TABELLAINDICATORI values (1,'Rischio','-1','Non applicabile')
insert into @TABELLAINDICATORI values (2,'Riserva','-1','Non applicabile')
insert into @TABELLAINDICATORI values (3,'Investimento di Lungo Periodo','-1','Non applicabile')
insert into @TABELLAINDICATORI values (4,'Complessità','-1','Non applicabile')
insert into @TABELLAINDICATORI values (5,'Concentrazione in prodotti complessi','-1','Non applicabile')
insert into @TABELLAINDICATORI values (6,'Frequenza delle operazioni','-1','Non applicabile')
insert into @TABELLAINDICATORI values (7,'Concentrazione emittenti','-1','Non applicabile')
insert into @TABELLAINDICATORI values (8,'Concentrazione valutaria','-1','Non applicabile')

-- *****************************************************************************

declare @appo table
(
  RETE [varchar](1) null,
   COD_FISCALE [varchar](16) null,
   PATRIMONIO [varchar](255) NOT NULL,
   CTV_AGGREG [decimal](12, 2) null,
   profiloCode [smallint] null,
   var_profilo [decimal](5, 2) null,
   [VAR] [decimal](12, 3) NULL,
   varString [varchar](16) null,--[decimal](12, 3) NULL,
   CREDITRISK  [int] NULL,
   RISKCLASSSTRING [varchar](10) null,
   coperturaString [varchar](16) null,--[decimal](12, 3) NULL,
   COVERAGESTRING [varchar](10) null,
   RISKCLASSMAX [varchar](50) null,
   [PERCENTAGE] [decimal](12, 6) null,
   Ordine  [smallint] null,
   ULLY_PERC [decimal](10, 2) NULL
    

)
--creo le tabelle di appoggio
insert into @appo exec [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] @Rete,@CodiceFiscale






--***************************************************************************  INDICATORE DI VALUTAZIONE: RISCHIO

select @adeguato = 
case 
	when var <= var_profilo then '1'
	when var > var_profilo then '0'
	else -1
end,
@descrizione = case
	when var <= var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '1')
	when var > var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '-1')

end 
from @appo where ordine = 1 --patrimonio fideuram


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 1;


--***************************************************************************  INDICATORE DI VALUTAZIONE: RISERVA

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(riserva) = 'S' then '1'
	when upper(riserva) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(riserva) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '1')
	when upper(riserva) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '-1')

end 
from #WSEIAN2


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 2;


--***************************************************************************  INDICATORE DI VALUTAZIONE: INVESTIMENTO LUNGO PERIODO

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(invl_period) = 'S' then '1'
	when upper(invl_period) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(invl_period) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '1')
	when upper(invl_period) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '-1')

end 
from #WSEIAN2




if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 3;

--***************************************************************************  INDICATORE DI VALUTAZIONE: Complessità (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''
												  
select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim ) = 'S' then '0'
	when upper(clcompl) = 'N' and flagpg = 0 then '0'
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then '0'
		  when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then '0'
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then '1'
	
	
	
end,
@descrizione =  case
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '-1')
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim ) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0C')
	when upper(clcompl) = 'N' and flagpg = 0  then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0A')
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	      when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '1')
	
	
end 
from #WSEIAN2

--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 4;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 4;
	end
end

--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione in prodotti complessi  (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(flgconc) = 'S' then '1'
	when upper(flgconc) in ('N') then '0'
	else '-1'	
end,
@descrizione = case
	when upper(flgconc) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '1')
	when upper(flgconc) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '-1')
end
from #WSEIAN2

--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 5;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 5;
	end
end


--***************************************************************************  INDICATORE DI VALUTAZIONE: Frequenza delle operazioni (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(freq) = 'S' then '1'
	when upper(freq) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(freq) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '1')
	when upper(freq) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '-1')
end
from #WSEIAN2


if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 6;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 6;
	end
end






--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione emittenti (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when upper(concemi) = 'S' then '1'
	when upper(concemi) = 'N' then '0'
	else '-1'
end ,
@descrizione =  case
	when upper(concemi) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '1')
	when upper(concemi) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '-1')

end 
from #WSEIAN2



if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 7;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 7;
	end
end








	
--*************************************************************************** INDICATORE DI VALUTAZIONE: Concentrazione Valutaria (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when upper(ADEGCONC_VALUT) = 'S' then '1'
	when upper(ADEGCONC_VALUT) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(ADEGCONC_VALUT) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '1')
	when upper(ADEGCONC_VALUT) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '-1')
end
from #WSEIAN2


if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 8;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 8;
	end
end

--*******************************************************************************************************************************************


select 
ti_ordine as Ordine,
ti_indicatore as Indicatore,
ti_adeguato as Adeguato,
ti_descrizione as DescrizioneEsito
from  @TABELLAINDICATORI

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_FD178IndicatoriEsitoAdeguatezza_preMUA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--[C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza] 's', 'LMZGNN35M47F205W'
CREATE procedure [C6MartPeriodico].[PL_D_FD178IndicatoriEsitoAdeguatezza_preMUA]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

--***************************************************************************  SOLO per test
--drop table @appo,#wseian,@TABELLAINDICATORI
--declare @Rete char(1),@CodiceFiscale varchar(16)
--set @Rete = 'f'
--set	@CodiceFiscale = 'BTTFST43C42B300A'--'LNGLGU49D23F587Z'--'BRSDRN64E24D749H'--'00703420968'--
--set @DataFineTrim = 20180430
--***************************************************************************


DECLARE @adeguato [varchar](5)
DECLARE @descrizione [varchar](1000)


-- **************************  creo la tabella iniziale con tutti gli indicatori
declare @TABELLAINDICATORI table
(
   TI_Ordine  [smallint] null,
   TI_Indicatore [varchar](80) null,
   TI_Adeguato [varchar](5) null,
   TI_Descrizione [varchar](1000) null
)

insert into @TABELLAINDICATORI values (1,'Rischio','-1','Non applicabile')
insert into @TABELLAINDICATORI values (2,'Riserva','-1','Non applicabile')
insert into @TABELLAINDICATORI values (3,'Investimento di Lungo Periodo','-1','Non applicabile')
insert into @TABELLAINDICATORI values (4,'Complessità','-1','Non applicabile')
insert into @TABELLAINDICATORI values (5,'Concentrazione in prodotti complessi','-1','Non applicabile')
insert into @TABELLAINDICATORI values (6,'Frequenza delle operazioni','-1','Non applicabile')
insert into @TABELLAINDICATORI values (7,'Concentrazione emittenti','-1','Non applicabile')
insert into @TABELLAINDICATORI values (8,'Concentrazione valutaria','-1','Non applicabile')

-- *****************************************************************************

declare @appo table
(
  RETE [varchar](1) null,
   COD_FISCALE [varchar](16) null,
   PATRIMONIO [varchar](255) NOT NULL,
   CTV_AGGREG [decimal](12, 2) null,
   profiloCode [smallint] null,
   var_profilo [decimal](5, 2) null,
   [VAR] [decimal](12, 3) NULL,
   varString [varchar](16) null,--[decimal](12, 3) NULL,
   CREDITRISK  [int] NULL,
   RISKCLASSSTRING [varchar](10) null,
   coperturaString [varchar](16) null,--[decimal](12, 3) NULL,
   COVERAGESTRING [varchar](10) null,
   RISKCLASSMAX [varchar](50) null,
   [PERCENTAGE] [decimal](12, 6) null,
   Ordine  [smallint] null,
   ULLY_PERC [decimal](10, 2) NULL
    

)
--creo le tabelle di appoggio
insert into @appo exec [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] @Rete,@CodiceFiscale

declare @WSEIAN_S170 table
(
		[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
)

if @CodiceFiscale like '%FF@%'  

					INSERT INTO @WSEIAN_S170
					--se viene passata una fiduciaria devo filtrare per codice mandato
					select [DTTRIM]
						  ,[RETE]
						 , 
						 case
						 when(isnull(ltrim(rtrim(codman)),'') <> '') 
								then 'FF@'+codman
						 when (isnull(codfis,'') <> '')
								then codfis
						 else
								codfis
						 end as Codfis
						,[NOME]
      ,[COGNOME]
      ,[DTNASCI]
      ,[INDIRIZZO]
      ,[CAP]
      ,[CITTA]
      ,[PROVINCIA]
      ,[NAZIONE]
      ,[CODPROF]
      ,[DTINVAL]
      ,[CODMAN]
      ,[CLASSERC]
      ,[COD_PROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[DTFINVAL]
      ,[CONCEMI]
      ,[FREQ]
      ,[LLIQUID]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA]

					from [C6StagingPeriodico].[WSEIAN2] 
					where 1=1 
					and rete = @Rete
					and codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
					and dttrim = @DataFineTrim;
else

				 INSERT INTO @WSEIAN_S170
					select [DTTRIM]
						  ,[RETE]
						 , 
						 case
						 when(isnull(ltrim(rtrim(codman)),'') <> '') 
								then 'FF@'+codman
						 when (isnull(codfis,'') <> '')
								then codfis
						 else
								codfis
						 end as Codfis
						,[NOME]
      ,[COGNOME]
      ,[DTNASCI]
      ,[INDIRIZZO]
      ,[CAP]
      ,[CITTA]
      ,[PROVINCIA]
      ,[NAZIONE]
      ,[CODPROF]
      ,[DTINVAL]
      ,[CODMAN]
      ,[CLASSERC]
      ,[COD_PROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[DTFINVAL]
      ,[CONCEMI]
      ,[FREQ]
      ,[LLIQUID]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA]
					from [C6StagingPeriodico].[WSEIAN2] 
					where 1=1 
					and rete = @Rete
					and codfis= @CodiceFiscale
					and dttrim = @DataFineTrim;



--***************************************************************************  INDICATORE DI VALUTAZIONE: RISCHIO

select @adeguato = 
case 
	when var <= var_profilo then '1'
	when var > var_profilo then '0'
	else -1
end,
@descrizione = case
	when var <= var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '1')
	when var > var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '-1')

end 
from @appo where ordine = 1 --patrimonio fideuram


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 1;


--***************************************************************************  INDICATORE DI VALUTAZIONE: RISERVA

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(riserva) = 'S' then '1'
	when upper(riserva) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(riserva) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '1')
	when upper(riserva) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '-1')

end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 2;


--***************************************************************************  INDICATORE DI VALUTAZIONE: INVESTIMENTO LUNGO PERIODO

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(invl_period) = 'S' then '1'
	when upper(invl_period) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(invl_period) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '1')
	when upper(invl_period) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '-1')

end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 3;

--***************************************************************************  INDICATORE DI VALUTAZIONE: Complessità (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''
												  
select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim ) = 'S' then '0'
	when upper(clcompl) = 'N' and flagpg = 0 then '0'
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then '0'
		  when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then '0'
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then '1'
	
	
	
end,
@descrizione =  case
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '-1')
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim ) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0C')
	when upper(clcompl) = 'N' and flagpg = 0  then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0A')
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	      when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '1')
	
	
end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim
--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 4;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 4;
	end
end

--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione in prodotti complessi  (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(flgconc) = 'S' then '1'
	when upper(flgconc) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(flgconc) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '1')
	when upper(flgconc) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '-1')
end
from @WSEIAN_S170
where 1=1
and rete = @Rete
and codfis = @CodiceFiscale 
and dttrim = @DataFineTrim
--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 5;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 5;
	end
end


--***************************************************************************  INDICATORE DI VALUTAZIONE: Frequenza delle operazioni (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(freq) = 'S' then '1'
	when upper(freq) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(freq) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '1')
	when upper(freq) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '-1')
end
from @WSEIAN_S170
where 1=1
and rete = @Rete
and codfis = @CodiceFiscale 
and dttrim = @DataFineTrim
--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 6;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 6;
	end
end






--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione emittenti
set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(concemi) = 'S' then '1'
	when upper(concemi) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(concemi) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '1')
	when upper(concemi) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '-1')

end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 7;








	
--*************************************************************************** INDICATORE DI VALUTAZIONE: Concentrazione Valutaria
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
	when upper(ADEGCONC_VALUT) = 'S' then '1'
	when upper(ADEGCONC_VALUT) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(ADEGCONC_VALUT) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '1')
	when upper(ADEGCONC_VALUT) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '-1')
end
from @WSEIAN_S170
where 1=1
and rete = @Rete
and codfis = @CodiceFiscale 
and dttrim = @DataFineTrim

if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 8;

--*******************************************************************************************************************************************


select 
ti_ordine as Ordine,
ti_indicatore as Indicatore,
ti_adeguato as Adeguato,
ti_descrizione as DescrizioneEsito
from  @TABELLAINDICATORI

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_DT_S150Anagrafica] 'F', 'NCLGDE26B18L388P'
CREATE procedure [C6MartPeriodico].[PL_D_S150Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		--CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
		--	THEN
		--	REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--	+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') 
		--	ELSE
		--	REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--	+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','')
		--END AS Residenza,
		--
		
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') else '' end  + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end  + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') else '' end   + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end + ')','()','')
		END AS Residenza,
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_SOTT) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		NULL AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Prov] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM        
		C6MART.contrattosei as CONTRATTOSEI
	INNER JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MARTPERIODICO.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MARTPERIODICO.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S95ProfiloDiRischio]F,00247580970
CREATE procedure [C6MartPeriodico].[PL_D_S151ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_DT_S152Patrimonio]  'F','MRSPLA53H24D643J'
CREATE procedure [C6MartPeriodico].[PL_D_S152Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MartPeriodico.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area <> 'CC' --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MartPeriodico.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6Martperiodico.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6MartPeriodico].[PL_DT_S153PatrimonioFinanziario] 'F','GZZSLD52E20G869L'
CREATE procedure [C6MartPeriodico].[PL_D_S153PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from

	DECLARE @NOMERETE VARCHAR(30)

	IF @Rete = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE if @Rete = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			@NOMERETE AS Banca,
			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				@NOMERETE AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
			FROM C6MartPeriodico.PATRIMONIO_BF patrBF
--			LEFT JOIN C6MartPeriodico.ClientiConCCNegativo CCNegativo
--				ON PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--				AND PATRBF.TIPO_PRODOTTO = 'CC'
			WHERE 1 = 1
				AND patrBF.Rete = @Rete
				AND patrBF.Cod_Fiscale = @CodiceFiscale
				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
				and patrBF.id_area  <> 'cc'
			UNION ALL



			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
			FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
			WHERE 1 = 1
				AND patrTerzi.Rete = @Rete
				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
			GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S153PatrimonioFinanziario]    Script Date: 09/02/2022 11:00:54 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure

---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----  [C6MartPeriodico].[PL_DT_S153PatrimonioFinanziario] 'F','GZZSLD52E20G869L'
--ALTER procedure [C6MartPeriodico].[PL_D_S153PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from

--	DECLARE @NOMERETE VARCHAR(20)

--	IF @Rete = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT 
--		Intermediario,
--		Ordine,
--		Banca,
--		Controvalore,
--		round(Percentuale,2) as Percentuale
--	FROM 
--	(
--		SELECT DISTINCT
--			Intermediario,
--			Ordine,
--			@NOMERETE AS Banca,
--			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
--			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
--			(
--				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
--				(SUM(ctv) over (partition by 'Totale'))
--			) * 100 AS PERCENTUALE
--		FROM 
--		(
--			SELECT 
--				@NOMERETE AS Intermediario,
--				SUM(ROUND(CTV,2)) AS ctv,
--				1 AS ordine
--			FROM C6MartPeriodico.PATRIMONIO_BF patrBF
----			LEFT JOIN C6MartPeriodico.ClientiConCCNegativo CCNegativo
----				ON PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----				AND PATRBF.TIPO_PRODOTTO = 'CC'
--			WHERE 1 = 1
--				AND patrBF.Rete = @Rete
--				AND patrBF.Cod_Fiscale = @CodiceFiscale
--				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
--				and patrBF.id_area  <> 'cc'
--			UNION ALL



--			SELECT 
--				Intermediario, 
--				SUM(ROUND(CTV,2)) AS ctv,
--				2 AS ordine
--			FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
--			WHERE 1 = 1
--				AND patrTerzi.Rete = @Rete
--				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
--			GROUP BY patrTerzi.Intermediario

--		) PATR

--	) A
--	WHERE CONTROVALORE IS NOT NULL
--	ORDER BY Ordine

--END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		Luca De Lisio
-- Create date: 
-- Description:	
-- =============================================
--[C6MartPeriodico].[PL_DT_S154PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
CREATE procedure [C6MartPeriodico].[PL_D_S154PatrimonioFinanziario] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

SELECT 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN  'Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	



























--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL
		--DETTAGLIO ASUL SENZA SKANDIA
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S154PatrimonioFinanziario]    Script Date: 09/02/2022 11:03:29 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure


---- =============================================
---- Author:		Luca De Lisio
---- Create date: 
---- Description:	
---- =============================================
----[C6MartPeriodico].[PL_DT_S154PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
--ALTER procedure [C6MartPeriodico].[PL_D_S154PatrimonioFinanziario] 
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--SELECT 
--	A.Banca,
--	A.Ordinamento,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,6)) Controvalore,
--	A.Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
--FROM 
--(		

--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO AS Ordinamento,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

--		--PRODOTTI BF ESCLUSI GLI ASUL
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	



























----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MartPeriodico.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MartPeriodico.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MartPeriodico.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL
--		--DETTAGLIO ASUL SENZA SKANDIA
--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL
--		--CON SKANDIA
--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale


--		UNION ALL

--		--PRODOTTI TERZI A CATALOGO
--		SELECT
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI NON A CATALOGO
--		SELECT 	
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MartPeriodico.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

--) A

--ORDER BY A.ORDINAMENTO

--END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_D_S155PatrimonioImmobiliare] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_D_S156ALtroPatrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	SELECT 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
	WHERE 
		PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_DT_S157ConfrontoPiramidi] 'F','BNNDRC23B44E689L'
CREATE procedure [C6MartPeriodico].[PL_D_S157ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			LEFT(ID_AREA,3) AS ID_AREA, 
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')
		--V 
			DECLARE @TOTCC AS INT
			SELECT @TOTCC = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND TIPO_PRODOTTO = 'Cc'

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCC = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCC <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'jjn.c.' 
					
					--V SOLO CC -> VAR = 0
									




					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					WHEN @TOTCC = @TOT THEN NULL
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCC = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D_S158PiramideModello] 'F','CLRLCU75R04B573X'
CREATE procedure [C6MartPeriodico].[PL_D_S158PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

		SELECT BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.RETE = @Rete
		AND BF.COD_FISCALE = @CodiceFiscale
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF
		
 


	--SELECT
	--	AREA_BISOGNO.ID_AREA AS Need_Breve,					-- NOME BREVE DELL'AREA DI BISOGNO
	--	PIRMOD.NOME_PROGETTO AS Nome_Progetto,			    -- NOME DEL PROGETTO (AREA INV)
	--	ISNULL(PIRMOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
	--	PIRMOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
 --       PIRMOD.CTV_PROGETTO AS Controvalore,				-- Controvalore Progetto
	--	SUM(ISNULL(PIRMOD.PERC_AREA,0)) OVER (PARTITION BY PIRMOD.RETE, PIRMOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
	--	SUM(ISNULL(PIRMOD.PERC_AREA,0)) OVER (PARTITION BY PIRMOD.RETE, PIRMOD.COD_FISCALE) AS Totale,
	--	COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRMOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRMOD.RETE, PIRMOD.COD_FISCALE) AS NumeroProgettiInv,
	--	AREA_BISOGNO.ORDINAMENTO AS Ordinamento
	--FROM C6MartPeriodico.AREA_BISOGNO
	--LEFT JOIN  C6MartPeriodico.PIRAMIDE_MOD  PIRMOD
	--	ON PIRMOD.ID_AREA = AREA_BISOGNO.ID_AREA
	--	AND((PIRMOD.ID_AREA = 'INV' AND PIRMOD.NOME_PROGETTO IS NOT NULL )--OR PIRAMIDE_MOD.tipo_progetto<>'Default'
	--		OR PIRMOD.ID_AREA IN ('RIS','EXT','LIQ','PRE'))
	--	AND PIRMOD.RETE = @Rete
	--	AND PIRMOD.COD_FISCALE = @CodiceFiscale
	--WHERE AREA_BISOGNO.ORDINAMENTO < 6	
	--ORDER BY AREA_BISOGNO.ORDINAMENTO

END
 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure


-- =============================================
-- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

-- [C6MartPeriodico].[PL_DT_S159PatrimonioFinanziario] 'F','BSHLRI69R13Z100Y'
CREATE procedure [C6MartPeriodico].[PL_D_S159PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN  'Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO

END













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S159PatrimonioFinanziario]    Script Date: 09/02/2022 11:48:38 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- Stored procedure


---- =============================================
---- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================

---- [C6MartPeriodico].[PL_DT_S159PatrimonioFinanziario] 'F','BSHLRI69R13Z100Y'
--ALTER procedure [C6MartPeriodico].[PL_D_S159PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
	
--SELECT 
--	A.BANCA AS Banca,
--	A.ORDINAMENTO AS Ordinamento,
--	A.AssetClassId AS AssetClassId, 
--	A.AssetClassName AS AssetClassName, 
--	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
--	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
--FROM 
--(		
--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
--				 THEN 1 
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
--            END  
--		) * 100 AS Percentuale
--	FROM (

--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL
		
--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	
----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MartPeriodico.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MartPeriodico.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MartPeriodico.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL

--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MartPeriodico.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--) A

--ORDER BY A.ORDINAMENTO

--END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'SLLLMN44E29A176G'
-- [C6MartPeriodico].[PL_DT_S160DettaglioProdottiBF] 'S', 'GSTMGS42D51L833Z'
CREATE procedure [C6MartPeriodico].[PL_D_S160DettaglioProdottiBF]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:  Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D_S162DettaglioProdotti] 'F', 'BLDRST50M28C556X'
CREATE procedure [C6MartPeriodico].[PL_D_S162DettaglioProdotti]

 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS

BEGIN
	
	SELECT  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_DT_S163PatrimonioFinanziarioMAssetClass] 'F', 'BRCRRT70L21A390C'
CREATE procedure [C6MartPeriodico].[PL_D_S163PatrimonioFinanziarioMAssetClass] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT DISTINCT
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		isnull((
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'),0)
		) * 100,0) AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY 
		ASSETCLASS.ORDINAMENTO
		
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Marco Gentilezza
-- Create date: 
-- Description:	
-- =============================================
--[C6MartPeriodico].[PL_DT_S164PolizzeAltriIstituti]'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_D_S164PolizzeAltriIstituti] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_DT_S165FondiAltriIstituti] 'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_D_S165FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S166ContoCorrenteAI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_D_S166ContoCorrenteAI] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     
		CCTerzi.INTERMEDIARIO AS Intermediario,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO AS Saldo,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6MartPeriodico.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D_S167DistribuzioneRischioCredito] 'F','GGGNNA41E59G687E'
CREATE procedure [C6MartPeriodico].[PL_D_S167DistribuzioneRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' WHEN PATRBF.RETE='S' then 'Sanpaolo Invest' ELSE 'IW Private Investments' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM'  WHEN PATRBF.RETE = 'S' THEN  'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S167DistribuzioneRischioCredito]    Script Date: 09/02/2022 11:04:57 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure

---- =============================================
---- Authors:		<Alessandro Tringali, Valerio Colaianni>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
---- [C6MartPeriodico].[PL_D_S167DistribuzioneRischioCredito] 'F','GGGNNA41E59G687E'
--ALTER procedure [C6MartPeriodico].[PL_D_S167DistribuzioneRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;



----QUERY PER INTERMEDIARIO
--SELECT 
--RETE,
--COD_FISCALE,
--INTERMEDIARIO,
--CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
--     ELSE 2 END AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,

--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END AS RISKCLASS,
--CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
--FROM
--[C6Martperiodico].PATRIMONIO_BF PATRBF
-----Per calcolare la somma algebrica dei cc 
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MARTPERIODICO].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine calcolo somma cc
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
----INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END,
--CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--'Altri Istituti' AS INTERMEDIARIO,
----PATRTERZI.INTERMEDIARIO,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
----PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
--FROM
--[C6Martperiodico].PATRIMONIO_BF PATRBF
----per fare la somma algebrica dei cc
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MARTPERIODICO].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine somma cc
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from 
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti]  'F','FF@7181'
CREATE procedure [C6MartPeriodico].[PL_D_S168TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito] 'F','GZZSLD52E20G869L'
CREATE procedure [C6MartPeriodico].[PL_D_S169RischiomercatoRischiocredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram'  WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest'  WHEN PATRBF.RETE='W' THEN  'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram'  WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' THEN 'Patrimonio IW Private Inv.'  END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		   WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S169RischiomercatoRischiocredito]    Script Date: 09/02/2022 11:08:19 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



---- Stored procedure

---- =============================================
---- Author:		<Alessandro Tringali>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
-- --[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito] 'F','GZZSLD52E20G869L'
--ALTER procedure [C6MartPeriodico].[PL_D_S169RischiomercatoRischiocredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;
 
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    PATRBF.INSTITUTENAME,
--    CTV,
--    M.PROFILO_ASS AS CODICEPROFILO,
--    CR.MAX_VAR AS  VARMAX,
--    RISK_AGG.VAR_PERC_PTF AS VAR ,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END  AS VARSTRING,
--    RISK_AGG.CREDITRISK  RISKCLASS,
--        	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END AS  RISKCLASSSTRING,
--    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
----V La copertura viene valorizzata con un valore da 0 da 100
--  --  	CASE 
--	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
----		ELSE 
--NULL 
----	END 
--AS COVERAGESTRING,
--    M.RISKCLASS AS RISKCLASSMAX,
--    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
--    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
--		 THEN 1
--	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
--    END)		
--    *100 ,2)AS PERCENTAGE,
--	--V
--	ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV,
--	--V
--	1 as ORDINE,
--	RISK_AGG.Ully_perc
--    from
--    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and PATRBF.rete= RISK_AGG.rete    
--    and PATRBF.cod_fiscale = @codiceFiscale
--    and PATRBF.rete= @rete
--    and PATRBF.CTV > 0
--    and
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--	RISK_AGG.Ully_perc,   
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    'Patrimonio altri Istituti' AS INSTITUTENAME,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV,
--	--V
--	2 as ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and TERZI.rete= RISK_AGG.rete 
--    and TERZI.cod_fiscale =@codiceFiscale
--    and TERZI.rete=@rete
--    and TERZI.CTV > 0
--    and
--    (
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )    
--    GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    RISK_AGG.Ully_perc

--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    AND 
--    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
--          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
--          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    UNION ALL
    
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    'Patrimonio Complessivo' AS INSTITUTENAME,
--    SUM(CTV),
--    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
--    MAX(CR.MAX_VAR) AS  VARMAX,
--    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
--    MAX(	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS VARSTRING,
--    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
--    MAX(
--         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END )
--      AS  RISKCLASSSTRING,
--    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
--    MAX(   	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS COVERAGESTRING,
--    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
--	MAX(M.RISKCLASS) AS RISKCLASSMAX,
--    100 AS PERCENTAGE,
--	--V
--	3 AS ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    c6martperiodico.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and PATRBF.CTV > 0    
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE

--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV
--    FROM
--    c6martperiodico.PATRIMONIO_TERZI  TERZI
--        where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and TERZI.CTV > 0       
--     GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE

--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--      M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--        where  
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    RISK_AGG.Ully_perc

--	--V
--	order by ordine

--END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6MartPeriodico].[PL_D_S170RischioDiversificazione] 'F','FF@7181'
CREATE procedure [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int
	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int
	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete
    
    declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0


SELECT 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' WHEN  k.rete ='S' then  'Sanpaolo Invest' ELSE 'IW Private Inv.' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine


END 















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S170RischioDiversificazione]    Script Date: 09/02/2022 11:10:20 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- [C6MartPeriodico].[PL_D_S170RischioDiversificazione] 'F','FF@7181'
--ALTER procedure [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCC as int
--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int
--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete
    
--    declare @ctvbf as decimal(12,2)  
--	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0
				  
--    declare @ctvterzi as decimal (12,2)  
--	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0


--SELECT 
--K.COD_FISCALE,
--K.RETE,
--CASE 
--	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
--	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
--	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
--	else 0
--END AS CTV_AGGREG,	
--K.CREDITRISK,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,
--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,
--beneficio as diversificazione,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,
--b.max_var as var_profilo,
----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine

 
--FROM
--C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--	left outer join
--C6Martperiodico.CODIFICA_RISCHIO b on
--A.PROFILO_ASS=B.PROFILO
--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY ordine


--END 





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		
-- Create date: 30/08/2013
-- Description: uguale a S76 
-- =============================================
--[C6MartPeriodico].[PL_D_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
CREATE procedure [C6MartPeriodico].[PL_D_S171PatrimonioNonRappresentabileAssettClass] 
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE if @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL

	UNION ALL

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO 
	ORDER BY CONTROVALORE DESC
  
END









--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 09/02/2022 11:19:57 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- =============================================
---- Author:		
---- Create date: 30/08/2013
---- Description: uguale a S76 
---- =============================================
----[C6MartPeriodico].[PL_D_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BRTVTR64T13L219G'
--ALTER procedure [C6MartPeriodico].[PL_D_S171PatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
--		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL

--	UNION ALL

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		SUM(ASUL.CTV) as Controvalore,
--		MAX(PATRBF.CTV) as controvalore_contratto,
--		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
--		ON PATRBF.RETE = ASUL.RETE
--		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
--		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--        GROUP BY 
--        PATRBF.ID_CONTRATTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO 
--	ORDER BY CONTROVALORE DESC
  
--END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--[C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza] 'F', 'DVTMRA58B09F839W'
CREATE procedure [C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza]-- 'F', 'SPNTTR67T20F205D'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	

	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenza DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	declare @descrizioneProfilo varchar(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @riskclassDescr VARCHAR(250)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza varchar(20)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenza = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
		case m.experience
			when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
				--when 5 then 'Alta'
				else '-'
		end
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


	-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	declare @codman varchar(6)
	set @codman = ''

	if upper(left(@CodiceFiscale,3)) = 'FF@'
	    begin
			set @codman = substring(@CodiceFiscale,4,len(@CodiceFiscale)-3)
			select @dtfinval = dtfinval,@riserva=isnull(IMP_RISERVA,0.00),@inv_l_p=isnull(PERC_ILP,0.00) from C6StagingPeriodico.WSEIAN2
			where codman = @codman and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice mandato'
		end
	else
		begin
			select @dtfinval = dtfinval,@riserva=isnull(IMP_RISERVA,0.00),@inv_l_p=isnull(PERC_ILP,0.00) from C6StagingPeriodico.WSEIAN2
			where codfis = @CodiceFiscale and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice fiscale'
		end
		--
			
		if @dtfinval <> 0 and @dtfinval is not null and ltrim(rtrim(@dtfinval)) <> ''
			set @dataScadenza = CONVERT(datetime, CONVERT(varchar,CONVERT(int,@dtfinval)), 0)
		else
			set @dataScadenza = null

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (@dataScadenza) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as DescrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as descrizioneEsperienza,
		@riserva as riserva,
		@inv_l_p as investimento_l_periodo

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza_20180706_PreCRNapolitano]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza] 'F', 'DVTMRA58B09F839W'
CREATE procedure [C6MartPeriodico].[PL_D_S177ProfiloDiRischio_Adeguatezza_20180706_PreCRNapolitano]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	

	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenza DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	declare @descrizioneProfilo varchar(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @riskclassDescr VARCHAR(250)
    DECLARE @experience SMALLINT

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenza = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


	-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	declare @codman varchar(6)
	set @codman = ''

	if upper(left(@CodiceFiscale,3)) = 'FF@'
	    begin
			set @codman = substring(@CodiceFiscale,4,len(@CodiceFiscale)-3)
			select @dtfinval = dtfinval from C6StagingPeriodico.WSEIAN
			where codman = @codman and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN) 
			print 'codice mandato'
		end
	else
		begin
			select @dtfinval = dtfinval from C6StagingPeriodico.WSEIAN
			where codfis = @CodiceFiscale and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN) 
			print 'codice fiscale'
		end
		--
			
		if @dtfinval <> 0 and @dtfinval is not null and ltrim(rtrim(@dtfinval)) <> ''
			set @dataScadenza = CONVERT(datetime, CONVERT(varchar,CONVERT(int,@dtfinval)), 0)
		else
			set @dataScadenza = null

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (@dataScadenza) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as DescrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178CasiParticolari]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- [C6MartPeriodico].[PL_D_S178CasiParticolari] 'F','BLRDNC73D12B925K'
CREATE   procedure [C6MartPeriodico].[PL_D_S178CasiParticolari] --'S','02708090580'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @SoloCC int
	declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int

	declare @Scaduti_Retail varchar
	declare @Scaduti_Prof varchar

	declare @IDTesto int

	declare @isDirect varchar

	set @IDTesto = 0

------------------------------------------------------------------------------ CASO 1 COPERTURA = 0

	select @isDirect = case when TIP_CONTRATTO=3 then 'S' else 'N' end  from C6StagingPeriodico.APPO_CONTRATTI where rete=@Rete and COD_FISCALE=@CodiceFiscale

	select @Copertura=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE
	
------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA E/O SOLO CC IN PORTAFOGLIO

	-- Controllo se nel Portafoglio c'è solo CC

	select rete, cod_fiscale, id_area
	into #t1
	from c6martperiodico.patrimonio_bf
	where rete = @Rete and cod_fiscale = @CodiceFiscale
	group by rete,cod_fiscale, id_area

	select rete, cod_fiscale, count(*) as numero
	into #t2
	from #t1
	group by rete, cod_fiscale having count(*) = 1

	if exists(
				select p.rete, p.cod_fiscale
				from c6martperiodico.patrimonio_bf p
					inner join #t2
					on p.rete = #t2.rete
					and p.cod_fiscale = #t2.cod_fiscale
				--where rete + cod_fiscale  in (select rete + cod_fiscale from #t2)
				where p.id_area = 'liq'
				and p.tipo_prodotto = 'cc'
			)

				set @soloCC = 1
	else
				set @soloCC = 0

	drop table #t1
	drop table #t2


	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza = count(*) 
	from c6martperiodico.patrimonio_bf patr
	left join [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

	-- Se si verifica uno dei due casi, imposto la variabile a 1
	if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1
	else
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0


----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

--4 Scaduti Retail
select @Scaduti_Retail = RPF.FLGPROF
from C6MartPeriodico.wseirpf RPF
left join C6StagingPeriodico.WSEIAN2 w
on w.RETE=RPF.Rete and w.CODFIS=RPF.CODFIS
where RPF.FLGPROF='P' and W.FLGPROF='N'
AND RPF.CODFIS = @COdiceFISCALE
and RPF.RETE= @RETE


	
--5 Scaduti Prof
select @Scaduti_Prof = RPF.FLGPROF
from C6MartPeriodico.wseirpf RPF
left join C6StagingPeriodico.WSEIAN2 w
on w.RETE=RPF.Rete and w.CODFIS=RPF.CODFIS
where RPF.FLGPROF='P' and W.FLGPROF='S'
AND RPF.CODFIS = @COdiceFISCALE
and RPF.RETE= @RETE


-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
		begin
			set @IDTesto = 2
		end
		if (@Scaduti_Retail) ='P' and (@isDirect='N')
		begin
			set @IDTesto = 4
		end
		if (@Scaduti_Prof) ='P' and (@isDirect='N')
		begin
			set @IDTesto = 5
		end
		if (@Scaduti_Retail) ='P' and (@isDirect='S')
		begin
			set @IDTesto = 6
		end
		if (@Scaduti_Prof) ='P' and (@isDirect='S')
		begin
			set @IDTesto = 7
		end

	select ID, Testo
	from [C6MartPeriodico].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178CasiParticolari_20181220]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- [C6MartPeriodico].[PL_D_S178CasiParticolari] 'F','DVTMRA58B09F839W'
CREATE procedure [C6MartPeriodico].[PL_D_S178CasiParticolari_20181220]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

------------------------------------------------------------------------------ CASO 1 COPERTURA = 0
	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @IDTesto int

	set @IDTesto = 0

	select @Copertura=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE


------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA
	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza= count(*) 
	from c6martperiodico.patrimonio_bf patr
	left join [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		if(@SoloProdottiSenzaAdeguatezza=0)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		if(@SoloProdottiSenzaAdeguatezza=0)
		begin
			set @IDTesto = 2
		end

	select ID, Testo
	from [C6MartPeriodico].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178CasiParticolari_BKP_20231114_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6MartPeriodico].[PL_D_S178CasiParticolari] 'F','BLRDNC73D12B925K'
CREATE   procedure [C6MartPeriodico].[PL_D_S178CasiParticolari_BKP_20231114_PRE_RAFFORZAMENTO] --'S','02708090580'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @SoloCC int
	declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int

	declare @IDTesto int

	set @IDTesto = 0

------------------------------------------------------------------------------ CASO 1 COPERTURA = 0

	select @Copertura=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE
	
------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA E/O SOLO CC IN PORTAFOGLIO

	-- Controllo se nel Portafoglio c'è solo CC

	select rete, cod_fiscale, id_area
	into #t1
	from c6martperiodico.patrimonio_bf
	where rete = @Rete and cod_fiscale = @CodiceFiscale
	group by rete,cod_fiscale, id_area

	select rete, cod_fiscale, count(*) as numero
	into #t2
	from #t1
	group by rete, cod_fiscale having count(*) = 1

	if exists(
				select p.rete, p.cod_fiscale
				from c6martperiodico.patrimonio_bf p
					inner join #t2
					on p.rete = #t2.rete
					and p.cod_fiscale = #t2.cod_fiscale
				--where rete + cod_fiscale  in (select rete + cod_fiscale from #t2)
				where p.id_area = 'liq'
				and p.tipo_prodotto = 'cc'
			)

				set @soloCC = 1
	else
				set @soloCC = 0

	drop table #t1
	drop table #t2


	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza = count(*) 
	from c6martperiodico.patrimonio_bf patr
	left join [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

	-- Se si verifica uno dei due casi, imposto la variabile a 1
	if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1
	else
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0


----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
		begin
			set @IDTesto = 2
		end

	select ID, Testo
	from [C6MartPeriodico].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178CasiParticolari_old]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6MartPeriodico].[PL_D_S178CasiParticolari] 'F','BLRDNC73D12B925K'
CREATE   procedure [C6MartPeriodico].[PL_D_S178CasiParticolari_old] --'S','02708090580'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @SoloCC int
	declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int

	declare @IDTesto int

	set @IDTesto = 0

------------------------------------------------------------------------------ CASO 1 COPERTURA = 0

	select @Copertura=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE
	
------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA E/O SOLO CC IN PORTAFOGLIO

	-- Controllo se nel Portafoglio c'è solo CC

	select rete, cod_fiscale, id_area
	into #t1
	from c6martperiodico.patrimonio_bf
	where rete = @Rete and cod_fiscale = @CodiceFiscale
	group by rete,cod_fiscale, id_area

	select rete, cod_fiscale, count(*) as numero
	into #t2
	from #t1
	group by rete, cod_fiscale having count(*) = 1

	if exists(
				select p.rete, p.cod_fiscale
				from c6martperiodico.patrimonio_bf p
					inner join #t2
					on p.rete = #t2.rete
					and p.cod_fiscale = #t2.cod_fiscale
				--where rete + cod_fiscale  in (select rete + cod_fiscale from #t2)
				where p.id_area = 'liq'
				and p.tipo_prodotto = 'cc'
			)

				set @soloCC = 1
	else
				set @soloCC = 0

	drop table #t1
	drop table #t2


	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza = count(*) 
	from c6martperiodico.patrimonio_bf patr
	left join [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

	-- Se si verifica uno dei due casi, imposto la variabile a 1
	if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1
	else
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0


----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
		begin
			set @IDTesto = 2
		end

	select ID, Testo
	from [C6MartPeriodico].[TB_S178CasiParticolari_Testi]
	where ID = @IDTesto


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178CasiParticolari_report_ridotto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- [C6MartPeriodico].[PL_D_S178CasiParticolari] 'F','BLRDNC73D12B925K'
CREATE   procedure [C6MartPeriodico].[PL_D_S178CasiParticolari_report_ridotto] --'S','02708090580'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

	declare @Copertura decimal(10,2)
	declare @SoloProdottiSenzaAdeguatezza int

	declare @SoloCC int
	declare @SoloProdottiSenzaAdeguatezzaOrSoloCC int

	declare @IDTesto int

	set @IDTesto = 0

------------------------------------------------------------------------------ CASO 1 COPERTURA = 0

	select @Copertura=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
	-- 'COMPLESSIVO|BF' come viene fatto nella PL_D_S157ConfrontoPiramidi per la copertura_tot, campo per l'esposizione della nota sulla coperura sotto la piramide
    where cod_aggreg='COMPLESSIVO|BF' 
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE
	
------------------------------------------------------------------------------ FINE CASO 1

------------------------------------------------------------------------------ CASO 2 SENZA PRODOTTI IN ADEGUATEZZA E/O SOLO CC IN PORTAFOGLIO

	-- Controllo se nel Portafoglio c'è solo CC

	select rete, cod_fiscale, id_area
	into #t1
	from c6martperiodico.patrimonio_bf
	where rete = @Rete and cod_fiscale = @CodiceFiscale
	group by rete,cod_fiscale, id_area

	select rete, cod_fiscale, count(*) as numero
	into #t2
	from #t1
	group by rete, cod_fiscale having count(*) = 1

	if exists(
				select p.rete, p.cod_fiscale
				from c6martperiodico.patrimonio_bf p
					inner join #t2
					on p.rete = #t2.rete
					and p.cod_fiscale = #t2.cod_fiscale
				--where rete + cod_fiscale  in (select rete + cod_fiscale from #t2)
				where p.id_area = 'liq'
				and p.tipo_prodotto = 'cc'
			)

				set @soloCC = 1
	else
				set @soloCC = 0

	drop table #t1
	drop table #t2


	-- Se le count torna 0 record significa che in ptf ci sono solo prodotti senza adeguatezza

	select @SoloProdottiSenzaAdeguatezza = count(*) 
	from c6martperiodico.patrimonio_bf patr
	left join [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
	on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
	where patr.rete = @rete
	and patr.cod_fiscale = @codicefiscale
	and senza.codinterno is null

	-- Se si verifica uno dei due casi, imposto la variabile a 1
	if @SoloProdottiSenzaAdeguatezza = 0 or @SoloCC = 1
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 1
	else
		set @SoloProdottiSenzaAdeguatezzaOrSoloCC = 0


----------------------------------------------------------------------------- FINE CASO 2

-- CASO 3 COPERTURA = 0 + e ptf con solo PRODOTTI senza ADEGUATEZZA
-- FINE CASO 3

-- RISULTATO FINALE

	if(@Copertura = 0)
	begin
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
			begin
				set @IDTesto = 3
			end
		else
			begin
				set @IDTesto = 1
			end
	end
	else
		--if(@SoloProdottiSenzaAdeguatezza=0)
		if(@SoloProdottiSenzaAdeguatezzaOrSoloCC = 1)
		begin
			set @IDTesto = 2
		end

	select ID, Testo
	from [C6MartPeriodico].[TB_S178CasiParticolari_Testi]
	where ID = 1


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















--[C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza] 'F', 'FF@P08202'
CREATE        procedure [C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza] --'S','MLNPFR59L04I138DS'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

--***************************************************************************  SOLO per test
--drop table @appo,#wseian,@TABELLAINDICATORI
--declare @Rete char(1),@CodiceFiscale varchar(16)
--set @Rete = 'f'
--set	@CodiceFiscale = 'BTTFST43C42B300A'--'LNGLGU49D23F587Z'--'BRSDRN64E24D749H'--'00703420968'--
--set @DataFineTrim = 20180430
--***************************************************************************

select *
into #WSEIAN2 
from C6MartPeriodico.WSEIAN2
where RETE=@Rete
and CODFIS=@CodiceFiscale


DECLARE @adeguato [varchar](5)
DECLARE @descrizione [varchar](1000)


-- **************************  creo la tabella iniziale con tutti gli indicatori
declare @TABELLAINDICATORI table
(
   TI_Ordine  [smallint] null,
   TI_Indicatore [varchar](80) null,
   TI_Adeguato [varchar](5) null,
   TI_Descrizione [varchar](1000) null
)

insert into @TABELLAINDICATORI values (1,'Rischio','-1','Non applicabile')
insert into @TABELLAINDICATORI values (2,'Riserva','-1','Non applicabile')
insert into @TABELLAINDICATORI values (3,'Investimento di lungo periodo','-1','Non applicabile')
insert into @TABELLAINDICATORI values (4,'Complessità','-1','Non applicabile')
insert into @TABELLAINDICATORI values (5,'Concentrazione in prodotti complessi','-1','Non applicabile')
insert into @TABELLAINDICATORI values (6,'Frequenza delle operazioni','-1','Non applicabile')
insert into @TABELLAINDICATORI values (7,'Concentrazione emittenti','-1','Non applicabile')
insert into @TABELLAINDICATORI values (8,'Concentrazione valutaria','-1','Non applicabile')

-- *****************************************************************************

declare @appo table
(
  RETE [varchar](1) null,
   COD_FISCALE [varchar](16) null,
   PATRIMONIO [varchar](255) NOT NULL,
   CTV_AGGREG [decimal](12, 2) null,
   profiloCode [smallint] null,
   var_profilo [decimal](5, 2) null,
   [VAR] [decimal](12, 3) NULL,
   varString [varchar](16) null,--[decimal](12, 3) NULL,
   CREDITRISK  [int] NULL,
   RISKCLASSSTRING [varchar](10) null,
   coperturaString [varchar](16) null,--[decimal](12, 3) NULL,
   COVERAGESTRING [varchar](10) null,
   RISKCLASSMAX [varchar](50) null,
   [PERCENTAGE] [decimal](12, 6) null,
   Ordine  [smallint] null,
   ULLY_PERC [decimal](10, 2) NULL
    

)
--creo le tabelle di appoggio
insert into @appo exec [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] @Rete,@CodiceFiscale






--***************************************************************************  INDICATORE DI VALUTAZIONE: RISCHIO

select @adeguato = 
case 
	when var <= var_profilo then '1'
	when var > var_profilo then '0'
	else -1
end,
@descrizione = case
	when var <= var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '1')
	when var > var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '-1')

end 
from @appo where ordine = 1 --patrimonio fideuram


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 1;


--***************************************************************************  INDICATORE DI VALUTAZIONE: RISERVA

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(riserva) = 'S' then '1'
	when upper(riserva) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(riserva) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '1')
	when upper(riserva) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '-1')

end 
from #WSEIAN2


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 2;


--***************************************************************************  INDICATORE DI VALUTAZIONE: INVESTIMENTO LUNGO PERIODO

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(invl_period) = 'S' then '1'
	when upper(invl_period) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(invl_period) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '1')
	when upper(invl_period) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '-1')

end 
from #WSEIAN2




if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 3;

--***************************************************************************  INDICATORE DI VALUTAZIONE: Complessità (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''
												  
select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and RETE=@Rete and dttrim = @DataFineTrim ) = 'S' then '0'
	when upper(clcompl) = 'N' and flagpg = 0 then '0'
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then '0'
		  when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then '0'
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then '1'
	
	
	
end,
@descrizione =  case
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '-1')
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and rete= @rete and dttrim = @DataFineTrim ) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0C')
	when upper(clcompl) = 'N' and flagpg = 0  then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0A')
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	      when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '1')
	
	
end 
from #WSEIAN2

--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 4;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 4;
	end
end

--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione in prodotti complessi  (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(flgconc) = 'S' then '1'
	when upper(flgconc) in ('N') then '0'
	else '-1'	
end,
@descrizione = case
	when upper(flgconc) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '1')
	when upper(flgconc) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '-1')
end
from #WSEIAN2

--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 5;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 5;
	end
end


--***************************************************************************  INDICATORE DI VALUTAZIONE: Frequenza delle operazioni (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(freq) = 'S' then '1'
	when upper(freq) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(freq) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '1')
	when upper(freq) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '-1')
end
from #WSEIAN2


if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 6;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 6;
	end
end






--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione emittenti (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when upper(concemi) = 'S' then '1'
	when upper(concemi) = 'N' then '0'
	else '-1'
end ,
@descrizione =  case
	when upper(concemi) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '1')
	when upper(concemi) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '-1')

end 
from #WSEIAN2



if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 7;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 7;
	end
end








	
--*************************************************************************** INDICATORE DI VALUTAZIONE: Concentrazione Valutaria (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when upper(ADEGCONC_VALUT) = 'S' then '1'
	when upper(ADEGCONC_VALUT) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(ADEGCONC_VALUT) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '1')
	when upper(ADEGCONC_VALUT) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '-1')
end
from #WSEIAN2


if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 8;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 8;
	end
end

--*******************************************************************************************************************************************


select 
ti_ordine as Ordine,
ti_indicatore as Indicatore,
ti_adeguato as Adeguato,
ti_descrizione as DescrizioneEsito
from  @TABELLAINDICATORI

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza_preMUA]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--[C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza] 's', 'LMZGNN35M47F205W'
CREATE procedure [C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza_preMUA]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

--***************************************************************************  SOLO per test
--drop table @appo,#wseian,@TABELLAINDICATORI
--declare @Rete char(1),@CodiceFiscale varchar(16)
--set @Rete = 'f'
--set	@CodiceFiscale = 'BTTFST43C42B300A'--'LNGLGU49D23F587Z'--'BRSDRN64E24D749H'--'00703420968'--
--set @DataFineTrim = 20180430
--***************************************************************************


DECLARE @adeguato [varchar](5)
DECLARE @descrizione [varchar](1000)


-- **************************  creo la tabella iniziale con tutti gli indicatori
declare @TABELLAINDICATORI table
(
   TI_Ordine  [smallint] null,
   TI_Indicatore [varchar](80) null,
   TI_Adeguato [varchar](5) null,
   TI_Descrizione [varchar](1000) null
)

insert into @TABELLAINDICATORI values (1,'Rischio','-1','Non applicabile')
insert into @TABELLAINDICATORI values (2,'Riserva','-1','Non applicabile')
insert into @TABELLAINDICATORI values (3,'Investimento di Lungo Periodo','-1','Non applicabile')
insert into @TABELLAINDICATORI values (4,'Complessità','-1','Non applicabile')
insert into @TABELLAINDICATORI values (5,'Concentrazione in prodotti complessi','-1','Non applicabile')
insert into @TABELLAINDICATORI values (6,'Frequenza delle operazioni','-1','Non applicabile')
insert into @TABELLAINDICATORI values (7,'Concentrazione emittenti','-1','Non applicabile')
insert into @TABELLAINDICATORI values (8,'Concentrazione valutaria','-1','Non applicabile')

-- *****************************************************************************

declare @appo table
(
  RETE [varchar](1) null,
   COD_FISCALE [varchar](16) null,
   PATRIMONIO [varchar](255) NOT NULL,
   CTV_AGGREG [decimal](12, 2) null,
   profiloCode [smallint] null,
   var_profilo [decimal](5, 2) null,
   [VAR] [decimal](12, 3) NULL,
   varString [varchar](16) null,--[decimal](12, 3) NULL,
   CREDITRISK  [int] NULL,
   RISKCLASSSTRING [varchar](10) null,
   coperturaString [varchar](16) null,--[decimal](12, 3) NULL,
   COVERAGESTRING [varchar](10) null,
   RISKCLASSMAX [varchar](50) null,
   [PERCENTAGE] [decimal](12, 6) null,
   Ordine  [smallint] null,
   ULLY_PERC [decimal](10, 2) NULL
    

)
--creo le tabelle di appoggio
insert into @appo exec [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] @Rete,@CodiceFiscale

declare @WSEIAN_S170 table
(
		[DTTRIM] [decimal](9, 0) NOT NULL,
	[RETE] [varchar](1) NOT NULL,
	[CODFIS] [varchar](16) NOT NULL,
	[NOME] [varchar](25) NULL,
	[COGNOME] [varchar](25) NULL,
	[DTNASCI] [decimal](9, 0) NULL,
	[INDIRIZZO] [varchar](44) NULL,
	[CAP] [varchar](5) NULL,
	[CITTA] [varchar](35) NULL,
	[PROVINCIA] [varchar](2) NULL,
	[NAZIONE] [varchar](35) NULL,
	[CODPROF] [smallint] NULL,
	[DTINVAL] [decimal](9, 0) NOT NULL,
	[CODMAN] [varchar](6) NULL,
	[CLASSERC] [decimal](5, 0) NULL,
	[COD_PROFEC] [decimal](5, 0) NULL,
	[FLAGPG] [decimal](1, 0) NULL,
	[CLCOMPL] [char](1) NOT NULL,
	[FLGCONC] [char](1) NOT NULL,
	[FLAGNQP] [char](1) NULL,
	[FLGPRLRDE] [char](1) NULL,
	[FLGPROF] [char](1) NULL,
	[DTFINVAL] [decimal](9, 0) NULL,
	[CONCEMI] [char](1) NULL,
	[FREQ] [char](1) NULL,
	[LLIQUID] [char](1) NULL,
	[PREFSOST] [char](1) NULL,
	[FLAGAMB] [char](1) NULL,
	[FLAGSOC] [char](1) NULL,
	[FLAGGOV] [char](1) NULL,
	[ADEGCONC_VALUT] [char](1) NULL,
	[SOGLIAESG] [decimal](5, 2) NULL,
	[COERENZA] [char](1) NULL,
	[RISERVA] [char](1) NULL,
	[INVL_PERIOD] [char](1) NULL,
	[MAXCOMPL] [decimal](5, 0) NULL,
	[NOCOMPL] [char](1) NULL,
	[SPESA_FORZATA] [decimal](13, 2) NULL,
	[PERC_ILP] [decimal](5, 2) NULL,
	[IMP_RISERVA] [decimal](13, 2) NULL
)

if @CodiceFiscale like '%FF@%'  

					INSERT INTO @WSEIAN_S170
					--se viene passata una fiduciaria devo filtrare per codice mandato
					select [DTTRIM]
						  ,[RETE]
						 , 
						 case
						 when(isnull(ltrim(rtrim(codman)),'') <> '') 
								then 'FF@'+codman
						 when (isnull(codfis,'') <> '')
								then codfis
						 else
								codfis
						 end as Codfis
						,[NOME]
      ,[COGNOME]
      ,[DTNASCI]
      ,[INDIRIZZO]
      ,[CAP]
      ,[CITTA]
      ,[PROVINCIA]
      ,[NAZIONE]
      ,[CODPROF]
      ,[DTINVAL]
      ,[CODMAN]
      ,[CLASSERC]
      ,[COD_PROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[DTFINVAL]
      ,[CONCEMI]
      ,[FREQ]
      ,[LLIQUID]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA]

					from [C6StagingPeriodico].[WSEIAN2] 
					where 1=1 
					and rete = @Rete
					and codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
					and dttrim = @DataFineTrim;
else

				 INSERT INTO @WSEIAN_S170
					select [DTTRIM]
						  ,[RETE]
						 , 
						 case
						 when(isnull(ltrim(rtrim(codman)),'') <> '') 
								then 'FF@'+codman
						 when (isnull(codfis,'') <> '')
								then codfis
						 else
								codfis
						 end as Codfis
						,[NOME]
      ,[COGNOME]
      ,[DTNASCI]
      ,[INDIRIZZO]
      ,[CAP]
      ,[CITTA]
      ,[PROVINCIA]
      ,[NAZIONE]
      ,[CODPROF]
      ,[DTINVAL]
      ,[CODMAN]
      ,[CLASSERC]
      ,[COD_PROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[DTFINVAL]
      ,[CONCEMI]
      ,[FREQ]
      ,[LLIQUID]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA]
					from [C6StagingPeriodico].[WSEIAN2] 
					where 1=1 
					and rete = @Rete
					and codfis= @CodiceFiscale
					and dttrim = @DataFineTrim;



--***************************************************************************  INDICATORE DI VALUTAZIONE: RISCHIO

select @adeguato = 
case 
	when var <= var_profilo then '1'
	when var > var_profilo then '0'
	else -1
end,
@descrizione = case
	when var <= var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '1')
	when var > var_profilo then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '-1')

end 
from @appo where ordine = 1 --patrimonio fideuram


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 1;


--***************************************************************************  INDICATORE DI VALUTAZIONE: RISERVA

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(riserva) = 'S' then '1'
	when upper(riserva) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(riserva) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '1')
	when upper(riserva) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '-1')

end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 2;


--***************************************************************************  INDICATORE DI VALUTAZIONE: INVESTIMENTO LUNGO PERIODO

set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(invl_period) = 'S' then '1'
	when upper(invl_period) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(invl_period) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '1')
	when upper(invl_period) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '-1')

end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 3;

--***************************************************************************  INDICATORE DI VALUTAZIONE: Complessità (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''
												  
select 
@adeguato = 
case
	when flgprof = 'S' then 'prof'
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim ) = 'S' then '0'
	when upper(clcompl) = 'N' and flagpg = 0 then '0'
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then '0'
		  when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then '0'
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then '1'
	
	
	
end,
@descrizione =  case
	when flagpg = 1 and flgprof = 'N' and  flagnqp = 'S' and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '-1')
	when upper(clcompl) = 'N' and
			 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = @CodiceFiscale and dttrim = @DataFineTrim ) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0C')
	when upper(clcompl) = 'N' and flagpg = 0  then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0A')
	--fix del 18/7/2019
	      --when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	      when upper(clcompl) = 'N' and flagpg = 1 and flgprlrde = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
	--fine fix del 18/7/2019
	when upper(clcompl) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '1')
	
	
end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim
--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 4;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 4;
	end
end

--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione in prodotti complessi  (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(flgconc) = 'S' then '1'
	when upper(flgconc) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(flgconc) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '1')
	when upper(flgconc) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '-1')
end
from @WSEIAN_S170
where 1=1
and rete = @Rete
and codfis = @CodiceFiscale 
and dttrim = @DataFineTrim
--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 5;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 5;
	end
end


--***************************************************************************  INDICATORE DI VALUTAZIONE: Frequenza delle operazioni (NON RITORNATO PER I PROFESSIONALI)
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
    when flgprof = 'S' then 'prof'
	when upper(freq) = 'S' then '1'
	when upper(freq) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(freq) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '1')
	when upper(freq) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '-1')
end
from @WSEIAN_S170
where 1=1
and rete = @Rete
and codfis = @CodiceFiscale 
and dttrim = @DataFineTrim
--and flgprof <> 'S'

if isnull(ltrim(rtrim(@adeguato)),'') <> ''
-- se valorizzato (0,1,-1,prof) faccio qualcosa altrimenti lascio come -1 (non disponibile)
begin
	if @adeguato = 'prof'
	begin
		delete from @TABELLAINDICATORI where TI_Ordine = 6;
	end
    else
	begin
		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 6;
	end
end






--***************************************************************************  INDICATORE DI VALUTAZIONE: Concentrazione emittenti
set @adeguato = ''	
set @descrizione = ''
select 
@adeguato = 
case
	when upper(concemi) = 'S' then '1'
	when upper(concemi) = 'N' then '0'
	else -1
end ,
@descrizione =  case
	when upper(concemi) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '1')
	when upper(concemi) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '-1')

end 
from @WSEIAN_S170
where 1=1
--20180830 aggiunto AC
and rete = @Rete
and codfis = @CodiceFiscale
--20180830
and dttrim = @DataFineTrim


if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 7;








	
--*************************************************************************** INDICATORE DI VALUTAZIONE: Concentrazione Valutaria
set @adeguato = ''	
set @descrizione = ''

select 
@adeguato = 
case
	when upper(ADEGCONC_VALUT) = 'S' then '1'
	when upper(ADEGCONC_VALUT) = 'N' then '0'
	else '-1'	
end,
@descrizione = case
	when upper(ADEGCONC_VALUT) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '1')
	when upper(ADEGCONC_VALUT) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '0')
	else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 8 and Adeguato = '-1')
end
from @WSEIAN_S170
where 1=1
and rete = @Rete
and codfis = @CodiceFiscale 
and dttrim = @DataFineTrim

if isnull(ltrim(rtrim(@adeguato)),'') <> ''

		update  a 
		set  TI_Adeguato = @adeguato, TI_Descrizione = @descrizione
		from @TABELLAINDICATORI a 
		where TI_Ordine = 8;

--*******************************************************************************************************************************************


select 
ti_ordine as Ordine,
ti_indicatore as Indicatore,
ti_adeguato as Adeguato,
ti_descrizione as DescrizioneEsito
from  @TABELLAINDICATORI

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S179EmittentiConcentrazioneAlta]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[PL_D_S179EmittentiConcentrazioneAlta] 'F', 'DVTMRA58B09F839W'
CREATE     procedure [C6MartPeriodico].[PL_D_S179EmittentiConcentrazioneAlta] --'W','DRNSNT51B44H090Q'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	declare @PROF VARCHAR(1)
	SET @PROF = (select FLGPROF from C6MartPeriodico.WSEIAN2 WHERE RETE=@Rete AND CODFIS= @CodiceFiscale)


SELECT [RETE]
      ,[COD_FISCALE]
      ,[Ordine]
      ,[Emittente]
      ,[ctv]
      ,[flagAdeguatezza]
      ,[franchigia]
      ,[percConcentrazione] * 100 as percConcentrazione
      ,case when rating='' then 'n.d.' else rating end as rating
      ,[sogliaConcentrazione] * 100 as sogliaConcentrazione
  FROM [C6MartPeriodico].[TB_S179EmittentiConcentrazioneAlta]
	where rete = @Rete
	and Cod_Fiscale = @CodiceFiscale
	and @PROF='N'
	order by emittente

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














--[c6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225'
CREATE procedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta] --'F','LPPLBR69L11L833P'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @TotalePatrimonio = ctv
	FROM
		c6MartPeriodico.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
--
 SELECT
    1 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    --((controvalore * 100) / @TotalePatrimonio) as Peso,
	percentuale_CTV as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
   -- SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
     SUM(Percentuale_CTV) OVER () as SommaPesi
	into #temp
FROM
    [c6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 3

	union all
	SELECT
    2 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
      --((controvalore * 100) / @TotalePatrimonio) as Peso,
	percentuale_CTV as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
   -- SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
     SUM(Percentuale_CTV) OVER () as SommaPesi
FROM
    [c6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 2

	union all
	SELECT
    3 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
      --((controvalore * 100) / @TotalePatrimonio) as Peso,
	percentuale_CTV as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
   -- SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
     SUM(Percentuale_CTV) OVER () as SommaPesi
FROM
    [c6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 1

	-- --20180905 Fine modifica
	order by ordine,Compl_Base desc

	delete from #temp where ordine=1 and SommaPesi<20 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta è <20 
	delete from #temp where ordine=2 and SommaPesi<30 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta è <30 
	delete from #temp where ordine=3 and SommaPesi<50 --pesi definiti da banca se la somma dei pesi di tutti prodotti a complessita alta e medio-alta e medio-bassa è <50 

--	select * from #temp --order by ordine,Complessita

	DECLARE @ordineConcatenato VARCHAR(4)

SELECT @ordineConcatenato = COALESCE(@ordineConcatenato + '', '') + CAST(ordine AS VARCHAR)
FROM (SELECT DISTINCT ordine FROM #temp) AS subquery
-- @ordineConcatenato conterrà i valori distinti concatenati della colonna 'ordine'


SELECT Ordine,CodiceContratto,NomeProdotto,Controvalore,Complessita,Peso,TotalePatrimonio,SommaControvalore,SommaPesi,@ordineConcatenato AS Ordine_Concatenato
into #temp2
FROM #temp

select t.Ordine
	  ,t.CodiceContratto
	  ,t.NomeProdotto
	  ,t.Controvalore
	  ,t.Complessita as Complessita_Numero
	  ,case when t.Complessita=4 then 'Alta' 
			when t.Complessita=3 then 'Medio-alta'
			when t.Complessita=2 then 'Medio-bassa'
			else 'n.d.' end as Complessita
	  ,t.Peso
	  ,t.TotalePatrimonio
	  ,t.SommaControvalore
	  ,t.SommaPesi
	  ,t.Ordine_Concatenato
	  ,n.Descrizione
	  into #temp3 
	  from #temp2 t left join [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta_note] n on t.Ordine_Concatenato=n.id

	  	DECLARE @ComplessitaConcatenata VARCHAR(4)

SELECT @ComplessitaConcatenata = COALESCE(@ComplessitaConcatenata + '', '') + CAST(complessita_numero AS VARCHAR)
FROM (SELECT DISTINCT complessita_numero FROM #temp3 ) AS subquery order by Complessita_Numero desc


SELECT t.Ordine,t.CodiceContratto,t.NomeProdotto,t.Controvalore,t.Complessita_Numero,t.Complessita,t.Peso,t.TotalePatrimonio,t.SommaControvalore,t.SommaPesi,t.Ordine_Concatenato,replace(t.Descrizione,'@@@@@',co.descrizione) as Descrizione--,@ComplessitaConcatenata as Complessita_Concatenata
FROM #temp3 t left join [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta_note_complessita] co on @ComplessitaConcatenata=co.id


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta_20180715]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta] 'f', 'ff@9225'
CREATE procedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta_20180715]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	-- acquisiamo il totale patrimonio del cliente
	SELECT @TotalePatrimonio = ctv
	FROM
		C6MartPeriodico.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
--
	select 
	1 as Ordine,
	codicecontratto as CodiceContratto,
	nomeprodotto as NomeProdotto,
	controvalore as Controvalore,
	((controvalore*100)/@TotalePatrimonio) as Peso,
	@TotalePatrimonio as TotalePatrimonio
	from [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
	where
	rete = @Rete
	-- modifica del 4/7/2018 
	and cod_fiscale like 
		CASE when @CodiceFiscale like '%FF@%'THEN '%%'
		ELSE @CodiceFiscale
		END
	and codman = 
		CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
		ELSE ''
		END
    --fine modifica del 4/7/2018 
	order by controvalore desc


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta_mini]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE    procedure [C6MartPeriodico].[PL_D_S180ProdottiComplessitaAlta_mini] --'W','BRGDNT48P60D612V'
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	declare @TotalePatrimonio decimal(12,2)

	SELECT @TotalePatrimonio = ctv
	FROM
		C6Mart.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND COD_FISCALE = @CodiceFiscale

 SELECT
    1 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
	into #temp
FROM
    [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 3

	union all

	SELECT
    2 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 2

	union all

	SELECT
    3 as Ordine,
    codicecontratto as CodiceContratto,
    nomeprodotto as NomeProdotto,
    controvalore as Controvalore,
	compl_base as Complessita,
    ((controvalore * 100) / @TotalePatrimonio) as Peso,
    @TotalePatrimonio as TotalePatrimonio,
    SUM(controvalore) OVER () as SommaControvalore,
    SUM((controvalore * 100) / @TotalePatrimonio) OVER () as SommaPesi
FROM
    [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
WHERE
    rete = @Rete
    AND cod_fiscale LIKE 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN '%%'
        ELSE @CodiceFiscale
        END
    AND codman = 
        CASE WHEN @CodiceFiscale LIKE '%FF@%' THEN SUBSTRING(@CodiceFiscale, 4, LEN(@CodiceFiscale) - 3)
        ELSE ''
        END
    AND Compl_Base > 1

delete from #temp where ordine=1 and SommaPesi<20
delete from #temp where ordine=2 and SommaPesi<30
delete from #temp where ordine=3 and SommaPesi<50

select case when exists (select 1 from #temp) then 1 else 0 end

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_FD152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S152Patrimonio]  'f','BNLSRG42S13E666Q'
CREATE   procedure [C6MartPeriodico].[PL_D2_FD152Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @Part_viaggianti decimal(15,2)
	DECLARE @PatrimonioRibilanciato DECIMAL(15,2) -- Portafoglio Ribilanciato
	DECLARE @PatrimonioBase DECIMAL(15,2) --Portafoglio Base



	SELECT @PatrimonioBF = SUM(CTV)
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale
			AND patrBF.id_area not in ('CC','SELF')  

			SELECT @Part_viaggianti = SUM(IMPORTO)
		FROM
		(
				SELECT SUM(IMPORTO) AS IMPORTO
					FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
				union 
				SELECT SUM(PARTVIA_DISINV) AS IMPORTO
					FROM C6Martperiodico.patrimonio_bf partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
		 ) T
 
	select POSITION_ID
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF inner join 
		C6StagingPeriodico.RP_Progetto_Robo robo on patrBF.CHIAVE_PROGETTO=robo.chiaveProgetto 
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale

		select @PatrimonioBase= sum(CTV)
		from C6MartPeriodico.PATRIMONIO_BF patrBF
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale
			AND patrBF.position_id not in (
	select POSITION_ID
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF inner join 
		C6StagingPeriodico.RP_Progetto_Robo robo on patrBF.CHIAVE_PROGETTO=robo.chiaveProgetto 
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale)

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioRibilanciato =coalesce(@PatrimonioRibilanciato,0)
	SET @PatrimonioBase =coalesce(@PatrimonioBase,0)
	
	SELECT	
		@PatrimonioBF AS PatrimonioTotaleCTV,
		@PatrimonioRibilanciato AS PatrimonioRibilanciatoCTV,
		CONVERT(decimal(6,2),((case @PatrimonioRibilanciato when 0.00 then 0.00 else (@PatrimonioRibilanciato)/ @PatrimonioBF end)  * 100.00)) AS RibilanciatoPerc,
		@PatrimonioBase AS PatrimonioBaseCTV,
		CONVERT(decimal(6,2),((case @PatrimonioBase when 0.00 then 0.00 else @PatrimonioBase/@PatrimonioBF end ) *100.00)) AS BasePerc
		

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_FD160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'SLLLMN44E29A176G'
-- [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF] 'F', 'SPNTTR67T20F205D'
create procedure [C6MartPeriodico].[PL_D2_FD160DettaglioProdottiBF]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT
distinct

	CASE 
		when robo.isProgettoRobo='S' then 'Rob'
		else 'ASF'
	END AS needarea,
CASE 
		when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base'
		--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		--WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		--ELSE AREA.NOME_AREA 
	END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY robo.isProgettoRobo) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY robo.isProgettoRobo) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY robo.isProgettoRobo) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY robo.isProgettoRobo) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto,
    apc.is_APC as isAPC

FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
	--aggiunta 18/12/2022 per APC103
left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATRBF.RETE
	and	apc.cod_fiscale=patrbf.cod_fiscale
	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta 18/12/2022 per APC103

left join C6StagingPeriodico.RP_Progetto_robo ROBO
on ROBO.chiaveprogetto=PATRBF.CHIAVE_PROGETTO
	
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_FD170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] 'W','MLAMRA61P03G337F'
CREATE procedure [C6MartPeriodico].[PL_D2_FD170RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int
	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int
	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete
    
    declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  and id_area not in ('LIGHT', 'VOID')
				  -- modifica del 5/2/2019 per escludere i record del patr non rappresentabile (commentata ed eventualmente utilizzata ad hoc)
				  --and (rend_non_rappr = 0  or (id_area = 'Liq' and rend_non_rappr = 1))
				  --fine modifica del 5/2/2019
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0

	------------------------    MIFID2 - MAGGIO 2018

	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0) 
    declare @maxComplessita as int
	
	
	 if @CodiceFiscale like '%FF@%'  
	   
		   select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)		
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA
	else
			select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codfis= @CodiceFiscale	
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA
			

SELECT 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (6,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

-- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
beneficio as diversificazione,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then null
--when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
--END AS diversificazione,

-- fine modifica del 19/6/2018 


CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' when k.rete = 'S' then 'Sanpaolo Invest' else 'IW Private Investments' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
isnull(b.max_var, 0) as var_profilo,

------------------------    MIFID2 - MAGGIO 2018
case @maxComplessita
			   when 0 then 'Non complesso'
	when 1 then 'Bassa'
	when 2 then 'Medio bassa'
	when 3 then 'Medio alta'
	when 4 then 'Alta'
	else 'n.c.'
		end
		as complessita,
-------------------------  FINE MIFID2 - MAGGIO 2018

--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine


END 










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione]    Script Date: 09/02/2022 11:37:02 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO





---- [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] 's','BRNGDI72S69L219Y'
--ALTER procedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCC as int
--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int
--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete
    
--    declare @ctvbf as decimal(12,2)  
--	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0
--				  and id_area not in ('LIGHT', 'VOID')
--				  -- modifica del 5/2/2019 per escludere i record del patr non rappresentabile (commentata ed eventualmente utilizzata ad hoc)
--				  --and (rend_non_rappr = 0  or (id_area = 'Liq' and rend_non_rappr = 1))
--				  --fine modifica del 5/2/2019
				  
--    declare @ctvterzi as decimal (12,2)  
--	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0

--	------------------------    MIFID2 - MAGGIO 2018

--	DECLARE @DataFineTrim VARCHAR(8)  
--    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0) 
--    declare @maxComplessita as int
	
	
--	if @CodiceFiscale like '%FF@%'  
	        
--			select @maxComplessita = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			  --   codfis like 
--					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					--   ELSE @CodiceFiscale
--					--   END
--				 --and codman = 
--					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					--   ELSE ''
--					--   END
--				 codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--				 and rete= @Rete 
--				 and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10;
			
--	 else 
			
--			select @maxComplessita = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			  --   codfis like 
--					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					--   ELSE @CodiceFiscale
--					--   END
--				 --and codman = 
--					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					--   ELSE ''
--					--   END
--				 codfis= @CodiceFiscale
--				 and rete= @Rete 
--				 and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10;
			

--SELECT 
--K.COD_FISCALE,
--K.RETE,
--CASE 
--	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
--	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
--	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
--	else 0
--END AS CTV_AGGREG,	
--K.CREDITRISK,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,
--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,

---- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
--beneficio as diversificazione,
----case 
----when cod_Aggreg = 'COMPLESSIVO' then null
----when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
----when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
----END AS diversificazione,

---- fine modifica del 19/6/2018 


--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,
--isnull(b.max_var, 0) as var_profilo,

--------------------------    MIFID2 - MAGGIO 2018
--case @maxComplessita
--        	when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-'
--		end
--		as complessita,
---------------------------  FINE MIFID2 - MAGGIO 2018

----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine

 
--FROM
--C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--	left outer join
--C6Martperiodico.CODIFICA_RISCHIO b on
--A.PROFILO_ASS=B.PROFILO
--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY ordine


--END 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_D2_S150Anagrafica]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT [Cliente]
      ,[DatadiNascita]
      ,[ETA]
      ,[Professione]
      ,[StatoCivile]
      ,[NucleoFamiliare]
      ,[Residenza]
      ,[CodiceFiscale]
      ,[CodicePB]
      ,[CodiceRete]
      ,[CodiceContratto]
      ,[StatoContratto]
      ,[DataSottoscrizione]
      ,[DataPerfezionamento]
      ,[FasciaCPP]
      ,[IndirizzoEmail]
      ,[ProduzioneReport]
      ,[Indirizzo]
      ,[CAP]
      ,[Citta]
      ,[Provincia]
      ,[Nazione]
      ,[PRESSO]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S25Anagrafica]
  WHERE	[CodiceRete] 	= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
		 

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S150Anagrafica_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_DT_S150Anagrafica] 'F', 'NCLGDE26B18L388P'
CREATE procedure [C6MartPeriodico].[PL_D2_S150Anagrafica_BkUpParall]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		--CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
		--	THEN
		--	REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--	+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') 
		--	ELSE
		--	REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--	+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','')
		--END AS Residenza,
		
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') else '' end  + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end  + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') else '' end   + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end + ')','()','')
		END AS Residenza,
		
		
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_SOTT) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		NULL AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Prov] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM        
		C6MART.contrattosei as CONTRATTOSEI
	INNER JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MARTPERIODICO.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MARTPERIODICO.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S95ProfiloDiRischio]F,00247580970
CREATE procedure [C6MartPeriodico].[PL_D2_S151ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S152Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S152Patrimonio]  'f','BNLSRG42S13E666Q'
CREATE procedure [C6MartPeriodico].[PL_D2_S152Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	-- modifica del 05/02/2019 per il ProQuota
	declare @PatrimonioImmobiliareProQuota decimal(15,2)
	-- fine modifica del 05/02/2019 per il ProQuota
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT @PatrimonioBF = SUM(CTV)
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale
			AND patrBF.id_area not in ('CC','SELF')  
 
	SELECT @Part_viaggianti = SUM(IMPORTO)
		FROM
		(
				SELECT SUM(IMPORTO) AS IMPORTO
					FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
				union 
				SELECT SUM(PARTVIA_DISINV) AS IMPORTO
					FROM C6Martperiodico.patrimonio_bf partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
		 ) T
     
    SELECT @PatrimonioTerzi = SUM(ROUND(CTV,2))
		FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
		WHERE
			patrTerzi.Rete = @Rete
			and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
		FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
		WHERE
			patrImm.Rete = @Rete
			and patrImm.Cod_Fiscale = @CodiceFiscale

	-- modifica del 05/02/2019 per il ProQuota
	SELECT 
		@PatrimonioImmobiliareProQuota = isnull(SUM(patrImm.VALORE_STIMATO_PROQUOTA), 0)
	FROM 
		C6MARTPeriodico.PATRIMONIO_IMMOBILIARE_ProQuota patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale
	-- fine modifica del 05/02/2019 per il ProQuota


	SELECT @PatrimonioAltro = SUM(patrAltro.ctv)
		FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
		WHERE
			patrAltro.Rete = @Rete
			AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV
		-- modifica del 05/02/2019 per il ProQuota
		,@PatrimonioImmobiliareProQuota as ImmobiliarePQCTV
		-- fine modifica del 05/02/2019 per il ProQuota

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S152Patrimonio_20190225__ori]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S152Patrimonio]  'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_D2_S152Patrimonio_20190225__ori] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT @PatrimonioBF = SUM(CTV)
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale
			AND patrBF.id_area not in ('CC','SELF')  
 
	SELECT @Part_viaggianti = SUM(IMPORTO)
		FROM
		(
				SELECT SUM(IMPORTO) AS IMPORTO
					FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
				union 
				SELECT SUM(PARTVIA_DISINV) AS IMPORTO
					FROM C6Martperiodico.patrimonio_bf partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
		 ) T
     
    SELECT @PatrimonioTerzi = SUM(ROUND(CTV,2))
		FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
		WHERE
			patrTerzi.Rete = @Rete
			and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
		FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
		WHERE
			patrImm.Rete = @Rete
			and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioAltro = SUM(patrAltro.ctv)
		FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
		WHERE
			patrAltro.Rete = @Rete
			AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S152Patrimonio_20190225_preProquota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S152Patrimonio]  'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_D2_S152Patrimonio_20190225_preProquota] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT @PatrimonioBF = SUM(CTV)
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale
			AND patrBF.id_area not in ('CC','SELF')  
 
	SELECT @Part_viaggianti = SUM(IMPORTO)
		FROM
		(
				SELECT SUM(IMPORTO) AS IMPORTO
					FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
				union 
				SELECT SUM(PARTVIA_DISINV) AS IMPORTO
					FROM C6Martperiodico.patrimonio_bf partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
		 ) T
     
    SELECT @PatrimonioTerzi = SUM(ROUND(CTV,2))
		FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
		WHERE
			patrTerzi.Rete = @Rete
			and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
		FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
		WHERE
			patrImm.Rete = @Rete
			and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioAltro = SUM(patrAltro.ctv)
		FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
		WHERE
			patrAltro.Rete = @Rete
			AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--  [C6MartPeriodico].[PL_D2_S153PatrimonioFinanziario] 's','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_D2_S153PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			CASE @Rete WHEN 'F' THEN 'Fideuram' WHEN 'S' THEN  'Sanpaolo Invest' ELSE 'IW Private Investments' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				CASE @Rete WHEN 'F' THEN 'Fideuram' WHEN 'S' THEN  'Sanpaolo Invest' ELSE 'IW Private Investments' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1
					AND patrBF.Rete = @Rete
					AND patrBF.Cod_Fiscale = @CodiceFiscale
					and patrBF.id_area  not in ('CC','SELF') 
				
			UNION ALL

			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
					AND patrTerzi.Rete = @Rete
					AND patrTerzi.Cod_Fiscale = @CodiceFiscale			
				GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S153PatrimonioFinanziario]    Script Date: 09/02/2022 11:23:41 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

----  [C6MartPeriodico].[PL_D2_S153PatrimonioFinanziario] 's','LMNFNC40L14L219U'
--ALTER procedure [C6MartPeriodico].[PL_D2_S153PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN

--	SELECT 
--		Intermediario,
--		Ordine,
--		Banca,
--		Controvalore,
--		round(Percentuale,2) as Percentuale
--	FROM 
--	(
--		SELECT DISTINCT
--			Intermediario,
--			Ordine,
--			CASE @Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
--			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
--			(
--				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
--				(SUM(ctv) over (partition by 'Totale'))
--			 ) * 100 AS PERCENTUALE
--		FROM 
--		(
--			SELECT 
--				CASE @Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
--				SUM(ROUND(CTV,2)) AS ctv,
--				1 AS ordine
--				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
--				WHERE 1 = 1
--					AND patrBF.Rete = @Rete
--					AND patrBF.Cod_Fiscale = @CodiceFiscale
--					and patrBF.id_area  not in ('CC','SELF') 
				
--			UNION ALL

--			SELECT 
--				Intermediario, 
--				SUM(ROUND(CTV,2)) AS ctv,
--				2 AS ordine
--				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
--				WHERE 1 = 1
--					AND patrTerzi.Rete = @Rete
--					AND patrTerzi.Cod_Fiscale = @CodiceFiscale			
--				GROUP BY patrTerzi.Intermediario

--		) PATR

--	) A
--	WHERE CONTROVALORE IS NOT NULL
--	ORDER BY Ordine

--END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[PL_D2_S154PatrimonioFinanziario]  'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_D2_S154PatrimonioFinanziario]  
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete WHEN 'S' THEN 'Sanpaolo Invest' WHEN 'F' THEN 'Fideuram' ELSE 'IW Private Investments' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	



























--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL
		--DETTAGLIO ASUL SENZA SKANDIA
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END
















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S154PatrimonioFinanziario]    Script Date: 09/02/2022 11:26:38 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



----[C6MartPeriodico].[PL_D2_S154PatrimonioFinanziario]  'S','LMNFNC40L14L219U'
--ALTER procedure [C6MartPeriodico].[PL_D2_S154PatrimonioFinanziario]  
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
	
--SELECT 
--	A.Banca,
--	A.Ordinamento,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,6)) Controvalore,
--	A.Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
--FROM 
--(		

--	SELECT DISTINCT
--		CASE @Rete WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
--		ASSETCLASS.ORDINAMENTO AS Ordinamento,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

		
--		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
--			AND PATRBF.ID_AREA  not in ('CC','SELF') 
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	



























----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MartPeriodico.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MartPeriodico.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MartPeriodico.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL
--		--DETTAGLIO ASUL SENZA SKANDIA
--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL
--		--CON SKANDIA
--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale


--		UNION ALL

--		--PRODOTTI TERZI A CATALOGO
--		SELECT
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI NON A CATALOGO
--		SELECT 	
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MartPeriodico.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

--) A

--ORDER BY A.ORDINAMENTO

--END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodico].[PL_D2_S155PatrimonioImmobiliare] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale

	-- modifica del 05/02/2019 per il ProQuota
	select
		Descrizione,
		Tipologia,
		Localita,
		AffittoPercepito,
		Valore_stimato as Valore,
		sum(Valore_stimato) OVER (PARTITION BY 'Valore_stimato') as Totale,
		sum(AffittoPercepito) OVER (PARTITION BY 'AffittoPercepito') as TotaleAffitto,


		Tipologia_Diritto as TipologiaDiritto,
		ProQuota,

		Valore_Stimato_ProQuota as Valore_ProQuota,
		sum(Valore_Stimato_ProQuota) over (partition by 'Valore_Stimato_ProQuota') as TotaleProQuota


	from C6MARTPERIODICO.PATRIMONIO_IMMOBILIARE_ProQuota
	where Rete = @Rete
		and COD_FISCALE = @CodiceFiscale
		ORDER BY 5 DESC
	-- fine modifica del 05/02/2019 per il ProQuota

	--SELECT 
	--		PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
	--		PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
	--		PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
	--		isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
	--		PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
	--		SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
	--		SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	--FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	--WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
	--	AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	--ORDER BY 5 DESC
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S155PatrimonioImmobiliare_20190225_preProquota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_D2_S155PatrimonioImmobiliare_20190225_preProquota] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S155PatrimonioImmobiliare_20190502_ProQuota]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6MartPeriodico].[PL_D2_S155PatrimonioImmobiliare_20190502_ProQuota] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale

	-- modifica del 05/02/2019 per il ProQuota
	select
		Descrizione,
		Tipologia,
		Localita,
		AffittoPercepito,
		Valore_stimato as Valore,
		sum(Valore_stimato) OVER (PARTITION BY 'Valore_stimato') as Totale,
		sum(AffittoPercepito) OVER (PARTITION BY 'AffittoPercepito') as TotaleAffitto,


		Tipologia_Diritto as TipologiaDiritto,
		ProQuota,

		Valore_Stimato_ProQuota as Valore_ProQuota,
		sum(Valore_Stimato_ProQuota) over (partition by 'Valore_Stimato_ProQuota') as TotaleProQuota


	from C6MARTPERIODICO.PATRIMONIO_IMMOBILIARE_ProQuota
	where Rete = @Rete
		and COD_FISCALE = @CodiceFiscale
		ORDER BY 5 DESC
	-- fine modifica del 05/02/2019 per il ProQuota

	--SELECT 
	--		PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
	--		PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
	--		PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
	--		isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
	--		PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
	--		SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
	--		SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	--FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	--WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
	--	AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	--ORDER BY 5 DESC
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_D2_S156ALtroPatrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	SELECT 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
	WHERE 
		PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi] 'F','NDRRRT54L20D869S'
CREATE procedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi_BK_eligoTitoli]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
--			LEFT(ID_AREA,3) AS ID_AREA, 
		CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, 		
			CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END  
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale			 
			AND ID_AREA not in ('Na', 'Cc','Self')
		 
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE	PATRIMONIO_BF.RETE = @Rete
					AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
					AND (TIPO_PRODOTTO = 'Cc' OR  ISIN = 'EURO00000009' )

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
--FINE INTERVENTI OMNIA quiii2

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------				
								
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------											
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCCSELF = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 					
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCCSELF = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA					
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCCSELF = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
				   WHEN ATTUALE.ID_AREA = 'Self' 
						THEN 'COMPLESSIVO|BF|SELF'
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
			
		WHERE AREA_BISOGNO.ID_AREA <> 'self'
		
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
-- [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi] 'F','NDRRRT54L20D869S'
CREATE procedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
--			LEFT(ID_AREA,3) AS ID_AREA, 
		CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, 		
			CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END  
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale			 
			AND ID_AREA not in ('Na', 'Cc','Self')
		 
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE	PATRIMONIO_BF.RETE = @Rete
					AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
					AND (TIPO_PRODOTTO = 'Cc' OR  ISIN in('EURO00000009', 'EURO10000007'))

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN in ('EURO00000009', 'EURO10000007')
--FINE INTERVENTI OMNIA quiii2

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN in('EURO00000009', 'EURO10000007')
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------				
								
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------											
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCCSELF = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 					
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCCSELF = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA					
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCCSELF = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
				   WHEN ATTUALE.ID_AREA = 'Self' 
						THEN 'COMPLESSIVO|BF|SELF'
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
			
		WHERE AREA_BISOGNO.ID_AREA <> 'self'
		
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi_testFc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi] 'F','NDRRRT54L20D869S'
CREATE procedure [C6MartPeriodico].[PL_D2_S157ConfrontoPiramidi_testFc]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
--			LEFT(ID_AREA,3) AS ID_AREA, 
		CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, 		
			CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END  
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale			 
			AND ID_AREA not in ('Na', 'Cc','Self')
		 
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE	PATRIMONIO_BF.RETE = @Rete
					AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
					AND (TIPO_PRODOTTO = 'Cc' OR  ISIN = 'EURO00000009' )

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
--FINE INTERVENTI OMNIA quiii2

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------				
								
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------											
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCCSELF = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 					
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCCSELF = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA					
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCCSELF = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
				   WHEN ATTUALE.ID_AREA = 'Self' 
						THEN 'COMPLESSIVO|BF|SELF'
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
			
		WHERE AREA_BISOGNO.ID_AREA <> 'self'
		
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S158PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D_S158PiramideModello] 'F','CLRLCU75R04B573X'
CREATE procedure [C6MartPeriodico].[PL_D2_S158PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

		SELECT BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO +'|'+cast(BF.ORDINAMENTO_PROGETTO as char)  --per Aladdin è stato aggiunta la concatenazione --> cast(BF.ORDINAMENTO_PROGETTO as char)
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.RETE = @Rete
		AND BF.COD_FISCALE = @CodiceFiscale
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF
		
 


	--SELECT
	--	AREA_BISOGNO.ID_AREA AS Need_Breve,					-- NOME BREVE DELL'AREA DI BISOGNO
	--	PIRMOD.NOME_PROGETTO AS Nome_Progetto,			    -- NOME DEL PROGETTO (AREA INV)
	--	ISNULL(PIRMOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
	--	PIRMOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
 --       PIRMOD.CTV_PROGETTO AS Controvalore,				-- Controvalore Progetto
	--	SUM(ISNULL(PIRMOD.PERC_AREA,0)) OVER (PARTITION BY PIRMOD.RETE, PIRMOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
	--	SUM(ISNULL(PIRMOD.PERC_AREA,0)) OVER (PARTITION BY PIRMOD.RETE, PIRMOD.COD_FISCALE) AS Totale,
	--	COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRMOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRMOD.RETE, PIRMOD.COD_FISCALE) AS NumeroProgettiInv,
	--	AREA_BISOGNO.ORDINAMENTO AS Ordinamento
	--FROM C6MartPeriodico.AREA_BISOGNO
	--LEFT JOIN  C6MartPeriodico.PIRAMIDE_MOD  PIRMOD
	--	ON PIRMOD.ID_AREA = AREA_BISOGNO.ID_AREA
	--	AND((PIRMOD.ID_AREA = 'INV' AND PIRMOD.NOME_PROGETTO IS NOT NULL )--OR PIRAMIDE_MOD.tipo_progetto<>'Default'
	--		OR PIRMOD.ID_AREA IN ('RIS','EXT','LIQ','PRE'))
	--	AND PIRMOD.RETE = @Rete
	--	AND PIRMOD.COD_FISCALE = @CodiceFiscale
	--WHERE AREA_BISOGNO.ORDINAMENTO < 6	
	--ORDER BY AREA_BISOGNO.ORDINAMENTO

END
 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure


-- =============================================
-- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

-- [C6MartPeriodico].[PL_DT_S159PatrimonioFinanziario] 'F','BSHLRI69R13Z100Y'
CREATE procedure [C6MartPeriodico].[PL_D2_S159PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN  'Fideuram' 
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO

END
















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S159PatrimonioFinanziario]    Script Date: 09/02/2022 11:30:15 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



---- Stored procedure


---- =============================================
---- Author:		<Luca De Lisio,,[PL_DT_S159PatrimonioFinanziario]>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================

---- [C6MartPeriodico].[PL_DT_S159PatrimonioFinanziario] 'F','BSHLRI69R13Z100Y'
--ALTER procedure [C6MartPeriodico].[PL_D2_S159PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
	
--SELECT 
--	A.BANCA AS Banca,
--	A.ORDINAMENTO AS Ordinamento,
--	A.AssetClassId AS AssetClassId, 
--	A.AssetClassName AS AssetClassName, 
--	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
--	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
--FROM 
--(		
--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
--				 THEN 1 
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
--            END  
--		) * 100 AS Percentuale
--	FROM (

--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area not in ('CC','Self')
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL
		
--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	
----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MartPeriodico.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MartPeriodico.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MartPeriodico.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL

--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MartPeriodico.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--) A

--ORDER BY A.ORDINAMENTO

--END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'SLLLMN44E29A176G'
-- [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF] 'F', 'SPNTTR67T20F205D'
CREATE procedure [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT
distinct

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto,
    apc.is_APC as isAPC

FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
	--aggiunta 18/12/2022 per APC103
left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATRBF.RETE
	and	apc.cod_fiscale=patrbf.cod_fiscale
	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta 18/12/2022 per APC103
	
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF_BK_20151222]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'SLLLMN44E29A176G'
-- [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF] 'F', 'MRNMNG53P46H294F'
CREATE procedure [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF_BK_20151222]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'SLLLMN44E29A176G'
-- [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF] 'F', 'NDRRRT54L20D869S'
CREATE procedure [C6MartPeriodico].[PL_D2_S160DettaglioProdottiBF_BK_eligoTitoli]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN = 'EURO00000009'
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin ='EURO00000009' THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin ='EURO00000009') then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:  Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S162DettaglioProdotti] 'S', 'VNZGPL53M04L781P'
CREATE procedure [C6MartPeriodico].[PL_D2_S162DettaglioProdotti]

 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS

BEGIN
	
	SELECT  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
		and ROUND(PATRTERZI.CTV,2) != 0.00
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_D2_S163PatrimonioFinanziarioMAssetClass] 'S', 'SLLVTI76H02A176H'
CREATE procedure [C6MartPeriodico].[PL_D2_S163PatrimonioFinanziarioMAssetClass] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT DISTINCT
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
			when 0 then 1
			else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
			end 
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
		) * 100 AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	where Controvalore <> 0
	ORDER BY 
		ASSETCLASS.ORDINAMENTO
		
END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Marco Gentilezza
-- Create date: 
-- Description:	
-- =============================================
--[C6MartPeriodico].[PL_DT_S164PolizzeAltriIstituti]'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_D2_S164PolizzeAltriIstituti] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_DT_S165FondiAltriIstituti] 'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_D2_S165FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S166ContoCorrenteAI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_D2_S166ContoCorrenteAI] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     
		CCTerzi.INTERMEDIARIO AS Intermediario,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO AS Saldo,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6MartPeriodico.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale
		and CCTerzi.SALDO != 0

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito] 'F','GGGNNA41E59G687E'

-- N.B. Questa è importante per le note presenti nel macro asset class S10
CREATE procedure [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' WHEN PATRBF.RETE ='S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' WHEN PATRBF.RETE = 'S' THEN 'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito]    Script Date: 09/02/2022 11:33:09 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- Stored procedure

---- =============================================
---- Authors:		<Alessandro Tringali, Valerio Colaianni>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
---- [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito] 'F','GGGNNA41E59G687E'
--ALTER procedure [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;



----QUERY PER INTERMEDIARIO
--SELECT 
--RETE,
--COD_FISCALE,
--INTERMEDIARIO,
--CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
--     ELSE 2 END AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,

--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END AS RISKCLASS,
--CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
--FROM
--[C6Martperiodico].PATRIMONIO_BF PATRBF
-----Per calcolare la somma algebrica dei cc 
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MARTPERIODICO].pATRIMONIO_BF 
--where id_Area in ('Cc','Self')
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine calcolo somma cc
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
--					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
----INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END,
--CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--'Altri Istituti' AS INTERMEDIARIO,
----PATRTERZI.INTERMEDIARIO,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
----PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
--FROM
--[C6Martperiodico].PATRIMONIO_BF PATRBF
----per fare la somma algebrica dei cc
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MARTPERIODICO].pATRIMONIO_BF 
--where id_Area in ('Cc','Self')
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine somma cc
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
--					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from 
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito_PatrimonioNonRapp]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito] 'F','GGGNNA41E59G687E'
CREATE procedure [C6MartPeriodico].[PL_D2_S167DistribuzioneRischioCredito_PatrimonioNonRapp]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
into #rapp 
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE

Select top (1) CTV_notCovered from #rapp

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti]  'F','FF@7181'
CREATE procedure [C6MartPeriodico].[PL_D2_S168TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								--SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION, --modifica apportata il 24/04 per concentrazione % errata secondo Levi
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLESSIVO)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S168TabellaEmittenti_BK_20151222]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6Mart].[PL_D_S168TabellaEmittenti]  'F','MRNMNG53P46H294F'
CREATE procedure [C6MartPeriodico].[PL_D2_S168TabellaEmittenti_BK_20151222]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Stored procedure

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] 'S','BLDMCL41L09L378V'
CREATE procedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc


	-- 16/7/2018
	into #appo
	-- fine 16/7/2018

    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then  'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		  WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine



	--------------------------------------------- 16/7/2018

	declare @contaPatrimoni smallint
	select @contaPatrimoni = count(*) from #appo where ordine = 1

	if @contaPatrimoni = 0 --manca il patrimonio casa
	   begin
	   
	   select * from (
	   select top 1
			  #appo.RETE,
		      #appo.COD_FISCALE,
		      case when  #appo.RETE= 'F'  then 'Patrimonio Fideuram' 
                   WHEN  #appo.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
				   when  #appo.RETE= 'W' then 'Patrimonio IW Private Inv.'
			end as INSTITUTENAME,
			0 as CTV,
			#appo.CODICEPROFILO,
			#appo.VARMAX,
			0 AS VAR,
			'n.c.' AS VARSTRING,
			0 as RISKCLASS,
			'n.c.'  as RISKCLASSSTRING,
			#appo.COVERAGE,
			NULL AS COVERAGESTRING,
			#appo.RISKCLASSMAX,
			0.0 as PERCENTAGE,
			1 as ordine,
			0 as Ully_perc

			from #appo


			union

		select * from #appo) risultato order by ordine;

     end

	else

	   select * from #appo order by ordine;

	
	------------------------------------------ fine 16/7/2018
--6,7,9,13 della appo
--case 
--	when var <= varmax then '1'
--	when var > varmax then '0'
--	else -1
--end as rischio_mercato,
--case
--	when riskclass is null then '1'
--	when riskclass <= convert(int,RISKCLASSMAX) then '1'
--	when riskclass > convert(int,RISKCLASSMAX) then '0'
--	else -1
--end as rischio_credito


END














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito]    Script Date: 09/02/2022 11:34:55 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO






---- Stored procedure

---- =============================================
---- Author:		<Alessandro Tringali>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
-- --[C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] 'S','BLDMCL41L09L378V'
--ALTER procedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;
 
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    PATRBF.INSTITUTENAME,
--    CTV,
--    M.PROFILO_ASS AS CODICEPROFILO,
--    CR.MAX_VAR AS  VARMAX,
--    RISK_AGG.VAR_PERC_PTF AS VAR ,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END  AS VARSTRING,
--    RISK_AGG.CREDITRISK  RISKCLASS,
--        	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END AS  RISKCLASSSTRING,
--    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
----V La copertura viene valorizzata con un valore da 0 da 100
--  --  	CASE 
--	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
----		ELSE 
--NULL 
----	END 
--AS COVERAGESTRING,
--    M.RISKCLASS AS RISKCLASSMAX,
--    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
--    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
--    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
--		 THEN 1
--	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
--    END)		
--    *100 ,2)AS PERCENTAGE,
--	--V
--	ORDINE,
--	RISK_AGG.Ully_perc


--	-- 16/7/2018
--	into #appo
--	-- fine 16/7/2018

--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV,
--	--V
--	1 as ORDINE,
--	RISK_AGG.Ully_perc
--    from
--    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and PATRBF.rete= RISK_AGG.rete    
--    and PATRBF.cod_fiscale = @codiceFiscale
--    and PATRBF.rete= @rete
--    and PATRBF.CTV > 0
--    and
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--	RISK_AGG.Ully_perc,   
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    'Patrimonio altri Istituti' AS INSTITUTENAME,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV,
--	--V
--	2 as ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
--    where 
--    1=1
--    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
--    and TERZI.rete= RISK_AGG.rete 
--    and TERZI.cod_fiscale =@codiceFiscale
--    and TERZI.rete=@rete
--    and TERZI.CTV > 0
--    and
--    (
--      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )    
--    GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    RISK_AGG.Ully_perc

--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    AND 
--    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
--          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
--          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
--    )
--    UNION ALL
    
--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    'Patrimonio Complessivo' AS INSTITUTENAME,
--    SUM(CTV),
--    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
--    MAX(CR.MAX_VAR) AS  VARMAX,
--    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
--    MAX(	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS VARSTRING,
--    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
--    MAX(
--         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END )
--      AS  RISKCLASSSTRING,
--    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
--    MAX(   	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE NULL 
--	END) AS COVERAGESTRING,
--    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
--	MAX(M.RISKCLASS) AS RISKCLASSMAX,
--    100 AS PERCENTAGE,
--	--V
--	3 AS ORDINE,
--	RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    c6martperiodico.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and PATRBF.CTV > 0    
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE

--    UNION

--    SELECT 
--    TERZI.RETE,
--    TERZI.COD_FISCALE,
--    SUM(ROUND(TERZI.CTV,2)) AS CTV
--    FROM
--    c6martperiodico.PATRIMONIO_TERZI  TERZI
--        where 
--    1=1 
--    and cod_fiscale =@codiceFiscale
--    and rete=@rete
--	and TERZI.CTV > 0       
--     GROUP BY 
--    TERZI.RETE,
--    TERZI.COD_FISCALE

--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--      M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--        where  
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
--    )
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    RISK_AGG.Ully_perc

--	--V
--	order by ordine



--	--------------------------------------------- 16/7/2018

--	declare @contaPatrimoni smallint
--	select @contaPatrimoni = count(*) from #appo where ordine = 1

--	if @contaPatrimoni = 0 --manca il patrimonio casa
--	   begin
	   
--	   select * from (
--	   select top 1
--			  #appo.RETE,
--		      #appo.COD_FISCALE,
--		      case when  #appo.RETE= 'F'  then 'Patrimonio Fideuram' 
--                   WHEN  #appo.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
--			end as INSTITUTENAME,
--			0 as CTV,
--			#appo.CODICEPROFILO,
--			#appo.VARMAX,
--			0 AS VAR,
--			'n.c.' AS VARSTRING,
--			0 as RISKCLASS,
--			'n.c.'  as RISKCLASSSTRING,
--			#appo.COVERAGE,
--			NULL AS COVERAGESTRING,
--			#appo.RISKCLASSMAX,
--			0.0 as PERCENTAGE,
--			1 as ordine,
--			0 as Ully_perc

--			from #appo


--			union

--		select * from #appo) risultato order by ordine;

--     end

--	else

--	   select * from #appo order by ordine;

	
--	------------------------------------------ fine 16/7/2018
----6,7,9,13 della appo
----case 
----	when var <= varmax then '1'
----	when var > varmax then '0'
----	else -1
----end as rischio_mercato,
----case
----	when riskclass is null then '1'
----	when riskclass <= convert(int,RISKCLASSMAX) then '1'
----	when riskclass > convert(int,RISKCLASSMAX) then '0'
----	else -1
----end as rischio_credito


--END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito_20180716]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito] 'F','GZZSLD52E20G869L'
CREATE procedure [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito_20180716]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] 'W','MLAMRA61P03G337F'
CREATE   procedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] --'S','BCCNDR69P21A462P'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int
	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int
	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete
    
    declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  and id_area not in ('LIGHT', 'VOID')
				  -- modifica del 5/2/2019 per escludere i record del patr non rappresentabile (commentata ed eventualmente utilizzata ad hoc)
				  --and (rend_non_rappr = 0  or (id_area = 'Liq' and rend_non_rappr = 1))
				  --fine modifica del 5/2/2019
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0

	------------------------    MIFID2 - MAGGIO 2018

	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim = c6martperiodico.getTrimestre(getDate(),0) 
    declare @maxComplessita as int
	
	
	 if @CodiceFiscale like '%FF@%'  
	   
		   select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)		
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA
	else
			select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codfis= @CodiceFiscale	
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA
			

SELECT 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (6,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

-- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
beneficio as diversificazione,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then null
--when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
--END AS diversificazione,

-- fine modifica del 19/6/2018 


CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' when k.rete = 'S' then 'Sanpaolo Invest' else 'IW Private Investments' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
isnull(b.max_var, 0) as var_profilo,

------------------------    MIFID2 - MAGGIO 2018
case @maxComplessita
			   when 0 then 'Non complesso'
	when 1 then 'Bassa'
	when 2 then 'Medio bassa'
	when 3 then 'Medio alta'
	when 4 then 'Alta'
	else 'n.c.'
		end
		as complessita,
-------------------------  FINE MIFID2 - MAGGIO 2018

--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine


END 










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione]    Script Date: 09/02/2022 11:37:02 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO





---- [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] 's','BRNGDI72S69L219Y'
--ALTER procedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCC as int
--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int
--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete
    
--    declare @ctvbf as decimal(12,2)  
--	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0
--				  and id_area not in ('LIGHT', 'VOID')
--				  -- modifica del 5/2/2019 per escludere i record del patr non rappresentabile (commentata ed eventualmente utilizzata ad hoc)
--				  --and (rend_non_rappr = 0  or (id_area = 'Liq' and rend_non_rappr = 1))
--				  --fine modifica del 5/2/2019
				  
--    declare @ctvterzi as decimal (12,2)  
--	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0

--	------------------------    MIFID2 - MAGGIO 2018

--	DECLARE @DataFineTrim VARCHAR(8)  
--    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0) 
--    declare @maxComplessita as int
	
	
--	if @CodiceFiscale like '%FF@%'  
	        
--			select @maxComplessita = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			  --   codfis like 
--					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					--   ELSE @CodiceFiscale
--					--   END
--				 --and codman = 
--					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					--   ELSE ''
--					--   END
--				 codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--				 and rete= @Rete 
--				 and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10;
			
--	 else 
			
--			select @maxComplessita = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			  --   codfis like 
--					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					--   ELSE @CodiceFiscale
--					--   END
--				 --and codman = 
--					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					--   ELSE ''
--					--   END
--				 codfis= @CodiceFiscale
--				 and rete= @Rete 
--				 and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10;
			

--SELECT 
--K.COD_FISCALE,
--K.RETE,
--CASE 
--	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
--	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
--	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
--	else 0
--END AS CTV_AGGREG,	
--K.CREDITRISK,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,
--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,

---- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
--beneficio as diversificazione,
----case 
----when cod_Aggreg = 'COMPLESSIVO' then null
----when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
----when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
----END AS diversificazione,

---- fine modifica del 19/6/2018 


--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,
--isnull(b.max_var, 0) as var_profilo,

--------------------------    MIFID2 - MAGGIO 2018
--case @maxComplessita
--        	when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-'
--		end
--		as complessita,
---------------------------  FINE MIFID2 - MAGGIO 2018

----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine

 
--FROM
--C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--	left outer join
--C6Martperiodico.CODIFICA_RISCHIO b on
--A.PROFILO_ASS=B.PROFILO
--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY ordine


--END 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione_NoLight]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] 's','ff@G81D1'
CREATE procedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione_NoLight]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int
	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int
	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete
    
    declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  and id_area not in ('LIGHT', 'VOID')
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0

	------------------------    MIFID2 - MAGGIO 2018

	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0) 
    declare @maxComplessita as int
	
	
	if @CodiceFiscale like '%FF@%'  
	        
			select @maxComplessita = MAXCOMPL from [C6StagingPeriodico].[WSEIAN2]
			where 
			  --   codfis like 
					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
					--   ELSE @CodiceFiscale
					--   END
				 --and codman = 
					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
					--   ELSE ''
					--   END
				 codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
				 and rete= @Rete 
				 and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				-- and compl_base <> 10;
			
	 else 
			
					select @maxComplessita = MAXCOMPL from [C6StagingPeriodico].[WSEIAN2]
			where 
			  --   codfis like 
					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
					--   ELSE @CodiceFiscale
					--   END
				 --and codman = 
					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
					--   ELSE ''
					--   END
				 codfis= @CodiceFiscale
				 and rete= @Rete 
				 and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				-- and compl_base <> 10;
			

SELECT 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,

-- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
beneficio as diversificazione,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then null
--when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
--END AS diversificazione,

-- fine modifica del 19/6/2018 


CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' when k.rete = 'S' then 'Sanpaolo Invest' else 'IW Private Investments' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
isnull(b.max_var, 0) as var_profilo,

------------------------    MIFID2 - MAGGIO 2018
case @maxComplessita
        	when 0 then '-'
			when 1 then 'Non complessi'
			when 2 then 'Bassa'
			when 3 then 'Medio-bassa'
			when 4 then 'Medio-alta'
			when 5 then 'Alta'
			else '-'
		end
		as complessita,
-------------------------  FINE MIFID2 - MAGGIO 2018

--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine


END 











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione_NoLight]    Script Date: 09/02/2022 11:39:04 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



---- [C6MartPeriodico].[PL_D2_S170RischioDiversificazione] 's','ff@G81D1'
--ALTER procedure [C6MartPeriodico].[PL_D2_S170RischioDiversificazione_NoLight]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCC as int
--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int
--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete
    
--    declare @ctvbf as decimal(12,2)  
--	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0
--				  and id_area not in ('LIGHT', 'VOID')
				  
--    declare @ctvterzi as decimal (12,2)  
--	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
--			where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--				  and CTV > 0

--	------------------------    MIFID2 - MAGGIO 2018

--	DECLARE @DataFineTrim VARCHAR(8)  
--    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0) 
--    declare @maxComplessita as int
	
	
--	if @CodiceFiscale like '%FF@%'  
	        
--			select @maxComplessita = max(compl_base) from [C6StagingPeriodico].[WSEIAD]
--			where 
--			  --   codfis like 
--					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					--   ELSE @CodiceFiscale
--					--   END
--				 --and codman = 
--					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					--   ELSE ''
--					--   END
--				 codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--				 and rete= @Rete 
--				 and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10;
			
--	 else 
			
--			select @maxComplessita = max(compl_base) from [C6StagingPeriodico].[WSEIAD]
--			where 
--			  --   codfis like 
--					--   CASE when @CodiceFiscale like '%FF@%'THEN '%%'
--					--   ELSE @CodiceFiscale
--					--   END
--				 --and codman = 
--					--   CASE when @CodiceFiscale like '%FF@%' THEN substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)
--					--   ELSE ''
--					--   END
--				 codfis= @CodiceFiscale
--				 and rete= @Rete 
--				 and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				 and compl_base <> 10;
			

--SELECT 
--K.COD_FISCALE,
--K.RETE,
--CASE 
--	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
--	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
--	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
--	else 0
--END AS CTV_AGGREG,	
--K.CREDITRISK,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,
--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,

---- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
--beneficio as diversificazione,
----case 
----when cod_Aggreg = 'COMPLESSIVO' then null
----when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
----when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
----END AS diversificazione,

---- fine modifica del 19/6/2018 


--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,
--isnull(b.max_var, 0) as var_profilo,

--------------------------    MIFID2 - MAGGIO 2018
--case @maxComplessita
--        	when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-'
--		end
--		as complessita,
---------------------------  FINE MIFID2 - MAGGIO 2018

----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine

 
--FROM
--C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--	left outer join
--C6Martperiodico.CODIFICA_RISCHIO b on
--A.PROFILO_ASS=B.PROFILO
--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY ordine


--END 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		
-- Create date: 30/08/2013
-- Description: uguale a S76 
-- =============================================
--[C6MartPeriodico].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BLNMTN60L53L736R'
CREATE procedure [C6MartPeriodico].[PL_D2_S171PatrimonioNonRappresentabileAssettClass] 
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(30)
	IF @RETE = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario,
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario,
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO ,
		--savingmap - Novembre 2019
		patrbf.tipo_prodotto
	ORDER BY CONTROVALORE DESC
  
END









--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 09/02/2022 11:46:31 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		
---- Create date: 30/08/2013
---- Description: uguale a S76 
---- =============================================
----[C6MartPeriodico].[PL_D2_S171PatrimonioNonRappresentabileAssettClass]  'F', 'BLNMTN60L53L736R'
--ALTER procedure [C6MartPeriodico].[PL_D2_S171PatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
--		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
----INIZIO INTERVENTI OMNIA		
--        AND PATRBF.CTV <> 0.00
----INIZIO INTERVENTI OMNIA		

--	UNION ALL

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		SUM(ASUL.CTV) as Controvalore,
--		MAX(PATRBF.CTV) as controvalore_contratto,
--		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
--		ON PATRBF.RETE = ASUL.RETE
--		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
--		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--        GROUP BY 
--        PATRBF.ID_CONTRATTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO ,
--		--savingmap - Novembre 2019
--		patrbf.tipo_prodotto
--	ORDER BY CONTROVALORE DESC
  
--END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_D3_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Colaneri>
-- Create date: <05/04/2018>
-- Description:	<Modifiche scheda S151 per MIFID 2>
-- =============================================
--[C6MartPeriodico].[PL_D3_S151ProfiloDiRischio] 'F', 'DVTMRA58B09F839W'
CREATE   procedure [C6MartPeriodico].[PL_D3_S151ProfiloDiRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenzaProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	DECLARE @descrizioneProfilo VARCHAR(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza VARCHAR(100)
	DECLARE @riserva decimal(13,2)
	DECLARE @inv_l_p decimal(5,2)


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		--DA DEFINIRE:
		@dataScadenzaProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
		case m.experience
				when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
			else '-'
		end
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

		-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	declare @codman varchar(6)
	set @codman = ''

	if upper(left(@CodiceFiscale,3)) = 'FF@'
	    begin
			set @codman = substring(@CodiceFiscale,4,len(@CodiceFiscale)-3)
			select @dtfinval = dtfinval,@riserva=IMP_RISERVA,@inv_l_p=PERC_ILP from C6StagingPeriodico.WSEIAN2
			where codman = @codman and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice mandato'
		end
	else
		begin
			select @dtfinval = dtfinval,@riserva=IMP_RISERVA,@inv_l_p=PERC_ILP  from C6StagingPeriodico.WSEIAN2
			where codfis = @CodiceFiscale and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice fiscale'
		end
		--
		
		if @dtfinval <> 0 and @dtfinval is not null and ltrim(rtrim(@dtfinval)) <> ''
			set @dataScadenzaProfilo = CONVERT(datetime, CONVERT(varchar,CONVERT(int,@dtfinval)), 0)
		else
			set @dataScadenzaProfilo = null

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (convert(datetime, @dataScadenzaProfilo)) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as descrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as descrizioneEsperienza,
		@riserva as Riserva,
		@inv_l_p as Inv_L_P

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_FD10PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

END 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD181PreferenzeESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'BCCNDR69P21A462P'
CREATE    procedure [C6MartPeriodico].[PL_FD181PreferenzeESG]--'F','BBLCMS66M11F960M'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)

SELECT esg.[rete]
      ,[cod_fiscale]
      --,case 
		--when @SCADUTO_PARZIALE='P' then 0 else [Preferenza_esg_cliente]
		--end as
	  ,[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=25 and isnull(ind.SOGLIAESG,'0.00')<50 then 'Almeno pari al 25%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=50 and isnull(ind.SOGLIAESG,'0.00')<75 then 'Almeno pari al 50%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=75 then 'Almeno pari al 75%' else '-' end as Pref_Sost
 	,case when cle.U_PREFSOST='S' then 'Y' 
		when cle.U_PREFSOST='N' then 'N' else 'N' end as U_PREFSOST --Ulteriori Preferenze di Sostenibilità							   ----decommenta per ESG 2024
	,case when cle.FLAGSFDR='S' then replace(cast(cle.SFDR_PERC as varchar(12)),'.00','')+'%' else '-' end as SFDR_PERC																   ----decommenta per ESG 2024
	,case when cle.FLAGTAXO='S' then replace(cast(cle.TAXO_PERC as varchar(12)),'.00','')+'%' else '-' end as TAXO_PERC																   ----decommenta per ESG 2024
	,case when isnull(cle.PAI_A,'')='' then '-' else cle.PAI_A end as PAI_A
	,case when isnull(cle.PAI_S,'')='' then '-' else cle.PAI_S end as PAI_S
	,case when ESG_E='Y' then cle.PERCAMB_OK ELSE NULL END AS E_PERC_OK--,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS E_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_S='Y' then cle.PERCSOC_OK ELSE NULL END AS S_PERC_OK--,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS S_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_G='Y' then cle.PERCGOV_OK ELSE NULL END AS G_PERC_OK--,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS G_PERC_OK				   ----decommenta per ESG 2024
   FROM [C6StampeCentralizzate].[C6MartPeriodico].[BrsClienteESG] esg
   left join C6MartPeriodico.wseian2 ind
  on ind.rete=esg.rete and ind.CODFIS=esg.cod_fiscale
    left join C6MartPeriodico.W6CLIESG cle
  on ind.rete=cle.rete and ind.CODFIS=cle.CODFIS
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale
	--AND ISNULL(@SCADUTO_PARZIALE,'') <>'P' non valida x i direct 
	
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD181PreferenzeESG_BKP_20250305_PreESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'BCCNDR69P21A462P'
CREATE    procedure [C6MartPeriodico].[PL_FD181PreferenzeESG_BKP_20250305_PreESG2024]--'S','BCCNDR69P21A462P'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)

SELECT esg.[rete]
      ,[cod_fiscale]
      ,case 
	   when @SCADUTO_PARZIALE='P' then 0 else [Preferenza_esg_cliente]
	   end as [Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when isnull(ind.SOGLIAESG,'0.00')>=25 and isnull(ind.SOGLIAESG,'0.00')<50 then 'Almeno pari al 25%'
			when isnull(ind.SOGLIAESG,'0.00')>=50 and isnull(ind.SOGLIAESG,'0.00')<75 then 'Almeno pari al 50%'
			when isnull(ind.SOGLIAESG,'0.00')>=75 then 'Almeno pari al 75%' else 'n.d.' end as Pref_Sost
   FROM [C6StampeCentralizzate].[C6MartPeriodico].[BrsClienteESG] esg
   left join C6MartPeriodico.wseian2 ind
  on ind.rete=esg.rete and ind.CODFIS=esg.cod_fiscale
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD182BISDettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--se nella generazione del report da errore molto probabilmente ci sta una chiaveclientePB diversa sulla appocontratti dalla vinfocliente
--cambiala sull'appo contratti e contrattipretrimestrale





-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG] 'F', '98196710176'
CREATE procedure [C6MartPeriodico].[PL_FD182BISDettaglioProdottiESG] --'S','DGSMHL70H08Z404F'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

---
	SELECT distinct
		[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
	  into #temp
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 	= @rete
  AND	[CodiceFiscale] = @codicefiscale
  order by ordinamento
	
	declare @totale_risorse_finanziarie decimal(38,3)
	declare @totale_patrimonio decimal(38,3)
	declare @partite_viaggianti decimal(38,3)

	 select @totale_risorse_finanziarie = SUM(controvaloreAttuale) from #temp where needarea in ('Ext','Inv','Pre','Ris','Liq','Na')
 having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

  select @totale_patrimonio = SUM(controvaloreAttuale) from #temp 
  having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

  select @partite_viaggianti= PartiteViaggiantiInv from wh.Maledetti
 where i_Rete=@Rete and i_CodiceFiscale=@CodiceFiscale

  set @totale_patrimonio=@totale_patrimonio + @partite_viaggianti


		 
 select 
	case when @totale_risorse_finanziarie=@totale_patrimonio then 'Tot_P' else 'Tot_F' end as needarea,
	case when @totale_risorse_finanziarie=@totale_patrimonio then 'TOTALE PATRIMONIO' else 'TOTALE RISORSE FINANZIARIE' end as needareades,
	'100' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	SUM(controvaloreattuale) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
from #temp 
where needarea in ('Ext','Inv','Pre','Ris','Liq','Na')
having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

 union all

 select 
	'Tot_F' as needarea,
	'' as needareades,
	'101' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'C/C a saldo negativo' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	SUM(controvaloreattuale) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 where needarea in ('CC')
 having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000
 
 union all
 
 select 
	'Tot_F' as needarea,
	'' as needareades,
	'102' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'Operazioni in corso' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	PartiteViaggiantiInv as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from wh.Maledetti
 where i_Rete=@Rete and i_CodiceFiscale=@CodiceFiscale
 and PartiteViaggiantiInv<>'0.000'

 
 union all 
 
 select top (1)
	'Tot_P' as needarea,
	'TOTALE PATRIMONIO' as needareades,
	'103' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	@totale_patrimonio as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 where @totale_risorse_finanziarie<>@totale_patrimonio
 --having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000 and SUM(controvaloreAttuale) <> @totale_risorse_finanziarie


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD182DettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






















-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S182DettaglioProdottiESG] 'F', 'GLLGZN62T06H501I'
CREATE    procedure [C6MartPeriodico].[PL_FD182DettaglioProdottiESG] --'F','PCNLVI82A63I726B'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT


CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Rob'--when robo.isProgettoRobo='S' then 'Rob'
		else 'ASF'
	END AS needarea,
	CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base'
		--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		--WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		--ELSE AREA.NOME_AREA 
	END AS needareades,
CASE 
	--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	--ELSE AREA.ORDINAMENTO 
	--	WHEN robo.isProgettoRobo='S' THEN  1
	--ELSE 2
	WHEN ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 1
	ELSE 2
END 
 AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	when isnull(trim(PATRBF.NOME_PROGETTO),'') not like '%Direct EVO%' then 'Default'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
	
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV ) OVER (PARTITION BY CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base' end) AS somma_controval_needarea,

	SUM(PATRBF.CTV ) OVER (PARTITION BY CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base' end)--, PATRBF.ordinamento_progetto) 	
	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY --robo.isProgettoRobo, 
	PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
--		THEN 'n.d.'
--	ELSE NULL
--END	AS versato_need_progString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
--	ELSE NULL
--END	AS MinusPlusValenza_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
--		THEN 'n.d.'
--	ELSE NULL
--END	AS MinusPlusValenza_need_progString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--	ELSE NULL
--END	AS somma_var_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--	ELSE NULL
--END	AS somma_copertura_need_prog,
--RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
--CASE 
--	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
--		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--	ELSE NULL 
--END AS var_needareaString,
--CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
--	CASE 
--	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
--		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--	ELSE '' 
--END AS copertura_needareaString,
--RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
--CASE 
--	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	ELSE NULL 
--END AS var_need_progString,
--RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

	case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,

PATRBF.CTV AS Controvalore, 
--PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
--CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
--CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

--case when (patrbf.tipo_prodotto ='CC') then 0.00 
--else RISCHIO_PROD.VAR_PERC_PTF
--end AS VaRprodotto, 

--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
--     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--ELSE NULL END as varProdottoString,

--case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--else RISCHIO_PROD.Copertura 
--end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--PARTVIA_DISINV AS partitaViaggiante,
--CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
--RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,


	--RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto
	--,CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_E_PROD_CLI,----decommenta per ESG 2024
	--CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_S_PROD_CLI,----decommenta per ESG 2024
	--CASE
 --          WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
 --          ELSE 'N' end as ESG_G_PROD_CLI	----decommenta per ESG 2024
 	,case when isnull(cat.esg_e_prod_cli,'N')='Y' then 'S' else 'N' end as esg_e_prod_cli
	,case when isnull(cat.esg_s_prod_cli,'N')='Y' then 'S' else 'N' end as esg_s_prod_cli
	,case when isnull(cat.esg_g_prod_cli,'N')='Y' then 'S' else 'N' end as esg_g_prod_cli
	--> rimettere dopo else N


FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
		(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
--LEFT JOIN 
--C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
--						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
--				
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--
--
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--		
left join [C6StagingPeriodico].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
	left join C6MartPeriodico.W6CATESG cat
	on PATRBF.cod_prodotto = cat.PRODOTTO_ID
	AND PATRBF.rete = cat.rete
	AND PATRBF.COD_FISCALE =cat.codfis
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
     AND PATRBF.CTV <>0
	 --and AREA.ORDINAMENTO in (1,2,3,4,5,8,9) --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi
ORDER BY 
CASE 
	
	WHEN ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 1
	ELSE 2
	
END ,
PATRBF.CTV DESC
 


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD185UCaratteristicheESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















																	  
CREATE         procedure [C6MartPeriodico].[PL_FD185UCaratteristicheESG]-- 'F','BBLCMS66M11F960M'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Rob'--when robo.isProgettoRobo='S' then 'Rob'
		else 'ASF'
	END AS needarea,
	CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base'
		--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		--WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		--ELSE AREA.NOME_AREA 
	END AS needareades,
CASE 
	--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	--ELSE AREA.ORDINAMENTO 
	--	WHEN robo.isProgettoRobo='S' THEN  1
	--ELSE 2
	WHEN ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 1
	ELSE 2
END 
 AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	when isnull(trim(PATRBF.NOME_PROGETTO),'') not like '%Direct EVO%' then 'Default'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
	
END AS nome_progetto,
SUM(PATRBF.CTV ) OVER (PARTITION BY CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base' end)
	
		AS somma_controval_need_prog,
		

	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,
	
--CASE 
--   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 
--      THEN '-' 
--   ELSE 
--      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',')-- + '%'
--END AS PERC_INVESTIMENTO_SFDR,

--CASE 
--   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 											  ----decommenta per ESG 2024
--      THEN '-' 																					  ----decommenta per ESG 2024
--   ELSE 																							  ----decommenta per ESG 2024
--      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',')-- + '%'					  ----decommenta per ESG 2024
--END AS PERC_INVESTIMENTO_SFDR_AMB,																  ----decommenta per ESG 2024
--																									  --decommenta per ESG 2024
--																									  --decommenta per ESG 2024
--CASE 																								  ----decommenta per ESG 2024
--   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 											  ----decommenta per ESG 2024
--      THEN '-' 																					  ----decommenta per ESG 2024
--   ELSE 																							  ----decommenta per ESG 2024
--      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',')-- + '%'					  ----decommenta per ESG 2024
--END AS PERC_INVESTIMENTO_SFDR_SOC,																  ----decommenta per ESG 2024
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_SFDR,

CASE 
   WHEN isnull(esg.PERC_INVEST_SFDR_MIN_SUST_E,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_E), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_AMB,																  ----decommenta per ESG 2024
																								  --decommenta per ESG 202																					  --decommenta per ESG 2024
CASE 																								  ----decommenta per ESG 2024
   WHEN isnull(esg.PERC_INVEST_SFDR_MIN_SUST_S,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_S), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_SOC,		
	CASE 
   WHEN ISNULL(esg.PERC_INVESTIMENTO_TAXONOMY, 0.00) = 0.00 
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_TAXONOMY), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_TAXONOMY,

	isnull(esg.label_PAI_A,'-') as label_PAI_A,
	isnull(esg.Label_PAI_S,'-') as label_PAI_S,
	isnull(esg.Label_U_INFO_ESG,'-') as label_U_INFO_ESG,
	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV ) OVER (PARTITION BY CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base' end)
	 	AS somma_controval_needarea
	--SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
left join [C6StagingPeriodico].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	--AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

ORDER BY 
	CASE 
	--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	--ELSE AREA.ORDINAMENTO 
	--	WHEN robo.isProgettoRobo='S' THEN  1
	--ELSE 2
	WHEN ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 1
	ELSE 2
	
END ,PATRBF.CTV DESC				 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD187SfdrTaxESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















--select * from wh.Maledetti


																	  
CREATE procedure [C6MartPeriodico].[PL_FD187SfdrTaxESG] --'F','00545400483'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6MartPeriodico.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale

declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6MartPeriodico].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale

if(@pref_esg='1' AND @U_PREFSOST='S')
begin
 select
 1 as ID,
	'Prodotti sostenibili SFDR' as Descrizione,
	replace(cast(cli.SFDR_PERCT as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
 select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast(cli.SFDR_PERC_OK as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,case when cli.FLAGSFDR='N' then 'Y' 
		else 'N' end as isNA
	from [C6MartPeriodico].[W6CliESG] cli
	WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 3 as ID,
	'Prodotti non sostenibili' as Descrizione,
 	replace(cast((100-cli.SFDR_PERCT)as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'SFDR' as Tabella
		,'N' as isNA
     from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 5 as ID,
	'Prodotti ecosostenibili Taxonomy' as Descrizione,
	replace(cast(cli.TAXO_PERCT as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast (cli.TAXO_PERC_OK as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,case when cli.FLAGTAXO='N' then 'Y' 
		else 'N' end as isNA
	 from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 7 as ID,
	'Prodotti non ecosostenibili' as Descrizione,
	replace(cast((100-cli.TAXO_PERCT) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from C6MartPeriodico.[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
end
															 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD188PaiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













--select * from wh.Maledetti


																	  
CREATE procedure [C6MartPeriodico].[PL_FD188PaiESG] --'F','00545400483'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)


AS
BEGIN

declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6MartPeriodico.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale

declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6MartPeriodico].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale

if(@pref_esg='1' and @U_PREFSOST='S')
begin	

select 1 as ID,
	'Prodotti che considerano almeno un PAI ambientale' as Descrizione,
	replace(cast(cli.PAIA_PERCT as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(cli.PAIA_PERC_OK as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,case when isnull(cli.PAI_A,'')='' then 'Y' 
		else 'N' end as isNA 
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 3 as ID,
	'Prodotti che non considerano PAI ambientali' as Descrizione,
 	replace(cast((100-cli.PAIA_PERCT) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	union
select 5 as ID,
	'Prodotti che considerano almeno un PAI sociale' as Descrizione,
	replace(cast(cli.PAIS_PERCT as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(cli.PAIS_PERC_OK as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,case when isnull(cli.PAI_S,'')='' then 'Y' 
		else 'N' end as isNA 
from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 7 as ID,
	'Prodotti che non considerano PAI sociali' as Descrizione,
	replace(cast((100-cli.PAIS_PERCT) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA


	end														 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD190BisPatrimonioFinanziario_Modello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




create   procedure [C6MartPeriodico].[PL_FD190BisPatrimonioFinanziario_Modello]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	declare @mia_chiaveptfmod int
SELECT
	  @mia_chiaveptfmod=ChiavePtfMod
      
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_fd190PatrimonioFinanziario_PTFRibilanciato]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

  select * from C6StagingPeriodico.RP_DistribuzionePtfModello_Tattici_MacroAssetClass where chiavePtfMod=@mia_chiaveptfmod

END 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD190PatrimonioFinanziario_PTFRibilanciato]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE     procedure [C6MartPeriodico].[PL_FD190PatrimonioFinanziario_PTFRibilanciato] --'F','VGNMRA68C64F205S'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
	  ,chiaveptfmod
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
	  ,percentuale_modello
	  ,var_prog
	  into #ptf
 FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_fd190PatrimonioFinanziario_PTFRibilanciato]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

  --aggiunta

declare @mia_chiaveptfmod int
SELECT
	  @mia_chiaveptfmod=ChiavePtfMod
      
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_fd190PatrimonioFinanziario_PTFRibilanciato]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

  select * 
  into #ptf_mod
  from C6StagingPeriodico.RP_DistribuzionePtfModello_Tattici_MacroAssetClass where chiavePtfMod=@mia_chiaveptfmod

  select Banca,Ordinamento,AssetClassId,AssetClassName,ChiavePtfMod,Controvalore,Percentuale,Totale,Percentuale_Modello*100 as percentuale_modello,var_prog as var_prog  
  into #tot
  from #ptf
  union all
  select 'Fideuram',
  ordinamento,
  asset,
  descrizione,
  chiavePtfMod,
  NULL,
  0.00000,
  NULL,
  percentuale*100,
  NULL as var_prog from #ptf_mod where asset not in (select ASSETCLASSID from #ptf) 
  order by Ordinamento

	DECLARE @Totale [decimal](19, 5);
	DECLARE @var_prog [decimal](19, 5);

	SELECT @Totale = Totale, @var_prog = var_prog
FROM #ptf;

  update #tot 
  set Totale=@Totale, var_prog=@var_prog
  

  select * from #tot

END 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD200BisDistribuzioneAssetClass_Modello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




create   procedure [C6MartPeriodico].[PL_FD200BisDistribuzioneAssetClass_Modello]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	declare @mia_chiaveptfmod int
SELECT
	  @mia_chiaveptfmod=ChiavePtfMod
      
  FROM c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

  select * from C6StagingPeriodico.RP_DistribuzionePtfModello_Tattici_AssetClass where chiavePtfMod=@mia_chiaveptfmod

END 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD25Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_FD25Anagrafica] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT [Cliente]
      ,[DatadiNascita]
      ,[ETA]
      ,[Professione]
      ,[StatoCivile]
      ,[NucleoFamiliare]
      ,[Residenza]
      ,[CodiceFiscale]
      ,[CodicePB]
      ,[CodiceRete]
      ,[CodiceContratto]
      ,[StatoContratto]
      ,[DataSottoscrizione]
      ,[DataPerfezionamento]
      ,[FasciaCPP]
      ,[IndirizzoEmail]
      ,[ProduzioneReport]
      ,[Indirizzo]
      ,[CAP]
      ,[Citta]
      ,[Provincia]
      ,[Nazione]
      ,[PRESSO]
  FROM  [C6MartPeriodico].[TB_S25Anagrafica]
  WHERE	[CodiceRete] 	= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
		 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD43BISDettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

-- [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF] 'F', 'SPNTTR67T20F205D'
CREATE          procedure [C6MartPeriodico].[PL_FD43BISDettaglioProdottiBF] --'F','MLNMSM71R16L682K'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

select * 
into #patr_bf
from C6MartPeriodico.PATRIMONIO_BF

     WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale

update #patr_bf
set NOME_PROGETTO='Default'
where isnull(trim(NOME_PROGETTO),'') not like '%Direct EVO%'

SELECT


CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Rob'--when robo.isProgettoRobo='S' then 'Rob'
		else 'ASF'
	END AS needarea,
	CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base'
		--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		--WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		--ELSE AREA.NOME_AREA 
	END AS needareades,
CASE 
	--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	--ELSE AREA.ORDINAMENTO 
	--	WHEN robo.isProgettoRobo='S' THEN  1
	--ELSE 2
	WHEN ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 1
	ELSE 2
END 
 AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	when isnull(trim(PATRBF.NOME_PROGETTO),'') not like '%Direct EVO%' then 'Default'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
	
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,


--Bido
--SUM(PATRBF.CTV ) OVER (PARTITION BY PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) AS somma_controval_needarea,
SUM(PATRBF.CTV ) OVER (PARTITION BY PATRBF.NOME_PROGETTO) AS somma_controval_needarea,


--SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) AS versato_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY PATRBF.NOME_PROGETTO) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY robo.isProgettoRobo) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY robo.isProgettoRobo) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN 
	--SUM(PATRBF.CTV) OVER (PARTITION BY --robo.isProgettoRobo, 
	--PATRBF.NOME_PROGETTO,
	--PATRBF.ordinamento_progetto) 
	--SUM(PATRBF.CTV) OVER (PARTITION BY PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 	
	SUM(PATRBF.CTV) OVER (PARTITION BY PATRBF.NOME_PROGETTO)--, PATRBF.ordinamento_progetto) 	
	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY --robo.isProgettoRobo, 
	PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY robo.isProgettoRobo, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
case when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then RISCHIO_AGGR_AREA.VAR_PERC_PTF else '0.00' end AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,

--INIZIO INTERVENTI OMNIA QUIIIIIIII
--case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
--			and patrbf.tipo_prodotto='CC' 
--			and patrbf.id_area='liq') 
	--then	
	--			CASE WHEN patrbf.data_sottoscrizione>monatt.data_attivazione
	--				THEN 
	--					dbo.TOSHORTDATESTRING(patrbf.data_sottoscrizione)
	--				ELSE
	--				CASE WHEN monatt.data_attivazione> '20110211' 
	--					then dbo.TOSHORTDATESTRING(monatt.data_attivazione)
	--					ELSE dbo.TOSHORTDATESTRING('20110211')
	--					END
	--				END
	--			END

	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				isnull(dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE),'-')
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto,
	--APC 103 -- Dicembre 2022
	 apc.is_APC as isAPC,
	 case when patrbf.TIPO_PRODOTTO='CC' then 100 else 1 end as Ordinamento_Prodotto
FROM 
#patr_bf PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
			--aggiunta 18/12/2022 per APC103
left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATRBF.RETE
	and	apc.cod_fiscale=patrbf.cod_fiscale
	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta 18/12/2022 per APC103
	left join C6StagingPeriodico.RP_Progetto_robo ROBO
on ROBO.chiaveprogetto=PATRBF.chiave_Progetto

WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
    

)))
ORDER BY 
	AREASORTORDER,Ordinamento_Prodotto, NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI
 
 --fine E-DEFAULT4


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_FD43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'BNDCRN60H52A181P'
-- [C6MartPeriodico].[PL_S43DettaglioProdottiBF] 'F','BNDCRN60H52A181P'
CREATE       procedure [C6MartPeriodico].[PL_FD43DettaglioProdottiBF] --'F','MRLSLV83E60D912U'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT
distinct
CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Rob'--when robo.isProgettoRobo='S' then 'Rob'
		else 'ASF'
	END AS needarea,
	CASE 
		when ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 'Portafoglio Direct Evo' --when robo.isProgettoRobo='S' then 'Portafoglio Direct Evo'
		else 'Portafoglio Base'
		--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		--WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		--ELSE AREA.NOME_AREA 
	END AS needareades,
CASE 
	--WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	WHEN ISNULL(PATRBF.NOME_PROGETTO,'') like '%Direct EVO%' then 1
	ELSE 2
	--ELSE AREA.ORDINAMENTO 
END  AS areasortorder,
CASE 
--WHEN AREA.ID_AREA = 'Pre' THEN 'Default'
--	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	-- 20161219 - mod per far uscire il nome progetto sulle risorse na
--	WHEN AREA.ID_AREA = 'Na'  THEN 'Default'
	when trim(PATRBF.NOME_PROGETTO) not like '%Direct EVO%' then 'Default'
	-- fine 20161219 - mod per far uscire il nome progetto sulle risorse na
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY --AREA.ID_AREA, 
	PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto,
	--APC dicembre 2022
	apc.is_APC as isAPC

FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
		--aggiunta 18/12/2022 per APC103
left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATRBF.RETE
	and	apc.cod_fiscale=patrbf.cod_fiscale
	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta 18/12/2022 per APC103
		left join C6StagingPeriodico.RP_Progetto_robo ROBO
on ROBO.chiaveprogetto=PATRBF.chiave_Progetto
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure 
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodico].[PL_GetClientNegativeCurrentAccountsValue]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @PatrimonioBF DECIMAL(15,2)
	
    -- Insert statements for procedure here
	SELECT 
		--@PatrimonioBF = case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end 
		cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV
		
	FROM 
		C6MartPeriodico.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND ID_AREA = 'CC' 
		and CTV < 0
	--Return @PatrimonioBF
END

 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_GetClientNegativeGPEligo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_GetClientNegativeGPEligo] 'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_GetClientNegativeGPEligo]
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@Codsottoprodotto varchar(10)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT  	 	 
		--CodInterno,
		--case
		--when Codsottoprodotto = 'L191' then '"GP Eligo Fondi"'
		--when Codsottoprodotto = 'L192' then '"GP Eligo Titoli"'
		--end as Descrizione,
		cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		LS.rete = @Rete
		AND LS.codfis = @CodiceFiscale
		AND LS.CodSottoprodotto = @Codsottoprodotto
		AND Ls.codinterno = 'XY'
		AND ctv < 0
	--group by CodInterno,codsottoprodotto
END
 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_GetClientSelfNegative]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_GetClientSelfNegative] 'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_GetClientSelfNegative]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT  	 	 
		CodInterno,
		case
		when CodInterno = 'XY' then '"Linee GP Eligo"'
		when CodInterno = 'FO' then '"IL MF - Liquidita"'
		end as Descrizione,
		cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		LS.rete = @Rete
		AND LS.codfis = @CodiceFiscale
		AND ctv < 0
	group by CodInterno
END
 
   

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_GetClientSelfNegCurrentAccountValue]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_GetClientSelfNegCurrentAccountValue] 'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodico].[PL_GetClientSelfNegCurrentAccountValue]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	--DECLARE @PatrimonioBF DECIMAL(15,2)
	
     SELECT  	 	 
		 cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV	 
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND ctv < 0
		
	--Return @PatrimonioBF
END
 
   

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_Intermediari]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--	DECLARE @num int
--	EXEC C6MartPeriodico.PL_Intermediari 'F', 'DLRGCM55A14A669Q' , @num OUTPUT
--	SELECT @num AS NumIntermediari
CREATE procedure [C6MartPeriodico].[PL_Intermediari] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@numeroRighe as int OUTPUT
AS

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

	SET  @numeroRighe = 
	(SELECT
        COUNT(DISTINCT INTERMEDIARIO)
	FROM	C6MartPeriodico.PATRIMONIO_TERZI
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale		
	)
	RETURN @numeroRighe
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_FD133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Davide Moccia>
-- Create date: <07/05/2013>
-- Description:	<Monitoraggio Private - Capitolo2°-Contributo al Rischio :   aree di bisogno-4° sezione >
-- =============================================

--     [C6martPeriodico].[PL_MP_S133BISPrincipaliProdotti] F,CLSPLA43D08H501B

CREATE procedure [C6MartPeriodico].[PL_MP_FD133BISPrincipaliProdotti]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

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

SELECT 
		ANAGPROD.DESCR_PRODOTTO AS descrProdotto
		,PATRBF.CTV AS Controvalore
		,CASE 
			WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
			ELSE isnull(RISCHIO_PROD.VAR_PERC_PTF,0.00)
		END AS VaRprodotto
		,((CASE 
			  WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
			  ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
		   END) /	(CASE
					   WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale') = 0 THEN 1
					   ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale')
					 END))*100 as rischioRelativo	
		,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale')))*100  AS pesoRelativo
		,PATRBF.ID_AREA  AS codAreaBisogno
	FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
		ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
	INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
		ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
		ON PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		AND RISCHIO_PROD.COD_AGGREG = CASE 
										 WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
											 THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
											 '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
										 WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
										 ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
									   END
									   + PATRBF.POSITION_ID 
	WHERE PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
	AND PATRBF.ID_AREA <> 'Cc'
	ORDER BY rischioRelativo DESC



END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_FD134BISMonitoraggioLiqInv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_MP_S134BISMonitoraggioLiqInv] 'F','CNTGCR68T31D458G'
CREATE      procedure [C6MartPeriodico].[PL_MP_FD134BISMonitoraggioLiqInv] --'F','LCNGNZ82P14H163B'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT
		'Inv' AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE mon
	--inner join C6StagingPeriodico.RP_Progetto_Robo robo
	--on mon.ordinamento_progetto=robo.chiaveProgetto
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
		and NOME_PROGETTO like '%Direct EVO%'
		--and APPORTO_INIZIALE<>'0.00'--- aggiunta 20221219 per 

	UNION
	
	SELECT
		'Inv',
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO st
		--inner join C6StagingPeriodico.RP_Progetto_Robo robo
	--on st.ordinamento_progetto=robo.chiaveProgetto
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
		and NOME_PROGETTO like '%Direct EVO%'
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_FD134MonitoraggioLiquidita]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_MP_S134MonitoraggioLiquidita]  'F','CNTGCR68T31D458G'
CREATE   procedure [C6MartPeriodico].[PL_MP_FD134MonitoraggioLiquidita]  --'F','SMNLSN83B41C101E'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT

SELECT
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		'Inv' AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			PATR_BF.RETE = @Rete
			AND PATR_BF.COD_FISCALE = @CodiceFiscale
			AND PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
		--	inner join C6StagingPeriodico.RP_Progetto_Robo rob ON rob.chiaveProgetto=monit.ORDINAMENTO_PROGETTO
	WHERE
		MONIT.RETE = @Rete AND
		MONIT.COD_FISCALE =  @CodiceFiscale
		and monit.NOME_PROGETTO like '%Direct EVO%'
	--	and CTV_MONITORATO<>'0.00' -- aggiunta 20221219
 

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_FD147SintesiValute]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6MartPeriodico].[PL_MP_FD147SintesiValute] 'F','PLKHNJ76R09H514E'
CREATE procedure [C6MartPeriodico].[PL_MP_FD147SintesiValute]

@Rete char(1), 
@CodiceFiscale varchar(16)
as
begin



declare @ctvNoCoperto as decimal(18,3)
declare @ctvCoperto as decimal(18,3)
declare @copertura as decimal(18,3)

SELECT  @ctvNoCoperto = isnull(sum(ctv),0) 
	
	FROM c6martperiodico.ANAG_PRODOTTI_VALUTE a
	RIGHT JOIN c6martperiodico.patrimonio_bf c
	ON a.cod_prodotto = c.cod_prodotto
		WHERE
		
			cod_fiscale = @CodiceFiscale
			and rete = @Rete
			and a.cod_prodotto is null
			and id_area <> 'Cc'
			
select @copertura = (patrimonioSenzaCC - @ctvNoCoperto)/patrimonioSenzaCC , 
       @ctvCoperto = patrimonioSenzaCC - @ctvNoCoperto
from c6martperiodico.vPatrimonioBfAggregato
where 
	cod_fiscale = @CodiceFiscale
	and rete = @Rete

--select  @copertura 
--FC 16/04/20104
--Inserito controllo per evitare problemi di divid by zero nella select successiva

IF  @ctvCoperto < 1 
begin
    set @ctvCoperto =1
End



SELECT 
	sum(peso*ctv) / @ctvCoperto as percentuale,
	abs(sum(peso*ctv)) as valoreAssoluto,
	a.Divisa,
	@copertura as copertura	
FROM c6martperiodico.ANAG_PRODOTTI_VALUTE a
join c6martperiodico.patrimonio_bf c
ON a.cod_prodotto = c.cod_prodotto
where 
	cod_fiscale = @CodiceFiscale
	and rete = @Rete
 group by a.Divisa
order by valoreAssoluto desc


end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_FD148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_MP_FD148DistribuzioneAssetClass]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN 

SELECT [Banca]
      ,[ORDINAMENTO]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S148DistribuzioneAssetClass]
  WHERE	[Rete] = @Rete
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_FD200DistribuzioneAssetClass_PTFRibilanciato]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE     procedure [C6MartPeriodico].[PL_MP_FD200DistribuzioneAssetClass_PTFRibilanciato] --'F','VGNMRA68C64F205S'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN 

SELECT[Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
	  ,chiaveptfmod
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
	  ,percentuale_modello
	  ,var_prog
	  into #ptf
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_FD200DistribuzioneAssetClass_PTFRibilanciato]
  WHERE	[Rete] = @Rete
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

  declare @mia_chiaveptfmod int
SELECT
	  @mia_chiaveptfmod=ChiavePtfMod
      
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_FD200DistribuzioneAssetClass_PTFRibilanciato]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

  select * 
  into #ptf_mod
  from C6StagingPeriodico.RP_DistribuzionePtfModello_Tattici_AssetClass where chiavePtfMod=@mia_chiaveptfmod

  select Banca,Ordinamento,AssetClassId,AssetClassName,ChiavePtfMod,Controvalore,Percentuale,Totale,Percentuale_Modello*100 as percentuale_modello,var_prog 
  into #tot
  from #ptf
  union all
  select 'Fideuram',ordinamento,asset,descrizione,chiavePtfMod,NULL,0.00000,NULL,percentuale*100,NULL as var_prog from #ptf_mod where asset not in (select ASSETCLASSID from #ptf) 
  ORDER BY ORDINAMENTO

  
	DECLARE @Totale [decimal](19, 5);
	DECLARE @var_prog [decimal](19, 5);

	SELECT @Totale = Totale, @var_prog = var_prog
FROM #ptf;

  update #tot 
  set Totale=@Totale, var_prog=@var_prog

   select * from #tot

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		<DMO>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] 'F', 'PVRPGS53C25G388A'
CREATE    procedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] --'S','FGGMSM57H28G999D'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT

/************* BF *****************/
	DECLARE @varPatrBF DECIMAL(12,2)
	DECLARE @riskClassBF VARCHAR(50)

	DECLARE @FLAGPROF varchar(16)
	SET @FLAGPROF= (select distinct FLGPROF from C6MartPeriodico.WSEIAN2 where rete=@rete and CODFIS=@CodiceFiscale)

	DECLARE @SCADUTO_PARZIALE varchar(16)
	SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


/* RECUPERO Rischio Mercaro e Rischio Credito BAnca Fideuram */

	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete


    SELECT 
	@varPatrBF = CASE WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
		ELSE RISK_AGG.VAR_PERC_PTF
	END, 	
    @riskClassBF = RISK_AGG.CREDITRISK
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE ' Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = @codiceFiscale
    and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN  'Patrimonio Sanpaolo Invest' ELSE 'Patrimonio IW Private Inv.' END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 

------------------------    MIFID2 - MAGGIO 2018
    select @coperturaBF=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
    -- modifica del 17/10/2018 - Va' preso il compleesivoBF come avviene nella d2_s170_RischioDiversificazione
	    --where cod_aggreg='complessivo'
		where cod_aggreg='COMPLESSIVO|BF'
	-- fine modifica del 17/10/2018
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE


	declare @limiteProfilo as int
	-- modifica del 2/7/2018 -
	  --select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID
	select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
	-- fine modifica del 2/7/2018 -



	declare @maxComplessita as int
	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim =c6martperiodico.getTrimestre(getDate(),0)  
           
		   
     if @CodiceFiscale like '%FF@%'  
	   
		   select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)		
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA
	else
			select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codfis= @CodiceFiscale	
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA


-------------------------  FINE MIFID2 - MAGGIO 2018

-- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

DECLARE @newLimiteProfilo varchar(20)
if ltrim(rtrim([C6MartPeriodico].[getIndicatoreValutazione] (@Rete,@CodiceFiscale,default))) = '-1'
	set @newLimiteProfilo = 'n.d.'
else
	select @newLimiteProfilo = 
	(      
	  case @limiteProfilo
			when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
				--when 5 then 'Alta'
				else '-'
	  end
	 )
 

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince,
	    @varPatrBF as varPatrimonioBF,
		@riskClassBF as riskClassBF,

------------------------   MIFID2 - MAGGIO 2018

		case when @SCADUTO_PARZIALE='P' then '-'
		when @FLAGPROF='S' then 'n.a.' 
		else @newLimiteProfilo end as LimiteComplessitaProfilo,
				case @maxComplessita
        	    when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
				--when 5 then 'Alta'
		  end  as LimiteComplessitaPatrimonio

-------------------------  FINE MIFID2 - MAGGIO 2018


END















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza]    Script Date: 09/02/2022 11:59:17 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO




---- =============================================
---- Author:		<DMO>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----[C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] 's', 'GRTDNL49D01I531Z'
--ALTER procedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;

--	DECLARE @varBF DECIMAL(12,2)
--	DECLARE @coperturaBF DECIMAL(12,2)
--	DECLARE @codiceProfilo SMALLINT
--	DECLARE @dataProfilo DATETIME
--	DECLARE @varProfilo DECIMAL(5,2)
--	DECLARE @nomeProfilo VARCHAR(50)
--    DECLARE @riskclass VARCHAR(50)
--    DECLARE @experience SMALLINT

--/************* BF *****************/
--	DECLARE @varPatrBF DECIMAL(12,2)
--	DECLARE @riskClassBF VARCHAR(50)


--	SELECT
--        @codiceProfilo = M.PROFILO_ASS,
--		@dataProfilo = M.DATA_INIZIO_VAL,
--		@varProfilo = CR.MAX_VAR,
--		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
--        @riskclass =  m.riskclass,
--        @experience = m.experience
--	FROM
--		C6MartPERIODICO.MIFID AS M
--		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
--		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
--	WHERE
--		M.RETE = @Rete AND
--		M.COD_FISCALE = @CodiceFiscale


--/* RECUPERO Rischio Mercaro e Rischio Credito BAnca Fideuram */

--	declare @contaCC as int

--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int

--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete


--    SELECT 
--	@varPatrBF = CASE WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
--		ELSE RISK_AGG.VAR_PERC_PTF
--	END, 	
--    @riskClassBF = RISK_AGG.CREDITRISK
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    c6martperiodico.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale = @codiceFiscale
--    and rete= @rete
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END
--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    left outer join C6MartPeriodico.COMPLESSITA cmp
--    on 
--    CMP.COD_FISCALE=PATRBF.COD_FISCALE
--    AND
--    CMP.RETE=PATRBF.RETE
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
--    ) 

--------------------------    MIFID2 - MAGGIO 2018
--    select @coperturaBF=copertura
--    from C6MartPeriodico.RISCHIO_AGGREGATO
--    -- modifica del 17/10/2018 - Va' preso il compleesivoBF come avviene nella d2_s170_RischioDiversificazione
--	    --where cod_aggreg='complessivo'
--		where cod_aggreg='COMPLESSIVO|BF'
--	-- fine modifica del 17/10/2018
--    AND COD_FISCALE = @COdiceFISCALE
--	and RETE= @RETE


--	declare @limiteProfilo as int
--	-- modifica del 2/7/2018 -
--	  --select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID
--	select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--	-- fine modifica del 2/7/2018 -



--	declare @maxComplessita as int
--	DECLARE @DataFineTrim VARCHAR(8)  
--    SET @DataFineTrim =c6martperiodico.getTrimestre2(getDate(),0)  
           
		   
--     if @CodiceFiscale like '%FF@%'  
	   
--		   select @maxComplessita  = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			      codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)		
--				  and rete= @Rete 
--				  and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				  and compl_base <> 10;
--	else
--			select @maxComplessita  = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			      codfis= @CodiceFiscale	
--				  and rete= @Rete 
--				  and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				  and compl_base <> 10;


---------------------------  FINE MIFID2 - MAGGIO 2018

---- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

--DECLARE @newLimiteProfilo varchar(20)
--if ltrim(rtrim([C6MartPeriodico].[getIndicatoreValutazione] (@Rete,@CodiceFiscale,default))) = '-1'
--	set @newLimiteProfilo = 'n.d.'
--else
--	select @newLimiteProfilo = 
--	(      
--	  case @limiteProfilo
--		    when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-'
--	  end
--	 )
 

--	SELECT
--        @codiceProfilo as codiceProfilo,
--		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
--		@varProfilo as varMassimo,
--		ISNULL(@varBF,0) as varBF,
--		ISNULL(@coperturaBF,0) as coperturaBF,
--		@nomeProfilo as nomeProfilo,
--        @riskclass as riskclass,
--        @experience as experince,
--	    @varPatrBF as varPatrimonioBF,
--		@riskClassBF as riskClassBF,

--------------------------   MIFID2 - MAGGIO 2018

--		@newLimiteProfilo as LimiteComplessitaProfilo,
--		case @maxComplessita
--        	when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-' 
--		  end  as LimiteComplessitaPatrimonio

---------------------------  FINE MIFID2 - MAGGIO 2018


--END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza_BKP_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<DMO>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] 's', 'GRTDNL49D01I531Z'
CREATE    procedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza_BKP_PRE_RAFFORZAMENTO] --'S','FGGMSM57H28G999D'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT

/************* BF *****************/
	DECLARE @varPatrBF DECIMAL(12,2)
	DECLARE @riskClassBF VARCHAR(50)

	DECLARE @FLAGPROF varchar(16)
SET @FLAGPROF= (select distinct FLGPROF from C6MartPeriodico.WSEIAN2 where rete=@rete and CODFIS=@CodiceFiscale)


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


/* RECUPERO Rischio Mercaro e Rischio Credito BAnca Fideuram */

	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete


    SELECT 
	@varPatrBF = CASE WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
		ELSE RISK_AGG.VAR_PERC_PTF
	END, 	
    @riskClassBF = RISK_AGG.CREDITRISK
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE ' Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = @codiceFiscale
    and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN  'Patrimonio Sanpaolo Invest' ELSE 'Patrimonio IW Private Inv.' END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 

------------------------    MIFID2 - MAGGIO 2018
    select @coperturaBF=copertura
    from C6MartPeriodico.RISCHIO_AGGREGATO
    -- modifica del 17/10/2018 - Va' preso il compleesivoBF come avviene nella d2_s170_RischioDiversificazione
	    --where cod_aggreg='complessivo'
		where cod_aggreg='COMPLESSIVO|BF'
	-- fine modifica del 17/10/2018
    AND COD_FISCALE = @COdiceFISCALE
	and RETE= @RETE


	declare @limiteProfilo as int
	-- modifica del 2/7/2018 -
	  --select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID
	select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
	-- fine modifica del 2/7/2018 -



	declare @maxComplessita as int
	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim =c6martperiodico.getTrimestre(getDate(),0)  
           
		   
     if @CodiceFiscale like '%FF@%'  
	   
		   select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)		
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA
	else
			select @maxComplessita  = maxcompl from [C6StagingPeriodico].[WSEIAN2]
			where 
			      codfis= @CodiceFiscale	
				  and rete= @Rete 
				  and DTTRIM =  @DataFineTrim
				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
				--  and compl_base <> 10; commentata per MUA


-------------------------  FINE MIFID2 - MAGGIO 2018

-- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

DECLARE @newLimiteProfilo varchar(20)
if ltrim(rtrim([C6MartPeriodico].[getIndicatoreValutazione] (@Rete,@CodiceFiscale,default))) = '-1'
	set @newLimiteProfilo = 'n.d.'
else
	select @newLimiteProfilo = 
	(      
	  case @limiteProfilo
			when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
				--when 5 then 'Alta'
				else '-'
	  end
	 )
 

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince,
	    @varPatrBF as varPatrimonioBF,
		@riskClassBF as riskClassBF,

------------------------   MIFID2 - MAGGIO 2018

		case when @FLAGPROF='S' then 'n.a.' else @newLimiteProfilo end as LimiteComplessitaProfilo,
		case @maxComplessita
        	when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
				--when 5 then 'Alta'
				else '-'
		  end  as LimiteComplessitaPatrimonio

-------------------------  FINE MIFID2 - MAGGIO 2018


END















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza]    Script Date: 09/02/2022 11:59:17 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO




---- =============================================
---- Author:		<DMO>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----[C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza] 's', 'GRTDNL49D01I531Z'
--ALTER procedure [C6MartPeriodico].[PL_MP_S128ProfiloRischioAdeguatezza]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;

--	DECLARE @varBF DECIMAL(12,2)
--	DECLARE @coperturaBF DECIMAL(12,2)
--	DECLARE @codiceProfilo SMALLINT
--	DECLARE @dataProfilo DATETIME
--	DECLARE @varProfilo DECIMAL(5,2)
--	DECLARE @nomeProfilo VARCHAR(50)
--    DECLARE @riskclass VARCHAR(50)
--    DECLARE @experience SMALLINT

--/************* BF *****************/
--	DECLARE @varPatrBF DECIMAL(12,2)
--	DECLARE @riskClassBF VARCHAR(50)


--	SELECT
--        @codiceProfilo = M.PROFILO_ASS,
--		@dataProfilo = M.DATA_INIZIO_VAL,
--		@varProfilo = CR.MAX_VAR,
--		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
--        @riskclass =  m.riskclass,
--        @experience = m.experience
--	FROM
--		C6MartPERIODICO.MIFID AS M
--		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
--		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
--	WHERE
--		M.RETE = @Rete AND
--		M.COD_FISCALE = @CodiceFiscale


--/* RECUPERO Rischio Mercaro e Rischio Credito BAnca Fideuram */

--	declare @contaCC as int

--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int

--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete


--    SELECT 
--	@varPatrBF = CASE WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
--		ELSE RISK_AGG.VAR_PERC_PTF
--	END, 	
--    @riskClassBF = RISK_AGG.CREDITRISK
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    c6martperiodico.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale = @codiceFiscale
--    and rete= @rete
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END
--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    left outer join C6MartPeriodico.COMPLESSITA cmp
--    on 
--    CMP.COD_FISCALE=PATRBF.COD_FISCALE
--    AND
--    CMP.RETE=PATRBF.RETE
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
--    ) 

--------------------------    MIFID2 - MAGGIO 2018
--    select @coperturaBF=copertura
--    from C6MartPeriodico.RISCHIO_AGGREGATO
--    -- modifica del 17/10/2018 - Va' preso il compleesivoBF come avviene nella d2_s170_RischioDiversificazione
--	    --where cod_aggreg='complessivo'
--		where cod_aggreg='COMPLESSIVO|BF'
--	-- fine modifica del 17/10/2018
--    AND COD_FISCALE = @COdiceFISCALE
--	and RETE= @RETE


--	declare @limiteProfilo as int
--	-- modifica del 2/7/2018 -
--	  --select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID
--	select 	@limiteProfilo = experience from C6MartPERIODICO.MIFID where cod_fiscale = @CodiceFiscale
--				  and rete= @Rete 
--	-- fine modifica del 2/7/2018 -



--	declare @maxComplessita as int
--	DECLARE @DataFineTrim VARCHAR(8)  
--    SET @DataFineTrim =c6martperiodico.getTrimestre2(getDate(),0)  
           
		   
--     if @CodiceFiscale like '%FF@%'  
	   
--		   select @maxComplessita  = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			      codman = substring(@CodiceFiscale, 4,len(@CodiceFiscale)-3)		
--				  and rete= @Rete 
--				  and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				  and compl_base <> 10;
--	else
--			select @maxComplessita  = max(compl_base) from [C6StagingPeriodico].[WSEIAD2]
--			where 
--			      codfis= @CodiceFiscale	
--				  and rete= @Rete 
--				  and DTTRIM =  @DataFineTrim
--				  -- 20180703 bisogna escludere l'eventuale compl_base = 10, che non verrebbe decodificata
--				  and compl_base <> 10;


---------------------------  FINE MIFID2 - MAGGIO 2018

---- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

--DECLARE @newLimiteProfilo varchar(20)
--if ltrim(rtrim([C6MartPeriodico].[getIndicatoreValutazione] (@Rete,@CodiceFiscale,default))) = '-1'
--	set @newLimiteProfilo = 'n.d.'
--else
--	select @newLimiteProfilo = 
--	(      
--	  case @limiteProfilo
--		    when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-'
--	  end
--	 )
 

--	SELECT
--        @codiceProfilo as codiceProfilo,
--		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
--		@varProfilo as varMassimo,
--		ISNULL(@varBF,0) as varBF,
--		ISNULL(@coperturaBF,0) as coperturaBF,
--		@nomeProfilo as nomeProfilo,
--        @riskclass as riskclass,
--        @experience as experince,
--	    @varPatrBF as varPatrimonioBF,
--		@riskClassBF as riskClassBF,

--------------------------   MIFID2 - MAGGIO 2018

--		@newLimiteProfilo as LimiteComplessitaProfilo,
--		case @maxComplessita
--        	when 0 then '-'
--			when 1 then 'Minima'
--			when 2 then 'Bassa'
--			when 3 then 'Media'
--			when 4 then 'Alta'
--			when 5 then 'Molto alta'
--			else '-' 
--		  end  as LimiteComplessitaPatrimonio

---------------------------  FINE MIFID2 - MAGGIO 2018


--END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S129Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[PL_MP_S129Patrimonio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS
BEGIN

SELECT [RETE]
      ,[Cod_Fiscale]
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS129] DettMov
      ,[NumeroAsterischiNota]
      ,sommaproventi
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
  WHERE	[Rete] 		= @Rete 
  AND	[Cod_Fiscale] = @CodiceFiscale

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S129Patrimonio_bkp_fc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S129Patrimonio] 'S','VNDMRZ60L23G702B'


CREATE procedure [C6MartPeriodico].[PL_MP_S129Patrimonio_bkp_fc]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT
	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int
	DECLARE @SommaProventi money
	

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0
	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

    -- Inserimento Dati Scirocco
    --SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM < '20111231'
	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_TRIMESTRE_PREC 
	--modifica rleboffe 20130617
	--@DettMovCorr = DETT_MOV_CORR
	FROM C6MartPeriodico.DettaglioMovimenti
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
    --SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM = '20111231'
	
	IF @DettMovPrec is null
		SET @AppoDettMovPrec = 'n.d.'
	ELSE
		SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	IF @DettMovCorr is null
		SET @AppoDettMovCorr = 'n.d.'
	ELSE
		SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	--query per asterischi situazione precedente
	IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
		WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)
		AND RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1

	IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
		WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1
	-----------------------------------------
	
	--query per asterischi situazione corrente
	IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
		WHERE COD_INTERNO IN ('37', 'GP')
		AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
		SET @NumAsterischiCorr = 1
	-----------------------------------------

	SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale

	SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale


    IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
    BEGIN

	-- Attivazione monitoraggio

--versione nuova da testare 

--select @SommaProventi= sum(IMPORTO) 
--from [C6StagingPeriodico].[WSEIPR]
--WHERE Rete = @Rete
--	AND codfis = @CodiceFiscale

SELECT @SommaProventi= sum(IMPORTO)
	FROM [C6MartPeriodico].proventi 
	WHERE 
    	  RETE = @Rete AND
		  COD_FISCALE = @CodiceFiscale 


	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		INI.CTV_EXT,
		INI.CTV_INV,
		INI.CTV_PRE,
		INI.CTV_RIS,
		INI.CTV_LIQ,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
		INI.CTV_NA AS RisorseNonAllocate,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
		INI.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA		
		INI.ctvself AS ctvself,
		--Contocorrente = CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END,
--		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.ctvself,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
--FINE INTERVENTI OMNIA		
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA +	(CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END) AS TotalePatrimonio
		--INI.CTV_TOTALE AS ControvaloreComplessivo
		
		,null as DettMov
		,0	as NumeroAsterischiNota
		,@SommaProventi as SommaProventi
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale
       --AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
       
    UNION ALL

	-- Precedente invio report

 	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		rep.CTV_SELF AS ctvself,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
--		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
--FINE INTERVENTI OMNIA				
		--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
		--CTV_TOTALE AS ControvaloreComplessivo
		
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
		--,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
		,0 as NumeroAsterischiNota
		,@SommaProventi as SommaProventi
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
--INIZIO INTERVENTI OMNIA
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS ctvself,			
--FINE INTERVENTI OMNIA
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
--INIZIO INTERVENTI OMNIA
--			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio
--FINE INTERVENTI OMNIA
			--sum((isnull(IMPORTO,0))) AS TotalePatrimonio

			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio			
			--SUM(CTV) as ControvaloreComplessivo
			
			--,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov			
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			--,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
			,0 as NumeroAsterischiNota
			,@SommaProventi as SommaProventi
			--,'1' as NumeroAsterischiNota
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
--		AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
--		ON 	BF.RETE = PV.RETE
--		AND BF.COD_FISCALE = PV.COD_FISCALE
	WHERE	
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN

	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_EXT,
		CTV_INV,
		CTV_PRE,
		CTV_RIS,
		CTV_LIQ,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,		
		CTV_NA AS RisorseNonAllocate,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,		
		CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		CTVself AS ctvself,
--		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio			
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC + ctvself AS TotalePatrimonio			
--FINE INTERVENTI OMNIA
		--CTV_TOTALE AS ControvaloreComplessivo
	FROM
		MONITORAGGIO_INIZIALE
	WHERE
		1=2

END

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S129Patrimonio_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S129Patrimonio] 'S','VNDMRZ60L23G702B'


CREATE procedure [C6MartPeriodico].[PL_MP_S129Patrimonio_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT
	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int
	DECLARE @SommaProventi money
	

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0
	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

    -- Inserimento Dati Scirocco
    --SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM < '20111231'
	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_TRIMESTRE_PREC 
	--modifica rleboffe 20130617
	--@DettMovCorr = DETT_MOV_CORR
	FROM C6MartPeriodico.DettaglioMovimenti
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
    --SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM = '20111231'
	
	IF @DettMovPrec is null
		SET @AppoDettMovPrec = 'n.d.'
	ELSE
		SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	IF @DettMovCorr is null
		SET @AppoDettMovCorr = 'n.d.'
	ELSE
		SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	--query per asterischi situazione precedente
	IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
		WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)
		AND RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1

	IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
		WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1
	-----------------------------------------
	
	--query per asterischi situazione corrente
	IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
		WHERE COD_INTERNO IN ('37', 'GP')
		AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
		SET @NumAsterischiCorr = 1
	-----------------------------------------

	SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale

	SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale


    IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
    BEGIN

	-- Attivazione monitoraggio

--versione nuova da testare 

--select @SommaProventi= sum(IMPORTO) 
--from [C6StagingPeriodico].[WSEIPR]
--WHERE Rete = @Rete
--	AND codfis = @CodiceFiscale

SELECT @SommaProventi= sum(IMPORTO)
	FROM [C6MartPeriodico].proventi 
	WHERE 
    	  RETE = @Rete AND
		  COD_FISCALE = @CodiceFiscale 


	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		INI.CTV_EXT,
		INI.CTV_INV,
		INI.CTV_PRE,
		INI.CTV_RIS,
		INI.CTV_LIQ,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
		INI.CTV_NA AS RisorseNonAllocate,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
		INI.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA		
		INI.ctvself AS ctvself,
		--Contocorrente = CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END,
--		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.ctvself,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
--FINE INTERVENTI OMNIA		
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA +	(CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END) AS TotalePatrimonio
		--INI.CTV_TOTALE AS ControvaloreComplessivo
		
		,null as DettMov
		,0	as NumeroAsterischiNota
		,@SommaProventi as SommaProventi
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale
       --AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
       
    UNION ALL

	-- Precedente invio report

 	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		rep.CTV_SELF AS ctvself,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
--		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
--FINE INTERVENTI OMNIA				
		--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
		--CTV_TOTALE AS ControvaloreComplessivo
		
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
		--,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
		,0 as NumeroAsterischiNota
		,@SommaProventi as SommaProventi
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
--INIZIO INTERVENTI OMNIA
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS ctvself,			
--FINE INTERVENTI OMNIA
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
--INIZIO INTERVENTI OMNIA
--			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio
--FINE INTERVENTI OMNIA
			--sum((isnull(IMPORTO,0))) AS TotalePatrimonio

			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio			
			--SUM(CTV) as ControvaloreComplessivo
			
			--,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov			
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			--,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
			,0 as NumeroAsterischiNota
			,@SommaProventi as SommaProventi
			--,'1' as NumeroAsterischiNota
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
--		AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
--		ON 	BF.RETE = PV.RETE
--		AND BF.COD_FISCALE = PV.COD_FISCALE
	WHERE	
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN

	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_EXT,
		CTV_INV,
		CTV_PRE,
		CTV_RIS,
		CTV_LIQ,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,		
		CTV_NA AS RisorseNonAllocate,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,		
		CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		CTVself AS ctvself,
--		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio			
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC + ctvself AS TotalePatrimonio			
--FINE INTERVENTI OMNIA
		--CTV_TOTALE AS ControvaloreComplessivo
	FROM
		MONITORAGGIO_INIZIALE
	WHERE
		1=2

END

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S130PrincipaliPosizioni]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Davide Moccia>
-- Create date: <Create Date,,>
-- Description:	<Monitoraggio Private - Capitolo1°-Sintesi-3° sezione >
-- =============================================

--[C6martPeriodico].PL_MP_S130PrincipaliPosizioni 'F','GSTGPL59P03B586G'

CREATE procedure [C6MartPeriodico].[PL_MP_S130PrincipaliPosizioni]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

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




select top 3 ANAGPROD.DESCR_PRODOTTO as Prodotto,
CAST ((PATRBF.CTV) AS DECIMAL (12,2)) AS Controvalore,
CAST(((PATRBF.CTV/(select distinct sum(PATRBF.CTV)
from C6MartPeriodico.PATRIMONIO_BF PATRBF
where PATRBF.RETE = @Rete 
  AND PATRBF.COD_FISCALE = @CodiceFiscale
--INIZIO INTRVENTI OMNIA
--AND PATRBF.ID_AREA <> 'Cc'))*100) AS DECIMAL (12,2)) as PesoRelativo
  AND PATRBF.ID_AREA not in ('Cc','self')))*100) AS DECIMAL (12,2)) as PesoRelativo
--FINE INTRVENTI OMNIA
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
WHERE PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
--INIZIO INTRVENTI OMNIA
--  AND PATRBF.ID_AREA <> 'Cc'
    AND PATRBF.ID_AREA not in ('Cc','self')
--FINE INTRVENTI OMNIA
ORDER BY 
Controvalore desc

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S131ContributoARischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Davide Moccia>
-- Create date: <Create Date,,>
-- Description:	<Monitoraggio Private - Capitolo1°-Sintesi-4° sezione >
-- =============================================

--[C6martPeriodico].[PL_MP_S131ContributoARischio] F,BRZGLI88S43F839A

CREATE procedure [C6MartPeriodico].[PL_MP_S131ContributoARischio]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

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

SELECT 
top 3 ANAGPROD.DESCR_PRODOTTO as descrizioneProdotto,
PATRBF.CTV AS controvalore,
case when (patrbf.tipo_prodotto ='CC') then 0.00 
	else RISCHIO_PROD.VAR_PERC_PTF
end AS rischioMercato,

(
	(
		case 
			when ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
			ELSE  (PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100
		END 
	 ) 
/
	(
		case
			when (sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0) )/100) over (partition by 'totale')) =0 then 1
			else sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0) )/100) over (partition by 'totale')
		end
	 )
)
*
100 
as rischioRelativo
--Controvalore prodotto * VaR% prodotto
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
		+ PATRBF.POSITION_ID 
WHERE PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
ORDER BY 
rischioRelativo desc

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S132ProfiloRischioAdeguatezza]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_MP_S132ProfiloRischioAdeguatezza]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT [RETE]
      ,[COD_FISCALE]
      ,[INSTITUTENAME]
      ,[CTV]
      ,[CODICEPROFILO]
      ,[DATAINIZIOVALIDITA]
      ,[VARMAX]
      ,[NOMEPROFILO]
      ,[VAR]
      ,[VARSTRING]
      ,[RISKCLASS]
      ,[RISKCLASSSTRING]
      ,[COVERAGE]
      ,[COVERAGESTRING]
      ,[RISKCLASSMAX]
      ,[PERCENTAGE]
      ,[VarIsOk]
      ,[RiskClassIsOk]
      ,[ComplexityIsOk]
      ,[Ully_perc]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S132ProfiloRischioAdeguatezza]
  WHERE	[RETE] 	= @Rete 
  AND	[COD_FISCALE] = @CodiceFiscale
		 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S132ProfiloRischioAdeguatezza_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<DMO>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6martPeriodico].[PL_MP_S132ProfiloRischioAdeguatezza]F,BRZGLI88S43F839A
CREATE procedure [C6MartPeriodico].[PL_MP_S132ProfiloRischioAdeguatezza_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

--	DECLARE @varBF DECIMAL(12,2)
--	DECLARE @coperturaBF DECIMAL(12,2)
--	DECLARE @codiceProfilo SMALLINT
--	DECLARE @dataProfilo DATETIME
--	DECLARE @varProfilo DECIMAL(5,2)
--	DECLARE @nomeProfilo VARCHAR(50)
--    DECLARE @riskclass VARCHAR(50)
--    DECLARE @experience SMALLINT
--
--
--	SELECT
--        @codiceProfilo = M.PROFILO_ASS,
--		@dataProfilo = M.DATA_INIZIO_VAL,
--		@varProfilo = CR.MAX_VAR,
--		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
--        @riskclass =  m.riskclass,
--        @experience = m.experience
--	FROM
--		C6MartPERIODICO.MIFID AS M
--		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
--		ON M.PROFILO_ASS = CR.PROFILO
--		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
--		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
--	WHERE
--		M.RETE = @Rete AND
--		M.COD_FISCALE = @CodiceFiscale
--
--	SELECT
--        @codiceProfilo as codiceProfilo,
--		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
--		@varProfilo as varMassimo,
--		ISNULL(@varBF,0) as varBF,
--		ISNULL(@coperturaBF,0) as coperturaBF,
--		@nomeProfilo as nomeProfilo,
--        @riskclass as riskclass,
--        @experience as experince

    
	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete

	


    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
--CONVERT(DATETIME,M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,
	DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,
    CR.MAX_VAR AS  VARMAX,
	ProfiliDiRischio.NOMEPROFILO as NOMEPROFILO,
	--V Imposizione VaR a 0 nel caso di presenza di solo cc
	CASE
		WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
		ELSE RISK_AGG.VAR_PERC_PTF
	END AS VAR,
    	
	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 AND (@contaPOS - @contaCC) <> 0 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
	CASE
		WHEN (@contaPOS - @contaCC) = 0 THEN 100  
		ELSE ISNULL(RISK_AGG.COPERTURA,0.00) 
	END AS COVERAGE,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
	NULL AS COVERAGESTRING,
	--V changed from string value (descrizione) to the numeric (profilo)
    M.RISKCLASS AS RISKCLASSMAX,
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
         THEN 1
         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)
    END )
    *100 AS PERCENTAGE,
    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,
    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,
    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,
    RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = @codiceFiscale
    and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento
		 

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Davide Moccia
-- Create date: 06/05/2013
-- Description:	<Description,,>
-- =============================================
-- [C6martPeriodico].[PL_MP_S133AreeBisognoPrincProd] 'F', 'DPRPLA46E25G888K'
CREATE procedure [C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd_BK_eligoTitoli]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
--INIZIO INTERVENTI OMNIA
--			LEFT(ID_AREA,3) AS ID_AREA, 
		CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
--INIZIO INTERVENTI OMNIA
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
--INIZIO INTERVENTI OMNIA
--			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
			RETE, COD_FISCALE,	
			CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END  
--FINE INTERVENTI OMNIA
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
--INIZIO INTERVENTI OMNIA
--		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC', 'SELF')
--FINE INTERVENTI OMNIA
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
--INIZIO INTERVENTI OMNIA
--			AND ID_AREA not in ('Na', 'Cc')
			AND ID_AREA not in ('Na', 'Cc', 'Self')
--FINE INTERVENTI OMNIA
		--V 
--INIZIO INTERVENTI OMNIA
--			DECLARE @TOTCC AS INT
--			SELECT @TOTCC = COUNT(*)
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
--FINE INTERVENTI OMNIA			
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
--INIZIO INTERVENTI OMNIA
--				AND TIPO_PRODOTTO = 'Cc'
				AND (TIPO_PRODOTTO = 'Cc' OR  ISIN = 'EURO00000009' )
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
--FINE INTERVENTI OMNIA quiii2


			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN = 'EURO00000009'
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------							
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN 0.00
					WHEN @TOTCCSELF = @TOT THEN 0.00
--FINE INTERVENTI OMNIA
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
--INIZIO INTERVENTI OMNIA
--					WHEN (@TOTCC <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.'
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 
--FINE INTERVENTI OMNIA					
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN 0
					WHEN @TOTCCSELF = @TOT THEN 0
--FINE INTERVENTI OMNIA
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA					
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
--INIZIO INTERVENTO OMNIA
--				WHEN @TOTCC = @TOT THEN NULL
				WHEN @TOTCCSELF = @TOT THEN NULL
--FINE INTERVENTO OMNIA
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
--INIZIO INTERVENTI OMNIA
				   WHEN ATTUALE.ID_AREA = 'Self' 
						THEN 'COMPLESSIVO|BF|SELF'
--FINE INTERVENTI OMNIA
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
			
--INIZIO INTERVENTI OMNIA
		WHERE AREA_BISOGNO.ID_AREA <> 'self'
--FINE INTERVENTI OMNIA

		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Davide Moccia
-- Create date: 06/05/2013
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
-- [C6martPeriodico].[PL_MP_S133AreeBisognoPrincProd] 'F', 'DPRPLA46E25G888K'
CREATE procedure [C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
--INIZIO INTERVENTI OMNIA
--			LEFT(ID_AREA,3) AS ID_AREA, 
		CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END AS ID_AREA,
--INIZIO INTERVENTI OMNIA
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
--INIZIO INTERVENTI OMNIA
--			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
			RETE, COD_FISCALE,	
			CASE 
			WHEN ID_AREA = 'SELF' 
			THEN LEFT(ID_AREA,4)
			ELSE LEFT(ID_AREA,3)  
			END  
--FINE INTERVENTI OMNIA
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
--INIZIO INTERVENTI OMNIA
--		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC', 'SELF')
--FINE INTERVENTI OMNIA
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
--INIZIO INTERVENTI OMNIA
--			AND ID_AREA not in ('Na', 'Cc')
			AND ID_AREA not in ('Na', 'Cc', 'Self')
--FINE INTERVENTI OMNIA
		--V 
--INIZIO INTERVENTI OMNIA
--			DECLARE @TOTCC AS INT
--			SELECT @TOTCC = COUNT(*)
			DECLARE @TOTCCSELF AS INT
			SELECT @TOTCCSELF = COUNT(*)
--FINE INTERVENTI OMNIA			
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
--INIZIO INTERVENTI OMNIA
--				AND TIPO_PRODOTTO = 'Cc'
				AND (TIPO_PRODOTTO = 'Cc' OR  ISIN in ('EURO00000009', 'EURO10000007'))
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA quiii2
			DECLARE @TOTSELF AS INT
			SELECT @TOTSELF = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN in('EURO00000009','EURO10000007')
--FINE INTERVENTI OMNIA quiii2


			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
			DECLARE @TOTSELFLIQ AS INT
			SELECT @TOTSELFLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ISIN in('EURO00000009', 'EURO10000007')
				AND ID_AREA = 'LIQ'

			DECLARE @TOTLIQ AS INT
			SELECT @TOTLIQ = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
				WHEN @TOTSELFLIQ = @TOTLIQ and AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------							
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN 0.00
					WHEN @TOTCCSELF = @TOT THEN 0.00
--FINE INTERVENTI OMNIA
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
--INIZIO INTERVENTI OMNIA
--					WHEN (@TOTCC <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.' 
					WHEN (@TOTCCSELF <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'n.c.'
					--V SOLO SELF -> VAR = 'n.c.'					
					WHEN (@TOTSELF = @TOT) THEN 'n.c.' 
--FINE INTERVENTI OMNIA					
					--V SOLO CC -> VAR = 0
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN 0
					WHEN @TOTCCSELF = @TOT THEN 0
--FINE INTERVENTI OMNIA
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
--INIZIO INTERVENTI OMNIA
--					WHEN @TOTCC = @TOT THEN NULL
					WHEN @TOTCCSELF = @TOT THEN NULL
					WHEN @TOTSELF = @TOT THEN 'n.c.'
--FINE INTERVENTI OMNIA					
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
--INIZIO INTERVENTO OMNIA
--				WHEN @TOTCC = @TOT THEN NULL
				WHEN @TOTCCSELF = @TOT THEN NULL
--FINE INTERVENTO OMNIA
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
--INIZIO INTERVENTI OMNIA
				   WHEN ATTUALE.ID_AREA = 'Self' 
						THEN 'COMPLESSIVO|BF|SELF'
--FINE INTERVENTI OMNIA
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
			
--INIZIO INTERVENTI OMNIA
		WHERE AREA_BISOGNO.ID_AREA <> 'self'
--FINE INTERVENTI OMNIA

		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Davide Moccia>
-- Create date: <07/05/2013>
-- Description:	<Monitoraggio Private - Capitolo2°-Contributo al Rischio :   aree di bisogno-4° sezione >
-- =============================================

--     [C6martPeriodico].[PL_MP_S133BISPrincipaliProdotti] F,CLSPLA43D08H501B

CREATE procedure [C6MartPeriodico].[PL_MP_S133BISPrincipaliProdotti]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

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

SELECT TOP 10 
		ANAGPROD.DESCR_PRODOTTO AS descrProdotto
		,PATRBF.CTV AS Controvalore
		,CASE 
			WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
			ELSE RISCHIO_PROD.VAR_PERC_PTF
		END AS VaRprodotto
		,((CASE 
			  WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
			  ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
		   END) /	(CASE
					   WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale') = 0 THEN 1
					   ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale')
					 END))*100 as rischioRelativo	
		,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale')))*100  AS pesoRelativo
		,PATRBF.ID_AREA  AS codAreaBisogno
	FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
		ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
	INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
		ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
		ON PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		AND RISCHIO_PROD.COD_AGGREG = CASE 
										 WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
											 THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
											 '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
										 WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
										 ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
									   END
									   + PATRBF.POSITION_ID 
	WHERE PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
	AND PATRBF.ID_AREA <> 'Cc'
	ORDER BY rischioRelativo DESC



END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S134BISMonitoraggioLiqInv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_MP_S134BISMonitoraggioLiqInv] 'F','CNTGCR68T31D458G'
CREATE procedure [C6MartPeriodico].[PL_MP_S134BISMonitoraggioLiqInv]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
		--and APPORTO_INIZIALE<>'0.00'--- aggiunta 20221219 per 

	UNION
	
	SELECT
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S134MonitoraggioLiquidita]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_MP_S134MonitoraggioLiquidita]  'F','CNTGCR68T31D458G'
CREATE procedure [C6MartPeriodico].[PL_MP_S134MonitoraggioLiquidita]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT

SELECT
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			PATR_BF.RETE = @Rete
			AND PATR_BF.COD_FISCALE = @CodiceFiscale
			AND PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
	WHERE
		MONIT.RETE = @Rete AND
		MONIT.COD_FISCALE =  @CodiceFiscale
	--	and CTV_MONITORATO<>'0.00' -- aggiunta 20221219
 

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S135MonitoraggioInvestimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_MP_S135MonitoraggioInvestimento] 'F','BDTMSS49A43F502I'
CREATE procedure [C6MartPeriodico].[PL_MP_S135MonitoraggioInvestimento]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale

	UNION
	
	SELECT
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S137BIS_FOI80]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Description:	<La sp legge i dati dalla tb C6MartPeriodico.FOI80>
-- =============================================

-- [C6MartPeriodico].[PL_MP_S137BIS_FOI80] 'F','QRCRLR38P10G999N'
CREATE procedure [C6MartPeriodico].[PL_MP_S137BIS_FOI80]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
  --SELECT  top 1		 
  --        'Interfund Capital Protection' AS DES_PROD,
  --        '001234.RS.S678' AS COD_CONF,
  --        '120,1040' AS QUOTA,
  --        '100,1234' AS NUMEROQUOTE,
  --        '12.025,22' AS CONTROVALORE,
  --        '31/03/2014' AS DATARIF,
  --        'Quota massima' AS DES_MAX,
  --        '125,4573' AS QUOTA_MAX, 
  --        '80' AS QUOTA_MAX_PERC,           
  --        '31/03/2013' AS DATARIF_MAX,
  --        'Quota e controvalore protetti*' AS DES_PROT,
  --        '100,3658' AS QUOTA_PROT,
  --        '100,1234' AS NUMEROQUOTE_PROT,
  --        '10.048,97' AS CONTROVALORE_PROT         
  SELECT 
	 DTTRIM,
	 DTRIFE,
	 RETE,
	 CODFIS,
	 DESPROD,
	 CODMAN,
	 CODCONF,
	 CODPROD,
	 SUBPROD,
	 ISIN,
	 CTV,
	 PREZZO,
	 QUOTE,
	 PREZZOMAX,
	 DTPREZZOMAX,
	 DESMAX,
	 PREZZOPROT,
	 CTRVIMPPROT,
	 DESPROT,
	 DESPRODTIT,
	 QUOTA_MAX_PERC
	 
	FROM C6MartPeriodico.FOI80
	
	WHERE 1=1
	  AND RETE = @Rete 
	  AND CODFIS = @CodiceFiscale 

END
 








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Federica Cianfa__INTERVENTO-MODIFICA>
-- Create date: <19/11/2014, Pomezia>
-- Description:	<La sp legge i dati dalla tb C6MartPeriodico.CAPPROT>
-- =============================================

-- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto] 'F','QRCRLR38P10G999N'
CREATE procedure [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
  --SELECT  top 1		 
  --        'Interfund Capital Protection' AS DES_PROD,
  --        '001234.RS.S678' AS COD_CONF,
  --        '120,1040' AS QUOTA,
  --        '100,1234' AS NUMEROQUOTE,
  --        '12.025,22' AS CONTROVALORE,
  --        '31/03/2014' AS DATARIF,
  --        'Quota massima' AS DES_MAX,
  --        '125,4573' AS QUOTA_MAX, 
  --        '80' AS QUOTA_MAX_PERC,           
  --        '31/03/2013' AS DATARIF_MAX,
  --        'Quota e controvalore protetti*' AS DES_PROT,
  --        '100,3658' AS QUOTA_PROT,
  --        '100,1234' AS NUMEROQUOTE_PROT,
  --        '10.048,97' AS CONTROVALORE_PROT         
     SELECT 
	 DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT
	
	WHERE 1=1
	  AND RETE = @Rete 
	  AND CODFIS = @CodiceFiscale 

END
 




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S137Bonus]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[C6MartPeriodico].[PL_MP_S137Bonus] 'F','QRCRLR38P10G999N'
CREATE procedure [C6MartPeriodico].[PL_MP_S137Bonus]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
	 SELECT [RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale 

END
 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S138Proventi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_MP_S138Proventi] 'F','ZZZRSO40P44B042U'
CREATE procedure [C6MartPeriodico].[PL_MP_S138Proventi]
-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS
BEGIN  	 

	SELECT 		
		DTRIFE
		,DESPROD	 
     	,TIPMOV  
     	,IMPORTO
	FROM [C6MartPeriodico].proventi proventi	
	WHERE 
    	  RETE = @Rete AND
		  COD_FISCALE = @CodiceFiscale 
		  and importo>0.00 --fix 20240701
END
 
 


 



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S139Scadenze]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_MP_S139Scadenze] 'F','00164770307'
CREATE procedure [C6MartPeriodico].[PL_MP_S139Scadenze]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  	 
	SELECT 		
  		DESPROD,
     	TIPMOV , 
     	DTSCAD

	FROM [C6MartPeriodico].scadenze  	
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale 
END
 
 


 



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_NoLight] 'S','BRNGDI72S69L219Y'
CREATE procedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;

--QUERY PER INTERMEDIARIO
SELECT 
	RETE,
	COD_FISCALE,
	INTERMEDIARIO,
	CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
			ELSE 2 END AS ORDINE,
	SUM(CTV)  AS CTV_TOT,
	SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
	SUM(CASE WHEN RISKCLASS = 'Classe A' 
					or RISKCLASS = 'Classe B'
						or RISKCLASS = 'Classe C' 
							or RISKCLASS = 'Classe D' 
		THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
	SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
	--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
	CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
													or RISKCLASS = 'Classe B'
														or RISKCLASS = 'Classe C' 
															or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
										/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
	)*100 END AS PERC_CreditRisk,

	CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
	SELECT 
	PATRBF.RETE,
	PATRBF.COD_FISCALE,
	CASE	
		WHEN RISCHIO_PROD.COPERTURA < 100 
			THEN 'NON COPERTO'
		WHEN DESCRIZIONE IS NULL
			THEN 'NA'
		ELSE DESCRIZIONE	
	END AS RISKCLASS,
	CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' WHEN PATRBF.RETE = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments'  END AS INTERMEDIARIO,
	--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
	--INIZIO INTERVENTI OMNIA
	--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
	SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
			 WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
		ELSE PATRBF.CTV END) AS ctv
	--FINE INTERVENTI OMNIA
	FROM
	[C6MartPeriodico].[patrimonio_bf] PATRBF
	---Per calcolare la somma algebrica dei cc 
	LEFT OUTER JOIN
	(select cod_fiscale, rete, sum(ctv) as cc_ctv
	from
	[C6MartPeriodico].[patrimonio_bf] 
	where id_Area='Cc'
	group by cod_fiscale, rete
	) ctvcc
	on 
	patrbf.cod_fiscale=ctvcc.cod_fiscale
	and
	patrbf.rete=ctvcc.rete
	--fine calcolo somma cc
	--INIZIO INTERVENTI OMNIA
	---Per calcolare la somma algebrica dei self negativi
	LEFT OUTER JOIN
	(select cod_fiscale, rete, sum(ctv) as self_ctv
	from
	[C6MartPeriodico].[patrimonio_bf] 
	where id_Area='Self'
	group by cod_fiscale, rete
	) ctvself
	on 
	patrbf.cod_fiscale=ctvself.cod_fiscale
	and
	patrbf.rete=ctvself.rete
	--fine calcolo somma self negativi
	--FINE INTERVENTI OMNIA
	LEFT OUTER JOIN
	[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
	ON 
		PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
					--V
					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
						THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
						THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
					--
				END	+ PATRBF.POSITION_ID 
	--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
	LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
	ON RISCHIO_PROD.CREDITRISK = cr.profilo
	--V
	WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
			PATRBF.RETE = @Rete

			-- 20190118
			and patrbf.id_area not in ('LIGHT', 'VOID')
			-- fine 20190118


	--
	GROUP BY 
	PATRBF.RETE,
	PATRBF.COD_FISCALE,
	CASE	
		WHEN RISCHIO_PROD.COPERTURA < 100 
			THEN 'NON COPERTO'
		WHEN DESCRIZIONE IS NULL
			THEN 'NA'
		ELSE DESCRIZIONE	
	END,
	CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' WHEN PATRBF.RETE = 'S' THEN 'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6MartPeriodico].[patrimonio_bf] PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MartPeriodico].[patrimonio_bf] 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MartPeriodico].[patrimonio_bf] 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete


			-- 20190118
			and patrbf.id_area not in ('LIGHT', 'VOID')
			-- fine 20190118
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END

















--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]    Script Date: 09/02/2022 12:04:20 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_NoLight] 'S','BRNGDI72S69L219Y'
--ALTER procedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	SET NOCOUNT ON;

----QUERY PER INTERMEDIARIO
--SELECT 
--	RETE,
--	COD_FISCALE,
--	INTERMEDIARIO,
--	CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
--			ELSE 2 END AS ORDINE,
--	SUM(CTV)  AS CTV_TOT,
--	SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--	SUM(CASE WHEN RISKCLASS = 'Classe A' 
--					or RISKCLASS = 'Classe B'
--						or RISKCLASS = 'Classe C' 
--							or RISKCLASS = 'Classe D' 
--		THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--	SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--	--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--	CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--													or RISKCLASS = 'Classe B'
--														or RISKCLASS = 'Classe C' 
--															or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--										/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--	)*100 END AS PERC_CreditRisk,

--	CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--	SELECT 
--	PATRBF.RETE,
--	PATRBF.COD_FISCALE,
--	CASE	
--		WHEN RISCHIO_PROD.COPERTURA < 100 
--			THEN 'NON COPERTO'
--		WHEN DESCRIZIONE IS NULL
--			THEN 'NA'
--		ELSE DESCRIZIONE	
--	END AS RISKCLASS,
--	CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--	--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--	--INIZIO INTERVENTI OMNIA
--	--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
--	SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
--			 WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
--		ELSE PATRBF.CTV END) AS ctv
--	--FINE INTERVENTI OMNIA
--	FROM
--	[C6MartPeriodico].[patrimonio_bf] PATRBF
--	---Per calcolare la somma algebrica dei cc 
--	LEFT OUTER JOIN
--	(select cod_fiscale, rete, sum(ctv) as cc_ctv
--	from
--	[C6MartPeriodico].[patrimonio_bf] 
--	where id_Area='Cc'
--	group by cod_fiscale, rete
--	) ctvcc
--	on 
--	patrbf.cod_fiscale=ctvcc.cod_fiscale
--	and
--	patrbf.rete=ctvcc.rete
--	--fine calcolo somma cc
--	--INIZIO INTERVENTI OMNIA
--	---Per calcolare la somma algebrica dei self negativi
--	LEFT OUTER JOIN
--	(select cod_fiscale, rete, sum(ctv) as self_ctv
--	from
--	[C6MartPeriodico].[patrimonio_bf] 
--	where id_Area='Self'
--	group by cod_fiscale, rete
--	) ctvself
--	on 
--	patrbf.cod_fiscale=ctvself.cod_fiscale
--	and
--	patrbf.rete=ctvself.rete
--	--fine calcolo somma self negativi
--	--FINE INTERVENTI OMNIA
--	LEFT OUTER JOIN
--	[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--	ON 
--		PATRBF.RETE= RISCHIO_PROD.RETE
--		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--		AND RISCHIO_PROD.COD_AGGREG = 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--					--V
--					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--						THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--						THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--					--
--				END	+ PATRBF.POSITION_ID 
--	--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--	LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--	ON RISCHIO_PROD.CREDITRISK = cr.profilo
--	--V
--	WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--			PATRBF.RETE = @Rete

--			-- 20190118
--			and patrbf.id_area not in ('LIGHT', 'VOID')
--			-- fine 20190118


--	--
--	GROUP BY 
--	PATRBF.RETE,
--	PATRBF.COD_FISCALE,
--	CASE	
--		WHEN RISCHIO_PROD.COPERTURA < 100 
--			THEN 'NON COPERTO'
--		WHEN DESCRIZIONE IS NULL
--			THEN 'NA'
--		ELSE DESCRIZIONE	
--	END,
--	CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--PATRTERZI.INTERMEDIARIO,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
----INIZIO INTERVENTI OMNIA
----SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
--		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
--	ELSE PATRBF.CTV END) AS CTV
----FINE INTERVENTI OMNIA
--FROM
--[C6MartPeriodico].[patrimonio_bf] PATRBF
----per fare la somma algebrica dei cc
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MartPeriodico].[patrimonio_bf] 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine somma cc
----INIZIO INTERVENTI OMNIA
----per fare la somma algebrica dei self negativi
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as self_ctv
--from
--[C6MartPeriodico].[patrimonio_bf] 
--where id_Area='Self'
--group by cod_fiscale, rete
--) ctvself
--on 
--patrbf.cod_fiscale=ctvself.cod_fiscale
--and
--patrbf.rete=ctvself.rete
----fine somma Self negativi
----FINE INTERVENTI OMNIA
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete


--			-- 20190118
--			and patrbf.id_area not in ('LIGHT', 'VOID')
--			-- fine 20190118
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from 
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_20190123_PreLIGHT]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts] 'S','RTRRLF23S12Z105V'
CREATE procedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_20190123_PreLIGHT]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_NoLight]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_NoLight] 'S','BRNGDI72S69L219Y'
CREATE procedure [C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts_NoLight]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;

--QUERY PER INTERMEDIARIO
SELECT 
	RETE,
	COD_FISCALE,
	INTERMEDIARIO,
	CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
			ELSE 2 END AS ORDINE,
	SUM(CTV)  AS CTV_TOT,
	SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
	SUM(CASE WHEN RISKCLASS = 'Classe A' 
					or RISKCLASS = 'Classe B'
						or RISKCLASS = 'Classe C' 
							or RISKCLASS = 'Classe D' 
		THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
	SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
	--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
	CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
													or RISKCLASS = 'Classe B'
														or RISKCLASS = 'Classe C' 
															or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
										/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
	)*100 END AS PERC_CreditRisk,

	CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
	SELECT 
	PATRBF.RETE,
	PATRBF.COD_FISCALE,
	CASE	
		WHEN RISCHIO_PROD.COPERTURA < 100 
			THEN 'NON COPERTO'
		WHEN DESCRIZIONE IS NULL
			THEN 'NA'
		ELSE DESCRIZIONE	
	END AS RISKCLASS,
	CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
	--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
	--INIZIO INTERVENTI OMNIA
	--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
	SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
			 WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
		ELSE PATRBF.CTV END) AS ctv
	--FINE INTERVENTI OMNIA
	FROM
	[C6MartPeriodico].[patrimonio_bf] PATRBF
	---Per calcolare la somma algebrica dei cc 
	LEFT OUTER JOIN
	(select cod_fiscale, rete, sum(ctv) as cc_ctv
	from
	[C6MartPeriodico].[patrimonio_bf] 
	where id_Area='Cc'
	group by cod_fiscale, rete
	) ctvcc
	on 
	patrbf.cod_fiscale=ctvcc.cod_fiscale
	and
	patrbf.rete=ctvcc.rete
	--fine calcolo somma cc
	--INIZIO INTERVENTI OMNIA
	---Per calcolare la somma algebrica dei self negativi
	LEFT OUTER JOIN
	(select cod_fiscale, rete, sum(ctv) as self_ctv
	from
	[C6MartPeriodico].[patrimonio_bf] 
	where id_Area='Self'
	group by cod_fiscale, rete
	) ctvself
	on 
	patrbf.cod_fiscale=ctvself.cod_fiscale
	and
	patrbf.rete=ctvself.rete
	--fine calcolo somma self negativi
	--FINE INTERVENTI OMNIA
	LEFT OUTER JOIN
	[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
	ON 
		PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
					--V
					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
						THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
					WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
						THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
					--
				END	+ PATRBF.POSITION_ID 
	--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
	LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
	ON RISCHIO_PROD.CREDITRISK = cr.profilo
	--V
	WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
			PATRBF.RETE = @Rete

			-- 20190118
			and patrbf.id_area not in ('LIGHT', 'VOID')
			-- fine 20190118


	--
	GROUP BY 
	PATRBF.RETE,
	PATRBF.COD_FISCALE,
	CASE	
		WHEN RISCHIO_PROD.COPERTURA < 100 
			THEN 'NON COPERTO'
		WHEN DESCRIZIONE IS NULL
			THEN 'NA'
		ELSE DESCRIZIONE	
	END,
	CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6MartPeriodico].[patrimonio_bf] PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MartPeriodico].[patrimonio_bf] 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MartPeriodico].[patrimonio_bf] 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete


			-- 20190118
			and patrbf.id_area not in ('LIGHT', 'VOID')
			-- fine 20190118
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

 
--EXEC [C6martPeriodico].PL_MP_S141AnalisiRisparmioTable  'F','FTSVSL35E25Z115H'
CREATE procedure [C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT  --U.*
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					AND V.COD_FISCALE = @CODICEFISCALE
					AND V.RETE = @RETE
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     COD_FISCALE,
     RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	COD_FISCALE,
	RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			AND V.COD_FISCALE = @CODICEFISCALE
			AND V.RETE = @RETE
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	COD_FISCALE,
	RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable_test]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


 
--EXEC [C6martPeriodico].PL_MP_S141AnalisiRisparmioTable_test  'S','BNOSDR61T03F205W'
CREATE procedure [C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable_test]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT  --U.*
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
	
	into #tabtemp
	
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					AND V.COD_FISCALE = @CODICEFISCALE
					AND V.RETE = @RETE
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     COD_FISCALE,
     RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
	
	
FROM
(
SELECT  --L.*
	COD_FISCALE,
	RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
	
	
	
	
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			AND V.COD_FISCALE = @CODICEFISCALE
			AND V.RETE = @RETE
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	COD_FISCALE,
	RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC


SELECT  distinct
	temp.COD_FISCALE,
	temp.RETE,
	temp.RATING_AAA,
	temp.RATING_AAp,
	temp.RATING_AA,
	temp.RATING_AAm,
	temp.RATING_Ap,
	temp.RATING_A,
	temp.RATING_Am,
	temp.RATING_BBBp,
	temp.RATING_BBB,
	temp.RATING_BBBm,
	temp.RATING_BBp,
	temp.RATING_BB,
	temp.RATING_BBm,
	temp.RATING_Bp,
	temp.RATING_B,
	temp.RATING_Bm,
	temp.RATING_CCCp,
	temp.RATING_CCC,
	temp.RATING_CCCm,
	temp.RATING_CC,
	temp.RATING_C,
	temp.RATING_D,
	temp.RATING_na,
	temp.FLG_RISKCLASS1,
	temp.FLG_RISKCLASS2,
	temp.FLG_RISKCLASS3,
	temp.FLG_RISKCLASS4,
	temp.FLG_RISKCLASS5,
	temp.FLG_RISKCLASS6,
	temp.FLG_RISKCLASS7,
	temp.FLG_RISKCLASS8,
	temp.FLG_RISKCLASS9,
	temp.FLG_RISKCLASS10,
	temp.INTERMEDIARIO,
	temp.ISSUER,
	temp.STOCKSCounterValue,
	--temp.bondsCounterValue,
	Case 
    when 
    pemitt.cod_prodotto like '%IT0003972996%' or
	pemitt.cod_prodotto like '%XS0257293828%'or
	pemitt.cod_prodotto like '%IT0004867781%'or
	pemitt.cod_prodotto like '%IT0004880933%'or
	pemitt.cod_prodotto like '%XS0302580880%'or
	pemitt.cod_prodotto like '%IT0004119407%'or
	pemitt.cod_prodotto like '%IT0004281504%'or
	pemitt.cod_prodotto like '%IT0004931405%'or
	pemitt.cod_prodotto like '%IT0004966856%'or
	pemitt.cod_prodotto like '%IT0004539786%'or
	pemitt.cod_prodotto like '%IT0004657786%'or
	pemitt.cod_prodotto like '%IT0004556327%'or
	pemitt.cod_prodotto like '%IT0004064538%'or
	pemitt.cod_prodotto like '%IT0004119605%'or
	pemitt.cod_prodotto like '%IT0004291891%' 
     THEN   999999999  else temp.bondsCounterValue end
     as bondsCounterValue,
	temp.CONCENTRATION_ISSUER,
	temp.CONCENTRATION,
	temp.NC 
from #tabtemp temp
inner join C6MARTPERIODICO.PATRIMONIO_EMITTENTI pemitt
ON temp.COD_FISCALe= pemitt.COD_FISCALe and
	temp.RETE = pemitt.rete

END
 
 
 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S142DistibuzionePerRating]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- [C6martPeriodico].PL_MP_S142DistibuzionePerRating 'f','MSCLRT46H15A565B'
 
 CREATE procedure [C6MartPeriodico].[PL_MP_S142DistibuzionePerRating]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @sumCTV Decimal(15,3) =
	   (SELECT isnull(sum(BF.ctv), 0.0)
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
		INNER JOIN c6MartPeriodico.patrimonio_BF BF
		ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
		AND BF.rete = @Rete
		AND BF.cod_fiscale = @CodiceFiscale
		AND ANAG.FLG_OB='S' )
	
SELECT 
	RATING,
	isnull(sum(T.CONTROVALORE),0) as CONTROVALORE ,
-- FerAcu 20240803 errore divisione per zero
--	isnull(sum(T.CONTROVALORE) / ((SELECT sum(BF.ctv)
--								FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
--								INNER JOIN c6MartPeriodico.patrimonio_BF BF
--								ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
--								AND BF.rete = @Rete
--								AND BF.cod_fiscale = @CodiceFiscale
--								AND ANAG.FLG_OB='S' )/100),0)  
--	AS Percentage,
	-- visto che il default in caso di NULL è 0, usiamo 0 anche per i casi x/0
	CASE WHEN @sumCTV = 0.0 Then 0.000
	     ELSE isNull(sum(T.CONTROVALORE), 0.000) / (@sumCTV / 100)
	END
	AS Percentage,
	CASE RATING
		WHEN 'Da AAA a A-' THEN 93
		WHEN 'Da BBB+ a BBB-' THEN 171
		WHEN 'Da BB+ a B-' THEN 174
		WHEN 'Da CCC+ a D' THEN 193
		ELSE 235
    END AS Red,
    CASE RATING
		WHEN 'Da AAA a A-' THEN 138
		WHEN 'Da BBB+ a BBB-' THEN 196
		WHEN 'Da BB+ a B-' THEN 135
		WHEN 'Da CCC+ a D' THEN 174
		ELSE 235 
    END AS Green,
    CASE RATING
		WHEN 'Da AAA a A-' THEN 153
		WHEN 'Da BBB+ a BBB-' THEN 150
		WHEN 'Da BB+ a B-' THEN 88
		WHEN 'Da CCC+ a D' THEN 149
		ELSE 236 
    END AS Blue
FROM (
		SELECT  
			CASE ANAG.rating 
				WHEN 'AAA' THEN 'Da AAA a A-'
				WHEN 'AA+' THEN 'Da AAA a A-'
				WHEN 'AA' THEN 'Da AAA a A-'
				WHEN 'AA-' THEN 'Da AAA a A-'
				WHEN 'A+' THEN 'Da AAA a A-'
				WHEN 'A' THEN 'Da AAA a A-'
				WHEN 'A-' THEN 'Da AAA a A-'
				WHEN 'BBB+' THEN 'Da BBB+ a BBB-'
				WHEN 'BBB' THEN 'Da BBB+ a BBB-'
				WHEN 'BBB-' THEN 'Da BBB+ a BBB-'
				WHEN 'BB+' THEN 'Da BB+ a B-'
				WHEN 'BB' THEN 'Da BB+ a B-'
				WHEN 'BB-' THEN 'Da BB+ a B-'
				WHEN 'B+' THEN 'Da BB+ a B-'
				WHEN 'B' THEN 'Da BB+ a B-'
				WHEN 'B-' THEN 'Da BB+ a B-'
				WHEN 'CCC+' THEN 'Da CCC+ a D'
				WHEN 'CCC' THEN 'Da CCC+ a D'
				WHEN 'CCC-' THEN 'Da CCC+ a D'
				WHEN 'CC' THEN 'Da CCC+ a D'
				WHEN 'C' THEN 'Da CCC+ a D'
				WHEN 'D' THEN 'Da CCC+ a D'
				ELSE 'Non classificato'
			END AS RATING,
			isnull(sum(BF.ctv),0) as CONTROVALORE 	
			
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
				INNER JOIN c6MartPeriodico.patrimonio_BF BF
				ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
				AND BF.rete = @Rete
				AND BF.cod_fiscale = @CodiceFiscale
				AND ANAG.FLG_OB='S' 
				GROUP BY  ANAG.rating
) T
GROUP BY  T.RATING 
ORDER BY T.RATING

 


END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S142DistibuzionePerRating_20240803]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6martPeriodico].PL_MP_S142DistibuzionePerRating 'f','MSCLRT46H15A565B'
 
 CREATE procedure [C6MartPeriodico].[PL_MP_S142DistibuzionePerRating_20240803]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	
	
SELECT 
	RATING,
	isnull(sum(T.CONTROVALORE),0) as CONTROVALORE ,
	isnull(sum(T.CONTROVALORE) / ((SELECT sum(BF.ctv)
								FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
								INNER JOIN c6MartPeriodico.patrimonio_BF BF
								ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
								AND BF.rete = @Rete
								AND BF.cod_fiscale = @CodiceFiscale
								AND ANAG.FLG_OB='S' )/100),0)  
	AS Percentage,
	CASE RATING
		WHEN 'Da AAA a A-' THEN 93
		WHEN 'Da BBB+ a BBB-' THEN 171
		WHEN 'Da BB+ a B-' THEN 174
		WHEN 'Da CCC+ a D' THEN 193
		ELSE 235
    END AS Red,
    CASE RATING
		WHEN 'Da AAA a A-' THEN 138
		WHEN 'Da BBB+ a BBB-' THEN 196
		WHEN 'Da BB+ a B-' THEN 135
		WHEN 'Da CCC+ a D' THEN 174
		ELSE 235 
    END AS Green,
    CASE RATING
		WHEN 'Da AAA a A-' THEN 153
		WHEN 'Da BBB+ a BBB-' THEN 150
		WHEN 'Da BB+ a B-' THEN 88
		WHEN 'Da CCC+ a D' THEN 149
		ELSE 236 
    END AS Blue
FROM (
		SELECT  
			CASE ANAG.rating 
				WHEN 'AAA' THEN 'Da AAA a A-'
				WHEN 'AA+' THEN 'Da AAA a A-'
				WHEN 'AA' THEN 'Da AAA a A-'
				WHEN 'AA-' THEN 'Da AAA a A-'
				WHEN 'A+' THEN 'Da AAA a A-'
				WHEN 'A' THEN 'Da AAA a A-'
				WHEN 'A-' THEN 'Da AAA a A-'
				WHEN 'BBB+' THEN 'Da BBB+ a BBB-'
				WHEN 'BBB' THEN 'Da BBB+ a BBB-'
				WHEN 'BBB-' THEN 'Da BBB+ a BBB-'
				WHEN 'BB+' THEN 'Da BB+ a B-'
				WHEN 'BB' THEN 'Da BB+ a B-'
				WHEN 'BB-' THEN 'Da BB+ a B-'
				WHEN 'B+' THEN 'Da BB+ a B-'
				WHEN 'B' THEN 'Da BB+ a B-'
				WHEN 'B-' THEN 'Da BB+ a B-'
				WHEN 'CCC+' THEN 'Da CCC+ a D'
				WHEN 'CCC' THEN 'Da CCC+ a D'
				WHEN 'CCC-' THEN 'Da CCC+ a D'
				WHEN 'CC' THEN 'Da CCC+ a D'
				WHEN 'C' THEN 'Da CCC+ a D'
				WHEN 'D' THEN 'Da CCC+ a D'
				ELSE 'Non classificato'
			END AS RATING,
			isnull(sum(BF.ctv),0) as CONTROVALORE 	
			
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
				INNER JOIN c6MartPeriodico.patrimonio_BF BF
				ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
				AND BF.rete = @Rete
				AND BF.cod_fiscale = @CodiceFiscale
				AND ANAG.FLG_OB='S' 
				GROUP BY  ANAG.rating
) T
GROUP BY  T.RATING 
ORDER BY T.RATING

 


END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S143DistibuzionePerEmittente]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6martPeriodico].PL_MP_S143DistibuzionePerEmittente 'f','SLBBRT27A42Z127N'
 
CREATE procedure [C6MartPeriodico].[PL_MP_S143DistibuzionePerEmittente] --'F','SRGFRC62H07C933N'
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @sumCTV Decimal(15,3) =
	   (SELECT isnull(sum(BF.ctv), 0.0)
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
		INNER JOIN c6MartPeriodico.patrimonio_BF BF
		ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
		AND BF.rete = @Rete
		AND BF.cod_fiscale = @CodiceFiscale
		AND NOT ANAG.TIPO_EMITTENTE is null
		AND ANAG.FLG_OB='S')


-- Fc17/12/2013 Ridistribuita la percentuale 
SELECT   
   isnull(ANAG.TIPO_EMITTENTE,'Altro') as TIPOEMITTENTE,  
   isnull(sum(BF.ctv),0) as CONTROVALORE,
    CASE 
    when ANAG.TIPO_EMITTENTE is null then 0
    else 
      -- FerAcu 20240803 errore divisione per zero
      --isnull(sum(BF.ctv) / ((SELECT sum(BF.ctv)
	  --				FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
	  --				INNER JOIN c6MartPeriodico.patrimonio_BF BF
	  --				ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
	  --				AND BF.rete = @Rete
	  --				AND BF.cod_fiscale = @CodiceFiscale
	  --				AND NOT ANAG.TIPO_EMITTENTE is null
	  --				AND ANAG.FLG_OB='S')/100),0)  
	  CASE WHEN @sumCTV = 0.0 Then 0.000
	       ELSE isNull(sum(BF.ctv), 0.000) / (@sumCTV / 100)
	  END
	End				
	AS Percentage,
    CASE ANAG.TIPO_EMITTENTE
 		WHEN 'Agency' THEN  93
		WHEN 'Governativo' THEN 123 
		WHEN 'Emergente' THEN 200 
		WHEN 'Sovranazionale' THEN  221
		WHEN 'Corporate' THEN 255 
		ELSE 235 
    END AS Red,
    CASE ANAG.TIPO_EMITTENTE
		WHEN 'Agency' THEN  132
		WHEN 'Governativo' THEN 168 
		WHEN 'Emergente' THEN 126 
		WHEN 'Sovranazionale' THEN 192 
		WHEN 'Corporate' THEN 245 
		ELSE 235 
    END AS Green,
    CASE ANAG.TIPO_EMITTENTE
		WHEN 'Agency' THEN 111 
		WHEN 'Governativo' THEN 145 
		WHEN 'Emergente' THEN 99 
		WHEN 'Sovranazionale' THEN 115  
		WHEN 'Corporate' THEN 210 
		ELSE 236
    END AS Blue
 FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
	INNER JOIN c6MartPeriodico.patrimonio_BF BF
	ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
	AND BF.rete = @Rete
	AND BF.cod_fiscale = @CodiceFiscale
	AND ANAG.FLG_OB='S'
GROUP BY ANAG.TIPO_EMITTENTE 
ORDER BY TIPOEMITTENTE

 


END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S143DistibuzionePerEmittente_20240803]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6martPeriodico].PL_MP_S143DistibuzionePerEmittente 'f','SLBBRT27A42Z127N'
 
Create procedure [C6MartPeriodico].[PL_MP_S143DistibuzionePerEmittente_20240803] --'F','SRGFRC62H07C933N'
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
-- Fc17/12/2013 Ridistribuita la percentuale 
SELECT   
   isnull(ANAG.TIPO_EMITTENTE,'Altro') as TIPOEMITTENTE,  
   isnull(sum(BF.ctv),0) as CONTROVALORE,
    CASE 
    when ANAG.TIPO_EMITTENTE is null then 0
    else 
     isnull(sum(BF.ctv) / ((SELECT sum(BF.ctv)
					FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
					INNER JOIN c6MartPeriodico.patrimonio_BF BF
					ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
					AND BF.rete = @Rete
					AND BF.cod_fiscale = @CodiceFiscale
					AND NOT ANAG.TIPO_EMITTENTE is null
					AND ANAG.FLG_OB='S')/100),0)  
	End				
	AS Percentage,
    CASE ANAG.TIPO_EMITTENTE
 		WHEN 'Agency' THEN  93
		WHEN 'Governativo' THEN 123 
		WHEN 'Emergente' THEN 200 
		WHEN 'Sovranazionale' THEN  221
		WHEN 'Corporate' THEN 255 
		ELSE 235 
    END AS Red,
    CASE ANAG.TIPO_EMITTENTE
		WHEN 'Agency' THEN  132
		WHEN 'Governativo' THEN 168 
		WHEN 'Emergente' THEN 126 
		WHEN 'Sovranazionale' THEN 192 
		WHEN 'Corporate' THEN 245 
		ELSE 235 
    END AS Green,
    CASE ANAG.TIPO_EMITTENTE
		WHEN 'Agency' THEN 111 
		WHEN 'Governativo' THEN 145 
		WHEN 'Emergente' THEN 99 
		WHEN 'Sovranazionale' THEN 115  
		WHEN 'Corporate' THEN 210 
		ELSE 236
    END AS Blue
 FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
	INNER JOIN c6MartPeriodico.patrimonio_BF BF
	ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
	AND BF.rete = @Rete
	AND BF.cod_fiscale = @CodiceFiscale
	AND ANAG.FLG_OB='S'
GROUP BY ANAG.TIPO_EMITTENTE 
ORDER BY TIPOEMITTENTE

 


END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S144DistibuzionePerScadenze]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- [C6martPeriodico].PL_MP_S144DistibuzionePerScadenze 'f','00164770307'
CREATE procedure [C6MartPeriodico].[PL_MP_S144DistibuzionePerScadenze]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	
	
DECLARE @DTTRIM datetime
SET @DTTRIM  = c6martperiodico.gettrimestre2(getdate(),0)

SELECT 
	T.SCADENZA,
	T.CONTROVALORE ,
	ISNULL(sum(CONTROVALORE) / ((SELECT sum(BF.ctv)
				FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
				INNER JOIN c6MartPeriodico.patrimonio_BF BF
				ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
				AND BF.rete = @Rete
				AND BF.cod_fiscale = @CodiceFiscale
				AND ANAG.FLG_OB='S'
				AND ANAG.DT_SCADENZA >= @DTTRIM)/100),0)   
	AS Percentage,
	CASE T.SCADENZA
 		WHEN 'Meno di 1 anno' THEN  128  
		WHEN 'Da 1 a 3 anni' THEN   161
		WHEN 'Da 3 a 7 anni' THEN   193
		WHEN 'Più di 7 anni' THEN   224
		ELSE 255 
    END AS Red,
    CASE T.SCADENZA
 		WHEN 'Meno di 1 anno' THEN  153
		WHEN 'Da 1 a 3 anni' THEN   177
		WHEN 'Da 3 a 7 anni' THEN   202
		WHEN 'Più di 7 anni' THEN   228
		ELSE 255 
    END AS Green,
    CASE T.SCADENZA
 		WHEN 'Meno di 1 anno' THEN  136 
		WHEN 'Da 1 a 3 anni' THEN   163
		WHEN 'Da 3 a 7 anni' THEN   193
		WHEN 'Più di 7 anni' THEN   223
		ELSE 255 
    END AS Blue
    
FROM (
		SELECT
		  'Meno di 1 anno' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE, 
		  1 AS ORDINE    
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) <=  365	
			AND ANAG.FLG_OB='S'				
			AND ANAG.DT_SCADENZA >= @DTTRIM

		UNION

		SELECT
		  'Da 1 a 3 anni' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE,
		  2 AS ORDINE  
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) BETWEEN 365+1 and  365*3	
			AND ANAG.FLG_OB='S'			
			AND ANAG.DT_SCADENZA >= @DTTRIM
			
		UNION

		SELECT
		  'Da 3 a 7 anni' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE,
		  3 AS ORDINE   
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) BETWEEN 365*3+1 and  365*7
			AND ANAG.FLG_OB='S'						
			AND ANAG.DT_SCADENZA >= @DTTRIM

		UNION

		SELECT
		  'Più di 7 anni' as SCADENZA,
		  ISNULL(sum(BF.ctv),0) as CONTROVALORE,
		  4 AS ORDINE  
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
			INNER JOIN c6MartPeriodico.patrimonio_BF BF
			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
			AND BF.rete = @Rete
			AND BF.cod_fiscale = @CodiceFiscale
			AND DATEDIFF(d, GETDATE(),ANAG.DT_SCADENZA) >=  365*7+1  	
			AND ANAG.FLG_OB='S'			
			AND ANAG.DT_SCADENZA >= @DTTRIM
) T
WHERE T.CONTROVALORE > 0
GROUP BY T.SCADENZA,T.CONTROVALORE,T.ORDINE
ORDER BY T.ORDINE
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S145DistibuzionePerTassoRendimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6martPeriodico].PL_MP_S145DistibuzionePerTassoRendimento 'f','00164770307'
CREATE procedure [C6MartPeriodico].[PL_MP_S145DistibuzionePerTassoRendimento]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @sumCTV Decimal(15,3) =
	   (SELECT isnull(sum(BF.ctv), 0.0)
		FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
		INNER JOIN c6MartPeriodico.patrimonio_BF BF
		ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
		AND BF.rete = @Rete
		AND BF.cod_fiscale = @CodiceFiscale
		and not ANAG.TIPO_TASSO  is null
		AND ANAG.FLG_OB='S' )

SELECT    
   ISNULL(ANAG.TIPO_TASSO,'') as TIPOTASSO,   
   ISNULL(sum(BF.ctv),0) as CONTROVALORE,
   CASE 
    when ANAG.TIPO_TASSO is null then 0
    else
       -- FerAcu 20240803 errore divisione per zero
        --ISNULL(sum(BF.ctv) / ((SELECT sum(BF.ctv)
		--			FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
		--			INNER JOIN c6MartPeriodico.patrimonio_BF BF
		--			ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
		--			AND BF.rete = @Rete
		--			AND BF.cod_fiscale = @CodiceFiscale
		--			and not ANAG.TIPO_TASSO  is null
		--			AND ANAG.FLG_OB='S')/100)  ,0)
	   -- visto che il default in caso di NULL è 0, usiamo 0 anche per i casi x/0
	    CASE WHEN @sumCTV = 0.0 Then 0.000
	         ELSE isNull(sum(BF.ctv), 0.000) / (@sumCTV / 100)
	    END
	END
    AS Percentage,
    CASE ANAG.TIPO_TASSO
 		WHEN 'Fisso' THEN  153
		WHEN 'Variabile' THEN 207 
		WHEN 'Zero Coupon' THEN 193
		ELSE 235 
    END AS Red,
    CASE ANAG.TIPO_TASSO
		WHEN 'Fisso' THEN  185
		WHEN 'Variabile' THEN 220 
		WHEN 'Zero Coupon' THEN 174
		ELSE 235 
    END AS Green,
    CASE ANAG.TIPO_TASSO
		WHEN 'Fisso' THEN 166 
		WHEN 'Variabile' THEN 210 
		WHEN 'Zero Coupon' THEN 149
		ELSE 236
    END AS Blue            
                            
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
	INNER JOIN c6MartPeriodico.patrimonio_BF BF
	ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
	AND BF.rete = @Rete
	AND BF.cod_fiscale = @CodiceFiscale
	AND ANAG.FLG_OB='S'
GROUP BY ANAG.TIPO_TASSO 
ORDER BY TIPOTASSO

 


END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S145DistibuzionePerTassoRendimento_20240803]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6martPeriodico].PL_MP_S145DistibuzionePerTassoRendimento 'f','00164770307'
Create procedure [C6MartPeriodico].[PL_MP_S145DistibuzionePerTassoRendimento_20240803]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	SET NOCOUNT ON;

SELECT    
   ISNULL(ANAG.TIPO_TASSO,'') as TIPOTASSO,   
   ISNULL(sum(BF.ctv),0) as CONTROVALORE,
   CASE 
    when ANAG.TIPO_TASSO is null then 0
    else
   ISNULL(sum(BF.ctv) / ((SELECT sum(BF.ctv)
					FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
					INNER JOIN c6MartPeriodico.patrimonio_BF BF
					ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
					AND BF.rete = @Rete
					AND BF.cod_fiscale = @CodiceFiscale
					and not ANAG.TIPO_TASSO  is null
					AND ANAG.FLG_OB='S')/100)  ,0)
	END
    AS Percentage,
    CASE ANAG.TIPO_TASSO
 		WHEN 'Fisso' THEN  153
		WHEN 'Variabile' THEN 207 
		WHEN 'Zero Coupon' THEN 193
		ELSE 235 
    END AS Red,
    CASE ANAG.TIPO_TASSO
		WHEN 'Fisso' THEN  185
		WHEN 'Variabile' THEN 220 
		WHEN 'Zero Coupon' THEN 174
		ELSE 235 
    END AS Green,
    CASE ANAG.TIPO_TASSO
		WHEN 'Fisso' THEN 166 
		WHEN 'Variabile' THEN 210 
		WHEN 'Zero Coupon' THEN 149
		ELSE 236
    END AS Blue            
                            
FROM c6MartPeriodico.ANAG_PRODOTTI ANAG
	INNER JOIN c6MartPeriodico.patrimonio_BF BF
	ON ANAG.COD_PRODOTTO = BF.COD_PRODOTTO
	AND BF.rete = @Rete
	AND BF.cod_fiscale = @CodiceFiscale
	AND ANAG.FLG_OB='S'
GROUP BY ANAG.TIPO_TASSO 
ORDER BY TIPOTASSO

 


END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[C6martPeriodico].[PL_MP_S146RischioDiversificazione] 'S','CPPBRN41H45C773S'
CREATE procedure [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]
-- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete



SELECT 
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY 11


END 

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S147SintesiValute]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--[C6martPeriodico].[PL_MP_S147SintesiValute] 'F','DCSCRJ80H24Z602C'
CREATE procedure [C6MartPeriodico].[PL_MP_S147SintesiValute]

@Rete char(1), 
@CodiceFiscale varchar(16)
as
begin



declare @ctvNoCoperto as decimal(18,3)
declare @ctvCoperto as decimal(18,3)
declare @copertura as decimal(18,3)

SELECT  @ctvNoCoperto = isnull(sum(ctv),0) 
	
	FROM c6martperiodico.ANAG_PRODOTTI_VALUTE a
	RIGHT JOIN c6martperiodico.patrimonio_bf c
	ON a.cod_prodotto = c.cod_prodotto
		WHERE
		
			cod_fiscale = @CodiceFiscale
			and rete = @Rete
			and a.cod_prodotto is null
			and id_area <> 'Cc'
			
select @copertura = (patrimonioSenzaCC - @ctvNoCoperto)/patrimonioSenzaCC , 
       @ctvCoperto = patrimonioSenzaCC - @ctvNoCoperto
from c6martperiodico.vPatrimonioBfAggregato
where 
	cod_fiscale = @CodiceFiscale
	and rete = @Rete

--select  @copertura 
--FC 16/04/20104
--Inserito controllo per evitare problemi di divid by zero nella select successiva

IF  @ctvCoperto < 1 
begin
    set @ctvCoperto =1
End



SELECT 
	sum(peso*ctv) / @ctvCoperto as percentuale,
	abs(sum(peso*ctv)) as valoreAssoluto,
	a.DIVISA,
	@copertura as copertura	
FROM c6martperiodico.ANAG_PRODOTTI_VALUTE a
join c6martperiodico.patrimonio_bf c
ON a.cod_prodotto = c.cod_prodotto
where 
	cod_fiscale = @CodiceFiscale
	and rete = @Rete
group by a.DIVISA
order by valoreAssoluto desc


end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_MP_S148DistribuzioneAssetClass]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN 

SELECT [Banca]
      ,[ORDINAMENTO]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S148DistribuzioneAssetClass]
  WHERE	[Rete] = @Rete
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S148DistribuzioneAssetClass_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--[C6martPeriodico].[PL_MP_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'
CREATE procedure [C6MartPeriodico].[PL_MP_S148DistribuzioneAssetClass_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN 

SELECT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Banca Fideuram' 
		END AS Banca,
		ORDINAMENTO,
		AssetClassId,
		AssetClassName,
		SUM(Controvalore) As Controvalore,
        --SUM(CONTROVALORE) / Totale As Percentuale,
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,
        Totale
FROM
(


SELECT
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId,
		ASSETCLASS.DESCRIZIONE AS AssetClassName,
		CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
		--ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,
		cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale'),2)  as decimal(19,5))  AS Totale
	FROM (
          SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
--inizio interventi OMNIA
--						PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')
						PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')
--fine interventi OMNIA						
						AND ASSETPERC.LIVELLO = 2
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						AND PATR_BF.COD_FISCALE= @CodiceFiscale
                        AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 2
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					ASUL.RETE = @Rete
					AND ASUL.COD_FISCALE = @CodiceFiscale
					AND PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
							ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
						AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
						AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
						AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
						AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
						AND ASSETPERC.LIVELLO = 2
					WHERE
						ASUL.RETE =@Rete
						AND ASUL.COD_FISCALE = @CodiceFiscale
						--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
						AND ASUL.tipo_Prodotto = 'ASU2'
						AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')
		  ) val
           where Controvalore >0
			GROUP BY 
			VAL.RETE,
			val.COD_FISCALE,
			VAL.ID_ASSETCLASS

	UNION ALL
	/* nuovo */
		SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
		(--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
						PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')
						AND ASSETPERC.LIVELLO = 2
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						AND PATR_BF.COD_FISCALE=@CodiceFiscale
                        AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 2
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					ASUL.RETE = @Rete
					AND ASUL.COD_FISCALE = @CodiceFiscale
					AND PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
							ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
						AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
						AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
						AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
						AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
						AND ASSETPERC.LIVELLO = 2
					WHERE
						ASUL.RETE =@Rete
						AND ASUL.COD_FISCALE = @CodiceFiscale
						--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
						AND ASUL.tipo_Prodotto = 'ASU2'
						AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')
		  ) val
           where Controvalore >0
			GROUP BY 
			VAL.RETE,
			val.COD_FISCALE,
			VAL.ID_ASSETCLASS


    )

 VALORIASSET
	INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	WHERE
		VALORIASSET.RETE =@Rete
		AND VALORIASSET.COD_FISCALE = @CodiceFiscale
) a
Group By ORDINAMENTO, AssetClassId, AssetClassName, Totale
	ORDER BY ORDINAMENTO


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S149DettaglioProdottiAffluent]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [C6MartPeriodico].[PL_MP_S149DettaglioProdottiAffluent] 'F', 'FF@7181'
CREATE procedure [C6MartPeriodico].[PL_MP_S149DettaglioProdottiAffluent]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

SELECT ISNULL(SUM(ctv),0) 
FROM C6MartPeriodico.PATRIMONIO_BF 
	  WHERE RETE = @Rete
      AND COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S173]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6MartPeriodico].[PL_MP_S137Bonus] 'F','QRCRLR38P10G999N'
CREATE procedure [C6MartPeriodico].[PL_MP_S173]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
	SELECT 1
END
 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S173CapitaleProtetto]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Federica Cianfa__INTERVENTO-MODIFICA>
-- Create date: <19/11/2014, Pomezia>
-- Description:	<La sp legge i dati dalla tb C6MartPeriodico.CAPPROT>
-- =============================================

-- [C6MartPeriodico].[PL_MP_S173CapitaleProtetto] 'F','VCCLNI27H65L483J'
CREATE procedure [C6MartPeriodico].[PL_MP_S173CapitaleProtetto]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
  --SELECT  top 1		 
  --        'Interfund Capital Protection' AS DES_PROD,
  --        '001234.RS.S678' AS COD_CONF,
  --        '120,1040' AS QUOTA,
  --        '100,1234' AS NUMEROQUOTE,
  --        '12.025,22' AS CONTROVALORE,
  --        '31/03/2014' AS DATARIF,
  --        'Quota massima' AS DES_MAX,
  --        '125,4573' AS QUOTA_MAX, 
  --        '80' AS QUOTA_MAX_PERC,           
  --        '31/03/2013' AS DATARIF_MAX,
  --        'Quota e controvalore protetti*' AS DES_PROT,
  --        '100,3658' AS QUOTA_PROT,
  --        '100,1234' AS NUMEROQUOTE_PROT,
  --        '10.048,97' AS CONTROVALORE_PROT         
     SELECT 
	 DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,case 
	   when p.cod_interno = 'XY' and p.cod_sottoprodotto = 'L191' then 'GP Eligo Fondi'
	   when p.cod_interno = 'RS'								  then 'Fideuram Vita Insieme'
	   when p.cod_interno = 'RM'								  then 'Fideuram Vita Insieme Facile'
	   when p.cod_interno = 'RB'								  then 'Fideuram Vita Insieme Premium'
	   when p.cod_interno = 'RV'								  then 'Fideuram Vita Insieme Private'
	   else 'Interfund Crescita Protetta 80'
	end as DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT cap
	
	inner join
	 
		c6martperiodico.patrimonio_bf p

	 on cap.rete = p.rete and cap.codfis = p.cod_fiscale and cap.cod_conf = p.id_contratto


	WHERE 1=1
	  AND cap.RETE = @Rete 
	  AND cap.CODFIS = @CodiceFiscale 
	  and p.isin = 'LU1106988527' 

	  order by controvalore desc


END
 







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S173FOI80]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Description:	<La sp legge i dati dalla tb C6MartPeriodico.FOI80>
-- =============================================

-- [C6MartPeriodico].[PL_MP_S173FOI80] 'F','VCCLNI27H65L483J'
CREATE procedure [C6MartPeriodico].[PL_MP_S173FOI80]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
  --SELECT  top 1		 
  --        'Interfund Capital Protection' AS DES_PROD,
  --        '001234.RS.S678' AS COD_CONF,
  --        '120,1040' AS QUOTA,
  --        '100,1234' AS NUMEROQUOTE,
  --        '12.025,22' AS CONTROVALORE,
  --        '31/03/2014' AS DATARIF,
  --        'Quota massima' AS DES_MAX,
  --        '125,4573' AS QUOTA_MAX, 
  --        '80' AS QUOTA_MAX_PERC,           
  --        '31/03/2013' AS DATARIF_MAX,
  --        'Quota e controvalore protetti*' AS DES_PROT,
  --        '100,3658' AS QUOTA_PROT,
  --        '100,1234' AS NUMEROQUOTE_PROT,
  --        '10.048,97' AS CONTROVALORE_PROT         
  SELECT 
	 DTTRIM,
	 DTRIFE,
	 RETE,
	 CODFIS,
	 DESPROD,
	 CODMAN,
	 CODCONF,
	 CODPROD,
	 SUBPROD,
	 ISIN,
	 CTV,
	 PREZZO,
	 QUOTE,
	 PREZZOMAX,
	 DTPREZZOMAX,
	 DESMAX,
	 PREZZOPROT,
	 CTRVIMPPROT,
	 DESPROT,
	 DESPRODTIT,
	 QUOTA_MAX_PERC
	 
	FROM C6MartPeriodico.FOI80
	
	WHERE 1=1
	  AND RETE = @Rete 
	  AND CODFIS = @CodiceFiscale 

	  order by ctv desc

END
 










GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S174Bonus]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--[C6MartPeriodico].[PL_MP_S174Bonus] 'F','80002590711'
CREATE procedure [C6MartPeriodico].[PL_MP_S174Bonus]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  
	 SELECT [RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale 

		order by bonus.[CTV] desc

END
 



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S175BlueProtection]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6MartPeriodico].[PL_MP_S175BlueProtection] 'F','BBNLSN51E27D612T'
CREATE procedure [C6MartPeriodico].[PL_MP_S175BlueProtection]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  

	SELECT
		Controvalore_Riferimento as ControvaloreRiferimento,
		Componente_Performance as ComponentePerformance,
		Componente_Protezione as ComponenteProtezione,
		Controvalore_Prot as ControvaloreProtetto,
		DataRif as DataRiferimento,
		Des_Prod_Tit as DescrizioneProdotto,
		Cod_Conf as Contratto
		from [C6MartPeriodico].[CAPPROT_FVI]
		where 1 = 1
		and RETE = @Rete
		and CODFIS = @CodiceFiscale
		and SubProd = 'CS80'
END
 








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S175LineaProtettaMultiramo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6MartPeriodico].[PL_MP_S175LineaProtettaMultiramo] 'F','QRCRLR38P10G999N'
CREATE procedure [C6MartPeriodico].[PL_MP_S175LineaProtettaMultiramo]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  

	SELECT
		Controvalore_Riferimento as ControvaloreRiferimento,
		Componente_Performance as ComponentePerformance,
		Componente_Protezione as ComponenteProtezione,
		Controvalore_Prot as ControvaloreProtetto,
		DataRif as DataRiferimento,
		Des_Prod as DescrizioneProdotto,
		Cod_Conf as Contratto
	from [C6MartPeriodico].[CAPPROT_FVI]
	where rete = @Rete
	and codfis = @CodiceFiscale
	and codprod = 'RF' and subprod = 'MP'



END
 








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S175WhiteProtection]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6MartPeriodico].[PL_MP_S175WhiteProtection] 'F','QRCRLR38P10G999N'
CREATE procedure [C6MartPeriodico].[PL_MP_S175WhiteProtection]
	---- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN  

	SELECT
		Controvalore_Riferimento as ControvaloreRiferimento,
		Componente_Performance as ComponentePerformance,
		Componente_Protezione as ComponenteProtezione,
		Controvalore_Prot as ControvaloreProtetto,
		DataRif as DataRiferimento,
		Des_Prod_Tit as DescrizioneProdotto,
		Cod_Conf as Contratto
		from [C6MartPeriodico].[CAPPROT_FVI]
		where 1 = 1
		and RETE = @Rete
		and CODFIS = @CodiceFiscale
		and SubProd = 'CT80'
END
 








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S176EvoluzioneLineaProtettaMultiramo]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- [C6MartPeriodico].[PL_MP_S176EvoluzioneLineaProtettaMultiramo] 'f','BTTMRS67A69F839N'
CREATE procedure [C6MartPeriodico].[PL_MP_S176EvoluzioneLineaProtettaMultiramo]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT
		
		'FV Polizza Multiramo con protezione' as DescrizioneProdotto,
		COD_CONF as Contratto,
		--DTSOTTOS AS DataSottoscrizione,
		--DTRIFE AS DATARIFERIMENTO,
		--DTTRIM AS DATATRIM,
		convert(datetime, convert(varchar(8), DTRIFE)) AS DATASOTTOSCRIZIONE,
		convert(datetime, convert(varchar(8),DTRIFE)) AS DATARIFERIMENTO,
		convert(datetime, convert(varchar(8),DTTRIM)) AS DATATRIM,

		CTV as CONTROVALORE,
		CTVPROT as CONTROVALOREPROTETTO,
		CTVMON as CONTROVALOREMONITORATO

	
	FROM [C6MartPeriodico].[STORICO_CAPPROT_FVI]
	WHERE RETE = @Rete
		AND CODFIS = @CodiceFiscale

		order by dtrife
	
END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_MP_S44OperazioniUltimoTrimestre]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[PL_MP_S44OperazioniUltimoTrimestre]

@rete as varchar(1),
@codiceFiscale as varchar(16)

AS
BEGIN
	
	SET NOCOUNT ON;

	SELECT  CodiceFiscale,
			Rete,
			DataOperazione,
			Contratto,
			NumeroContratto as CodiceContratto,
			Operazione as Descrizione,
			ImportoOperazione as Importo,
			FirmaDigitale as Firma
	FROM [C6StampeCentralizzate].[C6STAGINGPERIODICO].AM_OperazioniUltimoTrimestre
	WHERE CodiceFiscale = @codiceFiscale and
	Rete = @rete ;


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_Prodotti_Non_Associati_Area_Inv]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- AUTHOR:		ALESSANDRO TRINGALI
-- CREATE DATE:  24 SETTEMBRE 2009
-- DESCRIPTION: 
-- =============================================
-- [C6MartPeriodico].[PL_Prodotti_Non_Associati_Area_Inv] 'F', 'RLPRCL54P61Z116S'
CREATE procedure [C6MartPeriodico].[PL_Prodotti_Non_Associati_Area_Inv]
 -- ADD THE PARAMETERS FOR THE STORED PROCEDURE HERE
 @Rete char(1), 
 @CodiceFiscale varchar(16)
AS
BEGIN

SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito] 'F','94009110068'
CREATE procedure [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest', 'IW Private Investments') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' WHEN PATRBF.RETE = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM'  WHEN PATRBF.RETE = 'S' THEN 'SANPAOLO' ELSE 'IWPRIVATEINVESTMENTS' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito]    Script Date: 10/02/2022 16:39:24 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure

---- =============================================
---- Authors:		<Alessandro Tringali, Valerio Colaianni>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
---- [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito] 'F','94009110068'
--ALTER procedure [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;



----QUERY PER INTERMEDIARIO
--SELECT 
--RETE,
--COD_FISCALE,
--INTERMEDIARIO,
--CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
--     ELSE 2 END AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,

--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
--FROM
--(
-- -- Start 1.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END AS RISKCLASS,
--CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
--FROM
--[C6Martperiodico].PATRIMONIO_BF PATRBF
-----Per calcolare la somma algebrica dei cc 
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MARTPERIODICO].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine calcolo somma cc
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
----INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END,
--CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

----- End 1.1
--UNION ALL
---- Start 1.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--PATRTERZI.INTERMEDIARIO,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo
----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----
--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END

---- End 1.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE,
--INTERMEDIARIO
----------
--UNION ALL
-------------
----QUERY TOTALE
--SELECT 
--RETE,
--COD_FISCALE,

--'Complessivo' AS INTERMEDIARIO,
--3 AS ORDINE,
--SUM(CTV)  AS CTV_TOT,
--SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
--SUM(CASE WHEN RISKCLASS = 'Classe A' 
--				or RISKCLASS = 'Classe B'
--					or RISKCLASS = 'Classe C' 
--						or RISKCLASS = 'Classe D' 
--	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
--SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
----CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
--												or RISKCLASS = 'Classe B'
--													or RISKCLASS = 'Classe C' 
--														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
--									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
--)*100 END AS PERC_CreditRisk,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
--FROM
--(
----- Start 2.1
--SELECT 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
----SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
--FROM
--[C6Martperiodico].PATRIMONIO_BF PATRBF
----per fare la somma algebrica dei cc
--LEFT OUTER JOIN
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from
--[C6MARTPERIODICO].pATRIMONIO_BF 
--where id_Area='Cc'
--group by cod_fiscale, rete
--) ctvcc
--on 
--patrbf.cod_fiscale=ctvcc.cod_fiscale
--and
--patrbf.rete=ctvcc.rete
----fine somma cc
--LEFT OUTER JOIN
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--			CASE 
--				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
--				--V
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
--					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
--					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
--					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
--				--
--			END	+ PATRBF.POSITION_ID 
--left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIO_PROD.CREDITRISK = cr.profilo
----V
--WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
--		PATRBF.RETE = @Rete
----
--GROUP BY 
--PATRBF.RETE,
--PATRBF.COD_FISCALE,
--CASE	
--	WHEN RISCHIO_PROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
---- End 2.1
--UNION ALL
---- Start 2.2
--SELECT 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END  AS RISKCLASS,
--SUM(ROUND(CTV,2)) AS CTV
--FROM 
--[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
--left outer join
--(select cod_fiscale, rete, sum(ctv) as cc_ctv
--from 
--[C6Martperiodico].pATRIMONIO_terzi
--where tipo_prodotto='Conti correnti'
--group by cod_fiscale, rete
--) ctvcc
--on
--patrterzi.cod_fiscale=ctvcc.cod_fiscale
--and
--patrterzi.rete=ctvcc.rete
--LEFT OUTER JOIN 
--[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
--		ON 
--			PATRTERZI.RETE = RISCHIOPROD.RETE
--			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
--			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
--left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
--ON RISCHIOPROD.CREDITRISK = cr.profilo

----V
--WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
--		PATRTERZI.RETE = @Rete
----

--GROUP BY 
--PATRTERZI.RETE,
--PATRTERZI.COD_FISCALE,
--CASE	
--	WHEN RISCHIOPROD.COPERTURA < 100 
--		THEN 'NON COPERTO'
--	WHEN DESCRIZIONE IS NULL
--		THEN 'NA'
--	ELSE DESCRIZIONE	
--END
----- End 2.2
--)H
--GROUP BY
--RETE,
--COD_FISCALE



--END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Authors:		<Alessandro Tringali, Valerio Colaianni>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito] 'F','94009110068'
CREATE procedure [C6MartPeriodico].[PL_S102DistribuzioneRischioCredito_OLD]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Banca Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe 1' THEN CTV ELSE 0 END)  AS CTV_Class1,
SUM(CASE WHEN RISKCLASS = 'Classe 2' THEN CTV ELSE 0 END)  AS CTV_Class2,
SUM(CASE WHEN RISKCLASS = 'Classe 3' THEN CTV ELSE 0 END)  AS CTV_Class3,
SUM(CASE WHEN RISKCLASS = 'Oltre Classe 3' THEN CTV ELSE 0 END)  AS CTV_overClass3,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe 1' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class1,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe 2' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class2,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe 3' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Oltre Classe 3' THEN CTV ELSE 0 END)/SUM(CTV))*100 END   AS perc_overClass3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA = 0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'+ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA = 0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA = 0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA = 0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe 1' THEN CTV ELSE 0 END)  AS CTV_Class1,
SUM(CASE WHEN RISKCLASS = 'Classe 2' THEN CTV ELSE 0 END)  AS CTV_Class2,
SUM(CASE WHEN RISKCLASS = 'Classe 3' THEN CTV ELSE 0 END)  AS CTV_Class3,
SUM(CASE WHEN RISKCLASS = 'Oltre Classe 3' THEN CTV ELSE 0 END)  AS CTV_overClass3,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe 1' THEN CTV ELSE 0 END)/SUM(CTV))*100 END AS PERC_class1,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe 2' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class2,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe 3' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_class3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Oltre Classe 3' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS perc_overClass3,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(ctv))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA =0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|'++ isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA = 0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA =0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA =0 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S103TabellaEmittenti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6MartPeriodico].[PL_S103TabellaEmittenti]  'S','RTRRLF23S12Z105V'
CREATE procedure [C6MartPeriodico].[PL_S103TabellaEmittenti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
COD_FISCALE,
RETE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
INTERMEDIARIO,
ISSUER,
STOCKSCounterValue,
bondsCounterValue,
CONCENTRATION_ISSUER,
CONCENTRATION,
NC
FROM
(


-- PER INTERMEDIARIO 

    SELECT
     COD_FISCALE,
     RETE,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
     --V nel caso sia null è BF???
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     sum(bondsCounterValue) AS bondsCounterValue,
     0 as  CONCENTRATION_ISSUER ,
	 --V normalizzo la percentuale per essere rappresentato sul report
     MAX(CONCENTRATION)* 100 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
    SELECT     V.COD_FISCALE,
                V.RETE,
                INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
                sum(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
                sum(copertura) as copertura
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 INTERMEDIARIO,
 EMITTENTE,
 CREDITRISKCLASS
) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
     COD_FISCALE,
     RETE,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S103TabellaEmittenti_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <25052010>
-- Description:	< SEZIONE 103>
-- =============================================
--EXEC [C6MartPeriodico].[PL_S103TabellaEmittenti]  'S','RTRRLF23S12Z105V'
CREATE procedure [C6MartPeriodico].[PL_S103TabellaEmittenti_OLD]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT 
COD_FISCALE,
RETE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4 ,
INTERMEDIARIO,
ISSUER,
STOCKSCounterValue,
bondsCounterValue,
CONCENTRATION_ISSUER,
CONCENTRATION,
NC
FROM
(


-- PER INTERMEDIARIO 

    SELECT
     COD_FISCALE,
     RETE,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4 ,
     --V nel caso sia null è BF???
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     sum(bondsCounterValue) AS bondsCounterValue,
     0 as  CONCENTRATION_ISSUER ,
	 --V normalizzo la percentuale per essere rappresentato sul report
     MAX(CONCENTRATION)* 100 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
    SELECT     V.COD_FISCALE,
                V.RETE,
                INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
				CASE WHEN CREDITRISKCLASS ='Classe 1' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Classe 2' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Classe 3' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Oltre Classe 3' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
                sum(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
                sum(copertura) as copertura
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 INTERMEDIARIO,
 EMITTENTE,
 CREDITRISKCLASS
) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
     COD_FISCALE,
     RETE,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4 ,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
				CASE WHEN CREDITRISKCLASS ='Classe 1' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Classe 2' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Classe 3' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Oltre Classe 3' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_S10PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

END 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S10PatrimonioFinanziario_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure


-- =============================================
-- Author:		<Luca De Lisio,,PL_S10PatrimonioFinanziario>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

-- [C6MartPeriodico].[PL_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'
CREATE procedure [C6MartPeriodico].[PL_S10PatrimonioFinanziario_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
SELECT 
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Banca Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
-- inizio interventi OMNIA 
--			and patrbf.id_area <> 'CC'
			and patrbf.id_area not in ('CC', 'SELF')
-- inizio interventi OMNIA 			
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S170LimitiMassimi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- [C6MartPeriodico].[PL_S170LimitiMassimi] 'f', 'PVRPGS53C25G388A'
CREATE     procedure [C6MartPeriodico].[PL_S170LimitiMassimi] --'S','FGGMSM57H28G999D'
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @FLAGPROF varchar(16)
SET @FLAGPROF= (select distinct FLGPROF from C6MartPeriodico.WSEIAN2 where rete=@rete and CODFIS=@CodiceFiscale)

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)

-- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

DECLARE @newLimiteProfilo varchar(20)
if ltrim(rtrim([C6MartPeriodico].[getIndicatoreValutazione] (@Rete,@CodiceFiscale,default))) = '-1'
	set @newLimiteProfilo = 'n.d.'
else
	select @newLimiteProfilo = 
		case experience
			when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
				--when 5 then 'Alta'
				else '-'
		end
		from C6MartPERIODICO.MIFID
		WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale 



select 'Limite massimo profilo',
       '-' as Controvalore,
	case when @SCADUTO_PARZIALE='P' then '-'  else isnull(risk.descr, 0)
	end as rischioCreditoMassimo,
	case when @SCADUTO_PARZIALE='P' then '-'  else
	cast(isnull(CR.MAX_VAR, 0) as varchar(20))
	end
	as  varMassimo,     
	   '-' as Diversificazione,
	 case  when @SCADUTO_PARZIALE='P' then '-'
	 when @FLAGPROF='S' then 'n.a.'  --per i clienti Professionali
	 else  @newLimiteProfilo end as Complessita

from C6MartPERIODICO.MIFID AS M
left JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
left join [C6StagingPeriodico].[RISKCLASS] risk
ON m.riskclass = risk.cod
WHERE
M.RETE = @Rete AND
M.COD_FISCALE = @CodiceFiscale 


END 





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S170LimitiMassimi_20180612]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- [C6MartPeriodico].[PL_S170LimitiMassimi] 'F','DTARSR51M26F839O'
CREATE procedure [C6MartPeriodico].[PL_S170LimitiMassimi_20180612]
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

select 'Limite massimo profilo',
       '-' as Controvalore,
	 risk.descr as rischioCreditoMassimo,
	 CR.MAX_VAR as  varMassimo,
       '-' as Diversificazione,
	   case m.experience
			when 0 then '-'
			when 1 then 'Minima'
			when 2 then 'Bassa'
			when 3 then 'Media'
			when 4 then 'Alta'
			when 5 then 'Molto alta'
			else '-'
		end as Complessita

from C6MartPERIODICO.MIFID AS M
INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
inner join [C6StagingPeriodico].[RISKCLASS] risk
ON m.riskclass = risk.cod
WHERE
M.RETE = @Rete AND
M.COD_FISCALE = @CodiceFiscale 


END 





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S170LimitiMassimi_20180702]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- [C6MartPeriodico].[PL_S170LimitiMassimi] 'F','DTARSR51M26F839O'
CREATE procedure [C6MartPeriodico].[PL_S170LimitiMassimi_20180702]
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

select 'Limite massimo profilo',
       '-' as Controvalore,
	 isnull(risk.descr, 0) as rischioCreditoMassimo,
	 isnull(CR.MAX_VAR, 0) as  varMassimo,     
	   '-' as Diversificazione,
	   case m.experience
			when 0 then '-'
			when 1 then 'Minima'
			when 2 then 'Bassa'
			when 3 then 'Media'
			when 4 then 'Alta'
			when 5 then 'Molto alta'
			else '-'
		end as Complessita

from C6MartPERIODICO.MIFID AS M
left JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
left join [C6StagingPeriodico].[RISKCLASS] risk
ON m.riskclass = risk.cod
WHERE
M.RETE = @Rete AND
M.COD_FISCALE = @CodiceFiscale 


END 





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S170LimitiMassimi_BKP_20231115_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- [C6MartPeriodico].[PL_S170LimitiMassimi] 'f', '00247580970'
CREATE     procedure [C6MartPeriodico].[PL_S170LimitiMassimi_BKP_20231115_PRE_RAFFORZAMENTO] --'S','FGGMSM57H28G999D'
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @FLAGPROF varchar(16)
SET @FLAGPROF= (select distinct FLGPROF from C6MartPeriodico.WSEIAN2 where rete=@rete and CODFIS=@CodiceFiscale)

-- 2/7/2018 - CR NAPOLITANO CASI 11-14 -> Persona Giuridica Retail con Nuovo questionario di profilatura (Legali Rappresentanti/Delegati NON Profilati)

DECLARE @newLimiteProfilo varchar(20)
if ltrim(rtrim([C6MartPeriodico].[getIndicatoreValutazione] (@Rete,@CodiceFiscale,default))) = '-1'
	set @newLimiteProfilo = 'n.d.'
else
	select @newLimiteProfilo = 
		case experience
			when 0 then 'Minima'
				when 1 then 'Bassa'
				when 2 then 'Medio bassa'
				when 3 then 'Medio alta'
				when 4 then 'Alta'
				--when 5 then 'Alta'
				else '-'
		end
		from C6MartPERIODICO.MIFID
		WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale 



select 'Limite massimo profilo',
       '-' as Controvalore,
	 isnull(risk.descr, 0) as rischioCreditoMassimo,
	 isnull(CR.MAX_VAR, 0) as  varMassimo,     
	   '-' as Diversificazione,
	 case when @FLAGPROF='S' then 'n.a.'  --per i clienti Professionali
	 else  @newLimiteProfilo end as Complessita

from C6MartPERIODICO.MIFID AS M
left JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
ON M.PROFILO_ASS = CR.PROFILO
left join [C6StagingPeriodico].[RISKCLASS] risk
ON m.riskclass = risk.cod
WHERE
M.RETE = @Rete AND
M.COD_FISCALE = @CodiceFiscale 


END 





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f', '01913040406'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
		    -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			     --when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
				 when (Isin = 'LU1106988527' ) then 'INTERFUND 80' -- INTERFUND 80
		    -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(data_sottoscrizione AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		--fix 17/7/2019 per problemi di arrotondamento
			 --convert(decimal(12,2),0) as controvalore_protetto
			 convert(decimal(12,4),0) as controvalore_protetto
		--fine fix 17/7/2019 per problemi di arrotondamento

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
		     --(Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
		     (Isin = 'LU1106988527' ) -- INTERFUND 80/CAPPROT
		  -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)
			--aggiunta 20240509
			and CTV>0.1
--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  -- modifica del 21/12/2017 
		    --select id_area,round(sum(controvalore_protetto),0) as totCapProt			  
				-- 20180717 Modificata per codificare Pre1 o Pre2 in Pre			  
				 --select id_area,sum(controvalore_protetto) as totCapProt
				 select
					 case
						when id_area = 'Pre1' or id_area = 'Pre2' then 'Pre'
						else id_area
					end as id_area,
					sum(controvalore_protetto) as totCapProt
				--fine modifica del 20180717
			-- fine modifica del 21/12/2017
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			--fix 17/7/2019 per problemi di arrotondamento
					--else cap.totCapProt
					else convert(decimal(12,2),cap.totCapProt)
			--fine fix 17/7/2019 per problemi di arrotondamento
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171201_ori]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f','BCCRRT43T09H449J'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171201_ori]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

-------------- recupero i totali dei prodotti a capitale protetto raggruppati per area di bisogno
SELECT -- PER DIVERSI DA CC ************************
		case 
			when (SPB.Isin = 'LU1106988527' and codprod in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
			when (spb.tipprod = 'fi' and spb.subprod = 'f43' and spb.codint = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (spb.subprod = 'cs80') then 'My Blue Protection 80'
			when (spb.subprod = 'ct80') then 'My White Protection 80'
			else ''
		    
		end as nomeprod,
		
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
		SPB.CTV AS CAPPROT,
		SPB.ISIN,
		CON.chiaveClientePB,
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	

	INTO #PATR_BF
	
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE
	spb.CODFIS = @CodiceFiscale and 
	 SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'

		  and 
		  ((SPB.Isin = 'LU1106988527' and codprod in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
				or
		   (spb.tipprod = 'fi'		-- FONDITALIA 80/FOI80
		    and spb.subprod = 'f43'
		    and spb.codint = '01')
			
			or
				spb.subprod in ('cs80', 'ct80') -- myblue, mywhite 
			
			)

		  SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				CONS.CodIsin,
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
		C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
		   TSCA.CODFIS =@CodiceFiscale
		   and TCP.dtuscita = '99991231'

		   UPDATE PATR_BF
				SET PATR_BF.REND_NON_RAPPR = 1
			FROM
				#REND_NON_RAPPR AS REND_NON_RAPPR
					INNER JOIN #PATR_BF AS PATR_BF
						ON PATR_BF.RETE = REND_NON_RAPPR.RETE
						AND PATR_BF.COD_FISCALE = 
								CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
									 ELSE  REND_NON_RAPPR.CODFIS
								END 
						AND PATR_BF.POSITIONID = REND_NON_RAPPR.POSITION_ID
		  
		  
	
		  --------- Individuati i prodotti, devo prendere il capitale protetto sulle tabelle relative
		  ---Interfund Crescita Protetta 80 (tipoprodotto ASU1) e presente sulla tabella [C6MartPeriodico].[CAPPROT]
		  ---Fonditalia Crescita protetta 80 --> FOI80
		  
		  UPDATE patrimonio
		  set patrimonio.capprot = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf
		  

		  UPDATE patrimonio
		  set patrimonio.capprot = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf
		 
		   ----------------------------------------raggruppo per area
		  select id_area,sum(capprot) as totCapProt
		  into #capitaleProtetto
		  from #PATR_BF
		  where REND_NON_RAPPR = 0
		  group by id_area

-----------------------------------------------------------------  

SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento
		 

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171215]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f','BCCRRT43T09H449J'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171215]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

-------------- recupero i totali dei prodotti a capitale protetto raggruppati per area di bisogno
SELECT -- PER DIVERSI DA CC ************************
		case 
			when (SPB.Isin = 'LU1106988527' and codprod in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
			when (spb.tipprod = 'fi' and spb.subprod = 'f43' and spb.codint = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (spb.subprod = 'cs80') then 'My Blue Protection 80'
			when (spb.subprod = 'ct80') then 'My White Protection 80'
			else ''
		    
		end as nomeprod,
		
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
		SPB.CTV AS ctv,
		SPB.ISIN,
		CON.chiaveClientePB,
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE
	spb.CODFIS = @CodiceFiscale and 
	 SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'

		  and 
		  ((SPB.Isin = 'LU1106988527' and codprod in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
				or
		   (spb.tipprod = 'fi'		-- FONDITALIA 80/FOI80
		    and spb.subprod = 'f43'
		    and spb.codint = '01')
			
			or
				spb.subprod in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (spb.codprod = 'RF'		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
		    and spb.subprod = 'MP')
			
			)

		--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')


		 -------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

		  ----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

		    ----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RF' and p.cod_sottoprodotto = 'MP'
		  --------------------------------------------------------------------------

		 SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				CONS.CodIsin,
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
		C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
		   TSCA.CODFIS =@CodiceFiscale
		   and TCP.dtuscita = '99991231'

		   UPDATE PATR_BF
				SET PATR_BF.REND_NON_RAPPR = 1
			FROM
				#REND_NON_RAPPR AS REND_NON_RAPPR
					INNER JOIN #PATR_BF AS PATR_BF
						ON PATR_BF.RETE = REND_NON_RAPPR.RETE
						AND PATR_BF.COD_FISCALE = 
								CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
									 ELSE  REND_NON_RAPPR.CODFIS
								END 
						AND PATR_BF.POSITIONID = REND_NON_RAPPR.POSITION_ID
		  
		  -----------------------------------------------------


		   ----------------------------------------raggruppo per area
		  select id_area,round(sum(controvalore_protetto),0) as totCapProt
		  into #capitaleProtetto
		  from #PATR_BF
		  where REND_NON_RAPPR = 0
		  group by id_area


		  ---------------------------------------------------------

SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171220]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f','BCCRRT43T09H449J'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171220]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
			when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(CAST(data_sottoscrizione AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)

--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  select id_area,round(sum(controvalore_protetto),0) as totCapProt
		  into #capitaleProtetto
		  from #PATR_BF
		  where REND_NON_RAPPR = 0
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171221]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--[C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno] 'f','BCCRRT43T09H449J'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20171221]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
			when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(CAST(data_sottoscrizione AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)

--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  select id_area,round(sum(controvalore_protetto),0) as totCapProt
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20180119]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20180119]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
		    -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			     --when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
				 when (Isin = 'LU1106988527' ) then 'INTERFUND 80' -- INTERFUND 80
		    -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(CAST(data_sottoscrizione AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
		     --(Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
		     (Isin = 'LU1106988527' ) -- INTERFUND 80/CAPPROT
		  -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)

--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  -- modifica del 21/12/2017 
		    --select id_area,round(sum(controvalore_protetto),0) as totCapProt
			  select id_area,sum(controvalore_protetto) as totCapProt
			-- fine modifica del 21/12/2017
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20180717_PrePre1Pre2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20180717_PrePre1Pre2]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
		    -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			     --when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
				 when (Isin = 'LU1106988527' ) then 'INTERFUND 80' -- INTERFUND 80
		    -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(data_sottoscrizione AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
		     --(Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
		     (Isin = 'LU1106988527' ) -- INTERFUND 80/CAPPROT
		  -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)

--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  -- modifica del 21/12/2017 
		    --select id_area,round(sum(controvalore_protetto),0) as totCapProt
			  select id_area,sum(controvalore_protetto) as totCapProt
			-- fine modifica del 21/12/2017
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20190717_preFixArrotondamento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_20190717_preFixArrotondamento]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
		    -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			     --when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
				 when (Isin = 'LU1106988527' ) then 'INTERFUND 80' -- INTERFUND 80
		    -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(data_sottoscrizione AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
		     --(Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
		     (Isin = 'LU1106988527' ) -- INTERFUND 80/CAPPROT
		  -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)

--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  -- modifica del 21/12/2017 
		    --select id_area,round(sum(controvalore_protetto),0) as totCapProt			  
				-- 20180717 Modificata per codificare Pre1 o Pre2 in Pre			  
				 --select id_area,sum(controvalore_protetto) as totCapProt
				 select
					 case
						when id_area = 'Pre1' or id_area = 'Pre2' then 'Pre'
						else id_area
					end as id_area,
					sum(controvalore_protetto) as totCapProt
				--fine modifica del 20180717
			-- fine modifica del 21/12/2017
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_pktest]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

create procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleAreeBisogno_pktest]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT -- PER DIVERSI DA CC ************************
		case 
		    -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			     --when (Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) then 'INTERFUND 80' -- INTERFUND 80
				 when (Isin = 'LU1106988527' ) then 'INTERFUND 80' -- INTERFUND 80
		    -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			when (tipo_prodotto = 'fi' and cod_sottoprodotto = 'f43' and cod_interno = '01') then 'FONDITALIA 80' 	-- FONDITALIA 80
			when (cod_sottoprodotto = 'cs80') then 'My Blue Protection 80'
			when (cod_sottoprodotto = 'ct80') then 'My White Protection 80'
			when (cod_interno = 'rf') then 'Linea Multiramo'
			else ''
		    
		end as nomeprod,
		
		RETE AS RETE,
		cod_fiscale AS COD_FISCALE,
		POSITION_ID AS POSITIONID,
		SUBSTRING(POSITION_ID,1,57) AS COD_PRODOTTO, 
		ID_CONTRATTO AS ID_CONTRATTO,
        CASE WHEN ISDATE(data_sottoscrizione) = 0 THEN NULL
				ELSE CAST(data_sottoscrizione AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		NUM_POLIZZA AS NUM_POLIZZA,
		COD_MAF AS COD_MAF,
		COD_INTERNO AS COD_INTERNO,
		COD_SOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		TIPO_PRODOTTO AS TIPO_PRODOTTO,
		id_area AS ID_AREA,
		CTV AS ctv,
		ISIN,
		--CON.chiaveClientePB,
        REND_NON_RAPPR,
        ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
        ORIZZ_TEMP_NUM,
        --CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CHIAVE_PROGETTO,
		convert(decimal(12,2),0) as controvalore_protetto

	INTO #PATR_BF
	
 from c6martperiodico.patrimonio_bf

	WHERE
	cod_fiscale = @CodiceFiscale 
	and rete = @rete

		  and 
		  (
		  -- modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
		     --(Isin = 'LU1106988527' and cod_interno in ('L191', 'RS', 'RM', 'RB', 'RV')) -- INTERFUND 80/CAPPROT
		     (Isin = 'LU1106988527' ) -- INTERFUND 80/CAPPROT
		  -- fine modifica per segnalazione qc del 21/12/2017 - cf S-VCCGRL39E57E356Q -	M.Diacci
			
			
			or

		   (tipo_prodotto = 'fi'		-- FONDITALIA 80/FOI80
		    and cod_sottoprodotto = 'f43'
		    and cod_interno = '01')
			
			or
				cod_sottoprodotto in ('cs80', 'ct80') -- myblue, mywhite 

			or
		   (cod_interno = 'RF')		-- LINEA MULTIRAMO PROTETTA CODPROD=RF/SUBPROD=MP
			
			)

--------------------------------------- calcolo il capitale protetto per ogni prodotto della linea CS80/CT80
		 update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  and p.cod_sottoprodotto = fvi.subprod
		  where  
		  p.cod_interno = 'RS' and p.cod_sottoprodotto in ('CS80','CT80')

-------------------------------------- aggiorno il capitale protetto dell'Interfund Crescita protetta 80

		   UPDATE patrimonio
		  set patrimonio.controvalore_protetto = capprot.controvalore_prot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.CAPPROT as capprot
		  on patrimonio.rete = capprot.rete and patrimonio.cod_fiscale=capprot.codfis
		  where patrimonio.id_contratto = capprot.cod_conf

----------------------------------------- aggiorno il capitale protetto del Fonditalia Crescita protetta 80

		    UPDATE patrimonio
		  set patrimonio.controvalore_protetto = foi.ctrvimpprot
		  from  #PATR_BF as patrimonio
		  inner join 
		  C6MartPeriodico.FOI80 as foi
		  on patrimonio.rete = foi.rete and patrimonio.cod_fiscale=foi.codfis
		  where patrimonio.id_contratto = foi.codconf

----------------------------------------- aggiorno il capitale protetto della linea multiramo protetta
			   update p
		 set controvalore_protetto = (fvi.[controvalore_prot] * (p.ctv/fvi.somma_ctv))
		 from  #PATR_BF p
		 inner join
		  C6MartPeriodico.capprot_fvi as fvi 
		  on p.rete = fvi.rete and p.cod_fiscale=fvi.codfis and p.id_contratto = fvi.cod_conf  
		  where  
		  p.cod_interno = 'RF' 

------------------------------------------------------------------------raggruppo per area
		  -- modifica del 21/12/2017 
		    --select id_area,round(sum(controvalore_protetto),0) as totCapProt
			  select id_area,sum(controvalore_protetto) as totCapProt
			-- fine modifica del 21/12/2017
		  into #capitaleProtetto
		  from #PATR_BF
		  --- modifica del 20/12/2017 per segnalazione qc 
		     --where REND_NON_RAPPR = 0
		  --- fine modifica del 20/12/2017 per segnalazione qc 
		  group by id_area

---------------------------------------------------------------
SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]

	  ,case  
			when ISNULL(cap.totCapProt,0) = 0 then 0
			else cap.totCapProt
			end as [capprot]

  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] pir

  left join #capitaleProtetto cap

  on pir.needarea = cap.id_area

  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento

		 

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleLineeProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--[C6MartPeriodico].[PL_S172ProtezioneCapitaleLineeProdotti] 's','VCCGRL39E57E356Q'
CREATE procedure [C6MartPeriodico].[PL_S172ProtezioneCapitaleLineeProdotti] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

declare @isinInterfund80 varchar(20)

set @isinInterfund80 = 'LU1106988527'

BEGIN


---------------------- LINEA PROTETTA (RF/MP)
select   Linea
		,Contratto
        ,VersatoNetto
        ,Controvalore
        ,ComponentePerformance
        ,ComponenteProtezione
        ,ControvaloreProtetto
        ,DataRiferimento
        ,PercentualePerformance
        ,PercentualeProtezione
		,ordine
	from
		(SELECT
		a.des_prod_tit as Linea
		,a.cod_conf as	  Contratto
        ,0 as      VersatoNetto
        ,a.controvalore_riferimento as      Controvalore
        ,0 as      ComponentePerformance
        ,a.componente_protezione as      ComponenteProtezione
        ,a.controvalore_prot as      ControvaloreProtetto
        ,convert(varchar(4), year(datarif)) + convert(varchar(2), month(datarif)) + convert(varchar(2), day(datarif)) as      DataRiferimento
        ,0 as      PercentualePerformance
        ,0 as      PercentualeProtezione
		,1 as ordine
		from [C6MartPeriodico].[CAPPROT_FVI] a
		where SUBPROD in ('MP')
		and CODFIS = @CodiceFiscale
		and rete = @Rete

union

		---------------------- MY BLUE/MY WHITE
		SELECT
		a.des_prod_tit as Linea
		,a.cod_conf as	  Contratto
        ,0 as      VersatoNetto
        ,a.controvalore_riferimento as      Controvalore
        ,0 as      ComponentePerformance
        ,a.componente_protezione as      ComponenteProtezione
        ,a.controvalore_prot as      ControvaloreProtetto
        ,convert(varchar(4), year(datarif)) + convert(varchar(2), month(datarif)) + convert(varchar(2), day(datarif)) as      DataRiferimento
        ,0 as      PercentualePerformance
        ,0 as      PercentualeProtezione
		,2 as ordine
		from [C6MartPeriodico].[CAPPROT_FVI] a
		where SUBPROD in ('CS80', 'CT80')
		and CODFIS = @CodiceFiscale
		and rete = @Rete

union

-- INTERFUND 80
	SELECT
		a.des_prod_tit as Linea
		,a.Cod_Conf as	  Contratto
        ,0 as      VersatoNetto
        ,a.Controvalore as      Controvalore
        ,0 as      ComponentePerformance
        ,0 as      ComponenteProtezione
        ,a.Controvalore_prot as      ControvaloreProtetto
        --,datarif as      DataRiferimento
		,convert(varchar(4), year(datarif)) + convert(varchar(2), month(datarif)) + convert(varchar(2), day(datarif)) as      DataRiferimento
        ,0 as      PercentualePerformance
        ,0 as      PercentualeProtezione
		,3 as ordine
	--into #tInterfund80
	FROM C6MartPeriodico.capprot a
	WHERE 1=1
	AND a.RETE = @Rete 
	AND a.CODFIS = @CodiceFiscale
	--and dttrim

	union
		---------------------- FONDITALIA 80
		SELECT
		a.desprodtit as Linea
		,a.codconf as	  Contratto
        ,0 as      VersatoNetto
        ,a.ctv as      Controvalore
        ,0 as      ComponentePerformance
        ,a.prezzoprot as      ComponenteProtezione
        ,a.ctrvimpprot as      ControvaloreProtetto
        ,dtrife as      DataRiferimento
        ,0 as      PercentualePerformance
        ,0 as      PercentualeProtezione
	    ,4 as ordine
	FROM c6martperiodico.foi80 a
	WHERE 1=1
	AND a.RETE = @Rete 
	AND a.CODFIS = @CodiceFiscale) as int
	 order by ordine asc,controvalore desc

			 
	
END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S181PreferenzeESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'BCCNDR69P21A462P'
CREATE     procedure [C6MartPeriodico].[PL_S181PreferenzeESG] --'F','MRTDRJ66P03G283W'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)

SELECT esg.[rete]
      ,[cod_fiscale]
      --,case 
		--when @SCADUTO_PARZIALE='P' then 0 else [Preferenza_esg_cliente]
		--end as
	  ,[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=25 and isnull(ind.SOGLIAESG,'0.00')<50 then 'Almeno pari al 25%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=50 and isnull(ind.SOGLIAESG,'0.00')<75 then 'Almeno pari al 50%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=75 then 'Almeno pari al 75%' else '-' end as Pref_Sost
	,case when cle.U_PREFSOST='S' then 'Y' 
		when cle.U_PREFSOST='N' then 'N' 
		else '-' end as U_PREFSOST --Ulteriori Preferenze di Sostenibilità modifica 10122024 Scapellato						   ----decommenta per ESG 2024
	--else 'N' end as U_PREFSOST --Ulteriori Preferenze di Sostenibilità							   ----decommenta per ESG 2024
	,case when cle.FLAGSFDR='S' then replace(cast(cle.SFDR_PERC as varchar(12)),'.00','')+'%' else '-' end as SFDR_PERC																   ----decommenta per ESG 2024
	,case when cle.FLAGTAXO='S' then replace(cast(cle.TAXO_PERC as varchar(12)),'.00','')+'%' else '-' end as TAXO_PERC																   ----decommenta per ESG 2024
	,case when cle.PAI_NO_DETT = 'S' then 'Preferisco non dettagliare' --modifica 10122024 Scapellato	
		  when isnull(cle.PAI_A,'')='' then '-' else cle.PAI_A end as PAI_A
	,case when cle.PAI_NO_DETT = 'S' then 'Preferisco non dettagliare' --modifica 10122024 Scapellato	
		  when isnull(cle.PAI_S,'')='' then '-' else cle.PAI_S end as PAI_S
	--,'Emissioni gas serra, Biodiversità, Acqua, Rifiuti, Governativi di tipo Ambientale, Settore immobiliare' as PAI_A				   ----decommenta per ESG 2024
	--,'Questioni Sociali e dei Dipendenti, Governativi di tipo Sociale' as PAI_S										   ----decommenta per ESG 2024
	,case when ESG_E='Y' then cle.PERCAMB_OK ELSE NULL END AS E_PERC_OK--,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS E_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_S='Y' then cle.PERCSOC_OK ELSE NULL END AS S_PERC_OK--,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS S_PERC_OK				   ----decommenta per ESG 2024
    ,case when ESG_G='Y' then cle.PERCGOV_OK ELSE NULL END AS G_PERC_OK--,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS G_PERC_OK				   ----decommenta per ESG 2024
   FROM [C6StampeCentralizzate].[C6MartPeriodico].[BrsClienteESG] esg
   left join C6MartPeriodico.wseian2 ind
  on ind.rete=esg.rete and ind.CODFIS=esg.cod_fiscale
  left join C6MartPeriodico.W6CLIESG cle
  on ind.rete=cle.rete and ind.CODFIS=cle.CODFIS
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale
	AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S181PreferenzeESG_BKP_20231116_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'BCCNDR69P21A462P'
CREATE     procedure [C6MartPeriodico].[PL_S181PreferenzeESG_BKP_20231116_PRE_RAFFORZAMENTO] --'S','95196860100'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


SELECT esg.[rete]
      ,[cod_fiscale]
      ,[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=25 and isnull(ind.SOGLIAESG,'0.00')<50 then 'Almeno pari al 25%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=50 and isnull(ind.SOGLIAESG,'0.00')<75 then 'Almeno pari al 50%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=75 then 'Almeno pari al 75%' else '-' end as Pref_Sost
   FROM [C6StampeCentralizzate].[C6MartPeriodico].[BrsClienteESG] esg
   left join C6MartPeriodico.wseian2 ind
  on ind.rete=esg.rete and ind.CODFIS=esg.cod_fiscale
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S181PreferenzeESG_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S172PreferenzeESG] 'S', 'BCCNDR69P21A462P'
CREATE procedure [C6MartPeriodico].[PL_S181PreferenzeESG_bkp_20250228_Pre_ESG2024]-- 'F','FSCSIA47A70G420M'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)



SELECT esg.[rete]
      ,[cod_fiscale]
      --,case 
		--when @SCADUTO_PARZIALE='P' then 0 else [Preferenza_esg_cliente]
		--end as
	  ,[Preferenza_esg_cliente]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,CAST(ROUND(ISNULL(obiettivo_ESG_minimo, 0.00), 2) AS decimal(6, 2)) AS obiettivo_ESG_minimo
      ,[ESG_Rating]
      ,CAST(ROUND(ISNULL(ESG_E_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_E_perc
      ,CAST(ROUND(ISNULL(ESG_S_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_S_perc
      ,CAST(ROUND(ISNULL(ESG_G_perc, 0.00), 2) AS decimal(6, 2)) AS ESG_G_perc
	  ,case when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=25 and isnull(ind.SOGLIAESG,'0.00')<50 then 'Almeno pari al 25%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=50 and isnull(ind.SOGLIAESG,'0.00')<75 then 'Almeno pari al 50%'
			when coerenza<>'Z' and isnull(ind.SOGLIAESG,'0.00')>=75 then 'Almeno pari al 75%' else '-' end as Pref_Sost
			,'Y' as U_PREFSOST -- aggiunta da GB
			,0 as SFDR_PERC    -- aggiunta da GB
			,0 as TAXO_PERC    -- aggiunta da GB
			,'' as PAI_A       -- aggiunta da GB
			,'' as PAI_S       -- aggiunta da GB
			,0 as E_PERC_OK    -- aggiunta da GB
			,0 as S_PERC_OK    -- aggiunta da GB
			,0 as G_PERC_OK    -- aggiunta da GB
   FROM [C6StampeCentralizzate].[C6MartPeriodico].[BrsClienteESG] esg
   left join C6MartPeriodico.wseian2 ind
  on ind.rete=esg.rete and ind.CODFIS=esg.cod_fiscale
WHERE 1 = 1
	AND esg.RETE = @Rete
	AND esg.COD_FISCALE = @CodiceFiscale
	AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--se nella generazione del report da errore molto probabilmente ci sta una chiaveclientePB diversa sulla appocontratti dalla vinfocliente
--cambiala sull'appo contratti e contrattipretrimestrale





-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG] 'F', '98196710176'
CREATE procedure [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG] --'S','DGSMHL70H08Z404F'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

---
	SELECT distinct
		[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
	  into #temp
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 	= @rete
  AND	[CodiceFiscale] = @codicefiscale
  order by ordinamento
	
	declare @totale_risorse_finanziarie decimal(38,3)
	declare @totale_patrimonio decimal(38,3)
	declare @partite_viaggianti decimal(38,3)

	 select @totale_risorse_finanziarie = SUM(controvaloreAttuale) from #temp where needarea in ('Ext','Inv','Pre','Ris','Liq','Na')
 having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

  select @totale_patrimonio = SUM(controvaloreAttuale) from #temp 
  having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

  select @partite_viaggianti= PartiteViaggiantiInv from wh.Maledetti
 where i_Rete=@Rete and i_CodiceFiscale=@CodiceFiscale

  set @totale_patrimonio=@totale_patrimonio + @partite_viaggianti


		 
 select 
	case when @totale_risorse_finanziarie=@totale_patrimonio then 'Tot_P' else 'Tot_F' end as needarea,
	case when @totale_risorse_finanziarie=@totale_patrimonio then 'TOTALE PATRIMONIO' else 'TOTALE RISORSE FINANZIARIE' end as needareades,
	'100' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	SUM(controvaloreattuale) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
from #temp 
where needarea in ('Ext','Inv','Pre','Ris','Liq','Na')
having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

 union all

 select 
	'Tot_F' as needarea,
	'' as needareades,
	'101' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'C/C a saldo negativo' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	SUM(controvaloreattuale) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 where needarea in ('CC')
 having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000
 
 union all
 
 select 
	'Tot_F' as needarea,
	'' as needareades,
	'102' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'Operazioni in corso' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	PartiteViaggiantiInv as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from wh.Maledetti
 where i_Rete=@Rete and i_CodiceFiscale=@CodiceFiscale
 and PartiteViaggiantiInv<>'0.000'

 
 union all 
 
 select top (1)
	'Tot_P' as needarea,
	'TOTALE PATRIMONIO' as needareades,
	'103' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	@totale_patrimonio as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 where @totale_risorse_finanziarie<>@totale_patrimonio
 --having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000 and SUM(controvaloreAttuale) <> @totale_risorse_finanziarie


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG_Mon]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG] 'F', '98196710176'
CREATE procedure [C6MartPeriodico].[PL_S182BISDettaglioProdottiESG_Mon] --'S','DGSMHL70H08Z404F'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

---
	SELECT distinct
		[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
	  into #temp
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 	= @rete
  AND	[CodiceFiscale] = @codicefiscale
  order by ordinamento
	
	declare @totale_risorse_finanziarie decimal(38,3)
	declare @totale_patrimonio decimal(38,3)
	declare @partite_viaggianti decimal(38,3)

	 select @totale_risorse_finanziarie = SUM(controvaloreAttuale) from #temp where needarea in ('Ext','Inv','Pre','Ris','Liq','Na')
 having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

  select @totale_patrimonio = SUM(controvaloreAttuale) from #temp 
  having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

  select @partite_viaggianti= PartiteViaggiantiInv from wh.Maledetti
 where i_Rete=@Rete and i_CodiceFiscale=@CodiceFiscale

  set @totale_patrimonio=@totale_patrimonio + @partite_viaggianti


		 
 select 
	case when @totale_risorse_finanziarie=@totale_patrimonio then 'Tot_P' else 'Tot_F' end as needarea,
	case when @totale_risorse_finanziarie=@totale_patrimonio then 'TOTALE PATRIMONIO' else 'TOTALE RISORSE FINANZIARIE' end as needareades,
	'100' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	SUM(controvaloreattuale) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
from #temp 
where needarea in ('Ext','Inv','Pre','Ris','Liq','Na')
having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000

 union all

 select 
	'Tot_F' as needarea,
	'' as needareades,
	'101' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'C/C a saldo negativo' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	SUM(controvaloreattuale) as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 where needarea in ('CC')
 having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000
 
 union all
 
 select 
	'Tot_F' as needarea,
	'' as needareades,
	'102' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'Operazioni in corso' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	PartiteViaggiantiInv as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from wh.Maledetti
 where i_Rete=@Rete and i_CodiceFiscale=@CodiceFiscale
 and PartiteViaggiantiInv<>'0.000'

 
 union all 
 
 select top (1)
	'Tot_P' as needarea,
	'TOTALE PATRIMONIO' as needareades,
	'103' as areasortorder,
	'' as nome_progetto,
	0 as ordinamento_progetto,
	0.00 as somma_controval_needarea,
	0.00 as somma_controval_need_prog,
	0.00 as versato_need_prog,
	'' as dataSottoscrizione,
	'' as ContrattoDossier,
	'' as Descrizione,
	'' as ESG_E,
	'' as ESG_S,
	'' as ESG_G,
	'' as CatSFDR,
	'' as ESGRating,
	'' as TrendESGRating,
	@totale_patrimonio as Controvalore,
	0.00 as PerformanceYTD,
	0.00 as PerformanceDS,
	'' as TipoProdotto
 from #temp 
 where @totale_risorse_finanziarie<>@totale_patrimonio
 --having SUM(controvaloreAttuale) is not null and SUM(controvaloreattuale)<>0.000 and SUM(controvaloreAttuale) <> @totale_risorse_finanziarie


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S182DettaglioProdottiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S182DettaglioProdottiESG] 'F', 'GLLGZN62T06H501I'
CREATE procedure [C6MartPeriodico].[PL_S182DettaglioProdottiESG] --'F','CVLDVD73P22C415X'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
--SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--CASE 
--	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
--	ELSE NULL 
--END as versato_needareaString,
--SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--CASE 
--	WHEN COUNT( CASE 
--					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
--					ELSE NULL 
--				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
--	ELSE NULL 
--END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
--		THEN 'n.d.'
--	ELSE NULL
--END	AS versato_need_progString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
--	ELSE NULL
--END	AS MinusPlusValenza_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
--		THEN 'n.d.'
--	ELSE NULL
--END	AS MinusPlusValenza_need_progString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--	ELSE NULL
--END	AS somma_var_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--	ELSE NULL
--END	AS somma_copertura_need_prog,
--RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
--CASE 
--	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
--		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--	ELSE NULL 
--END AS var_needareaString,
--CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
--	CASE 
--	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
--		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--	ELSE '' 
--END AS copertura_needareaString,
--RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
--CASE 
--	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	ELSE NULL 
--END AS var_need_progString,
--RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

	case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,

PATRBF.CTV AS Controvalore, 
--PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
--CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
--CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

--case when (patrbf.tipo_prodotto ='CC') then 0.00 
--else RISCHIO_PROD.VAR_PERC_PTF
--end AS VaRprodotto, 

--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
--     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--ELSE NULL END as varProdottoString,

--case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--else RISCHIO_PROD.Copertura 
--end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--PARTVIA_DISINV AS partitaViaggiante,
--CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
--RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,


	--RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto
	,case when isnull(cat.esg_e_prod_cli,'N')='Y' then 'S' else 'N' end as esg_e_prod_cli
	,case when isnull(cat.esg_s_prod_cli,'N')='Y' then 'S' else 'N' end as esg_s_prod_cli
	,case when isnull(cat.esg_g_prod_cli,'N')='Y' then 'S' else 'N' end as esg_g_prod_cli


FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN 
--C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
--						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
--				
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--
--
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--		
left join [C6StagingPeriodico].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
		left join C6MartPeriodico.W6CATESG cat
	on PATRBF.cod_prodotto = cat.PRODOTTO_ID
	AND PATRBF.rete = cat.rete
	AND PATRBF.COD_FISCALE =cat.codfis
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
     AND PATRBF.CTV <>0
	 and AREA.ORDINAMENTO in (1,2,3,4,5,8,9) --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END 
	,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC
 


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S182DettaglioProdottiESG_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================
-- [C6MartPeriodico].[PL_S182DettaglioProdottiESG] 'F', 'GLLGZN62T06H501I'
CREATE   procedure [C6MartPeriodico].[PL_S182DettaglioProdottiESG_bkp_20250228_Pre_ESG2024] --'F','GLLGZN62T06H501I'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
--SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
--CASE 
--	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
--	ELSE NULL 
--END as versato_needareaString,
--SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
--CASE 
--	WHEN COUNT( CASE 
--					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
--					ELSE NULL 
--				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
--	ELSE NULL 
--END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
--		THEN 'n.d.'
--	ELSE NULL
--END	AS versato_need_progString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
--	ELSE NULL
--END	AS MinusPlusValenza_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
--		THEN 'n.d.'
--	ELSE NULL
--END	AS MinusPlusValenza_need_progString,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
--	ELSE NULL
--END	AS somma_var_need_prog,
--CASE 
--	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
--	ELSE NULL
--END	AS somma_copertura_need_prog,
--RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
--CASE 
--	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
--		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
--	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
--		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
--	ELSE NULL 
--END AS var_needareaString,
--CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
--	CASE 
--	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
--		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--	ELSE '' 
--END AS copertura_needareaString,
--RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
--CASE 
--	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--	ELSE NULL 
--END AS var_need_progString,
--RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

	case when ESG_E = 'SI' then 'Sì' else 'No' end as ESG_E,
    case when ESG_S = 'SI' then 'Sì' else 'No' end as ESG_S,
    case when ESG_G = 'SI' then 'Sì' else 'No' end as ESG_G,
    case when CatSFDR <> '' then esg.CatSFDR else '-' end as CatSFDR,
    case when ESGRating <> '' then esg.esgrating else '-' end as ESGRating,
    case when TrendESGRating <> '' then esg.TrendESGRating else '-' end as TrendESGRating,

PATRBF.CTV AS Controvalore, 
--PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
--CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
--MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
--CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

--case when (patrbf.tipo_prodotto ='CC') then 0.00 
--else RISCHIO_PROD.VAR_PERC_PTF
--end AS VaRprodotto, 

--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
--     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
--ELSE NULL END as varProdottoString,

--case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--else RISCHIO_PROD.Copertura 
--end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
--PARTVIA_DISINV AS partitaViaggiante,
--CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
--RISCHIO_PROD.CREDITRISK as creditrisk,
--CASE 
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
--	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
--		ELSE NULL 
--	END as creditriskstring,


	--RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto
		,CASE
           WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
           ELSE 'N' end as ESG_E_PROD_CLI,----decommenta per ESG 2024
	CASE
           WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
           ELSE 'N' end as ESG_S_PROD_CLI,----decommenta per ESG 2024
	CASE
           WHEN CAST(NEWID() AS BINARY(1)) % 2 = 0 THEN 'S'
           ELSE 'N' end as ESG_G_PROD_CLI	----decommenta per ESG 2024



FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--LEFT JOIN 
--C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
--						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
--				
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE
--
--
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
--		
left join [C6StagingPeriodico].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
     AND PATRBF.CTV <>0
	 and AREA.ORDINAMENTO in (1,2,3,4,5,8,9) --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi
ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END 
	,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC
 


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S183iCapital]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================

CREATE procedure [C6MartPeriodico].[PL_S183iCapital] --'F','GSSGLI67A52F205P'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


	SELECT
distinct
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS Codarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS NomeArea,
--CASE 
--	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
--	ELSE AREA.ORDINAMENTO 
--END AS OrdineArea,
iCap.codconf as CodiceContratto,
iCap.sgr as ContrattoSGR,
iCap.descprod as NomeProdotto,
iCap.dtiniz as DataInizio,
iCap.dtfine as DataFine,
iCap.CTV_COMMIT as Totale,
iCap.impvers as ImportoVersato,
iCap.impres as ImportoDaVersare
from  C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
inner join C6MartPeriodico.WSEICAP iCap 
on icap.codconf=PATRBF.ID_CONTRATTO
and icap.subprod=PATRBF.COD_SOTTOPRODOTTO
--and icap.isin=patrbf.ISIN
where icap.RETE=@Rete 
and icap.COD_FISCALE=@CodiceFiscale 

--select Codarea,NomeArea,CodiceContratto,ContrattoSGR,NomeProdotto,DataInizio,DataFine,
--cast(Totale as decimal(15,2))as Totale,
--cast(ImportoVersato as decimal(15,2))as ImportoVersato ,
--cast(ImportoDaVersare as decimal(15,2)) as ImportoDaVersare 
--from C6MartPeriodico.test_icapital 
--where rete=@rete and CODiceFISCALE=@CodiceFiscale





	--SELECT 
	--	'Inv' as CodArea,
	--	'Investimento' as NomeArea,
	--	'954572CO210' as CodiceContratto,
	--	'BlackRock' as ContrattoSGR,
	--	'Prodotto di Test' as NomeProdotto,
	--	'05/04/2022' as DataInizio,
	--	'15/01/2023' as DataFine,
	--	'23468.230' as Totale,
	--	'632.234' as ImportoVersato,
	--	'326.263' as ImportoDaVersare



END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S184CoerenzaESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


















--Inv	Investimento	021233XY004	BLACK ROCK EQT X 20230215	99999999	300000.000	0.000	300000.000

-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================

CREATE       procedure [C6MartPeriodico].[PL_S184CoerenzaESG] -- 'S','BLLNTN47H20D758F'

 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN
select w.Rete,
	   w.CODFIS,
	   case when w.COERENZA='Z' then '-' 
			when w.SOGLIAESG=25.00 then 'Almeno pari al 25%'
	        when w.SOGLIAESG=50.00 then 'Almeno pari al 50%'
			when w.SOGLIAESG=75.00 then 'Almeno pari al 75%'
			else '-' end as percESG,
			CAST(ROUND(ISNULL(b.obiettivo_ESG_minimo, 0.00), 2) AS decimal(10, 2)) AS pesoSostESG,
	 --  ROUND(isnull(b.obiettivo_ESG_minimo,0.00),2) as pesoSostESG,
	   case 
	   when ISNULL(b.obiettivo_ESG_minimo, 0.00)>w.SOGLIAESG then 'S'--w.COERENZA='S' then 'S'
	   when w.COERENZA='X' and ISNULL(b.obiettivo_ESG_minimo, 0.00)>w.SOGLIAESG then 'S'    
	   when w.COERENZA='Z' then 'Z'
	   else 'N' end as Coerenza
	 --  case when RISERVA='N' or invl_period='N' Or clcompl='N' Or flgconc='N' or freq='N' Or concemi='N' or ADEGCONC_VALUT='N' or COERENZA='N'  then 'N' else 'S' end as Nota_Adeguatezza
 from C6MartPeriodico.WSEIAN2 w left join 
 C6MartPeriodico.BrsClienteESG b on w.rete=b.rete and w.CODFIS=b.cod_fiscale
where w.Rete=@Rete and w.CODFIS=@CodiceFiscale
and w.PREFSOST = 'S' -- questa tabella deve apparire solo per chi ha espresso la preferenza di sostenibilità
--and b.Preferenza_esg_cliente=1 
--and w.COERENZA<>'X' -- questa condizione serve per i clienti professional che non hanno questo indicatore
--and w.FLGPROF='N'




--COERENZA = 'S' SI
--COERENZA = 'N' NO
--COERENZA = 'X' Errore di R4
--COERENZA = 'Z' con ESG senza soglia di sostenibilita ( deve apparire n.a.)

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S184CoerenzaESG_BKP_20231013]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--Inv	Investimento	021233XY004	BLACK ROCK EQT X 20230215	99999999	300000.000	0.000	300000.000

-- Stored procedure

-- =============================================
-- Author:		Simone D'Elia
-- Create date: Aprile 2022
-- Description: 
-- =============================================

CREATE    procedure [C6MartPeriodico].[PL_S184CoerenzaESG_BKP_20231013] --'F','TVRNRC51H06L665B'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN
select w.Rete,
	   w.CODFIS,
	   case when w.SOGLIAESG=25.00 then 'Almeno pari al 25%'
	        when w.SOGLIAESG=50.00 then 'Almeno pari al 50%'
			when w.SOGLIAESG=75.00 then 'Almeno pari al 75%'
			else '-' end as percESG,
			CAST(ROUND(ISNULL(b.obiettivo_ESG_minimo, 0.00), 2) AS decimal(10, 2)) AS pesoSostESG,
	 --  ROUND(isnull(b.obiettivo_ESG_minimo,0.00),2) as pesoSostESG,
	   case when w.COERENZA='S' then 'S'
	   when w.COERENZA='X' and ISNULL(b.obiettivo_ESG_minimo, 0.00)>w.SOGLIAESG then 'S' 
	   else 'N' end as Coerenza  
 from C6MartPeriodico.WSEIAN2 w left join 
 C6MartPeriodico.BrsClienteESG b on w.rete=b.rete and w.CODFIS=b.cod_fiscale
where w.Rete=@Rete and w.CODFIS=@CodiceFiscale
and w.PREFSOST = 'S' -- questa tabella deve apparire solo per chi ha espresso la preferenza di sostenibilità
--and b.Preferenza_esg_cliente=1 
--and w.COERENZA<>'X' -- questa condizione serve per i clienti professional che non hanno questo indicatore

--COERENZA = 'S' SI
--COERENZA = 'N' NO
--COERENZA = 'X' Errore di R4
--COERENZA = 'Z' con ESG senza soglia di sostenibilita ( deve apparire n.a.)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S185UCaratteristicheESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









																	  
CREATE   procedure [C6MartPeriodico].[PL_S185UCaratteristicheESG] -- 'F','TRCDZN57A44I284J'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
		

	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,
	
	
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_SFDR,

CASE 
   WHEN isnull(esg.PERC_INVEST_SFDR_MIN_SUST_E,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_E), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_AMB,																  ----decommenta per ESG 2024
																								  --decommenta per ESG 202																					  --decommenta per ESG 2024
CASE 																								  ----decommenta per ESG 2024
   WHEN isnull(esg.PERC_INVEST_SFDR_MIN_SUST_S,0.00) = 0.00 											  ----decommenta per ESG 2024
      THEN '-' 																					  ----decommenta per ESG 2024
   ELSE 																							  ----decommenta per ESG 2024
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVEST_SFDR_MIN_SUST_S), '.', ',')-- + '%'					  ----decommenta per ESG 2024
END AS PERC_INVESTIMENTO_SFDR_SOC,																  ----decommenta per ESG 2024

	CASE 
   WHEN ISNULL(esg.PERC_INVESTIMENTO_TAXONOMY, 0.00) = 0.00 
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_TAXONOMY), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_TAXONOMY,

	isnull(esg.label_PAI_A,'-') as label_PAI_A,
	isnull(esg.Label_PAI_S,'-') as label_PAI_S,
	isnull(esg.Label_U_INFO_ESG,'-') as label_U_INFO_ESG,
	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
left join [C6StagingPeriodico].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S185UCaratteristicheESG_bkp_20250228_Pre_ESG2024]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







																	  
CREATE   procedure [C6MartPeriodico].[PL_S185UCaratteristicheESG_bkp_20250228_Pre_ESG2024] --'F','BRGLCU52B09F839W'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007' )
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT 
	CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,   					   
CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
		WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
		ELSE AREA.NOME_AREA 
	END AS needareades,
	CASE 
		WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
		ELSE AREA.ORDINAMENTO 
	END AS areasortorder,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
		ELSE PATRBF.NOME_PROGETTO
	END AS nome_progetto,
	CASE 
		WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, NOME_PROGETTO) 
		ELSE NULL	
	END	AS somma_controval_need_prog,
		

	CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
		 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
	END AS Descrizione,
	
	
CASE 
   WHEN isnull(esg.PERC_INVESTIMENTO_SFDR,0.00) = 0.00 
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_SFDR), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_SFDR,

	CASE 
   WHEN ISNULL(esg.PERC_INVESTIMENTO_TAXONOMY, 0.00) = 0.00 
      THEN '-' 
   ELSE 
      REPLACE(CONVERT(VARCHAR(10), esg.PERC_INVESTIMENTO_TAXONOMY), '.', ',')-- + '%'
END AS PERC_INVESTIMENTO_TAXONOMY,

	isnull(esg.label_PAI_A,'-') as label_PAI_A,
	isnull(esg.Label_PAI_S,'-') as label_PAI_S,
	isnull(esg.Label_U_INFO_ESG,'-') as label_U_INFO_ESG,
	PATRBF.CTV AS Controvalore,
	SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
	ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
	ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
left join [C6StagingPeriodico].[ESG_ANAG_METRICHE] esg
on esg.cod_prodotto = ANAGPROD.COD_PRODOTTO
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC								   
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)


WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
	--V  
	AND PATRBF.CTV > 0
	AND AREA.ORDINAMENTO in (1,2,3,4,5,8,9)  --aggiunto 10/10/2022 per non far uscire le risorse non allocate e c/c negativi

ORDER BY 
	CASE
	when AREA.ORDINAMENTO = 10 then 10
	when AREA.ORDINAMENTO = 5 then 5
	when AREA.ORDINAMENTO = 4 then 4
	WHEN AREA.ORDINAMENTO = 8 or area.ORDINAMENTO = 9 then 3 
	when AREA.ORDINAMENTO = 3 then 3
	when AREA.ORDINAMENTO = 2 then 2
	when AREA.ORDINAMENTO = 1 then 1
	ELSE  3
END , nome_progetto, PATRBF.CTV DESC
															 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S186DettaglioPortafoglioSei]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













--select * from wh.Maledetti


																	  
CREATE   procedure [C6MartPeriodico].[PL_S186DettaglioPortafoglioSei] --'F','00545400483'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

declare @appo table
(
  	[BFCTV] [decimal](15, 2) NULL,
	[PatrimonioTerziCTV] [decimal](15, 2) NULL,
	[FinanziarioCTV] [decimal](16, 2) NULL,
	[FinanziarioPerc] [decimal](6, 2) NULL,
	[ImmobiliareCTV] [decimal](15, 2) NULL,
	[ImmobiliarePerc] [decimal](6, 2) NULL,
	[AltroCTV] [decimal](15, 2) NULL,
	[AltroPerc] [decimal](6, 2) NULL,
	[TotaleCTV] [decimal](15, 2) NULL,
	[ImmobiliarePQCTV] [decimal](15, 2) NULL

)
--creo le tabelle di appoggio
insert into @appo exec [C6MartPeriodico].[PL_D2_S152Patrimonio]  @Rete,@CodiceFiscale

declare @TotCTV [decimal](15, 2) =(select [BFCTV] from @appo)



SELECT
--distinct

dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore,
--SUM(PATRBF.CTV) OVER() AS SommaProdottiEsclusi,
SUM(CASE 
        WHEN PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV < 0 THEN 0 
        ELSE PATRBF.CTV 
    END) OVER() AS SommaProdottiEsclusi, --per escludere i CC a Saldo Negativo
@TotCTV as PatrimonioFideuram,
@TotCTV-SUM(CASE 
        WHEN PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV < 0 THEN 0 
        ELSE PATRBF.CTV 
    END) OVER() AS PortafoglioSei
--@TotCTV-SUM(PATRBF.CTV) OVER() as PortafoglioSei

FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
--INNER JOIN 
--C6MartPeriodico.AREA_BISOGNO AREA 
--ON 
--	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
--	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
--LEFT JOIN 
--C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
--ON 
--	PATRBF.RETE= RISCHIO_PROD.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
--	AND RISCHIO_PROD.COD_AGGREG = 
--				CASE 
--					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
--						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
--						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
--					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
--					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
--				END
----		END + PATRBF.POSITION_ID 
--		+ PATRBF.POSITION_ID 
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
--	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
--	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
--		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
--LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
--	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


--	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
--	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
--		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
--         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
--		end
----	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
----		CASE AREA.ID_AREA 
----			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
----			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
----		END
--LEFT JOIN
--C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
--ON
--	PATRBF.RETE = MONIT.RETE
--	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
--	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
--	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

----Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
		--aggiunta 18/12/2022 per APC103
--left join C6MartPeriodico.WSEICC apc
--on 
--	apc.RETE=PATRBF.RETE
--	and	apc.cod_fiscale=patrbf.cod_fiscale
--	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
--	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
--	--fine aggiunta 18/12/2022 per APC103
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    --  AND (
    --    (PATRBF.TIPO_PRODOTTO = 'CC' AND PATRBF.CTV > 0) OR --per eliminare i CC a saldo Negativo
    --    (PATRBF.TIPO_PRODOTTO <> 'CC' AND PATRBF.CTV <> 0)
    --)
	AND PATRBF.Nob_Prez='S'

order by PATRBF.CTV desc

															 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S187SfdrTaxESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










																	  
CREATE   procedure [C6MartPeriodico].[PL_S187SfdrTaxESG]-- 'F','00936710151'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)
declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6MartPeriodico.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale

declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6MartPeriodico].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale

if(@pref_esg='1' AND @U_PREFSOST='S')
begin
 select
 1 as ID,
	'Prodotti sostenibili SFDR' as Descrizione,
	replace(cast(cli.SFDR_PERCT as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
 select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast(cli.SFDR_PERC_OK as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,case when cli.FLAGSFDR='N' then 'Y' 
		else 'N' end as isNA
	from [C6MartPeriodico].[W6CliESG] cli
	WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
	AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 3 as ID,
	'Prodotti non sostenibili' as Descrizione,
 	replace(cast((100-cli.SFDR_PERCT)as varchar(16)),'.',',') as Peso,
	'SFDR' as Tabella
		,'N' as isNA
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'SFDR' as Tabella
		,'N' as isNA
     from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 5 as ID,
	'Prodotti ecosostenibili Taxonomy' as Descrizione,
	replace(cast(cli.TAXO_PERCT as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	 replace(cast (cli.TAXO_PERC_OK as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,case when cli.FLAGTAXO='N' then 'Y' 
		else 'N' end as isNA
	 from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 7 as ID,
	'Prodotti non ecosostenibili' as Descrizione,
	replace(cast((100-cli.TAXO_PERCT) as varchar(16)),'.',',') as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'Taxonomy' as Tabella
		,'N' as isNA
	 from C6MartPeriodico.[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'

--	select * from [C6MartPeriodico].[W6CliESG] cli
end														 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S188PaiESG]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--select distinct u_prefsost  from [C6MartPeriodico].[W6CliESG] cli

--select * from wh.Maledetti
																  
CREATE  procedure [C6MartPeriodico].[PL_S188PaiESG] --'F','BNDDDM46C12B967J'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

DECLARE @SCADUTO_PARZIALE varchar(16)
SET @SCADUTO_PARZIALE= (select distinct FLGPROF from C6MartPeriodico.wseirpf where rete=@rete and CODFIS=@CodiceFiscale)
declare @pref_esg varchar(2)
select @pref_esg=Preferenza_esg_cliente from C6MartPeriodico.BrsClienteESG where rete=@Rete and cod_fiscale=@CodiceFiscale

declare @U_PREFSOST varchar(2)
select @U_PREFSOST=U_PREFSOST from [C6MartPeriodico].[W6CliESG] where rete=@Rete and codfis=@CodiceFiscale

if(@pref_esg='1' and @U_PREFSOST='S')
begin	

select 1 as ID,
	'Prodotti che considerano almeno un PAI ambientale' as Descrizione,
	replace(cast(cli.PAIA_PERCT as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 2 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(cli.PAIA_PERC_OK as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,case when isnull(cli.PAI_A,'')='' then 'Y' 
		else 'N' end as isNA 
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 3 as ID,
	'Prodotti che non considerano PAI ambientali' as Descrizione,
 	replace(cast((100-cli.PAIA_PERCT) as varchar(16)),'.',',') as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	  from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 4 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Ambientali' as Tabella
		,'N' as isNA
	union
select 5 as ID,
	'Prodotti che considerano almeno un PAI sociale' as Descrizione,
	replace(cast(cli.PAIS_PERCT as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 6 as ID,
	'di cui in linea con le Preferenze di Sostenibilità' as Descrizione,
	replace(cast(cli.PAIS_PERC_OK as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,case when isnull(cli.PAI_S,'')='' then 'Y' 
		else 'N' end as isNA 
from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 7 as ID,
	'Prodotti che non considerano PAI sociali' as Descrizione,
	replace(cast((100-cli.PAIS_PERCT) as varchar(16)),'.',',') as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA
from [C6MartPeriodico].[W6CliESG] cli
 WHERE 1 = 1
 AND cli.RETE =  @Rete
 AND cli.CODFIS =@CodiceFiscale
AND ISNULL(@SCADUTO_PARZIALE,'') <>'P'
	union
select 8 as ID,
	'TOTALE' as Descrizione,
	'100,00' as Peso,
	'PAI Sociali' as Tabella
		,'N' as isNA

end															 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S18PatrimonioFinanziarioRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S18PatrimonioFinanziarioRischio] 'F','GRZDSG43E11D193N'
CREATE procedure [C6MartPeriodico].[PL_S18PatrimonioFinanziarioRischio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	DECLARE @varComplessivo DECIMAL(12,3)
	DECLARE @varBF DECIMAL(12,3)
	DECLARE @varTerzi DECIMAL(12,3)
	DECLARE @coperturaBF DECIMAL(12,3)
	DECLARE @coperturaTERZI DECIMAL(12,3)
	DECLARE @coperturaCOMPLESSIVO DECIMAL(12,3)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)

	SELECT
		@varComplessivo = VAR_PERC_PTF,
		@coperturaCOMPLESSIVO = COPERTURA
	FROM
		C6MartPeriodico.RISCHIO_AGGREGATO AS RA
	WHERE
		RA.RETE = @Rete AND
		RA.COD_FISCALE = @CodiceFiscale AND
		RA.COD_AGGREG = 'COMPLESSIVO'

	SELECT
		@varBF = VAR_PERC_PTF,
		@coperturaBF = COPERTURA
	FROM
		C6MartPeriodico.RISCHIO_AGGREGATO AS RA
	WHERE
		RA.RETE = @Rete AND
		RA.COD_FISCALE = @CodiceFiscale AND
		RA.COD_AGGREG = 'COMPLESSIVO|BF'

	SELECT
		@varTerzi = VAR_PERC_PTF,
		@coperturaTERZI = COPERTURA
	FROM
		C6MartPeriodico.RISCHIO_AGGREGATO AS RA
	WHERE
		RA.RETE = @Rete AND
		RA.COD_FISCALE = @CodiceFiscale AND
		RA.COD_AGGREG = 'COMPLESSIVO|TERZI'

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = CR.DESCRIZIONE
	FROM
		C6MartPeriodico.MIFID AS M 
		INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR 
		ON M.PROFILO_ASS = CR.PROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		@varProfilo as varProfilo,
--		isnull(@varComplessivo,0) as varComplessivo,
--		isnull(@varBF,0) as varBF,
--		isnull(@varTerzi,0) as varTerzi,
		@varComplessivo as varComplessivo,
		@varBF as varBF,
		@varTerzi as varTerzi,
		CASE 
			WHEN @coperturaCOMPLESSIVO IS NULL THEN 'n.c.'
			WHEN @coperturaCOMPLESSIVO = 0 THEN 'n.c.'
			ELSE NULL
		END AS varComplessivoString,
		CASE 
			WHEN @coperturaBF IS NULL THEN 'n.c.'
			WHEN @coperturaBF = 0 THEN 'n.c.'
			ELSE NULL
		END AS varBFString,
		CASE 
			WHEN @coperturaTERZI IS NULL THEN 'n.c.'
			WHEN @coperturaTERZI = 0 THEN 'n.c.'
			ELSE NULL
		END AS varTerziString,
		isnull(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S1Patrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S1Patrimonio]  'F','MRSPLA53H24D643J'
CREATE procedure [C6MartPeriodico].[PL_S1Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MartPeriodico.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area <> 'CC' --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MartPeriodico.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6Martperiodico.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S23DettaglioRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S23DettaglioRischio]   'F','BRNDRA65B04B300I'
CREATE procedure [C6MartPeriodico].[PL_S23DettaglioRischio] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT DISTINCT 
		isnull(MIFID.PROFILO_ASS,0)  as codiceProfilo,
		
		CASE 
			WHEN (CODRISCHIO.MAX_VAR is null) THEN 'n.c'
			ELSE null
		END as varProfiloMaxString,
		
		CODRISCHIO.MAX_VAR as varProfiloMax,
		
		MIFID.RISKCLASS AS CreditRiskMax,
		CASE
			WHEN MIFID.RISKCLASS IS NULL THEN 'n.c.'
			ELSE NULL
		END AS  CreditRiskMaxString, 
		PT.INTERMEDIARIO AS Intermediario,
		ISNULL(RISCHIO.VAR_PERC_PTF,0) as varIntermediario,
		CASE 
			WHEN RISCHIO.COPERTURA = 0 THEN 'n.c.' 
			WHEN RISCHIO.COPERTURA IS NULL THEN 'n.c.' 
			ELSE NULL 
		END AS varIntermediarioString,
		rischio.copertura as coperturaBF,
		CASE 
			WHEN RISCHIO.COPERTURA = 0 THEN 'n.c.' 
			WHEN RISCHIO.COPERTURA IS NULL THEN 'n.c.' 
			ELSE NULL 
		END AS coperturaBFString,
		
		CASE 
			-- WHEN RISCHIO.COPERTURA > 0 AND RISCHIO.VAR_PERC_PTF <= CODRISCHIO.MAX_VAR THEN 1
			-- modified by mzaki
			WHEN RISCHIO.COPERTURA > 0 AND RISCHIO.VAR_PERC_PTF <= CODRISCHIO.MAX_VAR 
				AND isnull(RISCHIO.CREDITRISK,0) <= MIFID.RISKCLASS THEN 1
			--
			WHEN RISCHIO.COPERTURA = 0  THEN -1
			ELSE 0 
		END AS rispetto,
		
		-----------------------
		RISCHIO.CREDITRISK as creditRisk,
		CASE 
			WHEN RISCHIO.CREDITRISK is null and RISCHIO.COPERTURA = 0  THEN 'n.c.' 
			WHEN  RISCHIO.CREDITRISK is null and RISCHIO.COPERTURA IS NULL THEN 'n.c.' 
			WHEN  RISCHIO.CREDITRISK is null then 'n.a.' 
		ELSE null
		END as creditRiskString
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PT
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
		ON 
			RISCHIO.RETE = PT.RETE
			AND RISCHIO.COD_FISCALE = PT.COD_FISCALE
			AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI|' + PT.INTERMEDIARIO
	LEFT OUTER JOIN 
		C6MartPeriodico.MIFID MIFID
		ON 
			MIFID.RETE = PT.RETE
			AND MIFID.COD_FISCALE = PT.COD_FISCALE
	LEFT OUTER JOIN 
		C6MartPeriodico.CODIFICA_RISCHIO CODRISCHIO
		ON 
			MIFID.PROFILO_ASS = CODRISCHIO.PROFILO

	WHERE 1 = 1
		--V we take into account CC --AND PT.TIPO_PRODOTTO <> 'Conti correnti'
		AND PT.RETE = @Rete
		AND PT.cod_fiscale = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S25Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_S25Anagrafica] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT [Cliente]
      ,[DatadiNascita]
      ,[ETA]
      ,[Professione]
      ,[StatoCivile]
      ,[NucleoFamiliare]
      ,[Residenza]
      ,[CodiceFiscale]
      ,[CodicePB]
      ,[CodiceRete]
      ,[CodiceContratto]
      ,[StatoContratto]
      ,[DataSottoscrizione]
      ,[DataPerfezionamento]
      ,[FasciaCPP]
      ,[IndirizzoEmail]
      ,[ProduzioneReport]
      ,[Indirizzo]
      ,[CAP]
      ,[Citta]
      ,[Provincia]
      ,[Nazione]
      ,[PRESSO]
  FROM  [C6MartPeriodico].[TB_S25Anagrafica]
  WHERE	[CodiceRete] 	= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
		 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S25Anagrafica_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S25Anagrafica] 'F', 'CSCGPP34A03L050L'
CREATE procedure [C6MartPeriodico].[PL_S25Anagrafica_BkUpParall]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
				
			
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') + ' ' else '' end   + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end  + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') + ' ' else '' end    + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end + ')','()','')
		END AS Residenza,
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_SOTT) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		CONTRATTOSEI.FASCIA_CPP AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
       -- CONTRATTOSEI.[CAP] AS CAP,
        CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' 
           then isnull(CONTRATTOSEI.CAP,'') 
           else ''
        end as CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		--CONTRATTOSEI.[Prov] AS Provincia,
		CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' 
           then isnull(CONTRATTOSEI.[Prov],'') 
           else CONTRATTOSEI.[NAZIONE]
        end as Provincia,
		
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM        
		[C6MartPeriodico].CONTRATTOSEI -- TABELLA BASE
	INNER JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MARTPERIODICO.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MARTPERIODICO.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	WHERE 1 = 1
		AND ANAG_CLIENTI.RETE = @RETE
		AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE
		 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S26PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[PL_S26PatrimonioImmobiliare] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	--select t.descrizione, t.tipologia, t.localita, t.affittoPercepito, t.valore, t.totale 
	SELECT 
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S27ALtroPatrimonio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_S27ALtroPatrimonio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	SELECT 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
	WHERE 
		PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S2PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


-- =============================================
-- Author:		Luca De Lisio
-- Create date: 
-- Description:	
-- =============================================
--[C6MartPeriodico].[PL_S2PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
CREATE procedure [C6MartPeriodico].[PL_S2PatrimonioFinanziario] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

SELECT 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			WHEN 'F' THEN 'Fideuram'
			ELSE 'IW Private Investments'
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	



























--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL
		--DETTAGLIO ASUL SENZA SKANDIA
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S2PatrimonioFinanziario]    Script Date: 10/02/2022 15:57:42 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure


---- =============================================
---- Author:		Luca De Lisio
---- Create date: 
---- Description:	
---- =============================================
----[C6MartPeriodico].[PL_S2PatrimonioFinanziario] 'F','LNTNNE59L06F205C'
--ALTER procedure [C6MartPeriodico].[PL_S2PatrimonioFinanziario] 
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--SELECT 
--	A.Banca,
--	A.Ordinamento,
--	A.AssetClassId, 
--	A.AssetClassName, 
--	cast(A.Controvalore as decimal(19,6)) Controvalore,
--	A.Percentuale,
--	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
--FROM 
--(		

--	SELECT DISTINCT
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Fideuram' 
--		END AS Banca,
--		ASSETCLASS.ORDINAMENTO AS Ordinamento,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
--		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
--		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
--		(
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
--			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
--		) * 100 AS Percentuale
--	FROM (

--		--PRODOTTI BF ESCLUSI GLI ASUL
--		SELECT 	
--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 
--			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
--			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
--			and patrbf.id_area <> 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
----		SELECT 	



























----			ASSETPERC.ID_ASSETCLASS,
----			PATRBF.CTV*ASSETPERC.PERC as Controvalore
----		FROM 
----			C6MartPeriodico.PATRIMONIO_BF PATRBF
----		INNER JOIN 
----			C6MartPeriodico.ASSET_PERC ASSETPERC 
----			ON 
----				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
----				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
----				AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN 
----			C6MartPeriodico.ClientiConCCNegativo CCNegativo
----			ON 
----				PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----		WHERE 
----			--ELIMINO I CC CON SALDO NEGATIVO
----			PATRBF.TIPO_PRODOTTO = 'CC'
----			AND PATRBF.RETE = @Rete
----			AND PATRBF.COD_FISCALE = @CodiceFiscale
----			AND CCNegativo.Cod_Fiscale IS NULL

----		UNION ALL
--		--DETTAGLIO ASUL SENZA SKANDIA
--		SELECT 
--			ASSETPERC.ID_ASSETCLASS,
--			ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---ELIMINO GLI SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale

--		UNION ALL
--		--CON SKANDIA
--		SELECT ASSETPERC.ID_ASSETCLASS,
--				ASUL.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--			--PRENDO SOLO GLI SKANDIA
--			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--		WHERE
--			ASUL.RETE = @Rete
--			AND ASUL.COD_FISCALE = @CodiceFiscale


--		UNION ALL

--		--PRODOTTI TERZI A CATALOGO
--		SELECT
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--		UNION ALL

--		--PRODOTTI TERZI NON A CATALOGO
--		SELECT 	
--			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
--			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
--			ON 
--				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
--				AND ASSETPERC.LIVELLO = 1
--		WHERE 1 = 1
--			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
--			AND PATRTERZI.RETE = @Rete
--			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

--	) VALORIASSET
--	INNER JOIN 
--		C6MartPeriodico.ASSETCLASS ASSETCLASS
--		ON 
--			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

--) A

--ORDER BY A.ORDINAMENTO

--END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S31PatrimonioFinanziarioIntermediario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6Mart].[PL_S31PatrimonioFinanziarioIntermediario]  'F','BRTVTR64T13L219G'
CREATE procedure [C6MartPeriodico].[PL_S31PatrimonioFinanziarioIntermediario] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	SELECT DISTINCT
		PATRIMONIO_TERZI.INTERMEDIARIO as Intermediario,
		SUM(ROUND(PATRIMONIO_TERZI.CTV,2)) OVER (PARTITION BY PATRIMONIO_TERZI.INTERMEDIARIO) as Controvalore,
		(SUM(PATRIMONIO_TERZI.CTV) OVER (PARTITION BY PATRIMONIO_TERZI.INTERMEDIARIO)/
		SUM(PATRIMONIO_TERZI.CTV) OVER (PARTITION BY 'Totale'))*100 as Percentuale,
		SUM(PATRIMONIO_TERZI.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI
	WHERE 
		PATRIMONIO_TERZI.RETE = @Rete
		AND PATRIMONIO_TERZI.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_TERZI.INTERMEDIARIO 
		
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S32PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_S32PatrimonioFinanziarioMAssetClass] 'F', 'BRCRRT70L21A390C'
CREATE procedure [C6MartPeriodico].[PL_S32PatrimonioFinanziarioMAssetClass] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT DISTINCT
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
		) * 100 AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY 
		ASSETCLASS.ORDINAMENTO
		
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S36ProfiloRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S36ProfiloRischio] 'F','GRNNTN55B07I158D'
CREATE procedure [C6MartPeriodico].[PL_S36ProfiloRischio] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS

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

	SELECT 
		MIFID.PROFILO_ASS AS codiceProfilo,
		PROFILIDIRISCHIO.NOMEPROFILO as nomeProfilo,
		DBO.TOSHORTDATESTRING(MIFID.DATA_INIZIO_VAL) AS dataInizioValidita,
		CODIFICA_RISCHIO.MAX_VAR as varMassimo
	FROM
		C6MARTPERIODICO.MIFID AS MIFID 
		INNER JOIN C6MARTPERIODICO.CODIFICA_RISCHIO AS CODIFICA_RISCHIO 
			ON MIFID.PROFILO_ASS = CODIFICA_RISCHIO.PROFILO
		INNER JOIN DBO.ProfiliDiRischio_preMUA AS PROFILIDIRISCHIO 
			ON PROFILIDIRISCHIO.CODICEPROFILO = CODIFICA_RISCHIO.PROFILO
	WHERE 1 = 1
		AND MIFID.RETE = @Rete 
		AND	MIFID.COD_FISCALE = @CodiceFiscale

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S37PiramideModello]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S37PiramideModello] 'F','BCCLVI34M18F335J'
CREATE procedure [C6MartPeriodico].[PL_S37PiramideModello] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT
		AREA_BISOGNO.ID_AREA AS Need_Breve,						-- NOME BREVE DELL'AREA DI BISOGNO
		PIRAMIDE_MOD.NOME_PROGETTO AS Nome_Progetto,			-- NOME DEL PROGETTO (AREA INV)
		ISNULL(PIRAMIDE_MOD.PERC_AREA,0) AS Perc_Need,			-- PERCENTUALE DI ALLOCAZIONE SULL'AREA DI BISOGNO
		PIRAMIDE_MOD.ORIZZ_TEMP AS Orizz_Temp,					-- ORIZZONTE TEMPORALE DEL PROGETTO
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE, AREA_BISOGNO.ID_AREA) AS Totale_Percentuale,	-- PERCENTUALE DI ALLOCAZIONE DEI PROGETTI
		SUM(ISNULL(PIRAMIDE_MOD.PERC_AREA,0)) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS Totale,
		COUNT(CASE WHEN AREA_BISOGNO.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PIRAMIDE_MOD.RETE, PIRAMIDE_MOD.COD_FISCALE) AS NumeroProgettiInv,
		AREA_BISOGNO.ORDINAMENTO AS Ordinamento
	FROM C6MartPeriodico.AREA_BISOGNO
	LEFT JOIN C6MartPeriodico.PIRAMIDE_MOD 
		ON PIRAMIDE_MOD.ID_AREA = AREA_BISOGNO.ID_AREA
		AND((PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NOT NULL)
			OR PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE'))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale
	WHERE AREA_BISOGNO.ORDINAMENTO < 6	
	ORDER BY AREA_BISOGNO.ORDINAMENTO

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S42RischioDiversificazione]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6MartPeriodico].[PL_S42RischioDiversificazione] 'F','BNNDRC23B44E689L'
CREATE procedure [C6MartPeriodico].[PL_S42RischioDiversificazione]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

 
	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete



SELECT 
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' when k.rete = 'S' then 'Sanpaolo Invest' else 'IW Private Inv.' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY 11


END 














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S42RischioDiversificazione]    Script Date: 10/02/2022 15:59:33 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- [C6MartPeriodico].[PL_S42RischioDiversificazione] 'F','BNNDRC23B44E689L'
--ALTER procedure [C6MartPeriodico].[PL_S42RischioDiversificazione]
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

--AS
--BEGIN

 
--	declare @contaCC as int

--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int

--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete



--SELECT 
--K.COD_FISCALE,
--K.RETE,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 0
--	ELSE VAR_PERC_PTF 
--END AS VAR,
--CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
--CASE 
--	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
--		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
--		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
--	ELSE null 
--END AS coperturaString,
--beneficio as diversificazione,

--CASE 
--	WHEN (@contaPOS - @contacc = 0) THEN 100
--	ELSE COPERTURA
--END AS COPERTURA,
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
--when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
--ELSE ''
--END AS PATRIMONIO,

--case 
--	when b.profilo is null then -1 
--	else b.profilo
--end as profiloCode,
--b.max_var as var_profilo,
----V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
----V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
--case 
--when cod_Aggreg = 'COMPLESSIVO' then 3
--when cod_Aggreg = 'COMPLESSIVO|BF' then 1
--when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
--ELSE ''
--END AS Ordine

 
--FROM
--C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
--	ON k.cod_fiscale = a.cod_fiscale and
--		k.rete = a.rete
--	left outer join
--C6Martperiodico.CODIFICA_RISCHIO b on
--A.PROFILO_ASS=B.PROFILO
--WHERE
----A.PROFILO_ASS=B.PROFILO
----AND K.RETE=A.RETE
----AND K.COD_FISCALE= A.COD_FISCALE
--COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
--AND k.COD_FISCALE = @COdiceFISCALE
--AND k.RETE= @RETE
--ORDER BY 11


--END 





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

-- [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF] 'F', 'SPNTTR67T20F205D'
CREATE   procedure [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF] --'S','MNSLNZ44A58F351Y'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


SELECT
--distinct

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
	
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,


--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,


SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,

--INIZIO INTERVENTI OMNIA QUIIIIIIII
--case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
--			and patrbf.tipo_prodotto='CC' 
--			and patrbf.id_area='liq') 
	--then	
	--			CASE WHEN patrbf.data_sottoscrizione>monatt.data_attivazione
	--				THEN 
	--					dbo.TOSHORTDATESTRING(patrbf.data_sottoscrizione)
	--				ELSE
	--				CASE WHEN monatt.data_attivazione> '20110211' 
	--					then dbo.TOSHORTDATESTRING(monatt.data_attivazione)
	--					ELSE dbo.TOSHORTDATESTRING('20110211')
	--					END
	--				END
	--			END

	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto,
	--APC 103 -- Dicembre 2022
	 apc.is_APC as isAPC

FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
			--aggiunta 18/12/2022 per APC103
left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATRBF.RETE
	and	apc.cod_fiscale=patrbf.cod_fiscale
	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta 18/12/2022 per APC103

WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
    

)))
ORDER BY 
	AREASORTORDER, NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI
 
 --fine E-DEFAULT4


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF_20160118]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

-- [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF] 'S', 'CLCLNE41M47H434D'
CREATE PROCEDURE [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF_20160118]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,


--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,


SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,

--INIZIO INTERVENTI OMNIA QUIIIIIIII
--case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
--			and patrbf.tipo_prodotto='CC' 
--			and patrbf.id_area='liq') 
	--then	
	--			CASE WHEN patrbf.data_sottoscrizione>monatt.data_attivazione
	--				THEN 
	--					dbo.TOSHORTDATESTRING(patrbf.data_sottoscrizione)
	--				ELSE
	--				CASE WHEN monatt.data_attivazione> '20110211' 
	--					then dbo.TOSHORTDATESTRING(monatt.data_attivazione)
	--					ELSE dbo.TOSHORTDATESTRING('20110211')
	--					END
	--				END
	--			END

	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
 AND PATRBF.CTV <> 0 
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF_20161215]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

-- [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF] 'S', 'CLCLNE41M47H434D'
CREATE PROCEDURE [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF_20161215]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,


--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,


SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,

--INIZIO INTERVENTI OMNIA QUIIIIIIII
--case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
--			and patrbf.tipo_prodotto='CC' 
--			and patrbf.id_area='liq') 
	--then	
	--			CASE WHEN patrbf.data_sottoscrizione>monatt.data_attivazione
	--				THEN 
	--					dbo.TOSHORTDATESTRING(patrbf.data_sottoscrizione)
	--				ELSE
	--				CASE WHEN monatt.data_attivazione> '20110211' 
	--					then dbo.TOSHORTDATESTRING(monatt.data_attivazione)
	--					ELSE dbo.TOSHORTDATESTRING('20110211')
	--					END
	--				END
	--			END

	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS
	
	 dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI

END









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF_20161215_B]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

-- [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF] 'F', 'DGHDNC78R19C623G'
CREATE PROCEDURE [C6MartPeriodico].[PL_S43BISDettaglioProdottiBF_20161215_B]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN


-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,


--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,


SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,

--INIZIO INTERVENTI OMNIA QUIIIIIIII
--case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
--			and patrbf.tipo_prodotto='CC' 
--			and patrbf.id_area='liq') 
	--then	
	--			CASE WHEN patrbf.data_sottoscrizione>monatt.data_attivazione
	--				THEN 
	--					dbo.TOSHORTDATESTRING(patrbf.data_sottoscrizione)
	--				ELSE
	--				CASE WHEN monatt.data_attivazione> '20110211' 
	--					then dbo.TOSHORTDATESTRING(monatt.data_attivazione)
	--					ELSE dbo.TOSHORTDATESTRING('20110211')
	--					END
	--				END
	--			END

	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI

END










GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Mohammed, Ebid>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT  
	distinct
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString,
		 apc.is_APC as isAPC
		-- spb.CODCONF as CodiceContratto
	FROM       
		C6MartPeriodico.ANAG_CC	 

	left join C6StagingPeriodico.SPB_CONTR_SINTESI spb
	on  spb.rete=@rete
		and spb.CODFIS=@CodiceFiscale
		and spb.conto=anag_cc.cod_cc
			--aggiunta apc103
	left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=@Rete
	and	apc.cod_fiscale=@CodiceFiscale
	and spb.CODCONF = apc.CODCONFC
	--(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta apc103
	WHERE 
		ANAG_CC.rete= @Rete
		AND ANAG_CC.cod_fiscale= @CodiceFiscale
		AND ANAG_CC.SALDOCONTABILE < 0
--	ORDER BY	ANAG_CC.SALDOCONTABILE DESC

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'BNDCRN60H52A181P'
-- [C6MartPeriodico].[PL_S43DettaglioProdottiBF] 'F','BNDCRN60H52A181P'
CREATE   procedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF] --'S','MNSLNZ44A58F351Y'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT
--distinct
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
--WHEN AREA.ID_AREA = 'Pre' THEN 'Default'
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	-- 20161219 - mod per far uscire il nome progetto sulle risorse na
	WHEN AREA.ID_AREA = 'Na'  THEN 'Default'
	-- fine 20161219 - mod per far uscire il nome progetto sulle risorse na
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit,

	-- savingmap - Novembre 2019
	patrbf.tipo_prodotto as Tipo_Prodotto,
	--APC dicembre 2022
	apc.is_APC as isAPC

FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
		--aggiunta 18/12/2022 per APC103
left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATRBF.RETE
	and	apc.cod_fiscale=patrbf.cod_fiscale
	and PATRBF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta 18/12/2022 per APC103
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF_20161215]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'BNDCRN60H52A181P'
-- [C6MartPeriodico].[PL_S43DettaglioProdottiBF] 'F','DGHDNC78R19C623G'
CREATE procedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF_20161215]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
--WHEN AREA.ID_AREA = 'Pre' THEN 'Default'
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF_20161219]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'BNDCRN60H52A181P'
-- [C6MartPeriodico].[PL_S43DettaglioProdottiBF] 'F','BRTMRA27P42Z126N'
CREATE procedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF_20161219]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
--WHEN AREA.ID_AREA = 'Pre' THEN 'Default'
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 febbraio 2009
-- Description: 
-- =============================================
--select * from c6martperiodico.patrimonio_bf where cod_fiscale = 'BNDCRN60H52A181P'
-- [C6MartPeriodico].[PL_S43DettaglioProdottiBF] 'F','CRORLF58C02L219Y'
CREATE procedure [C6MartPeriodico].[PL_S43DettaglioProdottiBF_BK_eligoTitoli]
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS
BEGIN

-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN = 'EURO00000009'
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin ='EURO00000009' THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin ='EURO00000009') then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin = 'EURO00000009')
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43LineaSelfBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Mohammed, Ebid>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6MartPeriodico].[PL_S43LineaSelfBF]  'F','GSTGPL59P03B586G'
CREATE procedure [C6MartPeriodico].[PL_S43LineaSelfBF] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT  
	distinct
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott,
		 CodInterno,
		 CodSottoProdotto,
		 apc.is_APC as isAPC
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
		--aggiunta apc103
		left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=@Rete
	and	apc.cod_fiscale=@CodiceFiscale
	and ls.CodConf = apc.CODCONFPR
	--(case when PATRBF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	--fine aggiunta apc103
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND isnull(ctv,0) < 0
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S43LineaSelfBF_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Mohammed, Ebid>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6MartPeriodico].[PL_S43LineaSelfBF]  'F','GSTGPL59P03B586G'
CREATE procedure [C6MartPeriodico].[PL_S43LineaSelfBF_20181214_PreMioFoglio] 
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND isnull(ctv,0) < 0
END
 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S47ContoCorrenteBF]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Gentilezza,,Marco>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[PL_S47ContoCorrenteBF] 
	-- Add the parameters for the stored procedure here
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.


	SELECT     
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDO as decimal(15,2)) as Controvalore,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
		ANAG_CC.rete= @Rete
		AND ANAG_CC.cod_fiscale= @CodiceFiscale
	ORDER BY
		ANAG_CC.SALDO DESC

		
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S48DettaglioProdotti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:  Gentilezza Marco
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
-- [C6Mart].[PL_S48DettaglioProdotti] 'F', 'LNTNNE59L06F205C'
CREATE procedure [C6MartPeriodico].[PL_S48DettaglioProdotti]

 @Rete char(1), 
 @CodiceFiscale varchar(16)

AS

BEGIN
	
	SELECT  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S49PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Marco Gentilezza
-- Create date: 
-- Description:	
-- =============================================
--[C6MartPeriodico].[PL_S49PolizzeAltriIstituti]'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_S49PolizzeAltriIstituti] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S50FondiAltriIstituti]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Gentilezza,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S50FondiAltriIstituti] 'S', 'MRTRRT57T17E758I'
CREATE procedure [C6MartPeriodico].[PL_S50FondiAltriIstituti]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'



END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S51ContoCorrenteAI]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[PL_S51ContoCorrenteAI] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	SELECT     
		CCTerzi.INTERMEDIARIO AS Intermediario,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO AS Saldo,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6MartPeriodico.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S56PatrimonioBFAreeBisogno]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S56PatrimonioBFAreeBisogno] 'F','TNNLGU58R01B259Y'
CREATE procedure [C6MartPeriodico].[PL_S56PatrimonioBFAreeBisogno]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	SELECT		
		AREA_BISOGNO.ID_AREA AS NeedArea,
		AREA_BISOGNO.NOME_AREA AS AreaName,
		COALESCE(PIRAMIDE_VERT.CTV_AREA, 0.00) AS ControValore,
		COALESCE(
			CAST(100*(PIRAMIDE_VERT.CTV_AREA / 
			SUM(COALESCE(PIRAMIDE_VERT.CTV_AREA,0)) OVER (PARTITION BY PIRAMIDE_VERT.RETE, PIRAMIDE_VERT.COD_FISCALE)) AS DECIMAL(5,2))
			, 0.00) AS Peso,
		COALESCE(RISCHIO_AGGREGATO.VAR_PERC_PTF, 0.00) AS Var_NeedArea,
		NULL AS Var_NeedAreaString,
		COALESCE(RISCHIO_AGGREGATO.COPERTURA, 0) AS Copertura_NeedArea,
		CASE 
			WHEN RISCHIO_AGGREGATO.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIO_AGGREGATO.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS Copertura_NeedAreaString,
		NULL AS RischioRelativo, -- TODO: CHIEDERE
		NULL AS Nota, -- TODO: CHIEDERE
		SUM(COALESCE(PIRAMIDE_VERT.CTV_AREA,0)) OVER (PARTITION BY 'Totale') AS Somma_Controval,
		RISCHIO_TOTALE.VAR_PERC_PTF AS Var_tot,
		RISCHIO_TOTALE.COPERTURA AS Copertura_tot,
		CASE 
			WHEN RISCHIO_TOTALE.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIO_TOTALE.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS Copertura_totString
	FROM C6MartPeriodico.AREA_BISOGNO
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
		SELECT RETE, COD_FISCALE, LEFT(ID_AREA,3) AS ID_AREA, SUM(COALESCE(CTV_AREA,0)) AS CTV_AREA
		FROM C6MartPeriodico.PIRAMIDE_VERT 
		WHERE PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
		GROUP BY RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT ON PIRAMIDE_VERT.ID_AREA = AREA_BISOGNO.ID_AREA
--	LEFT JOIN C6MartPeriodico.PIRAMIDE_VERT
--		ON LEFT(PIRAMIDE_VERT.ID_AREA,3) = AREA_BISOGNO.ID_AREA
--		AND PIRAMIDE_VERT.RETE = @Rete
--		AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO 
		ON RISCHIO_AGGREGATO.COD_AGGREG = 'PIRAMIDE|' + LEFT(AREA_BISOGNO.ID_AREA,3)
		AND RISCHIO_AGGREGATO.RETE = @Rete
		AND RISCHIO_AGGREGATO.COD_FISCALE = @CodiceFiscale
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIO_TOTALE
		ON RISCHIO_TOTALE.COD_AGGREG = 'PIRAMIDE'
		AND RISCHIO_TOTALE.RETE = @Rete
		AND RISCHIO_TOTALE.COD_FISCALE = @CodiceFiscale
	WHERE  AREA_BISOGNO.ORDINAMENTO < 6 
	ORDER BY AREA_BISOGNO.ORDINAMENTO

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S57ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'F','BNNDRC23B44E689L'
CREATE procedure [C6MartPeriodico].[PL_S57ConfrontoPiramidi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			LEFT(ID_AREA,3) AS ID_AREA, 
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')
		--V 
			DECLARE @TOTCC AS INT
			SELECT @TOTCC = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				AND TIPO_PRODOTTO = 'Cc'

			--V 
			DECLARE @TOT AS INT
			SELECT @TOT = COUNT(*)
			FROM C6MARTPERIODICO.PATRIMONIO_BF
			WHERE PATRIMONIO_BF.RETE = @Rete
				AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCC = @TOT THEN 0.00
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					WHEN (@TOTCC <> @TOT) AND(RISCHIOTOTALE.COPERTURA IS NULL OR RISCHIOTOTALE.COPERTURA = 0) THEN 'jjn.c.' 
					
					--V SOLO CC -> VAR = 0
									




					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0	

					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					WHEN @TOTCC = @TOT THEN NULL
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				WHEN @TOTCC = @TOT THEN NULL
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S57ConfrontoPiramidi_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 11/11/2008
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S57ConfrontoPiramidi] 'S','CCRPTR55A08H501P'
CREATE procedure [C6MartPeriodico].[PL_S57ConfrontoPiramidi_OLD]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	
	SELECT 
		PIRAMIDE_MOD.RETE, 
		PIRAMIDE_MOD.COD_FISCALE, 	
		PIRAMIDE_MOD.ID_AREA,
		PIRAMIDE_MOD.PERC_AREA,
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE
	INTO #PIRAMIDE_VERT
	FROM 
		C6MartPeriodico.PIRAMIDE_MOD
	LEFT JOIN (
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE
	    SELECT 
			RETE, 
			COD_FISCALE, 
			LEFT(ID_AREA,3) AS ID_AREA, 
			SUM(COALESCE(CTV,0)) AS CTV_AREA
		FROM
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT
		WHERE 
			PIRAMIDE_VERT.RETE = @Rete
			AND PIRAMIDE_VERT.COD_FISCALE = @CodiceFiscale
            --modificata atringali -- AND   ID_AREA NOT IN ('Cc')
		GROUP BY 
			RETE, COD_FISCALE, LEFT(ID_AREA,3) 
	) PIRAMIDE_VERT 
		ON 
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA
	WHERE 
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC')
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))
		AND PIRAMIDE_MOD.RETE = @Rete
		AND PIRAMIDE_MOD.COD_FISCALE = @CodiceFiscale


	IF(@@ROWCOUNT>0)
	BEGIN

		-- Ordinamento per Area di bisogno
		DECLARE @TOTControvaloreAttuale DECIMAL(20,2)

		SELECT @TOTControvaloreAttuale = SUM(ATTUALE.CONTROVALORE)
		FROM #PIRAMIDE_VERT ATTUALE
		WHERE ATTUALE.RETE = @Rete
			AND ATTUALE.COD_FISCALE = @CodiceFiscale
			--V
			AND ID_AREA not in ('Na', 'Cc')
		--V 
			DECLARE @TOTCC DECIMAL (20,2)
			SELECT @TOTCC = ISNULL(CONTROVALORE,0)
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
				AND ID_AREA = 'Cc'

			--V 
			DECLARE @TOT DECIMAL (20,2)
			SELECT @TOT = SUM(ISNULL(CONTROVALORE,0))
			FROM #PIRAMIDE_VERT ATTUALE
			WHERE ATTUALE.RETE = @Rete
				AND ATTUALE.COD_FISCALE = @CodiceFiscale
				
		SELECT 
			AREA_BISOGNO.ID_AREA AS NeedArea,
			AREA_BISOGNO.NOME_AREA AS AreaName,
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN 0 
				ELSE (100 * ISNULL(ATTUALE.CONTROVALORE,0) / ISNULL(@TOTControvaloreAttuale,1)) 
			END AS PercentualeAttuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,
			ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS ControvaloreModello,
			ATTUALE.PERC_AREA AS Totale_Percentuale,
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) - ROUND(ISNULL(ATTUALE.PERC_AREA * @TOTControvaloreAttuale / 100 , 0),2) AS DifferenzaEuro,
			CASE 
				WHEN @TOTControvaloreAttuale = 0 THEN - ATTUALE.PERC_AREA 
				ELSE ISNULL( (100 * ISNULL(ATTUALE.CONTROVALORE,0) / @TOTControvaloreAttuale - ATTUALE.PERC_AREA) , 0)
			END AS DifferenzaPercentuale,
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
			
			

			CASE
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS var_needareaString,
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
			CASE 
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_needareaString,
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalAttuale,
			ISNULL(@TOTControvaloreAttuale,0) AS somma_controvalModello,
			0.00 AS somma_percentualeAttuale,
			0.00 AS somma_percentualeModello,
			--V
				CASE
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE.VAR_PERC_PTF 
				END AS var_tot,
				CASE 
					--V SOLO CC -> VAR = 0
					WHEN @TOTCC = @TOT THEN NULL
					WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN 'n.c.' 
					WHEN RISCHIOTOTALE.COPERTURA = 0 THEN 'n.c.' 
					
					
					ELSE NULL 
				END AS var_totString,
			--V
				CASE 
					WHEN @TOTCC = @TOT THEN 0
					ELSE RISCHIOTOTALE_PIR.VAR_PERC_PTF 
				END as var_tot_pir,
				CASE
					--V SOLO CC -> VAR = 0
					WHEN @TOTCC = @TOT THEN NULL
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'
					ELSE NULL
				END AS var_tot_pirString,
			--
			 
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,
			CASE 
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00' 
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00' 
				ELSE NULL 
			END AS copertura_totString,
			--V
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,
			CASE 
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_tot_pirString,
			--
			--V
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS VAR_RISFINSTRING,
			
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,
			CASE 
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS copertura_risfinString,
			

			AREA_BISOGNO.ORDINAMENTO AS ordinamento

		FROM 
			C6MartPeriodico.AREA_BISOGNO
		LEFT JOIN 
			#PIRAMIDE_VERT ATTUALE 
			ON 
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA 
			ON 
				RISCHIOAREA.RETE = ATTUALE.RETE
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE
					AND    
                   RISCHIOAREA.COD_AGGREG = (
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA 
				   WHEN ATTUALE.ID_AREA = 'NA'
					THEN 'RISFIN|NA'
                   WHEN ATTUALE.ID_AREA = 'CC' 
					THEN 'COMPLESSIVO|BF|CC'
                   END
                   ) 
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE
			ON 
				RISCHIOTOTALE.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'

		--V
		LEFT JOIN
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR 
			ON 
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'

		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN
			ON 
				RISCHIORISFIN.RETE = ATTUALE.RETE
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'
		--
		/*WHERE 
			AREA_BISOGNO.ORDINAMENTO < 6*/
		ORDER BY AREA_BISOGNO.ORDINAMENTO

	END

	ELSE


		SELECT 	* 
		FROM #PIRAMIDE_VERT


	DROP TABLE #PIRAMIDE_VERT

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S6PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  [C6MartPeriodico].[PL_S6PatrimonioFinanziario] 'F','GZZSLD52E20G869L'
CREATE procedure [C6MartPeriodico].[PL_S6PatrimonioFinanziario]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from

	DECLARE @NOMERETE VARCHAR(20)

	IF @Rete = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE IF @Rete = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			@NOMERETE AS Banca,
			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				@NOMERETE AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
			FROM C6MartPeriodico.PATRIMONIO_BF patrBF
--			LEFT JOIN C6MartPeriodico.ClientiConCCNegativo CCNegativo
--				ON PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--				AND PATRBF.TIPO_PRODOTTO = 'CC'
			WHERE 1 = 1
				AND patrBF.Rete = @Rete
				AND patrBF.Cod_Fiscale = @CodiceFiscale
				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
				and patrBF.id_area  <> 'cc'
			UNION ALL



			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
			FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
			WHERE 1 = 1
				AND patrTerzi.Rete = @Rete
				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
			GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S6PatrimonioFinanziario]    Script Date: 10/02/2022 15:58:38 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

---- Stored procedure

---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
----  [C6MartPeriodico].[PL_S6PatrimonioFinanziario] 'F','GZZSLD52E20G869L'
--ALTER procedure [C6MartPeriodico].[PL_S6PatrimonioFinanziario]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from

--	DECLARE @NOMERETE VARCHAR(20)

--	IF @Rete = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT 
--		Intermediario,
--		Ordine,
--		Banca,
--		Controvalore,
--		round(Percentuale,2) as Percentuale
--	FROM 
--	(
--		SELECT DISTINCT
--			Intermediario,
--			Ordine,
--			@NOMERETE AS Banca,
--			-- if(BancaFideuram) -> Sommare al controvalore le partiteViaggiantiInv
--			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
--			(
--				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
--				(SUM(ctv) over (partition by 'Totale'))
--			) * 100 AS PERCENTUALE
--		FROM 
--		(
--			SELECT 
--				@NOMERETE AS Intermediario,
--				SUM(ROUND(CTV,2)) AS ctv,
--				1 AS ordine
--			FROM C6MartPeriodico.PATRIMONIO_BF patrBF
----			LEFT JOIN C6MartPeriodico.ClientiConCCNegativo CCNegativo
----				ON PATRBF.RETE = CCNegativo.Rete
----				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
----				AND PATRBF.TIPO_PRODOTTO = 'CC'
--			WHERE 1 = 1
--				AND patrBF.Rete = @Rete
--				AND patrBF.Cod_Fiscale = @CodiceFiscale
--				--AND CCNegativo.Cod_Fiscale IS NULL		-- ELIMINO I CC CON SALDO NEGATIVO
--				and patrBF.id_area  <> 'cc'
--			UNION ALL



--			SELECT 
--				Intermediario, 
--				SUM(ROUND(CTV,2)) AS ctv,
--				2 AS ordine
--			FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
--			WHERE 1 = 1
--				AND patrTerzi.Rete = @Rete
--				AND patrTerzi.Cod_Fiscale = @CodiceFiscale
--			GROUP BY patrTerzi.Intermediario

--		) PATR

--	) A
--	WHERE CONTROVALORE IS NOT NULL
--	ORDER BY Ordine

--END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S75GradoCopertura]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D'
CREATE procedure [C6MartPeriodico].[PL_S75GradoCopertura]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	DECLARE @varCompl		decimal(15,3)
	DECLARE @coperturaCompl	decimal(15,3)
	DECLARE @ctvCompl		decimal(15,3)
	DECLARE @saldoCC		decimal(15,3)

	--CALCOLO PATRIMONI E ESTRAZIONE VAR	
	SELECT 
		@Rete AS Rete,
		@CodiceFiscale as CodiceFiscale,
		CASE @Rete      
			WHEN 'F' THEN 'Patrimonio Fideuram'
			WHEN 'S' THEN 'Patrimonio San Paolo Invest' 
			ELSE ' Patrimonio IW Private Inv.'
		END AS NomePatrimonio,
--		MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
--		MAX(patrBF.ContoCorrente) AS ControvaloreCC,
--		MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
--		MAX(RISCHIO.COPERTURA) AS Copertura,
		patrBF.PatrimonioSenzaCC AS Controvalore,
		--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
		patrBF.ContoCorrente AS ControvaloreCC,
		RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
		RISCHIO.COPERTURA AS Copertura,
		1 AS ORDINE INTO #TEMP75

	FROM 
		C6MartPeriodico.vPatrimoniobfAggregato patrBF
	LEFT JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
		ON 
			RISCHIO.RETE = patrBF.RETE
			AND RISCHIO.COD_FISCALE = patrBF.COD_FISCALE
			AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale

	UNION ALL

	SELECT 
		A.Rete,
		A.CodiceFiscale,
		A.NomePatrimonio,
		A.Controvalore,
		A.ControvaloreCC,
		A.VarPatrimonio,
		A.Copertura,
		A.ORDINE
	FROM(
		SELECT 
			@Rete AS Rete,
			@CodiceFiscale as CodiceFiscale,
			'Patrimonio Altri Istituti' AS NomePatrimonio,
			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2))  AS Controvalore,
			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
			MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
			MAX(RISCHIO.COPERTURA) as Copertura,
			2 AS ORDINE
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
		LEFT JOIN 
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
			ON 
				RISCHIO.RETE = patrTerzi.RETE
				AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
				AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
		WHERE
			patrTerzi.Rete = @Rete
			and patrTerzi.COD_FISCALE = @CodiceFiscale
	) A
	WHERE ISNULL(A.CONTROVALORE,0)>0
	
	-- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
	IF @@ROWCOUNT > 1
		BEGIN

			--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
			SELECT 
				@ctvCompl=SUM(patr.CONTROVALORE),
				@saldoCC=SUM(patr.CONTROVALORECC),
				@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
				@coperturaCompl=MAX(RISCHIO.COPERTURA)
			FROM 
				#TEMP75 patr
			LEFT JOIN 
				C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
				ON 
					RISCHIO.RETE = patr.RETE
					AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
					AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
		
			--RESTITUISCO I PATRIMONI
			SELECT	
				Ordine,
				Nomepatrimonio,
				Controvalore,
				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END AS CCPresente,
				(CONTROVALORE/@CTVCompl)*100 AS Percentuale,
				VARPATRIMONIO AS VAR,
				Copertura,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			FROM #TEMP75
			WHERE CONTROVALORE IS NOT NULL

			UNION ALL

			SELECT	
				3,
				'Patrimonio Complessivo',
				@CTVCompl,
				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
				100.00 as percentuale,
				@varCompl,
				@coperturaCompl,
				CASE 
					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
					WHEN @coperturaCompl = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
					WHEN @coperturaCompl = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			ORDER BY 1
		END
	ELSE
		BEGIN
			--RESTITUISCO L'UNICO PATRIMONIO PRESENTE
			SELECT	
				Nomepatrimonio,
				Controvalore,
				CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPresente,
				100.00 as Percentuale,
				VARPATRIMONIO AS VAR,
				Copertura,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			FROM #TEMP75
			WHERE CONTROVALORE IS NOT NULL
		END
		
END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S75GradoCopertura]    Script Date: 10/02/2022 16:00:46 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
---- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D'
--ALTER procedure [C6MartPeriodico].[PL_S75GradoCopertura]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.

--	DECLARE @varCompl		decimal(15,3)
--	DECLARE @coperturaCompl	decimal(15,3)
--	DECLARE @ctvCompl		decimal(15,3)
--	DECLARE @saldoCC		decimal(15,3)

--	--CALCOLO PATRIMONI E ESTRAZIONE VAR	
--	SELECT 
--		@Rete AS Rete,
--		@CodiceFiscale as CodiceFiscale,
--		CASE @Rete      
--			WHEN 'F' THEN 'Patrimonio Fideuram'
--			ELSE 'Patrimonio San Paolo Invest' 
--		END AS NomePatrimonio,
----		MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
----		MAX(patrBF.ContoCorrente) AS ControvaloreCC,
----		MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
----		MAX(RISCHIO.COPERTURA) AS Copertura,
--		patrBF.PatrimonioSenzaCC AS Controvalore,
--		--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
--		patrBF.ContoCorrente AS ControvaloreCC,
--		RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
--		RISCHIO.COPERTURA AS Copertura,
--		1 AS ORDINE INTO #TEMP75

--	FROM 
--		C6MartPeriodico.vPatrimoniobfAggregato patrBF
--	LEFT JOIN 
--		C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
--		ON 
--			RISCHIO.RETE = patrBF.RETE
--			AND RISCHIO.COD_FISCALE = patrBF.COD_FISCALE
--			AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
--	WHERE
--		patrBF.Rete = @Rete
--		AND patrBF.Cod_Fiscale = @CodiceFiscale

--	UNION ALL

--	SELECT 
--		A.Rete,
--		A.CodiceFiscale,
--		A.NomePatrimonio,
--		A.Controvalore,
--		A.ControvaloreCC,
--		A.VarPatrimonio,
--		A.Copertura,
--		A.ORDINE
--	FROM(
--		SELECT 
--			@Rete AS Rete,
--			@CodiceFiscale as CodiceFiscale,
--			'Patrimonio Altri Istituti' AS NomePatrimonio,
--			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2))  AS Controvalore,
--			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
--			MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
--			MAX(RISCHIO.COPERTURA) as Copertura,
--			2 AS ORDINE
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
--		LEFT JOIN 
--			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
--			ON 
--				RISCHIO.RETE = patrTerzi.RETE
--				AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
--				AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
--		WHERE
--			patrTerzi.Rete = @Rete
--			and patrTerzi.COD_FISCALE = @CodiceFiscale
--	) A
--	WHERE ISNULL(A.CONTROVALORE,0)>0
	
--	-- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
--	IF @@ROWCOUNT > 1
--		BEGIN

--			--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
--			SELECT 
--				@ctvCompl=SUM(patr.CONTROVALORE),
--				@saldoCC=SUM(patr.CONTROVALORECC),
--				@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
--				@coperturaCompl=MAX(RISCHIO.COPERTURA)
--			FROM 
--				#TEMP75 patr
--			LEFT JOIN 
--				C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
--				ON 
--					RISCHIO.RETE = patr.RETE
--					AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
--					AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
		
--			--RESTITUISCO I PATRIMONI
--			SELECT	
--				Ordine,
--				Nomepatrimonio,
--				Controvalore,
--				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END AS CCPresente,
--				(CONTROVALORE/@CTVCompl)*100 AS Percentuale,
--				VARPATRIMONIO AS VAR,
--				Copertura,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,

--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente

--			FROM #TEMP75
--			WHERE CONTROVALORE IS NOT NULL

--			UNION ALL

--			SELECT	
--				3,
--				'Patrimonio Complessivo',
--				@CTVCompl,
--				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
--				100.00 as percentuale,
--				@varCompl,
--				@coperturaCompl,
--				CASE 
--					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
--					WHEN @coperturaCompl = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
--					WHEN @coperturaCompl = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,

--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente

--			ORDER BY 1
--		END
--	ELSE
--		BEGIN
--			--RESTITUISCO L'UNICO PATRIMONIO PRESENTE
--			SELECT	
--				Nomepatrimonio,
--				Controvalore,
--				CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPresente,
--				100.00 as Percentuale,
--				VARPATRIMONIO AS VAR,
--				Copertura,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,

--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente

--			FROM #TEMP75
--			WHERE CONTROVALORE IS NOT NULL
--		END
		
--END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S75GradoCopertura_check]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- exec [C6MartPeriodico].[PL_S75GradoCopertura_check] 'F','LBRRMN81R48L388B'
CREATE procedure [C6MartPeriodico].[PL_S75GradoCopertura_check]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

	DECLARE @varCompl		decimal(15,3)
	DECLARE @coperturaCompl	decimal(15,3)
	DECLARE @ctvCompl		decimal(15,3)
	DECLARE @saldoCC		decimal(15,3)

	--CALCOLO PATRIMONI E ESTRAZIONE VAR	
	SELECT 
		@Rete AS Rete,
		@CodiceFiscale as CodiceFiscale,
		CASE @Rete      
			WHEN 'F' THEN 'Patrimonio Fideuram'
			ELSE 'Patrimonio San Paolo Invest' 
		END AS NomePatrimonio,
--		MAX(patrBF.CTV - patrBF.ContoCorrente) AS Controvalore,
--		MAX(patrBF.ContoCorrente) AS ControvaloreCC,
--		MAX(RISCHIO.VAR_PERC_PTF) AS VarPatrimonio,
--		MAX(RISCHIO.COPERTURA) AS Copertura,
---MODIFICA TRINGALI inserisco cc 
		patrBF.CTV AS Controvalore,
		--patrBF.PatrimonioSenzaCC AS Controvalore,
		--patrBF.CTV - patrBF.ContoCorrente AS Controvalore,
		patrBF.ContoCorrente AS ControvaloreCC,
		RISCHIO.VAR_PERC_PTF AS VarPatrimonio,
		RISCHIO.COPERTURA AS Copertura,
		1 AS ORDINE 
         INTO #TEMP75

	FROM 
		C6MartPeriodico.vPatrimoniobfAggregato patrBF
	LEFT JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
		ON 
			RISCHIO.RETE = patrBF.RETE
			AND RISCHIO.COD_FISCALE = patrBF.COD_FISCALE
			AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|BF'
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		--and patrBF.CTV  > 0
--	UNION ALL
--
--	SELECT 
--		A.Rete,
--		A.CodiceFiscale,
--		A.NomePatrimonio,
--		A.Controvalore,
--		A.ControvaloreCC,
--		A.VarPatrimonio,
--		A.Copertura,
--		A.ORDINE
--	FROM(
--		SELECT 
--			@Rete AS Rete,
--			@CodiceFiscale as CodiceFiscale,
--			'Patrimonio Altri Istituti' AS NomePatrimonio,
--			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END,2))  AS Controvalore,
--			SUM(ROUND(CASE WHEN patrTerzi.TIPO_PRODOTTO = 'Conti correnti' THEN patrTerzi.CTV ELSE 0 END,2)) AS ControvaloreCC,
--			MAX(RISCHIO.VAR_PERC_PTF) as VarPatrimonio,
--			MAX(RISCHIO.COPERTURA) as Copertura,
--			2 AS ORDINE
--		FROM 
--			C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
--		LEFT JOIN 
--			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
--			ON 
--				RISCHIO.RETE = patrTerzi.RETE
--				AND RISCHIO.COD_FISCALE = patrTerzi.COD_FISCALE
--				AND RISCHIO.COD_AGGREG = 'COMPLESSIVO|TERZI'
--		WHERE
--			patrTerzi.Rete = @Rete
--			and patrTerzi.COD_FISCALE = @CodiceFiscale
--	) A
--	WHERE ISNULL(A.CONTROVALORE,0)>0
--	
--	-- SE IL PATRIMONIO È SOLO 1 NON VA CALCOLATO IL COMPLESSIVO
--	IF @@ROWCOUNT > 1
--		BEGIN
--
--			--CALCOLO IL PATRIMONIO COMPLESSIVO ED ESTRAGGO IL VAR
--			SELECT 
--				@ctvCompl=SUM(patr.CONTROVALORE),
--				@saldoCC=SUM(patr.CONTROVALORECC),
--				@varCompl=MAX(RISCHIO.VAR_PERC_PTF),
--				@coperturaCompl=MAX(RISCHIO.COPERTURA)
--			FROM 
--				#TEMP75 patr
--			LEFT JOIN 
--				C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO
--				ON 
--					RISCHIO.RETE = patr.RETE
--					AND RISCHIO.COD_FISCALE = patr.CodiceFiscale
--					AND RISCHIO.COD_AGGREG = 'COMPLESSIVO'
--		
--			--RESTITUISCO I PATRIMONI
--			SELECT	
--				Ordine,
--				Nomepatrimonio,
--				Controvalore,
--				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END AS CCPresente,
--				(CONTROVALORE/@CTVCompl)*100 AS Percentuale,
--				VARPATRIMONIO AS VAR,
--				Copertura,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN COPERTURA IS NULL THEN 'n.c.' 
--					WHEN COPERTURA = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,
--
--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente
--
--			FROM #TEMP75
--			WHERE CONTROVALORE IS NOT NULL
----
--			UNION ALL
--
--			SELECT	
--				3,
--				'Patrimonio Complessivo',
--				@CTVCompl,
--				CASE WHEN @saldoCC > 0 THEN 1 ELSE 0 END as CCPRESENTE,
--				100.00 as percentuale,
--				@varCompl,
--				@coperturaCompl,
--				CASE 
--					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
--					WHEN @coperturaCompl = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS varString,
--				CASE 
--					WHEN @coperturaCompl IS NULL THEN 'n.c.' 
--					WHEN @coperturaCompl = 0 THEN 'n.c.' 
--					ELSE NULL 
--				END AS coperturaString,
--
--				-- aggiunta per valutare la presenza di controcorrente
--				CASE WHEN @saldoCC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
--				-- fine aggiunta per valutare la presenza di controcorrente
--
--			ORDER BY 1
--		END
--	ELSE
--		BEGIN
--			--RESTITUISCO L'UNICO PATRIMONIO PRESENTE
			SELECT	
				Nomepatrimonio,
				Controvalore,
				CASE WHEN CONTROVALORECC > 0 THEN 1 ELSE 0 END as CCPresente,
				100.00 as Percentuale,
				VARPATRIMONIO AS VAR,
				Copertura,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS varString,
				CASE 
					WHEN COPERTURA IS NULL THEN 'n.c.' 
					WHEN COPERTURA = 0 THEN 'n.c.' 
					ELSE NULL 
				END AS coperturaString,

				-- aggiunta per valutare la presenza di controcorrente
				CASE WHEN CONTROVALORECC <> 0 THEN 1 ELSE 0 END as NotaCCNetto
				-- fine aggiunta per valutare la presenza di controcorrente

			FROM #TEMP75
			WHERE CONTROVALORE IS NOT NULL
--		END
		
END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S75GradoCoperturaCompl]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D'
CREATE procedure [C6MartPeriodico].[PL_S75GradoCoperturaCompl]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

select copertura from c6martperiodico.RISCHIO_AGGREGATO where COD_FISCALE=@CodiceFiscale and rete=@rete and cod_aggreg='COMPLESSIVO'

		
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S75GradoCoperturaInterno]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D'
CREATE procedure [C6MartPeriodico].[PL_S75GradoCoperturaInterno]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

select copertura from c6martperiodico.RISCHIO_AGGREGATO where COD_FISCALE=@CodiceFiscale and rete=@rete and cod_aggreg='COMPLESSIVO|BF'

		
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S75GradoCoperturaTerzi]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S75GradoCopertura] 'F','GRNNTN55B07I158D'
CREATE procedure [C6MartPeriodico].[PL_S75GradoCoperturaTerzi]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

select copertura from c6martperiodico.RISCHIO_AGGREGATO where COD_FISCALE=@CodiceFiscale and rete=@rete and cod_aggreg='COMPLESSIVO|TERZI'

		
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--exec  [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]   'F' ,'GSPNGL31C04B157Q'

-- =============================================
-- Author:		Luca De Lisio
-- Create date: 04/12/2008
-- Description: <Description,,>
-- =============================================
--
-- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]  'F', 'BLNMTN60L53L736R'
--
CREATE procedure [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] -- 'S','GLLLCN29H16I829A'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario,
		--patrbf.ordinamento_progetto
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <>0.00
--INIZIO INTERVENTI OMNIA		
--	UNION ALL

--ASUL NO SKANDIA
--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end as NEEDAREA,
--		PATRBF.NOME_PROGETTO as Progetto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		sum(ASUL.CTV) as Controvalore,
--		sum(ASUL.CTV) as controvalore_contratto,
--		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN
--		C6MartPeriodico.AREA_BISOGNO AREA
--		ON
--			PATRBF.ID_AREA = AREA.ID_AREA
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN 
--		C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		ON 
--			PATRBF.RETE = ASUL.RETE
--			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	
--		------ NEW
--		LEFT OUTER JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--		ON	
--			ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
--			AND ASUL.COD_ISIN_SOTT = ''
--			AND ASSETPERC.LIVELLO = 1


	-------------OLD
	----LEFT OUTER JOIN 
	----		C6MartPeriodico.ASSET_PERC ASSETPERC
	----		ON 
	----			ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
	----			AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--
--
--    GROUP BY 
--     PATRBF.ID_CONTRATTO,
--     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end,
--        PATRBF.NOME_PROGETTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO 
-----------------------------------------------------------------------------------------------------

--	union all
--	--asul skandia
--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end as NEEDAREA,
--		PATRBF.NOME_PROGETTO as Progetto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		sum(ASUL.CTV) as Controvalore,
--		sum(ASUL.CTV) as controvalore_contratto,
--		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN
--		C6MartPeriodico.AREA_BISOGNO AREA
--		ON
--			PATRBF.ID_AREA = AREA.ID_AREA
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN 
--		C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		ON 
--			PATRBF.RETE = ASUL.RETE
--			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
--		ON 
--			ASSETPERC.COD_ISIN = rtrim(ASUL.COD_ISIN_SOTT)
--			AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF_SOTT)
--			AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
--			AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--
--WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--
--
--    GROUP BY 
--     PATRBF.ID_CONTRATTO,
--     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end,
--        PATRBF.NOME_PROGETTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO 
--
--
--
UNION ALL

SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario,
		--patrbf.ordinamento_progetto
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale

  GROUP BY 
     PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO ,
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto

END










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 10/02/2022 16:32:13 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
----exec  [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]   'F' ,'GSPNGL31C04B157Q'

---- =============================================
---- Author:		Luca De Lisio
---- Create date: 04/12/2008
---- Description: <Description,,>
---- =============================================
----
---- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]  'F', 'BLNMTN60L53L736R'
----
--ALTER procedure [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end as NEEDAREA,
--		PATRBF.NOME_PROGETTO as Progetto,
--		patrbf.chiave_progetto as ord_progetto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		--patrbf.ordinamento_progetto
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM 
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN
--		C6MartPeriodico.AREA_BISOGNO AREA
--		ON
--			PATRBF.ID_AREA = AREA.ID_AREA
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN 
--		C6MartPeriodico.ASSET_PERC ASSETPERC 
--		ON 
--			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
----INIZIO INTERVENTI OMNIA		
--        AND PATRBF.CTV <> 0.00
----INIZIO INTERVENTI OMNIA		
----	UNION ALL

----ASUL NO SKANDIA
----	SELECT  
----		PATRBF.ID_CONTRATTO as Contratto,
----		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
----		CASE
----		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
----		 ELSE area.ID_AREA end as NEEDAREA,
----		PATRBF.NOME_PROGETTO as Progetto,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
----		ANAGP.DESCR_PRODOTTO AS Descrizione,
----		sum(ASUL.CTV) as Controvalore,
----		sum(ASUL.CTV) as controvalore_contratto,
----		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
----		@NOMERETE as Intermediario
----	FROM
----		C6MartPeriodico.PATRIMONIO_BF PATRBF
----	INNER JOIN
----		C6MartPeriodico.AREA_BISOGNO AREA
----		ON
----			PATRBF.ID_AREA = AREA.ID_AREA
----	INNER JOIN 
----		C6MartPeriodico.ANAG_PRODOTTI ANAGP
----		ON 
----			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
----	INNER JOIN 
----		C6MartPeriodico.DETTAGLIO_ASUL ASUL
----		ON 
----			PATRBF.RETE = ASUL.RETE
----			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
----			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
----	
----		------ NEW
----		LEFT OUTER JOIN 
----			C6MartPeriodico.ASSET_PERC ASSETPERC
----		ON	
----			ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
----			AND ASUL.COD_ISIN_SOTT = ''
----			AND ASSETPERC.LIVELLO = 1


--	-------------OLD
--	----LEFT OUTER JOIN 
--	----		C6MartPeriodico.ASSET_PERC ASSETPERC
--	----		ON 
--	----			ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--	----			AND ASSETPERC.LIVELLO = 1 
----	WHERE 1 = 1
----		AND PATRBF.RETE = @Rete
----		AND PATRBF.COD_FISCALE = @CodiceFiscale
----		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
----		AND ASSETPERC.COD_PRODOTTO IS NULL
----
----
----    GROUP BY 
----     PATRBF.ID_CONTRATTO,
----     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
----		CASE
----		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
----		 ELSE area.ID_AREA end,
----        PATRBF.NOME_PROGETTO,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
----		ANAGP.DESCR_PRODOTTO 
-------------------------------------------------------------------------------------------------------

----	union all
----	--asul skandia
----	SELECT  
----		PATRBF.ID_CONTRATTO as Contratto,
----		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
----		CASE
----		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
----		 ELSE area.ID_AREA end as NEEDAREA,
----		PATRBF.NOME_PROGETTO as Progetto,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
----		ANAGP.DESCR_PRODOTTO AS Descrizione,
----		sum(ASUL.CTV) as Controvalore,
----		sum(ASUL.CTV) as controvalore_contratto,
----		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
----		@NOMERETE as Intermediario
----	FROM
----		C6MartPeriodico.PATRIMONIO_BF PATRBF
----	INNER JOIN
----		C6MartPeriodico.AREA_BISOGNO AREA
----		ON
----			PATRBF.ID_AREA = AREA.ID_AREA
----	INNER JOIN 
----		C6MartPeriodico.ANAG_PRODOTTI ANAGP
----		ON 
----			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
----	INNER JOIN 
----		C6MartPeriodico.DETTAGLIO_ASUL ASUL
----		ON 
----			PATRBF.RETE = ASUL.RETE
----			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
----			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
----	LEFT JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
----		ON 
----			ASSETPERC.COD_ISIN = rtrim(ASUL.COD_ISIN_SOTT)
----			AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF_SOTT)
----			AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
----			AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
----			AND ASSETPERC.LIVELLO = 1
----
----WHERE 1 = 1
----		AND PATRBF.RETE = @Rete
----		AND PATRBF.COD_FISCALE = @CodiceFiscale
----		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
----		AND ASSETPERC.COD_PRODOTTO IS NULL
----
----
----    GROUP BY 
----     PATRBF.ID_CONTRATTO,
----     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
----		CASE
----		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
----		 ELSE area.ID_AREA end,
----        PATRBF.NOME_PROGETTO,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
----		ANAGP.DESCR_PRODOTTO 
----
----
----
--UNION ALL

--SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end as NEEDAREA,
--		PATRBF.NOME_PROGETTO as Progetto,
--		patrbf.chiave_progetto as ord_progetto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		sum(ASUL.CTV) as Controvalore,
--		sum(ASUL.CTV) as controvalore_contratto,
--		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		--patrbf.ordinamento_progetto
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN
--		C6MartPeriodico.AREA_BISOGNO AREA
--		ON
--			PATRBF.ID_AREA = AREA.ID_AREA
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN 
--		C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		ON 
--			PATRBF.RETE = ASUL.RETE
--			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	left JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--             (
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---no SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--              )
--           or
--			 (  --SKANDIA
--			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--			 )
--		WHERE
--		ASSETPERC.COD_PRODOTTO IS NULL
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale

--  GROUP BY 
--     PATRBF.ID_CONTRATTO,
--     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end,
--        PATRBF.NOME_PROGETTO,
--		patrbf.chiave_progetto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
--		ANAGP.DESCR_PRODOTTO ,
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto

--END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S76PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Luca De Lisio
-- Create date: 04/12/2008
-- Description: <Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S76PatrimonioNonRappresentabileAssettClass] 'F','GSPNGL31C04B157Q'
CREATE procedure [C6MartPeriodico].[PL_S76PatrimonioNonRappresentabileAssettClass] --'S','GLLLCN29H16I829A'
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE IF @RETE = 'S'
		SET @NOMERETE = 'Sanpaolo Invest'
		ELSE SET @NOMERETE = 'IW Private Investments'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario,
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC


	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
		--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV  <>0.00
--INIZIO INTERVENTI OMNIA		

UNION ALL

SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
	--	CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end as NEEDAREA,
--		PATRBF.NOME_PROGETTO as Progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario,
		-- savingmap - Novembre 2019
    	patrbf.tipo_prodotto as Tipo_Prodotto,
		NULL as isAPC

	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale

  GROUP BY 
     PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO, 
		-- savingmap - Novembre 2019
	    patrbf.tipo_prodotto



--union all
--SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		SUM(ASUL.CTV) as Controvalore,
--		MAX(PATRBF.CTV) as controvalore_contratto,
--		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
--		ON PATRBF.RETE = ASUL.RETE
--		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
--		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--		AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--        GROUP BY 
--        PATRBF.ID_CONTRATTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
--		ANAGP.DESCR_PRODOTTO 
--	ORDER BY CONTROVALORE DESC
--
--

--	UNION ALL
--
--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		ASUL.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario
--	FROM
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN 
--		C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		ON 
--			PATRBF.RETE = ASUL.RETE
--			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	LEFT OUTER JOIN 
--		C6MartPeriodico.ASSET_PERC ASSETPERC
--		ON 
--			ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--			AND ASSETPERC.LIVELLO = 1 
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
  
END












--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S76PatrimonioNonRappresentabileAssettClass]    Script Date: 10/02/2022 16:34:12 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		Luca De Lisio
---- Create date: 04/12/2008
---- Description: <Description,,>
---- =============================================
----[C6MartPeriodico].[PL_S76PatrimonioNonRappresentabileAssettClass] 'F','GSPNGL31C04B157Q'
--ALTER procedure [C6MartPeriodico].[PL_S76PatrimonioNonRappresentabileAssettClass] 
-- -- Add the parameters for the stored procedure here
-- @Rete char(1), 
-- @CodiceFiscale varchar(16)

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

--	DECLARE @NOMERETE VARCHAR(20)
--	IF @RETE = 'F'
--		SET @NOMERETE = 'Fideuram'
--	ELSE
--		SET @NOMERETE = 'Sanpaolo Invest'

--	SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		PATRBF.CTV as Controvalore,
--		PATRBF.CTV as controvalore_contratto,
--		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto as Tipo_Prodotto


--	FROM 
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	LEFT OUTER JOIN 
--		C6MartPeriodico.ASSET_PERC ASSETPERC 
--		ON 
--			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--	WHERE 1 = 1
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale
--		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
--		AND ASSETPERC.COD_PRODOTTO IS NULL
--		--INIZIO INTERVENTI OMNIA		
--        AND PATRBF.CTV <> 0.00
----INIZIO INTERVENTI OMNIA		

--UNION ALL

--SELECT  
--		PATRBF.ID_CONTRATTO as Contratto,
--	--	CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
----		CASE
----		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
----		 ELSE area.ID_AREA end as NEEDAREA,
----		PATRBF.NOME_PROGETTO as Progetto,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
--		ANAGP.DESCR_PRODOTTO AS Descrizione,
--		sum(ASUL.CTV) as Controvalore,
--		sum(ASUL.CTV) as controvalore_contratto,
--		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
--		@NOMERETE as Intermediario,
--		-- savingmap - Novembre 2019
--    	patrbf.tipo_prodotto as Tipo_Prodotto

--	FROM
--		C6MartPeriodico.PATRIMONIO_BF PATRBF
--	INNER JOIN
--		C6MartPeriodico.AREA_BISOGNO AREA
--		ON
--			PATRBF.ID_AREA = AREA.ID_AREA
--	INNER JOIN 
--		C6MartPeriodico.ANAG_PRODOTTI ANAGP
--		ON 
--			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--	INNER JOIN 
--		C6MartPeriodico.DETTAGLIO_ASUL ASUL
--		ON 
--			PATRBF.RETE = ASUL.RETE
--			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--	left JOIN 
--			C6MartPeriodico.ASSET_PERC ASSETPERC
--			ON 
--             (
--				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				---no SKANDIA
--				AND ASUL.COD_ISIN_SOTT = ''
--				AND ASSETPERC.LIVELLO = 1
--              )
--           or
--			 (  --SKANDIA
--			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
--			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
--			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
--			AND ASSETPERC.LIVELLO = 1
--			 )
--		WHERE
--		ASSETPERC.COD_PRODOTTO IS NULL
--		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
--		AND PATRBF.RETE = @Rete
--		AND PATRBF.COD_FISCALE = @CodiceFiscale

--  GROUP BY 
--     PATRBF.ID_CONTRATTO,
--     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
--		CASE
--		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--		 ELSE area.ID_AREA end,
--        PATRBF.NOME_PROGETTO,
--		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
--		ANAGP.DESCR_PRODOTTO, 
--		-- savingmap - Novembre 2019
--	    patrbf.tipo_prodotto



----union all
----SELECT  
----		PATRBF.ID_CONTRATTO as Contratto,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
----		ANAGP.DESCR_PRODOTTO AS Descrizione,
----		SUM(ASUL.CTV) as Controvalore,
----		MAX(PATRBF.CTV) as controvalore_contratto,
----		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
----		@NOMERETE as Intermediario
----	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
----	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
----		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
----	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
----		ON PATRBF.RETE = ASUL.RETE
----		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
----		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
----	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
----		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
----		AND ASSETPERC.LIVELLO = 1 
----	WHERE 1 = 1
----		AND PATRBF.RETE = @Rete
----		AND PATRBF.COD_FISCALE = @CodiceFiscale
----		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
----		AND ASSETPERC.COD_PRODOTTO IS NULL
----        GROUP BY 
----        PATRBF.ID_CONTRATTO,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
----		ANAGP.DESCR_PRODOTTO 
----	ORDER BY CONTROVALORE DESC
----
----

----	UNION ALL
----
----	SELECT  
----		PATRBF.ID_CONTRATTO as Contratto,
----		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
----		ANAGP.DESCR_PRODOTTO AS Descrizione,
----		ASUL.CTV as Controvalore,
----		PATRBF.CTV as controvalore_contratto,
----		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
----		@NOMERETE as Intermediario
----	FROM
----		C6MartPeriodico.PATRIMONIO_BF PATRBF
----	INNER JOIN 
----		C6MartPeriodico.ANAG_PRODOTTI ANAGP
----		ON 
----			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
----	INNER JOIN 
----		C6MartPeriodico.DETTAGLIO_ASUL ASUL
----		ON 
----			PATRBF.RETE = ASUL.RETE
----			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
----			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
----	LEFT OUTER JOIN 
----		C6MartPeriodico.ASSET_PERC ASSETPERC
----		ON 
----			ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
----			AND ASSETPERC.LIVELLO = 1 
----	WHERE 1 = 1
----		AND PATRBF.RETE = @Rete
----		AND PATRBF.COD_FISCALE = @CodiceFiscale
----		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
----		AND ASSETPERC.COD_PRODOTTO IS NULL
  
--END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- [C6MartPeriodico].[PL_S80Alternativa]'S','CRBRNN54R23H509R'
 --[C6MartPeriodico].[PL_S80Alternativa] 'F','BRCLRT62R29I690L'
CREATE   procedure [C6MartPeriodico].[PL_S80Alternativa] --'F','BNBLPL51M05F965Y'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT

    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0

   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
BEGIN

SELECT [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,replace([DettMovS80],'.',',')  DettMov
      ,[NumeroAsterischiNota]
	  -- MIOFOGLIO 2018106
      ,[CTVSelfFoglio]
	  -- fine MIOFOGLIO 20181206
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
  WHERE	[Rete] 		= @Rete 
  AND	[Cod_Fiscale] = @CodiceFiscale

END

ELSE

BEGIN

SELECT [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
	  -- MIOFOGLIO 2018106
      ,[CTVSelfFoglio]
	  -- fine MIOFOGLIO 20181206
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
	WHERE
		1=2

END

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- [C6MartPeriodico].[PL_S80Alternativa]'S','CRBRNN54R23H509R'

CREATE procedure [C6MartPeriodico].[PL_S80Alternativa_20181214_PreMioFoglio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT

    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0

   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
BEGIN

SELECT [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
  WHERE	[Rete] 		= @Rete 
  AND	[Cod_Fiscale] = @CodiceFiscale

END

ELSE

BEGIN

SELECT [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
	WHERE
		1=2

END

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa_bkp_FC]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S80Alternativa_bkp_FC]'F','CRRLSN52T45I274L'
 

CREATE procedure [C6MartPeriodico].[PL_S80Alternativa_bkp_FC]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT
	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0
	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

    -- Inserimento Dati Scirocco
    --SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM < '20111231'
	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR
	FROM C6MartPeriodico.DettaglioMovimenti
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
    --SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM = '20111231'
	
	IF @DettMovPrec is null
		SET @AppoDettMovPrec = 'n.d.'
	ELSE
		SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	IF @DettMovCorr is null
		SET @AppoDettMovCorr = 'n.d.'
	ELSE
		SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	--query per asterischi situazione precedente
	IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
		WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)
		AND RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1

	IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
		WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1
	-----------------------------------------
	
	--query per asterischi situazione corrente
	IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
		WHERE COD_INTERNO IN ('37', 'GP')
		AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
		SET @NumAsterischiCorr = 1
	-----------------------------------------

	SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale

	SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale


    IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
    BEGIN

	-- Attivazione monitoraggio

--versione nuova da testare 


	SELECT
		1 AS Fase,
		isnull(INI.DATA_FOTO,0) AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		isnull(INI.CTV_EXT,0) as CTV_EXT,
		isnull(INI.CTV_INV,0) as CTV_INV,
		isnull(INI.CTV_PRE,0) as CTV_PRE,
		isnull(INI.CTV_RIS,0) as CTV_RIS,
		isnull(INI.CTV_LIQ,0) as CTV_LIQ,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,
		isnull(INI.CTV_NA,0) AS RisorseNonAllocate,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,
		isnull(INI.CTV_CC,0) AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		isnull(INI.CTVSELF,0) AS ctvself,
--		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
--FINE INTERVENTI OMNIA
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + INI.PARTITA_VIAGGIANTE AS TotalePatrimonio		
		,null as DettMov
		,0	as NumeroAsterischiNota
		--1 AS Fase,
		--INI.DATA_FOTO AS DataFase,
		--ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		--INI.CTV_EXT,
		--INI.CTV_INV,
		--INI.CTV_PRE,
		--INI.CTV_RIS,
		--INI.CTV_LIQ,
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
		--INI.CTV_NA AS RisorseNonAllocate,
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
		--INI.CTV_CC AS Contocorrente,
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		--,null as DettMov
		--,0	as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale
       --AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
       
    UNION ALL

	-- Precedente invio report

 	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
--INIZIO INTERVENTI OMNIA
		isnull(rep.CTV_SELF,0) AS CTV_SELF,
--		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
--FINE INTERVENTI OMNIA
		--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
		--CTV_TOTALE AS ControvaloreComplessivo
		
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
--INIZIO INTERVENTI OMNIA
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,			
--FINE INTERVENTI OMNIA
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
--INIZIO INTERVENTI OMNIA
--			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
  			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio
--FINE INTERVENTI OMNIA
			--sum((isnull(IMPORTO,0))) AS TotalePatrimonio

			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio			
			--SUM(CTV) as ControvaloreComplessivo
			
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
			--,'1' as NumeroAsterischiNota
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
--		AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
--		ON 	BF.RETE = PV.RETE
--		AND BF.COD_FISCALE = PV.COD_FISCALE
	WHERE	
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN

	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_EXT,
		CTV_INV,
		CTV_PRE,
		CTV_RIS,
		CTV_LIQ,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,		
		CTV_NA AS RisorseNonAllocate,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,		
		CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		CTVSELF AS ctvself,
--		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio			
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC + ctvself AS TotalePatrimonio			
--FINE INTERVENTI OMNIA
		--CTV_TOTALE AS ControvaloreComplessivo
	FROM
		MONITORAGGIO_INIZIALE
	WHERE
		1=2

END

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S80Alternativa]'F','GSTGPL59P03B586G'
 

CREATE procedure [C6MartPeriodico].[PL_S80Alternativa_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT
	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0
	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

    -- Inserimento Dati Scirocco
    --SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM < '20111231'
	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR
	FROM C6MartPeriodico.DettaglioMovimenti
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
    --SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM = '20111231'
	
	IF @DettMovPrec is null
		SET @AppoDettMovPrec = 'n.d.'
	ELSE
		SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	IF @DettMovCorr is null
		SET @AppoDettMovCorr = 'n.d.'
	ELSE
		SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	--query per asterischi situazione precedente
	IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
		WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)
		AND RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1

	IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
		WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1
	-----------------------------------------
	
	--query per asterischi situazione corrente
	IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
		WHERE COD_INTERNO IN ('37', 'GP')
		AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
		SET @NumAsterischiCorr = 1
	-----------------------------------------

	SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale

	SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale


    IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
    BEGIN

	-- Attivazione monitoraggio

--versione nuova da testare 


	SELECT
		1 AS Fase,
		isnull(INI.DATA_FOTO,0) AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		isnull(INI.CTV_EXT,0) as CTV_EXT,
		isnull(INI.CTV_INV,0) as CTV_INV,
		isnull(INI.CTV_PRE,0) as CTV_PRE,
		isnull(INI.CTV_RIS,0) as CTV_RIS,
		isnull(INI.CTV_LIQ,0) as CTV_LIQ,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,
		isnull(INI.CTV_NA,0) AS RisorseNonAllocate,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,
		isnull(INI.CTV_CC,0) AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		isnull(INI.CTVSELF,0) AS ctvself,
--		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
--FINE INTERVENTI OMNIA
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + INI.PARTITA_VIAGGIANTE AS TotalePatrimonio		
		,null as DettMov
		,0	as NumeroAsterischiNota
		--1 AS Fase,
		--INI.DATA_FOTO AS DataFase,
		--ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		--INI.CTV_EXT,
		--INI.CTV_INV,
		--INI.CTV_PRE,
		--INI.CTV_RIS,
		--INI.CTV_LIQ,
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
		--INI.CTV_NA AS RisorseNonAllocate,
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
		--INI.CTV_CC AS Contocorrente,
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		--,null as DettMov
		--,0	as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale
       --AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
       
    UNION ALL

	-- Precedente invio report

 	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
--INIZIO INTERVENTI OMNIA
		isnull(rep.CTV_SELF,0) AS CTV_SELF,
--		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
--FINE INTERVENTI OMNIA
		--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
		--CTV_TOTALE AS ControvaloreComplessivo
		
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
--INIZIO INTERVENTI OMNIA
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,			
--FINE INTERVENTI OMNIA
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
--INIZIO INTERVENTI OMNIA
--			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
  			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio
--FINE INTERVENTI OMNIA
			--sum((isnull(IMPORTO,0))) AS TotalePatrimonio

			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio			
			--SUM(CTV) as ControvaloreComplessivo
			
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
			--,'1' as NumeroAsterischiNota
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
--		AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
--		ON 	BF.RETE = PV.RETE
--		AND BF.COD_FISCALE = PV.COD_FISCALE
	WHERE	
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN

	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_EXT,
		CTV_INV,
		CTV_PRE,
		CTV_RIS,
		CTV_LIQ,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,		
		CTV_NA AS RisorseNonAllocate,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,		
		CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		CTVSELF AS ctvself,
--		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio			
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC + ctvself AS TotalePatrimonio			
--FINE INTERVENTI OMNIA
		--CTV_TOTALE AS ControvaloreComplessivo
	FROM
		MONITORAGGIO_INIZIALE
	WHERE
		1=2

END

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa_DidascalieNote]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_S80Alternativa_DidascalieNote]
as

select	*
from	[C6MartPeriodico].[S80Alternativa_DidascalieNote]

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80Alternativa]'S','LLAMGH27A43M058H'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]

CREATE procedure [C6MartPeriodico].[PL_S80Alternativa_OLD]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT
	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0
	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

    -- Inserimento Dati Scirocco
    --SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM < '20111231'

/*	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR
	FROM C6MartPeriodico.DettaglioMovimenti
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
*/
	SELECT @DettMovCorr = DETT_MOV
	FROM C6MartPeriodico.DettaglioMovimenti_old
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
	AND
		FLAG_TRIM = 1

	SELECT @DettMovPrec = DETT_MOV
	FROM C6MartPeriodico.DettaglioMovimenti_old
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
	AND
		FLAG_TRIM = 0

    --SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM = '20111231'
	
	IF @DettMovPrec is null
		SET @AppoDettMovPrec = 'n.d.'
	ELSE
		SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	IF @DettMovCorr is null
		SET @AppoDettMovCorr = 'n.d.'
	ELSE
		SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	--query per asterischi situazione precedente
	IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
		WHERE CODPROD IN ('37', 'GP') AND DTTRIM = '20111231'
		AND RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1

	IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
		WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1
	-----------------------------------------
	
	--query per asterischi situazione corrente
	IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
		WHERE COD_INTERNO IN ('37', 'GP')
		AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
		SET @NumAsterischiCorr = 1
	-----------------------------------------

	SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale

	SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale


    IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
    BEGIN

	-- Attivazione monitoraggio

--versione nuova da testare 


	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		INI.CTV_EXT,
		INI.CTV_INV,
		INI.CTV_PRE,
		INI.CTV_RIS,
		INI.CTV_LIQ,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
		INI.CTV_NA AS RisorseNonAllocate,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
		INI.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA +	(CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END) AS TotalePatrimonio
		--INI.CTV_TOTALE AS ControvaloreComplessivo
		
		,null as DettMov
		,0	as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale
       --AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
       
    UNION ALL

	-- Precedente invio report

 	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
		--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
		--CTV_TOTALE AS ControvaloreComplessivo
		
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
			--sum((isnull(IMPORTO,0))) AS TotalePatrimonio

			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio			
			--SUM(CTV) as ControvaloreComplessivo
			
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
--		AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
--		ON 	BF.RETE = PV.RETE
--		AND BF.COD_FISCALE = PV.COD_FISCALE
	WHERE	
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN

	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_EXT,
		CTV_INV,
		CTV_PRE,
		CTV_RIS,
		CTV_LIQ,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,		
		CTV_NA AS RisorseNonAllocate,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,		
		CTV_CC AS Contocorrente,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio			
		--CTV_TOTALE AS ControvaloreComplessivo
	FROM
		MONITORAGGIO_INIZIALE
	WHERE
		1=2

END

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80Alternativa_perc]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6MartPeriodico].[PL_S80Alternativa]'S','CRBRNN54R23H509R'

Create procedure [C6MartPeriodico].[PL_S80Alternativa_perc]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT

    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0

   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
BEGIN

SELECT [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
	  ,[PERC_EXT]
	  ,[PERC_INV]
	  ,[PERC_PRE]
	  ,[PERC_RIS]
	  ,[PERC_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
	  -- MIOFOGLIO 2018106
      ,[CTVSelfFoglio]
	  -- fine MIOFOGLIO 20181206
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc]
  WHERE	[Rete] 		= @Rete 
  AND	[Cod_Fiscale] = @CodiceFiscale

END

ELSE

BEGIN

SELECT [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
	  ,[PERC_EXT]
	  ,[PERC_INV]
	  ,[PERC_PRE]
	  ,[PERC_RIS]
	  ,[PERC_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
	  -- MIOFOGLIO 2018106
      ,[CTVSelfFoglio]
	  -- fine MIOFOGLIO 20181206
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc]
	WHERE
		1=2

END

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT
      Fase	
      ,DataFase	
      ,VarMassimoProfiloFinanziario	
      ,VarComplessivo	
      ,Copertura	
      ,RISKCLASS	
      ,RISKCLASSMAX	
      ,RiskClassString	
      ,RiskClassMaxString
  FROM [C6MartPeriodico].[TB_S80BisEvoluzioneRischio]		
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio_20170413_RM_DBname]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio_20170413_RM_DBname]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT
      Fase	
      ,DataFase	
      ,VarMassimoProfiloFinanziario	
      ,VarComplessivo	
      ,Copertura	
      ,RISKCLASS	
      ,RISKCLASSMAX	
      ,RiskClassString	
      ,RiskClassMaxString
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S80BisEvoluzioneRischio]		
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio_BkUpParall]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80EvoluzioneControvalore]

CREATE procedure [C6MartPeriodico].[PL_S80BisEvoluzioneRischio_BkUpParall]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI
	DECLARE @MONIT_INIT INT
	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	--V VAriabile usata per verificare la presenza di righe nella rischio_aggregato, se non ho righe non
	--faccio uscire la sezione	
	DECLARE @AGGR INT

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET	 @MONIT_INIT = 0

	
	
	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete


   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale


    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
    C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale

	SELECT @AGGR=COUNT(*)
    FROM 
    C6MARTPERIODICO.RISCHIO_AGGREGATO
    WHERE
			RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale
	
    
    IF (@MONIT_ATTIV > 0 AND @AGGR > 0 AND @MONIT_INIT > 0)
    

    BEGIN


   

	-- Attivazione monitoraggio

-- nuova versione da testare

	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
			ELSE ROUND(INI.VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		INI.VAR_COPERTURA AS Copertura,
        INI.RISKCLASS,
        INI.RISKCLASSMAX,
		case 
			when INI.RISKCLASS is null  then 'n.d.'
			when INI.RISKCLASS = 0 then 'n.a.'	
			else null
		end as RiskClassString,
		
		case 
			when INI.RISKCLASSMAX is null then 'n.d.'
			when INI.RISKCLASSMAX = 0 then 'n.a.'
			else null
		end as RiskClassMaxString
		
		 
		
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        LEFT OUTER  join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale

--	SELECT
--		1 AS Fase,
--		INI.DATA_FOTO AS DataFase,
--		INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
--		--V
--		CASE
--			WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
--			ELSE ROUND(INI.VAR_COMPLESSIVO,2)
--		END AS VarComplessivo,
--		INI.VAR_COPERTURA AS Copertura
--	FROM
--		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
--
--	WHERE
--		INI.RETE = @Rete AND
--		INI.COD_FISCALE = @CodiceFiscale


	UNION ALL

	-- Precedente invio report

	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO
			ELSE ROUND(rep.VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		rep.VAR_COPERTURA AS Copertura,
         rep.RISKCLASS,
         rep.RISKCLASSMAX,
		case when rep.RISKCLASS is null then 'n.a.'
			 else null
		end as RiskClassString,
		case when rep.RISKCLASSMAX is null then 'n.a.'
			 else null
		end as RiskClassMaxString
		
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
	AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento


	UNION ALL

	-- Situazione corrente

	SELECT
		3,
		CASE
			WHEN @DataCongelamento IS NULL THEN GETDATE()
			ELSE @DataCongelamento
		END AS DataFase,
		CR.MAX_VAR AS VarMassimoProfiloFinanziario,
		--V
		CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00
			 ELSE ROUND(RA.VAR_PERC_PTF,2)
		END  AS VarComplessivo,
		CASE
			WHEN (@contaPOS - @contaCC = 0 ) THEN 100
			ELSE isnull(RA.COPERTURA,0) 
		END AS Copertura,
-- TRINGALI MODIFICARE
       ra.creditrisk as RISKCLASS,
        mifid.riskclass as RISKCLASSMAX,
		case when ra.creditrisk is null then 'n.a.'
        else null end   as RiskClassString,
		case when  mifid.riskclass is null then 'n.a.'
              else null end as RiskClassMaxString
	FROM
        C6MartPeriodico.vPatrimonioBFAggregato AS BF
	INNER JOIN C6MartPeriodico.MIFID AS MIFID
		ON 	BF.RETE = MIFID.RETE
		AND BF.COD_FISCALE = MIFID.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MIFID.PROFILO_ASS = CR.PROFILO
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON 	RA.RETE = BF.RETE
		AND RA.COD_FISCALE = BF.COD_FISCALE
		AND RA.COD_AGGREG = 'COMPLESSIVO|BF'
	WHERE
		BF.RETE = @Rete AND
		BF.COD_FISCALE = @CodiceFiscale

END 

ELSE

BEGIN
 
	SELECT
		2 AS Fase,
		DATA_INVIO AS DataFase,
		VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN VAR_COMPLESSIVO IS NULL THEN VAR_COMPLESSIVO
			ELSE ROUND(VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		VAR_COPERTURA AS Copertura
	FROM
		C6MartPeriodico.MONITORAGGIO_REPORT
	WHERE
1=2


END





END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S80EvoluzioneControvalore]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80EvoluzioneControvalore]'F','GSTGPL59P03B586G'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]

CREATE procedure [C6MartPeriodico].[PL_S80EvoluzioneControvalore]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0

   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE


    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
    C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale
    
    IF @MONIT_ATTIV > 0 
    

    BEGIN





	-- Attivazione monitoraggio

--versione nuova da testare 
	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		INI.CTV_NA AS RisorseNonAllocate,
		INI.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		INI.CTVSELF AS Ctvself,
--FINE INTERVENTI OMNIA
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		INI.CTV_TOTALE AS ControvaloreComplessivo
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete 
AND
		INI.COD_FISCALE = @CodiceFiscale
       
--	SELECT
--		1 AS Fase,
--		INI.DATA_FOTO AS DataFase,
--		INI.CTV_NA AS RisorseNonAllocate,
--		INI.CTV_CC AS Contocorrente,
--		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
--		INI.CTV_TOTALE AS ControvaloreComplessivo
--	FROM
--		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
--	WHERE
--		INI.RETE = @Rete AND
--		INI.COD_FISCALE = @CodiceFiscale

    UNION ALL

	-- Precedente invio report

	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_CC AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		rep.CTV_SELF AS Ctvself,
--FINE INTERVENTI OMNIA
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		--CTV_TOTALE + CTV_CC + CTV_NA  + ISNULL(PARTITA_VIAGGIANTE,0)  AS ControvaloreComplessivo  --V aggiunto il cc e na per coerenza con le altre fasi
		rep.CTV_TOTALE  + ISNULL(rep.PARTITA_VIAGGIANTE,0)  AS ControvaloreComplessivo  --V tolto il cc e na in quanto gia conteggiati
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente

	SELECT
		3 AS Fase,
		CASE
			WHEN @DataCongelamento IS NULL THEN GETDATE()
			ELSE @DataCongelamento
		END AS DataFase,
		PatrimonioNonAssociato AS RisorseNonAllocate,
		ContoCorrente,
--INIZIO INTERVENTI OMNIA
		CTVSelf AS Ctvself,
--FINE INTERVENTI OMNIA
		PartiteViaggiantiDisinv AS Partita_viaggiante,
		CTV AS ControvaloreComplessivo
	FROM
		C6MartPeriodico.vPatrimonioBFAggregato
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN
 
	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		CTV_NA AS RisorseNonAllocate,
		CTV_CC AS Contocorrente,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_TOTALE AS ControvaloreComplessivo
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE
	WHERE
	1=2


END

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S82BisDatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	vista ORACLE S82BIS_DATI_SINTET_RIS_E_INV tradotta su SQLSERVER. 
--				Punto di partenza per lo sviluppo futuro.
-- =============================================
-- [C6MartPeriodico].[PL_S82BisDatiSintetici] 'F','DNGMRA56E66D542Z'
CREATE procedure [C6MartPeriodico].[PL_S82BisDatiSintetici]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	/*DECLARE @TOTRischio DECIMAL(20,2)

	SELECT
		@TOTRischio = SUM(ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV)
	FROM
		C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA INNER JOIN
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAREA ON
			PATRAREA.RETE = RISCHIOAREA.RETE AND
			PATRAREA.COD_FISCALE = RISCHIOAREA.COD_FISCALE
	WHERE
		PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE','INV') AND
		PATRAREA.RETE = @Rete AND
		PATRAREA.COD_FISCALE = @CodiceFiscale*/

	SELECT DISTINCT
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		--C6MartPeriodico.getDescFromDate(DATEDIFF(m,(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) ,GETDATE()) + 1) AS durataResidua,
		--DATEDIFF(m,DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM, PIRMOD.DATA_PIANIF) ,GETDATE()) + 1 AS durataResidua,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		
		/*V Calcolato a livello di codice
		CASE
			WHEN BFAggr.CTV = 0 THEN 0
			ELSE SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO) / BFAggr.CTV * 100
		END AS pesoPerc,*/
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		/*V Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RA.VAR_PERC_PTF,0) * SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO) / @TOTRischio * 100
		END AS rischioRelativo*/
		into #temp 
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		AND BF.RETE = @Rete
		AND BF.COD_FISCALE = @CodiceFiscale
		--AND BF.ORDINAMENTO_PROGETTO=1521667

	if exists (select 1 from #temp)
		select * from #temp
	else
		select 
		    0 as ORDINAMENTO_PROGETTO
		   ,'' as need_area
		   ,NULL as NOME_PROGETTO
		   ,0 as var_needarea
		   ,'n.c.' as var_needareaString
		   ,'n.c.' as copertura_needareaString
		   ,'' as orizzonte_Pianificato
		   ,0 as durataResidua
		   ,0 as ControvaloreAttuale
END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S82DatiSintetici]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_S82DatiSintetici] 'S','MRCGST50D02H223T'
CREATE procedure [C6MartPeriodico].[PL_S82DatiSintetici]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	/*DECLARE @TOTRischio DECIMAL(20,2)

	SELECT
		@TOTRischio = SUM(ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV)
	FROM
		C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA INNER JOIN
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAREA ON
			PATRAREA.RETE = RISCHIOAREA.RETE AND
			PATRAREA.COD_FISCALE = RISCHIOAREA.COD_FISCALE
	WHERE
		PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE','INV') AND
		PATRAREA.RETE = @Rete AND
		PATRAREA.COD_FISCALE = @CodiceFiscale*/

	SELECT
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	into #temp
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.RETE = @Rete
			AND PATRAREA.COD_FISCALE = @CodiceFiscale
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

	if exists (select 1 from #temp)
		select * from #temp
	else
		select 
			'' as need_area
		   ,0 as var_needarea
		   ,'n.c.' as var_needareaString
		   ,'n.c.' as copertura_needareaString
		   ,0 as ControvaloreAttuale

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S83DatiRendimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_S83DatiRendimento]  'F','DNERNZ56P01A757W'
CREATE procedure [C6MartPeriodico].[PL_S83DatiRendimento]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT

--	IF EXISTS (
--		SELECT
--			PATR_BF.ID_AREA AS Need_Area,
--			PATR_BF.ID_CONTRATTO AS Contratto,
--			CASE
--				WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
--				ELSE PATR_BF.NOME_PROGETTO
--			END AS Area_O_Nome_Progetto,
--			PRODOTTI.DESCR_PRODOTTO AS Descrizione,
--			PATR_BF.PARTVIA_INV AS PartitaViaggiante,
--			SUM(PATR_BF.CTV) OVER (PARTITION BY PATR_BF.COD_PRODOTTO) AS Controvalore,
--			dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
--		FROM
--			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--				PATR_BF.ID_AREA = AREA.ID_AREA
--			INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
--				PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO
--		WHERE
--			PATR_BF.RETE = @Rete
--			AND PATR_BF.COD_FISCALE = @CodiceFiscale
--			AND PATR_BF.REND_NON_RAPPR = 1
--	)
--		SET @RendimNonRappr = 1
--            
--	ELSE
--		SET @RendimNonRappr = 0
--
--	SELECT
--		@RendimNonRappr AS cf_rendim_non_rappr,
--		ID_AREA AS Need_Area,
--		CASE
--			WHEN NOME_PROGETTO = 'XXX' THEN ''
--			ELSE NOME_PROGETTO
--		END AS Nome_Progetto,
--		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
--		CTV_MONITORATO AS ControvaloreMonitorato,
--		APPORTO_INIZIALE AS ApportoIniziale,
--		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
--		LIQUIDAZIONI,
--		CEDOLE_DIVIDENDI AS CedoleEDividendi,
--		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
--		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
--		RISORSE_ASSOCIATE AS RisorseApportate,
--		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
--		RENDIMENTO_ANNUALIZZATO
--	FROM
--		C6MartPeriodico.MONITORAGGIO_ATTUALE
--	WHERE
--		RETE = @Rete AND
--		COD_FISCALE = @CodiceFiscale 
--        --AND RISORSE_ASSOCIATE > 0

SELECT
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			PATR_BF.RETE = @Rete
			AND PATR_BF.COD_FISCALE = @CodiceFiscale
			AND PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
	WHERE
		MONIT.RETE = @Rete AND
		MONIT.COD_FISCALE =  @CodiceFiscale
 

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S83DatiRendimento_85]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_S83DatiRendimento] 'F','DNERNZ56P01A757W'
CREATE procedure [C6MartPeriodico].[PL_S83DatiRendimento_85]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT

--	IF EXISTS (
--		SELECT
--			PATR_BF.ID_AREA AS Need_Area,
--			PATR_BF.ID_CONTRATTO AS Contratto,
--			CASE
--				WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
--				ELSE PATR_BF.NOME_PROGETTO
--			END AS Area_O_Nome_Progetto,
--			PRODOTTI.DESCR_PRODOTTO AS Descrizione,
--			PATR_BF.PARTVIA_INV AS PartitaViaggiante,
--			SUM(PATR_BF.CTV) OVER (PARTITION BY PATR_BF.COD_PRODOTTO) AS Controvalore,
--			dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
--		FROM
--			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
--			INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
--				PATR_BF.ID_AREA = AREA.ID_AREA
--			INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
--				PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO
--		WHERE
--			PATR_BF.RETE = @Rete
--			AND PATR_BF.COD_FISCALE = @CodiceFiscale
--			AND PATR_BF.REND_NON_RAPPR = 1
--	)
--		SET @RendimNonRappr = 1
--            
--	ELSE
--		SET @RendimNonRappr = 0
--
--	SELECT
--		@RendimNonRappr AS cf_rendim_non_rappr,
--		ID_AREA AS Need_Area,
--		CASE
--			WHEN NOME_PROGETTO = 'XXX' THEN ''
--			ELSE NOME_PROGETTO
--		END AS Nome_Progetto,
--		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
--		CTV_MONITORATO AS ControvaloreMonitorato,
--		APPORTO_INIZIALE AS ApportoIniziale,
--		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
--		LIQUIDAZIONI,
--		CEDOLE_DIVIDENDI AS CedoleEDividendi,
--		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
--		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
--		RISORSE_ASSOCIATE AS RisorseApportate,
--		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
--		RENDIMENTO_ANNUALIZZATO
--	FROM
--		C6MartPeriodico.MONITORAGGIO_ATTUALE
--	WHERE
--		RETE = @Rete AND
--		COD_FISCALE = @CodiceFiscale 
--        --AND RISORSE_ASSOCIATE > 0

SELECT
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE MONIT.NOME_PROGETTO
		END AS Nome_Progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			PATR_BF.RETE = @Rete
			AND PATR_BF.COD_FISCALE = @CodiceFiscale
			AND PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
	WHERE
		MONIT.RETE = @Rete AND
		MONIT.COD_FISCALE =  @CodiceFiscale
 

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S84ControvaloreRisorseApportate]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 15 gennaio 2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_S84ControvaloreRisorseApportate] 'F','BDTMSS49A43F502I'
CREATE procedure [C6MartPeriodico].[PL_S84ControvaloreRisorseApportate]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale

	UNION
	
	SELECT
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S85RendimentoPortafoglioCono]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S85RendimentoPortafoglioCono] 'F','CNTGCR68T31D458G'
CREATE procedure [C6MartPeriodico].[PL_S85RendimentoPortafoglioCono]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;


	

SELECT [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD]
  WHERE cod_fiscale = @CodiceFiscale AND rete = @rete
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'

	SELECT
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
	--	into #test --aggiunta 20221219
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
	WHERE
		CONO.RETE = @Rete AND
		CONO.COD_FISCALE = @CodiceFiscale
		--and DATA_CTV is not null
	ORDER BY CONO.DATA_CONO

	--aggiunta 20221219
	--select *
	--from #test
	--where DATA_MONIT is not null and RENDIMENTO<>'0.00'

	drop table #pir_mod_xxx
END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select *
--from c6martperiodico.patrimonio_bf
--where cod_fiscale = 'GNGFRZ63H17D810C'
--and id_area = 'Liq'
--
--begin tran commit
--update 
--c6martperiodico.patrimonio_bf
--set ordinamento_progetto = 527950
--where cod_fiscale = 'GNGFRZ63H17D810C'
--and id_area = 'Liq'
--and ordinamento_progetto is null


-- Stored procedure

-- =============================================
-- Author:		Paolo Giovanetti -- Alessandro Tringali
-- Create date: 15 gennaio 2009  -- 19/09/2009
-- Description:	riporta il valore complessivo dei prodotti attualmente destinati all'area 
--				di bisogno progetto (controvalore attuale) ed il relativo valore di rischio (VaR attuale)
-- =============================================
-- [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass] 'S','GNGFRZ63H17D810C'
CREATE procedure [C6MartPeriodico].[PL_S86PatrimonioFinanziarioMAssetClass]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

SELECT
		VALORIASSET.ID_AREA AS Need_Area,
		VALORIASSET.NOME_PROGETTO,
		VALORIASSET.ord_progetto,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId,
		ASSETCLASS.DESCRIZIONE AS AssetClassName,
		--ROUND(VALORIASSET.CONTROVALORE, 2) AS Controvalore,
		CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
		ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_AREA, VALORIASSET.NOME_PROGETTO) * 100, 2) AS Percentuale
	FROM (
          
          SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          VAL.ID_AREA,
          VAL.NOME_PROGETTO,
		  val.ord_progetto,
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						CASE
							WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE PATR_BF.ID_AREA
						END AS ID_AREA,
						ltrim(rtrim(PATR_BF.NOME_PROGETTO)) NOME_PROGETTO ,
						patr_bf.ordinamento_progetto ord_progetto,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
						PATR_BF.ID_AREA NOT IN ('Cc', 'Na','Pre1','Pre2','Pre')
						AND ASSETPERC.LIVELLO = 1
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						AND PATR_BF.COD_FISCALE=@CodiceFiscale
                        AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
						CASE
							WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE PATR_BF.ID_AREA
						END AS ID_AREA,
							PATR_BF.NOME_PROGETTO,
							patr_bf.ordinamento_progetto ord_progetto,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 1
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					ASUL.RETE = @Rete
					AND ASUL.COD_FISCALE = @CodiceFiscale
					AND PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
						CASE
							WHEN ASUL.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE ASUL.ID_AREA
						END AS ID_AREA,
							ASUL.NOME_PROGETTO,
							asul.ordinamento_progetto ord_progetto,
							ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
						AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
						AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
						AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
						AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
						AND ASSETPERC.LIVELLO = 1
--					 INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
--						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
--						AND ASUL.RETE=PATR_BF.RETE
--						AND ASUL.ID_CONTRATTO=PATR_BF.ID_CONTRATTO
					WHERE
						ASUL.RETE =@Rete
						AND ASUL.COD_FISCALE = @CodiceFiscale
						--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
						AND ASUL.tipo_Prodotto = 'ASU2'
						AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')
		  ) val
           where Controvalore >0
			GROUP BY 
			VAL.RETE,
			val.COD_FISCALE,
			VAL.ID_AREA,
			VAL.NOME_PROGETTO,
			val.ord_progetto,
			VAL.ID_ASSETCLASS

	UNION ALL
	/* nuovo */
		SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          VAL.ID_AREA,
          VAL.NOME_PROGETTO,
		  MAX(val.ord_progetto),
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
		(--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						CASE
							WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE PATR_BF.ID_AREA
						END AS ID_AREA,
						ltrim(rtrim(PATR_BF.NOME_PROGETTO)) NOME_PROGETTO ,
						patr_bf.ordinamento_progetto ord_progetto,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
						PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')
						AND ASSETPERC.LIVELLO = 1
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						AND PATR_BF.COD_FISCALE=@CodiceFiscale
                        AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
						CASE
							WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE PATR_BF.ID_AREA
						END AS ID_AREA,
							PATR_BF.NOME_PROGETTO,
							patr_bf.ordinamento_progetto ord_progetto,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 1
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					ASUL.RETE = @Rete
					AND ASUL.COD_FISCALE = @CodiceFiscale
					AND PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
						CASE
							WHEN ASUL.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
							ELSE ASUL.ID_AREA
						END AS ID_AREA,
							ASUL.NOME_PROGETTO,
							asul.ordinamento_progetto ord_progetto,
							ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
						AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
						AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
						AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
						AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
						AND ASSETPERC.LIVELLO = 1
--					 INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
--						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
--						AND ASUL.RETE=PATR_BF.RETE
--						AND ASUL.ID_CONTRATTO=PATR_BF.ID_CONTRATTO
					WHERE
						ASUL.RETE =@Rete
						AND ASUL.COD_FISCALE = @CodiceFiscale
						--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
						AND ASUL.tipo_Prodotto = 'ASU2'
						AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')
		  ) val
           where Controvalore >0
			GROUP BY 
			VAL.RETE,
			val.COD_FISCALE,
			VAL.ID_AREA,
			VAL.NOME_PROGETTO,
			
			VAL.ID_ASSETCLASS

	/**/






    )
	
    VALORIASSET
	INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	WHERE
		VALORIASSET.RETE =@Rete
		AND VALORIASSET.COD_FISCALE = @CodiceFiscale
	ORDER BY
		ASSETCLASS.ORDINAMENTO









--
--	SELECT
--		VALORIASSET.ID_AREA AS Need_Area,
--		VALORIASSET.NOME_PROGETTO,
--		VALORIASSET.ID_ASSETCLASS AS AssetClassId,
--		ASSETCLASS.DESCRIZIONE AS AssetClassName,
--		--ROUND(VALORIASSET.CONTROVALORE, 2) AS Controvalore,
--		CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
--		ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_AREA, VALORIASSET.NOME_PROGETTO) * 100, 2) AS Percentuale
--	FROM (
--		SELECT
--			PATR_BF.RETE,
--			PATR_BF.COD_FISCALE,
--			CASE
--				WHEN PATR_BF.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
--				ELSE PATR_BF.ID_AREA
--			END AS ID_AREA,
--			PATR_BF.NOME_PROGETTO,
--			SUM(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
--			ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
--		FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
--			INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
--				ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
--		WHERE
--			PATR_BF.ID_AREA NOT IN ('Cc', 'Na')
--			AND ASSETPERC.LIVELLO = 1
--		GROUP BY
--			PATR_BF.RETE,
--			PATR_BF.COD_FISCALE,
--			PATR_BF.ID_AREA,
--			PATR_BF.NOME_PROGETTO,
--			ASSETPERC.ID_ASSETCLASS
--	) VALORIASSET
--	INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
--		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--	WHERE
--		VALORIASSET.RETE = @Rete
--		AND VALORIASSET.COD_FISCALE = @CodiceFiscale
--	ORDER BY
--		ASSETCLASS.ORDINAMENTO

	/*SELECT
		ID_AREA AS NEED_AREA,
		NOME_PROGETTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, ID_AREA, NOME_PROGETTO) AS Controvalore,
		/*(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, ID_AREA, NOME_PROGETTO) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
		) * 100 AS Percentuale,*/
		VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY ID_AREA, NOME_PROGETTO) * 100 AS Percentuale,
		--SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') AS PatrimonioFinanziarioCTV,
		ASSETCLASS.ORDINAMENTO AS Ordinamento
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT
			LEFT(PATRBF.ID_AREA,3) AS ID_AREA,
			PATRBF.NOME_PROGETTO,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRBF.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			--C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		LEFT JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			--AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale
			AND PATRBF.ID_AREA NOT IN ('Cc', 'Na')

		/*UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale*/

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY 
		ASSETCLASS.ORDINAMENTO*/

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure



-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 18 febbraio 2009
-- Description:	
-- =============================================
-- [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento] 'F','BLNMTN60L53L736R'
CREATE   procedure [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento] --'F','BLDRLF57A17F632H'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT distinct
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,

		-- savingmap - Novembre 2019
	    PATR_BF.tipo_prodotto as Tipo_Prodotto ,
		apc.is_APC as isAPC

	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
		left join C6MartPeriodico.WSEICC apc
on 
	apc.RETE=PATR_BF.RETE
	and	apc.cod_fiscale=patr_bf.cod_fiscale
	and PATR_BF.ID_CONTRATTO = --apc.CODCONFPR
	(case when PATR_BF.tipo_prodotto='CC' then apc.CODCONFC else apc.CODCONFPR end)
	WHERE
		PATR_BF.RETE = @Rete
		AND PATR_BF.COD_FISCALE = @CodiceFiscale
		AND PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto
	-- select [Need_Area]
 --     ,[Contratto]
 --     ,[Area_O_Nome_Progetto]
 --     ,[Descrizione]
 --     ,[PartitaViaggiante]
 --     ,[Controvalore]
 --     ,[DataSottoscrizione]
 --     ,[Tipo_Prodotto]
	--from [C6StampeCentralizzate].[dbo].[pezzotto_2022]
	--WHERE
	--	RETE = @Rete
	--	AND COD_FISCALE = @CodiceFiscale
	--	--AND REND_NON_RAPPR = 1
	--ORDER BY
	--	Area_O_Nome_Progetto

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S94Rischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S94Rischio] 'F','GRZDSG43E11D193N'
CREATE procedure [C6MartPeriodico].[PL_S94Rischio]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)

	SELECT
		@varBF = VAR_PERC_PTF,
		@coperturaBF = COPERTURA
	FROM
		C6MartPeriodico.RISCHIO_AGGREGATO
	WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale AND
		COD_AGGREG = 'COMPLESSIVO|BF'

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = CR.DESCRIZIONE
	FROM
		C6MartPeriodico.MIFID AS M
		INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		@dataProfilo as dataProfilo,
		@varProfilo as varProfilo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S95ProfiloDiRischio]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S95ProfiloDiRischio]'F', 'VNCLNI44T60G388L'
CREATE   procedure [C6MartPeriodico].[PL_S95ProfiloDiRischio] --'F','BRDCNZ69P44E783R'
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
		SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @dataScadenza DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
	declare @descrizioneProfilo varchar(500)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @riskclassDescr VARCHAR(250)
    DECLARE @experience SMALLINT
	declare @descrizioneEsperienza varchar(20)

	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@dataScadenza = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
		@descrizioneProfilo = ProfiliDiRischio.DescrizioneProfilo,
        @riskclass =  m.riskclass,
        @experience = m.experience,
		@descrizioneEsperienza =	
		case m.experience
			when 0 then 'Minimo'
				when 1 then 'Basso'
				when 2 then 'Medio basso'
				when 3 then 'Medio alto'
				when 4 then 'Alto'
			else '-'
		end
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale


	-- RICERCA DATA FINE VALIDITA'		
	declare @dtfinval decimal(9,0)

	declare @codman varchar(6)
	set @codman = ''

	if upper(left(@CodiceFiscale,3)) = 'FF@'
	    begin
			set @codman = substring(@CodiceFiscale,4,len(@CodiceFiscale)-3)
			select @dtfinval = dtfinval from C6StagingPeriodico.WSEIAN2
			where codman = @codman and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice mandato'
		end
	else
		begin
			select @dtfinval = dtfinval from C6StagingPeriodico.WSEIAN2
			where codfis = @CodiceFiscale and  DTTRIM = (SELECT MAX(DTTRIM) FROM C6StagingPeriodico.WSEIAN2) 
			print 'codice fiscale'
		end
		--
			
		if @dtfinval <> 0 and @dtfinval is not null and ltrim(rtrim(@dtfinval)) <> ''
			set @dataScadenza = CONVERT(datetime, CONVERT(varchar,CONVERT(int,@dtfinval)), 0)
		else
			set @dataScadenza = null

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		DBO.TOSHORTDATESTRING (@dataScadenza) as dataScadenzaProfilo,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
		@descrizioneProfilo as DescrizioneProfilo,
        @riskclass as riskclass,
        @experience as experince,
		@descrizioneEsperienza as descrizioneEsperienza


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S95ProfiloDiRischio_20190204_PreMIFID2]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S95ProfiloDiRischio]F,00247580970
CREATE procedure [C6MartPeriodico].[PL_S95ProfiloDiRischio_20190204_PreMIFID2]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)
	DECLARE @codiceProfilo SMALLINT
	DECLARE @dataProfilo DATETIME
	DECLARE @varProfilo DECIMAL(5,2)
	DECLARE @nomeProfilo VARCHAR(50)
    DECLARE @riskclass VARCHAR(50)
    DECLARE @experience SMALLINT


	SELECT
        @codiceProfilo = M.PROFILO_ASS,
		@dataProfilo = M.DATA_INIZIO_VAL,
		@varProfilo = CR.MAX_VAR,
		@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
        @riskclass =  m.riskclass,
        @experience = m.experience
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
	WHERE
		M.RETE = @Rete AND
		M.COD_FISCALE = @CodiceFiscale

	SELECT
        @codiceProfilo as codiceProfilo,
		DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
		@varProfilo as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		@nomeProfilo as nomeProfilo,
        @riskclass as riskclass,
        @experience as experince

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S96BisRischioMercatoRischioCredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_S96BisRischiomercatoRischiocredito] 'F','BSHLRI69R13Z100Y'
CREATE procedure [C6MartPeriodico].[PL_S96BisRischioMercatoRischioCredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
	declare @contaCC as int

	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int

	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete

	


    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
	--V Imposizione VaR a 0 nel caso di presenza di solo cc
	CASE
		WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
		ELSE RISK_AGG.VAR_PERC_PTF
	END AS VAR,
    	
	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 AND (@contaPOS - @contaCC) <> 0 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
	CASE
		WHEN (@contaPOS - @contaCC) = 0 THEN 100  
		ELSE ISNULL(RISK_AGG.COPERTURA,0.00) 
	END AS COVERAGE,
--    	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
	NULL AS COVERAGESTRING,
	--V changed from string value (descrizione) to the numeric (profilo)
    M.RISKCLASS AS RISKCLASSMAX,
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
         THEN 1
         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)
    END )
    *100 AS PERCENTAGE,
    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,
    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,
    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,
    RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE ' Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = @codiceFiscale
    and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN 'Patrimonio Sanpaolo Invest' ELSE ' Patrimonio IW Private Inv.'  END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 


END














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S96BisRischioMercatoRischioCredito]    Script Date: 10/02/2022 16:38:26 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO


---- =============================================
---- Author:		<Alessandro Tringali>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
-- --[C6MartPeriodico].[PL_S96BisRischiomercatoRischiocredito] 'F','BSHLRI69R13Z100Y'
--ALTER procedure [C6MartPeriodico].[PL_S96BisRischioMercatoRischioCredito]
--	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
--AS
--BEGIN
--	-- SET NOCOUNT ON added to prevent extra result sets from
--	-- interfering with SELECT statements.
--	SET NOCOUNT ON;
    
--	declare @contaCC as int

--	select @contaCC = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
--	declare @contaPOS as int

--	select @contaPOS = count(*)
--	from c6martperiodico.patrimonio_Bf
--	where cod_fiscale = @codiceFiscale and rete = @rete

	


--    SELECT 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    PATRBF.INSTITUTENAME,
--    CTV,
--    M.PROFILO_ASS AS CODICEPROFILO,
--    CR.MAX_VAR AS  VARMAX,
--	--V Imposizione VaR a 0 nel caso di presenza di solo cc
--	CASE
--		WHEN (@contaPOS - @contaCC) = 0 THEN 0.00
--		ELSE RISK_AGG.VAR_PERC_PTF
--	END AS VAR,
    	
--	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 AND (@contaPOS - @contaCC) <> 0 THEN 'n.c.' 
--		ELSE NULL 
--	END  AS VARSTRING,
--    RISK_AGG.CREDITRISK  RISKCLASS,
--        	CASE 
--		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
--		ELSE NULL 
--	END AS  RISKCLASSSTRING,
--	CASE
--		WHEN (@contaPOS - @contaCC) = 0 THEN 100  
--		ELSE ISNULL(RISK_AGG.COPERTURA,0.00) 
--	END AS COVERAGE,
----    	CASE 
----		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
----		ELSE 
--	NULL AS COVERAGESTRING,
--	--V changed from string value (descrizione) to the numeric (profilo)
--    M.RISKCLASS AS RISKCLASSMAX,
--    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
--    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO
--    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
--         THEN 1
--         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)
--    END )
--    *100 AS PERCENTAGE,
--    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,
--    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,
--    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,
--    RISK_AGG.Ully_perc
--    FROM
--    (
--    select 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
--    SUM(PATRBF.CTV) AS CTV
--    from
--    c6martperiodico.patrimonio_bf  PATRBF
--    where 
--    1=1 
--    and cod_fiscale = @codiceFiscale
--    and rete= @rete
--    GROUP BY 
--    PATRBF.RETE,
--    PATRBF.COD_FISCALE,
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END
--    ) PATRBF
--    LEFT OUTER JOIN 
--    c6martperiodico.MIFID AS M
--    ON 
--    PATRBF.COD_FISCALE=M.COD_FISCALE
--    AND PATRBF.RETE=M.RETE
--	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
--	ON M.PROFILO_ASS = CR.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.CODIFICA_CREDITRISK  CK
--    ON 
--    M.riskclass=CK.PROFILO
--    LEFT OUTER JOIN 
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
--    ON 
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
--    AND PATRBF.RETE=RISK_AGG.RETE
--    left outer join C6MartPeriodico.COMPLESSITA cmp
--    on 
--    CMP.COD_FISCALE=PATRBF.COD_FISCALE
--    AND
--    CMP.RETE=PATRBF.RETE
--   where
--    (
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
--    ) 


--END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- =============================================
-- Author:		<Alessandro Tringali>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
 --[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito] 'F','GZZSLD52E20G869L'
CREATE procedure [C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.cod_fiscale = @codiceFiscale
    and PATRBF.rete= @rete
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.cod_fiscale =@codiceFiscale
    and TERZI.rete=@rete
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and cod_fiscale =@codiceFiscale
    and rete=@rete
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PL_SavingMap]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_SavingMap] 'S','BCCNCL47B10H769B','507112FO702'                 --'000001VP001'
create procedure [C6MartPeriodico].[PL_SavingMap]
	
	@rete varchar(1),
	@codfis varchar(16),
	@codConf varchar(11)

	
AS

BEGIN

	declare @ris as int
	declare @ritorno as int
	
	-- viene passato il contratto di un foglio: verifico se su questo è attivo saving map L'informazione è contenuta nella colonna MAF del cc

	select @ritorno = (select count(*) from c6martperiodico.patrimonio_bf where
			cod_fiscale = @codfis and rete = @rete and cod_maf =  @codConf )
	

	select @ritorno
    

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_D2_S150Anagrafica]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_DT_S150Anagrafica] 'F', 'NCLGDE26B18L388P'
CREATE procedure [C6MartPeriodico].[Popola_D2_S150Anagrafica]
AS
BEGIN
  insert into c6martperiodico.tb_D2_S150Anagrafica
	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		--CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
		--	THEN
		--	REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--	+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') 
		--	ELSE
		--	REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--	+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','')
		--END AS Residenza,
		
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') else '' end  + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end  + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') else '' end   + ' ' + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end + ')','()','')
		END AS Residenza,
		
		
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_SOTT) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		NULL AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
        CONTRATTOSEI.[CAP] AS CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		CONTRATTOSEI.[Prov] AS Provincia,
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM        
		C6MART.contrattosei as CONTRATTOSEI
	INNER JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MARTPERIODICO.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MARTPERIODICO.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	--WHERE 1 = 1
	--	AND ANAG_CLIENTI.RETE = @RETE
	--	AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE

END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_FD190PatrimonioFinanziario_PTFRibilanciato]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>  
-- =============================================  
  
-- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'  
CREATE      procedure [C6MartPeriodico].[Popola_FD190PatrimonioFinanziario_PTFRibilanciato]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
truncate table C6MartPeriodico.TB_FD190PatrimonioFinanziario_PTFRibilanciato  
INSERT INTO C6MartPeriodico.TB_FD190PatrimonioFinanziario_PTFRibilanciato  
   
SELECT --top 1  
 Rete,   
 cod_fiscale as CodiceFiscale,  
 A.BANCA AS Banca,  
 A.ORDINAMENTO AS Ordinamento,  
 A.AssetClassId AS AssetClassId,   
 A.AssetClassName AS AssetClassName, 
 a.ChiavePtfMod,
 A.Controvalore,  
 A.percentuale,  
 ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)  as Totale,
 isnull(ptf.percentuale,0.00) as Percentuale_Modello,
 A.VAR_PROG
   
 --cast(A.Controvalore as decimal(19,5)) AS Controvalore,  
 --cast(A.Percentuale  as decimal(19,5)) AS Percentuale,  
 --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale  
FROM   
(    
 SELECT DISTINCT  
  CASE Rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'   
   ELSE 'IW Private Investments'
  END AS Banca,  
  rete,  
  cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,   
  ASSETCLASS.DESCRIZIONE AS AssetClassName,   
  ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,  
  (  
   SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /  
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO  
   CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0   
     THEN 1   
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )   
            END    
  ) * 100 AS Percentuale  ,
  ChiavePtfMod,
  VAR_PERC_PTF as VAR_PROG
 FROM (  
  
  SELECT    
   PATRBF.rete,  
   PATRBF.COD_FISCALE,  
   ASSETPERC.ID_ASSETCLASS,  
   PATRBF.CTV*ASSETPERC.PERC as Controvalore  ,
   PATRBF.ChiavePtfMod,
   RISCHIO_AGGR_PROG.VAR_PERC_PTF
  FROM   
   C6MartPeriodico.PATRIMONIO_BF PATRBF  
  INNER JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC   
   ON   
    PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
    AND ASSETPERC.LIVELLO = 1  
--	inner join
--	C6StagingPeriodico.RP_Progetto_Robo robo
--	on robo.chiaveProgetto=patrbf.CHIAVE_PROGETTO
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar)
  WHERE   
   --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY  
   (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))  
   and patrbf.id_area not in ('CC', 'SELF')  
   and patrbf.NOME_PROGETTO like '%Direct Evo%'
  -- AND PATRBF.RETE = @Rete  
  -- AND PATRBF.COD_FISCALE = @CodiceFiscale  
  
  UNION ALL  
    
  SELECT   
   Asul.rete,  
   asul.cod_fiscale,  
   ASSETPERC.ID_ASSETCLASS,  
   ASUL.CTV*ASSETPERC.PERC as Controvalore  ,
   patrbf.chiaveptfmod,
   RISCHIO_AGGR_PROG.VAR_PERC_PTF
     
  FROM   
   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  INNER JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC  
   ON   
    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
    ---ELIMINO GLI SKANDIA  
    AND ASUL.COD_ISIN_SOTT = ''  
    AND ASSETPERC.LIVELLO = 1  
		inner join
		C6MartPeriodico.PATRIMONIO_BF PATRBF  
		on patrbf.chiave_progetto=ASUL.CHIAVEPROGETTO
		LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar)
		where patrbf.NOME_PROGETTO like '%Direct Evo%'

	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVEPROGETTO
 -- WHERE  
 --  ASUL.RETE = @Rete  
 --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
  UNION ALL  
  
  SELECT Asul.rete,  
   asul.cod_fiscale,  
  ASSETPERC.ID_ASSETCLASS,  
    ASUL.CTV*ASSETPERC.PERC as Controvalore  ,
	patrbf.chiaveptfmod,
	RISCHIO_AGGR_PROG.VAR_PERC_PTF
  FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
   --PRENDO SOLO GLI SKANDIA  
   ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
   AND ASSETPERC.LIVELLO = 1  
 --  inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVEPROGETTO
		inner join
		C6MartPeriodico.PATRIMONIO_BF PATRBF  
		LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar)
		on patrbf.chiave_progetto=ASUL.CHIAVEPROGETTO
		where patrbf.NOME_PROGETTO like '%Direct Evo%'
 -- WHERE  
 --  ASUL.RETE = @Rete  
 --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
 ) VALORIASSET  
 INNER JOIN   
  C6MartPeriodico.ASSETCLASS ASSETCLASS  
  ON   
   ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
) A  
     left join [c6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_MacroAssetClass] ptf
on ptf.chiavePtfMod=a.chiaveptfmod and ptf.asset=a.AssetClassID
  
  
  
  
END  
  
  
  
  
  
  
  











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]    Script Date: 10/02/2022 16:40:28 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
  
  
---- =============================================  
---- Author:  <>  
---- Create date: <>  
---- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>  
---- =============================================  
  
---- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'  
--ALTER procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]  
-- -- Add the parameters for the stored procedure here  
-- --@Rete char(1),   
-- --@CodiceFiscale varchar(16)  
--AS  
--BEGIN  
  
--truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario  
--INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario  
   
--SELECT --top 1  
-- Rete,   
-- cod_fiscale as CodiceFiscale,  
-- A.BANCA AS Banca,  
-- A.ORDINAMENTO AS Ordinamento,  
-- A.AssetClassId AS AssetClassId,   
-- A.AssetClassName AS AssetClassName,   
-- A.Controvalore,  
-- A.percentuale,  
-- ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)  
   
-- --cast(A.Controvalore as decimal(19,5)) AS Controvalore,  
-- --cast(A.Percentuale  as decimal(19,5)) AS Percentuale,  
-- --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale  
--FROM   
--(    
-- SELECT DISTINCT  
--  CASE Rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Fideuram'   
--  END AS Banca,  
--  rete,  
--  cod_fiscale,  
--  ASSETCLASS.ORDINAMENTO,  
--  VALORIASSET.ID_ASSETCLASS AS AssetClassId,   
--  ASSETCLASS.DESCRIZIONE AS AssetClassName,   
--  ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,  
--  (  
--   SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /  
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO  
--   CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0   
--     THEN 1   
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )   
--            END    
--  ) * 100 AS Percentuale  
-- FROM (  
  
--  SELECT    
--   PATRBF.rete,  
--   PATRBF.COD_FISCALE,  
--   ASSETPERC.ID_ASSETCLASS,  
--   PATRBF.CTV*ASSETPERC.PERC as Controvalore  
--  FROM   
--   C6MartPeriodico.PATRIMONIO_BF PATRBF  
--  INNER JOIN   
--   C6MartPeriodico.ASSET_PERC ASSETPERC   
--   ON   
--    PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--    AND ASSETPERC.LIVELLO = 1  
--  WHERE   
--   --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY  
--   (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))  
--   and patrbf.id_area not in ('CC', 'SELF')  
--  -- AND PATRBF.RETE = @Rete  
--  -- AND PATRBF.COD_FISCALE = @CodiceFiscale  
  
--  UNION ALL  
    
--  SELECT   
--   Asul.rete,  
--   asul.cod_fiscale,  
--   ASSETPERC.ID_ASSETCLASS,  
--   ASUL.CTV*ASSETPERC.PERC as Controvalore  
     
--  FROM   
--   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--  INNER JOIN   
--   C6MartPeriodico.ASSET_PERC ASSETPERC  
--   ON   
--    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
--    ---ELIMINO GLI SKANDIA  
--    AND ASUL.COD_ISIN_SOTT = ''  
--    AND ASSETPERC.LIVELLO = 1  
-- -- WHERE  
-- --  ASUL.RETE = @Rete  
-- --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
--  UNION ALL  
  
--  SELECT Asul.rete,  
--   asul.cod_fiscale,  
--  ASSETPERC.ID_ASSETCLASS,  
--    ASUL.CTV*ASSETPERC.PERC as Controvalore  
--  FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--  INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--   --PRENDO SOLO GLI SKANDIA  
--   ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
--   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
--   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--   AND ASSETPERC.LIVELLO = 1  
-- -- WHERE  
-- --  ASUL.RETE = @Rete  
-- --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
-- ) VALORIASSET  
-- INNER JOIN   
--  C6MartPeriodico.ASSETCLASS ASSETCLASS  
--  ON   
--   ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
--) A  
  
  
  
  
  
--END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_FD190PatrimonioFinanziario_PTFRibilanciato_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>  
-- =============================================  
  
-- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'  
CREATE     procedure [C6MartPeriodico].[Popola_FD190PatrimonioFinanziario_PTFRibilanciato_OLD]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
truncate table C6MartPeriodico.TB_FD190PatrimonioFinanziario_PTFRibilanciato  
INSERT INTO C6MartPeriodico.TB_FD190PatrimonioFinanziario_PTFRibilanciato  
   
SELECT --top 1  
 Rete,   
 cod_fiscale as CodiceFiscale,  
 A.BANCA AS Banca,  
 A.ORDINAMENTO AS Ordinamento,  
 A.AssetClassId AS AssetClassId,   
 A.AssetClassName AS AssetClassName, 
 a.ChiavePtfMod,
 A.Controvalore,  
 A.percentuale,  
 ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)  as Totale,
 isnull(ptf.percentuale,0.00) as Percentuale_Modello
   
 --cast(A.Controvalore as decimal(19,5)) AS Controvalore,  
 --cast(A.Percentuale  as decimal(19,5)) AS Percentuale,  
 --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale  
FROM   
(    
 SELECT DISTINCT  
  CASE Rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'   
   ELSE 'IW Private Investments'
  END AS Banca,  
  rete,  
  cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,   
  ASSETCLASS.DESCRIZIONE AS AssetClassName,   
  ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,  
  (  
   SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /  
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO  
   CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0   
     THEN 1   
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )   
            END    
  ) * 100 AS Percentuale  ,
  ChiavePtfMod
 FROM (  
  
  SELECT    
   PATRBF.rete,  
   PATRBF.COD_FISCALE,  
   ASSETPERC.ID_ASSETCLASS,  
   PATRBF.CTV*ASSETPERC.PERC as Controvalore  ,
   PATRBF.ChiavePtfMod
  FROM   
   C6MartPeriodico.PATRIMONIO_BF PATRBF  
  INNER JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC   
   ON   
    PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
    AND ASSETPERC.LIVELLO = 1  
--	inner join
--	C6StagingPeriodico.RP_Progetto_Robo robo
--	on robo.chiaveProgetto=patrbf.CHIAVE_PROGETTO
  WHERE   
   --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY  
   (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))  
   and patrbf.id_area not in ('CC', 'SELF')  
   and patrbf.NOME_PROGETTO like '%Direct Evo%'
  -- AND PATRBF.RETE = @Rete  
  -- AND PATRBF.COD_FISCALE = @CodiceFiscale  
  
  UNION ALL  
    
  SELECT   
   Asul.rete,  
   asul.cod_fiscale,  
   ASSETPERC.ID_ASSETCLASS,  
   ASUL.CTV*ASSETPERC.PERC as Controvalore  ,
   patrbf.chiaveptfmod
     
  FROM   
   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  INNER JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC  
   ON   
    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
    ---ELIMINO GLI SKANDIA  
    AND ASUL.COD_ISIN_SOTT = ''  
    AND ASSETPERC.LIVELLO = 1  
		inner join
		C6MartPeriodico.PATRIMONIO_BF PATRBF  
		on patrbf.chiave_progetto=ASUL.CHIAVEPROGETTO
		where patrbf.NOME_PROGETTO like '%Direct Evo%'
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVEPROGETTO
 -- WHERE  
 --  ASUL.RETE = @Rete  
 --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
  UNION ALL  
  
  SELECT Asul.rete,  
   asul.cod_fiscale,  
  ASSETPERC.ID_ASSETCLASS,  
    ASUL.CTV*ASSETPERC.PERC as Controvalore  ,
	patrbf.chiaveptfmod
  FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
   --PRENDO SOLO GLI SKANDIA  
   ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
   AND ASSETPERC.LIVELLO = 1  
 --  inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVEPROGETTO
		inner join
		C6MartPeriodico.PATRIMONIO_BF PATRBF  
		on patrbf.chiave_progetto=ASUL.CHIAVEPROGETTO
		where patrbf.NOME_PROGETTO like '%Direct Evo%'
 -- WHERE  
 --  ASUL.RETE = @Rete  
 --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
 ) VALORIASSET  
 INNER JOIN   
  C6MartPeriodico.ASSETCLASS ASSETCLASS  
  ON   
   ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
) A  
     left join [c6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_MacroAssetClass] ptf
on ptf.chiavePtfMod=a.chiaveptfmod and ptf.asset=a.AssetClassID
  
  
  
  
END  
  
  
  
  
  
  
  











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]    Script Date: 10/02/2022 16:40:28 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
  
  
---- =============================================  
---- Author:  <>  
---- Create date: <>  
---- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>  
---- =============================================  
  
---- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'  
--ALTER procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]  
-- -- Add the parameters for the stored procedure here  
-- --@Rete char(1),   
-- --@CodiceFiscale varchar(16)  
--AS  
--BEGIN  
  
--truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario  
--INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario  
   
--SELECT --top 1  
-- Rete,   
-- cod_fiscale as CodiceFiscale,  
-- A.BANCA AS Banca,  
-- A.ORDINAMENTO AS Ordinamento,  
-- A.AssetClassId AS AssetClassId,   
-- A.AssetClassName AS AssetClassName,   
-- A.Controvalore,  
-- A.percentuale,  
-- ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)  
   
-- --cast(A.Controvalore as decimal(19,5)) AS Controvalore,  
-- --cast(A.Percentuale  as decimal(19,5)) AS Percentuale,  
-- --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale  
--FROM   
--(    
-- SELECT DISTINCT  
--  CASE Rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Fideuram'   
--  END AS Banca,  
--  rete,  
--  cod_fiscale,  
--  ASSETCLASS.ORDINAMENTO,  
--  VALORIASSET.ID_ASSETCLASS AS AssetClassId,   
--  ASSETCLASS.DESCRIZIONE AS AssetClassName,   
--  ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,  
--  (  
--   SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /  
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO  
--   CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0   
--     THEN 1   
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )   
--            END    
--  ) * 100 AS Percentuale  
-- FROM (  
  
--  SELECT    
--   PATRBF.rete,  
--   PATRBF.COD_FISCALE,  
--   ASSETPERC.ID_ASSETCLASS,  
--   PATRBF.CTV*ASSETPERC.PERC as Controvalore  
--  FROM   
--   C6MartPeriodico.PATRIMONIO_BF PATRBF  
--  INNER JOIN   
--   C6MartPeriodico.ASSET_PERC ASSETPERC   
--   ON   
--    PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--    AND ASSETPERC.LIVELLO = 1  
--  WHERE   
--   --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY  
--   (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))  
--   and patrbf.id_area not in ('CC', 'SELF')  
--  -- AND PATRBF.RETE = @Rete  
--  -- AND PATRBF.COD_FISCALE = @CodiceFiscale  
  
--  UNION ALL  
    
--  SELECT   
--   Asul.rete,  
--   asul.cod_fiscale,  
--   ASSETPERC.ID_ASSETCLASS,  
--   ASUL.CTV*ASSETPERC.PERC as Controvalore  
     
--  FROM   
--   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--  INNER JOIN   
--   C6MartPeriodico.ASSET_PERC ASSETPERC  
--   ON   
--    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
--    ---ELIMINO GLI SKANDIA  
--    AND ASUL.COD_ISIN_SOTT = ''  
--    AND ASSETPERC.LIVELLO = 1  
-- -- WHERE  
-- --  ASUL.RETE = @Rete  
-- --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
--  UNION ALL  
  
--  SELECT Asul.rete,  
--   asul.cod_fiscale,  
--  ASSETPERC.ID_ASSETCLASS,  
--    ASUL.CTV*ASSETPERC.PERC as Controvalore  
--  FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--  INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--   --PRENDO SOLO GLI SKANDIA  
--   ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
--   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
--   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--   AND ASSETPERC.LIVELLO = 1  
-- -- WHERE  
-- --  ASUL.RETE = @Rete  
-- --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
-- ) VALORIASSET  
-- INNER JOIN   
--  C6MartPeriodico.ASSETCLASS ASSETCLASS  
--  ON   
--   ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
--) A  
  
  
  
  
  
--END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







  
  
--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
CREATE         procedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   

truncate table c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato  
INSERT INTO c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato
 select       rete,  
        cod_fiscale,  
        CASE rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'  
   ELSE 'IW Private Investments'
  END AS Banca,  
  a.ORDINAMENTO,  
  AssetClassId,  
  AssetClassName, 
  a.chiaveptfmod,
  SUM(Controvalore) As Controvalore,  
        --SUM(CONTROVALORE) / Totale As Percentuale,  
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
        Totale,
		isnull(ptf.percentuale ,0.00) as Percentuale_Modello,
		 VAR_PROG
		
FROM  
(  
  
  
SELECT  rete,  
        cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  ,
  chiaveptfmod,
  VAR_PROG
 FROM (  
          SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  ,
		   chiaveptfmod,
		    VAR_PROG
          FROM  
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS ,
	    chiaveptfmod,
		   RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
	   LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|'
						 + cast (Patr_BF.ordinamento_progetto as varchar)
	--   inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
--inizio interventi OMNIA  
--      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
--fine interventi OMNIA        
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
	  and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
      --AND PATR_BF.COD_FISCALE= @CodiceFiscale  
                       -- AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  ,
	    patr_bf.chiaveptfmod,
		 RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO 
	  LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|'
						 + cast (Patr_BF.ordinamento_progetto as varchar)
	--    inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre') 
	  and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS ,
	    asul.chiaveptfmod,
		RISCHIO_AGGR_PROG.VAR_PERC_PTF as var_prog
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2 
	    LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON ASUL.RETE= RISCHIO_AGGR_PROG.RETE
	AND ASUL.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(ASUL.ID_AREA,3) + '|' + ASUL.NOME_PROGETTO + '|'
						 + cast (ASUL.ordinamento_progetto as varchar)
	--  inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVE_PROGETTO
     WHERE  
      --ASUL.RETE =@Rete  
      --AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
	  and asul.NOME_PROGETTO like '%Direct Evo%'
    ) val  
        --   where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  ,
   val.chiaveptfmod,
   val.var_prog
  
 UNION ALL  
 /* nuovo */  
  SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS ,
	    chiaveptfmod,
		VAR_PROG
          FROM  
  (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  ,
	    patr_bf.chiaveptfmod,
		RISCHIO_AGGR_PROG.VAR_PERC_PTF as VAR_PROG
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
	--   inner join
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|'
						 + cast (Patr_BF.ordinamento_progetto as varchar)
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
      PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')  
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
	  and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
      --AND PATR_BF.COD_FISCALE=@CodiceFiscale  
                      --  AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
	   ,
	    chiaveptfmod
		,RISCHIO_AGGR_PROG.VAR_PERC_PTF
     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
	  LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATR_BF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATR_BF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATR_BF.ID_AREA,3) + '|' + PATR_BF.NOME_PROGETTO + '|'
						 + cast (Patr_BF.ordinamento_progetto as varchar)
	--inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
	   and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS,
	    chiaveptfmod
		,RISCHIO_AGGR_PROG.VAR_PERC_PTF
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
	    LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON ASUL.RETE= RISCHIO_AGGR_PROG.RETE
	AND ASUL.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(ASUL.ID_AREA,3) + '|' + ASUL.NOME_PROGETTO + '|'
						 + cast (ASUL.ordinamento_progetto as varchar)
	--  inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVE_PROGETTO
     WHERE  
 --     ASUL.RETE =@Rete  
 --     AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
	   and asul.NOME_PROGETTO like '%Direct Evo%'
    ) val  
          -- where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS,
   val.chiaveptfmod,
   val.var_prog
  
  
    )  
  
 VALORIASSET  
 INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS  
  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
-- WHERE  
--  VALORIASSET.RETE =@Rete  
--  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
) a  
left join [c6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass] ptf
on ptf.chiavePtfMod=a.chiaveptfmod and ptf.asset=a.AssetClassID
Group By rete,cod_fiscale,a.ORDINAMENTO, AssetClassId, AssetClassName, Totale  ,a.chiaveptfmod,ptf.percentuale,var_prog
 ORDER BY a.ORDINAMENTO  
 end
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato_OLD]    Script Date: 5/21/2025 3:35:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






  
  
--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
CREATE       procedure [C6MartPeriodico].[Popola_FD200DistribuzioneAssetClass_PTFRibilanciato_OLD]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   

truncate table c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato  
INSERT INTO c6martperiodico.TB_FD200DistribuzioneAssetClass_PTFRibilanciato
 select       rete,  
        cod_fiscale,  
        CASE rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'  
   ELSE 'IW Private Investments'
  END AS Banca,  
  a.ORDINAMENTO,  
  AssetClassId,  
  AssetClassName, 
  a.chiaveptfmod,
  SUM(Controvalore) As Controvalore,  
        --SUM(CONTROVALORE) / Totale As Percentuale,  
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
        Totale,
		isnull(ptf.percentuale ,0.00) as Percentuale_Modello
		
FROM  
(  
  
  
SELECT  rete,  
        cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  ,
  chiaveptfmod
 FROM (  
          SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  ,
		   chiaveptfmod
          FROM  
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS ,
	    chiaveptfmod 
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
	--   inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
--inizio interventi OMNIA  
--      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
--fine interventi OMNIA        
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
	  and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
      --AND PATR_BF.COD_FISCALE= @CodiceFiscale  
                       -- AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  ,
	    patr_bf.chiaveptfmod
     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
	    inner join
	C6StagingPeriodico.RP_Progetto_Robo robo
	on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS ,
	    asul.chiaveptfmod
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2 
	--  inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVE_PROGETTO
     WHERE  
      --ASUL.RETE =@Rete  
      --AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
	  and asul.NOME_PROGETTO like '%Direct Evo%'
    ) val  
        --   where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  ,
   val.chiaveptfmod
  
 UNION ALL  
 /* nuovo */  
  SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS ,
	    chiaveptfmod 
          FROM  
  (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  ,
	    patr_bf.chiaveptfmod
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
	--   inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
      PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')  
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
	  and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
      --AND PATR_BF.COD_FISCALE=@CodiceFiscale  
                      --  AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
	   ,
	    chiaveptfmod
     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
	--inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=PATR_BF.CHIAVE_PROGETTO
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
	   and PATR_BF.NOME_PROGETTO like '%Direct Evo%'
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS,
	    chiaveptfmod
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
	--  inner join
	--C6StagingPeriodico.RP_Progetto_Robo robo
	--on robo.chiaveProgetto=ASUL.CHIAVE_PROGETTO
     WHERE  
 --     ASUL.RETE =@Rete  
 --     AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
	   and asul.NOME_PROGETTO like '%Direct Evo%'
    ) val  
          -- where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS,
   val.chiaveptfmod
  
  
    )  
  
 VALORIASSET  
 INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS  
  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
-- WHERE  
--  VALORIASSET.RETE =@Rete  
--  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
) a  
left join [c6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass] ptf
on ptf.chiavePtfMod=a.chiaveptfmod and ptf.asset=a.AssetClassID
Group By rete,cod_fiscale,a.ORDINAMENTO, AssetClassId, AssetClassName, Totale  ,a.chiaveptfmod,ptf.percentuale
 ORDER BY a.ORDINAMENTO  
 end
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>  
-- =============================================  
  
-- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'  
CREATE procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario  
INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario  
   
SELECT --top 1  
 Rete,   
 cod_fiscale as CodiceFiscale,  
 A.BANCA AS Banca,  
 A.ORDINAMENTO AS Ordinamento,  
 A.AssetClassId AS AssetClassId,   
 A.AssetClassName AS AssetClassName,   
 A.Controvalore,  
 A.percentuale,  
 ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)  
   
 --cast(A.Controvalore as decimal(19,5)) AS Controvalore,  
 --cast(A.Percentuale  as decimal(19,5)) AS Percentuale,  
 --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale  
FROM   
(    
 SELECT DISTINCT  
  CASE Rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'   
   ELSE 'IW Private Investments'
  END AS Banca,  
  rete,  
  cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,   
  ASSETCLASS.DESCRIZIONE AS AssetClassName,   
  ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,  
  (  
   SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /  
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO  
   CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0   
     THEN 1   
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )   
            END    
  ) * 100 AS Percentuale  
 FROM (  
  
  SELECT    
   PATRBF.rete,  
   PATRBF.COD_FISCALE,  
   ASSETPERC.ID_ASSETCLASS,  
   PATRBF.CTV*ASSETPERC.PERC as Controvalore  
  FROM   
   C6MartPeriodico.PATRIMONIO_BF PATRBF  
  INNER JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC   
   ON   
    PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
    AND ASSETPERC.LIVELLO = 1  
  WHERE   
   --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY  
   (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))  
   and patrbf.id_area not in ('CC', 'SELF')  
  -- AND PATRBF.RETE = @Rete  
  -- AND PATRBF.COD_FISCALE = @CodiceFiscale  
  
  UNION ALL  
    
  SELECT   
   Asul.rete,  
   asul.cod_fiscale,  
   ASSETPERC.ID_ASSETCLASS,  
   ASUL.CTV*ASSETPERC.PERC as Controvalore  
     
  FROM   
   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  INNER JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC  
   ON   
    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
    ---ELIMINO GLI SKANDIA  
    AND ASUL.COD_ISIN_SOTT = ''  
    AND ASSETPERC.LIVELLO = 1  
 -- WHERE  
 --  ASUL.RETE = @Rete  
 --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
  UNION ALL  
  
  SELECT Asul.rete,  
   asul.cod_fiscale,  
  ASSETPERC.ID_ASSETCLASS,  
    ASUL.CTV*ASSETPERC.PERC as Controvalore  
  FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
   --PRENDO SOLO GLI SKANDIA  
   ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
   AND ASSETPERC.LIVELLO = 1  
 -- WHERE  
 --  ASUL.RETE = @Rete  
 --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
 ) VALORIASSET  
 INNER JOIN   
  C6MartPeriodico.ASSETCLASS ASSETCLASS  
  ON   
   ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
) A  
  
  
  
  
  
END  
  
  
  
  
  
  
  











--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]    Script Date: 10/02/2022 16:40:28 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
  
  
---- =============================================  
---- Author:  <>  
---- Create date: <>  
---- Description: <caricamento tabella di generazione TB_S10PatrimonioFinanziario>  
---- =============================================  
  
---- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario] 'F','LRNRMR33D51C166I'  
--ALTER procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario]  
-- -- Add the parameters for the stored procedure here  
-- --@Rete char(1),   
-- --@CodiceFiscale varchar(16)  
--AS  
--BEGIN  
  
--truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario  
--INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario  
   
--SELECT --top 1  
-- Rete,   
-- cod_fiscale as CodiceFiscale,  
-- A.BANCA AS Banca,  
-- A.ORDINAMENTO AS Ordinamento,  
-- A.AssetClassId AS AssetClassId,   
-- A.AssetClassName AS AssetClassName,   
-- A.Controvalore,  
-- A.percentuale,  
-- ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)  
   
-- --cast(A.Controvalore as decimal(19,5)) AS Controvalore,  
-- --cast(A.Percentuale  as decimal(19,5)) AS Percentuale,  
-- --cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale  
--FROM   
--(    
-- SELECT DISTINCT  
--  CASE Rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Fideuram'   
--  END AS Banca,  
--  rete,  
--  cod_fiscale,  
--  ASSETCLASS.ORDINAMENTO,  
--  VALORIASSET.ID_ASSETCLASS AS AssetClassId,   
--  ASSETCLASS.DESCRIZIONE AS AssetClassName,   
--  ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,  
--  (  
--   SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /  
--            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO  
--   CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0   
--     THEN 1   
--                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) )   
--            END    
--  ) * 100 AS Percentuale  
-- FROM (  
  
--  SELECT    
--   PATRBF.rete,  
--   PATRBF.COD_FISCALE,  
--   ASSETPERC.ID_ASSETCLASS,  
--   PATRBF.CTV*ASSETPERC.PERC as Controvalore  
--  FROM   
--   C6MartPeriodico.PATRIMONIO_BF PATRBF  
--  INNER JOIN   
--   C6MartPeriodico.ASSET_PERC ASSETPERC   
--   ON   
--    PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--    AND ASSETPERC.LIVELLO = 1  
--  WHERE   
--   --ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY  
--   (PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))  
--   and patrbf.id_area not in ('CC', 'SELF')  
--  -- AND PATRBF.RETE = @Rete  
--  -- AND PATRBF.COD_FISCALE = @CodiceFiscale  
  
--  UNION ALL  
    
--  SELECT   
--   Asul.rete,  
--   asul.cod_fiscale,  
--   ASSETPERC.ID_ASSETCLASS,  
--   ASUL.CTV*ASSETPERC.PERC as Controvalore  
     
--  FROM   
--   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--  INNER JOIN   
--   C6MartPeriodico.ASSET_PERC ASSETPERC  
--   ON   
--    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
--    ---ELIMINO GLI SKANDIA  
--    AND ASUL.COD_ISIN_SOTT = ''  
--    AND ASSETPERC.LIVELLO = 1  
-- -- WHERE  
-- --  ASUL.RETE = @Rete  
-- --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
--  UNION ALL  
  
--  SELECT Asul.rete,  
--   asul.cod_fiscale,  
--  ASSETPERC.ID_ASSETCLASS,  
--    ASUL.CTV*ASSETPERC.PERC as Controvalore  
--  FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--  INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--   --PRENDO SOLO GLI SKANDIA  
--   ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
--   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
--   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
--            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--   AND ASSETPERC.LIVELLO = 1  
-- -- WHERE  
-- --  ASUL.RETE = @Rete  
-- --  AND ASUL.COD_FISCALE = @CodiceFiscale  
  
-- ) VALORIASSET  
-- INNER JOIN   
--  C6MartPeriodico.ASSETCLASS ASSETCLASS  
--  ON   
--   ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
--) A  
  
  
  
  
  
--END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<>
-- Create date: <>
-- Description:	<caricamento tabella di generazione TB_S10PatrimonioFinanziario>
-- =============================================

-- [C6MartPeriodico].[Popola_S10PatrimonioFinanziario_pre_selective] 'F','LRNRMR33D51C166I'
CREATE procedure [C6MartPeriodico].[Popola_S10PatrimonioFinanziario_pre_selective]
	-- Add the parameters for the stored procedure here
	--@Rete char(1), 
	--@CodiceFiscale varchar(16)
AS
BEGIN

truncate table C6MartPeriodico.TB_S10PatrimonioFinanziario
INSERT INTO C6MartPeriodico.TB_S10PatrimonioFinanziario
	
SELECT --top 1
	Rete, 
	cod_fiscale as CodiceFiscale,
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	A.Controvalore,
	A.percentuale,
	ROUND(SUM(A.Controvalore) OVER (PARTITION BY RETE,COD_FISCALE),2)
	
	--cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	--cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	--cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		rete,
		cod_fiscale,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS,rete,cod_fiscale) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE',rete,cod_fiscale) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.rete,
			PATRBF.COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC', 'SELF')
		--	AND PATRBF.RETE = @Rete
		--	AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		SELECT 
			Asul.rete,
			asul.cod_fiscale,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
			
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
	--	WHERE
	--		ASUL.RETE = @Rete
	--		AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT Asul.rete,
			asul.cod_fiscale,
		ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
	--	WHERE
	--		ASUL.RETE = @Rete
	--		AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A





END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
CREATE procedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza]  
  
AS  
BEGIN  
--------------------------------------------------------  
--*****************************************************  
-- Replat della Sp  PL_MP_S132ProfiloRischioAdeguatezza  
-- Attenzione : la insert sulla tabella TB_S132ProfiloRischioAdeguatezza inserisci su alcuni campi valori   
--    che successivamente sono aggiornati con un UPD ( vedi fine SP )  
--*****************************************************  
  
  
 SET NOCOUNT ON;  
  
truncate table  C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza  
  
insert into C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza  
    SELECT distinct  
    PATRBF.RETE,  
    PATRBF.COD_FISCALE,  
    PATRBF.INSTITUTENAME,  
    CTV,  
    M.PROFILO_ASS AS CODICEPROFILO,  
--CONVERT(DATETIME,M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,  
 DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,  
    CR.MAX_VAR AS  VARMAX,  
 ProfiliDiRischio.NOMEPROFILO as NOMEPROFILO,  
 RISK_AGG.VAR_PERC_PTF,-- VAR,  
 null  VARSTRING,  
    RISK_AGG.CREDITRISK  RISKCLASS,  
         CASE   
  WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.'   
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.'   
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.'   
  ELSE NULL   
 END AS  RISKCLASSSTRING,  
 ISNULL(RISK_AGG.COPERTURA,0.00)  COVERAGE,  
 NULL AS COVERAGESTRING,  
 --V changed from string value (descrizione) to the numeric (profilo)  
    M.RISKCLASS AS RISKCLASSMAX,  
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) /   
    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO  
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0  
         THEN 1  
         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)  
    END )  
    *100 AS PERCENTAGE,  
    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,  
    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,  
    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,  
    RISK_AGG.Ully_perc  
    FROM  
    (  
    select   
    PATRBF.RETE,  
    PATRBF.COD_FISCALE,  
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN  'Patrimonio Sanpaolo Invest' ELSE 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,  
    SUM(PATRBF.CTV) AS CTV  
    from  
    c6martperiodico.patrimonio_bf  PATRBF  
    where   
    1=1   
   -- and cod_fiscale = @codiceFiscale  
  --  and rete= @rete  
    GROUP BY   
    PATRBF.RETE,  
    PATRBF.COD_FISCALE,  
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' THEN  'Patrimonio Sanpaolo Invest' ELSE 'Patrimonio IW Private Inv.' END  
    ) PATRBF  
    LEFT OUTER JOIN   
    c6martperiodico.MIFID AS M  
    ON   
    PATRBF.COD_FISCALE=M.COD_FISCALE  
    AND PATRBF.RETE=M.RETE  
 LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR  
 ON M.PROFILO_ASS = CR.PROFILO  
    LEFT OUTER JOIN   
    c6martperiodico.CODIFICA_CREDITRISK  CK  
    ON   
    M.riskclass=CK.PROFILO  
    LEFT OUTER JOIN   
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG  
    ON   
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE  
    AND PATRBF.RETE=RISK_AGG.RETE  
    left outer join C6MartPeriodico.COMPLESSITA cmp  
    on   
    CMP.COD_FISCALE=PATRBF.COD_FISCALE  
    AND  
    CMP.RETE=PATRBF.RETE  
INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio  
  ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO  
   where  
    (  
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF'   
    )   
  
  
  
  
update s132  
 set var  = ( CASE  
   WHEN (nocc - CC = 0 ) THEN 0.00  
   else var  
  END ),  
  COVERAGE = ( CASE  
   WHEN (nocc - CC = 0 ) THEN 100  
   else COVERAGE  
  END )  
  --,  
  --VARSTRING=( CASE  
  -- WHEN VARSTRING = 0.00 AND (nocc - CC <> 0 ) THEN 'n.c.'   
  --END )    
 from c6martperiodico.TB_S132ProfiloRischioAdeguatezza s132  
 inner join (  
 select rete,cod_fiscale  
 ,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc   
 ,sum ( tot ) as nocc   
 from   
 ( select rete,cod_fiscale,tipo_prodotto,count(*) tot  
   from c6martperiodico.patrimonio_Bf  
   --where cod_fiscale = '00082850397' and rete = 'F'  
   group by rete,cod_fiscale,tipo_prodotto  
 ) as gr  
 group by rete,cod_fiscale  
 ) as tabCount  
     on tabcount.rete= s132.rete and tabcount.cod_fiscale=s132.cod_fiscale  
  
END  
  
  
  
  







--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza]    Script Date: 10/02/2022 16:41:23 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
  
  
  
  
--ALTER procedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza]  
  
--AS  
--BEGIN  
----------------------------------------------------------  
----*****************************************************  
---- Replat della Sp  PL_MP_S132ProfiloRischioAdeguatezza  
---- Attenzione : la insert sulla tabella TB_S132ProfiloRischioAdeguatezza inserisci su alcuni campi valori   
----    che successivamente sono aggiornati con un UPD ( vedi fine SP )  
----*****************************************************  
  
  
-- SET NOCOUNT ON;  
  
--truncate table  C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza  
  
--insert into C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza  
--    SELECT   
--    PATRBF.RETE,  
--    PATRBF.COD_FISCALE,  
--    PATRBF.INSTITUTENAME,  
--    CTV,  
--    M.PROFILO_ASS AS CODICEPROFILO,  
----CONVERT(DATETIME,M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,  
-- DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,  
--    CR.MAX_VAR AS  VARMAX,  
-- ProfiliDiRischio.NOMEPROFILO as NOMEPROFILO,  
-- RISK_AGG.VAR_PERC_PTF,-- VAR,  
-- null  VARSTRING,  
--    RISK_AGG.CREDITRISK  RISKCLASS,  
--         CASE   
--  WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.'   
--        WHEN RISK_AGG.creditrisk is null THEN 'n.a.'   
--        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.'   
--  ELSE NULL   
-- END AS  RISKCLASSSTRING,  
-- ISNULL(RISK_AGG.COPERTURA,0.00)  COVERAGE,  
-- NULL AS COVERAGESTRING,  
-- --V changed from string value (descrizione) to the numeric (profilo)  
--    M.RISKCLASS AS RISKCLASSMAX,  
--    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) /   
--    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO  
--    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0  
--         THEN 1  
--         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)  
--    END )  
--    *100 AS PERCENTAGE,  
--    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,  
--    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,  
--    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,  
--    RISK_AGG.Ully_perc  
--    FROM  
--    (  
--    select   
--    PATRBF.RETE,  
--    PATRBF.COD_FISCALE,  
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,  
--    SUM(PATRBF.CTV) AS CTV  
--    from  
--    c6martperiodico.patrimonio_bf  PATRBF  
--    where   
--    1=1   
--   -- and cod_fiscale = @codiceFiscale  
--  --  and rete= @rete  
--    GROUP BY   
--    PATRBF.RETE,  
--    PATRBF.COD_FISCALE,  
--    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END  
--    ) PATRBF  
--    LEFT OUTER JOIN   
--    c6martperiodico.MIFID AS M  
--    ON   
--    PATRBF.COD_FISCALE=M.COD_FISCALE  
--    AND PATRBF.RETE=M.RETE  
-- LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR  
-- ON M.PROFILO_ASS = CR.PROFILO  
--    LEFT OUTER JOIN   
--    c6martperiodico.CODIFICA_CREDITRISK  CK  
--    ON   
--    M.riskclass=CK.PROFILO  
--    LEFT OUTER JOIN   
--    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG  
--    ON   
--    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE  
--    AND PATRBF.RETE=RISK_AGG.RETE  
--    left outer join C6MartPeriodico.COMPLESSITA cmp  
--    on   
--    CMP.COD_FISCALE=PATRBF.COD_FISCALE  
--    AND  
--    CMP.RETE=PATRBF.RETE  
--INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio  
--  ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO  
--   where  
--    (  
--      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF'   
--    )   
  
  
  
  
--update s132  
-- set var  = ( CASE  
--   WHEN (nocc - CC = 0 ) THEN 0.00  
--   else var  
--  END ),  
--  COVERAGE = ( CASE  
--   WHEN (nocc - CC = 0 ) THEN 100  
--   else COVERAGE  
--  END )  
--  --,  
--  --VARSTRING=( CASE  
--  -- WHEN VARSTRING = 0.00 AND (nocc - CC <> 0 ) THEN 'n.c.'   
--  --END )    
-- from c6martperiodico.TB_S132ProfiloRischioAdeguatezza s132  
-- inner join (  
-- select rete,cod_fiscale  
-- ,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc   
-- ,sum ( tot ) as nocc   
-- from   
-- ( select rete,cod_fiscale,tipo_prodotto,count(*) tot  
--   from c6martperiodico.patrimonio_Bf  
--   --where cod_fiscale = '00082850397' and rete = 'F'  
--   group by rete,cod_fiscale,tipo_prodotto  
-- ) as gr  
-- group by rete,cod_fiscale  
-- ) as tabCount  
--     on tabcount.rete= s132.rete and tabcount.cod_fiscale=s132.cod_fiscale  
  
--END  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza_pre_selective]

AS
BEGIN
--------------------------------------------------------
--*****************************************************
-- Replat della Sp  PL_MP_S132ProfiloRischioAdeguatezza
-- Attenzione : la insert sulla tabella TB_S132ProfiloRischioAdeguatezza inserisci su alcuni campi valori 
--				che successivamente sono aggiornati con un UPD ( vedi fine SP )
--*****************************************************


	SET NOCOUNT ON;

truncate table 	C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza

insert into C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
--CONVERT(DATETIME,M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,
	DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,
    CR.MAX_VAR AS  VARMAX,
	ProfiliDiRischio.NOMEPROFILO as NOMEPROFILO,
	RISK_AGG.VAR_PERC_PTF,-- VAR,
	null  VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
	ISNULL(RISK_AGG.COPERTURA,0.00)  COVERAGE,
	NULL AS COVERAGESTRING,
	--V changed from string value (descrizione) to the numeric (profilo)
    M.RISKCLASS AS RISKCLASSMAX,
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
         THEN 1
         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)
    END )
    *100 AS PERCENTAGE,
    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,
    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,
    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,
    RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
   -- and cod_fiscale = @codiceFiscale
  --  and rete= @rete
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 




update s132
	set var  = ( CASE
			WHEN (nocc - CC = 0 ) THEN 0.00
			else var
		END ),
		COVERAGE = ( CASE
			WHEN (nocc - CC = 0 ) THEN 100
			else COVERAGE
		END )
		--,
		--VARSTRING=( CASE
		--	WHEN VARSTRING = 0.00 AND (nocc - CC <> 0 ) THEN 'n.c.' 
		--END )		
	from c6martperiodico.TB_S132ProfiloRischioAdeguatezza s132
	inner join (
	select rete,cod_fiscale
	,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc 
	,sum ( tot ) as nocc 
	from 
	( select rete,cod_fiscale,tipo_prodotto,count(*) tot
	  from c6martperiodico.patrimonio_Bf
	  --where cod_fiscale = '00082850397' and rete = 'F'
	  group by rete,cod_fiscale,tipo_prodotto
	) as gr
	group by rete,cod_fiscale
	) as tabCount
     on tabcount.rete= s132.rete and tabcount.cod_fiscale=s132.cod_fiscale

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza_PROVVISORIA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6MartPeriodico].[POPOLA_S132ProfiloRischioAdeguatezza_PROVVISORIA]

AS
BEGIN
--------------------------------------------------------
--*****************************************************
-- Replat della Sp  PL_MP_S132ProfiloRischioAdeguatezza
-- Attenzione : la insert sulla tabella TB_S132ProfiloRischioAdeguatezza inserisci su alcuni campi valori 
--				che successivamente sono aggiornati con un UPD ( vedi fine SP )
--*****************************************************


	SET NOCOUNT ON;

--truncate table 	C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza

insert into C6MartPeriodico.TB_S132ProfiloRischioAdeguatezza
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
--CONVERT(DATETIME,M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,
	DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) AS  DATAINIZIOVALIDITA,
    CR.MAX_VAR AS  VARMAX,
	ProfiliDiRischio.NOMEPROFILO as NOMEPROFILO,
	RISK_AGG.VAR_PERC_PTF,-- VAR,
	null  VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
	ISNULL(RISK_AGG.COPERTURA,0.00)  COVERAGE,
	NULL AS COVERAGESTRING,
	--V changed from string value (descrizione) to the numeric (profilo)
    M.RISKCLASS AS RISKCLASSMAX,
    (SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI-CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
         THEN 1
         ELSE SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)
    END )
    *100 AS PERCENTAGE,
    case when RISK_AGG.VAR_PERC_PTF > CR.MAX_VAR then 0 else 1 end as VarIsOk,
    case when isnull(RISK_AGG.CREDITRISK,0) > Ck.PROFILO then 0 else 1 end as RiskClassIsOk,
    CASE WHEN CMP.COMPLESSITA > M.EXPERIENCE THEN 0 ELSE 1 END  as ComplexityIsOk,
    RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and cod_fiscale = 'DLLPLG43L04I625G'
    and rete= 'F'
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END
    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    left outer join C6MartPeriodico.COMPLESSITA cmp
    on 
    CMP.COD_FISCALE=PATRBF.COD_FISCALE
    AND
    CMP.RETE=PATRBF.RETE
INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' 
    ) 




update s132
	set var  = ( CASE
			WHEN (nocc - CC = 0 ) THEN 0.00
			else var
		END ),
		COVERAGE = ( CASE
			WHEN (nocc - CC = 0 ) THEN 100
			else COVERAGE
		END )
		--,
		--VARSTRING=( CASE
		--	WHEN VARSTRING = 0.00 AND (nocc - CC <> 0 ) THEN 'n.c.' 
		--END )		
	from c6martperiodico.TB_S132ProfiloRischioAdeguatezza s132
	inner join (
	select rete,cod_fiscale
	,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc 
	,sum ( tot ) as nocc 
	from 
	( select rete,cod_fiscale,tipo_prodotto,count(*) tot
	  from c6martperiodico.patrimonio_Bf
	  where cod_fiscale = 'DLLPLG43L04I625G' and rete = 'F'
	  group by rete,cod_fiscale,tipo_prodotto
	) as gr
	group by rete,cod_fiscale
	) as tabCount
     on tabcount.rete= s132.rete and tabcount.cod_fiscale=s132.cod_fiscale

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
  
  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
  
CREATE procedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide]                                                                              
AS                                                                                                                                                
BEGIN                                                                                                                                             
                                                                                                                                           
 SELECT                                                                                                                                    
  PIRAMIDE_MOD.RETE,                                                                                                                
  PIRAMIDE_MOD.COD_FISCALE,                                                                                                    
  PIRAMIDE_MOD.ID_AREA,                                                                                                             
  PIRAMIDE_MOD.PERC_AREA,                                                                                                           
  PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                            
 INTO #PIRAMIDE_VERT_TEMP                                                                                                                       
 FROM                                                                                                                                      
  C6MartPeriodico.PIRAMIDE_MOD                                                                                                      
 LEFT JOIN (                                                                                                                               
  -- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                          
     SELECT                                                                                                                                
   RETE,                                                                                                                     
   COD_FISCALE,                                                                                                              
--   LEFT(ID_AREA,3) AS ID_AREA,                                                                                               
  CASE                                                                                                                              
   WHEN ID_AREA = 'SELF'                                                                                                     
   THEN LEFT(ID_AREA,4)                                                                                                      
   ELSE LEFT(ID_AREA,3)                                                                                                      
   END AS ID_AREA,                                                                                                           
   SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                          
  FROM                                                                                                                              
   C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT                                                                              
   GROUP BY                                                                                                                  
   RETE, COD_FISCALE,                                                                                             
   CASE                          
   WHEN ID_AREA = 'SELF'                                                                                                     
   THEN LEFT(ID_AREA,4)                                                                                                      
   ELSE LEFT(ID_AREA,3)                                                                                                      
   END                                                                                                                       
 ) PIRAMIDE_VERT                                                                                                                           
  ON                                                                                                                                
   PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                              
      and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                          
   and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                                
 WHERE                                                                                                                                     
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                    
  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF','INV')                                                              
   --OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL) /* 20161202 nome_progetto sempre diverso da null */  
  )    
                                                 
/* 20161214 - aggiunto aggragazione percentuali per area */  
 SELECT                                                                                                                                    
  RETE,                                                                                                                
  COD_FISCALE,                                                                                                    
  ID_AREA,                                                                                                             
  sum(PERC_AREA) as PERC_AREA,                                                                                                           
  CONTROVALORE                                                                                            
 INTO #PIRAMIDE_VERT                                                                                                            
 FROM                                                                                                                                      
  #PIRAMIDE_VERT_TEMP  
 group by rete,cod_fiscale, id_area, CONTROVALORE                                                                                                                                    
                                                                                                                                                  
                                                                                                                                          
                                                                                                                                    
truncate table  c6martperiodico.TB_S133_S157DatiPiramide                                                             
insert into c6martperiodico.TB_S133_S157DatiPiramide                                                                                       
  SELECT    distinct  /* 20161202 */                                                                                                                        
  ATTUALE.RETE,                                                                                                                     
  ATTUALE.COD_FISCALE,                                                                                                              
   AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                         
   AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                       
   ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                        
   ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                        
   ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                           
   ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                          
   ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                  
   ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                            
   0 differenzapercentuale,                                                                                                  
   ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,                                                     
   CASE                                                                                                                      
    WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                    
    WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                        
--------------------------------------------------------------                                                                                    
--INIZIO INTERVENTI OMNIA QUIII                                                                                              
                                                                                                                      
    --WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                     
--FINE INTERVENTI OMNIA QUIII                                                                                                                     
--------------------------------------------------------------             
    ELSE NULL                                                                                                         
   END AS var_needareaString,                                                                                                
   ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                    
   CASE                                                                                                                      
    WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                    
    WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                        
    ELSE NULL                                                                                                         
   END AS copertura_needareaString,                                                                                          
   0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                          
   0 somma_controvalAttuale,                                                                                                 
   0 somma_controvalModello,                                                                                                 
   0.00 AS somma_percentualeAttuale,                                                                                         
   0.00 AS somma_percentualeModello,                                       
   RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                       
    null var_totString,                                                                                               
    RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                       
    CASE                                                                                                              
     --V SOLO CC -> VAR = 0                                                                                   
                                                                                                                                                  
     WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'  
     WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                            
     ELSE NULL                                                                                                 
                                                                                                               
    END AS var_tot_pirString,           
                                                                                                                             
                                                                                                                             
   ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                       
   CASE                                                                                                                      
    WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                  
    WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                      
    ELSE NULL                                                                                                         
   END AS copertura_totString,                                                                                               
   --V                                                                                                                       
   ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                               
   CASE                                                                                                                      
    WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                              
    WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                  
   END AS copertura_tot_pirString,                                                                                           
   --                                                                                                                        
   --V                                                                                                                       
   RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                                 
   CASE                                                                                                                      
    WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                  
    WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                      
    ELSE NULL                                                                                                         
   END AS VAR_RISFINSTRING,                                                                                                  
              
   ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                    
   CASE                                                                                                                      
    WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                  
    WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                      
    ELSE NULL                                                                                                         
   END AS copertura_risfinString,                                                                                            
                                                                                                                             
                                                                                                                                                  
   AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                   
                                                                                                                                                  
  FROM                                                                                                                              
   C6MartPeriodico.AREA_BISOGNO                                                                                              
  LEFT JOIN                                                                                                                         
   #PIRAMIDE_VERT ATTUALE                                                                                                    
   ON                                                                                                                        
    ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                            
  LEFT JOIN                                                                                                                         
   C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA                                                                             
   ON                                                                                                                        
    RISCHIOAREA.RETE = ATTUALE.RETE                                                                                   
    AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                                 
     AND                                                                                                       
                   RISCHIOAREA.COD_AGGREG = (                                                                                                     
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                   
     THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                                
       WHEN ATTUALE.ID_AREA = 'NA'                                                                                    
     THEN 'RISFIN|NA'                                                                                          
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                    
     THEN 'COMPLESSIVO|BF|CC'                                                                                  
       WHEN ATTUALE.ID_AREA = 'Self'                                                                                  
      THEN 'COMPLESSIVO|BF|SELF'                                                                        
                   END                         
                   )                                                                                                                              
  LEFT JOIN                                                                                                                         
   C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                           
   ON                                                                                                                        
    RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                                 
    AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
    AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                   
                                                                                                                                                  
  --V                                                                                                                               
  LEFT JOIN                                                                                                                         
   C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                       
   ON                                                                                                                        
    RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                             
    AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                           
    AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                              
                                                                                                                                                  
  LEFT JOIN                                                                                                                         
   C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN                                                                           
   ON                                                                                                                        
    RISCHIORISFIN.RETE = ATTUALE.RETE                                                                                 
    AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
    AND RISCHIORISFIN.COD_AGGREG = 'RISFIN|PIRAMIDE'       --Per Aladdin è stato aggiunto il tag |PIRAMIDE                                                                    
  --                                                                                                                                
  /*WHERE                                                                                                                           
   AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                            
                                                                                                                             
  WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                                 
                                                                                                                                          
------------------------------------------------------------------                                                                           
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE) TotControvalore                                                                           
into #temp                                  
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                       
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                          
group by rete,cod_fiscale                                                                                                                         
  
                                                                                                                                                 
update s157                                                                                                                                       
set s157.PercentualeAttuale =CASE                                                                                                                 
  WHEN vert.TotControvalore = 0 THEN 0                                                                                              
  ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                             
  END,                                                                                                                              
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                             
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),         
s157.DifferenzaPercentuale = CASE                                                                                                                 
   WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                              
    ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)    
   END ,                                                                                                                     
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                                
s157.somma_controvalModello=vert.TotControvalore                                                                                                  
                                                                                                                             
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                                
inner join #temp vert                                                                                                                             
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                  
                                                                                                                                           
                                                                       
                                                                                                                                                  
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT  
 into #TempContatori  
 FROM C6MARTPERIODICO.PATRIMONIO_BF  
union  
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF  
 FROM C6MARTPERIODICO.PATRIMONIO_BF  
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')  
union  
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF  
 FROM C6MARTPERIODICO.PATRIMONIO_BF  
 where ISIN  in ('EURO00000009','EURO10000007')  
union  
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ  
 FROM C6MARTPERIODICO.PATRIMONIO_BF  
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'  
union  
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ  
 FROM C6MARTPERIODICO.PATRIMONIO_BF  
 where ID_AREA = 'LIQ'  
   
   
   
 select   
 totale1.rete,  
 totale1.cod_fiscale,  
 ISNULL(totale1.TOT,0) as TOT,  
 ISNULL(totale2.TOT,0) as TOTCCSELF,  
 ISNULL(totale3.TOT,0) as TOTSELF,   
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,  
 ISNULL(totale5.TOT,0) as TOTLIQ   
  
  
 into #Contatori  
 from   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOT') as totale1  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTCCSELF') as totale2  
 on  totale1.rete=totale2.rete  
 and totale1.cod_fiscale=totale2.cod_fiscale  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTSELF') as totale3  
 on  totale1.rete=totale3.rete  
 and totale1.cod_fiscale=totale3.cod_fiscale  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTSELFLIQ') as totale4  
 on  totale1.rete=totale4.rete  
 and totale1.cod_fiscale=totale4.cod_fiscale  
  left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTLIQ') as totale5  
 on  totale1.rete=totale5.rete  
 and totale1.cod_fiscale=totale5.cod_fiscale  
  
  
  
                                                                                                                                                  
update s157                    
set    
var_needareaString= CASE  
     WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.'     
     ELSE var_needareaString    
     END,  
var_tot =     CASE  
     WHEN TOTCCSELF = TOT THEN 0.00  
     ELSE var_tot  
     END ,   
var_totString=CASE   
     WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'  
     WHEN (TOTSELF = TOT) THEN 'n.c.'   
     ELSE NULL   
    END    ,    
    
     
var_tot_pir =CASE   
     WHEN TOTCCSELF = TOT THEN 0  
     ELSE var_tot_pir  
END ,  
var_tot_pirString=CASE  
     WHEN var_tot_pirString <> 'n.c.' THEN  
     CASE  
         WHEN TOTCCSELF = TOT THEN NULL  
         WHEN TOTSELF = TOT THEN 'n.c.'  
      ELSE var_tot_pirString  
        END  
     ELSE var_tot_pirString  
    END ,    
VAR_RISFINSTRING=CASE   
     WHEN VAR_RISFINSTRING <> 'n.c.' THEN  
     CASE  
      WHEN TOTCCSELF = TOT THEN NULL  
      ELSE VAR_RISFINSTRING  
     END  
     ELSE VAR_RISFINSTRING  
     END                                                                                                                           
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                                
inner join ( select * from #Contatori )  contatori                                                                                                  
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                  
--and codicefiscale='00247580970'                                                                                                      
                                                                                                                                                  
                                                                                                                                           
                                                                                                                                           
 Drop TABLE #temp                                                                                                                          
                                                                                                                                                  
 DROP TABLE #PIRAMIDE_VERT                                                                                                                 
                                                                                                                           
 drop table #Contatori          
   
    drop table #TempContatori                                                                                                          
                                                                                                                                                  
END                                                                                                                                               
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_20161202]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

CREATE procedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_20161202]                                                                            
AS                                                                                                                                              
BEGIN                                                                                                                                           
	                                                                                                                                        
	SELECT                                                                                                                                  
		PIRAMIDE_MOD.RETE,                                                                                                              
		PIRAMIDE_MOD.COD_FISCALE, 	                                                                                                
		PIRAMIDE_MOD.ID_AREA,                                                                                                           
		PIRAMIDE_MOD.PERC_AREA,                                                                                                         
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                          
	INTO #PIRAMIDE_VERT                                                                                                                     
	FROM                                                                                                                                    
		C6MartPeriodico.PIRAMIDE_MOD                                                                                                    
	LEFT JOIN (                                                                                                                             
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                        
	    SELECT                                                                                                                              
			RETE,                                                                                                                   
			COD_FISCALE,                                                                                                            
--			LEFT(ID_AREA,3) AS ID_AREA,                                                                                             
		CASE                                                                                                                            
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END AS ID_AREA,                                                                                                         
			SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                        
		FROM                                                                                                                            
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT                                                                            
			GROUP BY                                                                                                                
			RETE, COD_FISCALE, 		                                                                                        
			CASE                                                                                                                    
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END                                                                                                                     
	) PIRAMIDE_VERT                                                                                                                         
		ON                                                                                                                              
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                            
						and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                        
			and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                              
	WHERE                                                                                                                                   
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                  
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF')                                                            
			OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL))                                               
		                                                                                                                                
                                                                                                                                                
                                                                                                                                        
		                                                                                                                                
truncate table 	c6martperiodico.TB_S133_S157DatiPiramide			                                                        
insert into c6martperiodico.TB_S133_S157DatiPiramide                                                                                     
		SELECT                                                                                                                          
		ATTUALE.RETE,                                                                                                                   
		ATTUALE.COD_FISCALE,                                                                                                            
			AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                       
			AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                     
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                      
			ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                      
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                         
			ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                        
			ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                
			ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                          
			0 differenzapercentuale,                                                                                                
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,			                                                
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                      
--------------------------------------------------------------                                                                                  
--INIZIO INTERVENTI OMNIA QUIII				                                                                                        
				                                                                                                                
				--WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                   
--FINE INTERVENTI OMNIA QUIII                                                                                                                   
--------------------------------------------------------------											
				ELSE NULL                                                                                                       
			END AS var_needareaString,                                                                                              
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                      
				ELSE NULL                                                                                                       
			END AS copertura_needareaString,                                                                                        
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                        
			0 somma_controvalAttuale,                                                                                               
			0 somma_controvalModello,                                                                                               
			0.00 AS somma_percentualeAttuale,                                                                                       
			0.00 AS somma_percentualeModello,                                                                                       
			RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                     
				null var_totString,                                                                                             
				RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                     
				CASE                                                                                                            
					--V SOLO CC -> VAR = 0	                                                                                
                                                                                                                                                
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                          
					ELSE NULL                                                                                               
					                                                                                                        
				END AS var_tot_pirString,         
			                                                                                                                        
			                                                                                                                        
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                     
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_totString,                                                                                             
			--V                                                                                                                     
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                             
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                            
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                
			END AS copertura_tot_pirString,                                                                                         
			--                                                                                                                      
			--V                                                                                                                     
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                               
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS VAR_RISFINSTRING,                                                                                                
			                                                                                                                        
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_risfinString,                                                                                          
			                                                                                                                        
                                                                                                                                                
			AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                 
                                                                                                                                                
		FROM                                                                                                                            
			C6MartPeriodico.AREA_BISOGNO                                                                                            
		LEFT JOIN                                                                                                                       
			#PIRAMIDE_VERT ATTUALE                                                                                                  
			ON                                                                                                                      
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                          
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA                                                                           
			ON                                                                                                                      
				RISCHIOAREA.RETE = ATTUALE.RETE                                                                                 
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
					AND                                                                                                     
                   RISCHIOAREA.COD_AGGREG = (                                                                                                   
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                 
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                              
				   WHEN ATTUALE.ID_AREA = 'NA'                                                                                  
					THEN 'RISFIN|NA'                                                                                        
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                  
					THEN 'COMPLESSIVO|BF|CC'                                                                                
				   WHEN ATTUALE.ID_AREA = 'Self'                                                                                
						THEN 'COMPLESSIVO|BF|SELF'                                                                      
                   END                                                                                                                          
                   )                                                                                                                            
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                         
			ON                                                                                                                      
				RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                               
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                 
                                                                                                                                                
		--V                                                                                                                             
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                     
			ON                                                                                                                      
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                           
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                         
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                            
                                                                                                                                                
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN                                                                         
			ON                                                                                                                      
				RISCHIORISFIN.RETE = ATTUALE.RETE                                                                               
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'                                                                         
		--                                                                                                                              
		/*WHERE                                                                                                                         
			AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                          
			                                                                                                                        
		WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                               
                                                                                                                                        
------------------------------------------------------------------	                                                                        
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE)	TotControvalore                                                                         
into #temp                                                                                                                                      
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                     
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                        
group by rete,cod_fiscale                                                                                                                       

                                                                                                                                               
update s157                                                                                                                                     
set s157.PercentualeAttuale =CASE                                                                                                               
		WHEN vert.TotControvalore = 0 THEN 0                                                                                            
		ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                           
		END,                                                                                                                            
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                           
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),       
s157.DifferenzaPercentuale = CASE                                                                                                               
			WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                            
				ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)  
			END ,                                                                                                                   
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                              
s157.somma_controvalModello=vert.TotControvalore                                                                                                
			                                                                                                                        
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join #temp vert                                                                                                                           
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                
	                                                                                                                                        
                                                                     
                                                                                                                                                
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT
 into #TempContatori
 FROM C6MARTPERIODICO.PATRIMONIO_BF
union
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN  in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'
union
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ID_AREA = 'LIQ'
 
 
 
 select 
 totale1.rete,
 totale1.cod_fiscale,
 ISNULL(totale1.TOT,0) as TOT,
 ISNULL(totale2.TOT,0) as TOTCCSELF,
 ISNULL(totale3.TOT,0) as TOTSELF, 
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,
 ISNULL(totale5.TOT,0) as TOTLIQ 


 into #Contatori
 from 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOT') as totale1
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTCCSELF') as totale2
 on  totale1.rete=totale2.rete
 and totale1.cod_fiscale=totale2.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELF') as totale3
 on  totale1.rete=totale3.rete
 and totale1.cod_fiscale=totale3.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELFLIQ') as totale4
 on  totale1.rete=totale4.rete
 and totale1.cod_fiscale=totale4.cod_fiscale
  left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTLIQ') as totale5
 on  totale1.rete=totale5.rete
 and totale1.cod_fiscale=totale5.cod_fiscale



                                                                                                                                                
update s157                  
set  
var_needareaString= CASE
					WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.' 		
					ELSE var_needareaString		
					END,
var_tot =     CASE
					WHEN TOTCCSELF = TOT THEN 0.00
					ELSE var_tot
			  END ,	
var_totString=CASE 
					WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'
					WHEN (TOTSELF = TOT) THEN 'n.c.' 
					ELSE NULL 
				END    ,		
		
			
var_tot_pir =CASE 
					WHEN TOTCCSELF = TOT THEN 0
					ELSE var_tot_pir
END ,
var_tot_pirString=CASE
					WHEN var_tot_pirString <> 'n.c.' THEN
					CASE
					    WHEN TOTCCSELF = TOT THEN NULL
					    WHEN TOTSELF = TOT THEN 'n.c.'
						ELSE var_tot_pirString
			    	END
					ELSE var_tot_pirString
				END , 	
VAR_RISFINSTRING=CASE 
					WHEN VAR_RISFINSTRING <> 'n.c.' THEN
					CASE
						WHEN TOTCCSELF = TOT THEN NULL
						ELSE VAR_RISFINSTRING
					END
					ELSE VAR_RISFINSTRING
				 END 									                                                                                                               
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join ( select * from #Contatori )  contatori                                                                                                
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                
--and codicefiscale='00247580970'                                                                                                    
                                                                                                                                                
	                                                                                                                                        
	                                                                                                                                        
	Drop TABLE #temp                                                                                                                        
                                                                                                                                                
	DROP TABLE #PIRAMIDE_VERT                                                                                                               
                                                                                                                                                
	drop table #Contatori        
	
    drop table #TempContatori                                                                                                        
                                                                                                                                                
END                                                                                                                                             
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_20161214]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

CREATE procedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_20161214]                                                                            
AS                                                                                                                                              
BEGIN                                                                                                                                           
	                                                                                                                                        
	SELECT                                                                                                                                  
		PIRAMIDE_MOD.RETE,                                                                                                              
		PIRAMIDE_MOD.COD_FISCALE, 	                                                                                                
		PIRAMIDE_MOD.ID_AREA,                                                                                                           
		PIRAMIDE_MOD.PERC_AREA,                                                                                                         
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                          
	INTO #PIRAMIDE_VERT                                                                                                                     
	FROM                                                                                                                                    
		C6MartPeriodico.PIRAMIDE_MOD                                                                                                    
	LEFT JOIN (                                                                                                                             
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                        
	    SELECT                                                                                                                              
			RETE,                                                                                                                   
			COD_FISCALE,                                                                                                            
--			LEFT(ID_AREA,3) AS ID_AREA,                                                                                             
		CASE                                                                                                                            
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END AS ID_AREA,                                                                                                         
			SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                        
		FROM                                                                                                                            
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT                                                                            
			GROUP BY                                                                                                                
			RETE, COD_FISCALE, 		                                                                                        
			CASE                                                                                                                    
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END                                                                                                                     
	) PIRAMIDE_VERT                                                                                                                         
		ON                                                                                                                              
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                            
						and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                        
			and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                              
	WHERE                                                                                                                                   
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                  
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF')                                                            
			--OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL) /* 20161202 nome_progetto sempre diverso da null */
		)                                               
		                                                                                                                                
                                                                                                                                                
                                                                                                                                        
		                                                                                                                                
truncate table 	c6martperiodico.TB_S133_S157DatiPiramide			                                                        
insert into c6martperiodico.TB_S133_S157DatiPiramide                                                                                     
		SELECT    distinct  /* 20161202 */                                                                                                                      
		ATTUALE.RETE,                                                                                                                   
		ATTUALE.COD_FISCALE,                                                                                                            
			AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                       
			AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                     
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                      
			ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                      
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                         
			ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                        
			ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                
			ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                          
			0 differenzapercentuale,                                                                                                
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,			                                                
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                      
--------------------------------------------------------------                                                                                  
--INIZIO INTERVENTI OMNIA QUIII				                                                                                        
				                                                                                                                
				--WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                   
--FINE INTERVENTI OMNIA QUIII                                                                                                                   
--------------------------------------------------------------											
				ELSE NULL                                                                                                       
			END AS var_needareaString,                                                                                              
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                      
				ELSE NULL                                                                                                       
			END AS copertura_needareaString,                                                                                        
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                        
			0 somma_controvalAttuale,                                                                                               
			0 somma_controvalModello,                                                                                               
			0.00 AS somma_percentualeAttuale,                                                                                       
			0.00 AS somma_percentualeModello,                                                                                       
			RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                     
				null var_totString,                                                                                             
				RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                     
				CASE                                                                                                            
					--V SOLO CC -> VAR = 0	                                                                                
                                                                                                                                                
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                          
					ELSE NULL                                                                                               
					                                                                                                        
				END AS var_tot_pirString,         
			                                                                                                                        
			                                                                                                                        
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                     
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_totString,                                                                                             
			--V                                                                                                                     
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                             
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                            
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                
			END AS copertura_tot_pirString,                                                                                         
			--                                                                                                                      
			--V                                                                                                                     
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                               
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS VAR_RISFINSTRING,                                                                                                
			                                                                                                                        
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_risfinString,                                                                                          
			                                                                                                                        
                                                                                                                                                
			AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                 
                                                                                                                                                
		FROM                                                                                                                            
			C6MartPeriodico.AREA_BISOGNO                                                                                            
		LEFT JOIN                                                                                                                       
			#PIRAMIDE_VERT ATTUALE                                                                                                  
			ON                                                                                                                      
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                          
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA                                                                           
			ON                                                                                                                      
				RISCHIOAREA.RETE = ATTUALE.RETE                                                                                 
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
					AND                                                                                                     
                   RISCHIOAREA.COD_AGGREG = (                                                                                                   
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                 
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                              
				   WHEN ATTUALE.ID_AREA = 'NA'                                                                                  
					THEN 'RISFIN|NA'                                                                                        
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                  
					THEN 'COMPLESSIVO|BF|CC'                                                                                
				   WHEN ATTUALE.ID_AREA = 'Self'                                                                                
						THEN 'COMPLESSIVO|BF|SELF'                                                                      
                   END                                                                                                                          
                   )                                                                                                                            
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                         
			ON                                                                                                                      
				RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                               
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                 
                                                                                                                                                
		--V                                                                                                                             
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                     
			ON                                                                                                                      
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                           
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                         
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                            
                                                                                                                                                
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN                                                                         
			ON                                                                                                                      
				RISCHIORISFIN.RETE = ATTUALE.RETE                                                                               
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'                                                                         
		--                                                                                                                              
		/*WHERE                                                                                                                         
			AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                          
			                                                                                                                        
		WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                               
                                                                                                                                        
------------------------------------------------------------------	                                                                        
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE)	TotControvalore                                                                         
into #temp                                                                                                                                      
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                     
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                        
group by rete,cod_fiscale                                                                                                                       

                                                                                                                                               
update s157                                                                                                                                     
set s157.PercentualeAttuale =CASE                                                                                                               
		WHEN vert.TotControvalore = 0 THEN 0                                                                                            
		ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                           
		END,                                                                                                                            
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                           
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),       
s157.DifferenzaPercentuale = CASE                                                                                                               
			WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                            
				ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)  
			END ,                                                                                                                   
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                              
s157.somma_controvalModello=vert.TotControvalore                                                                                                
			                                                                                                                        
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join #temp vert                                                                                                                           
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                
	                                                                                                                                        
                                                                     
                                                                                                                                                
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT
 into #TempContatori
 FROM C6MARTPERIODICO.PATRIMONIO_BF
union
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN  in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'
union
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ID_AREA = 'LIQ'
 
 
 
 select 
 totale1.rete,
 totale1.cod_fiscale,
 ISNULL(totale1.TOT,0) as TOT,
 ISNULL(totale2.TOT,0) as TOTCCSELF,
 ISNULL(totale3.TOT,0) as TOTSELF, 
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,
 ISNULL(totale5.TOT,0) as TOTLIQ 


 into #Contatori
 from 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOT') as totale1
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTCCSELF') as totale2
 on  totale1.rete=totale2.rete
 and totale1.cod_fiscale=totale2.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELF') as totale3
 on  totale1.rete=totale3.rete
 and totale1.cod_fiscale=totale3.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELFLIQ') as totale4
 on  totale1.rete=totale4.rete
 and totale1.cod_fiscale=totale4.cod_fiscale
  left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTLIQ') as totale5
 on  totale1.rete=totale5.rete
 and totale1.cod_fiscale=totale5.cod_fiscale



                                                                                                                                                
update s157                  
set  
var_needareaString= CASE
					WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.' 		
					ELSE var_needareaString		
					END,
var_tot =     CASE
					WHEN TOTCCSELF = TOT THEN 0.00
					ELSE var_tot
			  END ,	
var_totString=CASE 
					WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'
					WHEN (TOTSELF = TOT) THEN 'n.c.' 
					ELSE NULL 
				END    ,		
		
			
var_tot_pir =CASE 
					WHEN TOTCCSELF = TOT THEN 0
					ELSE var_tot_pir
END ,
var_tot_pirString=CASE
					WHEN var_tot_pirString <> 'n.c.' THEN
					CASE
					    WHEN TOTCCSELF = TOT THEN NULL
					    WHEN TOTSELF = TOT THEN 'n.c.'
						ELSE var_tot_pirString
			    	END
					ELSE var_tot_pirString
				END , 	
VAR_RISFINSTRING=CASE 
					WHEN VAR_RISFINSTRING <> 'n.c.' THEN
					CASE
						WHEN TOTCCSELF = TOT THEN NULL
						ELSE VAR_RISFINSTRING
					END
					ELSE VAR_RISFINSTRING
				 END 									                                                                                                               
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join ( select * from #Contatori )  contatori                                                                                                
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                
--and codicefiscale='00247580970'                                                                                                    
                                                                                                                                                
	                                                                                                                                        
	                                                                                                                                        
	Drop TABLE #temp                                                                                                                        
                                                                                                                                                
	DROP TABLE #PIRAMIDE_VERT                                                                                                               
                                                                                                                                                
	drop table #Contatori        
	
    drop table #TempContatori                                                                                                        
                                                                                                                                                
END                                                                                                                                             
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_20170113_ORIG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

CREATE PROCEDURE [C6MartPeriodico].[Popola_S133_S157DatiPiramide_20170113_ORIG]                                                                            
AS                                                                                                                                              
BEGIN                                                                                                                                           
	                                                                                                                                        
	SELECT                                                                                                                                  
		PIRAMIDE_MOD.RETE,                                                                                                              
		PIRAMIDE_MOD.COD_FISCALE, 	                                                                                                
		PIRAMIDE_MOD.ID_AREA,                                                                                                           
		PIRAMIDE_MOD.PERC_AREA,                                                                                                         
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                          
	INTO #PIRAMIDE_VERT_TEMP                                                                                                                     
	FROM                                                                                                                                    
		C6MartPeriodico.PIRAMIDE_MOD                                                                                                    
	LEFT JOIN (                                                                                                                             
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                        
	    SELECT                                                                                                                              
			RETE,                                                                                                                   
			COD_FISCALE,                                                                                                            
--			LEFT(ID_AREA,3) AS ID_AREA,                                                                                             
		CASE                                                                                                                            
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END AS ID_AREA,                                                                                                         
			SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                        
		FROM                                                                                                                            
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT                                                                            
			GROUP BY                                                                                                                
			RETE, COD_FISCALE, 		                                                                                        
			CASE                                                                                                                    
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END                                                                                                                     
	) PIRAMIDE_VERT                                                                                                                         
		ON                                                                                                                              
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                            
						and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                        
			and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                              
	WHERE                                                                                                                                   
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                  
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF','INV')                                                            
			--OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL) /* 20161202 nome_progetto sempre diverso da null */
		)  
		                                             
/* 20161214 - aggiunto aggragazione percentuali per area */
	SELECT                                                                                                                                  
		RETE,                                                                                                              
		COD_FISCALE, 	                                                                                                
		ID_AREA,                                                                                                           
		sum(PERC_AREA) as PERC_AREA,                                                                                                         
		CONTROVALORE                                                                                          
	INTO #PIRAMIDE_VERT                                                                                                          
	FROM                                                                                                                                    
		#PIRAMIDE_VERT_TEMP
	group by rete,cod_fiscale, id_area, CONTROVALORE		                                                                                                                                
                                                                                                                                                
                                                                                                                                        
		                                                                                                                                
truncate table 	c6martperiodico.TB_S133_S157DatiPiramide			                                                        
insert into c6martperiodico.TB_S133_S157DatiPiramide                                                                                     
		SELECT    distinct  /* 20161202 */                                                                                                                      
		ATTUALE.RETE,                                                                                                                   
		ATTUALE.COD_FISCALE,                                                                                                            
			AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                       
			AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                     
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                      
			ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                      
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                         
			ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                        
			ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                
			ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                          
			0 differenzapercentuale,                                                                                                
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,			                                                
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                      
--------------------------------------------------------------                                                                                  
--INIZIO INTERVENTI OMNIA QUIII				                                                                                        
				                                                                                                                
				--WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                   
--FINE INTERVENTI OMNIA QUIII                                                                                                                   
--------------------------------------------------------------											
				ELSE NULL                                                                                                       
			END AS var_needareaString,                                                                                              
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                      
				ELSE NULL                                                                                                       
			END AS copertura_needareaString,                                                                                        
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                        
			0 somma_controvalAttuale,                                                                                               
			0 somma_controvalModello,                                                                                               
			0.00 AS somma_percentualeAttuale,                                                                                       
			0.00 AS somma_percentualeModello,                                                                                       
			RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                     
				null var_totString,                                                                                             
				RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                     
				CASE                                                                                                            
					--V SOLO CC -> VAR = 0	                                                                                
                                                                                                                                                
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                          
					ELSE NULL                                                                                               
					                                                                                                        
				END AS var_tot_pirString,         
			                                                                                                                        
			                                                                                                                        
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                     
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_totString,                                                                                             
			--V                                                                                                                     
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                             
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                            
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                
			END AS copertura_tot_pirString,                                                                                         
			--                                                                                                                      
			--V                                                                                                                     
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                               
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS VAR_RISFINSTRING,                                                                                                
			                                                                                                                        
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_risfinString,                                                                                          
			                                                                                                                        
                                                                                                                                                
			AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                 
                                                                                                                                                
		FROM                                                                                                                            
			C6MartPeriodico.AREA_BISOGNO                                                                                            
		LEFT JOIN                                                                                                                       
			#PIRAMIDE_VERT ATTUALE                                                                                                  
			ON                                                                                                                      
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                          
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA                                                                           
			ON                                                                                                                      
				RISCHIOAREA.RETE = ATTUALE.RETE                                                                                 
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
					AND                                                                                                     
                   RISCHIOAREA.COD_AGGREG = (                                                                                                   
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                 
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                              
				   WHEN ATTUALE.ID_AREA = 'NA'                                                                                  
					THEN 'RISFIN|NA'                                                                                        
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                  
					THEN 'COMPLESSIVO|BF|CC'                                                                                
				   WHEN ATTUALE.ID_AREA = 'Self'                                                                                
						THEN 'COMPLESSIVO|BF|SELF'                                                                      
                   END                                                                                                                          
                   )                                                                                                                            
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                         
			ON                                                                                                                      
				RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                               
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                 
                                                                                                                                                
		--V                                                                                                                             
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                     
			ON                                                                                                                      
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                           
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                         
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                            
                                                                                                                                                
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN                                                                         
			ON                                                                                                                      
				RISCHIORISFIN.RETE = ATTUALE.RETE                                                                               
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'                                                                         
		--                                                                                                                              
		/*WHERE                                                                                                                         
			AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                          
			                                                                                                                        
		WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                               
                                                                                                                                        
------------------------------------------------------------------	                                                                        
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE)	TotControvalore                                                                         
into #temp                                                                                                                                      
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                     
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                        
group by rete,cod_fiscale                                                                                                                       

                                                                                                                                               
update s157                                                                                                                                     
set s157.PercentualeAttuale =CASE                                                                                                               
		WHEN vert.TotControvalore = 0 THEN 0                                                                                            
		ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                           
		END,                                                                                                                            
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                           
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),       
s157.DifferenzaPercentuale = CASE                                                                                                               
			WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                            
				ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)  
			END ,                                                                                                                   
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                              
s157.somma_controvalModello=vert.TotControvalore                                                                                                
			                                                                                                                        
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join #temp vert                                                                                                                           
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                
	                                                                                                                                        
                                                                     
                                                                                                                                                
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT
 into #TempContatori
 FROM C6MARTPERIODICO.PATRIMONIO_BF
union
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN  in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'
union
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ID_AREA = 'LIQ'
 
 
 
 select 
 totale1.rete,
 totale1.cod_fiscale,
 ISNULL(totale1.TOT,0) as TOT,
 ISNULL(totale2.TOT,0) as TOTCCSELF,
 ISNULL(totale3.TOT,0) as TOTSELF, 
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,
 ISNULL(totale5.TOT,0) as TOTLIQ 


 into #Contatori
 from 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOT') as totale1
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTCCSELF') as totale2
 on  totale1.rete=totale2.rete
 and totale1.cod_fiscale=totale2.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELF') as totale3
 on  totale1.rete=totale3.rete
 and totale1.cod_fiscale=totale3.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELFLIQ') as totale4
 on  totale1.rete=totale4.rete
 and totale1.cod_fiscale=totale4.cod_fiscale
  left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTLIQ') as totale5
 on  totale1.rete=totale5.rete
 and totale1.cod_fiscale=totale5.cod_fiscale



                                                                                                                                                
update s157                  
set  
var_needareaString= CASE
					WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.' 		
					ELSE var_needareaString		
					END,
var_tot =     CASE
					WHEN TOTCCSELF = TOT THEN 0.00
					ELSE var_tot
			  END ,	
var_totString=CASE 
					WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'
					WHEN (TOTSELF = TOT) THEN 'n.c.' 
					ELSE NULL 
				END    ,		
		
			
var_tot_pir =CASE 
					WHEN TOTCCSELF = TOT THEN 0
					ELSE var_tot_pir
END ,
var_tot_pirString=CASE
					WHEN var_tot_pirString <> 'n.c.' THEN
					CASE
					    WHEN TOTCCSELF = TOT THEN NULL
					    WHEN TOTSELF = TOT THEN 'n.c.'
						ELSE var_tot_pirString
			    	END
					ELSE var_tot_pirString
				END , 	
VAR_RISFINSTRING=CASE 
					WHEN VAR_RISFINSTRING <> 'n.c.' THEN
					CASE
						WHEN TOTCCSELF = TOT THEN NULL
						ELSE VAR_RISFINSTRING
					END
					ELSE VAR_RISFINSTRING
				 END 									                                                                                                               
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join ( select * from #Contatori )  contatori                                                                                                
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                
--and codicefiscale='00247580970'                                                                                                    
                                                                                                                                                
	                                                                                                                                        
	                                                                                                                                        
	Drop TABLE #temp                                                                                                                        
                                                                                                                                                
	DROP TABLE #PIRAMIDE_VERT                                                                                                               
                                                                                                                                                
	drop table #Contatori        
	
    drop table #TempContatori                                                                                                        
                                                                                                                                                
END                                                                                                                                             
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)

CREATE procedure [C6MartPeriodico].[Popola_S133_S157DatiPiramide_pre_selective]                                                                            
AS                                                                                                                                              
BEGIN                                                                                                                                           
	                                                                                                                                        
	SELECT                                                                                                                                  
		PIRAMIDE_MOD.RETE,                                                                                                              
		PIRAMIDE_MOD.COD_FISCALE, 	                                                                                                
		PIRAMIDE_MOD.ID_AREA,                                                                                                           
		PIRAMIDE_MOD.PERC_AREA,                                                                                                         
		PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                          
	INTO #PIRAMIDE_VERT_TEMP                                                                                                                     
	FROM                                                                                                                                    
		C6MartPeriodico.PIRAMIDE_MOD                                                                                                    
	LEFT JOIN (                                                                                                                             
		-- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                        
	    SELECT                                                                                                                              
			RETE,                                                                                                                   
			COD_FISCALE,                                                                                                            
--			LEFT(ID_AREA,3) AS ID_AREA,                                                                                             
		CASE                                                                                                                            
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END AS ID_AREA,                                                                                                         
			SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                        
		FROM                                                                                                                            
			C6MARTPERIODICO.PATRIMONIO_BF  PIRAMIDE_VERT                                                                            
			GROUP BY                                                                                                                
			RETE, COD_FISCALE, 		                                                                                        
			CASE                                                                                                                    
			WHEN ID_AREA = 'SELF'                                                                                                   
			THEN LEFT(ID_AREA,4)                                                                                                    
			ELSE LEFT(ID_AREA,3)                                                                                                    
			END                                                                                                                     
	) PIRAMIDE_VERT                                                                                                                         
		ON                                                                                                                              
			PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                            
						and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                        
			and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                              
	WHERE                                                                                                                                   
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                  
		(PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF','INV')                                                            
			--OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL) /* 20161202 nome_progetto sempre diverso da null */
		)  
		                                             
/* 20161214 - aggiunto aggragazione percentuali per area */
	SELECT                                                                                                                                  
		RETE,                                                                                                              
		COD_FISCALE, 	                                                                                                
		ID_AREA,                                                                                                           
		sum(PERC_AREA) as PERC_AREA,                                                                                                         
		CONTROVALORE                                                                                          
	INTO #PIRAMIDE_VERT                                                                                                          
	FROM                                                                                                                                    
		#PIRAMIDE_VERT_TEMP
	group by rete,cod_fiscale, id_area, CONTROVALORE		                                                                                                                                
                                                                                                                                                
                                                                                                                                        
		                                                                                                                                
truncate table 	c6martperiodico.TB_S133_S157DatiPiramide			                                                        
insert into c6martperiodico.TB_S133_S157DatiPiramide                                                                                     
		SELECT    distinct  /* 20161202 */                                                                                                                      
		ATTUALE.RETE,                                                                                                                   
		ATTUALE.COD_FISCALE,                                                                                                            
			AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                       
			AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                     
			ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                      
			ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                      
			ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                         
			ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                        
			ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                
			ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                          
			0 differenzapercentuale,                                                                                                
			ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,			                                                
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                      
--------------------------------------------------------------                                                                                  
--INIZIO INTERVENTI OMNIA QUIII				                                                                                        
				                                                                                                                
				--WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                   
--FINE INTERVENTI OMNIA QUIII                                                                                                                   
--------------------------------------------------------------											
				ELSE NULL                                                                                                       
			END AS var_needareaString,                                                                                              
			ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                  
				WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                      
				ELSE NULL                                                                                                       
			END AS copertura_needareaString,                                                                                        
			0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                        
			0 somma_controvalAttuale,                                                                                               
			0 somma_controvalModello,                                                                                               
			0.00 AS somma_percentualeAttuale,                                                                                       
			0.00 AS somma_percentualeModello,                                                                                       
			RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                     
				null var_totString,                                                                                             
				RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                     
				CASE                                                                                                            
					--V SOLO CC -> VAR = 0	                                                                                
                                                                                                                                                
					WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'
					WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                          
					ELSE NULL                                                                                               
					                                                                                                        
				END AS var_tot_pirString,         
			                                                                                                                        
			                                                                                                                        
			ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                     
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                
				WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_totString,                                                                                             
			--V                                                                                                                     
			ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                             
			CASE                                                                                                                    
				WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                            
				WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                
			END AS copertura_tot_pirString,                                                                                         
			--                                                                                                                      
			--V                                                                                                                     
			RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                               
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS VAR_RISFINSTRING,                                                                                                
			                                                                                                                        
			ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                  
			CASE                                                                                                                    
				WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                
				WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                    
				ELSE NULL                                                                                                       
			END AS copertura_risfinString,                                                                                          
			                                                                                                                        
                                                                                                                                                
			AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                 
                                                                                                                                                
		FROM                                                                                                                            
			C6MartPeriodico.AREA_BISOGNO                                                                                            
		LEFT JOIN                                                                                                                       
			#PIRAMIDE_VERT ATTUALE                                                                                                  
			ON                                                                                                                      
				ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                          
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA                                                                           
			ON                                                                                                                      
				RISCHIOAREA.RETE = ATTUALE.RETE                                                                                 
				AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
					AND                                                                                                     
                   RISCHIOAREA.COD_AGGREG = (                                                                                                   
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                 
					THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                              
				   WHEN ATTUALE.ID_AREA = 'NA'                                                                                  
					THEN 'RISFIN|NA'                                                                                        
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                  
					THEN 'COMPLESSIVO|BF|CC'                                                                                
				   WHEN ATTUALE.ID_AREA = 'Self'                                                                                
						THEN 'COMPLESSIVO|BF|SELF'                                                                      
                   END                                                                                                                          
                   )                                                                                                                            
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                         
			ON                                                                                                                      
				RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                               
				AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                 
                                                                                                                                                
		--V                                                                                                                             
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                     
			ON                                                                                                                      
				RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                           
				AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                         
				AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                            
                                                                                                                                                
		LEFT JOIN                                                                                                                       
			C6MartPeriodico.RISCHIO_AGGREGATO RISCHIORISFIN                                                                         
			ON                                                                                                                      
				RISCHIORISFIN.RETE = ATTUALE.RETE                                                                               
				AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                             
				AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'                                                                         
		--                                                                                                                              
		/*WHERE                                                                                                                         
			AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                          
			                                                                                                                        
		WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                               
                                                                                                                                        
------------------------------------------------------------------	                                                                        
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE)	TotControvalore                                                                         
into #temp                                                                                                                                      
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                     
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                        
group by rete,cod_fiscale                                                                                                                       

                                                                                                                                               
update s157                                                                                                                                     
set s157.PercentualeAttuale =CASE                                                                                                               
		WHEN vert.TotControvalore = 0 THEN 0                                                                                            
		ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                           
		END,                                                                                                                            
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                           
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),       
s157.DifferenzaPercentuale = CASE                                                                                                               
			WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                            
				ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)  
			END ,                                                                                                                   
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                              
s157.somma_controvalModello=vert.TotControvalore                                                                                                
			                                                                                                                        
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join #temp vert                                                                                                                           
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                
	                                                                                                                                        
                                                                     
                                                                                                                                                
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT
 into #TempContatori
 FROM C6MARTPERIODICO.PATRIMONIO_BF
union
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN  in ('EURO00000009','EURO10000007')
union
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'
union
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ
 FROM C6MARTPERIODICO.PATRIMONIO_BF
 where ID_AREA = 'LIQ'
 
 
 
 select 
 totale1.rete,
 totale1.cod_fiscale,
 ISNULL(totale1.TOT,0) as TOT,
 ISNULL(totale2.TOT,0) as TOTCCSELF,
 ISNULL(totale3.TOT,0) as TOTSELF, 
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,
 ISNULL(totale5.TOT,0) as TOTLIQ 


 into #Contatori
 from 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOT') as totale1
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTCCSELF') as totale2
 on  totale1.rete=totale2.rete
 and totale1.cod_fiscale=totale2.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELF') as totale3
 on  totale1.rete=totale3.rete
 and totale1.cod_fiscale=totale3.cod_fiscale
 left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTSELFLIQ') as totale4
 on  totale1.rete=totale4.rete
 and totale1.cod_fiscale=totale4.cod_fiscale
  left join 
 (select rete,cod_fiscale,TOT from #TempContatori
 where tipo = 'TOTLIQ') as totale5
 on  totale1.rete=totale5.rete
 and totale1.cod_fiscale=totale5.cod_fiscale



                                                                                                                                                
update s157                  
set  
var_needareaString= CASE
					WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.' 		
					ELSE var_needareaString		
					END,
var_tot =     CASE
					WHEN TOTCCSELF = TOT THEN 0.00
					ELSE var_tot
			  END ,	
var_totString=CASE 
					WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'
					WHEN (TOTSELF = TOT) THEN 'n.c.' 
					ELSE NULL 
				END    ,		
		
			
var_tot_pir =CASE 
					WHEN TOTCCSELF = TOT THEN 0
					ELSE var_tot_pir
END ,
var_tot_pirString=CASE
					WHEN var_tot_pirString <> 'n.c.' THEN
					CASE
					    WHEN TOTCCSELF = TOT THEN NULL
					    WHEN TOTSELF = TOT THEN 'n.c.'
						ELSE var_tot_pirString
			    	END
					ELSE var_tot_pirString
				END , 	
VAR_RISFINSTRING=CASE 
					WHEN VAR_RISFINSTRING <> 'n.c.' THEN
					CASE
						WHEN TOTCCSELF = TOT THEN NULL
						ELSE VAR_RISFINSTRING
					END
					ELSE VAR_RISFINSTRING
				 END 									                                                                                                               
from c6martperiodico.TB_S133_S157DatiPiramide s157                                                                                              
inner join ( select * from #Contatori )  contatori                                                                                                
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                
--and codicefiscale='00247580970'                                                                                                    
                                                                                                                                                
	                                                                                                                                        
	                                                                                                                                        
	Drop TABLE #temp                                                                                                                        
                                                                                                                                                
	DROP TABLE #PIRAMIDE_VERT                                                                                                               
                                                                                                                                                
	drop table #Contatori        
	
    drop table #TempContatori                                                                                                        
                                                                                                                                                
END                                                                                                                                             
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                
                                                                                                                                                








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
CREATE procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   
  
truncate table c6martperiodico.TB_S148DistribuzioneAssetClass  
INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass  
--SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,  
--  CASE @Rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Banca Fideuram'   
--  END AS Banca,  
  select       rete,  
        cod_fiscale,  
        CASE rete  
   WHEN 'S' THEN 'Sanpaolo Invest'  
   WHEN 'F' THEN 'Fideuram'  
   ELSE 'IW Private Investments'
  END AS Banca,  
  ORDINAMENTO,  
  AssetClassId,  
  AssetClassName,  
  SUM(Controvalore) As Controvalore,  
        --SUM(CONTROVALORE) / Totale As Percentuale,  
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
        Totale  
FROM  
(  
  
  
SELECT  rete,  
        cod_fiscale,  
  ASSETCLASS.ORDINAMENTO,  
  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  
 FROM (  
          SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  
          FROM  
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
     WHERE  
--inizio interventi OMNIA  
--      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
--fine interventi OMNIA        
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
      --AND PATR_BF.COD_FISCALE= @CodiceFiscale  
                       -- AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
     WHERE  
      --ASUL.RETE =@Rete  
      --AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
    ) val  
           where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  
  
 UNION ALL  
 /* nuovo */  
  SELECT   
          VAL.RETE,  
          VAL.COD_FISCALE,  
          SUM(CONTROVALORE) AS CONTROVALORE,  
          ID_ASSETCLASS  
          FROM  
  (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
     SELECT  
      PATR_BF.RETE,  
      PATR_BF.COD_FISCALE,  
      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
     WHERE  
      PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')  
      AND ASSETPERC.LIVELLO = 2  
      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
      --AND PATR_BF.COD_FISCALE=@CodiceFiscale  
                      --  AND PATR_BF.RETE= @Rete  
--       
    UNION ALL  
    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
    SELECT      PATR_BF.RETE,  
       PATR_BF.COD_FISCALE,  
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
      AND ASUL.COD_ISIN_SOTT = ''  
      AND ASSETPERC.LIVELLO = 2  
     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
      AND ASUL.RETE=PATR_BF.RETE  
      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
     WHERE  
     --ASUL.RETE = @Rete  
     --AND ASUL.COD_FISCALE = @CodiceFiscale  
      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
     UNION ALL  
     --DETTAGLIO ASUL  SKANDIA  
     SELECT     ASUL.RETE,  
       ASUL.COD_FISCALE,  
       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
       ASSETPERC.ID_ASSETCLASS  
     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
      AND ASSETPERC.LIVELLO = 2  
     WHERE  
 --     ASUL.RETE =@Rete  
 --     AND ASUL.COD_FISCALE = @CodiceFiscale  
      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
       ASUL.tipo_Prodotto = 'ASU2'  
      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
    ) val  
           where Controvalore >0  
   GROUP BY   
   VAL.RETE,  
   val.COD_FISCALE,  
   VAL.ID_ASSETCLASS  
  
  
    )  
  
 VALORIASSET  
 INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS  
  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
-- WHERE  
--  VALORIASSET.RETE =@Rete  
--  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
) a  
Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale  
 ORDER BY ORDINAMENTO  
  
  
END  
  
  
  













--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]    Script Date: 10/02/2022 16:42:22 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
  
  
  
----[C6martPeriodico].[Popola_S148DistribuzioneAssetClass] 'F','LRNRMR33D51C166I'  
--ALTER procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass]  
-- -- Add the parameters for the stored procedure here  
---- @Rete char(1),   
---- @CodiceFiscale varchar(16)  
--AS  
--BEGIN   
  
--truncate table c6martperiodico.TB_S148DistribuzioneAssetClass  
--INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass  
----SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,  
----  CASE @Rete  
----   WHEN 'S' THEN 'Sanpaolo Invest'  
----   ELSE 'Banca Fideuram'   
----  END AS Banca,  
--  select       rete,  
--        cod_fiscale,  
--        CASE rete  
--   WHEN 'S' THEN 'Sanpaolo Invest'  
--   ELSE 'Fideuram'   
--  END AS Banca,  
--  ORDINAMENTO,  
--  AssetClassId,  
--  AssetClassName,  
--  SUM(Controvalore) As Controvalore,  
--        --SUM(CONTROVALORE) / Totale As Percentuale,  
--        SUM(CONTROVALORE) / Totale * 100 As Percentuale,  
--        Totale  
--FROM  
--(  
  
  
--SELECT  rete,  
--        cod_fiscale,  
--  ASSETCLASS.ORDINAMENTO,  
--  VALORIASSET.ID_ASSETCLASS AS AssetClassId,  
--  ASSETCLASS.DESCRIZIONE AS AssetClassName,  
--  CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,  
--  --ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,  
--  cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale  
-- FROM (  
--          SELECT   
--          VAL.RETE,  
--          VAL.COD_FISCALE,  
--          SUM(CONTROVALORE) AS CONTROVALORE,  
--          ID_ASSETCLASS  
--          FROM  
--          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
--     SELECT  
--      PATR_BF.RETE,  
--      PATR_BF.COD_FISCALE,  
--      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
--      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
--     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
--      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
--       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--     WHERE  
----inizio interventi OMNIA  
----      PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')  
--      PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')  
----fine interventi OMNIA        
--      AND ASSETPERC.LIVELLO = 2  
--      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
--      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
--      --AND PATR_BF.COD_FISCALE= @CodiceFiscale  
--                       -- AND PATR_BF.RETE= @Rete  
----       
--    UNION ALL  
--    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
--    SELECT      PATR_BF.RETE,  
--       PATR_BF.COD_FISCALE,  
--                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
--      AND ASUL.COD_ISIN_SOTT = ''  
--      AND ASSETPERC.LIVELLO = 2  
--     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
--      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
--      AND ASUL.RETE=PATR_BF.RETE  
--      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
--     WHERE  
--     --ASUL.RETE = @Rete  
--     --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
--     UNION ALL  
--     --DETTAGLIO ASUL  SKANDIA  
--     SELECT     ASUL.RETE,  
--       ASUL.COD_FISCALE,  
--       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
--     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
--      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
--      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
--      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
--      AND ASSETPERC.LIVELLO = 2  
--     WHERE  
--      --ASUL.RETE =@Rete  
--      --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
--       ASUL.tipo_Prodotto = 'ASU2'  
--      AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')  
--    ) val  
--           where Controvalore >0  
--   GROUP BY   
--   VAL.RETE,  
--   val.COD_FISCALE,  
--   VAL.ID_ASSETCLASS  
  
-- UNION ALL  
-- /* nuovo */  
--  SELECT   
--          VAL.RETE,  
--          VAL.COD_FISCALE,  
--          SUM(CONTROVALORE) AS CONTROVALORE,  
--          ID_ASSETCLASS  
--          FROM  
--  (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare  
--     SELECT  
--      PATR_BF.RETE,  
--      PATR_BF.COD_FISCALE,  
--      (PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,  
--      ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS  
--     FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
--      INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC  
--       ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
--     WHERE  
--      PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')  
--      AND ASSETPERC.LIVELLO = 2  
--      --AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
--      AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')  
--      --AND PATR_BF.COD_FISCALE=@CodiceFiscale  
--                      --  AND PATR_BF.RETE= @Rete  
----       
--    UNION ALL  
--    ---DETTAGLIO ASUL SENZA  GLI SKANDIA  
--    SELECT      PATR_BF.RETE,  
--       PATR_BF.COD_FISCALE,  
--                            ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL  
--     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)  
--      AND ASUL.COD_ISIN_SOTT = ''  
--      AND ASSETPERC.LIVELLO = 2  
--     INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF  
--      ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE  
--      AND ASUL.RETE=PATR_BF.RETE  
--      AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO  
--     WHERE  
--     --ASUL.RETE = @Rete  
--     --AND ASUL.COD_FISCALE = @CodiceFiscale  
--      PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')  
--     UNION ALL  
--     --DETTAGLIO ASUL  SKANDIA  
--     SELECT     ASUL.RETE,  
--       ASUL.COD_FISCALE,  
--       ASUL.CTV*ASSETPERC.PERC as Controvalore,  
--       ASSETPERC.ID_ASSETCLASS  
--     FROM C6MartPeriodico.PATRIMONIO_BF ASUL  
--     INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC  
--      ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)  
--      AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)  
--      AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)  
--      AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
--      AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO  
--      AND ASSETPERC.LIVELLO = 2  
--     WHERE  
-- --     ASUL.RETE =@Rete  
-- --     AND ASUL.COD_FISCALE = @CodiceFiscale  
--      --V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2  
--       ASUL.tipo_Prodotto = 'ASU2'  
--      AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')  
--    ) val  
--           where Controvalore >0  
--   GROUP BY   
--   VAL.RETE,  
--   val.COD_FISCALE,  
--   VAL.ID_ASSETCLASS  
  
  
--    )  
  
-- VALORIASSET  
-- INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS  
--  ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS  
---- WHERE  
----  VALORIASSET.RETE =@Rete  
----  AND VALORIASSET.COD_FISCALE = @CodiceFiscale  
--) a  
--Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale  
-- ORDER BY ORDINAMENTO  
  
  
--END  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--[C6martPeriodico].[Popola_S148DistribuzioneAssetClass_pre_selective] 'F','LRNRMR33D51C166I'
CREATE procedure [C6MartPeriodico].[Popola_S148DistribuzioneAssetClass_pre_selective]
	-- Add the parameters for the stored procedure here
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
AS
BEGIN 

truncate table c6martperiodico.TB_S148DistribuzioneAssetClass
INSERT INTO c6martperiodico.TB_S148DistribuzioneAssetClass
--SELECT  @Rete as Rete, @CodiceFiscale as CodiceFiscale,
--		CASE @Rete
--			WHEN 'S' THEN 'Sanpaolo Invest'
--			ELSE 'Banca Fideuram' 
--		END AS Banca,
  select       rete,
        cod_fiscale,
        CASE rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ORDINAMENTO,
		AssetClassId,
		AssetClassName,
		SUM(Controvalore) As Controvalore,
        --SUM(CONTROVALORE) / Totale As Percentuale,
        SUM(CONTROVALORE) / Totale * 100 As Percentuale,
        Totale
FROM
(


SELECT  rete,
        cod_fiscale,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId,
		ASSETCLASS.DESCRIZIONE AS AssetClassName,
		CAST(VALORIASSET.CONTROVALORE AS DECIMAL(15,2)) AS Controvalore,
		--ROUND(VALORIASSET.CONTROVALORE / SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'Totale') * 100, 2) AS Percentuale,
		cast(ROUND(SUM(Controvalore) OVER (PARTITION BY 'Totale',rete,cod_fiscale),2)  as decimal(19,5))  AS Totale
	FROM (
          SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
          (--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
--inizio interventi OMNIA
--						PATR_BF.ID_AREA NOT IN ('Cc','Pre1','Pre2','Pre')
						PATR_BF.ID_AREA NOT IN ('SELF','Cc','Pre1','Pre2','Pre')
--fine interventi OMNIA						
						AND ASSETPERC.LIVELLO = 2
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						--AND PATR_BF.COD_FISCALE= @CodiceFiscale
                       -- AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 2
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					--ASUL.RETE = @Rete
					--AND ASUL.COD_FISCALE = @CodiceFiscale
					 PATR_BF.ID_AREA NOT IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
							ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
						AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
						AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
						AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
						AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
						AND ASSETPERC.LIVELLO = 2
					WHERE
						--ASUL.RETE =@Rete
						--AND ASUL.COD_FISCALE = @CodiceFiscale
						--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
						 ASUL.tipo_Prodotto = 'ASU2'
						AND ASUL.ID_AREA NOT IN ('Pre1','Pre2','Pre')
		  ) val
           where Controvalore >0
			GROUP BY 
			VAL.RETE,
			val.COD_FISCALE,
			VAL.ID_ASSETCLASS

	UNION ALL
	/* nuovo */
		SELECT 
          VAL.RETE,
          VAL.COD_FISCALE,
          SUM(CONTROVALORE) AS CONTROVALORE,
          ID_ASSETCLASS
          FROM
		(--V Escludo gli ASU2 che essendo skandia vanno gestiti in modo particolare
					SELECT
						PATR_BF.RETE,
						PATR_BF.COD_FISCALE,
						(PATR_BF.CTV * ISNULL(ASSETPERC.PERC, 1)) AS CONTROVALORE,
						ISNULL(ASSETPERC.ID_ASSETCLASS, 'AL') AS ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
						INNER JOIN C6MartPeriodico.ASSET_PERC AS ASSETPERC
							ON PATR_BF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
					WHERE
						PATR_BF.ID_AREA  IN ('Pre1','Pre2','Pre')
						AND ASSETPERC.LIVELLO = 2
						--AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
						AND PATR_BF.TIPO_PRODOTTO NOT IN ('ASUL','ASU2')
						--AND PATR_BF.COD_FISCALE=@CodiceFiscale
                      --  AND PATR_BF.RETE= @Rete
--			  
				UNION ALL
				---DETTAGLIO ASUL SENZA  GLI SKANDIA
				SELECT      PATR_BF.RETE,
							PATR_BF.COD_FISCALE,
                            ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_PRODOTTO = rtrim(ASUL.COD_PRODOTTO)
						AND ASUL.COD_ISIN_SOTT = ''
						AND ASSETPERC.LIVELLO = 2
					INNER JOIN C6MartPeriodico.PATRIMONIO_BF PATR_BF
						ON ASUL.COD_FISCALE=PATR_BF.COD_fISCALE
						AND ASUL.RETE=PATR_BF.RETE
						AND ASUL.id_contratto=PATR_BF.ID_CONTRATTO
					WHERE
					--ASUL.RETE = @Rete
					--AND ASUL.COD_FISCALE = @CodiceFiscale
					 PATR_BF.ID_AREA IN ('Pre1','Pre2','Pre')
				 UNION ALL
				 --DETTAGLIO ASUL  SKANDIA
				 SELECT     ASUL.RETE,
							ASUL.COD_FISCALE,
							ASUL.CTV*ASSETPERC.PERC as Controvalore,
							ASSETPERC.ID_ASSETCLASS
					FROM C6MartPeriodico.PATRIMONIO_BF ASUL
					INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
						ON ASSETPERC.COD_ISIN = rtrim(ASUL.ISIN)
						AND ASSETPERC.COD_MAF = rtrim(ASUL.COD_MAF)
						AND ASSETPERC.COD_INTERNO = rtrim(ASUL.COD_INTERNO)
						AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
						AND rtrim(ASSETPERC.COD_PRODOTTO) = ASUL.COD_PRODOTTO
						AND ASSETPERC.LIVELLO = 2
					WHERE
	--					ASUL.RETE =@Rete
	--					AND ASUL.COD_FISCALE = @CodiceFiscale
						--V gli SKANDIA sono a livello di patrimonio_bf con tipo prod ASU2
						 ASUL.tipo_Prodotto = 'ASU2'
						AND ASUL.ID_AREA  IN ('Pre1','Pre2','Pre')
		  ) val
           where Controvalore >0
			GROUP BY 
			VAL.RETE,
			val.COD_FISCALE,
			VAL.ID_ASSETCLASS


    )

 VALORIASSET
	INNER JOIN C6MartPeriodico.ASSETCLASS AS ASSETCLASS
		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
--	WHERE
--		VALORIASSET.RETE =@Rete
--		AND VALORIASSET.COD_FISCALE = @CodiceFiscale
) a
Group By rete,cod_fiscale,ORDINAMENTO, AssetClassId, AssetClassName, Totale
	ORDER BY ORDINAMENTO


END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S179EmittentiConcentrazioneAlta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione S179EmittentiConcentrazioneAlta>  
-- =============================================  
  
CREATE     procedure [C6MartPeriodico].[Popola_S179EmittentiConcentrazioneAlta]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)   
--print @DataFineTrim

truncate table C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta  

INSERT INTO C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta     
SELECT 
      ce.[RETE]
      ,
	  case
	 when(isnull(ltrim(rtrim(ce.codman)),'') <> '') 
			then 'FF@'+ce.codman
	 when (isnull(ce.codfis,'') <> '')
			then ce.codfis
	 else
			ce.codfis
	 end as Codfis
      ,1 as Ordine
      ,[DESCEMI] as Emittente
	  ,ce.totctv as ctv
	  ,1 as flagAdeguatezza
	  ,ce.SOGLIACTV_CONC as Franchigia
	  ,ce.conc as percConcentrazione
	  ,ce.rating as Rating
	  ,ce.limite_conc as SogliaConcenrazione

FROM   [C6StagingPeriodico].[WSEICE2] ce

inner join [C6MartPeriodico].[WSEIAN2] an 
     on ce.rete = an.rete and
	    ce.codfis= an.codfis
		-- 26/6/2018 - Certificazione campione - Segnalazione Napolitano - Creazione riga duplicata nella tabella emittenti a concentrazione alta
		and an.dttrim = ce.dttrim
		-- 26/6/2018 - Fine 
left join C6MartPeriodico.wseirpf rpf
	 on ce.RETE=RPF.Rete and
	    ce.CODFIS=RPF.CODFIS
 
  WHERE 1=1
      
	--  and ce.DTTRIM =  @DataFineTrim
	  and an.concemi = 'N' --estraggo solo quelli che non sono adeguati per concentrazione emittenti sulla wseian
	  and ce.flgconc = '0' -- e solo gli emittenti non adeguati (perché sulla wseice arrivano tutti gli emittenti, adeguati e non) prima era N
	  and  ISNULL( RPF.FLGPROF,'A')<>'P'
  

  
  --select * from C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta  
  
END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S179EmittentiConcentrazioneAlta_20180626]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione S179EmittentiConcentrazioneAlta>  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[Popola_S179EmittentiConcentrazioneAlta_20180626]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)    

truncate table C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta  

INSERT INTO C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta     
SELECT 
      ce.[RETE]
      ,
	  case
	 when(isnull(ltrim(rtrim(ce.codman)),'') <> '') 
			then 'FF@'+ce.codman
	 when (isnull(ce.codfis,'') <> '')
			then ce.codfis
	 else
			ce.codfis
	 end as Codfis
      ,1 as Ordine
      ,[DESCEMI]
	  ,
	  case 
		  when upper(asset) = 'O' then [TOTCTV]
		  else 0
	  end as ObbligazioniControvalore
	  ,
	  case 
		  when upper(asset) = 'O' then [CONC]
		  else 0
	  end as ObbligazioniConcentrazione
	  ,
	  case 
		  when upper(asset) = 'A' then [TOTCTV]
		  else 0
	  end as AzioniControvalore
      ,
	  case 
		  when upper(asset) = 'A' then [CONC]
		  else 0
	  end as AzioniConcentrazione
	  

FROM   [C6StagingPeriodico].[WSEICE] ce

inner join [C6StagingPeriodico].[WSEIAN] an 
     on ce.rete = an.rete and
	    ce.codfis= an.codfis
 
  WHERE 1=1
      
	  and ce.DTTRIM =  @DataFineTrim
	  and an.concemi = 'N' --estraggo solo quelli che non sono adeguati per concentrazione emittenti sulla wseian
	  and ce.flgconc = 'N' -- e solo gli emittenti non adeguati (perché sulla wseice arrivano tutti gli emittenti, adeguati e non)
  
  
  
  
  
END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S179EmittentiConcentrazioneAlta_BKP_20231115_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione S179EmittentiConcentrazioneAlta>  
-- =============================================  
  
CREATE     procedure [C6MartPeriodico].[Popola_S179EmittentiConcentrazioneAlta_BKP_20231115_PRE_RAFFORZAMENTO]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)   
--print @DataFineTrim

truncate table C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta  

INSERT INTO C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta     
SELECT 
      ce.[RETE]
      ,
	  case
	 when(isnull(ltrim(rtrim(ce.codman)),'') <> '') 
			then 'FF@'+ce.codman
	 when (isnull(ce.codfis,'') <> '')
			then ce.codfis
	 else
			ce.codfis
	 end as Codfis
      ,1 as Ordine
      ,[DESCEMI] as Emittente
	  ,ce.totctv as ctv
	  ,1 as flagAdeguatezza
	  ,ce.SOGLIACTV_CONC as Franchigia
	  ,ce.conc as percConcentrazione
	  ,ce.rating as Rating
	  ,ce.limite_conc as SogliaConcenrazione

FROM   [C6StagingPeriodico].[WSEICE2] ce

inner join [C6MartPeriodico].[WSEIAN2] an 
     on ce.rete = an.rete and
	    ce.codfis= an.codfis
		-- 26/6/2018 - Certificazione campione - Segnalazione Napolitano - Creazione riga duplicata nella tabella emittenti a concentrazione alta
		and an.dttrim = ce.dttrim
		-- 26/6/2018 - Fine 
 
  WHERE 1=1
      
	--  and ce.DTTRIM =  @DataFineTrim
	  and an.concemi = 'N' --estraggo solo quelli che non sono adeguati per concentrazione emittenti sulla wseian
	  and ce.flgconc = '0' -- e solo gli emittenti non adeguati (perché sulla wseice arrivano tutti gli emittenti, adeguati e non) prima era N
  

  
  --select * from C6MartPeriodico.TB_S179EmittentiConcentrazioneAlta  
  
END  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S25Anagrafica]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
  
  
-- =============================================  
-- Author:  Gentilezza Marco  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[PL_S25Anagrafica] 'F', 'CSCGPP34A03L050L'  
CREATE procedure [C6MartPeriodico].[Popola_S25Anagrafica]  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN    
  
truncate table c6martperiodico.TB_S25Anagrafica  
  insert into c6martperiodico.TB_S25Anagrafica  
 SELECT         
  ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente,   
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita,   
  ANAG_CLIENTI.ETA,  
  ANAG_CLIENTI_PREV.PROFESSIONE AS Professione,   
  ANAG_CLIENTI.STATO_CIVILE AS StatoCivile,   
  CASE ANAG_CLIENTI.NUM_COMPONENTI  
   WHEN 0 THEN NULL  
   ELSE --CASE  
    --WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)  
    --ELSE   
    CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI  
     --WHEN 0 THEN '(0   
     WHEN 1 THEN '(1 figlio)'  
     ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'  
      
     
   END  
  END AS NucleoFamiliare,  
          
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA   
--  + ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza,   
  
--  REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]  
--  + ' (' + CONTRATTOSEI.PROV + ')' AS Residenza,   
          
  --PRIMA DELLA MODIFICA DI AULETTA  
  --V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]  
  --V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza,   
    
  --V Indirizzo Secondo AULETTA  
  CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL   
   THEN  
   REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') + ' ' else '' end   + CONTRATTOSEI.[Citta]  
   + ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end  + ')','()','')   
   ELSE  
   REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') + ' ' else '' end    + CONTRATTOSEI.[Citta]  
   + ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end + ')','()','')  
  END AS Residenza,  
  --  
  ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale,   
  ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB,   
  ANAG_CLIENTI.RETE AS CodiceRete,   
  CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,  
  NULL AS StatoContratto,   
  dbo.ToShortDateString(CONTRATTOSEI.DATA_SOTT) AS DataSottoscrizione,   
  dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,  
  CONTRATTOSEI.FASCIA_CPP AS FasciaCPP,   
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail,   
  DATI_REPORT.FLAG_REPORT AS ProduzioneReport,   
    
  --ANAG_CLIENTI.INDIRIZZO AS Indirizzo,   
  CONTRATTOSEI.[Indirizzo] AS Indirizzo,  
    
        --ANAG_CLIENTI.CAP AS CAP,   
       -- CONTRATTOSEI.[CAP] AS CAP,  
        CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA'   
           then isnull(CONTRATTOSEI.CAP,'')   
           else ''  
        end as CAP,  
          
        CONTRATTOSEI.[Citta] AS Citta,  
  --ANAG_CLIENTI.LOCALITA AS Citta,   
    
  --CONTRATTOSEI.[Prov] AS Provincia,  
  CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA'   
           then isnull(CONTRATTOSEI.[Prov],'')   
           else CONTRATTOSEI.[NAZIONE]  
        end as Provincia,  
    
  --ANAG_CLIENTI.PROVINCIA AS Provincia,  
    
  CONTRATTOSEI.[Nazione] AS  Nazione,  
  --ANAG_CLIENTI.NAZIONE AS Nazione  
  
  CONTRATTOSEI.[Presso] AS PRESSO  
 FROM          
  [C6MartPeriodico].CONTRATTOSEI -- TABELLA BASE  
 INNER JOIN   
  C6MARTPERIODICO.ANAG_CLIENTI   
  ON   
   ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE  
   AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE  
 LEFT OUTER JOIN   
  C6MARTPERIODICO.ANAG_PROMOTORI   
  ON   
   ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE  
   AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE  
 LEFT JOIN   
  C6MARTPERIODICO.ANAG_CLIENTI_PREV   
  ON   
   ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE  
   AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE  
 LEFT JOIN  
  C6MARTPERIODICO.DATI_REPORT   
  ON   
   ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE  
   AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE  
 --WHERE 1 = 1  
 -- AND ANAG_CLIENTI.RETE = @RETE  
 -- AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE  
     
  
END  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S25Anagrafica_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		Gentilezza Marco
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[PL_S25Anagrafica] 'F', 'CSCGPP34A03L050L'
CREATE procedure [C6MartPeriodico].[Popola_S25Anagrafica_pre_selective]
--	@Rete char(1), 
--	@CodiceFiscale varchar(16)
AS
BEGIN		

truncate table c6martperiodico.TB_S25Anagrafica
  insert into c6martperiodico.TB_S25Anagrafica
	SELECT     		
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS Cliente, 
        dbo.ToShortDateString(ANAG_CLIENTI.DATA_NASCITA) AS DatadiNascita, 
		ANAG_CLIENTI.ETA,
		ANAG_CLIENTI_PREV.PROFESSIONE AS Professione, 
		ANAG_CLIENTI.STATO_CIVILE AS StatoCivile, 
		CASE ANAG_CLIENTI.NUM_COMPONENTI
			WHEN 0 THEN NULL
			ELSE --CASE
				--WHEN COALESCE(ANAG_CLIENTI.NUM_FIGLI, 0) = 0 THEN CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR)
				--ELSE 
				CAST(ANAG_CLIENTI.NUM_COMPONENTI AS VARCHAR) + ' ' + CASE ANAG_CLIENTI.NUM_FIGLI
					--WHEN 0 THEN '(0 
					WHEN 1 THEN '(1 figlio)'
					ELSE '(' + CAST(ANAG_CLIENTI.NUM_FIGLI AS VARCHAR) + ' figli)'
				
			
			END
		END AS NucleoFamiliare,
        
--        ANAG_CLIENTI.INDIRIZZO + ' - ' + ANAG_CLIENTI.CAP + ' - ' + ANAG_CLIENTI.LOCALITA 
--		+ ' - (' + ANAG_CLIENTI.PROVINCIA + ')' AS Residenza, 

--		REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CONTRATTOSEI.CAP + ' ' + CONTRATTOSEI.[Citta]
--		+ ' (' + CONTRATTOSEI.PROV + ')' AS Residenza, 
        
		--PRIMA DELLA MODIFICA DI AULETTA
		--V REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + isnull(CONTRATTOSEI.CAP,'') + ' ' + CONTRATTOSEI.[Citta]
		--V+ ' (' + isnull(CONTRATTOSEI.PROV,'') + ')','()','') AS Residenza, 
		
		--V Indirizzo Secondo AULETTA
		CASE WHEN CONTRATTOSEI.[PRESSO] IS NULL 
			THEN
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') + ' ' else '' end   + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end  + ')','()','') 
			ELSE
			REPLACE (REPLACE(CONTRATTOSEI.INDIRIZZO,',','') + ' C/O ' + CONTRATTOSEI.[PRESSO] + ', ' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.CAP,'') + ' ' else '' end    + CONTRATTOSEI.[Citta]
			+ ' (' + CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' then isnull(CONTRATTOSEI.PROV,'') else CONTRATTOSEI.[NAZIONE] end + ')','()','')
		END AS Residenza,
		--
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale, 
		ANAG_PROMOTORI.ID_PROMOTORE AS CodicePB, 
		ANAG_CLIENTI.RETE AS CodiceRete, 
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		NULL AS StatoContratto, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_SOTT) AS DataSottoscrizione, 
		dbo.ToShortDateString(CONTRATTOSEI.DATA_PERF) AS DataPerfezionamento,
		CONTRATTOSEI.FASCIA_CPP AS FasciaCPP, 
        ANAG_CLIENTI.E_MAIL AS IndirizzoEmail, 
		DATI_REPORT.FLAG_REPORT AS ProduzioneReport, 
		
		--ANAG_CLIENTI.INDIRIZZO AS Indirizzo, 
		CONTRATTOSEI.[Indirizzo] AS Indirizzo,
		
        --ANAG_CLIENTI.CAP AS CAP, 
       -- CONTRATTOSEI.[CAP] AS CAP,
        CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' 
           then isnull(CONTRATTOSEI.CAP,'') 
           else ''
        end as CAP,
        
        CONTRATTOSEI.[Citta] AS Citta,
		--ANAG_CLIENTI.LOCALITA AS Citta, 
		
		--CONTRATTOSEI.[Prov] AS Provincia,
		CASE WHEN CONTRATTOSEI.[NAZIONE] ='ITALIA' 
           then isnull(CONTRATTOSEI.[Prov],'') 
           else CONTRATTOSEI.[NAZIONE]
        end as Provincia,
		
		--ANAG_CLIENTI.PROVINCIA AS Provincia,
		
		CONTRATTOSEI.[Nazione] AS  Nazione,
		--ANAG_CLIENTI.NAZIONE AS	Nazione

		CONTRATTOSEI.[Presso] AS PRESSO
	FROM        
		[C6MartPeriodico].CONTRATTOSEI -- TABELLA BASE
	INNER JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI 
		ON 
			ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE
			AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	LEFT OUTER JOIN 
		C6MARTPERIODICO.ANAG_PROMOTORI 
		ON 
			ANAG_CLIENTI.RETE = ANAG_PROMOTORI.RETE
			AND ANAG_CLIENTI.ID_PROMOTORE = ANAG_PROMOTORI.ID_PROMOTORE
	LEFT JOIN 
		C6MARTPERIODICO.ANAG_CLIENTI_PREV 
		ON 
			ANAG_CLIENTI.RETE = ANAG_CLIENTI_PREV.RETE
			AND ANAG_CLIENTI.COD_FISCALE = ANAG_CLIENTI_PREV.COD_FISCALE
	LEFT JOIN
		C6MARTPERIODICO.DATI_REPORT 
		ON 
			ANAG_CLIENTI_PREV.RETE = DATI_REPORT.RETE
			AND ANAG_CLIENTI_PREV.COD_FISCALE = DATI_REPORT.COD_FISCALE
	--WHERE 1 = 1
	--	AND ANAG_CLIENTI.RETE = @RETE
	--	AND ANAG_CLIENTI.COD_FISCALE = @CODICEFISCALE
		 

END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








  
  
  
-- Stored procedure  
  
-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]'F','GSTGPL59P03B586G'  
   
  
CREATE      procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 -- Recupero data congelamento SEI  
  
 DECLARE @DataCongelamento DATETIME  
  
 DECLARE @DettMovPrec money  
 DECLARE @DettMovCorr money  
 DECLARE @AppoDettMovPrec varchar(50)  
 DECLARE @AppoDettMovCorr varchar(50)  
 DECLARE @NumAsterischiPrec int  
 DECLARE @NumAsterischiCorr int  
 DECLARE @DATA_FOTO datetime  
 DECLARE @UltimoInvio int  
  
 SET @NumAsterischiPrec = 0  
 SET @NumAsterischiCorr = 0  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
   
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE  
  
  
  
 --   -- Inserimento Dati Scirocco  
 --   SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR  
 --FROM C6MartPeriodico.DettaglioMovimenti  
 --WHERE  
 -- RETE = @Rete  
 --AND  
 -- COD_FIS = @CodiceFiscale  
   
 --IF @DettMovPrec is null  
 -- SET @AppoDettMovPrec = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')  
  
 --IF @DettMovCorr is null  
 -- SET @AppoDettMovCorr = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')  
  
 ----query per asterischi situazione precedente  
 --IF EXISTS(SELECT * FROM [C6StagingPeriodico].[WSEICS]  
 -- WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)  
 -- AND RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
  
 --IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON  
 -- WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
 -------------------------------------------  
   
 ----query per asterischi situazione corrente  
 --IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)  
 -- SET @NumAsterischiCorr = 1  
 -------------------------------------------  
  
 --SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
 --SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
  
truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
 -- Attivazione monitoraggio  
 insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
 SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  1 AS Fase,  
  isnull(INI.DATA_FOTO,0) AS DataFase,  
  ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  isnull(INI.CTV_EXT,0) as CTV_EXT,  
  isnull(INI.CTV_INV,0) as CTV_INV,  
  isnull(INI.CTV_PRE,0) as CTV_PRE,  
  isnull(INI.CTV_RIS,0) as CTV_RIS,  
  isnull(INI.CTV_LIQ,0) as CTV_LIQ,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,  
  isnull(INI.CTV_NA,0) AS RisorseNonAllocate,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,  
  isnull(INI.CTV_CC,0) AS Contocorrente,  
--INIZIO INTERVENTI OMNIA
  isnull(INI.CTVSELF,0) AS ctvself,
  -- 20181206 MIOFOGLIO
  --isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + isnull(INI.CTVSELFFOGLIO,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  -- fine 20181206 MIOFOGLIO
--FINE INTERVENTI OMNIA  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
  ,0 as sommaproventi
  -- 20181206 MIOFOGLIO
  ,isnull(INI.CTVSELFFOGLIO,0) AS CTVSelfFoglio
  -- fine 20181206 MIOFOGLIO
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE  
     -- modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017
			 -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
			 --   del qc su cf F/TRRLDA52D04G190A)
						----INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')  
			  --CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
			 -- fine modifica del 24/7/2017

         ISNULL(ini.data_foto,cast('29991231' as datetime)) < @datacongelamento  
     -- fine modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017

 -- INI.RETE = @Rete AND  
 -- INI.COD_FISCALE = @CodiceFiscale  
         
         
         
    UNION ALL  
  
 -- Precedente invio report  
  
  SELECT  
   INI.RETE,  
  INI.Cod_Fiscale,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  rep.CTV_EXT,  
  rep.CTV_INV,  
  rep.CTV_PRE,  
  rep.CTV_RIS,  
  rep.CTV_LIQ,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,    
  rep.CTV_NA AS RisorseNonAllocate,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,    
  rep.CTV_CC AS Contocorrente,  
  --Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,  
--INIZIO INTERVENTI OMNIA  
  isnull(rep.CTV_SELF,0) AS CTV_SELF,
  -- 20181206 MIOFOGLIO
  --rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.CTV_SELF_FOGLIO,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  -- fine 20181206 MIOFOGLIO  
--FINE INTERVENTI OMNIA  
  
--ToDo Fc    
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov  
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
      ,0 as sommaproventi
	-- 20181206 MIOFOGLIO
  ,isnull(rep.CTV_SELF_FOGLIO,0) AS CTV_SELF_FOGLIO
	-- fine 20181206 MIOFOGLIO
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE
     -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)  
        --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
		 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
 UNION ALL  
  
 -- Situazione corrente  
 --All values will be read from DB and passed to code, no value will be calculated on code  
  
 SELECT   
 rete,  
 cod_fiscale,  
   3 AS Fase,  
   CASE  
    WHEN @DataCongelamento IS NULL THEN GETDATE()  
    ELSE @DataCongelamento  
   END AS DataFase,  
   --Get the sum Operazioni in corso   
   --sum((isnull(IMPORTO,0))) as Partita_viaggiante,  
   0 as Partita_viaggiante,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,  
   sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,  
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,  
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,     
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,  
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS CTV_RF,      
   --CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),  
   --sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,  
   sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,     
--INIZIO INTERVENTI OMNIA
	-- 20181206 MIOFOGLIO
	sum(case when upper(id_area) = 'SELF' and cod_interno = 'XY' then ctv else 0 end) as CTV_SELF,
	--sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,
	-- fine 20181206 MIOFOGLIO
--FINE INTERVENTI OMNIA  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) +  
--INIZIO INTERVENTI OMNIA  
     sum(Case Upper(id_area) when 'CC' then ctv else 0 end) + sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio  
--FINE INTERVENTI OMNIA  
   
 --ToDo Fc    
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov  
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 NumeroAsterischiNota  
  ,0 as sommaproventi
  -- 20181206 MIOFOGLIO
	,sum(case when upper(id_area) = 'SELF' and cod_interno = 'FO' then ctv else 0 end) as CTV_SELF_FOGLIO
  -- fine 20181206 MIOFOGLIO
 FROM   
  C6MartPeriodico.PATRIMONIO_BF   
 group by rete,cod_fiscale   
  
select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=2  
  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=3  
  
  
  
--update S129  
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
--  then 'n.d.'  
--   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
--end   
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129  
--inner join C6MartPeriodico.DettaglioMovimenti DettMov  
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale  
--where S129.fase=3  
  
  
declare @TimecPRec  varchar(8)  
  
set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)  


--forzatura 
--update  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio 
--set dettmovS80='189050.93'
--where Cod_Fiscale='BNBLPL51M05F965Y'
--and fase=2

--update  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio 
--set dettmovS80='-15081.46'
--where Cod_Fiscale='BNBLPL51M05F965Y'
--and fase=3
--fine forzatura
  
  
  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.CODFIS is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join [C6StagingPeriodico].[WSEICS] ws  
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale  
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.COD_FISCALE is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join C6MartPeriodico.PATRIMONIO_BF ws  
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale  
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3  
  
  
--SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale  
  
  
  
SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi  
into #SommaProventi  
FROM [C6MartPeriodico].proventi   
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'  
group by  rete,Cod_Fiscale   
  
  
update s80x  
set s80x.sommaproventi = sp.sommaproventi  
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join  #SommaProventi sp  
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale  
  
 --aggiunta insert into pez 20240628 poi da togliere 
  
  insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  select * from  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_pez 
  
END  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_20170724_preCR_fasi1e2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
-- Stored procedure  
  
-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]'F','GSTGPL59P03B586G'  
   
  
CREATE procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_20170724_preCR_fasi1e2]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 -- Recupero data congelamento SEI  
  
 DECLARE @DataCongelamento DATETIME  
  
 DECLARE @DettMovPrec money  
 DECLARE @DettMovCorr money  
 DECLARE @AppoDettMovPrec varchar(50)  
 DECLARE @AppoDettMovCorr varchar(50)  
 DECLARE @NumAsterischiPrec int  
 DECLARE @NumAsterischiCorr int  
 DECLARE @DATA_FOTO datetime  
 DECLARE @UltimoInvio int  
  
 SET @NumAsterischiPrec = 0  
 SET @NumAsterischiCorr = 0  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
   
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE  
  
  
  
 --   -- Inserimento Dati Scirocco  
 --   SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR  
 --FROM C6MartPeriodico.DettaglioMovimenti  
 --WHERE  
 -- RETE = @Rete  
 --AND  
 -- COD_FIS = @CodiceFiscale  
   
 --IF @DettMovPrec is null  
 -- SET @AppoDettMovPrec = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')  
  
 --IF @DettMovCorr is null  
 -- SET @AppoDettMovCorr = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')  
  
 ----query per asterischi situazione precedente  
 --IF EXISTS(SELECT * FROM [C6StagingPeriodico].[WSEICS]  
 -- WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)  
 -- AND RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
  
 --IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON  
 -- WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
 -------------------------------------------  
   
 ----query per asterischi situazione corrente  
 --IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)  
 -- SET @NumAsterischiCorr = 1  
 -------------------------------------------  
  
 --SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
 --SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
  
truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
 -- Attivazione monitoraggio  
 insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
 SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  1 AS Fase,  
  isnull(INI.DATA_FOTO,0) AS DataFase,  
  ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  isnull(INI.CTV_EXT,0) as CTV_EXT,  
  isnull(INI.CTV_INV,0) as CTV_INV,  
  isnull(INI.CTV_PRE,0) as CTV_PRE,  
  isnull(INI.CTV_RIS,0) as CTV_RIS,  
  isnull(INI.CTV_LIQ,0) as CTV_LIQ,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,  
  isnull(INI.CTV_NA,0) AS RisorseNonAllocate,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,  
  isnull(INI.CTV_CC,0) AS Contocorrente,  
--INIZIO INTERVENTI OMNIA  
  isnull(INI.CTVSELF,0) AS ctvself,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio    
--FINE INTERVENTI OMNIA  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
  ,0 as sommaproventi  
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE  
     INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')  
 -- INI.RETE = @Rete AND  
 -- INI.COD_FISCALE = @CodiceFiscale  
         
         
         
    UNION ALL  
  
 -- Precedente invio report  
  
  SELECT  
   INI.RETE,  
  INI.Cod_Fiscale,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  rep.CTV_EXT,  
  rep.CTV_INV,  
  rep.CTV_PRE,  
  rep.CTV_RIS,  
  rep.CTV_LIQ,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,    
  rep.CTV_NA AS RisorseNonAllocate,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,    
  rep.CTV_CC AS Contocorrente,  
  --Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,  
--INIZIO INTERVENTI OMNIA  
  isnull(rep.CTV_SELF,0) AS CTV_SELF,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio      
--FINE INTERVENTI OMNIA  
  
--ToDo Fc    
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov  
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
      ,0 as sommaproventi  
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE  
        INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
 UNION ALL  
  
 -- Situazione corrente  
 --All values will be read from DB and passed to code, no value will be calculated on code  
  
 SELECT   
 rete,  
 cod_fiscale,  
   3 AS Fase,  
   CASE  
    WHEN @DataCongelamento IS NULL THEN GETDATE()  
    ELSE @DataCongelamento  
   END AS DataFase,  
   --Get the sum Operazioni in corso   
   --sum((isnull(IMPORTO,0))) as Partita_viaggiante,  
   0 as Partita_viaggiante,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,  
   sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,  
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,  
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,     
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,  
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS CTV_RF,      
   --CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),  
   --sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,  
   sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,     
--INIZIO INTERVENTI OMNIA  
   sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,     
--FINE INTERVENTI OMNIA  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) +  
--INIZIO INTERVENTI OMNIA  
     sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +  
   sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio  
--FINE INTERVENTI OMNIA  
   
 --ToDo Fc    
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov  
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 NumeroAsterischiNota  
      ,0 as sommaproventi  
 FROM   
  C6MartPeriodico.PATRIMONIO_BF   
 group by rete,cod_fiscale   
  
select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=2  
  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=3  
  
  
  
--update S129  
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
--  then 'n.d.'  
--   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
--end   
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129  
--inner join C6MartPeriodico.DettaglioMovimenti DettMov  
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale  
--where S129.fase=3  
  
  
declare @TimecPRec  varchar(8)  
  
set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)  
  
  
  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.CODFIS is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join [C6StagingPeriodico].[WSEICS] ws  
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale  
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.COD_FISCALE is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join C6MartPeriodico.PATRIMONIO_BF ws  
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale  
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3  
  
  
SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale  
  
  
  
SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi  
into #SommaProventi  
FROM [C6MartPeriodico].proventi   
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'  
group by  rete,Cod_Fiscale   
  
  
update s80x  
set s80x.sommaproventi = sp.sommaproventi  
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join  #SommaProventi sp  
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale  
  
  
  
  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_20180108]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
-- Stored procedure  
  
-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]'F','GSTGPL59P03B586G'  
   
  
CREATE procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_20180108]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 -- Recupero data congelamento SEI  
  
 DECLARE @DataCongelamento DATETIME  
  
 DECLARE @DettMovPrec money  
 DECLARE @DettMovCorr money  
 DECLARE @AppoDettMovPrec varchar(50)  
 DECLARE @AppoDettMovCorr varchar(50)  
 DECLARE @NumAsterischiPrec int  
 DECLARE @NumAsterischiCorr int  
 DECLARE @DATA_FOTO datetime  
 DECLARE @UltimoInvio int  
  
 SET @NumAsterischiPrec = 0  
 SET @NumAsterischiCorr = 0  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
   
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE  
  
  
  
 --   -- Inserimento Dati Scirocco  
 --   SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR  
 --FROM C6MartPeriodico.DettaglioMovimenti  
 --WHERE  
 -- RETE = @Rete  
 --AND  
 -- COD_FIS = @CodiceFiscale  
   
 --IF @DettMovPrec is null  
 -- SET @AppoDettMovPrec = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')  
  
 --IF @DettMovCorr is null  
 -- SET @AppoDettMovCorr = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')  
  
 ----query per asterischi situazione precedente  
 --IF EXISTS(SELECT * FROM [C6StagingPeriodico].[WSEICS]  
 -- WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)  
 -- AND RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
  
 --IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON  
 -- WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
 -------------------------------------------  
   
 ----query per asterischi situazione corrente  
 --IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)  
 -- SET @NumAsterischiCorr = 1  
 -------------------------------------------  
  
 --SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
 --SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
  
truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
 -- Attivazione monitoraggio  
 insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
 SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  1 AS Fase,  
  isnull(INI.DATA_FOTO,0) AS DataFase,  
  ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  isnull(INI.CTV_EXT,0) as CTV_EXT,  
  isnull(INI.CTV_INV,0) as CTV_INV,  
  isnull(INI.CTV_PRE,0) as CTV_PRE,  
  isnull(INI.CTV_RIS,0) as CTV_RIS,  
  isnull(INI.CTV_LIQ,0) as CTV_LIQ,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,  
  isnull(INI.CTV_NA,0) AS RisorseNonAllocate,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,  
  isnull(INI.CTV_CC,0) AS Contocorrente,  
--INIZIO INTERVENTI OMNIA  
  isnull(INI.CTVSELF,0) AS ctvself,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio    
--FINE INTERVENTI OMNIA  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
  ,0 as sommaproventi  
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE  
     -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)
	        --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')  
     CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
	 -- fine modifica del 24/7/2017


 -- INI.RETE = @Rete AND  
 -- INI.COD_FISCALE = @CodiceFiscale  
         
         
         
    UNION ALL  
  
 -- Precedente invio report  
  
  SELECT  
   INI.RETE,  
  INI.Cod_Fiscale,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  rep.CTV_EXT,  
  rep.CTV_INV,  
  rep.CTV_PRE,  
  rep.CTV_RIS,  
  rep.CTV_LIQ,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,    
  rep.CTV_NA AS RisorseNonAllocate,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,    
  rep.CTV_CC AS Contocorrente,  
  --Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,  
--INIZIO INTERVENTI OMNIA  
  isnull(rep.CTV_SELF,0) AS CTV_SELF,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio      
--FINE INTERVENTI OMNIA  
  
--ToDo Fc    
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov  
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
      ,0 as sommaproventi  
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE
     -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)  
        --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
		 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
 UNION ALL  
  
 -- Situazione corrente  
 --All values will be read from DB and passed to code, no value will be calculated on code  
  
 SELECT   
 rete,  
 cod_fiscale,  
   3 AS Fase,  
   CASE  
    WHEN @DataCongelamento IS NULL THEN GETDATE()  
    ELSE @DataCongelamento  
   END AS DataFase,  
   --Get the sum Operazioni in corso   
   --sum((isnull(IMPORTO,0))) as Partita_viaggiante,  
   0 as Partita_viaggiante,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,  
   sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,  
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,  
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,     
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,  
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS CTV_RF,      
   --CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),  
   --sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,  
   sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,     
--INIZIO INTERVENTI OMNIA  
   sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,     
--FINE INTERVENTI OMNIA  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) +  
--INIZIO INTERVENTI OMNIA  
     sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +  
   sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio  
--FINE INTERVENTI OMNIA  
   
 --ToDo Fc    
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov  
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 NumeroAsterischiNota  
      ,0 as sommaproventi  
 FROM   
  C6MartPeriodico.PATRIMONIO_BF   
 group by rete,cod_fiscale   
  
select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=2  
  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=3  
  
  
  
--update S129  
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
--  then 'n.d.'  
--   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
--end   
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129  
--inner join C6MartPeriodico.DettaglioMovimenti DettMov  
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale  
--where S129.fase=3  
  
  
declare @TimecPRec  varchar(8)  
  
set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)  
  
  
  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.CODFIS is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join [C6StagingPeriodico].[WSEICS] ws  
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale  
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.COD_FISCALE is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join C6MartPeriodico.PATRIMONIO_BF ws  
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale  
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3  
  
  
SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale  
  
  
  
SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi  
into #SommaProventi  
FROM [C6MartPeriodico].proventi   
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'  
group by  rete,Cod_Fiscale   
  
  
update s80x  
set s80x.sommaproventi = sp.sommaproventi  
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join  #SommaProventi sp  
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale  
  
  
  
  
  
END  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
-- Stored procedure  
  
-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]'F','GSTGPL59P03B586G'  
   
  
CREATE procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_20181214_PreMioFoglio]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 -- Recupero data congelamento SEI  
  
 DECLARE @DataCongelamento DATETIME  
  
 DECLARE @DettMovPrec money  
 DECLARE @DettMovCorr money  
 DECLARE @AppoDettMovPrec varchar(50)  
 DECLARE @AppoDettMovCorr varchar(50)  
 DECLARE @NumAsterischiPrec int  
 DECLARE @NumAsterischiCorr int  
 DECLARE @DATA_FOTO datetime  
 DECLARE @UltimoInvio int  
  
 SET @NumAsterischiPrec = 0  
 SET @NumAsterischiCorr = 0  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
   
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE  
  
  
  
 --   -- Inserimento Dati Scirocco  
 --   SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR  
 --FROM C6MartPeriodico.DettaglioMovimenti  
 --WHERE  
 -- RETE = @Rete  
 --AND  
 -- COD_FIS = @CodiceFiscale  
   
 --IF @DettMovPrec is null  
 -- SET @AppoDettMovPrec = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')  
  
 --IF @DettMovCorr is null  
 -- SET @AppoDettMovCorr = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')  
  
 ----query per asterischi situazione precedente  
 --IF EXISTS(SELECT * FROM [C6StagingPeriodico].[WSEICS]  
 -- WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)  
 -- AND RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
  
 --IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON  
 -- WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
 -------------------------------------------  
   
 ----query per asterischi situazione corrente  
 --IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)  
 -- SET @NumAsterischiCorr = 1  
 -------------------------------------------  
  
 --SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
 --SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
  
truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
 -- Attivazione monitoraggio  
 insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
 SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  1 AS Fase,  
  isnull(INI.DATA_FOTO,0) AS DataFase,  
  ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  isnull(INI.CTV_EXT,0) as CTV_EXT,  
  isnull(INI.CTV_INV,0) as CTV_INV,  
  isnull(INI.CTV_PRE,0) as CTV_PRE,  
  isnull(INI.CTV_RIS,0) as CTV_RIS,  
  isnull(INI.CTV_LIQ,0) as CTV_LIQ,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,  
  isnull(INI.CTV_NA,0) AS RisorseNonAllocate,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,  
  isnull(INI.CTV_CC,0) AS Contocorrente,  
--INIZIO INTERVENTI OMNIA  
  isnull(INI.CTVSELF,0) AS ctvself,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio    
--FINE INTERVENTI OMNIA  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
  ,0 as sommaproventi  
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE  
     -- modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017
			 -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
			 --   del qc su cf F/TRRLDA52D04G190A)
						----INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')  
			  --CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
			 -- fine modifica del 24/7/2017

         ISNULL(ini.data_foto,cast('29991231' as datetime)) < @datacongelamento  
     -- fine modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017

 -- INI.RETE = @Rete AND  
 -- INI.COD_FISCALE = @CodiceFiscale  
         
         
         
    UNION ALL  
  
 -- Precedente invio report  
  
  SELECT  
   INI.RETE,  
  INI.Cod_Fiscale,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  rep.CTV_EXT,  
  rep.CTV_INV,  
  rep.CTV_PRE,  
  rep.CTV_RIS,  
  rep.CTV_LIQ,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,    
  rep.CTV_NA AS RisorseNonAllocate,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,    
  rep.CTV_CC AS Contocorrente,  
  --Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,  
--INIZIO INTERVENTI OMNIA  
  isnull(rep.CTV_SELF,0) AS CTV_SELF,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio      
--FINE INTERVENTI OMNIA  
  
--ToDo Fc    
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov  
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
      ,0 as sommaproventi  
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE
     -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)  
        --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
		 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
 UNION ALL  
  
 -- Situazione corrente  
 --All values will be read from DB and passed to code, no value will be calculated on code  
  
 SELECT   
 rete,  
 cod_fiscale,  
   3 AS Fase,  
   CASE  
    WHEN @DataCongelamento IS NULL THEN GETDATE()  
    ELSE @DataCongelamento  
   END AS DataFase,  
   --Get the sum Operazioni in corso   
   --sum((isnull(IMPORTO,0))) as Partita_viaggiante,  
   0 as Partita_viaggiante,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,  
   sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,  
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,  
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,     
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,  
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS CTV_RF,      
   --CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),  
   --sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,  
   sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,     
--INIZIO INTERVENTI OMNIA  
   sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,     
--FINE INTERVENTI OMNIA  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) +  
--INIZIO INTERVENTI OMNIA  
     sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +  
   sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio  
--FINE INTERVENTI OMNIA  
   
 --ToDo Fc    
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov  
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 NumeroAsterischiNota  
      ,0 as sommaproventi  
 FROM   
  C6MartPeriodico.PATRIMONIO_BF   
 group by rete,cod_fiscale   
  
select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=2  
  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=3  
  
  
  
--update S129  
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
--  then 'n.d.'  
--   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
--end   
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129  
--inner join C6MartPeriodico.DettaglioMovimenti DettMov  
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale  
--where S129.fase=3  
  
  
declare @TimecPRec  varchar(8)  
  
set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)  
  
  
  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.CODFIS is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join [C6StagingPeriodico].[WSEICS] ws  
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale  
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.COD_FISCALE is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join C6MartPeriodico.PATRIMONIO_BF ws  
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale  
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3  
  
  
SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale  
  
  
  
SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi  
into #SommaProventi  
FROM [C6MartPeriodico].proventi   
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'  
group by  rete,Cod_Fiscale   
  
  
update s80x  
set s80x.sommaproventi = sp.sommaproventi  
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x  
left join  #SommaProventi sp  
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale  
  
  
  
  
  
END  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











  
  
  
-- Stored procedure  
  
-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio]'F','GSTGPL59P03B586G'  
   
  
CREATE     procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 -- Recupero data congelamento SEI  
  
 DECLARE @DataCongelamento DATETIME  
  
 DECLARE @DettMovPrec money  
 DECLARE @DettMovCorr money  
 DECLARE @AppoDettMovPrec varchar(50)  
 DECLARE @AppoDettMovCorr varchar(50)  
 DECLARE @NumAsterischiPrec int  
 DECLARE @NumAsterischiCorr int  
 DECLARE @DATA_FOTO datetime  
 DECLARE @UltimoInvio int  
  
 SET @NumAsterischiPrec = 0  
 SET @NumAsterischiCorr = 0  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  

--select * from #riga_nuova
   
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE  
  
  
  
 --   -- Inserimento Dati Scirocco  
 --   SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR  
 --FROM C6MartPeriodico.DettaglioMovimenti  
 --WHERE  
 -- RETE = @Rete  
 --AND  
 -- COD_FIS = @CodiceFiscale  
   
 --IF @DettMovPrec is null  
 -- SET @AppoDettMovPrec = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')  
  
 --IF @DettMovCorr is null  
 -- SET @AppoDettMovCorr = 'n.d.'  
 --ELSE  
 -- SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')  
  
 ----query per asterischi situazione precedente  
 --IF EXISTS(SELECT * FROM [C6StagingPeriodico].[WSEICS]  
 -- WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)  
 -- AND RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
  
 --IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON  
 -- WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)  
 -- SET @NumAsterischiPrec = 1  
 -------------------------------------------  
   
 ----query per asterischi situazione corrente  
 --IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)  
 -- SET @NumAsterischiCorr = 1  
 -------------------------------------------  
  
 --SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
 --SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a  
 --WHERE a.Rete = @Rete  
 --AND a.COD_FISCALE = @CodiceFiscale  
  
  
truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  
  
 -- Attivazione monitoraggio  
 insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  
 SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  1 AS Fase,  
  isnull(INI.DATA_FOTO,0) AS DataFase,  
  ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  isnull(INI.CTV_EXT,0) as CTV_EXT,  
  isnull(INI.CTV_INV,0) as CTV_INV,  
  isnull(INI.CTV_PRE,0) as CTV_PRE,  
  isnull(INI.CTV_RIS,0) as CTV_RIS,  
  isnull(INI.CTV_LIQ,0) as CTV_LIQ,  

  -- aggiunta del 19-10-2020 per il calcolo delle percentuali delle varie aree della piramide

  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Ext'),0.00) as PERC_EXT,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Inv'),0.00) as PERC_INV,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Pre'),0.00) as PERC_PRE,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Ris'),0.00) as PERC_RIS,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](INI.Cod_Fiscale,INI.RETE,'Liq'),0.00) as PERC_LIQ,

  isnull(mode.PERC_EXT,0.00) as PERC_EXT,
  isnull(mode.PERC_INV,0.00) as PERC_INV,
  isnull(mode.PERC_PRE,0.00) as PERC_PRE,
  isnull(mode.PERC_RIS,0.00) as PERC_RIS,
  isnull(mode.PERC_LIQ,0.00) as PERC_LIQ,


  -- fine aggiunta del 19-10-2020 

  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,  
  isnull(INI.CTV_NA,0) AS RisorseNonAllocate,  
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,  
  isnull(INI.CTV_CC,0) AS Contocorrente,  


--INIZIO INTERVENTI OMNIA
  isnull(INI.CTVSELF,0) AS ctvself,
  -- 20181206 MIOFOGLIO
  --isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + isnull(INI.CTVSELFFOGLIO,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  -- fine 20181206 MIOFOGLIO
--FINE INTERVENTI OMNIA  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
  ,0 as sommaproventi
  -- 20181206 MIOFOGLIO
  ,isnull(INI.CTVSELFFOGLIO,0) AS CTVSelfFoglio
  -- fine 20181206 MIOFOGLIO
 FROM  
  --C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
   [C6MartPeriodico].[MONITORAGGIO_INIZIALE] INI
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
		left join C6StagingPeriodico.Popola_PiramideModello mode
		on rtrim(ltrim(ini.rete)) = rtrim(ltrim(mode.rete)) and
		rtrim(ltrim(ini.cod_fiscale)) = rtrim(ltrim(mode.cod_fiscale)) and
		rtrim(ltrim(ini.DATA_FOTO)) = rtrim(ltrim(mode.data_foto)) 
		--rtrim(ltrim(convert(varchar,ini.DATA_FOTO,105))) = rtrim(ltrim(convert(varchar,mode.data_foto,105))) 
 WHERE  
     -- modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017
			 -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
			 --   del qc su cf F/TRRLDA52D04G190A)
						----INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')  
			  --CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
			 -- fine modifica del 24/7/2017

         ISNULL(ini.data_foto,cast('29991231' as datetime)) < @datacongelamento  
     -- fine modifica per segnalazione qc (Diacci) su cf ‘BRBRRT58P21I633Q/S’ in simulazione Dicembre 2017

 -- INI.RETE = @Rete AND  
 -- INI.COD_FISCALE = @CodiceFiscale  
         
         
         
    UNION ALL  
  
 -- Precedente invio report  
  
  SELECT  
  INI.RETE,  
  INI.Cod_Fiscale,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,  
  rep.CTV_EXT,  
  rep.CTV_INV,  
  rep.CTV_PRE,  
  rep.CTV_RIS,  
  rep.CTV_LIQ,  

    -- aggiunta del 19-10-2020 per il calcolo delle percentuali delle varie aree della piramide

  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.ctv_ext / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_EXT,

  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_INV / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_INV,

  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_PRE / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_PRE,

  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_RIS / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_RIS,

  --case (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) when 0 then 0 else cast((rep.CTV_LIQ / (rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ) * 100) as decimal(18,2))
  --end as PERC_LIQ,

  isnull(mode.PERC_EXT,0.00) as PERC_EXT,
  isnull(mode.PERC_INV,0.00) as PERC_INV,
  isnull(mode.PERC_PRE,0.00) as PERC_PRE,
  isnull(mode.PERC_RIS,0.00) as PERC_RIS,
  isnull(mode.PERC_LIQ,0.00) as PERC_LIQ,

  -- fine aggiunta del 19-10-2020

  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,    
  rep.CTV_NA AS RisorseNonAllocate,  
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,    
  rep.CTV_CC AS Contocorrente,  
  --Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,  

--INIZIO INTERVENTI OMNIA  
  isnull(rep.CTV_SELF,0) AS CTV_SELF,
  -- 20181206 MIOFOGLIO
  --rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.CTV_SELF_FOGLIO,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio
  -- fine 20181206 MIOFOGLIO  
--FINE INTERVENTI OMNIA  
  
--ToDo Fc    
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov  
--  ,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 as NumeroAsterischiNota  
      ,0 as sommaproventi
	-- 20181206 MIOFOGLIO
  ,isnull(rep.CTV_SELF_FOGLIO,0) AS CTV_SELF_FOGLIO
	-- fine 20181206 MIOFOGLIO
 FROM  
  --C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
  [C6MartPeriodico].[MONITORAGGIO_INIZIALE] INI
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
	left join C6StagingPeriodico.Popola_PiramideModello mode
	on rtrim(ltrim(ini.rete)) = rtrim(ltrim(mode.rete)) and
	rtrim(ltrim(ini.cod_fiscale)) = rtrim(ltrim(mode.cod_fiscale)) and
	rtrim(ltrim(rep.DATA_INVIO)) = rtrim(ltrim(mode.data_foto)) 
	--rtrim(ltrim(convert(varchar,rep.DATA_INVIO,105))) = rtrim(ltrim(convert(varchar,mode.data_foto,105))) 

 WHERE
     -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)  
        --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
		 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(rep.DATA_INVIO,'2999-12-31'),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
 UNION ALL  
  
 -- Situazione corrente  
 --All values will be read from DB and passed to code, no value will be calculated on code  
  
 select t.rete,t.cod_fiscale,t.Fase,t.DataFase,t.Partita_viaggiante,t.CTV_EXT,t.CTV_INV,
 t.CTV_PRE,t.CTV_RIS,t.CTV_LIQ,
 t.PERC_EXT,t.PERC_INV,t.PERC_PRE,t.PERC_RIS,t.PERC_LIQ,t.CTV_RA,t.CTV_NA,
 t.CTV_RF,t.CTV_CC,t.CTV_SELF,t.TotalePatrimonio,t.DettMovS80,t.DettMovS129,t.NumeroAsterischiNota,t.sommaproventi,t.CTV_SELF_FOGLIO
 from c6martperiodico.TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3 t

   
-- select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  

 --fix data 17/12/2020
 --sezione che storicizza le percentuali dell'ultima elaborazione se non sono già presenti nella tabella.
 --commentare in fase di simulazione

 --insert into C6StagingPeriodico.Popola_PiramideModello
	--select Rete,
	--	   Cod_fiscale,
	--	   DataFase as Data_foto,
	--	   PERC_EXT,
	--	   PERC_INV,
 --          PERC_PRE,
 --          PERC_RIS,
 --          PERC_LIQ
	--	   from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
	--	   and rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))+rtrim(ltrim(convert(varchar,dataFase,105))) not in 
	--	   (select distinct(rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))+rtrim(ltrim(convert(varchar,data_foto,105)))) 
	--	   from C6StagingPeriodico.Popola_PiramideModello)

 --fine fix 17/12/2020
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc  s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=2  
  
  
  
update s80  
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',')   
end ,  
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
  then 'n.d.'  
   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
end   
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80  
inner join C6MartPeriodico.DettaglioMovimenti DettMov  
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale  
where s80.fase=3  

--forzatura 
--update  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc 
--set dettmovS80='189050.93'
--where Cod_Fiscale='BNBLPL51M05F965Y'
--and fase=2

--update  C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc
--set dettmovS80='-15081.46'
--where Cod_Fiscale='BNBLPL51M05F965Y'
--and fase=3
--fine forzatura
  
  
  
--update S129  
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null   
--  then 'n.d.'  
--   else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',')   
--end   
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129  
--inner join C6MartPeriodico.DettaglioMovimenti DettMov  
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale  
--where S129.fase=3  
  
  
declare @TimecPRec  varchar(8)  
  
set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)  
  
  
  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.CODFIS is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80x  
left join [C6StagingPeriodico].[WSEICS] ws  
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale  
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2  
  
  
update s80x  
set NumeroAsterischiNota =  
case   
when ws.COD_FISCALE is null  
  then   0  
else 1   
end   
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80x  
left join C6MartPeriodico.PATRIMONIO_BF ws  
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale  
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3  
  
  
SELECT top 1 * FROM C6MartPeriodico.PATRIMONIO_BF  
 -- WHERE COD_INTERNO IN ('37', 'GP')  
 -- AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale  
  
  
  
SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi  
into #SommaProventi  
FROM [C6MartPeriodico].proventi   
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'  
group by  rete,Cod_Fiscale   
  
  
update s80x  
set s80x.sommaproventi = sp.sommaproventi  
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc s80x  
left join  #SommaProventi sp  
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale  


--pezzotto 20240702
insert into [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc] 
  select  *
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio_perc_pez] 

  
  
  
  
  
END  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
CREATE procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3]
-- Add the parameters for the stored procedure here


AS
begin
DECLARE @DataCongelamento DATETIME  
  
 --DECLARE @DettMovPrec money  
 --DECLARE @DettMovCorr money  
 --DECLARE @AppoDettMovPrec varchar(50)  
 --DECLARE @AppoDettMovCorr varchar(50)  
 --DECLARE @NumAsterischiPrec int  
 --DECLARE @NumAsterischiCorr int  

  
 --SET @NumAsterischiPrec = 0  
 --SET @NumAsterischiCorr = 0  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
drop table if exists c6martperiodico.TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3



SELECT   
 rete,  
 cod_fiscale,  
   3 AS Fase,  
   CASE  
    WHEN @DataCongelamento IS NULL THEN GETDATE()  
    ELSE @DataCongelamento  
   END AS DataFase,  
   --Get the sum Operazioni in corso   
   --sum((isnull(IMPORTO,0))) as Partita_viaggiante,  
   0 as Partita_viaggiante,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,  
   sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,  
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,  
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,     
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ, 
   
   -- aggiunta del 19-10-2020 per il calcolo delle percentuali delle varie aree della piramide
 --  	case
	--	when (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--		sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) = 0
	--		then 0.0 
	--		else 
	--			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) / (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) * 100 
	--end as PERC_EXT,
	--case 
	--	when (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--		sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) = 0
	--	then 0.0
	--	else
	--		sum(case Upper(id_area) when 'INV' then ctv else 0 end ) / (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--		sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) * 100
	--end as PERC_INV,
	--case
	--	when (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--		  sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) = 0
	--	then
	--		0.0
	--	else
	--		sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) / (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--		sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) * 100
	--end as PERC_PRE,
	--case
	--	when (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) = 0
	--	then
	--		0.0
	--	else
	--	   sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) / (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--	   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) * 100
	--end as PERC_RIS,
	--case
	--	when (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--		sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) = 0
	--	then
	--		0.0
	--	else
	--	   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) / (sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
	--	   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+ sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )) * 100 
	--end as PERC_LIQ,
		
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Ext'),0.00) as PERC_EXT,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Inv'),0.00) as PERC_INV,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Pre'),0.00) as PERC_PRE,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Ris'),0.00) as PERC_RIS,
  --isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Liq'),0.00) as PERC_LIQ,

	    -- fine aggiunta del 19-10-2020

   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,  
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   --sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS CTV_RF,      
   --CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),  
   --sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,  
   sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC, 
   


--INIZIO INTERVENTI OMNIA
	-- 20181206 MIOFOGLIO
	sum(case when upper(id_area) = 'SELF' and cod_interno = 'XY' then ctv else 0 end) as CTV_SELF,
	--sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,
	-- fine 20181206 MIOFOGLIO

	  -- aggiunta del 19-10-2020 per il calcolo delle percentuali delle varie aree della piramide



--FINE INTERVENTI OMNIA  
   sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'INV' then ctv else 0 end )+   
   sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+  
   sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+   
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) +  
--INIZIO INTERVENTI OMNIA  
     sum(Case Upper(id_area) when 'CC' then ctv else 0 end) + sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio  
--FINE INTERVENTI OMNIA  
   
 --ToDo Fc    
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov  
   --,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota  
  ,null as DettMovS80  
  ,null as DettMovS129  
  ,0 NumeroAsterischiNota  
  ,0 as sommaproventi
  -- 20181206 MIOFOGLIO
	,sum(case when upper(id_area) = 'SELF' and cod_interno = 'FO' then ctv else 0 end) as CTV_SELF_FOGLIO
  -- fine 20181206 MIOFOGLIO
  into #temp
 FROM   
  C6MartPeriodico.PATRIMONIO_BF   
 group by rete,cod_fiscale   

 select t.rete,t.cod_fiscale,t.Fase,t.DataFase,t.Partita_viaggiante,t.CTV_EXT,t.CTV_INV,
 t.CTV_PRE,t.CTV_RIS,t.CTV_LIQ,
 p.PERC_EXT,p.PERC_INV,p.PERC_PRE,p.PERC_RIS,p.PERC_LIQ,t.CTV_RA,t.CTV_NA,

 t.CTV_RF,t.CTV_CC,t.CTV_SELF,t.TotalePatrimonio,t.DettMovS80,t.DettMovS129,t.NumeroAsterischiNota,t.sommaproventi,t.CTV_SELF_FOGLIO
 into c6martperiodico.TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase3
 from #temp t inner join C6MartPeriodico.tb_patrimonio_bf_percentuale_piramide p on t.RETE+t.COD_FISCALE=p.rete+p.cod_fiscale

-- select * from C6MartPeriodico.TB_Popola_S80_S129_EvoluzioneCTVPatrimonio_percentuale_Fase_tre
--select * from C6MartPeriodico.tb_patrimonio_bf_percentuale_piramide
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
-- [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_pre_selective]'F','GSTGPL59P03B586G'
 

CREATE procedure [C6MartPeriodico].[Popola_S80_S129_EvoluzioneCTVPatrimonio_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME

	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()

	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE



 --   -- Inserimento Dati Scirocco
 --  	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR
	--FROM C6MartPeriodico.DettaglioMovimenti
	--WHERE
	--	RETE = @Rete
	--AND
	--	COD_FIS = @CodiceFiscale
	
	--IF @DettMovPrec is null
	--	SET @AppoDettMovPrec = 'n.d.'
	--ELSE
	--	SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	--IF @DettMovCorr is null
	--	SET @AppoDettMovCorr = 'n.d.'
	--ELSE
	--	SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	----query per asterischi situazione precedente
	--IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
	--	WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)
	--	AND RETE = @Rete AND CODFIS = @CodiceFiscale)
	--	SET @NumAsterischiPrec = 1

	--IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
	--	WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
	--	SET @NumAsterischiPrec = 1
	-------------------------------------------
	
	----query per asterischi situazione corrente
	--IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
	--	WHERE COD_INTERNO IN ('37', 'GP')
	--	AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
	--	SET @NumAsterischiCorr = 1
	-------------------------------------------

	--SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	--WHERE a.Rete = @Rete
	--AND a.COD_FISCALE = @CodiceFiscale

	--SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	--WHERE a.Rete = @Rete
	--AND a.COD_FISCALE = @CodiceFiscale


truncate table C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio

	-- Attivazione monitoraggio
	insert into C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio
	SELECT
		INI.RETE,
		INI.Cod_Fiscale,
		1 AS Fase,
		isnull(INI.DATA_FOTO,0) AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		isnull(INI.CTV_EXT,0) as CTV_EXT,
		isnull(INI.CTV_INV,0) as CTV_INV,
		isnull(INI.CTV_PRE,0) as CTV_PRE,
		isnull(INI.CTV_RIS,0) as CTV_RIS,
		isnull(INI.CTV_LIQ,0) as CTV_LIQ,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) AS RisorseAllocate,
		isnull(INI.CTV_NA,0) AS RisorseNonAllocate,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) AS RisorseFinanziarie,
		isnull(INI.CTV_CC,0) AS Contocorrente,
--INIZIO INTERVENTI OMNIA
		isnull(INI.CTVSELF,0) AS ctvself,
		isnull(INI.CTV_EXT,0) + isnull(INI.CTV_INV,0) + isnull(INI.CTV_PRE,0) + isnull(INI.CTV_RIS,0) + isnull(INI.CTV_LIQ,0) + isnull(INI.CTV_NA,0) + isnull(INI.CTV_CC,0) + isnull(INI.CTVSELF,0) + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
--FINE INTERVENTI OMNIA
		,null as DettMovS80
		,null as DettMovS129
		,0	as NumeroAsterischiNota
		,0 as sommaproventi
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
	    INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
	--	INI.RETE = @Rete AND
	--	INI.COD_FISCALE = @CodiceFiscale
       
       
       
    UNION ALL

	-- Precedente invio report

 	SELECT
 		INI.RETE,
		INI.Cod_Fiscale,
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
--INIZIO INTERVENTI OMNIA
		isnull(rep.CTV_SELF,0) AS CTV_SELF,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.CTV_SELF,0) + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
--FINE INTERVENTI OMNIA

--ToDo Fc		
--		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
--		,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
		,null as DettMovS80
		,null as DettMovS129
		,0 as NumeroAsterischiNota
      ,0 as sommaproventi
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
        INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
	rete,
	cod_fiscale,
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
--INIZIO INTERVENTI OMNIA
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS CTV_SELF,			
--FINE INTERVENTI OMNIA
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
--INIZIO INTERVENTI OMNIA
  			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) +
			sum(Case Upper(id_area) when 'self' then ctv else 0 end) AS TotalePatrimonio
--FINE INTERVENTI OMNIA
	
	--ToDo Fc		
			--,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			--,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
		,null as DettMovS80
		,null as DettMovS129
		,0 NumeroAsterischiNota
      ,0 as sommaproventi
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
	group by rete,cod_fiscale	

select count(*) from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio


update s80
set DettMovS80 = case when dettmov.DETT_MOV_PREC is null 
		then 'n.d.'
		 else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',') 
end ,
DettMovS129 = case when dettmov.DETT_MOV_PREC is null 
		then 'n.d.'
		 else REPLACE(CAST(dettmov.DETT_MOV_PREC as varchar(50)), '.', ',') 
end 
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80
inner join C6MartPeriodico.DettaglioMovimenti DettMov
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale
where s80.fase=2



update s80
set DettMovS80 = case when dettmov.DETT_MOV_CORR is null 
		then 'n.d.'
		 else REPLACE(CAST(dettmov.DETT_MOV_CORR as varchar(50)), '.', ',') 
end ,
DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null 
		then 'n.d.'
		 else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',') 
end 
from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80
inner join C6MartPeriodico.DettaglioMovimenti DettMov
on  s80.rete = dettmov.rete  and dettmov.COD_FIS = s80.COD_FIScale
where s80.fase=3



--update S129
--set DettMovS129 = case when dettmov.DETT_MOV_TRIMESTRE_PREC is null 
--		then 'n.d.'
--		 else REPLACE(CAST(dettmov.DETT_MOV_TRIMESTRE_PREC as varchar(50)), '.', ',') 
--end 
--from C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio S129
--inner join C6MartPeriodico.DettaglioMovimenti DettMov
--on  S129.rete = dettmov.rete  and dettmov.COD_FIS = S129.COD_FIScale
--where S129.fase=3


declare @TimecPRec  varchar(8)

set @TimecPRec =  c6martperiodico.getprevioustrimestre(getdate(),0)





update s80x
set NumeroAsterischiNota =
case 
when ws.CODFIS is null
  then   0
else 1 
end 
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x
left join [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS] ws
on s80x.rete = ws.rete  and ws.CODFIS = s80x.COD_FIScale
WHERE CODPROD IN ('37', 'GP') AND DTTRIM = @TimecPRec AND s80x.fase = 2


update s80x
set NumeroAsterischiNota =
case 
when ws.COD_FISCALE is null
  then   0
else 1 
end 
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x
left join C6MartPeriodico.PATRIMONIO_BF ws
on s80x.rete = ws.rete  and ws.COD_FISCALE = s80x.COD_FIScale
WHERE  COD_INTERNO IN ('37', 'GP') AND s80x.fase = 3


SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
	--	WHERE COD_INTERNO IN ('37', 'GP')
	--	AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale



SELECT rete,Cod_Fiscale,sum(IMPORTO) sommaProventi
into #SommaProventi
FROM [C6MartPeriodico].proventi 
--where rete='F' and Cod_Fiscale='DLLLCU62T60G408A'
group by 	rete,Cod_Fiscale 


update s80x
set s80x.sommaproventi = sp.sommaproventi
FROM C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio s80x
left join  #SommaProventi sp
on s80x.rete = sp.rete  and sp.Cod_Fiscale = s80x.COD_FIScale





END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'  
  
  
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @DataCongelamento DATETIME  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
 select @DataCongelamento 
  
   
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio  
insert into c6martperiodico.tb_S80BisEvoluzioneRischio    
 SELECT  
 ini.rete,  
 ini.COD_FISCALE,  
  1 AS Fase,  
  INI.DATA_FOTO AS DataFase,  
  INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO  
   ELSE ROUND(INI.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  INI.VAR_COPERTURA AS Copertura,  
        INI.RISKCLASS,  
        INI.RISKCLASSMAX,  
  case   
   when INI.RISKCLASS is null  then 'n.d.'  
   when INI.RISKCLASS = 0 then 'n.a.'   
   else null  
  end as RiskClassString,  
    
  case   
   when INI.RISKCLASSMAX is null then 'n.d.'  
   when INI.RISKCLASSMAX = 0 then 'n.a.'  
   else null  
  end as RiskClassMaxString  
    
   
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        LEFT OUTER  join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  

	
  
 UNION ALL  
  
 -- Precedente invio report  
  
 SELECT  
 rep.RETE ,  
  rep.COD_FISCALE ,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO  
   ELSE ROUND(rep.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  rep.VAR_COPERTURA AS Copertura,  
         rep.RISKCLASS,  
         rep.RISKCLASSMAX,  
  case when rep.RISKCLASS is null then 'n.a.'  
    else null  
  end as RiskClassString,  
  case when rep.RISKCLASSMAX is null then 'n.a.'  
    else null  
  end as RiskClassMaxString  
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE    
      -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)
           --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
	 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(REP.DATA_INVIO,cast('29991231' as datetime)),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
  
 UNION ALL  
  
 -- Situazione corrente  
  
 SELECT  
 BF.RETE ,  
  BF.COD_FISCALE,  
  3 fase,  
  CASE  
   WHEN @DataCongelamento IS NULL THEN GETDATE()  
   ELSE @DataCongelamento  
  END AS DataFase,  
  CR.MAX_VAR AS VarMassimoProfiloFinanziario,  
  --V  
  CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00  
    ELSE ROUND(RA.VAR_PERC_PTF,2)  
  END  AS VarComplessivo,  
  --CASE  
  -- WHEN (@contaPOS - @contaCC = 0 ) THEN 100  
  -- ELSE isnull(RA.COPERTURA,0)   
  --END AS Copertura,  
  isnull(RA.COPERTURA,0) as copertura,  
-- TRINGALI MODIFICARE  
       ra.creditrisk as RISKCLASS,  
        mifid.riskclass as RISKCLASSMAX,  
  case when ra.creditrisk is null then 'n.a.'  
        else null end   as RiskClassString,  
  case when  mifid.riskclass is null then 'n.a.'  
              else null end as RiskClassMaxString  
 FROM  
        C6MartPeriodico.vPatrimonioBFAggregato AS BF  
 INNER JOIN C6MartPeriodico.MIFID AS MIFID  
  ON  BF.RETE = MIFID.RETE  
  AND BF.COD_FISCALE = MIFID.COD_FISCALE  
 INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR  
  ON MIFID.PROFILO_ASS = CR.PROFILO  
 LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA  
  ON  RA.RETE = BF.RETE  
  AND RA.COD_FISCALE = BF.COD_FISCALE  
  AND RA.COD_AGGREG = 'COMPLESSIVO|BF'  
    
    
    
-- Aggiornamento Copertura    
  
update s80  
 set copertura = ( CASE  
   WHEN (nocc - CC = 0 ) THEN 100  
   ELSE copertura  
  END )  
 from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
 inner join (  
 select rete,cod_fiscale  
 ,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc   
 ,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc   
 from   
 ( select rete,cod_fiscale,tipo_prodotto,count(*) tot  
   from c6martperiodico.patrimonio_Bf  
   --where cod_fiscale = @codiceFiscale and rete = @rete  
   group by rete,cod_fiscale,tipo_prodotto  
 ) as gr  
 group by rete,cod_fiscale  
 ) as tabCount  
     on tabcount.rete= s80.rete and tabcount.cod_fiscale=s80.codicefiscale  
  
  
-- Aggiornamento   
 SELECT RETE,COD_FISCALE, COUNT(*)  tot  
 into #ini  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_INIZIALE  
 group by RETE,COD_FISCALE  
    having count(*) = 0  
  
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #att  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_ATTUALE  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #ris  
 FROM  C6MARTPERIODICO.RISCHIO_AGGREGATO  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
  
    
  delete  s80   
  from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
  inner join (   
  select distinct   
   case when #ini.rete is null   
   then   
   case when #att.rete is null   
     then #ris.rete   
     else  #att.rete  
   end           
    else  #ini.rete  
   end rete,        
   case when #ini.cod_fiscale is null   
   then   
   case when #att.cod_fiscale is null   
     then #ris.cod_fiscale   
     else  #att.cod_fiscale  
   end           
    else  #ini.cod_fiscale  
   end codicefiscale  
  from #ini    
   right JOIN #att on  #ini.rete = #att.rete and #att.cod_fiscale=#ini.cod_fiscale  
   right JOIN #ris on  #ini.rete = #ris.rete and #ris.cod_fiscale=#ini.cod_fiscale  
   ) cont   
   on cont.rete=s80.rete and cont.codicefiscale=s80.codicefiscale  
  
  --aggiunta insert into pez 20240628 poi da togliere
 -- insert into[C6MartPeriodico].[TB_S80BisEvoluzioneRischio]
 --select * from [C6MartPeriodico].[TB_S80BisEvoluzioneRischio_pez]
  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_20170724_preCR_fasi1e2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'  
  
  
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_20170724_preCR_fasi1e2]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @DataCongelamento DATETIME  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
   
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio  
insert into c6martperiodico.tb_S80BisEvoluzioneRischio    
 SELECT  
 ini.rete,  
 ini.COD_FISCALE,  
  1 AS Fase,  
  INI.DATA_FOTO AS DataFase,  
  INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO  
   ELSE ROUND(INI.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  INI.VAR_COPERTURA AS Copertura,  
        INI.RISKCLASS,  
        INI.RISKCLASSMAX,  
  case   
   when INI.RISKCLASS is null  then 'n.d.'  
   when INI.RISKCLASS = 0 then 'n.a.'   
   else null  
  end as RiskClassString,  
    
  case   
   when INI.RISKCLASSMAX is null then 'n.d.'  
   when INI.RISKCLASSMAX = 0 then 'n.a.'  
   else null  
  end as RiskClassMaxString  
    
   
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        LEFT OUTER  join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
  
 UNION ALL  
  
 -- Precedente invio report  
  
 SELECT  
 rep.RETE ,  
  rep.COD_FISCALE ,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO  
   ELSE ROUND(rep.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  rep.VAR_COPERTURA AS Copertura,  
         rep.RISKCLASS,  
         rep.RISKCLASSMAX,  
  case when rep.RISKCLASS is null then 'n.a.'  
    else null  
  end as RiskClassString,  
  case when rep.RISKCLASSMAX is null then 'n.a.'  
    else null  
  end as RiskClassMaxString  
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE    
 INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
  
 UNION ALL  
  
 -- Situazione corrente  
  
 SELECT  
 BF.RETE ,  
  BF.COD_FISCALE,  
  3 fase,  
  CASE  
   WHEN @DataCongelamento IS NULL THEN GETDATE()  
   ELSE @DataCongelamento  
  END AS DataFase,  
  CR.MAX_VAR AS VarMassimoProfiloFinanziario,  
  --V  
  CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00  
    ELSE ROUND(RA.VAR_PERC_PTF,2)  
  END  AS VarComplessivo,  
  --CASE  
  -- WHEN (@contaPOS - @contaCC = 0 ) THEN 100  
  -- ELSE isnull(RA.COPERTURA,0)   
  --END AS Copertura,  
  isnull(RA.COPERTURA,0) as copertura,  
-- TRINGALI MODIFICARE  
       ra.creditrisk as RISKCLASS,  
        mifid.riskclass as RISKCLASSMAX,  
  case when ra.creditrisk is null then 'n.a.'  
        else null end   as RiskClassString,  
  case when  mifid.riskclass is null then 'n.a.'  
              else null end as RiskClassMaxString  
 FROM  
        C6MartPeriodico.vPatrimonioBFAggregato AS BF  
 INNER JOIN C6MartPeriodico.MIFID AS MIFID  
  ON  BF.RETE = MIFID.RETE  
  AND BF.COD_FISCALE = MIFID.COD_FISCALE  
 INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR  
  ON MIFID.PROFILO_ASS = CR.PROFILO  
 LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA  
  ON  RA.RETE = BF.RETE  
  AND RA.COD_FISCALE = BF.COD_FISCALE  
  AND RA.COD_AGGREG = 'COMPLESSIVO|BF'  
    
    
    
-- Aggiornamento Copertura    
  
update s80  
 set copertura = ( CASE  
   WHEN (nocc - CC = 0 ) THEN 100  
   ELSE copertura  
  END )  
 from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
 inner join (  
 select rete,cod_fiscale  
 ,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc   
 ,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc   
 from   
 ( select rete,cod_fiscale,tipo_prodotto,count(*) tot  
   from c6martperiodico.patrimonio_Bf  
   --where cod_fiscale = @codiceFiscale and rete = @rete  
   group by rete,cod_fiscale,tipo_prodotto  
 ) as gr  
 group by rete,cod_fiscale  
 ) as tabCount  
     on tabcount.rete= s80.rete and tabcount.cod_fiscale=s80.codicefiscale  
  
  
-- Aggiornamento   
 SELECT RETE,COD_FISCALE, COUNT(*)  tot  
 into #ini  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_INIZIALE  
 group by RETE,COD_FISCALE  
    having count(*) = 0  
  
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #att  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_ATTUALE  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #ris  
 FROM  C6MARTPERIODICO.RISCHIO_AGGREGATO  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
  
    
  delete  s80   
  from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
  inner join (   
  select distinct   
   case when #ini.rete is null   
   then   
   case when #att.rete is null   
     then #ris.rete   
     else  #att.rete  
   end           
    else  #ini.rete  
   end rete,        
   case when #ini.cod_fiscale is null   
   then   
   case when #att.cod_fiscale is null   
     then #ris.cod_fiscale   
     else  #att.cod_fiscale  
   end           
    else  #ini.cod_fiscale  
   end codicefiscale  
  from #ini    
   right JOIN #att on  #ini.rete = #att.rete and #att.cod_fiscale=#ini.cod_fiscale  
   right JOIN #ris on  #ini.rete = #ris.rete and #ris.cod_fiscale=#ini.cod_fiscale  
   ) cont   
   on cont.rete=s80.rete and cont.codicefiscale=s80.codicefiscale  
  
  
  
END  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_20171222]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'  
  
  
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_20171222]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @DataCongelamento DATETIME  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
  
   
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio  
insert into c6martperiodico.tb_S80BisEvoluzioneRischio    
 SELECT  
 ini.rete,  
 ini.COD_FISCALE,  
  1 AS Fase,  
  INI.DATA_FOTO AS DataFase,  
  INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO  
   ELSE ROUND(INI.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  INI.VAR_COPERTURA AS Copertura,  
        INI.RISKCLASS,  
        INI.RISKCLASSMAX,  
  case   
   when INI.RISKCLASS is null  then 'n.d.'  
   when INI.RISKCLASS = 0 then 'n.a.'   
   else null  
  end as RiskClassString,  
    
  case   
   when INI.RISKCLASSMAX is null then 'n.d.'  
   when INI.RISKCLASSMAX = 0 then 'n.a.'  
   else null  
  end as RiskClassMaxString  
    
   
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        LEFT OUTER  join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
  
 UNION ALL  
  
 -- Precedente invio report  
  
 SELECT  
 rep.RETE ,  
  rep.COD_FISCALE ,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO  
   ELSE ROUND(rep.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  rep.VAR_COPERTURA AS Copertura,  
         rep.RISKCLASS,  
         rep.RISKCLASSMAX,  
  case when rep.RISKCLASS is null then 'n.a.'  
    else null  
  end as RiskClassString,  
  case when rep.RISKCLASSMAX is null then 'n.a.'  
    else null  
  end as RiskClassMaxString  
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE    
      -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)
           --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
	 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(REP.DATA_INVIO,cast('29991231' as datetime)),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
  
 UNION ALL  
  
 -- Situazione corrente  
  
 SELECT  
 BF.RETE ,  
  BF.COD_FISCALE,  
  3 fase,  
  CASE  
   WHEN @DataCongelamento IS NULL THEN GETDATE()  
   ELSE @DataCongelamento  
  END AS DataFase,  
  CR.MAX_VAR AS VarMassimoProfiloFinanziario,  
  --V  
  CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00  
    ELSE ROUND(RA.VAR_PERC_PTF,2)  
  END  AS VarComplessivo,  
  --CASE  
  -- WHEN (@contaPOS - @contaCC = 0 ) THEN 100  
  -- ELSE isnull(RA.COPERTURA,0)   
  --END AS Copertura,  
  isnull(RA.COPERTURA,0) as copertura,  
-- TRINGALI MODIFICARE  
       ra.creditrisk as RISKCLASS,  
        mifid.riskclass as RISKCLASSMAX,  
  case when ra.creditrisk is null then 'n.a.'  
        else null end   as RiskClassString,  
  case when  mifid.riskclass is null then 'n.a.'  
              else null end as RiskClassMaxString  
 FROM  
        C6MartPeriodico.vPatrimonioBFAggregato AS BF  
 INNER JOIN C6MartPeriodico.MIFID AS MIFID  
  ON  BF.RETE = MIFID.RETE  
  AND BF.COD_FISCALE = MIFID.COD_FISCALE  
 INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR  
  ON MIFID.PROFILO_ASS = CR.PROFILO  
 LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA  
  ON  RA.RETE = BF.RETE  
  AND RA.COD_FISCALE = BF.COD_FISCALE  
  AND RA.COD_AGGREG = 'COMPLESSIVO|BF'  
    
    
    
-- Aggiornamento Copertura    
  
update s80  
 set copertura = ( CASE  
   WHEN (nocc - CC = 0 ) THEN 100  
   ELSE copertura  
  END )  
 from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
 inner join (  
 select rete,cod_fiscale  
 ,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc   
 ,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc   
 from   
 ( select rete,cod_fiscale,tipo_prodotto,count(*) tot  
   from c6martperiodico.patrimonio_Bf  
   --where cod_fiscale = @codiceFiscale and rete = @rete  
   group by rete,cod_fiscale,tipo_prodotto  
 ) as gr  
 group by rete,cod_fiscale  
 ) as tabCount  
     on tabcount.rete= s80.rete and tabcount.cod_fiscale=s80.codicefiscale  
  
  
-- Aggiornamento   
 SELECT RETE,COD_FISCALE, COUNT(*)  tot  
 into #ini  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_INIZIALE  
 group by RETE,COD_FISCALE  
    having count(*) = 0  
  
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #att  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_ATTUALE  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #ris  
 FROM  C6MARTPERIODICO.RISCHIO_AGGREGATO  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
  
    
  delete  s80   
  from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
  inner join (   
  select distinct   
   case when #ini.rete is null   
   then   
   case when #att.rete is null   
     then #ris.rete   
     else  #att.rete  
   end           
    else  #ini.rete  
   end rete,        
   case when #ini.cod_fiscale is null   
   then   
   case when #att.cod_fiscale is null   
     then #ris.cod_fiscale   
     else  #att.cod_fiscale  
   end           
    else  #ini.cod_fiscale  
   end codicefiscale  
  from #ini    
   right JOIN #att on  #ini.rete = #att.rete and #att.cod_fiscale=#ini.cod_fiscale  
   right JOIN #ris on  #ini.rete = #ris.rete and #ris.cod_fiscale=#ini.cod_fiscale  
   ) cont   
   on cont.rete=s80.rete and cont.codicefiscale=s80.codicefiscale  
  
  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_BKP_20231116_PRE_RAFFORZAMENTO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'  
  
  
CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_BKP_20231116_PRE_RAFFORZAMENTO]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @DataCongelamento DATETIME  
  
 SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()  
 select @DataCongelamento 
  
   
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio  
insert into c6martperiodico.tb_S80BisEvoluzioneRischio    
 SELECT  
 ini.rete,  
 ini.COD_FISCALE,  
  1 AS Fase,  
  INI.DATA_FOTO AS DataFase,  
  INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO  
   ELSE ROUND(INI.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  INI.VAR_COPERTURA AS Copertura,  
        INI.RISKCLASS,  
        INI.RISKCLASSMAX,  
  case   
   when INI.RISKCLASS is null  then 'n.d.'  
   when INI.RISKCLASS = 0 then 'n.a.'   
   else null  
  end as RiskClassString,  
    
  case   
   when INI.RISKCLASSMAX is null then 'n.d.'  
   when INI.RISKCLASSMAX = 0 then 'n.a.'  
   else null  
  end as RiskClassMaxString  
    
   
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        LEFT OUTER  join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  

	
  
 UNION ALL  
  
 -- Precedente invio report  
  
 SELECT  
 rep.RETE ,  
  rep.COD_FISCALE ,  
  2 AS Fase,  
  rep.DATA_INVIO AS DataFase,  
  rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,  
  --V  
  CASE  
   WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO  
   ELSE ROUND(rep.VAR_COMPLESSIVO,2)  
  END AS VarComplessivo,  
  rep.VAR_COPERTURA AS Copertura,  
         rep.RISKCLASS,  
         rep.RISKCLASSMAX,  
  case when rep.RISKCLASS is null then 'n.a.'  
    else null  
  end as RiskClassString,  
  case when rep.RISKCLASSMAX is null then 'n.a.'  
    else null  
  end as RiskClassMaxString  
    
 FROM  
  C6MartPeriodico.MONITORAGGIO_INIZIALE INI  
        left outer join  
        C6MartPeriodico.MONITORAGGIO_REPORT rep  
        on   
        REP.RETE=INI.RETE  
        AND   
        REP.COD_FISCALE=INI.COD_FISCALE  
 WHERE    
      -- modifica del 24/7/2017 per gestire le situazioni limite dell'avvio monitoraggio a cavallo tra 2 trim (vedi segnalazione
	 --   del qc su cf F/TRRLDA52D04G190A)
           --INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))  
	 CONVERT(varchar,ini.data_foto,112) <= convert(varchar,ISNULL(REP.DATA_INVIO,cast('29991231' as datetime)),112)
	 -- fine modifica del 24/7/2017

  and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento  
  
  
 UNION ALL  
  
 -- Situazione corrente  
  
 SELECT  
 BF.RETE ,  
  BF.COD_FISCALE,  
  3 fase,  
  CASE  
   WHEN @DataCongelamento IS NULL THEN GETDATE()  
   ELSE @DataCongelamento  
  END AS DataFase,  
  CR.MAX_VAR AS VarMassimoProfiloFinanziario,  
  --V  
  CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00  
    ELSE ROUND(RA.VAR_PERC_PTF,2)  
  END  AS VarComplessivo,  
  --CASE  
  -- WHEN (@contaPOS - @contaCC = 0 ) THEN 100  
  -- ELSE isnull(RA.COPERTURA,0)   
  --END AS Copertura,  
  isnull(RA.COPERTURA,0) as copertura,  
-- TRINGALI MODIFICARE  
       ra.creditrisk as RISKCLASS,  
        mifid.riskclass as RISKCLASSMAX,  
  case when ra.creditrisk is null then 'n.a.'  
        else null end   as RiskClassString,  
  case when  mifid.riskclass is null then 'n.a.'  
              else null end as RiskClassMaxString  
 FROM  
        C6MartPeriodico.vPatrimonioBFAggregato AS BF  
 INNER JOIN C6MartPeriodico.MIFID AS MIFID  
  ON  BF.RETE = MIFID.RETE  
  AND BF.COD_FISCALE = MIFID.COD_FISCALE  
 INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR  
  ON MIFID.PROFILO_ASS = CR.PROFILO  
 LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA  
  ON  RA.RETE = BF.RETE  
  AND RA.COD_FISCALE = BF.COD_FISCALE  
  AND RA.COD_AGGREG = 'COMPLESSIVO|BF'  
    
    
    
-- Aggiornamento Copertura    
  
update s80  
 set copertura = ( CASE  
   WHEN (nocc - CC = 0 ) THEN 100  
   ELSE copertura  
  END )  
 from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
 inner join (  
 select rete,cod_fiscale  
 ,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc   
 ,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc   
 from   
 ( select rete,cod_fiscale,tipo_prodotto,count(*) tot  
   from c6martperiodico.patrimonio_Bf  
   --where cod_fiscale = @codiceFiscale and rete = @rete  
   group by rete,cod_fiscale,tipo_prodotto  
 ) as gr  
 group by rete,cod_fiscale  
 ) as tabCount  
     on tabcount.rete= s80.rete and tabcount.cod_fiscale=s80.codicefiscale  
  
  
-- Aggiornamento   
 SELECT RETE,COD_FISCALE, COUNT(*)  tot  
 into #ini  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_INIZIALE  
 group by RETE,COD_FISCALE  
    having count(*) = 0  
  
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #att  
 FROM  
 C6MARTPERIODICO.MONITORAGGIO_ATTUALE  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
   SELECT RETE,COD_FISCALE, COUNT(*) tot  
   into #ris  
 FROM  C6MARTPERIODICO.RISCHIO_AGGREGATO  
 group by RETE,COD_FISCALE  
  having count(*) = 0  
    
  
    
  delete  s80   
  from c6martperiodico.tb_S80BisEvoluzioneRischio s80  
  inner join (   
  select distinct   
   case when #ini.rete is null   
   then   
   case when #att.rete is null   
     then #ris.rete   
     else  #att.rete  
   end           
    else  #ini.rete  
   end rete,        
   case when #ini.cod_fiscale is null   
   then   
   case when #att.cod_fiscale is null   
     then #ris.cod_fiscale   
     else  #att.cod_fiscale  
   end           
    else  #ini.cod_fiscale  
   end codicefiscale  
  from #ini    
   right JOIN #att on  #ini.rete = #att.rete and #att.cod_fiscale=#ini.cod_fiscale  
   right JOIN #ris on  #ini.rete = #ris.rete and #ris.cod_fiscale=#ini.cod_fiscale  
   ) cont   
   on cont.rete=s80.rete and cont.codicefiscale=s80.codicefiscale  
  
  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80BisEvoluzioneRischio]'F','02392500605S'


CREATE procedure [C6MartPeriodico].[Popola_S80BisEvoluzioneRischio_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @DataCongelamento DATETIME

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()

	
truncate table c6martperiodico.tb_S80BisEvoluzioneRischio
insert into c6martperiodico.tb_S80BisEvoluzioneRischio	 
	SELECT
	ini.rete,
	ini.COD_FISCALE,
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
			ELSE ROUND(INI.VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		INI.VAR_COPERTURA AS Copertura,
        INI.RISKCLASS,
        INI.RISKCLASSMAX,
		case 
			when INI.RISKCLASS is null  then 'n.d.'
			when INI.RISKCLASS = 0 then 'n.a.'	
			else null
		end as RiskClassString,
		
		case 
			when INI.RISKCLASSMAX is null then 'n.d.'
			when INI.RISKCLASSMAX = 0 then 'n.a.'
			else null
		end as RiskClassMaxString
		
	
		
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        LEFT OUTER  join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE

	UNION ALL

	-- Precedente invio report

	SELECT
	rep.RETE ,
		rep.COD_FISCALE ,
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO
			ELSE ROUND(rep.VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		rep.VAR_COPERTURA AS Copertura,
         rep.RISKCLASS,
         rep.RISKCLASSMAX,
		case when rep.RISKCLASS is null then 'n.a.'
			 else null
		end as RiskClassString,
		case when rep.RISKCLASSMAX is null then 'n.a.'
			 else null
		end as RiskClassMaxString
		
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE		
 INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento


	UNION ALL

	-- Situazione corrente

	SELECT
	BF.RETE ,
		BF.COD_FISCALE,
		3 fase,
		CASE
			WHEN @DataCongelamento IS NULL THEN GETDATE()
			ELSE @DataCongelamento
		END AS DataFase,
		CR.MAX_VAR AS VarMassimoProfiloFinanziario,
		--V
		CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00
			 ELSE ROUND(RA.VAR_PERC_PTF,2)
		END  AS VarComplessivo,
		--CASE
		--	WHEN (@contaPOS - @contaCC = 0 ) THEN 100
		--	ELSE isnull(RA.COPERTURA,0) 
		--END AS Copertura,
		isnull(RA.COPERTURA,0) as copertura,
-- TRINGALI MODIFICARE
       ra.creditrisk as RISKCLASS,
        mifid.riskclass as RISKCLASSMAX,
		case when ra.creditrisk is null then 'n.a.'
        else null end   as RiskClassString,
		case when  mifid.riskclass is null then 'n.a.'
              else null end as RiskClassMaxString
	FROM
        C6MartPeriodico.vPatrimonioBFAggregato AS BF
	INNER JOIN C6MartPeriodico.MIFID AS MIFID
		ON 	BF.RETE = MIFID.RETE
		AND BF.COD_FISCALE = MIFID.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MIFID.PROFILO_ASS = CR.PROFILO
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON 	RA.RETE = BF.RETE
		AND RA.COD_FISCALE = BF.COD_FISCALE
		AND RA.COD_AGGREG = 'COMPLESSIVO|BF'
		
		
		
-- Aggiornamento Copertura		

update s80
	set copertura = ( CASE
			WHEN (nocc - CC = 0 ) THEN 100
			ELSE copertura
		END )
	from c6martperiodico.tb_S80BisEvoluzioneRischio s80
	inner join (
	select rete,cod_fiscale
	,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc 
	,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc 
	from 
	( select rete,cod_fiscale,tipo_prodotto,count(*) tot
	  from c6martperiodico.patrimonio_Bf
	  --where cod_fiscale = @codiceFiscale and rete = @rete
	  group by rete,cod_fiscale,tipo_prodotto
	) as gr
	group by rete,cod_fiscale
	) as tabCount
     on tabcount.rete= s80.rete and tabcount.cod_fiscale=s80.codicefiscale


-- Aggiornamento 
	SELECT RETE,COD_FISCALE, COUNT(*)  tot
	into #ini
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	group by RETE,COD_FISCALE
    having count(*) = 0

   SELECT RETE,COD_FISCALE, COUNT(*) tot
   into #att
	FROM
	C6MARTPERIODICO.MONITORAGGIO_ATTUALE
	group by RETE,COD_FISCALE
  having count(*) = 0
  
   SELECT RETE,COD_FISCALE, COUNT(*) tot
   into #ris
	FROM  C6MARTPERIODICO.RISCHIO_AGGREGATO
	group by RETE,COD_FISCALE
  having count(*) = 0
  

  
  delete  s80 
  from c6martperiodico.tb_S80BisEvoluzioneRischio s80
  inner join ( 
  select distinct 
		 case when #ini.rete is null 
		 then 
			case when #att.rete is null 
			  then #ris.rete 
			  else  #att.rete
			end         
		  else  #ini.rete
		 end rete,      
		 case when #ini.cod_fiscale is null 
		 then 
			case when #att.cod_fiscale is null 
			  then #ris.cod_fiscale 
			  else  #att.cod_fiscale
			end         
		  else  #ini.cod_fiscale
		 end codicefiscale
  from #ini  
   right JOIN #att on  #ini.rete = #att.rete and #att.cod_fiscale=#ini.cod_fiscale
   right JOIN #ris on  #ini.rete = #ris.rete and #ris.cod_fiscale=#ini.cod_fiscale
   ) cont 
   on cont.rete=s80.rete and cont.codicefiscale=s80.codicefiscale



END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_TB_S180ProdottiComplessitaAlta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
-- =============================================  
-- Author:  <>  
-- Create date: <>  
-- Description: <caricamento tabella di generazione TB_S180ProdottiComplessitaAlta>  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[Popola_TB_S180ProdottiComplessitaAlta]  
 -- Add the parameters for the stored procedure here  
 --@Rete char(1),   
 --@CodiceFiscale varchar(16)  
AS  
BEGIN  
  
DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  

truncate table C6MartPeriodico.TB_S180ProdottiComplessitaAlta  

INSERT INTO [C6MartPeriodico].[TB_S180ProdottiComplessitaAlta]
           ([Rete]
           ,[Cod_fiscale]
           ,[Codman]
           ,[Ordine]
           ,[CodiceContratto]
           ,[NomeProdotto]
           ,[Controvalore]
           ,[Compl_Base]
		   ,Percentuale_CTV)
SELECT distinct
    rete,
	case when codman<>'' then 'FF@'+trim(codman) else trim(codfis) end as Cod_Fiscale,
	trim(codman),
	1, --ordine viene impostato a un valore fisso perché al momento non lo gestiamo
	trim(codconf),
	trim(descprod),
	ctv,
	case when compl='H' then 4 
		 when compl='MH' then 3
		 when compl='ML' then 2 end as Complessita,
	PERCCTV
	
FROM 
[C6StagingPeriodico].[WSEIAD2] wsei

	

WHERE 1=1
    
     and DTTRIM =  @DataFineTrim

END  
  

  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_W6ASSETPERC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[Popola_W6ASSETPERC]
AS  
BEGIN  
  
 SET NOCOUNT ON;  
 
  
 delete from  [consuni].consulenzaunica.[dbo].[W6ASSETPERC] 

 INSERT INTO [consuni].consulenzaunica.[dbo].[W6ASSETPERC] 
	(
	[COD_INTERNO]  
	,[COD_SOTTOPRODOTTO]
	,[COD_ISIN]  
	,[COD_MAF]
	,[ID_ASSETCLASS]
	,[CATALOGUENAME]
	,[ASSETCLASSNAME]
	,[BDPERCENTAGE]
	----------modifica del 24/6/2019
	,[Visibilita]
	----------FINE modifica del 24/6/2019

	)
      
-- modifica richiesta il 25-26/6/2019 (Tesi/Scirocco) - modificata la join tra le tabelle per caricare anche i prodotti che non sono mappati

SELECT DISTINCT
	isnull(cat.CodInterno,'') AS COD_INTERNO, 
	isnull(cat.CodSottoprodotto,'') AS COD_SOTTOPRODOTTO,
	isnull(cat.CodIsin,'') AS COD_ISIN,
	isnull(cat.CodMaf,'') AS COD_MAF,
	isnull(LTRIM(RTRIM(map.Asset)),'') AS ID_ASSETCLASS,
	isnull(cat.NomeProdotto,'') as CATALOGUENAME,
	isnull(map.Descrizione,'') as ASSETCLASSNAME,
	isnull(LTRIM(RTRIM(map.Percentuale)),0) AS BDPERCENTAGE,
	--map.Percentuale AS BDPERCENTAGE,
	-- ----------modifica del 24/6/2019
	--isnull(cat.visibilita,'') AS VISIBILITA
	cat.visibilita AS VISIBILITA
	----------FINE modifica del 24/6/2019


FROM C6StagingPeriodico.RP_CatalogoProdotti cat
		
		left join (select m.chiaveprodotto,a.Asset,a.Descrizione,m.Percentuale from C6StagingPeriodico.RP_Mappatura m
							inner join C6StagingPeriodico.RP_AssetClass  a
							ON a.Asset = m.Asset and a.Livello = 2
		
		)  AS map   ON map.ChiaveProdotto = cat.ChiaveProdotto 
		
		
WHERE 1=1
               and  cat.CodInterno is not null 


  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_W6ASSETPERC_20190624]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[Popola_W6ASSETPERC_20190624]
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
		 --DECLARE @ID_ELAB INT  
		 --DECLARE @TIPO_ELAB VARCHAR(1)  
  
		 --SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
		 --SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
		 ---- Log esecuzione  
		 --INSERT INTO LOG_ESECUZIONE_PERIODICO  
		 -- (Nome, Inizio, Nota)  
		 --VALUES (  
		 -- 'W6ASSETPERC',  
		 -- GETDATE(),  
		 -- 'Elaborazione trimestrale'  
		 --)  
  
 delete from  [consuni].consulenzaunica.[dbo].[W6ASSETPERC] 

 INSERT INTO [consuni].consulenzaunica.[dbo].[W6ASSETPERC] 
	(
	[COD_INTERNO]  
	,[COD_SOTTOPRODOTTO]
	,[COD_ISIN]  
	,[COD_MAF]
	,[ID_ASSETCLASS]
	,[CATALOGUENAME]
	,[ASSETCLASSNAME]
	,[BDPERCENTAGE]
	)
      
SELECT DISTINCT
	isnull(cat.CodInterno,'') AS COD_INTERNO, 
	isnull(cat.CodSottoprodotto,'') AS COD_SOTTOPRODOTTO,
	isnull(cat.CodIsin,'') AS COD_ISIN,
	isnull(cat.CodMaf,'') AS COD_MAF,
	isnull(LTRIM(RTRIM(ac.Asset)),'') AS ID_ASSETCLASS,
	isnull(cat.NomeProdotto,'') as CATALOGUENAME,
	isnull(ac.Descrizione,'') as ASSETCLASSNAME,
	isnull(LTRIM(RTRIM(map.Percentuale)),'') AS BDPERCENTAGE
FROM C6StagingPeriodico.RP_Mappatura AS map
	INNER JOIN C6StagingPeriodico.RP_AssetClass AS ac
	ON map.Asset = ac.Asset
		INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti cat
		ON map.ChiaveProdotto = cat.ChiaveProdotto
WHERE Livello = 2
-- ----------modifica del 30/5/2019
               and  cat.CodInterno is not null
-- ----------fire modifica del 30/5/2019
-- ----------modifica del 21/6/2019
			 -- and cat.visibilita = 1
-- ----------fire modifica del 21/6/2019




		 -- Log esecuzione  
		 --UPDATE  
		 -- LOG_ESECUZIONE_PERIODICO  
		 --SET  
		 -- Fine = GETDATE(),  
		 -- Tipo = 'INSERT',  
		 -- Righe = @@ROWCOUNT  
		 --WHERE  
		 -- Nome = 'W6ASSETPERC' AND  
		 -- Inizio = (  
		 --  SELECT  
		 --   MAX(Inizio)  
		 --  FROM  
		 --   LOG_ESECUZIONE_PERIODICO  
		 --  WHERE  
		 --   Nome = 'W6ASSETPERC'  
		 -- )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popola_W6ASSETPERC_20190701]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[Popola_W6ASSETPERC_20190701]
AS  
BEGIN  
  
 SET NOCOUNT ON;  
 
  
 delete from  [consuni].consulenzaunica.[dbo].[W6ASSETPERC] 

 INSERT INTO [consuni].consulenzaunica.[dbo].[W6ASSETPERC] 
	(
	[COD_INTERNO]  
	,[COD_SOTTOPRODOTTO]
	,[COD_ISIN]  
	,[COD_MAF]
	,[ID_ASSETCLASS]
	,[CATALOGUENAME]
	,[ASSETCLASSNAME]
	,[BDPERCENTAGE]
	----------modifica del 24/6/2019
	,[Visibilita]
	----------FINE modifica del 24/6/2019

	)
      
SELECT DISTINCT
	isnull(cat.CodInterno,'') AS COD_INTERNO, 
	isnull(cat.CodSottoprodotto,'') AS COD_SOTTOPRODOTTO,
	isnull(cat.CodIsin,'') AS COD_ISIN,
	isnull(cat.CodMaf,'') AS COD_MAF,
	isnull(LTRIM(RTRIM(ac.Asset)),'') AS ID_ASSETCLASS,
	isnull(cat.NomeProdotto,'') as CATALOGUENAME,
	isnull(ac.Descrizione,'') as ASSETCLASSNAME,
	isnull(LTRIM(RTRIM(map.Percentuale)),'') AS BDPERCENTAGE,
	-- ----------modifica del 24/6/2019
	isnull(cat.visibilita,'') AS VISIBILITA
	----------FINE modifica del 24/6/2019

FROM C6StagingPeriodico.RP_Mappatura AS map
	INNER JOIN C6StagingPeriodico.RP_AssetClass AS ac
	ON map.Asset = ac.Asset
		INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti cat
		ON map.ChiaveProdotto = cat.ChiaveProdotto
WHERE Livello = 2
-- ----------modifica del 30/5/2019
               and  cat.CodInterno is not null
-- ----------fire modifica del 30/5/2019
		
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popolamento_RP_vTuttiIPortafogli_Aladdin_tab]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[Popolamento_RP_vTuttiIPortafogli_Aladdin_tab]
	
AS
BEGIN
	
	SET NOCOUNT ON;

	--dichiaro variabile data di trimestrale
	DECLARE @dttrim int
	
	--valorizzo la data di trimestrale al giorno del congelamento
	set @dttrim  = CAST(CONVERT(varchar, CAST(C6MartPeriodico.getDataCongelamento() as DATETIME),112) as int)

	
	--Tronchiamo la tabella RP_vTuttiIPortafogli_Aladdin_tab e la ripopoliamo
	--a partire dalla vista RP_vTuttiIPortafogli_Aladdin

	Truncate table C6StampeCentralizzate.C6MartPeriodico.RP_vTuttiIPortafogli_Aladdin_tab
	--
	insert into C6StampeCentralizzate.C6MartPeriodico.RP_vTuttiIPortafogli_Aladdin_tab
		select 
		'6' as FLGCLI ,
		'M' as FLGBL ,
		'B' as TIPOELA,
		@dttrim  as DTTRIM,
		rete,
		codfis,
		piva,
		codman,
		'' as CODFID,
		'' as CODAGE,
		CASE  
			WHEN cod_interno <> 'SINT3MEUR' and famprodt = 'DT' THEN isnull(cod_interno,'')   
			ELSE '' 
		END  as CODABI, 
		ISNULL(termid,00000000), 
		cast(annos as int) as anno ,
		cast(progs as int) as prog ,
		0 as quote,
		cast(ctvreale as float) as CTV,
		codconf, --17
		rubr,
		custgar,
		ISNULL(cod_interno,''),
		'' as codana,
		'' as FLAGPCT,
		--CASE  
		--	WHEN famprodt <> 'DT' and famprodt <> 'CC' THEN isnull(cod_interno,'')
		--	ELSE ''   
		--END 
		'' as codprod,
		ISNULL(cod_sottoprodotto,''),
		ISNULL(cod_isin,''),
		'' as codlinea,
		tipoptf,
		area,
		progetto,
		codprj,
		ISNULL(chiave_prodotto_terzi,''),
		ISNULL(assetterzi,''),
		ISNULL(famprodt,''),
		ISNULL(intermediario,''),
		ISNULL(codiceadeguatezza,''),
		ISNULL(cod_maf,''),
		conto,
		numpolizza,
		position_id
		from [C6StampeCentralizzate].[C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin]

	-- Aggiungiamo le informazioni mancanti per il codman piva_fiduciaria

	select b.cod_mandato,b.rete,b.piva_fiduciaria into 
		#tab
		FROM 
			[C6StampeCentralizzate].[C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin_tab] a
			inner join (select distinct rete,cod_mandato,piva_fiduciaria from [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI_V] where cod_mandato<>'') b
			on a.rete= b.rete and isnull(a.codman,'')=isnull(b.cod_mandato,'')


	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin_tab]
		set piva = piva_fiduciaria
		from #tab tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin_tab] as a 
		on a.rete= tab.rete and isnull(a.codman,'')=isnull(tab.cod_mandato,'')

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Popolamento_RP_W6CLIREP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE   PROCEDURE [C6MartPeriodico].[Popolamento_RP_W6CLIREP]
	
AS
BEGIN
	
	SET NOCOUNT ON;

	--dichiaro variabile data di trimestrale
	DECLARE @dttrim int
	
	--valorizzo la data di trimestrale al giorno del congelamento
	set @dttrim  = CAST(CONVERT(varchar, CAST(C6MartPeriodico.getDataCongelamento() as DATETIME),112) as int)
	--print @dttrim
	
	--Tronchiamo la tabella RP_vTuttiIPortafogli_Aladdin_tab e la ripopoliamo
	--a partire dalla vista RP_vTuttiIPortafogli_Aladdin

	Truncate table C6StampeCentralizzate.C6MartPeriodico.w6clirep
	--
	insert into C6StampeCentralizzate.C6MartPeriodico.w6clirep
		select 
		'6' as FLGCLI ,
		'M' as FLGBL ,
		'A' as TIPOELA,
		@dttrim as DTTRIM,
		rete,
		codfis,
		piva,
		codman,
		'' as CODFID,
		'' as CODAGE,
		CASE  
			WHEN cod_interno not in ('SINT3MEUR','SINT6MEUR','09560690') and famprodt = 'DT' THEN isnull(cod_interno,'')   --aggiunta SINT6MEUR 10/03/2023 
			ELSE '' 
		END  as CODABI, 
		ISNULL(termid,00000000), 
		cast(annos as int) as anno ,
		case when famprodt='GE' then 00000000 --aggiunta con else sotto
		else cast(progs as int) end as prog ,
		0 as quote,
		cast(ctvreale as float) as CTV,
		codconf, --17
		rubr,
		custgar,
		ISNULL(cod_interno,''),
		'' as codana,
		CASE  
			WHEN    cast(annos as int) <> 0 and cast(progs as int) <> 0 then 'S' 
			ELSE 'N' 
		END as FLAGPCT,
		--CASE  
		--	WHEN famprodt <> 'DT' and famprodt <> 'CC' THEN isnull(cod_interno,'')
		--	ELSE ''   
		--END 
		'' as codprod,
		ISNULL(cod_sottoprodotto,''),
		ISNULL(cod_isin,''),
		'' as codlinea,
		tipoptf,
		area,
		progetto,
		codprj,
		ISNULL(chiave_prodotto_terzi,''),
		ISNULL(assetterzi,''),
		ISNULL(famprodt,''),
		ISNULL(intermediario,''),
		ISNULL(codiceadeguatezza,''),
		ISNULL(cod_maf,''),
		conto,
		numpolizza,
		position_id,
		--aggiunta 08/06/2022
		'' as PREFSOST,
		'' as FLAGAMB,
		'' as FLAGSOC,
		'' as FLAGGOV,
		Prodotto_id
		from [C6StampeCentralizzate].[C6MartPeriodico].[RP_vTuttiIPortafogli_Aladdin]


	--aggiunta informazioni codabi per i prodotti PCT

SELECT [DTTRIM]
      ,[DTRIFE]
      ,ltrim(rtrim([RETE])) as rete
      ,ltrim(rtrim([CODFIS])) as codfis
      ,ltrim(rtrim([CODCONF])) as codconf
      ,[NUMPOL]
      ,ltrim(rtrim([CONTO])) as conto
      ,[RUBR]
      ,[CUSTGAR]
      ,ltrim(rtrim([TIPPROD])) as tipprod
      ,ltrim(rtrim([CODINT])) as codint
      ,[CODPROD]
      ,[SUBPROD]
      ,[MAF]
      ,[CODABI]
      ,[PCTKEY]
      ,[DESTIT]
      ,[CTV]
      ,[PARTVIA]
      ,[PARTVIAAL]
      ,[DTSOTTOS]
      ,[RENDINIZ]
      ,[RENDANNO]
      ,[VALORE]
      ,[SUBSET]
      ,[CVN]
      ,[QUOTE]
      ,ltrim(rtrim([CODMAN])) as codman
      ,[SALRISC]
      ,[ATTIVO]
  into #PCT --selezioniamo dalla wseics i soli clienti possessori di un pct in portafoglio
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[wseics] WHERE CODABI <> '' 
  and pctKey <> ''
  and dttrim = (Select Max(dttrim) from [C6StampeCentralizzate].[C6StagingPeriodico].[wseics]) 

  UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
		set codabi = pct.codabi
		--select w6.rete,pct.rete,w6.codfis,w6.piva,pct.codfis,w6.codman,pct.codman,w6.conto,pct.conto,w6.codconf,pct.codconf,pct.codabi
		--, pct.tipprod,w6.famprodt 
		from #PCT pct
		left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] as w6
		on w6.rete=pct.rete and w6.codfis+w6.piva+w6.codman = ltrim(rtrim(pct.codfis))+ltrim(rtrim(pct.codman))
		 and w6.codconf=ltrim(rtrim(pct.codconf)) and w6.conto=ltrim(rtrim(pct.conto)) and w6.famprodt = ltrim(rtrim(pct.tipprod)) 
		where w6.flagpct = 'S'
	-- Aggiungiamo le informazioni mancanti per il codman piva_fiduciaria

	select b.cod_mandato,b.rete,b.piva_fiduciaria into 
		#tab
		FROM 
			[C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] a
			inner join (select distinct rete,cod_mandato,piva_fiduciaria from [C6StampeCentralizzate].[C6StagingPeriodico].[APPO_CONTRATTI_V] where cod_mandato<>'') b
			on a.rete= b.rete and isnull(a.codman,'')=isnull(b.cod_mandato,'')


	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep]
		set piva = piva_fiduciaria
		from #tab tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] as a 
		on a.rete= tab.rete and isnull(a.codman,'')=isnull(tab.cod_mandato,'')

	--1 update per CF
	update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
		set codage = appo.cod_agente
		from c6stagingperiodico.appo_contratti appo
		left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
		on w.rete= appo.rete and isnull(w.codfis,'') = isnull(appo.cod_fiscale,'')

	--2 update per Piva
	update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
		set codage = appo.cod_agente
		from c6stagingperiodico.appo_contratti appo
		left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
		on w.rete= appo.rete and isnull(w.piva,'') = isnull(appo.cod_fiscale,'')
		where w.piva <> ''

	--3 update per Fiduciaria
	update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
		set codage = appo.cod_agente
		from c6stagingperiodico.appo_contratti appo
		left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
		on w.rete= appo.rete and 'FF@'+(isnull(w.codman,'')) = isnull(appo.cod_fiscale,'')
		where w.codman <> ''

	--update per inserire le informazioni del codana del cliente
	update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
	set codana = wp.codana
	FROM [C6StagingPeriodico].[WANVIPS] wp
	left join [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] w
	on w.rete = wp.rete and w.codfis+w.piva+w.codman = ltrim(rtrim(wp.codfis))+ltrim(rtrim(wp.codman))

		update [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] 
	set cod_isin=''
	where cod_interno in ('KB', 'KC', 'KG', 'KJ', 'KI', 'KD', 'KF', 'KL', 'KN', 'KO', 'KE', 'KS') and  len(cod_isin)<12


	--eliminazione righe duplicate per API ma le teniamo in una tb di Recupero per eventuali analisi
	truncate table [C6MartPeriodico].[W6CLI_REK]

	insert into [C6MartPeriodico].[W6CLI_REK]
	select  * 
	from [C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] where tipoptf = 'TIPOPRODTERZI|TERZI'


	delete from 
	[C6StampeCentralizzate].[C6MartPeriodico].[w6clirep] where tipoptf = 'TIPOPRODTERZI|TERZI'

	update C6MartPeriodico.W6CLIREP
	set PREFSOST= case when an.prefsost='S' then 1 else 0 end,FLAGAMB=case when an.flagamb='S' then 'Y' else 'N' end ,
	FLAGSOC=case when an.flagsoc='S' then 'Y' else 'N' end, FLAGGOV=case when an.flaggov='S' then 'Y' else 'N' end
	from C6stagingPeriodico.wseian2 an left join C6MartPeriodico.W6CLIREP w 
	on w.rete = an.rete and w.codfis+w.piva+w.codman = ltrim(rtrim(an.codfis))+ltrim(rtrim(an.codman))
	where an.DTTRIM=@dttrim

	update C6MartPeriodico.W6CLIREP
	set cod_interno=cod_isin
	where termid in ('BDR20000','TDV20000')

	update C6MartPeriodico.W6CLIREP
	set PRODOTTO_ID='$'
	where Prodotto_ID='PRODOTTO NON IN CATALOGO'


END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[ProfiloScaduto_Campione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[ProfiloScaduto_Campione] 
	-- Add the parameters for the stored procedure here
	
AS
BEGIN

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	SELECT c.rete as Rete, c.cod_fiscale as [Codice Fiscale], flag_stampa 
FROM [C6MartPeriodico].[TB_Campione] c
INNER JOIN C6MartPERIODICO.MIFID   m
ON c.cod_fiscale = m.COD_FISCALE 
WHERE m.SCADUTO <> 0
    -- Insert statements for procedure here
	
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[PROM_TuttiIPortafogli]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[PROM_TuttiIPortafogli]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,[CtvNominale]
      ,[CtvReale]
FROM (

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6StampeCentralizzate].[C6Martperiodico].[vTuttiIPortafogli_ccLiq]
) T
--where t.codicefiscale = 'RNZFNC33H06Z404A'
order by rete,codiceFiscale,Portafoglio




END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RESTART_CONTROLLO_TRIMESTRALE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
CREATE procedure [C6MartPeriodico].[RESTART_CONTROLLO_TRIMESTRALE]
AS
BEGIN

INSERT INTO C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
	--SELECT DISTINCT COD_FISCALE, RETE, FLAG_DIAGNOSI, NULL, NULL, 1, NULL, getdate() FROM C6MARTPERIODICO.CONTROLLO_TRIMESTRALE WHERE STATO_REPORT=7

select distinct cod_Fiscale,b.rete, flag_diagnosi,null,null,1,null,getdate()
from --c6martperiodico.gestione_pdf_ftp a
--join 
c6martperiodico.controllo_trimestrale b
--on a.rete=b.rete and a.codiceFiscale = b.cod_fiscale
--where id_fk_zip = 353
--and 
where b.rete+b.cod_Fiscale  in (select distinct rete + codiceFiscale from c6martperiodico.excludedlist where bloccato = 0)
--where bloccato = 1)
and stato_report < 20 and stato_report >= 4


END
--
--select count(*),stato_report
--from c6martperiodico.controllo_trimestrale
--group by stato_report
--
--select * from c6martperiodico.controllo_trimestrale
--where cod_fiscale = 'BBBRFL74M50C573M'
--where stato_report = 7

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RFA_SEGNALATI_SP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 24/11/2008  
-- Description: Aggiunta chiave primaria autoincrement su tabella di staging   
--    per eliminazione duplicati.  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RFA_SEGNALATI_SP]  
AS  
BEGIN  


SET NOCOUNT ON;  
INSERT INTO [C6MartPeriodico].[ExcludedList]
(Rete,codicefiscale,DescrErr,DataIns,Bloccato)
select rfa.rete,rfa.codfis,'DESCR_ANOM_VP',getdate(),'1'
from [C6MartPeriodico].RFA_SEGNALATI as rfa




 
END  
  
  
--select count(*) from c6martperiodico.mifid  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RM_Sintesi_Cliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6Mart].[RM_Sintesi_Cliente] 179
CREATE procedure [C6MartPeriodico].[RM_Sintesi_Cliente]

	@IdReport INT

AS
BEGIN
	SET NOCOUNT ON;

	SELECT 
		ANAG_CLIENTI.NOME + ' ' + ANAG_CLIENTI.COGNOME AS NomeCognome,
		ANAG_CLIENTI.DATA_NASCITA AS DataNascita,
		ANAG_CLIENTI.COD_FISCALE AS CodiceFiscale,
		CONTRATTOSEI.CODICECONTRATTO AS CodiceContratto,
		ISNULL(CONTRATTOSEI.INDIRIZZO,'') + ' ' +
		ISNULL(CONTRATTOSEI.CAP,'') + ' ' +
		ISNULL(CONTRATTOSEI.CITTA,'') + 
		CASE 
			WHEN CONTRATTOSEI.PROV IS NULL THEN ''
			ELSE ' (' + CONTRATTOSEI.PROV + ')'  
		END AS IndirizzoDiContratto,
		isnull(CONTRATTOSEI.PRESSO,'') AS Presso
	FROM C6MARTPERIODICO.GESTIONE_PDF_FTP
	INNER JOIN C6MART.CONTRATTOSEI
		ON CONTRATTOSEI.RETE = GESTIONE_PDF_FTP.RETE 
		AND CONTRATTOSEI.COD_FISCALE = GESTIONE_PDF_FTP.CODICEFISCALE
	INNER JOIN C6MARTPERIODICO.ANAG_CLIENTI 
		ON ANAG_CLIENTI.RETE = CONTRATTOSEI.RETE 
		AND ANAG_CLIENTI.COD_FISCALE = CONTRATTOSEI.COD_FISCALE
	WHERE GESTIONE_PDF_FTP.IDREPORT = @IdReport

END











GO
/****** Object:  StoredProcedure [C6MartPeriodico].[rp_aggiornaDataValidazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [C6MartPeriodico].[rp_aggiornaDataValidazione]
-- Serve all'applicativo da scaricare one shot, a regime modificare il linked server con CONSEVO
as 

--select count(*) from [10.10.32.220].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT

begin



BEGIN TRANSACTION
	BEGIN TRY
	
		--SELECT COUNT(*) FROM [CONSEVO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT
		delete from [CONSEVO_PERIODICO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT

		insert into [CONSEVO_PERIODICO].ConsulenzaBaseFL.[dbo].CBS_STAMPAREPORT

		select 
			DataGenerazione as data,
			SUBSTRING(NomeFile, 1, 11) as codiceContratto, --SUBSTRING(NomeFile, 0, 12)
			case 
				when (id_fk_zip = -1) then 0
				else 1
			end as definitivo,
			getDate() as dataAggiornamento
		from 
		(
		select 
		datagenerazione, nomefile,id_fk_zip, 
		row_number() over (partition by SUBSTRING(NomeFile, 1, 11) order by datagenerazione desc) pippo from --SUBSTRING(NomeFile, 0, 12)
		C6MartPeriodico.gestione_pdf_ftp
		)l where pippo =1


	COMMIT TRANSACTION
	
END TRY

BEGIN CATCH
	ROLLBACK TRANSACTION
END CATCH


--non esegue RPC vedere come farlo
--exec [10.10.32.220].consulenzabasefl.[dbo].CBS_STREPORT

/*
la procedura è consulenzabasefl.[dbo].CBS_STREPORT
[12:41:32] Veronica: tabella:
[12:41:52] Veronica: ConsulenzaBaseFL.[dbo].[CBS_StampaReport](
 [DATA] [datetime] NULL,
 [CODICECONTRATTO] [varchar](11) NULL,
 [DEFINITIVO] [int] NULL,
 [DATAAGGIORNAMENTO] [datetime] NULL
)


*/

end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_AggiornaFlagContratto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select * from C6MartPeriodico.CONTRATTOSEI_METADATI

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_AggiornaFlagContratto]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_AggiornaFlagContratto',
		GETDATE(),
		'Elaborazione giornaliera'
	)
/*
select top 1 *
from C6MartPeriodico.CONTRATTOSEI_METADATI where risorseNa is null
*/
	--AGGIORNAMENTO TABELLA CONTRATTOSEI
	--FLAG RISORSE NON ASSOCIATE
	--SOLO PER I CLIENTI A CUI ANDREBBE INVIATO IL REPORT
	UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
	SET 
		RisorseNA =
			CASE
				WHEN CLIENTIRISNA.percRisorseNA >= CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2)) THEN 'S'
				ELSE 'N'
			END
	--AGGIUNTA perchè mancava, FABRIZIO E VALERIO per Azzeramento numero solleciti email
		,NumSolleciti =
			CASE
				WHEN (C6.ClienteMigrato = 'S') and (CLIENTIRISNA.percRisorseNA < CAST(dbo.GETPARAMETRO('PercMaxRisorseNA') AS DECIMAL(5,2))) THEN 0
				ELSE NumSolleciti
			END
	FROM C6MartPeriodico.CONTRATTOSEI_METADATI C6
	JOIN
		C6MartPeriodico.VCONTRATTI VCONTR
		
	ON
		C6.CHIAVECLIENTEPB = VCONTR.CHIAVECLIENTEPB
	LEFT JOIN (

		SELECT 
			NA.RETE, 
			NA.COD_FISCALE,
			CASE
				WHEN TOT.CTVTOTALE = 0 THEN 0
				ELSE 100 * NA.CTVNA / TOT.CTVTOTALE
			END AS percRisorseNA
		FROM (
			SELECT
				ISNULL(SUM(PATRBF.CTV),0) AS CTVNA,
				PATRBF.RETE, PATRBF.COD_FISCALE
				
			FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
			--INNER JOIN C6MartPeriodico.RP_vTuttiIContratti VCONTRATTIPERSEI
			--	ON PATRBF.RETE = VCONTRATTIPERSEI.RETE
			--	AND PATRBF.COD_FISCALE = VCONTRATTIPERSEI.COD_FISCALE
			WHERE ID_AREA = 'Na'
			GROUP BY
				
				PATRBF.RETE, PATRBF.COD_FISCALE
		) NA
		INNER JOIN (
			SELECT
				SUM(PATRBF.CTV) AS CTVTOTALE,
				PATRBF.RETE, PATRBF.COD_FISCALE
			FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
			
			WHERE ID_AREA <> 'Cc'
			GROUP BY
				PATRBF.RETE, PATRBF.COD_FISCALE
		) TOT 
			ON TOT.RETE = NA.RETE AND TOT.COD_FISCALE = NA.COD_FISCALE
			

	) CLIENTIRISNA

	ON VCONTR.RETE = CLIENTIRISNA.RETE
	AND VCONTR.COD_FISCALE = CLIENTIRISNA.COD_FISCALE
				
	WHERE C6.InvioBenvenuto = 'N'	
	
	--V Aggiorna il flag Profilo Attivo per i clienti che non hanno ricevuto il report	
	UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
	SET profiloAttivo = CASE WHEN (ISNULL(MIFID.SCADUTO,1) = 1) THEN 0 ELSE 1 end
	FROM C6MartPeriodico.CONTRATTOSEI_METADATI
	JOIN C6MartPeriodico.VCONTRATTI
		ON	VCONTRATTI.CHIAVECLIENTEPB = CONTRATTOSEI_METADATI.CHIAVECLIENTEPB
	LEFT JOIN C6MartPeriodico.MIFID
	--ON CONTRATTOSEI_METADATI.chiaveClientePB = MIFID.chiaveClientePB
		ON	MIFID.RETE = VCONTRATTI.RETE
		AND	MIFID.COD_FISCALE = VCONTRATTI.COD_FISCALE
	WHERE InvioBenvenuto = 'N' 

--select * from C6MartPeriodico.VCONTRATTI

	--V Aggiorna i dati di migrazione
	UPDATE C6MartPeriodico.CONTRATTOSEI_METADATI
	SET clienteMigrato =
		case when (C6Staging.RP_Migraz_Pianificazione.chiaveClientePB is null) then 'N'
		else  'S'
		END
	FROM C6MartPeriodico.CONTRATTOSEI_METADATI
	LEFT JOIN C6Staging.RP_Migraz_Pianificazione
	ON CONTRATTOSEI_METADATI.chiaveClientePB =  C6Staging.RP_Migraz_Pianificazione.chiaveClientePb
	
	
	WHERE InvioBenvenuto = 'N' 	
	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_AggiornaFlagContratto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_AggiornaFlagContratto'
		)


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_controlla100_PiramideModello]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[RP_controlla100_PiramideModello] 
AS  
BEGIN  
drop table if exists dbo.piramidemodello_da_agg_manualmente
drop table if exists #conta
drop table if exists #conta_b
drop table if exists #conta_agg

select a.rete,a.cod_fiscale, fase, sum(a.perc) as somma 
into #conta
from
(select rete,cod_fiscale,perc_ext as perc, fase from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase in (1,2,3)
union all
select rete,cod_fiscale,perc_inv as perc, fase from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase in (1,2,3)
union all
select rete,cod_fiscale,perc_pre as perc, fase from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase in (1,2,3)
union all
select rete,cod_fiscale,perc_liq as perc, fase from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase in (1,2,3)
union all
select rete,cod_fiscale,perc_ris as perc, fase from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase in (1,2,3)
) a
--where cod_fiscale not in ('DNTNDA68P53D458Y','FLSGRL63S17L872V')
group by  rete,cod_fiscale, fase
having sum(a.perc) <> '100.00'
order by cod_fiscale, rete, fase

--select * from #conta

select ChiaveCliente, c.*
into #conta_b
from #conta  c
     inner join consuni.consulenzaunica.dbo.Cliente cli
      on   cli.codFis = c.cod_fiscale
UNION ALL
select chiavecliente, c.*
from #conta  c
     inner join consuni.consulenzaunica.dbo.Cliente cli
      on   cli.Piva = c.cod_fiscale
UNION ALL
select chiavecliente, c.*
from #conta  c
     inner join consuni.consulenzaunica.dbo.Cliente cli
      on   c.cod_fiscale like 'FF@%' and cli.codman = substring(c.cod_fiscale, 4, len(c.cod_fiscale)-3)

--select * from #conta_b -- 155194

-- 181778
select clipb.chiaveclientepb, clipb.chiavePB, clipb.flagpbprimario, pb.codage agente, pb.Rete pb_Rete, cb.*
into #conta_agg
from #conta_b cb
     inner join consuni.consulenzaunica.dbo.ClientePB clipb 
       ON clipb.ChiaveCliente = cb.ChiaveCliente  
     INNER JOIN consuni.consulenzaunica.dbo.PromotoreBancario pb  
       ON pb.chiavePB = clipb.chiavePB   

-- Per eliminare i criteri poco performanti nella creazione di #conta_agg  (and clipb.flagpbprimario is null pb.Rete = cd.Rete )
Delete #conta_agg where rete != pb_Rete or flagpbprimario is not null

--select * from #conta_agg order by chiaveclientepb -- 155182

---- OLD 
--	select chiaveclientepb, agente, c.*
--	into #conta_agg
--	from #conta  c
--	inner join consuni.consulenzaunica.dbo.vinfocliente v
--	on c.rete+c.cod_fiscale = v.rete+v.codfis or
--	c.rete+c.cod_fiscale = v.rete+v.piva or
--	c.rete+c.cod_fiscale = v.rete+'FF@'+v.codman
--	where flagpbprimario is null
--
--  select * from #conta_agg order by 4

 select sum(percentualeprogetto) as somma, a.area, cod_fiscale, rete, p.chiaveclientepb, con.fase
 into dbo.piramidemodello_da_agg_manualmente
 from consuni.ConsulenzaUnica.dbo.ProgettiPiramideModello pir
 inner join consuni.ConsulenzaUnica.dbo.areamodello a
 on a.chiaveareamod = pir.chiaveareamod
 inner join consuni.ConsulenzaUnica.dbo.PiramideModello p
 on p.chiavepiramidemod = a.chiavepiramidemod
 inner join #conta_agg con
 on con.chiaveclientepb = p.chiaveclientepb
 where a.area in ('Ext', 'Liq', 'Inv', 'Ris', 'Pre')
 group by a.area, cod_fiscale, rete, p.chiaveclientepb, con.fase
 order by 3, 2

 --select * from dbo.piramidemodello_da_agg_manualmente -- 775865

 --select * from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where Cod_Fiscale = 'DNTNDA68P53D458Y'

 update ctv
 set perc_ext = cast(isnull(somma, '0.00') as decimal(5,2))
  from piramidemodello_da_agg_manualmente agg
  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
  where agg.area = 'Ext'
  and ctv.Fase = agg.Fase

	 update ctv
 set perc_inv = cast(isnull(somma, '0.00') as decimal(5,2))
  from piramidemodello_da_agg_manualmente agg
  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
  where area = 'Inv'
    and ctv.Fase = agg.Fase


		 update ctv
 set perc_Liq = cast(isnull(somma, '0.00') as decimal(5,2))
  from piramidemodello_da_agg_manualmente agg
  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
  where area = 'Liq'
    and ctv.Fase = agg.Fase


			 update ctv
 set perc_Ris= cast(isnull(somma, '0.00') as decimal(5,2))
  from piramidemodello_da_agg_manualmente agg
  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
  where area = 'Ris'
    and ctv.Fase = agg.Fase


				 update ctv
 set perc_pre= cast(isnull(somma, '0.00') as decimal(5,2))
  from piramidemodello_da_agg_manualmente agg
  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
  where area = 'Pre'
   and ctv.Fase = agg.Fase
   
   
--   -- FASE 2:

--drop table if exists dbo.piramidemodello_da_agg_manualmente
--drop table if exists #conta2
--drop table if exists #conta_agg2

--select a.rete,a.cod_fiscale, sum(a.perc) as somma 
--into #conta2
--from
--(select rete,cod_fiscale,perc_ext as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 2
--union all
--select rete,cod_fiscale,perc_inv as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 2
--union all
--select rete,cod_fiscale,perc_pre as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 2
--union all
--select rete,cod_fiscale,perc_liq as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 2
--union all
--select rete,cod_fiscale,perc_ris as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 2
--) a
----where cod_fiscale not in ('DNTNDA68P53D458Y','FLSGRL63S17L872V')
--group by  rete,cod_fiscale
--having sum(a.perc) <> '100.00'
--order by cod_fiscale

----select * from #conta

--select chiaveclientepb, agente, c.*
--into #conta_agg2
--from #conta2  c
--inner join consuni.consulenzaunica.dbo.vinfocliente v
--on c.rete+c.cod_fiscale = v.rete+v.codfis or
--c.rete+c.cod_fiscale = v.rete+v.piva or
--c.rete+c.cod_fiscale = v.rete+'FF@'+v.codman
--where flagpbprimario is null

----select * from #conta_agg order by 4

-- select sum(percentualeprogetto) as somma, a.area, cod_fiscale, rete, p.chiaveclientepb
-- into dbo.piramidemodello_da_agg_manualmente
-- from consuni.ConsulenzaUnica.dbo.ProgettiPiramideModello pir
-- inner join consuni.ConsulenzaUnica.dbo.areamodello a
-- on a.chiaveareamod = pir.chiaveareamod
-- inner join consuni.ConsulenzaUnica.dbo.PiramideModello p
-- on p.chiavepiramidemod = a.chiavepiramidemod
-- inner join #conta_agg2 con
-- on con.chiaveclientepb = p.chiaveclientepb
-- where a.area in ('Ext', 'Liq', 'Inv', 'Ris', 'Pre')
-- group by a.area, cod_fiscale, rete, p.chiaveclientepb
-- order by 3, 2

-- --select * from dbo.piramidemodello_da_agg_manualmente

-- --select * from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where Cod_Fiscale = 'DNTNDA68P53D458Y'

-- update ctv
-- set perc_ext = cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where agg.area = 'Ext'
--  and ctv.Fase = 2

--	 update ctv
-- set perc_inv = cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Inv'
--    and ctv.Fase = 2


--		 update ctv
-- set perc_Liq = cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Liq'
--    and ctv.Fase = 2


--			 update ctv
-- set perc_Ris= cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Ris'
--    and ctv.Fase = 2


--				 update ctv
-- set perc_pre= cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Pre'
--   and ctv.Fase = 2
   
   
--   -- FASE 3:

--drop table if exists dbo.piramidemodello_da_agg_manualmente
--drop table if exists #conta3
--drop table if exists #conta_agg3

--select a.rete,a.cod_fiscale, sum(a.perc) as somma 
--into #conta3
--from
--(select rete,cod_fiscale,perc_ext as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
--union all
--select rete,cod_fiscale,perc_inv as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
--union all
--select rete,cod_fiscale,perc_pre as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
--union all
--select rete,cod_fiscale,perc_liq as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
--union all
--select rete,cod_fiscale,perc_ris as perc from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where fase = 3
--) a
----where cod_fiscale not in ('DNTNDA68P53D458Y','FLSGRL63S17L872V')
--group by  rete,cod_fiscale
--having sum(a.perc) <> '100.00'
--order by cod_fiscale

----select * from #conta

--select chiaveclientepb, agente, c.*
--into #conta_agg3
--from #conta3  c
--inner join consuni.consulenzaunica.dbo.vinfocliente v
--on c.rete+c.cod_fiscale = v.rete+v.codfis or
--c.rete+c.cod_fiscale = v.rete+v.piva or
--c.rete+c.cod_fiscale = v.rete+'FF@'+v.codman
--where flagpbprimario is null

----select * from #conta_agg order by 4

-- select sum(percentualeprogetto) as somma, a.area, cod_fiscale, rete, p.chiaveclientepb
-- into dbo.piramidemodello_da_agg_manualmente
-- from consuni.ConsulenzaUnica.dbo.ProgettiPiramideModello pir
-- inner join consuni.ConsulenzaUnica.dbo.areamodello a
-- on a.chiaveareamod = pir.chiaveareamod
-- inner join consuni.ConsulenzaUnica.dbo.PiramideModello p
-- on p.chiavepiramidemod = a.chiavepiramidemod
-- inner join #conta_agg3 con
-- on con.chiaveclientepb = p.chiaveclientepb
-- where a.area in ('Ext', 'Liq', 'Inv', 'Ris', 'Pre')
-- group by a.area, cod_fiscale, rete, p.chiaveclientepb
-- order by 3, 2

-- --select * from dbo.piramidemodello_da_agg_manualmente

-- --select * from c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc where Cod_Fiscale = 'DNTNDA68P53D458Y'

-- update ctv
-- set perc_ext = cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where agg.area = 'Ext'
--  and ctv.Fase = 3

--	 update ctv
-- set perc_inv = cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Inv'
--    and ctv.Fase = 3


--		 update ctv
-- set perc_Liq = cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Liq'
--    and ctv.Fase = 3


--			 update ctv
-- set perc_Ris= cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Ris'
--    and ctv.Fase = 3


--				 update ctv
-- set perc_pre= cast(isnull(somma, '0.00') as decimal(5,2))
--  from piramidemodello_da_agg_manualmente agg
--  inner join c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc ctv
--  on agg.cod_fiscale+agg.rete = ctv.cod_fiscale+ctv.rete
--  where area = 'Pre'
--   and ctv.Fase = 3
----select * from C6MartPeriodico.motivazioni_blacklist


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CC_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CC_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 --DECLARE @TIPO_ELAB VARCHAR(1)  
  
    SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 --SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_CC_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_CC_TERZI  
  
 INSERT INTO [C6MartPeriodico].[ANAG_CC_TERZI]  
   (  
--      chiaveClientePB  
--   ,  
             [RETE]  
   ,[COD_FISCALE]  
   ,[INTERMEDIARIO]  
   ,[COINTEST]  
   ,[COD_CC]  
   ,[FASCIA_CPP]  
   ,[SALDO]  
   ,[DATA_APERTURA]  
   ,[DATA_CHIUSURA]  
   ,[ID_ELAB])  
  
 --Tutti i ContiCorrenti Terzi non a catalogo   
 SELECT  
--  VCONTRATTI.chiaveclientepb,  
  VCONTRATTI.rete AS RETE,  
  VCONTRATTI.COD_FISCALE AS COD_FISCALE,  
  dettProdT.nomeIntermediario AS INTERMEDIARIO,  
  NULL AS COINTEST,  
  patrT.nomeProdotto AS COD_CC,  
  NULL AS FASCIA_CPP,  
  patrT.ctv AS SALDO,  
  NULL AS DATA_APERTURA,  
  NULL AS DATA_CHIUSURA,  
  @ID_ELAB AS ID_ELAB  
 --INTO C6MartPeriodico.ANAG_CC_TERZI  
 FROM  
  C6StagingPeriodico.RP_PatrimonioTerzi patrT,  
  C6StagingPeriodico.RP_DettProdottiTerzi dettProdT,  
  C6StagingPeriodico.RP_AnAlberatura alber,  
  [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] as VCONTRATTI  
 WHERE  
  dettProdT.Alberatura = alber.Alberatura  
  AND dettProdT.chiaveProdotto IS NULL  
  AND patrT.chiaveProdottoTerzi = dettProdT.chiaveProdottoTerzi  
  AND patrT.chiaveClientePB = VCONTRATTI.chiaveClientePB  
  AND alber.Livello3= 'Conti correnti'   
  AND patrT.tipoProd= 'Assets.FinancialAssets.CurrentAccount'  
 UNION ALL  
 --'Conti Correnti Terzi in catalogo'  
 SELECT  
--  VCONTRATTI.chiaveclientepb,  
  VCONTRATTI.rete AS RETE,  
  VCONTRATTI.COD_FISCALE AS COD_FISCALE,  
  dettProdT.nomeIntermediario AS INTERMEDIARIO,  
  NULL AS COINTEST,  
  patrT.nomeProdotto AS COD_CC,  
  NULL AS FASCIA_CPP,  
  patrT.ctv AS SALDO,  
  NULL AS DATA_APERTURA,  
  NULL AS DATA_CHIUSURA,  
  @ID_ELAB AS ID_ELAB  
 FROM  
  C6StagingPeriodico.RP_PatrimonioTerzi patrT,  
  C6StagingPeriodico.RP_DettProdottiTerzi dettProdT,  
  C6StagingPeriodico.RP_CatalogoProdotti catprod,  
  C6Mart.VCONTRATTI  
 WHERE  
  patrT.chiaveProdottoTerzi = dettprodT.chiaveProdottoTerzi  
  AND patrT.chiaveClientePB = VCONTRATTI.chiaveClientePB  
  AND dettprodT.ChiaveProdotto IS NOT NULL  
  AND catprod.ChiaveProdotto = dettprodT.ChiaveProdotto  
  AND catprod.TipoProdotto = 'CC'  
    
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_CC_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_CC_TERZI'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CC_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CC_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

 	DECLARE @ID_ELAB INT
	--DECLARE @TIPO_ELAB VARCHAR(1)

    SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	--SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CC_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CC_TERZI

	INSERT INTO [C6MartPeriodico].[ANAG_CC_TERZI]
			(
--      chiaveClientePB
--			,
             [RETE]
			,[COD_FISCALE]
			,[INTERMEDIARIO]
			,[COINTEST]
			,[COD_CC]
			,[FASCIA_CPP]
			,[SALDO]
			,[DATA_APERTURA]
			,[DATA_CHIUSURA]
			,[ID_ELAB])

	--Tutti i ContiCorrenti Terzi non a catalogo 
	SELECT
--		VCONTRATTI.chiaveclientepb,
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		dettProdT.nomeIntermediario AS INTERMEDIARIO,
		NULL AS COINTEST,
		patrT.nomeProdotto AS COD_CC,
		NULL AS FASCIA_CPP,
		patrT.ctv AS SALDO,
		NULL AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB
	--INTO C6MartPeriodico.ANAG_CC_TERZI
	FROM
		C6StagingPeriodico.RP_PatrimonioTerzi patrT,
		C6StagingPeriodico.RP_DettProdottiTerzi dettProdT,
		C6StagingPeriodico.RP_AnAlberatura alber,
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] as VCONTRATTI
	WHERE
		dettProdT.Alberatura = alber.Alberatura
		AND dettProdT.chiaveProdotto IS NULL
		AND patrT.chiaveProdottoTerzi = dettProdT.chiaveProdottoTerzi
		AND patrT.chiaveClientePB = VCONTRATTI.chiaveClientePB
		AND alber.Livello3= 'Conti correnti' 
		AND patrT.tipoProd= 'Assets.FinancialAssets.CurrentAccount'
	UNION ALL
	--'Conti Correnti Terzi in catalogo'
	SELECT
--		VCONTRATTI.chiaveclientepb,
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		dettProdT.nomeIntermediario AS INTERMEDIARIO,
		NULL AS COINTEST,
		patrT.nomeProdotto AS COD_CC,
		NULL AS FASCIA_CPP,
		patrT.ctv AS SALDO,
		NULL AS DATA_APERTURA,
		NULL AS DATA_CHIUSURA,
		@ID_ELAB AS ID_ELAB
	FROM
		C6StagingPeriodico.RP_PatrimonioTerzi patrT,
		C6StagingPeriodico.RP_DettProdottiTerzi dettProdT,
		C6StagingPeriodico.RP_CatalogoProdotti catprod,
		C6Mart.VCONTRATTI
	WHERE
		patrT.chiaveProdottoTerzi = dettprodT.chiaveProdottoTerzi
		AND patrT.chiaveClientePB = VCONTRATTI.chiaveClientePB
		AND dettprodT.ChiaveProdotto IS NOT NULL
		AND catprod.ChiaveProdotto = dettprodT.ChiaveProdotto
		AND catprod.TipoProdotto = 'CC'
		

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CC_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CC_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_CLIENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI   
  
 INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[NOME]  
           ,[COGNOME]  
           ,[DATA_NASCITA]  
           ,[STATO_CIVILE]  
           ,[NUM_COMPONENTI]  
           ,[NUM_FIGLI]  
           ,[ETA]  
           ,[PARTITA_IVA]  
           ,[CITTADINANZA]  
           ,[PERSONA_FIS_GIUR]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[PRESSO]  
           ,[TEL_RECAPITO]  
           ,[TEL_CELL]  
           ,[E_MAIL]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[STATO]  
           ,[RAG_SOC]  
           ,[SESSO]  
           ,[ID_PROMOTORE]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT  
  AL.RETE AS RETE,  
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,  
  ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
          NULL AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
    
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  [dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.AGENTE AS ID_PROMOTORE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.RP_InfoCliente AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL  
  ON CL.RETE = AL.RETE  
  AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )  
        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2)  
--and al.codfis not in 
--(  
--'FF@8464',  
--'LBRMRA73H15H501A',  
--'FF@5134'  
--)
-------------------------------
/* 20170409 rete + cf duplicato  
--S	SFRCLD60E12Z110N
--F	TTLVNT44H04L746B
*/
 and AL.AGENTE is not null 
 and AL.chiaveclientePB != 2898828
   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_CLIENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_CLIENTI'  
  )  
  
END  
  
  
  
  




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_20170409]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_20170409]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_CLIENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI   
  
 INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[NOME]  
           ,[COGNOME]  
           ,[DATA_NASCITA]  
           ,[STATO_CIVILE]  
           ,[NUM_COMPONENTI]  
           ,[NUM_FIGLI]  
           ,[ETA]  
           ,[PARTITA_IVA]  
           ,[CITTADINANZA]  
           ,[PERSONA_FIS_GIUR]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[PRESSO]  
           ,[TEL_RECAPITO]  
           ,[TEL_CELL]  
           ,[E_MAIL]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[STATO]  
           ,[RAG_SOC]  
           ,[SESSO]  
           ,[ID_PROMOTORE]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT  
  AL.RETE AS RETE,  
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,  
  ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
          NULL AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
    
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  [dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.AGENTE AS ID_PROMOTORE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.RP_InfoCliente AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN CL  
  ON CL.RETE = AL.RETE  
  AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )  
        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN)  
--and al.codfis not in  
--(  
--'FF@8464',  
--'LBRMRA73H15H501A',  
--'FF@5134'  
--)  
   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_CLIENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_ANAG_CLIENTI'  
  )  
  
END  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_20170409_AGENTEisNotNull]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_20170409_AGENTEisNotNull]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_CLIENTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI   
  
 INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[NOME]  
           ,[COGNOME]  
           ,[DATA_NASCITA]  
           ,[STATO_CIVILE]  
           ,[NUM_COMPONENTI]  
           ,[NUM_FIGLI]  
           ,[ETA]  
           ,[PARTITA_IVA]  
           ,[CITTADINANZA]  
           ,[PERSONA_FIS_GIUR]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[PRESSO]  
           ,[TEL_RECAPITO]  
           ,[TEL_CELL]  
           ,[E_MAIL]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[STATO]  
           ,[RAG_SOC]  
           ,[SESSO]  
           ,[ID_PROMOTORE]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT  
  AL.RETE AS RETE,  
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,  
  ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
          NULL AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
    
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  [dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.AGENTE AS ID_PROMOTORE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6STAGINGPERIODICO.RP_InfoCliente AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN CL  
  ON CL.RETE = AL.RETE  
  AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )  
        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN)  
--and al.codfis not in  
--(  
--'FF@8464',  
--'LBRMRA73H15H501A',  
--'FF@5134'  
--)
/* 20170409 rete + cf duplicato  
--S	SFRCLD60E12Z110N
--F	TTLVNT44H04L746B
*/
 and AL.AGENTE is not null 
   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_CLIENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_ANAG_CLIENTI'  
  )  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Paolo Giovanetti  / TRINGALI PER FIDUCIARIE
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
	(
		[RETE]
		,[COD_FISCALE]
		,[NOME]
		,[COGNOME]
		,[DATA_NASCITA]
		,[STATO_CIVILE]
		,[NUM_COMPONENTI]
		,[NUM_FIGLI]
		,[ETA]
		,[PARTITA_IVA]
		,[CITTADINANZA]
		,[PERSONA_FIS_GIUR]
		,[INDIRIZZO]
		,[LOCALITA]
		,[PROVINCIA]
		,[CAP]
		,[NAZIONE]
		,[PRESSO]
		,[TEL_RECAPITO]
		,[TEL_CELL]
		,[E_MAIL]
		,[DATA_INIZIO]
		,[DATA_FINE]
		,[STATO]
		,[RAG_SOC]
		,[SESSO]
		,[ID_PROMOTORE]
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		distinct
--		tabNucleo.chiaveCliente,
--		tabNucleo.clienteConParentela AS chiaveClientePB,
		VCONTRATTI.RETE AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		ISNULL(SPB_CLIENTI.NOME,CLI.nome) AS NOME,
		ISNULL(SPB_CLIENTI.COGNOME,CLI.cognome) AS COGNOME,
		ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA) AS DATA_NASCITA,
		--CASE
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugato'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libero'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugata'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libera'
 	--		ELSE NULL
		--END AS STATO_CIVILE,
		NULL  AS STATO_CIVILE,
		tabNucleo.componentiNucleo AS NUM_COMPONENTI,
		tabFigli.numFigli AS NUM_FIGLI,
		FLOOR(DateDiff(Day, ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA), GetDate()) / 365.25) AS ETA,
		NULL AS PARTITA_IVA,
		SPB_CLIENTI.CITTADINANZA AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(SPB_INDIRIZZI.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(SPB_INDIRIZZI.CITTA, '') AS LOCALITA,
		ISNULL(SPB_INDIRIZZI.PROVINCIA, '') AS PROVINCIA,
		ISNULL(SPB_INDIRIZZI.CAP, '') AS CAP,
		ISNULL(SPB_INDIRIZZI.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		VCONTRATTI.EMAIL AS E_MAIL,
		SPB_CLIENTI.DATAATTIVAZIONECLIENTE AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		CASE
 			WHEN SUBSTRING(VCONTRATTI.COD_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		VCONTRATTI.COD_AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO [C6MartPeriodico].[RP_ANAG_CLIENTI]
	FROM 
		C6Martperiodico.rp_VCONTRATTIpergenerazionereport VCONTRATTI
	LEFT JOIN 
		(select 
		COUNT(*) as componentiNucleo,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNascita) tabNucleo
	ON
		VCONTRATTI.chiaveClientePB = tabNucleo.clienteConParentela
	LEFT JOIN
		(select 
		COUNT(*) as numFigli,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		where
		g.descParentela in ('Figlio','Figlia','Figlio del partner','figlia del partner')
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNascita) tabFigli
	ON 
		VCONTRATTI.chiaveClientePB = tabFigli.clienteConParentela
	AND
		tabFigli.clienteConParentela = tabNucleo.clienteConParentela
	LEFT OUTER JOIN 
		C6STAGING.SPB_CLIENTI 
	ON 
			C6STAGING.SPB_CLIENTI.CODICERETE = VCONTRATTI.RETE
			AND C6STAGING.SPB_CLIENTI.CODICEFISCALE = VCONTRATTI.COD_FISCALE 
	LEFT OUTER JOIN 
		C6STAGING.SPB_INDIRIZZI 
		ON 
			C6STAGING.SPB_INDIRIZZI.RETE = VCONTRATTI.RETE
			AND C6STAGING.SPB_INDIRIZZI.CODICEFISCALE = VCONTRATTI.COD_FISCALE
	JOIN 
		C6MART.CONTRATTOSEI_METADATI METADATI
		ON
			VCONTRATTI.CHIAVECLIENTEPB = METADATI.CHIAVECLIENTEPB
	
	
	--Modifica del 12/6/2019 per evitare righe duplicate
	join C6Staging.RP_ClientePB c
	on c.chiaveclientepb = vcontratti.chiaveclientepb
	--fine Modifica del 12/6/2019
	
	
	LEFT JOIN c6staging.RP_Cliente CLI
		ON
			VCONTRATTI.COD_FISCALE = CASE 
										WHEN (LEN(CLI.CODFIS) = 16) THEN CLI.CODFIS
										WHEN (LEN(CLI.CODMAN) = 0 AND LEN(CLI.PIVA) > 0) THEN CLI.PIVA
										ELSE 'FF@'+CODMAN
									  END
		--Modifica del 12/6/2019 per evitare righe duplicate
			and cli.chiavecliente = c.chiavecliente
		--fine Modifica del 12/6/2019
									  

/*
	SELECT
		AL.RETE AS RETE,
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,
		RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,
		RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,
		ISNULL(
			AL.DTNASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END) AS DATA_NASCITA, 
          NULL AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		
		/*DATEDIFF(YY,
			ISNULL(
				AL.DATA_NASCITA,
				CASE
					WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
					ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
				END), 
			GETDATE()) AS ETA,*/
		dbo.Eta(ISNULL(
			AL.DTNASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END)
		) AS ETA,
		[dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(CL.CITTA, '') AS LOCALITA,
		ISNULL(CL.PROVINCIA, '') AS PROVINCIA,
		ISNULL(CL.CAP, '') AS CAP,
		ISNULL(CL.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		--NULL AS SESSO,
		CASE
 			WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		AL.AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.RP_InfoCliente AL
--	LEFT JOIN C6STAGINGPERIODICO.WSEIAN CL
--		ON CL.RETE = AL.RETE
--		AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )
--        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))
--	WHERE CL.DTTRIM = (
--		SELECT MAX(DTTRIM)
--		FROM C6StagingPeriodico.WSEIAN
--	) 
*/

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL'
		)

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL_20190612]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Paolo Giovanetti  / TRINGALI PER FIDUCIARIE
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL_20190612]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
	(
		[RETE]
		,[COD_FISCALE]
		,[NOME]
		,[COGNOME]
		,[DATA_NASCITA]
		,[STATO_CIVILE]
		,[NUM_COMPONENTI]
		,[NUM_FIGLI]
		,[ETA]
		,[PARTITA_IVA]
		,[CITTADINANZA]
		,[PERSONA_FIS_GIUR]
		,[INDIRIZZO]
		,[LOCALITA]
		,[PROVINCIA]
		,[CAP]
		,[NAZIONE]
		,[PRESSO]
		,[TEL_RECAPITO]
		,[TEL_CELL]
		,[E_MAIL]
		,[DATA_INIZIO]
		,[DATA_FINE]
		,[STATO]
		,[RAG_SOC]
		,[SESSO]
		,[ID_PROMOTORE]
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT
		distinct
--		tabNucleo.chiaveCliente,
--		tabNucleo.clienteConParentela AS chiaveClientePB,
		VCONTRATTI.RETE AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		ISNULL(SPB_CLIENTI.NOME,CLI.nome) AS NOME,
		ISNULL(SPB_CLIENTI.COGNOME,CLI.cognome) AS COGNOME,
		ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA) AS DATA_NASCITA,
		--CASE
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugato'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziato'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) < '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libero'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Married' THEN 'Coniugata'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Divorced' THEN 'Divorziata'
 	--		WHEN SUBSTRING(ALL_CF_PB.CODICE_FISCALE,10,2) > '40' 
		--		AND ALL_CF_PB.MARITALSTATUS = 'Single' THEN 'Libera'
 	--		ELSE NULL
		--END AS STATO_CIVILE,
		NULL  AS STATO_CIVILE,
		tabNucleo.componentiNucleo AS NUM_COMPONENTI,
		tabFigli.numFigli AS NUM_FIGLI,
		FLOOR(DateDiff(Day, ISNULL(tabNucleo.dtNascita,SPB_CLIENTI.DATADINASCITA), GetDate()) / 365.25) AS ETA,
		NULL AS PARTITA_IVA,
		SPB_CLIENTI.CITTADINANZA AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(SPB_INDIRIZZI.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(SPB_INDIRIZZI.CITTA, '') AS LOCALITA,
		ISNULL(SPB_INDIRIZZI.PROVINCIA, '') AS PROVINCIA,
		ISNULL(SPB_INDIRIZZI.CAP, '') AS CAP,
		ISNULL(SPB_INDIRIZZI.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		VCONTRATTI.EMAIL AS E_MAIL,
		SPB_CLIENTI.DATAATTIVAZIONECLIENTE AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		CASE
 			WHEN SUBSTRING(VCONTRATTI.COD_FISCALE,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		VCONTRATTI.COD_AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	--INTO [C6MartPeriodico].[RP_ANAG_CLIENTI]
	FROM 
		C6Martperiodico.rp_VCONTRATTIpergenerazionereport VCONTRATTI
	LEFT JOIN 
		(select 
		COUNT(*) as componentiNucleo,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNascita) tabNucleo
	ON
		VCONTRATTI.chiaveClientePB = tabNucleo.clienteConParentela
	LEFT JOIN
		(select 
		COUNT(*) as numFigli,
		chiaveClientePB1 as clienteConParentela,
		cl.chiaveCliente,
		cl.nome,
		cl.cognome,
		cl.dtNascita
		from 
		C6staging.RP_Parentela p
		inner join C6staging.RP_GradoParentela g
		on p.idparentela = g.idparentela
		inner join C6Staging.RP_ClientePB c
		on c.chiaveClientePB = p.chiaveClientePB1
		inner join C6Staging.RP_Cliente cl
		on c.chiaveCliente = cl.chiaveCliente
		where
		g.descParentela in ('Figlio','Figlia','Figlio del partner','figlia del partner')
		group by 
		chiaveClientePB1, cl.chiaveCliente, cl.nome, cl.cognome, cl.dtNascita) tabFigli
	ON 
		VCONTRATTI.chiaveClientePB = tabFigli.clienteConParentela
	AND
		tabFigli.clienteConParentela = tabNucleo.clienteConParentela
	LEFT OUTER JOIN 
		C6STAGING.SPB_CLIENTI 
	ON 
			C6STAGING.SPB_CLIENTI.CODICERETE = VCONTRATTI.RETE
			AND C6STAGING.SPB_CLIENTI.CODICEFISCALE = VCONTRATTI.COD_FISCALE 
	LEFT OUTER JOIN 
		C6STAGING.SPB_INDIRIZZI 
		ON 
			C6STAGING.SPB_INDIRIZZI.RETE = VCONTRATTI.RETE
			AND C6STAGING.SPB_INDIRIZZI.CODICEFISCALE = VCONTRATTI.COD_FISCALE
	JOIN 
		C6MART.CONTRATTOSEI_METADATI METADATI
		ON
			VCONTRATTI.CHIAVECLIENTEPB = METADATI.CHIAVECLIENTEPB
	
	LEFT JOIN c6staging.RP_Cliente CLI
		ON
			VCONTRATTI.COD_FISCALE = CASE 
										WHEN (LEN(CLI.CODFIS) = 16) THEN CLI.CODFIS
										WHEN (LEN(CLI.CODMAN) = 0 AND LEN(CLI.PIVA) > 0) THEN CLI.PIVA
										ELSE 'FF@'+CODMAN
									  END
									  

/*
	SELECT
		AL.RETE AS RETE,
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,
		RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,
		RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,
		ISNULL(
			AL.DTNASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END) AS DATA_NASCITA, 
          NULL AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		
		/*DATEDIFF(YY,
			ISNULL(
				AL.DATA_NASCITA,
				CASE
					WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
					ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
				END), 
			GETDATE()) AS ETA,*/
		dbo.Eta(ISNULL(
			AL.DTNASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END)
		) AS ETA,
		[dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(CL.CITTA, '') AS LOCALITA,
		ISNULL(CL.PROVINCIA, '') AS PROVINCIA,
		ISNULL(CL.CAP, '') AS CAP,
		ISNULL(CL.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		--NULL AS SESSO,
		CASE
 			WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		AL.AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.RP_InfoCliente AL
--	LEFT JOIN C6STAGINGPERIODICO.WSEIAN CL
--		ON CL.RETE = AL.RETE
--		AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )
--        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))
--	WHERE CL.DTTRIM = (
--		SELECT MAX(DTTRIM)
--		FROM C6StagingPeriodico.WSEIAN
--	) 
*/

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_ANAG_CLIENTI_PER_GENERAZIONE_MAIL'
		)

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti  / TRINGALI PER FIDUCIARIE
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_CLIENTI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_CLIENTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_CLIENTI 

	INSERT INTO C6MartPeriodico.[ANAG_CLIENTI]
           ([RETE]
           ,[COD_FISCALE]
           ,[NOME]
           ,[COGNOME]
           ,[DATA_NASCITA]
           ,[STATO_CIVILE]
           ,[NUM_COMPONENTI]
           ,[NUM_FIGLI]
           ,[ETA]
           ,[PARTITA_IVA]
           ,[CITTADINANZA]
           ,[PERSONA_FIS_GIUR]
           ,[INDIRIZZO]
           ,[LOCALITA]
           ,[PROVINCIA]
           ,[CAP]
           ,[NAZIONE]
           ,[PRESSO]
           ,[TEL_RECAPITO]
           ,[TEL_CELL]
           ,[E_MAIL]
           ,[DATA_INIZIO]
           ,[DATA_FINE]
           ,[STATO]
           ,[RAG_SOC]
           ,[SESSO]
           ,[ID_PROMOTORE]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT
		AL.RETE AS RETE,
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,
		RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,
		RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,
		ISNULL(
			AL.DTNASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END) AS DATA_NASCITA, 
          NULL AS STATO_CIVILE,
		NULL AS NUM_COMPONENTI,
		NULL AS NUM_FIGLI,
		
		/*DATEDIFF(YY,
			ISNULL(
				AL.DATA_NASCITA,
				CASE
					WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
					ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
				END), 
			GETDATE()) AS ETA,*/
		dbo.Eta(ISNULL(
			AL.DTNASCITA,
			CASE
				WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL
				ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)
			END)
		) AS ETA,
		[dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,
		NULL AS CITTADINANZA,
		NULL AS PERSONA_FIS_GIUR,
		ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,
		ISNULL(CL.CITTA, '') AS LOCALITA,
		ISNULL(CL.PROVINCIA, '') AS PROVINCIA,
		ISNULL(CL.CAP, '') AS CAP,
		ISNULL(CL.NAZIONE, '') AS NAZIONE,
		'' AS PRESSO,
		NULL AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		NULL AS E_MAIL,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		NULL AS STATO,
		NULL AS RAG_SOC,
		--NULL AS SESSO,
		CASE
 			WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'
			ELSE 'F'
		END AS SESSO,
		AL.AGENTE AS ID_PROMOTORE,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGINGPERIODICO.RP_InfoCliente AL
	LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL
		ON CL.RETE = AL.RETE
		AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )
        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))
	WHERE CL.DTTRIM = (
		SELECT MAX(DTTRIM)
		FROM C6StagingPeriodico.WSEIAN2)
--and al.codfis not in
--(
--'FF@8464',
--'LBRMRA73H15H501A',
--'FF@5134'
--)
	


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_CLIENTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_CLIENTI_pre_selective'
		)

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PRODOTTI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_PRODOTTI  
   
 INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI]  
     (--ChiaveProdotto,  
     [COD_PRODOTTO]  
     ,[COD_ISIN]  
     ,[PAESE]  
     ,[ID_AREA]  
     ,[CAT_PRODOTTO]  
     ,[TIPO_PRODOTTO]  
     ,[DESCR_PRODOTTO]  
     ,[DIV_QUOTAZIONE]  
     ,[DIV_REGOLAMENTO]  
     ,[ID_EMITTENTE]  
     ,[MERCATO_CONTRATT]  
     ,[COD_MAF]  
     ,[RATING]  
     ,[COD_ADEGUATEZZA]  
     ,[COD_SOTTOPRODOTTO]  
     ,[COD_INTERNO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB]  
           ,[DT_SCADENZA]  
           ,[TIPO_EMITTENTE]   
           ,[TIPO_TASSO]  
           ,[FLG_OB])  
 SELECT   
  --ChiaveProdotto,   
  CatalogueID AS COD_PRODOTTO,  
  ISNULL(CodIsin, '') AS COD_ISIN,  
  NULL AS PAESE,  
  '' AS ID_AREA,  
  (SELECT CASE    
   WHEN a.Livello1 like '%Assicurativo%' THEN 'Gestito Finanziario'  
         else a.Livello1  
  END) AS CAT_PRODOTTO,  
  TipoProdotto AS TIPO_PRODOTTO,  
  NomeProdotto AS DESCR_PRODOTTO,  
  PrezzoValuta AS DIV_QUOTAZIONE,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  NULL AS MERCATO_CONTRATT,  
  CodMaf AS COD_MAF,  
  case when LTRIM(RTRIM(RATINGobbligazioni)) = '' THEN null ELSE RATINGobbligazioni end AS RATING,  
  CodAdeguatezza AS COD_ADEGUATEZZA,  
  CodSottoprodotto AS COD_SOTTOPRODOTTO,  
  ISNULL(CodInterno, '') AS COD_INTERNO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,   
        DtScadenza,   
        TIP_EMITTENTE,   
        TIP_TASSO,   
        CASE WHEN c.Alberatura = 98 THEN 'S' ELSE 'N' END AS FLG_OB  
 FROM C6StagingPeriodico.RP_CatalogoProdotti  c  
Inner Join C6StagingPeriodico.RP_AnAlberatura  a  
 ON c.Alberatura = a.Alberatura  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PRODOTTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_PRODOTTI'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PRODOTTI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_PRODOTTI
	
	INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI]
		   (--ChiaveProdotto,
		   [COD_PRODOTTO]
		   ,[COD_ISIN]
		   ,[PAESE]
		   ,[ID_AREA]
		   ,[CAT_PRODOTTO]
		   ,[TIPO_PRODOTTO]
		   ,[DESCR_PRODOTTO]
		   ,[DIV_QUOTAZIONE]
		   ,[DIV_REGOLAMENTO]
		   ,[ID_EMITTENTE]
		   ,[MERCATO_CONTRATT]
		   ,[COD_MAF]
		   ,[RATING]
		   ,[COD_ADEGUATEZZA]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
           ,[DT_SCADENZA]
           ,[TIPO_EMITTENTE] 
           ,[TIPO_TASSO]
           ,[FLG_OB])
	SELECT 
		--ChiaveProdotto, 
		CatalogueID AS COD_PRODOTTO,
		ISNULL(CodIsin, '') AS COD_ISIN,
		NULL AS PAESE,
		'' AS ID_AREA,
		(SELECT CASE  
			WHEN a.Livello1 like '%Assicurativo%' THEN 'Gestito Finanziario'
         else a.Livello1
		END) AS CAT_PRODOTTO,
		TipoProdotto AS TIPO_PRODOTTO,
		NomeProdotto AS DESCR_PRODOTTO,
		PrezzoValuta AS DIV_QUOTAZIONE,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		NULL AS MERCATO_CONTRATT,
		CodMaf AS COD_MAF,
		case when LTRIM(RTRIM(RATINGobbligazioni)) = '' THEN null ELSE RATINGobbligazioni end AS RATING,
		CodAdeguatezza AS COD_ADEGUATEZZA,
		CodSottoprodotto AS COD_SOTTOPRODOTTO,
		ISNULL(CodInterno, '') AS COD_INTERNO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB, 
        DtScadenza, 
        TIP_EMITTENTE, 
        TIP_TASSO, 
        CASE WHEN c.Alberatura = 98 THEN 'S' ELSE 'N' END AS FLG_OB
	FROM C6StagingPeriodico.RP_CatalogoProdotti  c
Inner Join C6StagingPeriodico.RP_AnAlberatura  a
	ON c.Alberatura = a.Alberatura

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PRODOTTI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PRODOTTI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PRODOTTI_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_PRODOTTI_TERZI  
  
  INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_TERZI]  
       ([COD_PRODOTTO]  
           ,[COD_PRODOTTO_TERZI]  
           ,[NOME_PRODOTTO]  
           ,[ALBERO_PRODOTTI]  
           ,[COD_ISIN]  
           ,[DESCR_PRODOTTO]  
           ,[DIV_QUOTAZIONE]  
           ,[INTERMEDIARIO]  
           ,[DIV_REGOLAMENTO]  
           ,[ID_EMITTENTE]  
           ,[MERCATO_CONTRATT]  
           ,[PAESE]  
           ,[RATING]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])       
  
 SELECT   
  --C6MartPeriodico.VCONTRATTI.chiaveClientePB AS chiaveClientePB,  
  C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdotto AS COD_PRODOTTO,  
  ISNULL(Mapping.Temp_oidProd ,C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI,  
  C6StagingPeriodico.RP_PatrimonioTerzi.nomeProdotto AS NOME_PRODOTTO,  
  NULL AS ALBERO_PRODOTTI,   
  NULL AS COD_ISIN,  
  C6StagingPeriodico.RP_PatrimonioTerzi.tipoprod AS DESCR_PRODOTTO,  
  NULL AS DIV_QUOTAZIONE,  
  C6StagingPeriodico.RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  NULL AS MERCATO_CONTRATT,  
  NULL AS PAESE,  
  NULL AS RATING,  
  @ID_ELAB AS ID_ELAB,  
     @TIPO_ELAB AS TIPO_ELAB  
    
 FROM C6StagingPeriodico.RP_DettProdottiTerzi  
 INNER JOIN C6StagingPeriodico.RP_PatrimonioTerzi  
 ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdottoTerzi = C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi  
 INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
 ON C6StagingPeriodico.RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
 LEFT JOIN C6StagingPeriodico.RP_MappingTerzi Mapping  
 ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdottoTerzi = Mapping.chiaveProdottoTerzi  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PRODOTTI_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_PRODOTTI_TERZI'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PRODOTTI_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_PRODOTTI_TERZI

		INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_TERZI]
		     ([COD_PRODOTTO]
           ,[COD_PRODOTTO_TERZI]
           ,[NOME_PRODOTTO]
           ,[ALBERO_PRODOTTI]
           ,[COD_ISIN]
           ,[DESCR_PRODOTTO]
           ,[DIV_QUOTAZIONE]
           ,[INTERMEDIARIO]
           ,[DIV_REGOLAMENTO]
           ,[ID_EMITTENTE]
           ,[MERCATO_CONTRATT]
           ,[PAESE]
           ,[RATING]
           ,[ID_ELAB]
           ,[TIPO_ELAB])		   

	SELECT 
		--C6MartPeriodico.VCONTRATTI.chiaveClientePB AS chiaveClientePB,
		C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdotto AS COD_PRODOTTO,
		ISNULL(Mapping.Temp_oidProd ,C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI,
		C6StagingPeriodico.RP_PatrimonioTerzi.nomeProdotto AS NOME_PRODOTTO,
		NULL AS ALBERO_PRODOTTI, 
		NULL AS COD_ISIN,
		C6StagingPeriodico.RP_PatrimonioTerzi.tipoprod AS DESCR_PRODOTTO,
		NULL AS DIV_QUOTAZIONE,
		C6StagingPeriodico.RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS ID_EMITTENTE,
		NULL AS MERCATO_CONTRATT,
		NULL AS PAESE,
		NULL AS RATING,
		@ID_ELAB AS ID_ELAB,
	    @TIPO_ELAB AS TIPO_ELAB
		
	FROM C6StagingPeriodico.RP_DettProdottiTerzi
	INNER JOIN C6StagingPeriodico.RP_PatrimonioTerzi
	ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdottoTerzi = C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi
	INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI
	ON C6StagingPeriodico.RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	LEFT JOIN C6StagingPeriodico.RP_MappingTerzi Mapping
	ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdottoTerzi = Mapping.chiaveProdottoTerzi

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PRODOTTI_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PRODOTTI_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_VALUTE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_VALUTE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PRODOTTI_VALUTE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )   
  
 TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI_VALUTE  
   
 INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE]  
            
 SELECT DISTINCT --added by pk 20160506   
  CATITEMREF.CATALOGUEID AS COD_PRODOTTO,  
  VALUTE.DIVISA,  
  CAST (VALUTE.PESO AS DECIMAL (6,3)),  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
    
 FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI CATITEMREF  
 INNER JOIN (  
  SELECT CATITEMREF.CATALOGUEID, MAX(ChiaveProdotto) AS ChiaveProdotto  
  FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI CATITEMREF  
  GROUP BY CATITEMREF.CATALOGUEID  
 ) DOPPICATITEMREF ON CATITEMREF.ChiaveProdotto = DOPPICATITEMREF.ChiaveProdotto  
 INNER JOIN   
  [C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI] VALUTE  
 ON VALUTE.CHIAVEPRODOTTO = CATITEMREF.ChiaveProdotto  
 where VALUTE.PESO >= -999.099 and VALUTE.PESO <= 999.099
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_VALUTE_20160506_PK]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_VALUTE_20160506_PK]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PRODOTTI_VALUTE',
		GETDATE(),
		'Elaborazione trimestrale'
	) 

	TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI_VALUTE
	
	INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE]
          
	SELECT /*pkDISTINCTpk*/ --added by pk 20160506 
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		VALUTE.DIVISA,
		CAST (VALUTE.PESO AS DECIMAL (6,3)),
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		
	FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI CATITEMREF
	INNER JOIN (
		SELECT CATITEMREF.CATALOGUEID, MAX(ChiaveProdotto) AS ChiaveProdotto
		FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI CATITEMREF
		GROUP BY CATITEMREF.CATALOGUEID
	) DOPPICATITEMREF ON CATITEMREF.ChiaveProdotto = DOPPICATITEMREF.ChiaveProdotto
	INNER JOIN 
		[C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI] VALUTE
	ON VALUTE.CHIAVEPRODOTTO = CATITEMREF.ChiaveProdotto
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_VALUTE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PRODOTTI_VALUTE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PRODOTTI_VALUTE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	) 

	TRUNCATE TABLE [C6MartPeriodico].ANAG_PRODOTTI_VALUTE
	
	INSERT INTO [C6MartPeriodico].[ANAG_PRODOTTI_VALUTE]
          
	SELECT DISTINCT --added by pk 20160506 
		CATITEMREF.CATALOGUEID AS COD_PRODOTTO,
		VALUTE.DIVISA,
		CAST (VALUTE.PESO AS DECIMAL (6,3)),
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		
	FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI CATITEMREF
	INNER JOIN (
		SELECT CATITEMREF.CATALOGUEID, MAX(ChiaveProdotto) AS ChiaveProdotto
		FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI CATITEMREF
		GROUP BY CATITEMREF.CATALOGUEID
	) DOPPICATITEMREF ON CATITEMREF.ChiaveProdotto = DOPPICATITEMREF.ChiaveProdotto
	INNER JOIN 
		[C6StagingPeriodico].[RP_RDR_VALUTE_DB_DTGIORNALIERI] VALUTE
	ON VALUTE.CHIAVEPRODOTTO = CATITEMREF.ChiaveProdotto
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PRODOTTI_VALUTE_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PROMOTORI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE   procedure [C6MartPeriodico].[RP_DM_ANAG_PROMOTORI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PROMOTORI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 ); 
--aggiunta 11/07/2022 per problema ai pb
 --select * 
 --into #email_unico
 --from C6MartPeriodico.EMAIL_PB where email is not null
 --fine aggiunta 11/07/2022 per problema ai pb

 --aggiunta 12/12/2023 per problema ai pb
  WITH CTE AS (
    SELECT
        *,
        ROW_NUMBER() OVER (PARTITION BY codice,rete ORDER BY id_elab DESC) AS RowNum
    FROM
        C6MartPeriodico.EMAIL_PB
    WHERE
        email IS NOT NULL
)
SELECT *
INTO #email_unico
FROM CTE
WHERE RowNum = 1
--fine 12/12/2023 per problema ai pb
  
 TRUNCATE TABLE C6MartPeriodico.ANAG_PROMOTORI  
  
 INSERT INTO [C6MartPeriodico].[ANAG_PROMOTORI]  
     ([RETE]  
     ,[ID_PROMOTORE]  
     ,[LIVELLO]  
     ,[COD_FISCALE]  
     ,[PARTITA_IVA]  
     ,[COGNOME]  
     ,[NOME]  
     ,[RAG_SOC]  
     ,[DATA_INIZIO]  
     ,[DATA_FINE]  
     ,[INDIRIZZO]  
     ,[LOCALITA]  
     ,[PROVINCIA]  
     ,[CAP]  
     ,[NAZIONE]  
     ,[TEL_RECAPITO]  
     ,[TEL_CELL]  
     ,[E_MAIL]  
     ,[COD_ABI]  
     ,[COD_CAB]  
     ,[COD_CIN]  
     ,[COD_CC]  
     ,[STATO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
 SELECT DISTINCT  
  PB.RETE AS RETE,  
  PB.codage AS ID_PROMOTORE,  
        'PB' AS LIVELLO,  
  --SPB_NAC.LIVELLONELLAGERARCHIA AS LIVELLO,  
  NULL AS COD_FISCALE,  
  NULL AS PARTITA_IVA,  
  rtrim(ltrim(PB.COGNOME)) AS COGNOME,  
  rtrim(ltrim(PB.NOME)) AS NOME,  
  NULL AS RAG_SOC,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  --CASE WHEN PB.DataInizioCollaborazione=0 THEN  NULL ELSE  
  --CAST(CAST(PB.DataInizioCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO,  
  --CASE WHEN PB.DataFineCollaborazione=0 THEN  NULL ELSE  
  --CAST(CAST(PB.DataFineCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_FINE,  
  rtrim(ltrim(PB.INDIRIZZO)) AS INDIRIZZO,  
  rtrim(ltrim(PB.CITTA)) AS LOCALITA,  
  rtrim(ltrim(PB.PROVINCIA)) AS PROVINCIA,  
  rtrim(ltrim(PB.CAP)) AS CAP,  
  NULL AS NAZIONE,  
  rtrim(ltrim(PB.PREFISSO + PB.TELEFONO1)) AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,  
  NULL AS COD_ABI,  
  NULL AS COD_CAB,  
  NULL AS COD_CIN,  
  NULL AS COD_CC,  
  --CASE   
  -- WHEN SPB_NAC.CODICEAGENTE IS NULL THEN 'TERMINATO'   
  -- ELSE   
    CASE   
     WHEN PF.RETE IS NULL THEN 'ATTIVO'  
     ELSE 'FITTIZIO'  
    END  
  --END   
  AS STATO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
   
 FROM C6StagingPeriodico.RP_anagrafica_promotori PB  
 LEFT JOIN #email_unico EMAIL_PB  --11/07/2022 prima c'era C6MartPeriodico.EMAIL_PB
  ON PB.RETE = EMAIL_PB.RETE  
  AND PB.codage = EMAIL_PB.CODICE  
-- LEFT JOIN C6STAGING.SPB_NAC SPB_NAC  
--  ON PB.RETE = SPB_NAC.CODICERETE  
--  AND PB.codage = SPB_NAC.CODICEAGENTE  
 LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF  
  ON (PB.codage  BETWEEN PF.CODICEDA AND PF.CODICEA)  
  AND PB.RETE = PF.RETE  
   
WHERE  
    PB.stato = 'A'  and 
	EMAIL_PB.EMAIL <> 'andrea.novaro1@fideuram.it' --FORZATURA DEL 14-12-2022 CHIAVE DUPLICATA

 --Aggiunta Valerio non inserisco in anagrafica pb terminati in quanto non hanno il livello   
-- and SPB_NAC.CODICEAGENTE is not null  
    --AND ADS4WS_PROMOTORI.CODICE NOT IN ('009202')--,'014908')  
---eliminato il filtro su '005772' 04/08/2010  
---eliminato il filtro su'003064' 12/08/2010  
---eliminato il filtro su '010712'  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PROMOTORI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ANAG_PROMOTORI'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ANAG_PROMOTORI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ANAG_PROMOTORI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ANAG_PROMOTORI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ANAG_PROMOTORI

	INSERT INTO [C6MartPeriodico].[ANAG_PROMOTORI]
		   ([RETE]
		   ,[ID_PROMOTORE]
		   ,[LIVELLO]
		   ,[COD_FISCALE]
		   ,[PARTITA_IVA]
		   ,[COGNOME]
		   ,[NOME]
		   ,[RAG_SOC]
		   ,[DATA_INIZIO]
		   ,[DATA_FINE]
		   ,[INDIRIZZO]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[TEL_RECAPITO]
		   ,[TEL_CELL]
		   ,[E_MAIL]
		   ,[COD_ABI]
		   ,[COD_CAB]
		   ,[COD_CIN]
		   ,[COD_CC]
		   ,[STATO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT DISTINCT
		PB.RETE AS RETE,
		PB.codage AS ID_PROMOTORE,
        'PB' AS LIVELLO,
		--SPB_NAC.LIVELLONELLAGERARCHIA AS LIVELLO,
		NULL AS COD_FISCALE,
		NULL AS PARTITA_IVA,
		rtrim(ltrim(PB.COGNOME)) AS COGNOME,
		rtrim(ltrim(PB.NOME)) AS NOME,
		NULL AS RAG_SOC,
		NULL AS DATA_INIZIO,
		NULL AS DATA_FINE,
		--CASE WHEN PB.DataInizioCollaborazione=0 THEN  NULL ELSE
		--CAST(CAST(PB.DataInizioCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_INIZIO,
		--CASE WHEN PB.DataFineCollaborazione=0 THEN  NULL ELSE
		--CAST(CAST(PB.DataFineCollaborazione AS VARCHAR(8)) AS DATETIME) END AS DATA_FINE,
		rtrim(ltrim(PB.INDIRIZZO)) AS INDIRIZZO,
		rtrim(ltrim(PB.CITTA)) AS LOCALITA,
		rtrim(ltrim(PB.PROVINCIA)) AS PROVINCIA,
		rtrim(ltrim(PB.CAP)) AS CAP,
		NULL AS NAZIONE,
		rtrim(ltrim(PB.PREFISSO + PB.TELEFONO1)) AS TEL_RECAPITO,
		NULL AS TEL_CELL,
		rtrim(ltrim(EMAIL_PB.EMAIL)) AS E_MAIL,
		NULL AS COD_ABI,
		NULL AS COD_CAB,
		NULL AS COD_CIN,
		NULL AS COD_CC,
		--CASE 
		--	WHEN SPB_NAC.CODICEAGENTE IS NULL THEN 'TERMINATO' 
		--	ELSE 
				CASE 
					WHEN PF.RETE IS NULL THEN 'ATTIVO'
					ELSE 'FITTIZIO'
				END
		--END 
		AS STATO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	
	FROM C6StagingPeriodico.RP_anagrafica_promotori PB
	LEFT JOIN C6MartPeriodico.EMAIL_PB EMAIL_PB
		ON PB.RETE = EMAIL_PB.RETE
		AND PB.codage = EMAIL_PB.CODICE
--	LEFT JOIN C6STAGING.SPB_NAC SPB_NAC
--		ON PB.RETE = SPB_NAC.CODICERETE
--		AND PB.codage = SPB_NAC.CODICEAGENTE
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON (PB.codage  BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND PB.RETE = PF.RETE
	
WHERE
    PB.stato = 'A'
	--Aggiunta Valerio non inserisco in anagrafica pb terminati in quanto non hanno il livello 
--	and SPB_NAC.CODICEAGENTE is not null
    --AND ADS4WS_PROMOTORI.CODICE NOT IN ('009202')--,'014908')
---eliminato il filtro su '005772' 04/08/2010
---eliminato il filtro su'003064' 12/08/2010
---eliminato il filtro su '010712'





	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ANAG_PROMOTORI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ANAG_PROMOTORI_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_AREA_BISOGNO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[RP_DM_AREA_BISOGNO]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
  
 TRUNCATE TABLE C6MartPeriodico.AREA_BISOGNO  
   
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_AREA_BISOGNO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 INSERT INTO C6MartPeriodico.[AREA_BISOGNO]  
           ([ID_AREA]  
           ,[NOME_AREA]  
           ,[ORDINAMENTO]  
           ,[ID_ELAB])  
 SELECT   
  LTRIM(RTRIM(Area)) AS ID_AREA,  
  LTRIM(RTRIM(Descrizione)) AS NOME_AREA,  
  Ordinamento AS ORDINAMENTO,  
  @ID_ELAB AS ID_ELAB  
     FROM   C6STAGINGPERIODICO.RP_NEEDAREA  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_AREA_BISOGNO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_AREA_BISOGNO'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_AREA_BISOGNO_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[RP_DM_AREA_BISOGNO_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here

	TRUNCATE TABLE C6MartPeriodico.AREA_BISOGNO
	
	DECLARE @ID_ELAB INT
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_AREA_BISOGNO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	INSERT INTO C6MartPeriodico.[AREA_BISOGNO]
           ([ID_AREA]
           ,[NOME_AREA]
           ,[ORDINAMENTO]
           ,[ID_ELAB])
	SELECT 
		LTRIM(RTRIM(Area)) AS ID_AREA,
		LTRIM(RTRIM(Descrizione)) AS NOME_AREA,
		Ordinamento AS ORDINAMENTO,
		@ID_ELAB AS ID_ELAB
     FROM   C6STAGINGPERIODICO.RP_NEEDAREA


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_AREA_BISOGNO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_AREA_BISOGNO_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSET_PERC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ASSET_PERC]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSET_PERC',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ASSET_PERC  
  
 INSERT INTO [C6MartPeriodico].[ASSET_PERC]  
     ([COD_PRODOTTO]  
     ,[ID_ASSETCLASS]  
     ,[COD_ISIN]  
     ,[COD_MAF]  
     ,[COD_INTERNO]  
     ,[COD_SOTTOPRODOTTO]  
     ,[LIVELLO]  
     ,[PERC]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
       
 SELECT DISTINCT  
  cat.CatalogueID AS COD_PRODOTTO,  
  LTRIM(RTRIM(ac.Asset)) AS ID_ASSETCLASS,  
  cat.CodIsin AS COD_ISIN,  
  cat.CodMaf AS COD_MAF,  
  cat.CodInterno AS COD_INTERNO,  
  cat.CodSottoprodotto AS COD_SOTTOPRODOTTO,  
  ac.Livello AS LIVELLO,  
  LTRIM(RTRIM(map.Percentuale)) AS PERC,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodico.RP_Mappatura AS map  
 INNER JOIN  
  C6StagingPeriodico.RP_AssetClass AS ac  
 ON  
  map.Asset = ac.Asset  
 INNER JOIN  
  C6StagingPeriodico.RP_CatalogoProdotti cat  
 ON  
  map.ChiaveProdotto = cat.ChiaveProdotto  
  where map.Percentuale >= -999.099 and map.Percentuale <= 999.099
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSET_PERC' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ASSET_PERC'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSET_PERC_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ASSET_PERC_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSET_PERC_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ASSET_PERC

	INSERT INTO [C6MartPeriodico].[ASSET_PERC]
		   ([COD_PRODOTTO]
		   ,[ID_ASSETCLASS]
		   ,[COD_ISIN]
		   ,[COD_MAF]
		   ,[COD_INTERNO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[LIVELLO]
		   ,[PERC]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
		   
	SELECT DISTINCT
		cat.CatalogueID AS COD_PRODOTTO,
		LTRIM(RTRIM(ac.Asset)) AS ID_ASSETCLASS,
		cat.CodIsin AS COD_ISIN,
		cat.CodMaf AS COD_MAF,
		cat.CodInterno AS COD_INTERNO,
		cat.CodSottoprodotto AS COD_SOTTOPRODOTTO,
		ac.Livello AS LIVELLO,
		LTRIM(RTRIM(map.Percentuale)) AS PERC,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
	 C6StagingPeriodico.RP_Mappatura AS map
	INNER JOIN
		C6StagingPeriodico.RP_AssetClass AS ac
	ON
		map.Asset = ac.Asset
	INNER JOIN
		C6StagingPeriodico.RP_CatalogoProdotti cat
	ON
		map.ChiaveProdotto = cat.ChiaveProdotto

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSET_PERC_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSET_PERC_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_ASSET_PERC_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSET_PERC_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ASSET_PERC_TERZI  
  
 INSERT INTO [C6MartPeriodico].[ASSET_PERC_TERZI]  
  ([COD_PRODOTTO_TERZI] --  
  ,[ID_ASSETCLASS] --  
  ,[LIVELLO] --  
  ,[NOME_PRODOTTO]  
  ,[TIPO_PRODOTTO]  
  ,[PERC] --  
  ,[ID_ELAB]  
  ,[TIPO_ELAB])  
 SELECT DISTINCT  
  ISNULL(Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI,  
  RP_AssetClass.Asset AS ID_ASSETCLASS,  
  RP_AssetClass.Livello AS LIVELLO,  
  NULL AS NOME_PRODOTTO,  
  NULL AS TIPO_PRODOTTO,  
  RP_MappaturaPT.percentuale / 100 AS PERC,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodico.RP_PatrimonioTerzi  
 INNER JOIN  
  C6StagingPeriodico.RP_DettProdottiTerzi  
 ON  
  C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3  
 ON  
  C6StagingPeriodico.RP_DettProdottiTerzi.alberatura = C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura  
 INNER JOIN  
  C6StagingPeriodico.RP_MappaturaPT  
 ON  
  C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6StagingPeriodico.RP_MappaturaPT.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodico.RP_AssetClass  
 ON  
  C6StagingPeriodico.RP_MappaturaPT.asset = C6StagingPeriodico.RP_AssetClass.Asset  
 LEFT JOIN  
  C6StagingPeriodico.RP_MappingTerzi Mapping  
 ON  
  C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi = Mapping.chiaveProdottoTerzi  
  
   
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSET_PERC_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ASSET_PERC_TERZI'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSET_PERC_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_ASSET_PERC_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSET_PERC_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ASSET_PERC_TERZI

	INSERT INTO [C6MartPeriodico].[ASSET_PERC_TERZI]
		([COD_PRODOTTO_TERZI] --
		,[ID_ASSETCLASS] --
		,[LIVELLO] --
		,[NOME_PRODOTTO]
		,[TIPO_PRODOTTO]
		,[PERC] --
		,[ID_ELAB]
		,[TIPO_ELAB])
	SELECT DISTINCT
		ISNULL(Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI,
		RP_AssetClass.Asset AS ID_ASSETCLASS,
		RP_AssetClass.Livello AS LIVELLO,
		NULL AS NOME_PRODOTTO,
		NULL AS TIPO_PRODOTTO,
		RP_MappaturaPT.percentuale / 100 AS PERC,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		C6StagingPeriodico.RP_PatrimonioTerzi
	INNER JOIN
		C6StagingPeriodico.RP_DettProdottiTerzi
	ON
		C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdottoTerzi
	INNER JOIN
		C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3
	ON
		C6StagingPeriodico.RP_DettProdottiTerzi.alberatura = C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	INNER JOIN
		C6StagingPeriodico.RP_MappaturaPT
	ON
		C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6StagingPeriodico.RP_MappaturaPT.chiaveProdottoTerzi
	INNER JOIN
		C6StagingPeriodico.RP_AssetClass
	ON
		C6StagingPeriodico.RP_MappaturaPT.asset = C6StagingPeriodico.RP_AssetClass.Asset
	LEFT JOIN
		C6StagingPeriodico.RP_MappingTerzi Mapping
	ON
		C6StagingPeriodico.RP_PatrimonioTerzi.chiaveProdottoTerzi = Mapping.chiaveProdottoTerzi

	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSET_PERC_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSET_PERC_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSETCLASS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--select * from C6MartPeriodico.assetclass  
CREATE procedure [C6MartPeriodico].[RP_DM_ASSETCLASS]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
   
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSETCLASS',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ASSETCLASS  
  
 INSERT INTO [C6MartPeriodico].[ASSETCLASS]  
     ([ID_ASSETCLASS]  
     ,[DESCRIZIONE]  
     ,[LIVELLO]  
     ,[ORDINAMENTO]  
     ,[ID_ELAB])  
      
 SELECT   
  A.ASSET AS ID_ASSETCLASS,  
  A.DESCRIZIONE AS DESCRIZIONE,  
  A.LIVELLO AS LIVELLO,  
  B.ORDINAMENTO_ASSET AS ORDINAMENTO,  
  @ID_ELAB AS ID_ELAB  
 FROM C6STAGINGPERIODICO.RP_ASSETCLASS A  
 JOIN   
 C6STAGINGPERIODICO.RP_REP_ASSET_1_E_2_ORDINATE B  
  ON A.ASSET = B.CODICE_ASSET_CLASS_INGRESSO  
  
   
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSETCLASS' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ASSETCLASS'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSETCLASS_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select * from C6MartPeriodico.assetclass
CREATE procedure [C6MartPeriodico].[RP_DM_ASSETCLASS_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSETCLASS_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ASSETCLASS

	INSERT INTO [C6MartPeriodico].[ASSETCLASS]
		   ([ID_ASSETCLASS]
		   ,[DESCRIZIONE]
		   ,[LIVELLO]
		   ,[ORDINAMENTO]
		   ,[ID_ELAB])
		  
	SELECT 
		A.ASSET AS ID_ASSETCLASS,
		A.DESCRIZIONE AS DESCRIZIONE,
		A.LIVELLO AS LIVELLO,
		B.ORDINAMENTO_ASSET AS ORDINAMENTO,
		@ID_ELAB AS ID_ELAB
	FROM C6STAGINGPERIODICO.RP_ASSETCLASS A
	JOIN 
	C6STAGINGPERIODICO.RP_REP_ASSET_1_E_2_ORDINATE B
		ON A.ASSET = B.CODICE_ASSET_CLASS_INGRESSO

	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSETCLASS_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSETCLASS_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
  
--select * from [C6MartPeriodico].[ASSETCLASS_TERZI]  
--[C6MartPeriodico].[DM_ASSETCLASS_TERZI]  
CREATE procedure [C6MartPeriodico].[RP_DM_ASSETCLASS_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
   
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSETCLASS_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.ASSETCLASS_TERZI  
   
 INSERT INTO [C6MartPeriodico].[ASSETCLASS_TERZI]  
     ([ID_ASSETCLASS]  
     ,[COD_ISIN]  
     ,[COD_MAF]  
     ,[COD_ADEGUATEZZA]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
   
 SELECT   
  B.CODICE_ASSET_CLASS_INGRESSO,  
  B.CODICE_ISIN,  
  B.CODICE_MAF,  
  ISNULL(B.CODICE_ADEGUATEZZA,'$'),  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
 C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE B  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSETCLASS_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_ASSETCLASS_TERZI'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ASSETCLASS_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

--select * from [C6MartPeriodico].[ASSETCLASS_TERZI]
--[C6MartPeriodico].[DM_ASSETCLASS_TERZI]
CREATE procedure [C6MartPeriodico].[RP_DM_ASSETCLASS_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ASSETCLASS_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.ASSETCLASS_TERZI
	
	INSERT INTO [C6MartPeriodico].[ASSETCLASS_TERZI]
		   ([ID_ASSETCLASS]
		   ,[COD_ISIN]
		   ,[COD_MAF]
		   ,[COD_ADEGUATEZZA]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	
	SELECT 
		B.CODICE_ASSET_CLASS_INGRESSO,
		B.CODICE_ISIN,
		B.CODICE_MAF,
		ISNULL(B.CODICE_ADEGUATEZZA,'$'),
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
	C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE B
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ASSETCLASS_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ASSETCLASS_TERZI_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_BONIFICA_DTRIF0_TSCABP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_BONIFICA_DTRIF0_TSCABP]
AS


BEGIN

select *
into #dtrif_zero
from C6StagingPeriodico.TSCABP t where dtrif=0 


select distinct rete,CODAREA,CODPROG,CODFIS,CODCONF,DTRIF
into #dtrif_tcptab
from C6stagingPeriodico.tcptab
where rete+codfis+CODPROG+codconf in (select rete+CODFIS+codprog+codconf from #dtrif_zero)


update a
set a.dtrif=b.dtrif
from C6StagingPeriodico.TSCABP a
inner join #dtrif_tcptab b on a.rete=b.RETE 
and
a.codfis=b.codfis and
a.CODPROG=b.CODPROG and
a.CODCONF=b.CODCONF and
a.CODAREA=b.CODAREA 
where a.dtrif=0


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_BONIFICA_PATRIMONIO_IMMOBILIARE_ProQuota]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--select * from C6MartPeriodicO.PATRIMONIO_IMMOBILIARE_ProQuota
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_BONIFICA_PATRIMONIO_IMMOBILIARE_ProQuota]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_BONIFICA_PATRIMONIO_IMMOBILIARE_PROQUOTA',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

delete from C6MartPeriodico.Patrimonio_Immobiliare_ProQuota where cod_fiscale in (
select distinct vinfo.codfis						from ( select distinct con.chiaveClientePBProprietario,con.chiaveprodottoterzi,condett.tipologiadiritto ,condett.quotaDiritto, condett.moltiplicatorediritto
                                    from [CONSUNI_PERIODICO].consulenzaunica.dbo.cointestatari con
                                    inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.CointestatariDettaglioDiritto condett
                                    on condett.chiavecointestatari = con.chiavecointestatari
                                    and condett.chiaveprodottoterzi = con.chiaveprodottoterzi
                                    where con.chiaveclientepb=con.chiaveClientePBProprietario
                                    ) tCoin
                                        inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.dettImmobiliare dett
                                        on tCoin.chiaveProdottoTerzi = dett.chiaveProdottoTerzi
                                            inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.PatrimonioTerzi pt
                                            on dett.chiaveProdottoTerzi = pt.chiaveProdottoTerzi
                                                left join [CONSUNI_PERIODICO].consulenzaunica.dbo.dfinalita fin
                                                on fin.codfinalita=dett.codfinalita
                                                    left join [CONSUNI_PERIODICO].consulenzaunica.dbo.dtipoimmobile dti
                                                    on dti.codtipologia=dett.codtipologia
                                                        left join  [CONSUNI_PERIODICO].consulenzaunica.dbo.DNazioneEstera dne
                                                        on dne.codNazioneEstera = dett.codNazioneEstera
                                                            inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.vInfoCliente vInfo
                                                            on pt.chiaveClientePB = vInfo.chiaveClientePB
where pt.dtfinevalidita<>'9999-12-31 00:00:00.000'
and not exists (select 1 from [CONSUNI_PERIODICO].consulenzaunica.dbo.PatrimonioTerzi pt2 where dtfinevalidita = '9999-12-31 00:00:00.000' AND pt.chiaveClientePB=pt2.chiaveClientePB)
)

	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_BONIFICA_PATRIMONIO_IMMOBILIARE_PROQUOTA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_BONIFICA_PATRIMONIO_IMMOBILIARE_PROQUOTA'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_BrsClienteESG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_BrsClienteESG]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_BrsClienteESG',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
-- declare @data varchar(8)

--set @data= [C6MartPeriodico].[getTrimestre2](getdate(),0)
  
truncate table C6MartPeriodico.BrsClienteESG
  
insert into [C6StampeCentralizzate].[C6MartPeriodico].[BrsClienteESG]
SELECT ws.[rete]
      ,ws.[codfis]
      ,case when PREFSOST='S' then 1 
			when PREFSOST='N' then 0
			else 0 end as [Preferenza_esg_cliente]
      ,case when FLAGAMB='S' then 'Y' 
			when FLAGAMB='N' then 'N' 
			else 'N' end as 
			[ESG_E]
      ,case when FLAGSOC='S' then 'Y' 
			when FLAGSOC='N' then 'N' 
			else 'N' end as 
			[ESG_S]
      ,case when FLAGGOV='S' then 'Y' 
			when FLAGGOV='N' then 'N' 
			else 'N' end as [ESG_G]
      ,esg.PERC1ESG as [obiettivo_ESG_minimo]
      ,NULL as [ESG_Rating]
      ,esg.PERCAMB as [ESG_E_perc]
      ,esg.PERCSOC as [ESG_S_perc]
      ,esg.PERCGOV as [ESG_G_perc]
  FROM C6martPeriodico.wseian2 ws
  left join C6MartPeriodico.W6CLIESG esg
  on ws.rete=esg.rete and ws.codfis=esg.CODFIS

  --SELECT [rete]
  --   -- ,[codfis]
  --    ,[Preferenza_esg_cliente]
  --    ,[ESG_E]
  --    ,[ESG_S]
  --    ,[ESG_G]
  --    ,[obiettivo_ESG_minimo]
  --    ,[ESG_Rating]
  --    ,[ESG_E_perc]
  --    ,[ESG_S_perc]
  --    ,[ESG_G_perc]
  --FROM [C6StampeCentralizzate].[C6StagingPeriodico].[ESG_Metriche_Cliente_IL]


  --select * from [C6StampeCentralizzate].[C6StagingPeriodico].[ESG_Metriche_Cliente_IL]
  --select * from C6StagingPeriodico.wseian2
  --select * from C6MartPeriodico.W6CLIESG



 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_BrsClienteESG' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_W6CATESG'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CLIENTI_RISORSE_NA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- [C6MartPeriodico].[RP_DM_CLIENTI_RISORSE_NA]
CREATE procedure [C6MartPeriodico].[RP_DM_CLIENTI_RISORSE_NA] 
AS
BEGIN
	
	 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_CLIENTI_RISORSE_NA',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  

---------------------------------------------------------------------------
	TRUNCATE TABLE 	[C6MartPeriodico].[CLIENTI_RISORSE_NA]

	INSERT INTO [C6MartPeriodico].[CLIENTI_RISORSE_NA]
	select 
       [RETE]
      ,[COD_FISCALE]
      ,[POSITION_ID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
	  ,[ID_AREA]
      ,[CTV]
      ,[ORDINAMENTO_PROGETTO]
	  ,[TIPO_PROGETTO]
      ,[EMITTENTE]
      ,[ISIN]
      ,[CHIAVE_PROGETTO]
			from	C6MartPeriodico.PATRIMONIO_BF 
			where 1=1
			and ID_AREA = 'NA'
			and ctv <> 0 --se zero potrebbero essere ppvv
			and partvia_disinv = 0

---------------------------

UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_CLIENTI_RISORSE_NA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_CLIENTI_RISORSE_NA'  
  )  



END































GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_COMPLESSITA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- =============================================  
-- Author:  <Rino Le Boffe,,Name>  
-- Create date: <08/08/2013>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_COMPLESSITA]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_COMPLESSITA',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].COMPLESSITA  
   
 INSERT INTO [C6MartPeriodico].[COMPLESSITA]  
           (  
            [RETE]  
           ,[COD_FISCALE]  
           ,[COMPLESSITA]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
  
  
    SELECT   
        [RETE],  
        [COD_FISCALE],  
        MAX([COMPLESSITA])  AS [COMPLESSITA],  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
FROM  
(  
 SELECT   
        [RETE],  
        [COD_FISCALE],  
        MAX([COMPLEX])  AS [COMPLESSITA]  
 FROM C6MARTPERIODICO.patrimonio_bf  
        where tipo_prodOTTO <>'ASUL'   
        GROUP BY   
        [RETE],  
        [COD_FISCALE]  
     
    union all  
      
 SELECT   
        m.[RETE],  
        m.[COD_FISCALE],  
        MAX(c.[COMPLESSITA])  AS [COMPLESSITA]  
 FROM C6MARTPERIODICO.patrimonio_bf m,  
        c6martperiodico.dettaglio_asul k,  
        c6stagingperiodico.RP_CatalogoProdotti c  
    where m.cod_fiscale= k.cod_fiscale  
          and m.rete=k.rete  
          and k.id_contratto=m.id_contratto  
          and k.cod_prodotto= c.catalogueid  
          and m.tipo_prodotto='ASUL'  
    group by    
         m.[RETE],  
        m.[COD_FISCALE]  
 ) H  
    group by    
         [RETE],  
         [COD_FISCALE]  
  
  
  
  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_COMPLESSITA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_COMPLESSITA'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_COMPLESSITA_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Rino Le Boffe,,Name>
-- Create date: <08/08/2013>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_COMPLESSITA_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;	

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_COMPLESSITA_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].COMPLESSITA
	
	INSERT INTO [C6MartPeriodico].[COMPLESSITA]
           (
            [RETE]
           ,[COD_FISCALE]
           ,[COMPLESSITA]
           ,[ID_ELAB]
           ,[TIPO_ELAB])


    SELECT 
        [RETE],
        [COD_FISCALE],
        MAX([COMPLESSITA])  AS [COMPLESSITA],
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
FROM
(
	SELECT 
        [RETE],
        [COD_FISCALE],
        MAX([COMPLEX])  AS [COMPLESSITA]
	FROM C6MARTPERIODICO.patrimonio_bf
        where tipo_prodOTTO <>'ASUL' 
        GROUP BY 
        [RETE],
        [COD_FISCALE]
   
    union all
    
	SELECT 
        m.[RETE],
        m.[COD_FISCALE],
        MAX(c.[COMPLESSITA])  AS [COMPLESSITA]
	FROM C6MARTPERIODICO.patrimonio_bf m,
        c6martperiodico.dettaglio_asul k,
        c6stagingperiodico.RP_CatalogoProdotti c
    where m.cod_fiscale= k.cod_fiscale
          and m.rete=k.rete
          and k.id_contratto=m.id_contratto
          and k.cod_prodotto= c.catalogueid
          and m.tipo_prodotto='ASUL'
    group by  
         m.[RETE],
        m.[COD_FISCALE]
 ) H
    group by  
         [RETE],
         [COD_FISCALE]









	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_COMPLESSITA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_COMPLESSITA_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_Confronto_IndicatoreRischio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











--select * from C6MartPeriodico.CONFRONTO_RISCHIO

CREATE   procedure [C6MartPeriodico].[RP_DM_Confronto_IndicatoreRischio]  
AS 
BEGIN  


DECLARE @PERC_SCARTO AS DECIMAL (5,2)

SET @PERC_SCARTO= 1

TRUNCATE TABLE[C6martPeriodico].[CONFRONTO_RISCHIO]



INSERT INTO [C6martPeriodico].[CONFRONTO_RISCHIO]
SELECT 
	qd.rete as Rete,
	qd.codfis as Codfis,
	qd.piva as Piva,
	qd.codman as Codman,
	qd.chiave_acn as Chiave_acn,
    ABS(qd.isp_total_risk) AS Rischio_Adeguatezza ,
    ra.VAR_PERC_PTF AS Rischio_IL,
    ABS(ABS(qd.isp_total_risk) - ABS(ra.VAR_PERC_PTF)) AS Dif_rischio,
	--ABS(qd.isp_total_risk) * 
	@PERC_SCARTO AS Val_Tol_Scarto,
    CASE 
        WHEN ABS(ABS(qd.isp_total_risk) - ABS(ra.VAR_PERC_PTF)) > --(ABS(qd.isp_total_risk) * 
		@PERC_SCARTO THEN 'KO'
        ELSE 'OK' 
    END AS Confronto_Ind_Rischio,
    trim(qd.flag_risk) AS Flag_Rischio_Adeguatezza,
    CASE 
        WHEN ade.Adeg_Rischio = 'S' THEN 'Y' 
        WHEN ade.Adeg_Rischio = 'N' THEN '' 
        ELSE ade.Adeg_Rischio 
    END AS Flag_Rischio_IL,
    CASE 
        WHEN trim(qd.flag_risk) <> 
        CASE 
            WHEN ade.Adeg_Rischio in ('S','NA') THEN 'Y' 
            WHEN ade.Adeg_Rischio  = 'N' THEN '' 
            ELSE ade.Adeg_Rischio 
        END 
        THEN 'KO' 
        ELSE 'OK'     END AS Confronto_Flag_Ind_Rischio 
		,NULL as Perc_Var_KO
		,NULL as Perc_Ind_Adeg_KO

FROM [C6martPeriodico].[QD_VAR_RISK_WEEK2] qd
LEFT JOIN [C6martPeriodico].RISCHIO_AGGREGATO ra
    ON qd.rete = ra.rete AND qd.chiave_acn = ra.COD_FISCALE
LEFT JOIN [C6MartPeriodico].[W6CKADEG] ade
    ON qd.rete = ade.Rete AND qd.chiave_acn = ade.Chiave_Acn
WHERE ra.COD_AGGREG = 'COMPLESSIVO'

DECLARE @NUM_C_RISCHIO INT
DECLARE @NUM_C_RISCHIO_KO INT

DECLARE @NUM_F_RISCHIO INT 
DECLARE @NUM_F_RISCHIO_KO INT


select @NUM_C_RISCHIO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] 
select @NUM_C_RISCHIO_KO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] where Confronto_Ind_Rischio='KO'

select @NUM_F_RISCHIO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] 
select @NUM_F_RISCHIO_KO=COUNT(*) from [C6martPeriodico].[CONFRONTO_RISCHIO] where Confronto_Flag_Ind_Rischio='KO'

	-- FerAcu 20240913 - Ovviare a problema di divisione per zero quando la tabella è vuota
	if (@NUM_C_RISCHIO != 0 and @NUM_F_RISCHIO != 0)
	begin
		declare @PERC_C_RISCHIO DECIMAL(18,2)
		DECLARE @PERC_F_RISCHIO DECIMAL(18,2)

		--Confronto_Perc_Rischio Perc_Var_KO
		SET @PERC_C_RISCHIO = (CAST(@NUM_C_RISCHIO_KO AS DECIMAL(18,2)) * 100) / CAST(@NUM_C_RISCHIO AS DECIMAL(18,2));

		--Confronto_Ind_Rischio Perc_Ind_Adeg_KO
		SET @PERC_F_RISCHIO = (CAST(@NUM_F_RISCHIO_KO AS DECIMAL(18,2)) * 100) / CAST(@NUM_F_RISCHIO AS DECIMAL(18,2));



		update [C6martPeriodico].[CONFRONTO_RISCHIO]
		set Perc_Var_KO=@PERC_C_RISCHIO

		update [C6martPeriodico].[CONFRONTO_RISCHIO]
		set Perc_Ind_Adeg_KO=@PERC_F_RISCHIO
	end

END  
  
  
  
  


  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONO_PIANIFICAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
  
-- =============================================  
-- Author:  Rino Le Boffe   
-- Create date: 08/08/2013  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_CONO_PIANIFICAZIONE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_CONO_PIANIFICAZIONE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[CONO_PIANIFICAZIONE]   
  
 INSERT INTO [C6MartPeriodico].[CONO_PIANIFICAZIONE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_CONO]  
           ,[SCENARIO_PESSIMISTICO]  
           ,[SCENARIO_MEDIO]  
           ,[SCENARIO_OTTIMISTICO]  
           ,[ID_ELAB]  
   ,ordinamento_progetto)  
  
 SELECT  
           WANAB.RETE AS RETE,  
           VC.COD_FISCALE AS COD_FISCALE,  
     CASE  
    WHEN WANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN WANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN WANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN WANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END AS ID_AREA,  
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,  
           CONO.dtRiferimento AS DATA_CONO,  
           CONO.quantileInf * 100 AS SCENARIO_PESSIMISTICO,  
           CONO.quantileInter * 100 AS SCENARIO_MEDIO,  
           CONO.quantileSup * 100 AS SCENARIO_OTTIMISTICO,  
           @ID_ELAB,  
  PR.chiaveProgetto -- wanab.codprog--,   
          -- count(*)  
 FROM C6StagingPeriodico.TANAB AS WANAB  
 INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
        ON WANAB.CODPROG = CM.idmonitoraggio  
    INNER JOIN C6StagingPeriodico.RP_Progetto PR  
        ON CM.chiaveprogetto = PR.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS  
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod  
    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
        ON WANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                             THEN VC.COD_FISCALE ELSE VC.COD_MANDATO  
                          END    
       AND WANAB.RETE = VC.RETE  
--       AND VC.DATA_FINEAVANZATO > getDate()  
    INNER JOIN C6StagingPeriodico.RP_CONO CONO  
     ON CONO.CHIAVEPROGETTO = CM.chiaveProgetto  
  
 WHERE 1 = 1  
 AND WANAB.DTFINE = '99991231'  
 --AND ((WANAB.CODAREA = 'Inv' AND CS.nomeProgetto = 'Progetto investimento') OR WANAB.CODAREA = 'Ris')  
 AND (WANAB.CODAREA = 'Inv' OR WANAB.CODAREA = 'Ris')  
   
 --modifiche Luca per errore mart simulazione 16/12/2015  
 --and WANAB.CODFIS  not in ('GRPGLI71R45L407D','MRTGRL59B60H501T')  
 ---------------------------------------------------------------------------  
   
   
 -- formula commentata in trimestrale di luglio 2015 perché impediva la genenerazione del grafico del rendimento cumulato per importi  
 -- negativi (vedi segnalazione di FOGA' del 15/7/2015)  
 --AND (WANAB.APP_INI + WANAB.NTOT_APP - WANAB.NTOT_LIQ - (WANAB.TOT_CED + WANAB.TOT_DIV))>0 -- per escludere tutto quello che ha risorse associate =0  
   
 --AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1  
 --and wanab.codfis <> 'GRVMRZ63C14L566J'  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_CONO_PIANIFICAZIONE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_CONO_PIANIFICAZIONE'  
  )  
  
END  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONO_PIANIFICAZIONE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Rino Le Boffe	
-- Create date: 08/08/2013
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_CONO_PIANIFICAZIONE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_CONO_PIANIFICAZIONE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[CONO_PIANIFICAZIONE] 

	INSERT INTO [C6MartPeriodico].[CONO_PIANIFICAZIONE]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_CONO]
           ,[SCENARIO_PESSIMISTICO]
           ,[SCENARIO_MEDIO]
           ,[SCENARIO_OTTIMISTICO]
           ,[ID_ELAB]
			,ordinamento_progetto)

	SELECT
           WANAB.RETE AS RETE,
           VC.COD_FISCALE AS COD_FISCALE,
		   CASE
				WHEN WANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN WANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN WANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN WANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END AS ID_AREA,
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,
           CONO.dtRiferimento AS DATA_CONO,
           CONO.quantileInf * 100 AS SCENARIO_PESSIMISTICO,
           CONO.quantileInter * 100 AS SCENARIO_MEDIO,
           CONO.quantileSup * 100 AS SCENARIO_OTTIMISTICO,
           @ID_ELAB,
		PR.chiaveProgetto --	wanab.codprog--, 
          -- count(*)
	FROM C6StagingPeriodico.TANAB AS WANAB
	INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
        ON WANAB.CODPROG = CM.idmonitoraggio
    INNER JOIN C6StagingPeriodico.RP_Progetto PR
        ON CM.chiaveprogetto = PR.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod
    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
        ON WANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                             THEN VC.COD_FISCALE ELSE VC.COD_MANDATO
                          END  
       AND WANAB.RETE = VC.RETE
--       AND VC.DATA_FINEAVANZATO > getDate()
    INNER JOIN C6StagingPeriodico.RP_CONO CONO
	    ON CONO.CHIAVEPROGETTO = CM.chiaveProgetto

	WHERE 1 = 1
	AND WANAB.DTFINE = '99991231'
	--AND ((WANAB.CODAREA = 'Inv' AND CS.nomeProgetto = 'Progetto investimento') OR WANAB.CODAREA = 'Ris')
	AND (WANAB.CODAREA = 'Inv' OR WANAB.CODAREA = 'Ris')
	
	--modifiche Luca per errore mart simulazione 16/12/2015
	--and WANAB.CODFIS  not in ('GRPGLI71R45L407D','MRTGRL59B60H501T')
	---------------------------------------------------------------------------
	
	
	-- formula commentata in trimestrale di luglio 2015 perché impediva la genenerazione del grafico del rendimento cumulato per importi
	-- negativi (vedi segnalazione di FOGA' del 15/7/2015)
	--AND (WANAB.APP_INI + WANAB.NTOT_APP - WANAB.NTOT_LIQ - (WANAB.TOT_CED + WANAB.TOT_DIV))>0 -- per escludere tutto quello che ha risorse associate =0
	
	--AND SCELTA_STATO.FLAG_UTILIZZO_STATO = 1
	--and wanab.codfis <> 'GRVMRZ63C14L566J'
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_CONO_PIANIFICAZIONE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_CONO_PIANIFICAZIONE_pre_selective'
		)

END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-----------------------------------------------------------------------------
CREATE procedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI]  
AS  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_CONTRATTOSEI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
  
TRUNCATE TABLE C6MartPERIODICO.CONTRATTOSEI  
INSERT INTO C6MartPERIODICO.CONTRATTOSEI  
SELECT       
 r.[Rete],  
 r.[Cod_Fiscale],  
 r.[PIva_Fiduciaria],  
 r.[DATA_INZIOAVANZATO] as [Data_Sott],  
 r.[CodiceContratto],  
 r.[Cod_Agente],  
 r.[Data_Perf_Base],  
 r.[Data_Perf],  
 null as [Fascia_CPP],  
 null as [Email],  
 r.[Indirizzo],  
 r.[CAP],  
 r.[Citta],  
 r.[Provincia],  
 r.[Nazione],  
 r.[Presso],  
 null as[Data_Inizio],  
 r.[Freq_Diagnosi],  
 r.[FREQ_MONITORAGGIO],  
 null as [Freq_DiagnosiPrec],  
 null as [Freq_MonitorPrec],  
 null as [Data_InizioConsInv],  
 r.[Data_InizioBase],  
 r.[Data_FineBase],  
 r.[DATA_INZIOAVANZATO],  
 r.[Data_FineAvanzato],  
 null as [ProgressivoInvio],  
 'N',  
 'N',  
 null as [DataUltimoInvio],  
 r.[ClienteMigrato],  
 r.[RisorseNA],  
 null as [PartViaDisinv],  
 r.[NumSolleciti],  
 r.[Data_UltimoSollecito],  
 r.[NumRevoche],  
 r.[Data_UltimaRevoca],  
 null as [Note],  
 null as [Data_Invio_Diagnosi_Trimestrale],  
 null as [Data_Invio_Monitoraggio_Trimestrale],  
 r.[ProfiloAttivo],  
 null as [Rol],  
 r.[TIP_CONTRATTO],  
 r.[TIP_RIATTIVAZIONE]  
  
FROM   
    [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]  r
left join  C6MartPeriodico.ANAG_CLIENTI a
on a.RETE=r.rete and a.COD_FISCALE=r.COD_FISCALE
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_CONTRATTOSEI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_CONTRATTOSEI'  
  )  
    
    
    
UPDATE c6martperiodico.contrattosei  
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,prov         = a.Provincia  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITOR      = a.FREQ_MONITORAGGIO  
from c6mart.vcontratti a  
inner join c6martperiodico.contrattosei b  
on a.codicecontratto = b.codicecontratto  
  
  
UPDATE contr
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,provincia        = a.Prov  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITORAGGIO = a.FREQ_MONITOR  
from c6martperiodico.contrattosei a  
inner join [C6StagingPeriodico].[APPO_CONTRATTI] contr on a.codicecontratto = contr.codicecontratto  
left join  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null or 0 = (select count(*) from  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] with (nolock))


  
-- Allineamento Flag Rol su contratto sei  
  
Update C6MartPeriodico.ContrattoSei  
Set Rol = Case D.statorol  
    When 'S' then D.statorol  
    Else 'N'  
    End,  
    EmAil = Case d.alertrol  
    When 'S' then D.Email  
    End        
from  C6MartPeriodico.ContrattoSei C inner join  C6StagingPeriodico.datiRol2 D  
on d.codContratto = c.codiceContratto  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI_20170407.SAVE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
  
  
CREATE procedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI_20170407.SAVE]  
AS  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_CONTRATTOSEI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
  
TRUNCATE TABLE C6MartPERIODICO.CONTRATTOSEI  
INSERT INTO C6MartPERIODICO.CONTRATTOSEI  
SELECT       
 [Rete],  
 [Cod_Fiscale],  
 [PIva_Fiduciaria],  
 [DATA_INZIOAVANZATO] as [Data_Sott],  
 [CodiceContratto],  
 [Cod_Agente],  
 [Data_Perf_Base],  
 [Data_Perf],  
 null as [Fascia_CPP],  
 null as [Email],  
 [Indirizzo],  
 [CAP],  
 [Citta],  
 [Provincia],  
 [Nazione],  
 [Presso],  
 null as[Data_Inizio],  
 [Freq_Diagnosi],  
 [FREQ_MONITORAGGIO],  
 null as [Freq_DiagnosiPrec],  
 null as [Freq_MonitorPrec],  
 null as [Data_InizioConsInv],  
 [Data_InizioBase],  
 [Data_FineBase],  
 [DATA_INZIOAVANZATO],  
 [Data_FineAvanzato],  
 null as [ProgressivoInvio],  
 'N',  
 'N',  
 null as [DataUltimoInvio],  
 [ClienteMigrato],  
 [RisorseNA],  
 null as [PartViaDisinv],  
 [NumSolleciti],  
 [Data_UltimoSollecito],  
 [NumRevoche],  
 [Data_UltimaRevoca],  
 null as [Note],  
 null as [Data_Invio_Diagnosi_Trimestrale],  
 null as [Data_Invio_Monitoraggio_Trimestrale],  
 [ProfiloAttivo],  
 null as [Rol],  
 [TIP_CONTRATTO],  
 [TIP_RIATTIVAZIONE]  
  
FROM   
    [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_CONTRATTOSEI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_CONTRATTOSEI'  
  )  
    
    
    
UPDATE c6martperiodico.contrattosei  
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,prov         = a.Provincia  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITOR      = a.FREQ_MONITORAGGIO  
from c6mart.vcontratti a  
inner join c6martperiodico.contrattosei b  
on a.codicecontratto = b.codicecontratto  
  
  
UPDATE contr
set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,provincia        = a.Prov  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITORAGGIO = a.FREQ_MONITOR  
from c6martperiodico.contrattosei a  
inner join [C6StagingPeriodico].[APPO_CONTRATTI] contr 
on a.codicecontratto = contr.codicecontratto
left join  [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE 
and lim.rete = contr.rete

  
--INIZIO INTERVENTO TEMPORANEO  
--ELIMINARE LE SUCCESSIVE DUE UPDATE DOPO LA TRIMESTRALE DI LUGLIO 2015  
  
--UPDATE c6martperiodico.contrattosei  
-- set    
--   indirizzo        = a.bindirizzo  
--  ,cap         = a.bcap   
--  ,citta         = a.bcitta  
--  ,prov         = a.bProvincia  
--  ,presso         = a.bPresso  
--from cambio_tot a  
--inner join c6martperiodico.contrattosei b  
--on a.codicecontratto = b.codicecontratto  
  
  
--UPDATE C6StagingPeriodico.appo_contratti  
-- set    
--   indirizzo        = a.bindirizzo  
--  ,cap         = a.bcap   
--  ,citta         = a.bcitta  
--  ,provincia        = a.bProvincia  
--  ,presso         = a.bPresso  
--from cambio_tot a  
--inner join C6StagingPeriodico.appo_contratti_v b  
--on a.codicecontratto = b.codicecontratto  
--FINE INTERVENTO TEMPORANEO  
  
  
-- Allineamento Flag Rol su contratto sei  
  
Update C6MartPeriodico.ContrattoSei  
Set Rol = Case D.statorol  
    When 'S' then D.statorol  
    Else 'N'  
    End,  
    EmAil = Case d.alertrol  
    When 'S' then D.Email  
    End        
from  C6MartPeriodico.ContrattoSei C inner join  C6StagingPeriodico.datiRol2 D  
on d.codContratto = c.codiceContratto  
  
  
----INIZIO INTERVENTO TEMPORANEO  
---- Aggiornamento rol per 59 fiduciare FScirocco _VERIFICARE POST TRIM SE L'INTERVENTO DEVE RIMANERE A REGIME O MENO (chiedere ogni trimestrale)  
--UPDATE C6MARTPERIODICO.CONTRATTOSEI  
--SET ROL = 'S'   
  
--WHERE COD_FISCALE IN  
--('FF@1602'  
--,'FF@1832'  
--,'FF@2103'  
--,'FF@2168'  
--,'FF@2464'  
--,'FF@3033'  
--,'FF@3151'  
--,'FF@3329'  
--,'FF@3444'  
--,'FF@4055'  
--,'FF@4461'  
--,'FF@5052'  
--,'FF@5076'  
--,'FF@5758'  
--,'FF@5952'  
--,'FF@6221'  
--,'FF@6368'  
--,'FF@6606'  
--,'FF@6777'  
--,'FF@7104'  
--,'FF@7171'  
--,'FF@7185'  
--,'FF@7317'  
--,'FF@7522'  
--,'FF@7699'  
--,'FF@7763'  
--,'FF@7837'  
--,'FF@7986'  
--,'FF@8095'  
--,'FF@8101'  
--,'FF@8398'  
--,'FF@8724'  
--,'FF@8798'  
--,'FF@8799'  
--,'FF@8800'  
--,'FF@8877'  
--,'FF@8880'  
--,'FF@8881'  
--,'FF@8882'  
--,'FF@8996'  
--,'FF@9022'  
--,'FF@9220'  
--,'FF@9285'  
--,'FF@9318'  
--,'FF@9323'  
--,'FF@9338'  
--,'FF@9578'  
--,'FF@9593'  
--,'FF@9662'  
--,'FF@5044'  
--,'FF@5226'  
--,'FF@7205'  
--,'FF@7774'  
--,'FF@8797'  
--,'FF@8861'  
--,'FF@8885'  
--,'FF@9204'  
--,'FF@9418'  
--,'FF@9661')  
  
----FINE INTERVENTO TEMPORANEO  
  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6MartPeriodico].[RP_DM_CONTRATTOSEI_pre_selective]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_CONTRATTOSEI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)


TRUNCATE TABLE C6MartPERIODICO.CONTRATTOSEI
INSERT INTO C6MartPERIODICO.CONTRATTOSEI
SELECT     
	[Rete],
	[Cod_Fiscale],
	[PIva_Fiduciaria],
	[DATA_INZIOAVANZATO] as [Data_Sott],
	[CodiceContratto],
	[Cod_Agente],
	[Data_Perf_Base],
	[Data_Perf],
	null as [Fascia_CPP],
	null as [Email],
	[Indirizzo],
	[CAP],
	[Citta],
	[Provincia],
	[Nazione],
	[Presso],
	null as[Data_Inizio],
	[Freq_Diagnosi],
	[FREQ_MONITORAGGIO],
	null as [Freq_DiagnosiPrec],
	null as [Freq_MonitorPrec],
	null as [Data_InizioConsInv],
	[Data_InizioBase],
	[Data_FineBase],
	[DATA_INZIOAVANZATO],
	[Data_FineAvanzato],
	null as [ProgressivoInvio],
	'N',
	'N',
	null as [DataUltimoInvio],
	[ClienteMigrato],
	[RisorseNA],
	null as [PartViaDisinv],
	[NumSolleciti],
	[Data_UltimoSollecito],
	[NumRevoche],
	[Data_UltimaRevoca],
	null as [Note],
	null as [Data_Invio_Diagnosi_Trimestrale],
	null as [Data_Invio_Monitoraggio_Trimestrale],
	[ProfiloAttivo],
	null as [Rol],
	[TIP_CONTRATTO],
	[TIP_RIATTIVAZIONE]

FROM 
    [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport]


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_CONTRATTOSEI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_CONTRATTOSEI_pre_selective'
		)
		
		
		
UPDATE c6martperiodico.contrattosei
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,prov		       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi     = a.Freq_Diagnosi
	    ,FREQ_MONITOR      = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join c6martperiodico.contrattosei b
on a.codicecontratto = b.codicecontratto


UPDATE C6StagingPeriodico.appo_contratti
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Prov
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi     = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITOR
from c6martperiodico.contrattosei a
inner join c6stagingperiodico.appo_contratti b
on a.codicecontratto = b.codicecontratto


--INIZIO INTERVENTO TEMPORANEO
--ELIMINARE LE SUCCESSIVE DUE UPDATE DOPO LA TRIMESTRALE DI LUGLIO 2015

--UPDATE c6martperiodico.contrattosei
--	set  
--		 indirizzo	       = a.bindirizzo
--		,cap		       = a.bcap	
--		,citta		       = a.bcitta
--		,prov		       = a.bProvincia
--		,presso		       = a.bPresso
--from cambio_tot a
--inner join c6martperiodico.contrattosei b
--on a.codicecontratto = b.codicecontratto


--UPDATE C6StagingPeriodico.appo_contratti
--	set  
--		 indirizzo	       = a.bindirizzo
--		,cap		       = a.bcap	
--		,citta		       = a.bcitta
--		,provincia	       = a.bProvincia
--		,presso		       = a.bPresso
--from cambio_tot a
--inner join C6StagingPeriodico.appo_contratti b
--on a.codicecontratto = b.codicecontratto
--FINE INTERVENTO TEMPORANEO


-- Allineamento Flag Rol su contratto sei

Update C6MartPeriodico.ContrattoSei
Set Rol = Case D.statorol
		  When 'S' then D.statorol
		  Else 'N'
		  End,
    EmAil = Case d.alertrol
		  When 'S' then D.Email
		  End		 	  
from  C6MartPeriodico.ContrattoSei C inner join  C6StagingPeriodico.datiRol2 D
on d.codContratto = c.codiceContratto


----INIZIO INTERVENTO TEMPORANEO
---- Aggiornamento rol per 59 fiduciare FScirocco _VERIFICARE POST TRIM SE L'INTERVENTO DEVE RIMANERE A REGIME O MENO (chiedere ogni trimestrale)
--UPDATE C6MARTPERIODICO.CONTRATTOSEI
--SET ROL = 'S' 

--WHERE COD_FISCALE IN
--('FF@1602'
--,'FF@1832'
--,'FF@2103'
--,'FF@2168'
--,'FF@2464'
--,'FF@3033'
--,'FF@3151'
--,'FF@3329'
--,'FF@3444'
--,'FF@4055'
--,'FF@4461'
--,'FF@5052'
--,'FF@5076'
--,'FF@5758'
--,'FF@5952'
--,'FF@6221'
--,'FF@6368'
--,'FF@6606'
--,'FF@6777'
--,'FF@7104'
--,'FF@7171'
--,'FF@7185'
--,'FF@7317'
--,'FF@7522'
--,'FF@7699'
--,'FF@7763'
--,'FF@7837'
--,'FF@7986'
--,'FF@8095'
--,'FF@8101'
--,'FF@8398'
--,'FF@8724'
--,'FF@8798'
--,'FF@8799'
--,'FF@8800'
--,'FF@8877'
--,'FF@8880'
--,'FF@8881'
--,'FF@8882'
--,'FF@8996'
--,'FF@9022'
--,'FF@9220'
--,'FF@9285'
--,'FF@9318'
--,'FF@9323'
--,'FF@9338'
--,'FF@9578'
--,'FF@9593'
--,'FF@9662'
--,'FF@5044'
--,'FF@5226'
--,'FF@7205'
--,'FF@7774'
--,'FF@8797'
--,'FF@8861'
--,'FF@8885'
--,'FF@9204'
--,'FF@9418'
--,'FF@9661')

----FINE INTERVENTO TEMPORANEO







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONTROLLO_TRIMESTRALE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure  
  
-- =====================================================  
-- Author:  colaianni-consoli  
-- Create date: 28/06/2011  
-- Description: CARICA LA TABELLA CONTROLLO_TRIMESTRALE   
--    CON TUTTI I REPORT OGGETTO DI STAMPA   
-- =====================================================  
  
CREATE procedure [C6MartPeriodico].[RP_DM_CONTROLLO_TRIMESTRALE]  
AS BEGIN  
  
TRUNCATE TABLE C6MARTPERIODICO.CONTROLLO_TRIMESTRALE  
  
INSERT INTO   
 C6MARTPERIODICO.CONTROLLO_TRIMESTRALE  
SELECT   
 COD_FISCALE, RETE, CASE WHEN FREQ_DIAGNOSI IS NULL THEN 0 ELSE 1 END, NULL, NULL, 1, NULL, GETDATE()  
FROM   
-- Modifica MV 18/04/2015  
-- C6MARTPERIODICO.RP_vContrattiPerGenerazioneReport  
 C6stagingPERIODICO.appo_contratti_v  
  
END  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_CONTROLLO_TRIMESTRALE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- =====================================================
-- Author:		colaianni-consoli
-- Create date: 28/06/2011
-- Description:	CARICA LA TABELLA CONTROLLO_TRIMESTRALE 
--				CON TUTTI I REPORT OGGETTO DI STAMPA 
-- =====================================================

CREATE procedure [C6MartPeriodico].[RP_DM_CONTROLLO_TRIMESTRALE_pre_selective]
AS BEGIN

TRUNCATE TABLE C6MARTPERIODICO.CONTROLLO_TRIMESTRALE

INSERT INTO 
	C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
SELECT 
	COD_FISCALE, RETE, CASE WHEN FREQ_DIAGNOSI IS NULL THEN 0 ELSE 1 END, NULL, NULL, 1, NULL, GETDATE()
FROM 
-- Modifica MV 18/04/2015
--	C6MARTPERIODICO.RP_vContrattiPerGenerazioneReport
	C6stagingPERIODICO.appo_contratti

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[TEMP_RP_DM_DETTAGLIO_ASUL]
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
    DECLARE @MaxDTTrim AS decimal(9,0)
    SELECT @MaxDTTrim = MAX(DTTRIM) FROM C6STAGINGPERIODICO.WSEIUL
    
	TRUNCATE TABLE C6MartPeriodico.DETTAGLIO_ASUL
	
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		--ISNULL(
		--	C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
		--	SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		CAST('' AS VARCHAR(255)) AS COD_PRODOTTO,
		--ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)
  --            ) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
        CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		SPB_CONTR_SINTESI.POSITIONID AS SPB_POSITIONID
    INTO #TEMP_DETTAGLIO_ASUL		
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGINGPERIODICO.RP_CatalogoProdotti CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto
		-------------------> Mod del 23/1/2017 - ripristinata and sulla visibilità precedentemente commentata
        AND CATITEMREF.Visibilita = 1 
		-------------------> Fine Mod del 23/1/2017
		AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'
              OR (
			SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza
			AND 
			SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)

		)
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = @MaxDTTrim
	-------------------> Mod del 23/1/2017 -Commentata and sulla visibilità
	--AND CATITEMREF.Visibilita = 1
	-------------------> Fine Mod del 23/1/2017
    and SPB_CONTR_SINTESI.CTV <> 0
    
    
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_1'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	
	declare @visible int 
	
	-- FerAcu 20250226 Variante dell'update progressiva più rigorosa che  entra sul catalogo anche per ISIN, aggiunta per gestire cattile valorizzazioni sui SottoProdotti LSEL
	-- FerAcu 20250226 NEW
	set @visible = 1
	while @visible >= 0
		begin
			UPDATE #TEMP_DETTAGLIO_ASUL
			SET COD_PRODOTTO = CAT.CATALOGUEID
			FROM 
					#TEMP_DETTAGLIO_ASUL
			--********************************************************************************
					INNER JOIN  
					(
						select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = 1
					)CAT
						on  1=1
					   -- FerAcu 20250225 aggiunto criterio su ISIN con capisco perche l'Update non finiva in errore, riportavas un valore a caso ...
					   and cat.CodIsin = case when COD_ISIN_SOTT != '' Then COD_ISIN_SOTT Else COD_ISIN_FITTIZIO End 
					   and (

							--caso 1
							(COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
							and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
							and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))
							or 
							--else caso 1 
							(COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
							and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
							and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
							and cat.TIPOPRODOTTO = 'ASUL')
						  )
			--***********************************************************************************		
			WHERE COD_PRODOTTO = ''

			set @visible = @visible - 1
			end

	-- FerAcu 20250226 OLD con verifica sul singlolo match
	set @visible = 1
	while @visible >= 0
		begin
			UPDATE #TEMP_DETTAGLIO_ASUL
			SET COD_PRODOTTO = CAT.CATALOGUEID
			FROM 
					#TEMP_DETTAGLIO_ASUL
			--********************************************************************************
					CROSS APPLY  
					(
						select *
						     , COUNT(1) OVER(PARTITION BY cp.CODINTERNO, cp.CODSOTTOPRODOTTO, cp.TIPOPRODOTTO ) AS count_match
						from c6stagingperiodico.rp_catalogoprodotti cp
						where visibilita = 1
						   and (
								--caso 1
								(COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
								and isnull(cp.CODINTERNO,'') = isnull(COD_INTERNO,'')
								and isnull(cp.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))
								or 
								--else caso 1 
								(COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
								and isnull(cp.CODINTERNO,'') = isnull(COD_INTERNO,'')
								and isnull(cp.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
								and cp.TIPOPRODOTTO = 'ASUL')
							  )
					) CAT
			--***********************************************************************************		
			WHERE COD_PRODOTTO = ''
			  -- FerAcu 20250226
			  and count_match = 1

			set @visible = @visible - 1
			end


	-------------------> Mod del 23/1/2017 
		--aggiorno tutti quelli che non hanno almeno un prodotto in catalogo con visibilità 1
		-- FerAcu 20250226 NEW
		set @visible = 1
		while @visible >= 0
			begin
				UPDATE #TEMP_DETTAGLIO_ASUL
				SET COD_PRODOTTO = CAT.CATALOGUEID
				FROM 
					   #TEMP_DETTAGLIO_ASUL
				--********************************************************************************
					   INNER JOIN  c6stagingperiodico.rp_catalogoprodotti cat
							on  1=1
					   -- FerAcu 20250225 aggiunto ctriterio su ISIN con capisco perche l'Update non finiva in errore, riportavas un valore a caso ...
					   and cat.CodIsin = case when COD_ISIN_SOTT != '' Then COD_ISIN_SOTT Else COD_ISIN_FITTIZIO End 
					   and (
						
							 isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
							and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
							and cat.TIPOPRODOTTO = 'ASUL'
						   )
				--***********************************************************************************		
				WHERE COD_PRODOTTO = ''

				set @visible = @visible - 1
			end

		-- FerAcu 20250226 OLD con verifica sul singlolo match
		set @visible = 1
		while @visible >= 0
			begin
				UPDATE #TEMP_DETTAGLIO_ASUL
				SET COD_PRODOTTO = CAT.CATALOGUEID
				FROM #TEMP_DETTAGLIO_ASUL
				--********************************************************************************
					CROSS APPLY  
					(
						select *
						     , COUNT(1) OVER(PARTITION BY cp.CODINTERNO, cp.CODSOTTOPRODOTTO, cp.TIPOPRODOTTO ) AS count_match
						from c6stagingperiodico.rp_catalogoprodotti cp
						where 1=1
					      and (
   								 isnull(cp.CODINTERNO,'') = isnull(COD_INTERNO,'')
								and isnull(cp.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
								and cp.TIPOPRODOTTO = 'ASUL'
						      )
					) CAT
				--***********************************************************************************		
				WHERE COD_PRODOTTO = ''
			      -- FerAcu 20250226
				  and count_match = 1

				set @visible = @visible - 1
			end

	-------------------> Fine Mod del 23/1/2017 




	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_2'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	
	-------------> modifica del 23/01/2017 - questa update non è corretta - sostituiamo con scarto su data quality
		--UPDATE #TEMP_DETTAGLIO_ASUL
		--SET COD_PRODOTTO = SPB_POSITIONID
		--WHERE COD_PRODOTTO = ''

	select 
		14 as idTipoCtr,
		rete as rete,
		cod_fiscale as codfis,
		(select DescSegnalazione  from   c6martperiodico.tb_tipocontrollo where idtipocontrollo = 14) + temp.cod_interno + '/' + temp.cod_sottoprodotto + '/'  +temp.id_contratto
		 as descrizione,
		@ID_ELAB as idelab,
		'' as richiesta,
		0 as idfase,
		getdate() as dataelab
	into #TbErrori
	from  #TEMP_DETTAGLIO_ASUL temp
	WHERE temp.COD_PRODOTTO = ''

	Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
    select * from #TbErrori


	-------------> fine modifica del 23/01/2017 

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_3'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_4',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
		   ,[POSITION_ID]
		--   ,[CHIAVEPROGETTO]
		   )
	SELECT
		    d.[RETE]
		   ,d.[COD_FISCALE]
		   ,d.[COD_PRODOTTO]
		   ,d.[ID_CONTRATTO]
		   ,d.[COD_SOTTOPRODOTTO]
		   ,d.[COD_INTERNO]
		   ,d.[CTV]
		   ,d.[DATA_RIF]
		   ,d.[COD_ISIN_FITTIZIO]
		   ,d.[COD_ISIN_SOTT]
		   ,d.[COD_MAF_SOTT]
		   ,d.[ID_ELAB]
		   ,d.[TIPO_ELAB]
		   ,D.[SPB_POSITIONID]
		 --  ,p.[Chiaveprogetto]
     FROM #TEMP_DETTAGLIO_ASUL d
	-- left join C6MartPeriodico.PATRIMONIO_BF patr on
	-- patr.POSITION_ID=d.SPB_POSITIONID

		update d
	set d.ChiaveProgetto=patr.CHIAVE_PROGETTO
	from C6MartPeriodico.DETTAGLIO_ASUL d left join C6MartPeriodico.PATRIMONIO_BF patr on
	 patr.POSITION_ID=d.POSITION_ID

    DROP TABLE #TEMP_DETTAGLIO_ASUL
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_4' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_4'
		)

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL.20170320.OBS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--[C6MartPeriodico].[TEMP_RP_DM_DETTAGLIO_ASUL]  
CREATE procedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL.20170320.OBS]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_DETTAGLIO_ASUL_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
    DECLARE @MaxDTTrim AS decimal(9,0)  
    SELECT @MaxDTTrim = MAX(DTTRIM) FROM C6STAGINGPERIODICO.WSEIUL  
      
 TRUNCATE TABLE C6MartPeriodico.DETTAGLIO_ASUL  
   
 SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA  
     --********* DA AGGIUNGERE  
     --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL  
     --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE    
  SPB_CONTR_SINTESI.RETE AS RETE,  
  SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,  
  --ISNULL(  
  -- C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD),   
  -- SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,  
  CAST('' AS VARCHAR(255)) AS COD_PRODOTTO,  
  --ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),  
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)  
  --            ) AS COD_PRODOTTO,  
  SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,  
  SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,  
  SPB_ASS_UNIT.CODINT AS COD_INTERNO,  
  SPB_ASS_UNIT.CTV AS CTV,  
        CASE  
   WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_RIF,  
  SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,  
  SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,  
  SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  
  SPB_CONTR_SINTESI.POSITIONID AS SPB_POSITIONID  
    INTO #TEMP_DETTAGLIO_ASUL    
 FROM   
  C6STAGINGPERIODICO.SPB_CONTR_SINTESI   
 INNER JOIN  
  C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT   
  ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF  
 LEFT OUTER JOIN  
  C6STAGINGPERIODICO.RP_CatalogoProdotti CATITEMREF   
  ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno  
  AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto  
        --AND CATITEMREF.Visibilita = 1   
  AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'  
              OR (  
   SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza  
   AND   
   SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)  
  
  )  
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'  
  AND SPB_ASS_UNIT.DTTRIM = @MaxDTTrim  
 AND CATITEMREF.Visibilita = 1  
    and SPB_CONTR_SINTESI.CTV <> 0  
      
      
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_DETTAGLIO_ASUL_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_DETTAGLIO_ASUL_1'  
  )  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_DETTAGLIO_ASUL_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
  
 declare @visible int   
 set @visible = 1  
 while @visible >= 0  
  begin  
   UPDATE #TEMP_DETTAGLIO_ASUL  
   SET COD_PRODOTTO = CAT.CATALOGUEID  
   FROM   
       #TEMP_DETTAGLIO_ASUL  
   --********************************************************************************  
       INNER JOIN    
       (  
      select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = 1  
       )CAT  
      on    
      --caso 1  
      (COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')  
      and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')  
      and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))  
      or   
      --else caso 1   
      (COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')  
      and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')  
      and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')  
      and cat.TIPOPRODOTTO = 'ASUL')  
   --***********************************************************************************    
   WHERE COD_PRODOTTO = ''  
  
   set @visible = @visible - 1  
  end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_DETTAGLIO_ASUL_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_DETTAGLIO_ASUL_2'  
  )  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_DETTAGLIO_ASUL_3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
  UPDATE #TEMP_DETTAGLIO_ASUL  
  SET COD_PRODOTTO = SPB_POSITIONID  
  WHERE COD_PRODOTTO = ''  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_DETTAGLIO_ASUL_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_DETTAGLIO_ASUL_3'  
  )  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_DETTAGLIO_ASUL_4',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]  
     ([RETE]  
     ,[COD_FISCALE]  
     ,[COD_PRODOTTO]  
     ,[ID_CONTRATTO]  
     ,[COD_SOTTOPRODOTTO]  
     ,[COD_INTERNO]  
     ,[CTV]  
     ,[DATA_RIF]  
     ,[COD_ISIN_FITTIZIO]  
     ,[COD_ISIN_SOTT]  
     ,[COD_MAF_SOTT]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
 SELECT  
     [RETE]  
     ,[COD_FISCALE]  
     ,[COD_PRODOTTO]  
     ,[ID_CONTRATTO]  
     ,[COD_SOTTOPRODOTTO]  
     ,[COD_INTERNO]  
     ,[CTV]  
     ,[DATA_RIF]  
     ,[COD_ISIN_FITTIZIO]  
     ,[COD_ISIN_SOTT]  
     ,[COD_MAF_SOTT]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB]  
     FROM #TEMP_DETTAGLIO_ASUL  
  
    DROP TABLE #TEMP_DETTAGLIO_ASUL  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_DETTAGLIO_ASUL_4' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_DETTAGLIO_ASUL_4'  
  )  
  
END  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_20170123]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[TEMP_RP_DM_DETTAGLIO_ASUL]
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_20170123]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
    DECLARE @MaxDTTrim AS decimal(9,0)
    SELECT @MaxDTTrim = MAX(DTTRIM) FROM C6STAGINGPERIODICO.WSEIUL
    
	TRUNCATE TABLE C6MartPeriodico.DETTAGLIO_ASUL
	
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		--ISNULL(
		--	C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
		--	SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		CAST('' AS VARCHAR(255)) AS COD_PRODOTTO,
		--ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)
  --            ) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
        CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		SPB_CONTR_SINTESI.POSITIONID AS SPB_POSITIONID
    INTO #TEMP_DETTAGLIO_ASUL		
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGINGPERIODICO.RP_CatalogoProdotti CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto
        --AND CATITEMREF.Visibilita = 1 
		AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'
              OR (
			SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza
			AND 
			SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)

		)
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = @MaxDTTrim
	AND CATITEMREF.Visibilita = 1
    and SPB_CONTR_SINTESI.CTV <> 0
    
    
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_1'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	declare @visible int 
	set @visible = 1
	while @visible >= 0
		begin
			UPDATE #TEMP_DETTAGLIO_ASUL
			SET COD_PRODOTTO = CAT.CATALOGUEID
			FROM 
				   #TEMP_DETTAGLIO_ASUL
			--********************************************************************************
				   INNER JOIN  
				   (
						select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = 1
				   )CAT
						on  
						--caso 1
						(COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))
						or 
						--else caso 1 
						(COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
						and cat.TIPOPRODOTTO = 'ASUL')
			--***********************************************************************************		
			WHERE COD_PRODOTTO = ''

			set @visible = @visible - 1
		end

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_2'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

		UPDATE #TEMP_DETTAGLIO_ASUL
		SET COD_PRODOTTO = SPB_POSITIONID
		WHERE COD_PRODOTTO = ''

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_3'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_4',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT
		   [RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
     FROM #TEMP_DETTAGLIO_ASUL

    DROP TABLE #TEMP_DETTAGLIO_ASUL
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_4' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_4'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_luca]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[TEMP_RP_DM_DETTAGLIO_ASUL]
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_luca]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	
    DECLARE @MaxDTTrim AS decimal(9,0)
    SELECT @MaxDTTrim = MAX(DTTRIM) FROM C6STAGINGPERIODICO.WSEIUL
    
	
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		--ISNULL(
		--	C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
		--	SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		CAST('' AS VARCHAR(255)) AS COD_PRODOTTO,
		--ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)
  --            ) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
        CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		SPB_CONTR_SINTESI.POSITIONID AS SPB_POSITIONID
    INTO #TEMP_DETTAGLIO_ASUL		
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGINGPERIODICO.RP_CatalogoProdotti CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto
        --AND CATITEMREF.Visibilita = 1 
		AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'
              OR (
			SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza
			AND 
			SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)

		)
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = @MaxDTTrim
	AND CATITEMREF.Visibilita = 1
    and SPB_CONTR_SINTESI.CTV <> 0
    

	AND SPB_CONTR_SINTESI.CODFIS = 'MLSVNC68S45D612E'
    

	SELECT * from  #TEMP_DETTAGLIO_ASUL	
	

	declare @visible int 
	set @visible = 1
	while @visible >= 0
		begin
			UPDATE #TEMP_DETTAGLIO_ASUL
			SET COD_PRODOTTO = CAT.CATALOGUEID
			FROM 
				   #TEMP_DETTAGLIO_ASUL
			--********************************************************************************
				   INNER JOIN  
				   (
						select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = 1
				   )CAT
						on  
						--caso 1
						(COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))
						or 
						--else caso 1 
						(COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
						and cat.TIPOPRODOTTO = 'ASUL')
			--***********************************************************************************		
			WHERE COD_PRODOTTO = ''

			set @visible = @visible - 1
		end


		


		UPDATE #TEMP_DETTAGLIO_ASUL
		SET COD_PRODOTTO = SPB_POSITIONID
		WHERE COD_PRODOTTO = ''

		
	

	INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT
		   [RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
     FROM #TEMP_DETTAGLIO_ASUL

    DROP TABLE #TEMP_DETTAGLIO_ASUL
	-- Log esecuzione
	

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[TEMP_RP_DM_DETTAGLIO_ASUL_pre_selective]
CREATE procedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_pre_selective_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
    DECLARE @MaxDTTrim AS decimal(9,0)
    SELECT @MaxDTTrim = MAX(DTTRIM) FROM C6STAGINGPERIODICO.WSEIUL
    
	TRUNCATE TABLE C6MartPeriodico.DETTAGLIO_ASUL
	
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		--ISNULL(
		--	C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
		--	SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		CAST('' AS VARCHAR(255)) AS COD_PRODOTTO,
		--ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)
  --            ) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
        CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		SPB_CONTR_SINTESI.POSITIONID AS SPB_POSITIONID
    INTO #TEMP_DETTAGLIO_ASUL		
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGINGPERIODICO.RP_CatalogoProdotti CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto
        --AND CATITEMREF.Visibilita = 1 
		AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'
              OR (
			SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza
			AND 
			SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)

		)
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = @MaxDTTrim
	AND CATITEMREF.Visibilita = 1
    and SPB_CONTR_SINTESI.CTV <> 0
    
    
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_1'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_pre_selective_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	declare @visible int 
	set @visible = 1
	while @visible >= 0
		begin
			UPDATE #TEMP_DETTAGLIO_ASUL
			SET COD_PRODOTTO = CAT.CATALOGUEID
			FROM 
				   #TEMP_DETTAGLIO_ASUL
			--********************************************************************************
				   INNER JOIN  
				   (
						select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = 1
				   )CAT
						on  
						--caso 1
						(COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))
						or 
						--else caso 1 
						(COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
						and cat.TIPOPRODOTTO = 'ASUL')
			--***********************************************************************************		
			WHERE COD_PRODOTTO = ''

			set @visible = @visible - 1
		end

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_2'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_pre_selective_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

		UPDATE #TEMP_DETTAGLIO_ASUL
		SET COD_PRODOTTO = SPB_POSITIONID
		WHERE COD_PRODOTTO = ''

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_3'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_pre_selective_4',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT
		   [RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
     FROM #TEMP_DETTAGLIO_ASUL

    DROP TABLE #TEMP_DETTAGLIO_ASUL
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_4' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_pre_selective_4'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_TEMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_DETTAGLIO_ASUL_TEMP]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--TRUNCATE TABLE C6MartPeriodico.DETTAGLIO_ASUL
--delete C6MartPeriodico.DETTAGLIO_ASUL where cod_fiscale = 'RNGBCM56E61D612I'
	INSERT INTO [C6MartPeriodico].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		ISNULL(
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
			SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		--ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)
  --            ) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
        CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGINGPERIODICO.RP_CatalogoProdotti CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto
        --AND CATITEMREF.Visibilita = 1 
		AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'
              OR (
			SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza
			AND 
			SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)

		)
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = (
			SELECT
				MAX(DTTRIM)
			FROM
				C6STAGINGPERIODICO.WSEIUL
		)
	AND CATITEMREF.Visibilita = 1
    and SPB_CONTR_SINTESI.CTV <> 0
and SPB_CONTR_SINTESI.CODFIS = 'RNGBCM56E61D612I'
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ESG_ANAG_METRICHE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select * from C6MartPeriodico.assetclass
CREATE   procedure [C6MartPeriodico].[RP_DM_ESG_ANAG_METRICHE]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ESG_ANAG_METRICHE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE c6StagingPeriodico.ESG_ANAG_METRICHE  
   
 INSERT INTO [c6StagingPeriodico].ESG_ANAG_METRICHE  
     ( [COD_PRODOTTO]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	   ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
	  ,LABEL_EU_GREEN_BOND_STANDARD
	   ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
	  ,[PERC_INVEST_SFDR_MIN_SUST_E]
	  ,[PERC_INVEST_SFDR_MIN_SUST_S]
	  ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
	  ,[PAI_LAB_A_Settore_Immobiliare]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
     ,[ID_ELAB]
      ,[TIPO_ELAB]
      )  
 SELECT   
  --ChiaveProdotto,   
  CatalogueID AS COD_PRODOTTO,  
  C.CodSottoprodotto AS COD_SOTTOPRODOTTO, 
  ISNULL(C.CodInterno, '') AS COD_INTERNO, 
  C.CodMaf AS COD_MAF, 
  C.CodAdeguatezza AS COD_ADEGUATEZZA,  
  ISNULL(C.CodIsin, '') AS COD_ISIN,  
  case when Ltrim(rtrim(ESG_E)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_E)) = 'N' then 'NO'
  else 'NO' end  as ESG_E,
  case when Ltrim(rtrim(ESG_S)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_S)) = 'N' then 'NO'
  else 'NO' end  as ESG_S,
  case when Ltrim(rtrim(ESG_G)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_G)) = 'N' then 'NO'
  else 'NO' end  as ESG_G,
  case when CatSFDR='-' then '' else CatSFDR end as CatSFDR,
  Ltrim(rtrim(ESGRating)) as ESGRating ,
  Ltrim(rtrim(TrendESGRating)) as TrendESGRating,
  case when LABEL_Green_Bond<> '-' then 'Green Bond' else '' end as LABEL_Green_Bond,
  case when LABEL_Social_Bond<> '-' then 'Social Bond' else '' end as LABEL_Social_Bond,
  case when LABEL_Sustainability_Bond<> '-' then 'Sustainability Bond' else '' end as LABEL_Sustainability_Bond,
  case when LABEL_Transition_Bond<> '-' then 'Transition Bond' else '' end as LABEL_Transition_Bond,
  case when LABEL_Sust_linked_bond<> '-' then 'Sustainability Linked Bond' else '' end as LABEL_Sust_linked_bond,
  case when LABEL_EU_GREEN_BOND_STANDARD<> '-' then 'EU Green Bond Standard' else '' end as LABEL_EU_GREEN_BOND_STANDARD,
  PERC_INVESTIMENTO_TAXONOMY *100 as PERC_INVESTIMENTO_TAXONOMY,
  PERC_INVESTIMENTO_SFDR * 100 as PERC_INVESTIMENTO_SFDR,
  [PERC_INVEST_SFDR_MIN_SUST_E] * 100 as PERC_INVEST_SFDR_MIN_SUST_E ,
  [PERC_INVEST_SFDR_MIN_SUST_S]  * 100 as PERC_INVEST_SFDR_MIN_SUST_S,
  case when PAI_LAB_A_Emissioni_Gas_Serra<>'-' then 'Emissioni Gas Serra' else '' end as PAI_LAB_A_Emissioni_Gas_Serra,
  case when PAI_LAB_A_Biodiversita<>'-' then 'Biodiversità' else '' end as PAI_LAB_A_Biodiversita,
  case when PAI_LAB_A_Acqua<>'-' then 'Acqua' else '' end as PAI_LAB_A_Acqua,
  case when PAI_LAB_A_Rifiuti<>'-' then 'Rifiuti' else '' end as PAI_LAB_A_Rifiuti,
  case when PAI_LAB_A_Gov_Ambientale<>'-' then 'Governativi di tipo Ambientale' else '' end as PAI_LAB_A_Gov_Ambientale,
  case when PAI_LAB_A_Comb_Fossili<>'-' then 'Combustibili Fossili' else '' end as PAI_LAB_A_Comb_Fossili,
  case when PAI_LAB_A_Eff_energetica<>'-' then 'Efficienza Energetica' else '' end as PAI_LAB_A_Eff_energetica,
  case when PAI_LAB_A_Settore_Immobiliare <>'-' then 'Settore Immobiliare' else '' end as PAI_LAB_A_Settore_Immobiliare,
  case when PAI_LAB_S_Questioni_Soc_Dip<>'-' then 'Questioni Sociali e dei Dipendenti' else '' end as PAI_LAB_S_Questioni_Soc_Dip,
  case when PAI_LAB_S_Gov_Sociali<>'-' then 'Governativi di tipo Sociale' else '' end as PAI_LAB_S_Gov_Sociali,
  case when U_INFO_ESG='TOOL_01' then 'Nota1' 
	   when U_INFO_ESG='TOOL_02' then 'Nota2'
	   else '' end as U_INFO_ESG,
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB
 FROM c6StagingPeriodico.RP_CatalogoProdotti  c  
 Inner Join c6StagingPeriodico.RP_TB_ESG_ANAG_STRUM  a  
 ON c.ChiaveProdotto = a.ChiaveProdotto  



UPDATE m1
SET m1.label_pai_a = NULLIF(CONCAT_WS(', ',
        NULLIF(m2.PAI_LAB_A_Emissioni_Gas_Serra, ''),
        NULLIF(m2.PAI_LAB_A_Biodiversita, ''),
        NULLIF(m2.PAI_LAB_A_Acqua, ''),
        NULLIF(m2.PAI_LAB_A_Rifiuti, ''),
        NULLIF(m2.PAI_LAB_A_Gov_Ambientale, ''),
        --NULLIF(m2.PAI_LAB_A_Comb_Fossili, ''),
        --NULLIF(m2.PAI_LAB_A_Eff_energetica, ''),
		NULLIF(m2.PAI_LAB_A_Settore_Immobiliare, '')
        -- NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
        -- NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM c6StagingPeriodico.ESG_ANAG_METRICHE m1
INNER JOIN c6StagingPeriodico.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')



	

UPDATE m1
SET m1.label_pai_s = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
       NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM c6StagingPeriodico.ESG_ANAG_METRICHE m1
INNER JOIN c6StagingPeriodico.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')

	--select * from c6StagingPeriodico.ESG_ANAG_METRICHE
	
UPDATE m1
SET m1.Label_U_INFO_ESG = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.LABEL_Green_Bond, ''),
       NULLIF(m2.Label_Social_Bond, ''),
	   NULLIF(m2.Label_Sustainability_Bond, ''),
	   NULLIF(m2.Label_Transition_Bond, ''),
	   NULLIF(m2.Label_Sust_linked_Bond, ''),
	   NULLIF(m2.Label_EU_Green_Bond_Standard, ''),
	   NULLIF(m2.CatSFDR, ''),
	   NULLIF(m2.U_INFO_ESG, '')
	   ), '')
FROM c6StagingPeriodico.ESG_ANAG_METRICHE m1
INNER JOIN c6StagingPeriodico.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')






  

	
		
	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ESG_ANAG_METRICHE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ESG_ANAG_METRICHE'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_ESG_ANAG_METRICHE_bkp_Pre_ESG4]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select * from C6MartPeriodico.assetclass
CREATE   procedure [C6MartPeriodico].[RP_DM_ESG_ANAG_METRICHE_bkp_Pre_ESG4]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_ESG_ANAG_METRICHE',
		GETDATE(),
		'Elaborazione giornaliera'
	)

TRUNCATE TABLE c6StagingPeriodico.ESG_ANAG_METRICHE  
   
 INSERT INTO [c6StagingPeriodico].ESG_ANAG_METRICHE  
     ( [COD_PRODOTTO]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	   ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
	  ,LABEL_EU_GREEN_BOND_STANDARD
	   ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
	  ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
     ,[ID_ELAB]
      ,[TIPO_ELAB]
      )  
 SELECT   
  --ChiaveProdotto,   
  CatalogueID AS COD_PRODOTTO,  
  C.CodSottoprodotto AS COD_SOTTOPRODOTTO, 
  ISNULL(C.CodInterno, '') AS COD_INTERNO, 
  C.CodMaf AS COD_MAF, 
  C.CodAdeguatezza AS COD_ADEGUATEZZA,  
  ISNULL(C.CodIsin, '') AS COD_ISIN,  
  case when Ltrim(rtrim(ESG_E)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_E)) = 'N' then 'NO'
  else 'NO' end  as ESG_E,
  case when Ltrim(rtrim(ESG_S)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_S)) = 'N' then 'NO'
  else 'NO' end  as ESG_S,
  case when Ltrim(rtrim(ESG_G)) = 'Y' then 'SI' 
  when Ltrim(rtrim(ESG_G)) = 'N' then 'NO'
  else 'NO' end  as ESG_G,
  case when CatSFDR='-' then '' else CatSFDR end as CatSFDR,
  Ltrim(rtrim(ESGRating)) as ESGRating ,
  Ltrim(rtrim(TrendESGRating)) as TrendESGRating,
  case when LABEL_Green_Bond<> '-' then 'Green Bond' else '' end as LABEL_Green_Bond,
  case when LABEL_Social_Bond<> '-' then 'Social Bond' else '' end as LABEL_Social_Bond,
  case when LABEL_Sustainability_Bond<> '-' then 'Sustainability Bond' else '' end as LABEL_Sustainability_Bond,
  case when LABEL_Transition_Bond<> '-' then 'Transition Bond' else '' end as LABEL_Transition_Bond,
  case when LABEL_Sust_linked_bond<> '-' then 'Sustainability Linked Bond' else '' end as LABEL_Sust_linked_bond,
  case when LABEL_EU_GREEN_BOND_STANDARD<> '-' then 'EU Green Bond Standard' else '' end as LABEL_EU_GREEN_BOND_STANDARD,
  PERC_INVESTIMENTO_TAXONOMY *100 as PERC_INVESTIMENTO_TAXONOMY,
  PERC_INVESTIMENTO_SFDR * 100 as PERC_INVESTIMENTO_SFDR,
  case when PAI_LAB_A_Emissioni_Gas_Serra<>'-' then 'Emissioni Gas Serra' else '' end as PAI_LAB_A_Emissioni_Gas_Serra,
  case when PAI_LAB_A_Biodiversita<>'-' then 'Biodiversità' else '' end as PAI_LAB_A_Biodiversita,
  case when PAI_LAB_A_Acqua<>'-' then 'Acqua' else '' end as PAI_LAB_A_Acqua,
  case when PAI_LAB_A_Rifiuti<>'-' then 'Rifiuti' else '' end as PAI_LAB_A_Rifiuti,
  case when PAI_LAB_A_Gov_Ambientale<>'-' then 'Governativi Ambientali' else '' end as PAI_LAB_A_Gov_Ambientale,
  case when PAI_LAB_A_Comb_Fossili<>'-' then 'Combustibili Fossili' else '' end as PAI_LAB_A_Comb_Fossili,
  case when PAI_LAB_A_Eff_energetica<>'-' then 'Efficienza Energetica' else '' end as PAI_LAB_A_Eff_energetica,
  case when PAI_LAB_S_Questioni_Soc_Dip<>'-' then 'Questioni Sociali e dei Dipendenti' else '' end as PAI_LAB_S_Questioni_Soc_Dip,
  case when PAI_LAB_S_Gov_Sociali<>'-' then 'Governativi Sociali' else '' end as PAI_LAB_S_Gov_Sociali,
  case when U_INFO_ESG='TOOL_01' then 'Nota1' 
	   when U_INFO_ESG='TOOL_02' then 'Nota2'
	   else '' end as U_INFO_ESG,
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM c6StagingPeriodico.RP_CatalogoProdotti  c  
 Inner Join c6StagingPeriodico.RP_TB_ESG_ANAG_STRUM  a  
 ON c.ChiaveProdotto = a.ChiaveProdotto  



UPDATE m1
SET m1.label_pai_a = NULLIF(CONCAT_WS(', ',
        NULLIF(m2.PAI_LAB_A_Emissioni_Gas_Serra, ''),
        NULLIF(m2.PAI_LAB_A_Biodiversita, ''),
        NULLIF(m2.PAI_LAB_A_Acqua, ''),
        NULLIF(m2.PAI_LAB_A_Rifiuti, ''),
        NULLIF(m2.PAI_LAB_A_Gov_Ambientale, ''),
        NULLIF(m2.PAI_LAB_A_Comb_Fossili, ''),
        NULLIF(m2.PAI_LAB_A_Eff_energetica, '')
        -- NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
        -- NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM c6StagingPeriodico.ESG_ANAG_METRICHE m1
INNER JOIN c6StagingPeriodico.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')



	

UPDATE m1
SET m1.label_pai_s = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.PAI_LAB_S_Questioni_Soc_Dip, ''),
       NULLIF(m2.PAI_LAB_S_Gov_Sociali, '')
    ), '')
FROM c6StagingPeriodico.ESG_ANAG_METRICHE m1
INNER JOIN c6StagingPeriodico.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')

	--select * from c6StagingPeriodico.ESG_ANAG_METRICHE
	
UPDATE m1
SET m1.Label_U_INFO_ESG = NULLIF(CONCAT_WS(', ', 
       NULLIF(m2.LABEL_Green_Bond, ''),
       NULLIF(m2.Label_Social_Bond, ''),
	   NULLIF(m2.Label_Sustainability_Bond, ''),
	   NULLIF(m2.Label_Transition_Bond, ''),
	   NULLIF(m2.Label_Sust_linked_Bond, ''),
	   NULLIF(m2.Label_EU_Green_Bond_Standard, ''),
	   NULLIF(m2.CatSFDR, ''),
	   NULLIF(m2.U_INFO_ESG, '')
	   ), '')
FROM c6StagingPeriodico.ESG_ANAG_METRICHE m1
INNER JOIN c6StagingPeriodico.ESG_ANAG_METRICHE m2 ON 
    ISNULL(m1.COD_PRODOTTO, '') = ISNULL(m2.COD_PRODOTTO, '')
    AND ISNULL(m1.CodSottoprodotto, '') = ISNULL(m2.CodSottoprodotto, '')
    AND ISNULL(m1.CodInterno, '') = ISNULL(m2.CodInterno, '')
    AND ISNULL(m1.CodMaf, '') = ISNULL(m2.CodMaf, '')
    AND ISNULL(m1.CodAdeguatezza, '') = ISNULL(m2.CodAdeguatezza, '')
    AND ISNULL(m1.CodIsin, '') = ISNULL(m2.CodIsin, '')






  

	
		
	
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_ESG_ANAG_METRICHE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_ESG_ANAG_METRICHE'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_GESTIONE_EMAIL_REPORT_DA_GENERARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Luca,,C6Mart.DM_GestioneEmail>
-- Create date: <13/11/2008,,>
-- Description:	<Prima fase popolamento tabella email,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_GESTIONE_EMAIL_REPORT_DA_GENERARE] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT

DECLARE @ID_ELAB INT
SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

DECLARE @GETDATE AS DATETIME
SELECT 	@GETDATE = GETDATE()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE_PERIODICO
	(Nome, Inizio, Nota)
VALUES (
	'RP_DM_GESTIONE_EMAIL_REPORT_DA_GENERARE',
	GETDATE(),
	'Elaborazione trimestrale'
)
 --1. INSERIMENTO MAIL "LISTA CLIENTI PER CUI OCCORRE GENERARE I REPORT"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- NON PRESENTI SU GESTIONE_EMAIL

DECLARE @TIPOEMAIL AS VARCHAR(50)
SET @TIPOEMAIL = 'LC_REP_DA_GEN'

--Cancellazione delle eventuali mail che non sono ancora state inviate e che stanno per essere rigenerate 

	DELETE from C6MartPeriodico.MailAvvisoTrimestraleAiPB
	WHERE email_id  in (
	SELECT m.email_id
	from C6MartPeriodico.MailAvvisoTrimestraleAiPB m
	inner join [C6MartPeriodico].[GESTIONE_EMAIL]
	  ON GESTIONE_EMAIL.email_id = m.email_id
	WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N')

	DELETE
	FROM [C6MartPeriodico].[GESTIONE_EMAIL]
	WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'


	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,Tipo,Data_Generazione, ID_ELAB)
	SELECT 
		DISTINCT
		C6.Rete,
		C6.Cod_Agente as CodicePB,
		@TIPOEMAIL as TipoEmail,
		@GETDATE AS DataGenerazione,
		@ID_ELAB as ID_ELAB
	FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport C6
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON C6.RETE = EMAIL.RETE
			AND C6.COD_Agente = EMAIL.CodicePB
			AND EMAIL.TIPO = @TIPOEMAIL
			AND YEAR(EMAIL.Data_Generazione) = YEAR(@GETDATE)	
			AND MONTH(EMAIL.Data_Generazione) = MONTH(@GETDATE)	
--			AND ISNULL(EMAIL.[Inviata],'N') = 'N'	
	LEFT OUTER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.CodicePB IS NULL
		AND PF.RETE IS NULL

/*
DECLARE @id_periodiodo as int
	select @id_periodiodo = max(id_periodo) from [MIFD_ADEGUATEZZA].controllodata.dbo.clientiAdeguatezza_ALL

	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,CodicePB,Tipo,Data_Generazione, ID_ELAB)
	SELECT 
		DISTINCT
		C6.Rete,
		C6.Cod_Agente as CodicePB,
		@TIPOEMAIL as TipoEmail,
		@GETDATE AS DataGenerazione,
		@ID_ELAB as ID_ELAB
	--FROM C6MartPeriodico.vContrattiPerGenerazioneReport C6 --V cambiata la vista
	FROM 
      (select * from C6MartPeriodico.RP_vContrattiPerGenerazioneReport 
        where rete + cod_agente in 
(
select 
	a.rete+ cod_agente
	from
	C6MartPeriodico.RP_vContrattiPerGenerazioneReport  a
	left outer join
	[MIFD_ADEGUATEZZA].controllodata.dbo.clientiAdeguatezza_ALL b
	on 
	(case 
	 when len("codice mandato") = 0
	 then   b."codice fiscale"
	 else 'FF@'+ "codice mandato"
	end) = a.cod_fiscale 
	and a.rete=b.rete
    and a.cod_agente = substring(b.codagente, 2, len(b.codagente)- 1)
	where 
	b.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	--and a.data_fineavanzato is null
    and profilo > 0
    and dtprofilo is null

)) C6
	LEFT OUTER JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
			ON C6.RETE = EMAIL.RETE
			AND C6.COD_Agente = EMAIL.CodicePB
			AND EMAIL.TIPO = @TIPOEMAIL						
			AND YEAR(EMAIL.Data_Generazione) = YEAR(@GETDATE)	
			AND MONTH(EMAIL.Data_Generazione) = MONTH(@GETDATE)	
			AND ISNULL(EMAIL.[Inviata],'N') = 'N'	
	LEFT OUTER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF	
		ON C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND C6.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.CodicePB IS NULL
		AND PF.RETE IS NULL
--recupero mail errate
--and c6.rete+c6.cod_agente in (
--	select * from temp_promotori)
*/


-- 
IF @@ERROR<>0 ROLLBACK

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE_PERIODICO
SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
WHERE
	Nome = 'RP_DM_GESTIONE_EMAIL_REPORT_DA_GENERARE' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE_PERIODICO
		WHERE
			Nome = 'RP_DM_GESTIONE_EMAIL_REPORT_DA_GENERARE'
	)

COMMIT

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_GestioneEmail]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--delete from C6MartPeriodico.gestione_Email where data_Generazione > getDate()-1
--truncate table log_esecuzione
--select * from log_esecuzione
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_GestioneEmail] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	PERFEZIONAMENTO;
--	MANCATA MIGRAZIONE;
--	REINVIO SOLLECITO MANCATA MIGRAZIONE.

--LA GESTIONE DELLE EMAIL PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO O
--PER REINVIO DEL SOLLECITO PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO 
--VIENE FATTA DOPO L'ALLINEAMENTO CON I DATI DEL SIMPB

	
--ESTRAZIONE EMAIL PERFEZIONAMENTO
--TIPO EMAIL: "PERF"
--L'EMAIL VIENE INVIATA PER TUTTI I CLIENTI CHE HANNO DATA DI PERFEZIONAMENTO VALORIZZATA
--IL CONTROLLO SULLA DATA DI GENERAZIONE >= DELLA DATA DI PERFEZIONAMENTO E' DOVUTO AL
--FATTO CHE IL CONTRATTO PUO` ESSERE CHIUSO E RIAPERTO ED IN QUESTO CASO LA MAIL DI PERFEZIONAMENTO
--DEVE ESSERE REINVIATA

-- EMAIL DI ADESIONE AL SERVIZIO SEI
-- TIPO EMAIL 'PERF'
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_GestioneEmail - Mail Perf',GETDATE(),'Elaborazione giornaliera')
--0. MODIFICO I RECORD IN GESTIONE EMAIL CON TIPO = PERF PER EVITARE IL REINVIO MULTIPLO A SEGUITO DELLA RIATTIVAZIONE 
UPDATE C6MartPeriodico.GESTIONE_EMAIL
SET TIPO = 'OLD'
FROM C6MartPeriodico.Gestione_EMAIL EMAIL
	INNER JOIN C6MartPeriodico.VCONTRATTI VC
	   ON VC.COD_FISCALE = EMAIL.COD_FISCALE
	   AND VC.rete = EMAIL.RETE
	   AND EMAIL.TIPO = 'PERF'
    INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
       ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
       AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' 
       AND MC.Tip_riattivazione = 1


--1. INSERIMENTO MAIL DI "PERFEZIONAMENTO"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- NON PRESENTI SU GESTIONE_EMAIL

INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione, ID_ELAB)
SELECT 
	VC.Rete,
	VC.Cod_Fiscale,
	'PERF' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6MartPeriodico.VCONTRATTI VC
INNER JOIN C6MartPeriodico.CONTRATTOSEI_METADATI MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF'						
	AND EMAIL.Data_Generazione >= VC.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	--AND VC.InvioBenvenuto = 'N'
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf' AND
	Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - SollecitiNOMIG',GETDATE(),'Elaborazione giornaliera')

-- 2. INSERIMENTO MAIL "SOLLECITI"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE
-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF

INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT 
	VC.rete,
	VC.cod_fiscale,
	CASE 
		WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOMIG'
		WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOMIG'
		WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOMIG'
		ELSE 'S_SOLL_NOMIG'
	END as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6MartPeriodico.VCONTRATTI VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' 
	AND VC.Data_FineAvanzato > getDate()
	--AND MD.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
		

-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
-- AUMENTIAMO IL NUMERO numSolleciti
-- AGGIORNIAMO LA DATA Data_UltimoSollecito

UPDATE 
	C6MartPeriodico.[CONTRATTOSEI_METADATI]
SET 
	numSolleciti = isnull(numSolleciti,0) + 1,
	Data_UltimoSollecito = getDate()
FROM C6MartPeriodico.vcontratti VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG' AND Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - Mail Revoca',GETDATE(),'Elaborazione giornaliera')

-- 3. INSERIMENTO MAIL "REVOCA"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE DOPO @MaxInvioSoll SOLLECITI
-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.clienteMigrato = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
--		OVVERO: BUONA LA MIGRAZIONE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT  
	email.rete,
	email.cod_fiscale,
	'REVOCA_NOMIG' as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB --max(Data_Generazione)
FROM C6MartPeriodico.vcontratti VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN C6MartPeriodico.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
GROUP BY email.rete, email.cod_fiscale
		


-- 3.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
-- AUMENTIAMO IL NUMERO numSolleciti
-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

UPDATE C6MartPeriodico.[CONTRATTOSEI_METADATI]
SET 
	numRevoche = isnull(numRevoche,0) + 1,
	data_UltimaRevoca = getDate()
FROM C6MartPeriodico.vcontratti VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN C6MartPeriodico.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
		

-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca' AND Inizio = (
		SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca')

COMMIT

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_GestioneEmailNA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Luca,,Name>
-- Create date: <17/11/2008,,>
-- Description:	<Popola la tabella email con i clienti a cui deve essere inviato il report con risorse non associate,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_GestioneEmailNA]
AS
BEGIN

BEGIN TRANSACTION	

DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)
SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'RP_DM_GestioneEmailNA',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 1. INSERIMENTO MAIL "SOLLECITI"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ASSOCIAZIONE DELLE RISORSE
	-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF
		
	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		VC.rete,
		VC.cod_fiscale,
		CASE 
			WHEN ISNULL(numSolleciti,0) = 0 THEN '1_SOLL_NOASS'
			WHEN numSolleciti = 1 THEN '2_SOLL_NOASS'
			WHEN numSolleciti = 2 THEN '3_SOLL_NOASS'
			ELSE 'S_SOLL_NOASS'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 1.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- AGGIORNIAMO LA DATA Data_UltimoSollecito

	UPDATE 
		C6MartPeriodico.CONTRATTOSEI_METADATI
	SET 
		numSolleciti = isnull(numSolleciti,0) + 1,
		Data_UltimoSollecito = getDate()
	FROM C6MartPeriodico.vcontratti VC
	INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'S'
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 2. INSERIMENTO MAIL "REVOCA"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ASSOCIAZIONE DELLE RISORSE DOPO @MaxInvioSoll SOLLECITI
	-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.risorseNA = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
	--		OVVERO: BUONA L'ASSOCIAZIONE DELLE RISORSE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOASS' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB --max(Data_Generazione)
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN C6MartPeriodico.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
	GROUP BY email.rete, email.cod_fiscale
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNA',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
	-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

	UPDATE C6MartPeriodico.[CONTRATTOSEI_METADATI]
	SET 
		numRevoche = isnull(numRevoche,0) + 1,
		data_UltimaRevoca = getDate()
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	INNER JOIN C6MartPeriodico.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOASS','REVOCA_NOASS')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.risorseNA = 'S')-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNA'
		)

COMMIT

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_GestioneEmailNOPRO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--select * from C6MartPeriodico.gestione_Email where data_Generazione > getDate()-1 and tipo like '%pro%'
-- =============================================
-- Author:		<Valerio,,Name>
-- Create date: <19/14/2011,,> -1 ai -2!
-- Description:	<Popola la tabella email con i clienti con profilo scaduto>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_GestioneEmailNOPRO]
AS
BEGIN

BEGIN TRANSACTION	

DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @MaxInvioSoll SMALLINT
DECLARE @ID_ELAB INT

SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint)
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') AS SMALLINT) --7
SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') AS SMALLINT)
SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE
	(Nome, Inizio, Nota)
VALUES (
	'RP_DM_GestioneEmailNOPRO',
	GETDATE(),
	'Elaborazione giornaliera'
)

-- 1. INSERIMENTO MAIL "SOLLECITI"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA ATTIVATO UN PROFILO VALIDO AL CLIENTE
	-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF
		
	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT 
		VC.rete,
		VC.cod_fiscale,
		CASE 
			WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOPRO'
			WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOPRO'
			WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOPRO'
			ELSE 'S_SOLL_NOPRO'
		END as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)	
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'N'
		AND MD.profiloAttivo = 0
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 1.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- AGGIORNIAMO LA DATA Data_UltimoSollecito

	UPDATE 
		C6MartPeriodico.CONTRATTOSEI_METADATI
	SET 
		numSolleciti = isnull(numSolleciti,0) + 1,
		Data_UltimoSollecito = getDate()
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
			ON MD.chiaveclientepb = VC.chiaveclientepb
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND MD.numSolleciti < @MaxInvioSoll
		AND (
				(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
				 OR
				(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
			)
		AND MD.clienteMigrato = 'S' 
		AND MD.risorseNA = 'N'
		AND MD.profiloAttivo = 0
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)

-- 2. INSERIMENTO MAIL "REVOCA"
	-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
	-- E PRESENTI SU GESTIONE_EMAIL
	-- IL PB NON HA EFFETTUATO L'ATTIVAZIONE DEL PROFILO @MaxInvioSoll SOLLECITI
	-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.risorseNA = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
	--		OVVERO: BUONA L'ASSOCIAZIONE DELLE RISORSE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

	INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
		(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
	SELECT  
		email.rete,
		email.cod_fiscale,
		'REVOCA_NOPRO' as tipoEmail,
		getDate() as DataGenerazione,
		@ID_ELAB AS ID_ELAB --max(Data_Generazione)
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
			ON MD.ChiaveClientePb = VC.ChiaveClientePb
	INNER JOIN C6MartPeriodico.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOPRO','REVOCA_NOPRO')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.profiloAttivo = 0)-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
	GROUP BY email.rete, email.cod_fiscale
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_GestioneEmailNOPRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
	-- AUMENTIAMO IL NUMERO numSolleciti
	-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
	-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

	UPDATE C6MartPeriodico.[CONTRATTOSEI_METADATI]
	SET 
		numRevoche = isnull(numRevoche,0) + 1,
		data_UltimaRevoca = getDate()
	FROM C6MartPeriodico.vcontratti VC
		INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
			ON MD.ChiaveClientePb = VC.ChiaveClientePb
	INNER JOIN C6MartPeriodico.gestione_Email EMAIL
		ON VC.RETE = EMAIL.RETE
		AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
		AND VC.RETE = PF.RETE
	WHERE 1 = 1
		AND EMAIL.Tipo IN ('S_SOLL_NOPRO','REVOCA_NOPRO')	
		AND (
				(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
				OR 
				(MD.numSolleciti = @MaxInvioSoll and MD.profiloAttivo = 0)-- SONO NEL CASO DI PRIMA REVOCA
			)
		AND VC.Data_FineAvanzato > getDate()
		--AND VC.GenerazioneReport = 'S'
		AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		AND PF.RETE IS NULL
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_GestioneEmailNOPRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_GestioneEmailNOPRO'
		)

COMMIT

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_IndicatoreRischio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6MartPeriodico].[RP_DM_IndicatoreRischio]

as 
begin

DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)
print(@DataFineTrim)

DECLARE @DataTab VARCHAR(8)
SELECT TOP 1 @DataTab = dttrim FROM C6MartPeriodico.Indicatore_Rischio
print(@DataTab)

drop table if exists #appo
drop table if exists #NoCFPatrCasa
drop table if exists #NoPatrCasa
drop table if exists #NoPatrCasaFin
drop table if exists #tot
drop table if exists #finale
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,

NULL 

AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 

    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc


	-- 16/7/2018
	into #appo
	-- fine 16/7/2018

    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
   and PATRBF.rete= RISK_AGG.rete    

    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or

    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then  'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 

    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		  WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,

	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 

	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 

	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine


	   --SENZA PATRIMONIO CASA
	   select rete,cod_fiscale 
	   into #NOCFPatrCasa
	   from #appo where ordine<>1
	   except
	      select rete,cod_fiscale from #appo where ordine=1

		select a.* 
		into #NOPatrCasa
		from #appo a inner join #NOCFPatrCasa p on a.RETE=p.RETE and a.COD_FISCALE=p.COD_FISCALE

		 select distinct
			  c.RETE,
		      c.COD_FISCALE,
		      case when  c.RETE= 'F'  then 'Patrimonio Fideuram' 
                   WHEN  c.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
				   when  c.RETE= 'W' then 'Patrimonio IW Private Inv.'
			end as INSTITUTENAME,
			0 as CTV,
			c.CODICEPROFILO,
			c.VARMAX,
			0 AS VAR,
			'n.c.' AS VARSTRING,
			0 as RISKCLASS,
			'n.c.'  as RISKCLASSSTRING,
			0.000 as COVERAGE,--c.COVERAGE,
			NULL AS COVERAGESTRING,
			c.RISKCLASSMAX,
			0.0 as PERCENTAGE,
			1 as ordine,
			0 as Ully_perc
			into #NoPatrCasaFin
			from #NOPatrCasa c

			select * 
			into #tot
			from #NoPatrCasaFin
			union all 
			select * from #appo where ORDINE=1

			select [RETE]
      ,[COD_FISCALE]
	  ,@DataFineTrim as DTTRIM
      ,[INSTITUTENAME]
      ,[CTV]
      ,[CODICEPROFILO]
      ,[VARMAX]
      ,[VAR]
      ,[VARSTRING]
      ,[RISKCLASS]
      ,[RISKCLASSSTRING]
      ,[COVERAGE]
      ,[COVERAGESTRING]
      ,[RISKCLASSMAX]
      ,[PERCENTAGE]
      ,[ordine]
      ,[Ully_perc],	case when VAR <= VARMAX then 'S'
	when var > VARMAX then 'N'
	else 'X' end as Ind_Rischio
	into #finale
	from #tot


if(isnull(@DataFineTrim,0) <> isnull(@DataTab,0))
BEGIN

truncate table C6MartPeriodico.Indicatore_Rischio
print('OK')

	  
	  insert into  C6MartPeriodico.Indicatore_Rischio
	  select [RETE]
      ,[COD_FISCALE]
	  ,[DTTRIM]
      ,[INSTITUTENAME]
      ,[CTV]
      ,[CODICEPROFILO]
      ,[VARMAX]
      ,[VAR]
      ,[VARSTRING]
      ,[RISKCLASS]
      ,[RISKCLASSSTRING]
      ,[COVERAGE]
      ,[COVERAGESTRING]
      ,[RISKCLASSMAX]
      ,[PERCENTAGE]
      ,[ordine]
      ,[Ully_perc]
	  ,Ind_Rischio
	  from #finale
	   

	select * from C6MartPeriodico.Indicatore_Rischio

	END

	ELSE 
	BEGIN

	delete from C6MartPeriodico.Indicatore_Rischio where RETE+COD_FISCALE in (select RETE+COD_FISCALE from #finale)

	insert into C6MartPeriodico.Indicatore_Rischio
	select [RETE]
      ,[COD_FISCALE]
	  ,[DTTRIM]
      ,[INSTITUTENAME]
      ,[CTV]
      ,[CODICEPROFILO]
      ,[VARMAX]
      ,[VAR]
      ,[VARSTRING]
      ,[RISKCLASS]
      ,[RISKCLASSSTRING]
      ,[COVERAGE]
      ,[COVERAGESTRING]
      ,[RISKCLASSMAX]
      ,[PERCENTAGE]
      ,[ordine]
      ,[Ully_perc]
	  ,Ind_Rischio
	  from #finale

	select * from c6martperiodico.wseian2
	END

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MAIL_PROFILI_RISCHIO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
CREATE procedure [C6MartPeriodico].[RP_DM_MAIL_PROFILI_RISCHIO]
AS
BEGIN

truncate table [C6MartPeriodico].[MAIL_PROFILI_RISCHIO]

insert into [C6MartPeriodico].[MAIL_PROFILI_RISCHIO]
SELECT [rete]
      ,[cod_fiscale]
      ,[codicecontratto]
      ,[cod_agente]
      ,[data_sott]
      ,[data_perf]
      ,[flag_invio_report]
      ,[profilo]
      ,[dt_creazione_profilo]
	  ,case
		when profilo = 0 then 1 
		else 0
	   end as flagScaduto
	
      ,case
		when datediff(dd,dt_creazione_profilo,c6martperiodico.gettrimestre2(getdate(),0)) / 365.25 < 3 then 0
		else 1 
	   end as flagScadenzaTrim

	 ,case
		when datediff(dd,dt_creazione_profilo,c6martperiodico.getNexttrimestre(getdate(),0)) / 365.25 < 3 then 0
		else 1 
	   end as flagScadenzaNextTrim

  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[RP_MAIL_PROFILI_RISCHIO]

end

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_ATTUALE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_ATTUALE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_ATTUALE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE]   
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_ATTUALE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_ATTIVAZIONE]  
           ,[DATA_CTV]  
           ,[CTV_MONITORATO]  
           ,[APPORTO_INIZIALE]  
           ,[APPORTO_SUCCESSIVO]  
           ,[LIQUIDAZIONI]  
           ,[CEDOLE_DIVIDENDI]  
           ,[MINUS_PLUSVALENZA]  
           ,[RISORSE_ASSOCIATE]  
           ,[RENDIMENTO_CUMULATO]  
           ,[RENDIMENTO_ANNUALIZZATO]  
     ,[ORDINAMENTO_PROGETTO]  
           ,[ID_ELAB])  
  
 SELECT  
  TANAB.RETE,  
  VC.COD_FISCALE,  
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END AS ID_AREA,  
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,  
           CASE  
    WHEN ISDATE(TANAB.DTRIF) = 0 THEN NULL  
    ELSE CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME)  
     END AS DATA_ATTIVAZIONE,  
  
           --CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,  
           CASE  
    WHEN ISDATE(TANAB.DTCTV) = 0 THEN NULL  
    ELSE CAST(CAST(TANAB.DTCTV AS VARCHAR(8)) AS DATETIME)  
     END AS DATA_CTV,  
           TANAB.CTV AS CTV_MONITORATO,  
           TANAB.APP_INI AS APPORTO_INIZIALE,  
           TANAB.NTOT_APP AS APPORTO_SUCCESSIVO,  
           TANAB.NTOT_LIQ AS LIQUIDAZIONI,  
           TANAB.TOT_CED + TANAB.TOT_DIV AS CEDOLE_DIVIDENDI,  
           TANAB.CTV - (TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ) AS MINUS_PLUSVALENZA,  
          -- TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ - TANAB.TOT_CED - TANAB.TOT_DIV AS RISORSE_ASSOCIATE,  
           TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ  AS RISORSE_ASSOCIATE,  
           cast(TANAB.RENDATT as decimal(15,2)) AS RENDIMENTO_CUMULATO,  
           TANAB.RENDATTANN AS RENDIMENTO_ANNUALIZZATO,  
     CM.ChiaveProgetto AS ORDINAMENTO_PROGETTO,  
           @ID_ELAB AS ID_ELAB  
  
 FROM C6StagingPeriodico.TANAB AS TANAB  
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
        ON TANAB.CODPROG = CM.idmonitoraggio  
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS  
--        ON CM.chiaveprogetto = CS.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_Progetto PR  
        ON CM.chiaveprogetto = PR.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS  
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod  
  
    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
        ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
       AND TANAB.RETE = VC.RETE  
       --AND VC.DATA_FINEAVANZATO > getDate()   
 WHERE 1 = 1  
  AND TANAB.DTFINE = 99991231  
  
-- modifica di Luca per errore Mart simulazione 16/12/2015    
  and TANAB.CODFIS not in ('BRTDIA49E49L219N','GRPGLI71R45L407D','GSTMGS42D51L833Z','MLSRNT54M12B354E','MRTGRL59B60H501T','RMNFNC40R14H501K')  
---------------------------------------------------------------------------------------  
    
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO   SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_ATTUALE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_ATTUALE'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_ATTUALE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 16 luglio 2013
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_ATTUALE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_ATTUALE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_ATTUALE] 
	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_ATTUALE]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_ATTIVAZIONE]
           ,[DATA_CTV]
           ,[CTV_MONITORATO]
           ,[APPORTO_INIZIALE]
           ,[APPORTO_SUCCESSIVO]
           ,[LIQUIDAZIONI]
           ,[CEDOLE_DIVIDENDI]
           ,[MINUS_PLUSVALENZA]
           ,[RISORSE_ASSOCIATE]
           ,[RENDIMENTO_CUMULATO]
           ,[RENDIMENTO_ANNUALIZZATO]
		   ,[ORDINAMENTO_PROGETTO]
           ,[ID_ELAB])

	SELECT
		TANAB.RETE,
		VC.COD_FISCALE,
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END AS ID_AREA,
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,
           CASE
				WHEN ISDATE(TANAB.DTRIF) = 0 THEN NULL
				ELSE CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME)
		   END AS DATA_ATTIVAZIONE,

           --CAST(CAST(TANAB.DTRIF AS VARCHAR(8)) AS DATETIME) AS DATA_ATTIVAZIONE,
           CASE
				WHEN ISDATE(TANAB.DTCTV) = 0 THEN NULL
				ELSE CAST(CAST(TANAB.DTCTV AS VARCHAR(8)) AS DATETIME)
		   END AS DATA_CTV,
           TANAB.CTV AS CTV_MONITORATO,
           TANAB.APP_INI AS APPORTO_INIZIALE,
           TANAB.NTOT_APP AS APPORTO_SUCCESSIVO,
           TANAB.NTOT_LIQ AS LIQUIDAZIONI,
           TANAB.TOT_CED + TANAB.TOT_DIV AS CEDOLE_DIVIDENDI,
           TANAB.CTV - (TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ) AS MINUS_PLUSVALENZA,
          -- TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ - TANAB.TOT_CED - TANAB.TOT_DIV AS RISORSE_ASSOCIATE,
           TANAB.APP_INI + TANAB.NTOT_APP - TANAB.NTOT_LIQ  AS RISORSE_ASSOCIATE,
           cast(TANAB.RENDATT as decimal(15,2)) AS RENDIMENTO_CUMULATO,
           TANAB.RENDATTANN AS RENDIMENTO_ANNUALIZZATO,
		   CM.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
           @ID_ELAB AS ID_ELAB

	FROM C6StagingPeriodico.TANAB AS TANAB
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
        ON TANAB.CODPROG = CM.idmonitoraggio
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS
--        ON CM.chiaveprogetto = CS.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_Progetto PR
        ON CM.chiaveprogetto = PR.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod

    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
        ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
       AND TANAB.RETE = VC.RETE
       --AND VC.DATA_FINEAVANZATO > getDate() 
	WHERE 1 = 1
		AND TANAB.DTFINE = 99991231

-- modifica di Luca per errore Mart simulazione 16/12/2015		
		and TANAB.CODFIS not in ('BRTDIA49E49L219N','GRPGLI71R45L407D','GSTMGS42D51L833Z','MLSRNT54M12B354E','MRTGRL59B60H501T','RMNFNC40R14H501K')
---------------------------------------------------------------------------------------
		
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_ATTUALE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_ATTUALE_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_DETTAGLIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]   
    
-- begin try  
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[ID_AREA]  
           ,[DATA_ASSOCIAZIONE]  
           ,[VERSATO_NETTO_DA_ASSOC]  
           ,[UTILE_PERDITA_DA_ASSOC]  
           ,[ID_ELAB])  
  
 SELECT  distinct -- aggiunta distinct 20231212 per duplicati
   B.RETE,  
   B.CODFIS,  
   B.POSITIONID,  
   A.[ID_AREA],  
   CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211'   
                THEN cast('20110211' AS DATETIME)  
   ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,  
   A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],  
   CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],  
   @ID_ELAB AS [ID_ELAB]  
   FROM  
   C6STAGINGPERIODICO.SPB_CONTR_SINTESI B  
   INNER JOIN  
   (  
            SELECT  
            TCP.RETE AS  [RETE],  
   VC.COD_FISCALE AS [COD_FISCALE],  
      TCP.CODPROD,  
      TCP.TIPPROD,   
      TCP.CODINT,   
      TCP.MAF,  
      TCP.ISIN,  
      TCP.SUBPROD,   
      TCP.CODCONF,   
      TCP.NUMPOL,   
      TCP.CONTO,   
      TCP.RUBR,   
      TCP.CUSTGAR,  
      TCP.TERMID,   
      TCP.ANNO,   
      TCP.PROG,  
               TCP.CODPROG,  
   CASE   
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA   
            END AS ID_AREA,  
   CASE WHEN TCP.DTINGRESSO=0 THEN   
     (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)  
   ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)  
            --ELSE CAST(DTININAC AS DATETIME)    
            END AS [DATA_ASSOCIAZIONE],  
   TCP.CVNNAC  
   FROM  
            C6STAGINGPERIODICO.TANAB ANA   
            JOIN   
   C6STAGINGPERIODICO.TCPTAB TCP  
            ON ANA.CODAREA=TCP.CODAREA  
            AND ANA.RETE=TCP.RETE  
            AND ANA.CODPROG=TCP.CODPROG  
            AND ANA.CODFIS=TCP.CODFIS  
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
               AND ANA.RETE = VC.RETE  
--               AND VC.DATA_FINEAVANZATO > getDate()   
            WHERE DTVALORIZ NOT IN (99991231) AND   
                  DTUSCITA=99991231) A  
   ON   
    A.COD_FISCALE=B.CODFIS  
   AND B.RETE=B.RETE  
   AND A.CODPROD=B.CODPROD  
   AND A.CODCONF=B.CODCONF  
   AND A.CODINT=B.CODINT  
   AND A.SUBPROD=B.SUBPROD  
   AND A.NUMPOL=B.NUMPOL  
   AND A.CONTO=B.CONTO  
   AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR  
            AND (  CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG  
   AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR  
--   AND A.MAF=B.MAF  
  --V Modifica skandia di tipo ASU2  
--Intervento OMNIA Last    
--   AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end  
   
   ----INIZIO INTERVENTO linea protetta - 18/12/2017  
	   --AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE'))  then a.isin else 'na' end  
	  ----INIZIO INTERVENTO mio Foglio - 14/03/2019  
	      -- AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE','RF'))  then a.isin else 'na' end
		  AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192','V301','V302') or a.codint in ('RV','RM', 'RS','RB','RE','RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M'))  then a.isin else 'na' end -- aggiunto 3A a 9M 25/07/2022	
      ----fine INTERVENTO mio Foglio - 14/03/2019 
   ----fine INTERVENTO linea protetta - 18/12/2017 

--FINE INTERVENTO MIGRAZIONE ASU3     
--Intervento OMNIA Last    
     
      and B.POSITIONID is not null 
		and  a.cod_fiscale not in ('RTOMRN54L12I706I')
 --------------------------------------         
 --end try   
 --begin catch  
 --select @@error  
 --end     catch      
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO'  
  )  
  
END  
  
  
  
  
  
  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20161220]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 16 luglio 2013
-- Description:	
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20161220]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_DETTAGLIO',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO] 
	 
--	begin try

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]
           ([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[ID_AREA]
           ,[DATA_ASSOCIAZIONE]
           ,[VERSATO_NETTO_DA_ASSOC]
           ,[UTILE_PERDITA_DA_ASSOC]
           ,[ID_ELAB])

	SELECT
			B.RETE,
			B.CODFIS,
			B.POSITIONID,
			A.[ID_AREA],
			CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211' 
                THEN cast('20110211' AS DATETIME)
			ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,
			A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],
			CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],
			@ID_ELAB AS [ID_ELAB]
			FROM
			C6STAGINGPERIODICO.SPB_CONTR_SINTESI B
			INNER JOIN
			(
            SELECT
            TCP.RETE AS  [RETE],
			VC.COD_FISCALE AS [COD_FISCALE],
			   TCP.CODPROD,
			   TCP.TIPPROD, 
			   TCP.CODINT, 
			   TCP.MAF,
			   TCP.ISIN,
			   TCP.SUBPROD, 
			   TCP.CODCONF, 
			   TCP.NUMPOL, 
			   TCP.CONTO, 
			   TCP.RUBR, 
			   TCP.CUSTGAR,
			   TCP.TERMID, 
			   TCP.ANNO, 
			   TCP.PROG,
               TCP.CODPROG,
			CASE 
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA 
            END AS ID_AREA,
			CASE WHEN TCP.DTINGRESSO=0 THEN 
				 (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)
			ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)
            --ELSE CAST(DTININAC AS DATETIME)  
            END AS [DATA_ASSOCIAZIONE],
			TCP.CVNNAC
			FROM
            C6STAGINGPERIODICO.TANAB ANA 
            JOIN 
			C6STAGINGPERIODICO.TCPTAB TCP
            ON ANA.CODAREA=TCP.CODAREA
            AND ANA.RETE=TCP.RETE
            AND ANA.CODPROG=TCP.CODPROG
            AND ANA.CODFIS=TCP.CODFIS
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
               AND ANA.RETE = VC.RETE
--               AND VC.DATA_FINEAVANZATO > getDate() 
            WHERE DTVALORIZ NOT IN (99991231) AND 
                  DTUSCITA=99991231) A
			ON 
				A.COD_FISCALE=B.CODFIS
			AND B.RETE=B.RETE
			AND A.CODPROD=B.CODPROD
			AND A.CODCONF=B.CODCONF
			AND A.CODINT=B.CODINT
			AND A.SUBPROD=B.SUBPROD
			AND A.NUMPOL=B.NUMPOL
			AND A.CONTO=B.CONTO
			AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR
            AND (		CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG
			AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR
--			AND A.MAF=B.MAF
		--V Modifica skandia di tipo ASU2
--Intervento OMNIA Last		
--			AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end
--INIZIO INTERVENTO MIGRAZIONE ASU3
--			AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end
			AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB'))  then a.isin else 'na' end
--FINE INTERVENTO MIGRAZIONE ASU3			
--Intervento OMNIA Last		
			
--intervento di Luca per errore mart simulazione 16/12/2015
      --and B.POSITIONID is not null and a.cod_fiscale <> 'RZLGDU39M28E202J'
      and B.POSITIONID is not null and a.cod_fiscale not in ('RZLGDU39M28E202J','GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')
        
 --end try 
 --begin catch
 --select @@error
 --end     catch    
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO'
		)

END












GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20171218_preRFMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20171218_preRFMP]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_DETTAGLIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]   
    
-- begin try  
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[ID_AREA]  
           ,[DATA_ASSOCIAZIONE]  
           ,[VERSATO_NETTO_DA_ASSOC]  
           ,[UTILE_PERDITA_DA_ASSOC]  
           ,[ID_ELAB])  
  
 SELECT  
   B.RETE,  
   B.CODFIS,  
   B.POSITIONID,  
   A.[ID_AREA],  
   CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211'   
                THEN cast('20110211' AS DATETIME)  
   ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,  
   A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],  
   CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],  
   @ID_ELAB AS [ID_ELAB]  
   FROM  
   C6STAGINGPERIODICO.SPB_CONTR_SINTESI B  
   INNER JOIN  
   (  
            SELECT  
            TCP.RETE AS  [RETE],  
   VC.COD_FISCALE AS [COD_FISCALE],  
      TCP.CODPROD,  
      TCP.TIPPROD,   
      TCP.CODINT,   
      TCP.MAF,  
      TCP.ISIN,  
      TCP.SUBPROD,   
      TCP.CODCONF,   
      TCP.NUMPOL,   
      TCP.CONTO,   
      TCP.RUBR,   
      TCP.CUSTGAR,  
      TCP.TERMID,   
      TCP.ANNO,   
      TCP.PROG,  
               TCP.CODPROG,  
   CASE   
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA   
            END AS ID_AREA,  
   CASE WHEN TCP.DTINGRESSO=0 THEN   
     (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)  
   ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)  
            --ELSE CAST(DTININAC AS DATETIME)    
            END AS [DATA_ASSOCIAZIONE],  
   TCP.CVNNAC  
   FROM  
            C6STAGINGPERIODICO.TANAB ANA   
            JOIN   
   C6STAGINGPERIODICO.TCPTAB TCP  
            ON ANA.CODAREA=TCP.CODAREA  
            AND ANA.RETE=TCP.RETE  
            AND ANA.CODPROG=TCP.CODPROG  
            AND ANA.CODFIS=TCP.CODFIS  
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
               AND ANA.RETE = VC.RETE  
--               AND VC.DATA_FINEAVANZATO > getDate()   
            WHERE DTVALORIZ NOT IN (99991231) AND   
                  DTUSCITA=99991231) A  
   ON   
    A.COD_FISCALE=B.CODFIS  
   AND B.RETE=B.RETE  
   AND A.CODPROD=B.CODPROD  
   AND A.CODCONF=B.CODCONF  
   AND A.CODINT=B.CODINT  
   AND A.SUBPROD=B.SUBPROD  
   AND A.NUMPOL=B.NUMPOL  
   AND A.CONTO=B.CONTO  
   AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR  
            AND (  CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG  
   AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR  
--   AND A.MAF=B.MAF  
  --V Modifica skandia di tipo ASU2  
--Intervento OMNIA Last    
--   AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end  
   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE'))  then a.isin else 'na' end  
--FINE INTERVENTO MIGRAZIONE ASU3     
--Intervento OMNIA Last    
     
--intervento di Luca per errore mart simulazione 16/12/2015  
      --and B.POSITIONID is not null and a.cod_fiscale <> 'RZLGDU39M28E202J'  
      and B.POSITIONID is not null and a.cod_fiscale not in ('RZLGDU39M28E202J','GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')  
          
 --end try   
 --begin catch  
 --select @@error  
 --end     catch      
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO'  
  )  
  
END  
  
  
  
  
  
  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20181213]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20181213]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_DETTAGLIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]   
    
-- begin try  
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[ID_AREA]  
           ,[DATA_ASSOCIAZIONE]  
           ,[VERSATO_NETTO_DA_ASSOC]  
           ,[UTILE_PERDITA_DA_ASSOC]  
           ,[ID_ELAB])  
  
 SELECT  
   B.RETE,  
   B.CODFIS,  
   B.POSITIONID,  
   A.[ID_AREA],  
   CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211'   
                THEN cast('20110211' AS DATETIME)  
   ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,  
   A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],  
   CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],  
   @ID_ELAB AS [ID_ELAB]  
   FROM  
   C6STAGINGPERIODICO.SPB_CONTR_SINTESI B  
   INNER JOIN  
   (  
            SELECT  
            TCP.RETE AS  [RETE],  
   VC.COD_FISCALE AS [COD_FISCALE],  
      TCP.CODPROD,  
      TCP.TIPPROD,   
      TCP.CODINT,   
      TCP.MAF,  
      TCP.ISIN,  
      TCP.SUBPROD,   
      TCP.CODCONF,   
      TCP.NUMPOL,   
      TCP.CONTO,   
      TCP.RUBR,   
      TCP.CUSTGAR,  
      TCP.TERMID,   
      TCP.ANNO,   
      TCP.PROG,  
               TCP.CODPROG,  
   CASE   
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA   
            END AS ID_AREA,  
   CASE WHEN TCP.DTINGRESSO=0 THEN   
     (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)  
   ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)  
            --ELSE CAST(DTININAC AS DATETIME)    
            END AS [DATA_ASSOCIAZIONE],  
   TCP.CVNNAC  
   FROM  
            C6STAGINGPERIODICO.TANAB ANA   
            JOIN   
   C6STAGINGPERIODICO.TCPTAB TCP  
            ON ANA.CODAREA=TCP.CODAREA  
            AND ANA.RETE=TCP.RETE  
            AND ANA.CODPROG=TCP.CODPROG  
            AND ANA.CODFIS=TCP.CODFIS  
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
               AND ANA.RETE = VC.RETE  
--               AND VC.DATA_FINEAVANZATO > getDate()   
            WHERE DTVALORIZ NOT IN (99991231) AND   
                  DTUSCITA=99991231) A  
   ON   
    A.COD_FISCALE=B.CODFIS  
   AND B.RETE=B.RETE  
   AND A.CODPROD=B.CODPROD  
   AND A.CODCONF=B.CODCONF  
   AND A.CODINT=B.CODINT  
   AND A.SUBPROD=B.SUBPROD  
   AND A.NUMPOL=B.NUMPOL  
   AND A.CONTO=B.CONTO  
   AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR  
            AND (  CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG  
   AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR  
--   AND A.MAF=B.MAF  
  --V Modifica skandia di tipo ASU2  
--Intervento OMNIA Last    
--   AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end  
   
   ----INIZIO INTERVENTO linea protetta - 18/12/2017  
	   --AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE'))  then a.isin else 'na' end  
	   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE','RF'))  then a.isin else 'na' end
   ----fine INTERVENTO linea protetta - 18/12/2017 

--FINE INTERVENTO MIGRAZIONE ASU3     
--Intervento OMNIA Last    
     
--intervento di Luca per errore mart simulazione 16/12/2015  
      --and B.POSITIONID is not null and a.cod_fiscale <> 'RZLGDU39M28E202J'  
      and B.POSITIONID is not null and a.cod_fiscale not in ('RZLGDU39M28E202J','GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')  
          
 --end try   
 --begin catch  
 --select @@error  
 --end     catch      
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO'  
  )  
  
END  
  
  
  
  
  
  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20190112]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20190112]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_DETTAGLIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]   
    
-- begin try  
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[ID_AREA]  
           ,[DATA_ASSOCIAZIONE]  
           ,[VERSATO_NETTO_DA_ASSOC]  
           ,[UTILE_PERDITA_DA_ASSOC]  
           ,[ID_ELAB])  
  
 SELECT  
   B.RETE,  
   B.CODFIS,  
   B.POSITIONID,  
   A.[ID_AREA],  
   CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211'   
                THEN cast('20110211' AS DATETIME)  
   ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,  
   A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],  
   CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],  
   @ID_ELAB AS [ID_ELAB]  
   FROM  
   C6STAGINGPERIODICO.SPB_CONTR_SINTESI B  
   INNER JOIN  
   (  
            SELECT  
            TCP.RETE AS  [RETE],  
   VC.COD_FISCALE AS [COD_FISCALE],  
      TCP.CODPROD,  
      TCP.TIPPROD,   
      TCP.CODINT,   
      TCP.MAF,  
      TCP.ISIN,  
      TCP.SUBPROD,   
      TCP.CODCONF,   
      TCP.NUMPOL,   
      TCP.CONTO,   
      TCP.RUBR,   
      TCP.CUSTGAR,  
      TCP.TERMID,   
      TCP.ANNO,   
      TCP.PROG,  
               TCP.CODPROG,  
   CASE   
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA   
            END AS ID_AREA,  
   CASE WHEN TCP.DTINGRESSO=0 THEN   
     (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)  
   ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)  
            --ELSE CAST(DTININAC AS DATETIME)    
            END AS [DATA_ASSOCIAZIONE],  
   TCP.CVNNAC  
   FROM  
            C6STAGINGPERIODICO.TANAB ANA   
            JOIN   
   C6STAGINGPERIODICO.TCPTAB TCP  
            ON ANA.CODAREA=TCP.CODAREA  
            AND ANA.RETE=TCP.RETE  
            AND ANA.CODPROG=TCP.CODPROG  
            AND ANA.CODFIS=TCP.CODFIS  
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
               AND ANA.RETE = VC.RETE  
--               AND VC.DATA_FINEAVANZATO > getDate()   
            WHERE DTVALORIZ NOT IN (99991231) AND   
                  DTUSCITA=99991231) A  
   ON   
    A.COD_FISCALE=B.CODFIS  
   AND B.RETE=B.RETE  
   AND A.CODPROD=B.CODPROD  
   AND A.CODCONF=B.CODCONF  
   AND A.CODINT=B.CODINT  
   AND A.SUBPROD=B.SUBPROD  
   AND A.NUMPOL=B.NUMPOL  
   AND A.CONTO=B.CONTO  
   AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR  
            AND (  CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG  
   AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR  
--   AND A.MAF=B.MAF  
  --V Modifica skandia di tipo ASU2  
--Intervento OMNIA Last    
--   AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end  
   
   ----INIZIO INTERVENTO linea protetta - 18/12/2017  
	   --AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE'))  then a.isin else 'na' end  
	   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE','RF'))  then a.isin else 'na' end
   ----fine INTERVENTO linea protetta - 18/12/2017 

--FINE INTERVENTO MIGRAZIONE ASU3     
--Intervento OMNIA Last    
     
--intervento di Luca per errore mart simulazione 16/12/2015  
      --and B.POSITIONID is not null and a.cod_fiscale <> 'RZLGDU39M28E202J'  
      and B.POSITIONID is not null and a.cod_fiscale not in ('RZLGDU39M28E202J','GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')  
 --intervento di Luca per errore mart simulazione 13/12/2018 
    and a.cod_fiscale not in ('GRNCML62P41G086H','MTRMRS61B68B519E')  
 --------------------------------------         
 --end try   
 --begin catch  
 --select @@error  
 --end     catch      
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO'  
  )  
  
END  
  
  
  
  
  
  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20190314_preMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_20190314_preMioFoglio]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_DETTAGLIO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]   
    
-- begin try  
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[ID_AREA]  
           ,[DATA_ASSOCIAZIONE]  
           ,[VERSATO_NETTO_DA_ASSOC]  
           ,[UTILE_PERDITA_DA_ASSOC]  
           ,[ID_ELAB])  
  
 SELECT  
   B.RETE,  
   B.CODFIS,  
   B.POSITIONID,  
   A.[ID_AREA],  
   CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211'   
                THEN cast('20110211' AS DATETIME)  
   ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,  
   A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],  
   CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],  
   @ID_ELAB AS [ID_ELAB]  
   FROM  
   C6STAGINGPERIODICO.SPB_CONTR_SINTESI B  
   INNER JOIN  
   (  
            SELECT  
            TCP.RETE AS  [RETE],  
   VC.COD_FISCALE AS [COD_FISCALE],  
      TCP.CODPROD,  
      TCP.TIPPROD,   
      TCP.CODINT,   
      TCP.MAF,  
      TCP.ISIN,  
      TCP.SUBPROD,   
      TCP.CODCONF,   
      TCP.NUMPOL,   
      TCP.CONTO,   
      TCP.RUBR,   
      TCP.CUSTGAR,  
      TCP.TERMID,   
      TCP.ANNO,   
      TCP.PROG,  
               TCP.CODPROG,  
   CASE   
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA   
            END AS ID_AREA,  
   CASE WHEN TCP.DTINGRESSO=0 THEN   
     (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)  
   ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)  
            --ELSE CAST(DTININAC AS DATETIME)    
            END AS [DATA_ASSOCIAZIONE],  
   TCP.CVNNAC  
   FROM  
            C6STAGINGPERIODICO.TANAB ANA   
            JOIN   
   C6STAGINGPERIODICO.TCPTAB TCP  
            ON ANA.CODAREA=TCP.CODAREA  
            AND ANA.RETE=TCP.RETE  
            AND ANA.CODPROG=TCP.CODPROG  
            AND ANA.CODFIS=TCP.CODFIS  
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
               AND ANA.RETE = VC.RETE  
--               AND VC.DATA_FINEAVANZATO > getDate()   
            WHERE DTVALORIZ NOT IN (99991231) AND   
                  DTUSCITA=99991231) A  
   ON   
    A.COD_FISCALE=B.CODFIS  
   AND B.RETE=B.RETE  
   AND A.CODPROD=B.CODPROD  
   AND A.CODCONF=B.CODCONF  
   AND A.CODINT=B.CODINT  
   AND A.SUBPROD=B.SUBPROD  
   AND A.NUMPOL=B.NUMPOL  
   AND A.CONTO=B.CONTO  
   AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR  
            AND (  CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG  
   AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR  
--   AND A.MAF=B.MAF  
  --V Modifica skandia di tipo ASU2  
--Intervento OMNIA Last    
--   AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end  
   
   ----INIZIO INTERVENTO linea protetta - 18/12/2017  
	   --AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE'))  then a.isin else 'na' end  
	   AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE','RF'))  then a.isin else 'na' end
   ----fine INTERVENTO linea protetta - 18/12/2017 

--FINE INTERVENTO MIGRAZIONE ASU3     
--Intervento OMNIA Last    
     
--intervento di Luca per errore mart simulazione 16/12/2015  
      --and B.POSITIONID is not null and a.cod_fiscale <> 'RZLGDU39M28E202J'  
      and B.POSITIONID is not null and a.cod_fiscale not in ('RZLGDU39M28E202J','GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')  
 --intervento di Luca per errore mart simulazione 13/12/2018 
    and a.cod_fiscale not in ('GRNCML62P41G086H','MTRMRS61B68B519E')  
 --intervento di Luca per errore mart 12/01/2019 
	and a.cod_fiscale not in ('SBBMCG70C01F205D')
	 --intervento di Luca per errore mart 12/03/2019 
		and a.cod_fiscale not in ('CRDLMR58M47G388T','CRDBRN61A57I829K','SCPNTN39C24F839H','SLOGLC87T05H223Q')
 --------------------------------------         
 --end try   
 --begin catch  
 --select @@error  
 --end     catch      
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO'  
  )  
  
END  
  
  
  
  
  
  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 16 luglio 2013
-- Description:	
--Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_DETTAGLIO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_DETTAGLIO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO] 
	 
--	begin try

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_DETTAGLIO]
           ([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[ID_AREA]
           ,[DATA_ASSOCIAZIONE]
           ,[VERSATO_NETTO_DA_ASSOC]
           ,[UTILE_PERDITA_DA_ASSOC]
           ,[ID_ELAB])

	SELECT
			B.RETE,
			B.CODFIS,
			B.POSITIONID,
			A.[ID_AREA],
			CASE WHEN A.TIPPROD='CC' and data_associazione < '20110211' 
                THEN cast('20110211' AS DATETIME)
			ELSE DATA_ASSOCIAZIONE END AS DATA_ASSOCIAZIONE,
			A.CVNNAC AS [VERSATO_NETTO_DA_ASSOC],
			CASE WHEN A.CVNNAC =0 THEN 0 ELSE (B.CTV - A.CVNNAC) END AS [UTILE_PERDITA_DA_ASSOC],
			@ID_ELAB AS [ID_ELAB]
			FROM
			C6STAGINGPERIODICO.SPB_CONTR_SINTESI B
			INNER JOIN
			(
            SELECT
            TCP.RETE AS  [RETE],
			VC.COD_FISCALE AS [COD_FISCALE],
			   TCP.CODPROD,
			   TCP.TIPPROD, 
			   TCP.CODINT, 
			   TCP.MAF,
			   TCP.ISIN,
			   TCP.SUBPROD, 
			   TCP.CODCONF, 
			   TCP.NUMPOL, 
			   TCP.CONTO, 
			   TCP.RUBR, 
			   TCP.CUSTGAR,
			   TCP.TERMID, 
			   TCP.ANNO, 
			   TCP.PROG,
               TCP.CODPROG,
			CASE 
            WHEN TCP.CODAREA='EXR' THEN 'EXT' ELSE TCP.CODAREA 
            END AS ID_AREA,
			CASE WHEN TCP.DTINGRESSO=0 THEN 
				 (CASE WHEN TCP.DTININAC=0 THEN NULL ELSE cast(CAST(TCP.DTININAC AS VARCHAR(8)) as datetime)END)
			ELSE cast(CAST(TCP.DTINGRESSO AS VARCHAR(8)) as datetime)
            --ELSE CAST(DTININAC AS DATETIME)  
            END AS [DATA_ASSOCIAZIONE],
			TCP.CVNNAC
			FROM
            C6STAGINGPERIODICO.TANAB ANA 
            JOIN 
			C6STAGINGPERIODICO.TCPTAB TCP
            ON ANA.CODAREA=TCP.CODAREA
            AND ANA.RETE=TCP.RETE
            AND ANA.CODPROG=TCP.CODPROG
            AND ANA.CODFIS=TCP.CODFIS
            INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
                        ON ANA.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
               AND ANA.RETE = VC.RETE
--               AND VC.DATA_FINEAVANZATO > getDate() 
            WHERE DTVALORIZ NOT IN (99991231) AND 
                  DTUSCITA=99991231) A
			ON 
				A.COD_FISCALE=B.CODFIS
			AND B.RETE=B.RETE
			AND A.CODPROD=B.CODPROD
			AND A.CODCONF=B.CODCONF
			AND A.CODINT=B.CODINT
			AND A.SUBPROD=B.SUBPROD
			AND A.NUMPOL=B.NUMPOL
			AND A.CONTO=B.CONTO
			AND (case when a.TIPPROD='CC' and (a.rubr is null OR LTRIM(RTRIM(a.rubr)) = '') then '000' else a.rubr end)=B.RUBR
            AND (		CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0)) END ) =A.PROG
			AND (case when a.TIPPROD='cc' and (a.CUSTGAR is null OR LTRIM(RTRIM(a.CUSTGAR)) = '') then '0' else A.CUSTGAR end)=B.CUSTGAR
--			AND A.MAF=B.MAF
		--V Modifica skandia di tipo ASU2
--Intervento OMNIA Last		
--			AND b.isin = case when (a.tipprod = 'ASU2') then a.isin else 'na' end
--INIZIO INTERVENTO MIGRAZIONE ASU3
--			AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192'))  then a.isin else 'na' end
			AND b.isin = case when (a.tipprod = 'ASU2' or a.subprod in('L191', 'L192') or a.codint in ('RV','RM', 'RS','RB','RE'))  then a.isin else 'na' end
--FINE INTERVENTO MIGRAZIONE ASU3			
--Intervento OMNIA Last		
			
--intervento di Luca per errore mart simulazione 16/12/2015
      --and B.POSITIONID is not null and a.cod_fiscale <> 'RZLGDU39M28E202J'
      and B.POSITIONID is not null and a.cod_fiscale not in ('RZLGDU39M28E202J','GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')
        
 --end try 
 --begin catch
 --select @@error
 --end     catch    
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_DETTAGLIO_pre_selective'
		)

END












GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_INIZIALE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 15 luglio 2013  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_INIZIALE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_INIZIALE_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_INIZIALE]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[DATA_FOTO]  
           ,[CTV_TOTALE]  
           ,[CTV_EXT]  
           ,[CTV_INV]  
           ,[CTV_RIS]  
           ,[CTV_PRE]  
           ,[CTV_LIQ]  
           ,[CTV_CC]  
           ,[CTV_NA]  
           ,[PARTITA_VIAGGIANTE]  
           ,[VAR_COMPLESSIVO]  
           ,[VAR_COPERTURA]  
           ,[PROFILO]  
           ,[VAR_MAX_PROFILO]  
           ,[RISKCLASS]  
           , [RISKCLASSMAX]  
           ,[ID_ELAB]  
   ,ctvself)  
  
 SELECT  
           V.rete AS RETE,  
           V.COD_FISCALE AS COD_FISCALE,  
           M.dtSalvataggio AS DATA_FOTO,  
      isnull(ctvExt,0) + isnull(ctvInv,0) + isnull(ctvRis,0) + isnull(ctvLiq,0) +   
     isnull(ctvPre,0) + isnull(ctvNa,0) + isnull(ctvCC,0) AS CTV_TOTALE,  
           ctvExt AS CTV_EXT,  
           ctvInv AS CTV_INV,  
           ctvRis AS CTV_RIS,  
           ctvPre AS CTV_PRE,  
           ctvLiq AS CTV_LIQ,  
           ctvCC AS CTV_CC,  
           ctvNa AS CTV_NA,  
           partiteViaggianti AS PARTITA_VIAGGIANTE,  
           [var] AS VAR_COMPLESSIVO,  
           copertura AS VAR_COPERTURA,  
           codiceProfilo AS PROFILO,  
           var_max_profilo AS VAR_MAX_PROFILO,  
--           c6martperiodico.Codifica_CRisk_PhotoData(rischioCredito),  
--           c6martperiodico.Codifica_CRisk_PhotoData(classe_rischio_max),  
           --rischioCredito,  
           --classe_rischio_max,  
           case  when rischioCredito = 5 then 0    
     when rischioCredito = 6 then null    
     else rischioCredito end as rischioCredito,  
   case  when classe_rischio_max = 5 then 0    
      when classe_rischio_max = 6 then null   
      else classe_rischio_max end as classe_rischio_max,    
           @ID_ELAB AS ID_ELAB,  
   ctvself AS CTVSELF  
 FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V   
      INNER JOIN C6STAGINGPERIODICO.RP_MonitoraggioStorico M  
    ON V.chiaveClientePB = M.chiaveClientePB  
 WHERE 1 = 1  
  --AND SUBSTRING(TYPE__TYPE_7CAB6, 1, 1) = '1'  
  AND stato = '2'  
    AND M.dtSalvataggio IS NOT NULL  
  
-- modifica di Luca per errore mart in simulazione 16/12/2015  
-- riabilito 21/7/2017
   --and V.COD_FISCALE not in ('GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')  
----------------------------------------------------------------------------------------     
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_INIZIALE_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_INIZIALE_1'  
  )  
  
    -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_INIZIALE_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 INSERT INTO C6MartPeriodico.Test_Quality   
 SELECT  
           V.rete AS RETE,  
           V.COD_FISCALE AS COD_FISCALE,  
           'dtSalvataggio is null'   
 FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V   
      INNER JOIN C6STAGINGPERIODICO.RP_MonitoraggioStorico M  
    ON V.chiaveClientePB = M.chiaveClientePB  
 WHERE 1 = 1  
  --AND SUBSTRING(TYPE__TYPE_7CAB6, 1, 1) = '1'  
  AND stato = '2'  
        AND M.dtSalvataggio IS NULL  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_INIZIALE_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_INIZIALE_2'  
  )  
END  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_INIZIALE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 15 luglio 2013
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_INIZIALE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_INIZIALE_pre_selective_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_INIZIALE] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_INIZIALE]
           ([RETE]
           ,[COD_FISCALE]
           ,[DATA_FOTO]
           ,[CTV_TOTALE]
           ,[CTV_EXT]
           ,[CTV_INV]
           ,[CTV_RIS]
           ,[CTV_PRE]
           ,[CTV_LIQ]
           ,[CTV_CC]
           ,[CTV_NA]
           ,[PARTITA_VIAGGIANTE]
           ,[VAR_COMPLESSIVO]
           ,[VAR_COPERTURA]
           ,[PROFILO]
           ,[VAR_MAX_PROFILO]
           ,[RISKCLASS]
           , [RISKCLASSMAX]
           ,[ID_ELAB]
			,ctvself)

	SELECT
           V.rete AS RETE,
           V.COD_FISCALE AS COD_FISCALE,
           M.dtSalvataggio AS DATA_FOTO,
		    isnull(ctvExt,0) + isnull(ctvInv,0) + isnull(ctvRis,0) + isnull(ctvLiq,0) + 
		   isnull(ctvPre,0) + isnull(ctvNa,0) + isnull(ctvCC,0) AS CTV_TOTALE,
           ctvExt AS CTV_EXT,
           ctvInv AS CTV_INV,
           ctvRis AS CTV_RIS,
           ctvPre AS CTV_PRE,
           ctvLiq AS CTV_LIQ,
           ctvCC AS CTV_CC,
           ctvNa AS CTV_NA,
           partiteViaggianti AS PARTITA_VIAGGIANTE,
           [var] AS VAR_COMPLESSIVO,
           copertura AS VAR_COPERTURA,
           codiceProfilo AS PROFILO,
           var_max_profilo AS VAR_MAX_PROFILO,
--           c6martperiodico.Codifica_CRisk_PhotoData(rischioCredito),
--           c6martperiodico.Codifica_CRisk_PhotoData(classe_rischio_max),
           --rischioCredito,
           --classe_rischio_max,
           case  when rischioCredito = 5 then 0  
				 when rischioCredito = 6 then null  
				 else rischioCredito end as rischioCredito,
			case  when classe_rischio_max = 5 then 0  
				  when classe_rischio_max = 6 then null 
				  else classe_rischio_max end as classe_rischio_max,	 
           @ID_ELAB AS ID_ELAB,
			ctvself AS CTVSELF
	FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V 
      INNER JOIN C6STAGINGPERIODICO.RP_MonitoraggioStorico M
    ON V.chiaveClientePB = M.chiaveClientePB
	WHERE 1 = 1
		--AND SUBSTRING(TYPE__TYPE_7CAB6, 1, 1) = '1'
		AND stato = '2'
    AND M.dtSalvataggio IS NOT NULL

-- modifica di Luca per errore mart in simulazione 16/12/2015
   and V.COD_FISCALE not in ('GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')
----------------------------------------------------------------------------------------   


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_INIZIALE_pre_selective_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_INIZIALE_pre_selective_1'
		)

    -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_INIZIALE_pre_selective_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	INSERT INTO C6MartPeriodico.Test_Quality 
	SELECT
           V.rete AS RETE,
           V.COD_FISCALE AS COD_FISCALE,
           'dtSalvataggio is null' 
	FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V 
      INNER JOIN C6STAGINGPERIODICO.RP_MonitoraggioStorico M
    ON V.chiaveClientePB = M.chiaveClientePB
	WHERE 1 = 1
		--AND SUBSTRING(TYPE__TYPE_7CAB6, 1, 1) = '1'
		AND stato = '2'
        AND M.dtSalvataggio IS NULL

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_INIZIALE_pre_selective_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_INIZIALE_pre_selective_2'
		)
END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_REPORT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 Luglio 2013  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_REPORT]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_REPORT',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_REPORT]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_REPORT]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[DATA_INVIO]  
           ,[CTV_TOTALE]  
           ,[CTV_EXT]  
           ,[CTV_INV]  
           ,[CTV_RIS]  
           ,[CTV_PRE]  
           ,[CTV_LIQ]  
           ,[CTV_CC]  
           ,[CTV_NA]  
           ,[PARTITA_VIAGGIANTE]  
           ,[VAR_COMPLESSIVO]  
           ,[VAR_COPERTURA]  
     ,[PROFILO]  
     ,[VAR_MAX_PROFILO]  
   ,riskclass  
   ,riskclassmax  
--INIZIO INTERVENTI OMNIA    
--           ,[ID_ELAB])  
           ,[ID_ELAB]  
           ,[CTV_SELF]
		   -- MIOFOGLIO 20181206
		   ,[CTV_SELF_FOGLIO]
		   -- fine MIOFOGLIO 20181206
		   )  
--FINE INTERVENTI OMNIA    
  SELECT  
           V.RETE,  
           V.COD_FISCALE,  
           S.DATA_FASE AS DATA_INVIO,  
           SUM(S.CONTROVALORE) as CTV_TOTALE,  
           SUM(CASE WHEN S.AREA= 'EXT' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_EXT,  
           SUM(CASE WHEN S.AREA= 'INV' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_INV,  
            SUM(CASE WHEN S.AREA= 'RIS' THEN S.CONTROVALORE ELSE 0 END )AS CTV_RIS,  
            SUM(CASE WHEN S.AREA= 'PRE' THEN S.CONTROVALORE ELSE 0 END )AS CTV_PRE,  
            SUM(CASE WHEN S.AREA= 'LIQ' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_LIQ,  
            Max(S.CONTOCORRENTE )AS CTV_CC,  
            Max(S.RISORSENONALLOCATE) AS CTV_NA,  
           MAX(S.INVESTIMENTIINCORSO) AS PARTITA_VIAGGIANTE,  
           MAX(S.VAR_PERC_PTF) AS VAR_COMPLESSIVO,  
           MAX(S.COPERTURA) as VAR_COPERTURA,  
     mAX(S.PROFILO) AS PROFILO,  
     MAX(S.MAX_VAR) AS VAR_MAX_PROFILO,  
   CASE WHEN MAX(CRISK) = 'n.a.' THEN null ELSE MAX(CRISK) END AS RISKCLASS,  
           --MAX(CRISK) AS RISKCLASS,  
     MAX(CRISKMAX) AS RISKCLASSMAX,  
           @ID_ELAB AS ID_ELAB  
--INIZIO INTERVENTI OMNIA    
    ,Max(S.lineaself)AS CTV_SELF
	-- MIOFOGLIO 20181206
    ,Max(S.lineaselfFoglio)AS CTV_SELF_FOGLIO
	-- fine MIOFOGLIO 20181206

--FINE INTERVENTI OMNIA    
 FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V INNER JOIN C6STAGINGPERIODICO.RP_REP_S80_EVOL_STAMPA_C6 S  
    ON V.chiaveClientePB = S.chiaveClientePB  
    GROUP BY   
           V.RETE,  
           V.COD_FISCALE,  
           S.DATA_FASE  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_REPORT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_REPORT'  
  )  
  
END    
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_REPORT_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 Luglio 2013  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_REPORT_20181214_PreMioFoglio]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_REPORT',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_REPORT]   
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_REPORT]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[DATA_INVIO]  
           ,[CTV_TOTALE]  
           ,[CTV_EXT]  
           ,[CTV_INV]  
           ,[CTV_RIS]  
           ,[CTV_PRE]  
           ,[CTV_LIQ]  
           ,[CTV_CC]  
           ,[CTV_NA]  
           ,[PARTITA_VIAGGIANTE]  
           ,[VAR_COMPLESSIVO]  
           ,[VAR_COPERTURA]  
     ,[PROFILO]  
     ,[VAR_MAX_PROFILO]  
   ,riskclass  
   ,riskclassmax  
--INIZIO INTERVENTI OMNIA    
--           ,[ID_ELAB])  
           ,[ID_ELAB]  
           ,[CTV_SELF])  
--FINE INTERVENTI OMNIA    
  SELECT  
           V.RETE,  
           V.COD_FISCALE,  
           S.DATA_FASE AS DATA_INVIO,  
           SUM(S.CONTROVALORE) as CTV_TOTALE,  
           SUM(CASE WHEN S.AREA= 'EXT' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_EXT,  
           SUM(CASE WHEN S.AREA= 'INV' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_INV,  
            SUM(CASE WHEN S.AREA= 'RIS' THEN S.CONTROVALORE ELSE 0 END )AS CTV_RIS,  
            SUM(CASE WHEN S.AREA= 'PRE' THEN S.CONTROVALORE ELSE 0 END )AS CTV_PRE,  
            SUM(CASE WHEN S.AREA= 'LIQ' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_LIQ,  
            Max(S.CONTOCORRENTE )AS CTV_CC,  
            Max(S.RISORSENONALLOCATE) AS CTV_NA,  
           MAX(S.INVESTIMENTIINCORSO) AS PARTITA_VIAGGIANTE,  
           MAX(S.VAR_PERC_PTF) AS VAR_COMPLESSIVO,  
           MAX(S.COPERTURA) as VAR_COPERTURA,  
     mAX(S.PROFILO) AS PROFILO,  
     MAX(S.MAX_VAR) AS VAR_MAX_PROFILO,  
   CASE WHEN MAX(CRISK) = 'n.a.' THEN null ELSE MAX(CRISK) END AS RISKCLASS,  
           --MAX(CRISK) AS RISKCLASS,  
     MAX(CRISKMAX) AS RISKCLASSMAX,  
           @ID_ELAB AS ID_ELAB  
--INIZIO INTERVENTI OMNIA    
    ,Max(S.lineaself)AS CTV_SELF  
--FINE INTERVENTI OMNIA    
 FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V INNER JOIN C6STAGINGPERIODICO.RP_REP_S80_EVOL_STAMPA_C6 S  
    ON V.chiaveClientePB = S.chiaveClientePB  
    GROUP BY   
           V.RETE,  
           V.COD_FISCALE,  
           S.DATA_FASE  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_REPORT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_REPORT'  
  )  
  
END  
  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_REPORT_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 16 Luglio 2013
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_REPORT_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_REPORT_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_REPORT] 

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_REPORT]
           ([RETE]
           ,[COD_FISCALE]
           ,[DATA_INVIO]
           ,[CTV_TOTALE]
           ,[CTV_EXT]
           ,[CTV_INV]
           ,[CTV_RIS]
           ,[CTV_PRE]
           ,[CTV_LIQ]
           ,[CTV_CC]
           ,[CTV_NA]
           ,[PARTITA_VIAGGIANTE]
           ,[VAR_COMPLESSIVO]
           ,[VAR_COPERTURA]
		   ,[PROFILO]
		   ,[VAR_MAX_PROFILO]
			,riskclass
			,riskclassmax
--INIZIO INTERVENTI OMNIA  
--           ,[ID_ELAB])
           ,[ID_ELAB]
           ,[CTV_SELF])
--FINE INTERVENTI OMNIA  
  SELECT
           V.RETE,
           V.COD_FISCALE,
           S.DATA_FASE AS DATA_INVIO,
           SUM(S.CONTROVALORE) as CTV_TOTALE,
           SUM(CASE WHEN S.AREA= 'EXT' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_EXT,
           SUM(CASE WHEN S.AREA= 'INV' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_INV,
            SUM(CASE WHEN S.AREA= 'RIS' THEN S.CONTROVALORE ELSE 0 END )AS CTV_RIS,
            SUM(CASE WHEN S.AREA= 'PRE' THEN S.CONTROVALORE ELSE 0 END )AS CTV_PRE,
            SUM(CASE WHEN S.AREA= 'LIQ' THEN S.CONTROVALORE ELSE 0 END ) AS CTV_LIQ,
            Max(S.CONTOCORRENTE )AS CTV_CC,
            Max(S.RISORSENONALLOCATE) AS CTV_NA,
           MAX(S.INVESTIMENTIINCORSO) AS PARTITA_VIAGGIANTE,
           MAX(S.VAR_PERC_PTF) AS VAR_COMPLESSIVO,
           MAX(S.COPERTURA) as VAR_COPERTURA,
		   mAX(S.PROFILO) AS PROFILO,
		   MAX(S.MAX_VAR) AS VAR_MAX_PROFILO,
			CASE WHEN MAX(CRISK) = 'n.a.' THEN null ELSE MAX(CRISK) END AS RISKCLASS,
           --MAX(CRISK) AS RISKCLASS,
		   MAX(CRISKMAX) AS RISKCLASSMAX,
           @ID_ELAB AS ID_ELAB
--INIZIO INTERVENTI OMNIA  
		  ,Max(S.lineaself)AS CTV_SELF
--FINE INTERVENTI OMNIA  
	FROM [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V INNER JOIN C6STAGINGPERIODICO.RP_REP_S80_EVOL_STAMPA_C6 S
    ON V.chiaveClientePB = S.chiaveClientePB
    GROUP BY 
           V.RETE,
           V.COD_FISCALE,
           S.DATA_FASE

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_REPORT_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_REPORT_pre_selective'
		)

END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_STORICO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
-- Stored procedure  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 16 luglio 2013  
-- Description:   
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_STORICO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
  
 SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_STORICO_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_STORICO]   
  
begin try  
  
 INSERT INTO [C6MartPeriodico].[MONITORAGGIO_STORICO]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[ID_AREA]  
           ,[NOME_PROGETTO]  
           ,[DATA_CTV]  
           ,[CTV_MONITORATO]  
           ,[RISORSE_ASSOCIATE]  
           ,[ID_ELAB]  
           ,CEDOLE_DIV  
   ,ordinamento_progetto)  
  
 SELECT  
           TANAB.RETE AS RETE,  
     VC.COD_FISCALE,  
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END AS ID_AREA,  
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,  
           CASE WHEN ISDATE(WRENAB.DTVALORIZ) = 0 THEN NULL  
           ELSE  
            CAST(CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) AS DATETIME) END AS DATA_CTV,  
           WRENAB.CTV AS CTV_MONITORATO,  
           WRENAB.CVN AS RISORSE_ASSOCIATE,  
           @ID_ELAB AS ID_ELAB,  
           (TANAB.TOT_CED + TANAB.TOT_DIV) AS CEDOLE_DIV,  
   CM.ChiaveProgetto -- tanab.codprog  
 FROM C6STAGINGPERIODICO.TANAB AS TANAB  
 INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB  
  ON TANAB.CODPROG = WRENAB.CODPROG  
  AND TANAB.DTRIF = WRENAB.DTRIF  
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
        ON TANAB.CODPROG = CM.idmonitoraggio  
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS  
--        ON CM.chiaveprogetto = CS.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_Progetto PR  
        ON CM.chiaveprogetto = PR.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS  
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod  
  
    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
  ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
        AND TANAB.RETE = VC.RETE  
--        AND VC.DATA_FINEAVANZATO > getDate()   
 WHERE 1 = 1  
 AND TANAB.DTFINE = '99991231'  
 AND ISDATE(WRENAB.DTVALORIZ) = 1  
 --intervento di Luca per errore mart simulazione 16/12/2015  
 and tanab.codfis not in ('GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')  
 ----------------------------------------------------------------------------------  
 end try  
 begin catch  
  select @@error  
 end catch  
  
    UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_STORICO_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_STORICO_1')  
  
  
    -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_MONITORAGGIO_STORICO_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
   
    INSERT INTO C6MartPeriodico.Test_Quality  
 SELECT  
           TANAB.RETE AS RETE,  
     VC.COD_FISCALE,  
     'DTVALORIZZ non valida - Area: ' +    
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END + ' Nome Progetto: ' +  
           ISNULL(CS.nomeProgetto, 'XXX') + ' - DTVALORIZZ: ' +  
          CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) +    
           ' - CTV_MONITORATO: ' + ltrim(rtrim(cast(WRENAB.CTV AS VARCHAR(20)))) +  
           ' - RISORSE_ASSOCIATE: ' + ltrim(rtrim(cast(WRENAB.CVN AS VARCHAR(20)))) +  
           ' - CEDOLE_DIV: ' + ltrim(rtrim(cast((TANAB.TOT_CED + TANAB.TOT_DIV) AS VARCHAR(20)))) +   
     ' - ChiaveProgetto: ' + cast(isnull(CM.ChiaveProgetto, '') as varchar(10))  
 FROM C6STAGINGPERIODICO.TANAB AS TANAB  
 INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB  
  ON TANAB.CODPROG = WRENAB.CODPROG  
  AND TANAB.DTRIF = WRENAB.DTRIF  
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
        ON TANAB.CODPROG = CM.idmonitoraggio  
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS  
--        ON CM.chiaveprogetto = CS.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_Progetto PR  
        ON CM.chiaveprogetto = PR.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS  
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod  
  
    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC  
  ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
        AND TANAB.RETE = VC.RETE  
--        AND VC.DATA_FINEAVANZATO > getDate()   
 WHERE 1 = 1  
 AND TANAB.DTFINE = '99991231'  
 AND ISDATE(WRENAB.DTVALORIZ) = 0  
  
-- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_MONITORAGGIO_STORICO_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_MONITORAGGIO_STORICO_2'  
  )  
  
END  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_STORICO_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- Stored procedure
-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 16 luglio 2013
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_MONITORAGGIO_STORICO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_STORICO_pre_selective_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[MONITORAGGIO_STORICO] 

begin try

	INSERT INTO [C6MartPeriodico].[MONITORAGGIO_STORICO]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[NOME_PROGETTO]
           ,[DATA_CTV]
           ,[CTV_MONITORATO]
           ,[RISORSE_ASSOCIATE]
           ,[ID_ELAB]
           ,CEDOLE_DIV
			,ordinamento_progetto)

	SELECT
           TANAB.RETE AS RETE,
		   VC.COD_FISCALE,
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END AS ID_AREA,
           ISNULL(CS.nomeProgetto, 'XXX') AS NOME_PROGETTO,
           CASE WHEN ISDATE(WRENAB.DTVALORIZ) = 0 THEN NULL
           ELSE
            CAST(CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) AS DATETIME) END AS DATA_CTV,
           WRENAB.CTV AS CTV_MONITORATO,
           WRENAB.CVN AS RISORSE_ASSOCIATE,
           @ID_ELAB AS ID_ELAB,
           (TANAB.TOT_CED + TANAB.TOT_DIV) AS CEDOLE_DIV,
			CM.ChiaveProgetto -- tanab.codprog
	FROM C6STAGINGPERIODICO.TANAB AS TANAB
	INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB
		ON TANAB.CODPROG = WRENAB.CODPROG
		AND TANAB.DTRIF = WRENAB.DTRIF
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
        ON TANAB.CODPROG = CM.idmonitoraggio
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS
--        ON CM.chiaveprogetto = CS.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_Progetto PR
        ON CM.chiaveprogetto = PR.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod

    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
		ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
        AND TANAB.RETE = VC.RETE
--        AND VC.DATA_FINEAVANZATO > getDate() 
	WHERE 1 = 1
	AND TANAB.DTFINE = '99991231'
	AND ISDATE(WRENAB.DTVALORIZ) = 1
	--intervento di Luca per errore mart simulazione 16/12/2015
	and tanab.codfis not in ('GRPGLI71R45L407D','MRTGRL59B60H501T','RMNFNC40R14H501K')
	----------------------------------------------------------------------------------
	end try
	begin catch
		select @@error
	end catch

    UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_STORICO_pre_selective_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_STORICO_pre_selective_1')


    -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_MONITORAGGIO_STORICO_pre_selective_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	
    INSERT INTO C6MartPeriodico.Test_Quality
	SELECT
           TANAB.RETE AS RETE,
		   VC.COD_FISCALE,
		   'DTVALORIZZ non valida - Area: ' +  
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END + ' Nome Progetto: ' +
           ISNULL(CS.nomeProgetto, 'XXX') + ' - DTVALORIZZ: ' +
          CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) +  
           ' - CTV_MONITORATO: ' + ltrim(rtrim(cast(WRENAB.CTV AS VARCHAR(20)))) +
           ' - RISORSE_ASSOCIATE: ' + ltrim(rtrim(cast(WRENAB.CVN AS VARCHAR(20)))) +
           ' - CEDOLE_DIV: ' + ltrim(rtrim(cast((TANAB.TOT_CED + TANAB.TOT_DIV) AS VARCHAR(20)))) + 
		   ' - ChiaveProgetto: ' + cast(isnull(CM.ChiaveProgetto, '') as varchar(10))
	FROM C6STAGINGPERIODICO.TANAB AS TANAB
	INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB
		ON TANAB.CODPROG = WRENAB.CODPROG
		AND TANAB.DTRIF = WRENAB.DTRIF
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
        ON TANAB.CODPROG = CM.idmonitoraggio
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS
--        ON CM.chiaveprogetto = CS.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_Progetto PR
        ON CM.chiaveprogetto = PR.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod

    INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VC
		ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
        AND TANAB.RETE = VC.RETE
--        AND VC.DATA_FINEAVANZATO > getDate() 
	WHERE 1 = 1
	AND TANAB.DTFINE = '99991231'
	AND ISDATE(WRENAB.DTVALORIZ) = 0

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_MONITORAGGIO_STORICO_pre_selective_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_MONITORAGGIO_STORICO_pre_selective_2'
		)

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_ALTRO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_ALTRO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_ALTRO  
  
INSERT INTO [C6MartPeriodico].[PATRIMONIO_ALTRO]  
 (  
--chiaveClientePB  
-- ,  
[RETE]  
 ,[COD_FISCALE]  
 ,[QUANTITA]  
 ,[DESCRIZIONE]  
 ,[CTV]  
 ,[ID_ELAB]  
 ,[TIPO_ELAB])  
  
SELECT  
-- VCONTRATTI.chiaveClientePB,  
 VCONTRATTI.rete AS RETE,  
 VCONTRATTI.COD_FISCALE,  
 dettPatrAz.numQuote AS QUANTITA,  
 dettPatrAz.denominazione AS DESCRIZIONE,   
 --(dettPatrAz.valoreStimato) as valore,  
 SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettPatrAz.denominazione) AS CTV,  
 @ID_ELAB AS ID_ELAB,  
 @TIPO_ELAB AS TIPO_ELAB  
FROM   
 C6StagingPeriodico.RP_DettPatrAziendale dettPatrAz,  
 C6StagingPeriodico.RP_PatrimonioTerzi patrTerzi,  
 [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
WHERE  
 dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi  
AND  
 patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
  
UNION ALL  
  
SELECT  
 VCONTRATTI.rete AS RETE,  
 VCONTRATTI.COD_FISCALE,  
 NULL AS QUANTITA,  
 dettAltriProd.descrizione AS DESCRIZIONE,   
 SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettAltriProd.descrizione) AS CTV,  
 @ID_ELAB AS ID_ELAB,  
 @TIPO_ELAB AS TIPO_ELAB  
FROM   
 C6StagingPeriodico.RP_DettAltriProdotti dettAltriProd,  
 C6StagingPeriodico.RP_PatrimonioTerzi patrTerzi,  
 C6Mart.VCONTRATTI  
WHERE  
 dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi  
AND  
 patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_ALTRO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_ALTRO'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_ALTRO_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_ALTRO_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_ALTRO_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_ALTRO

INSERT INTO [C6MartPeriodico].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])

SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettPatrAz.denominazione) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
FROM 
	C6StagingPeriodico.RP_DettPatrAziendale dettPatrAz,
	C6StagingPeriodico.RP_PatrimonioTerzi patrTerzi,
	[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB

UNION ALL

SELECT
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettAltriProd.descrizione) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
FROM 
	C6StagingPeriodico.RP_DettAltriProdotti dettAltriProd,
	C6StagingPeriodico.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_ALTRO_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_ALTRO_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
---------------------------------------------------------------------------
CREATE     procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT distinct-- PER DIVERSI DA CC ************************ --distinct aggiunta il 23/02/2024
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			-- 20170421 elimina char ; dal nome progetto che causa errore 2000 durante elaborazione prometeia exe 
			--ELSE LTRIM(RTRIM(CON.nomeProgetto))
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO,
		NULL as ClienteDB,
		CON.CHIAVEPTFMOD as CHIAVEPTFMOD,
		CASE WHEN SPB.BASE_PREZZ = 'N' THEN 'S' ELSE 'N' END AS Nob_prez,
		SPB.DIVISA AS Divisa
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT distinct-- *** PER UGUALI DA CC ************************      distinct aggiunta il 23/02/2024
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO,
		NULL as ClienteDB,
		CON.CHIAVEPTFMOD as CHIAVEPTFMOD,
    	CASE WHEN SPB.BASE_PREZZ = 'N' THEN 'S' ELSE 'N' END AS Nob_prez,
		SPB.DIVISA AS Divisa-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	

	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO]
		   ,[ClienteDB]
		   ,[ChiavePtfMod]
		   ,[Nob_Prez]	
	       ,[Divisa])
		SELECT distinct P.[RETE] --aggiunto distinct
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
		   ,[ClienteDB]
	      ,[ChiavePtfMod]
		  ,P.[Nob_Prez]	
	      ,P.[Divisa]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT distinct--aggiunto distinct
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO,
		NULL as ClienteDB,
		patr.CHIAVEPTFMOD as CHIAVEPTFMOD,
		CASE WHEN SPB.BASE_PREZZ = 'N' THEN 'S' ELSE 'N' END AS Nob_prez,
		SPB.DIVISA AS Divisa
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,0)=ISNULL(TSCA.PROG,0)
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,0)=ISNULL(TSCA.ANNO,0)
            inner join 
        --C6StagingPeriodico.RP_CONSULENZA_v AS CONS 
		C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


--update correzione prodotti SMA con ID_AREA=Liq 
-- SPIEGAZIONE 20230502 poiche non venivano agganciati i progetti, queste persone avevano due prodotti SMA con nomi progetti differenti (uno a Default e uno a NULL)
-- ma sulla w6clirep non ci puo essere uno stesso prodotto nell'area liquidita cosi si danno i nomi progetti uguali e si risolve il problema
	update C6MartPeriodico.PATRIMONIO_BF 
	set NOME_PROGETTO='Default'
	where id_area='Liq'and TIPO_PRODOTTO='CC' and NOME_PROGETTO is null and COD_SOTTOPRODOTTO='SMA'



--modifica 05/09/2023 per togliere i prodotti con Codice Interno GD ai Fideuram Direct/ Direct Banker

update b
set b.clienteDB='S'
from C6MartPeriodico.PATRIMONIO_BF b inner join C6StagingPeriodico.APPO_CONTRATTI v on b.rete=v.rete and b.COD_FISCALE=v.COD_FISCALE where v.TIP_CONTRATTO=3 

--delete from C6MartPeriodico.PATRIMONIO_BF where COD_INTERNO='GD' and clienteDB='S'

--fine modifica 05/09/2023 per togliere i prodotti con Codice Interno GD ai Fideuram Direct/ Direct Banker




		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto

exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_20170407.SAVE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- =============================================  
-- Author:  Rino Le Boffe  
-- Create date: 18 luglio 2013  
-- =============================================  
--drop table  #patrimonio  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_20170407.SAVE]  
 -- Add the parameters for the stored procedure here  
 --select * from c6mart.patrimonio_bf  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
   
INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_BF_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF  
  
DROP TABLE TEMP_PATRIMONIO_CAMPIONE  
--DROP TABLE #PATRIMONIO  
 -- *** INCROCIO TRA SPB E CONSULENZA ************************  
 SELECT -- PER DIVERSI DA CC ************************  
  SPB.RETE AS RETE,  
  SPB.CODFIS AS COD_FISCALE,  
  SPB.POSITIONID AS POSITIONID,  
  SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO,   
  SPB.CODCONF AS ID_CONTRATTO,  
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
        null AS COD_STATO,  
  SPB.NUMPOL AS NUM_POLIZZA,  
  SPB.MAF AS COD_MAF,  
  SPB.CODINT AS COD_INTERNO,  
  SPB.SUBPROD AS COD_SOTTOPRODOTTO,  
  SPB.TIPPROD AS TIPO_PRODOTTO,  
  CASE  
   WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'  
   ELSE LTRIM(RTRIM(CON.nomeProgetto))  
  END AS NOME_PROGETTO,  
        case when isnull(CON.tipoProgetto, '') = '' then 'Default'   
             when CON.tipoProgetto = 0 then 'Default'   
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,  
  CON.area AS ID_AREA,  
        CASE  
   WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL  
   ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA,   
  NULL AS DATA_REGOLAMENTO,  
  SPB.QUOTE AS QUANTITA,  
  NULL AS PREZZO,  
  SPB.CTV AS CTV,  
  SPB.VALORE AS CTV_NOMINALE,    
  CASE   
   WHEN (SPB.TIPPROD = 'GE'   
    OR SPB.TIPPROD = 'GES')  
    AND SPB.DTSOTTOS < 20070101  
    THEN NULL   
   WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
      WHEN SPB.CVN = 0  
          THEN NULL     
   ELSE SPB.CVN   
  END AS VERSATO_NETTO,  
  SPB.PARTVIA AS PARTVIA_DISINV,  
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL  
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,  
  NULL AS PARTVIA_INV,    
  CASE   
   WHEN (SPB.TIPPROD = 'GE'   
    OR SPB.TIPPROD = 'GES')  
    AND SPB.DTSOTTOS < 20070101  
    THEN NULL   
   WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
   ELSE SPB.RENDINIZ  
  END AS REND_SOTTOSCRIZIONE,  
--  CASE   
--   WHEN (SPB.TIPPROD = 'GE'   
--    OR SPB.TIPPROD = 'GES')  
--    AND SPB.DTSOTTOS < 20070101  
--    THEN NULL   
--   WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')  
--    THEN NULL  
--   WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')  
--    THEN NULL  
--   ELSE SPB.RENDINIZ  
  null AS REND_TRIMESTRE,   
  CASE   
   WHEN (SPB.TIPPROD = 'GE'   
    OR SPB.TIPPROD = 'GES')  
    AND SPB.DTSOTTOS < 20070101  
    THEN NULL   
   WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')  
    THEN NULL  
   WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')  
    THEN NULL  
   ELSE SPB.RENDANNO  
  END AS REND_ANNO,  
  CON.StrType,  
        CON.Complessita AS COMPLEX,  
        CON.DescrizioneEmittente AS EMITTENTE,  
  SPB.ISIN,  
  @ID_ELAB AS ID_ELAB,    
      @TIPO_ELAB AS TIPO_ELAB,     
  CON.chiaveClientePB,  
  
--nuovo   
        0 AS REND_NON_RAPPR,  
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,  
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,  
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,  
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,  
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO    
-- fine nuovo  
 INTO TEMP_PATRIMONIO_CAMPIONE  
 FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB  
 INNER JOIN C6StagingPeriodico.RP_Consulenza CON  
  ON CON.rete = SPB.RETE  
  AND CON.cod_fiscale = SPB.CODFIS  
  AND CON.Position_id = SPB.positionid    
 LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
  ON CON.chiaveprogetto = CM.chiaveProgetto  
       AND CM.stato = 1  
 WHERE SPB.POSITIONID IS NOT NULL  
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'  
    --***INIZIO INTERVENTI OMNIA***   
          and SPB.Isin <> 'EURO00000009'  
          and SPB.Isin <> 'EURO10000007'  
          and CON.area <> 'SELF'  
    --FINE INTERVENTI OMNIA***  
       
 --and con.cod_fiscale + CON.RETE  IN  
 --(  
 --select COD_FISCALE + RETE   
 --FROM ANDREA_RINO_CODICI_PATRIMONIO  
 --)  
  
    UNION ALL  
      
    SELECT -- *** PER UGUALI DA CC ************************        
  SPB.RETE AS RETE,  
  SPB.CODFIS AS COD_FISCALE,  
  SPB.POSITIONID AS POSITIONID,  
  SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO,   
  SPB.CODCONF AS ID_CONTRATTO,  
--  CASE   
--   WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO   
--   ELSE SPB.DATADISOTTOSCRIZIONE   
--  END AS DATA_SOTTOSCRIZIONE,  
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
                --ELSE SPB.DTSOTTOS   
  END AS DATA_SOTTOSCRIZIONE,  
  NULL AS COD_STATO,  
  SPB.NUMPOL AS NUM_POLIZZA,  
  SPB.MAF AS COD_MAF,  
  SPB.CODINT AS COD_INTERNO,  
  SPB.SUBPROD AS COD_SOTTOPRODOTTO,  
  SPB.TIPPROD AS TIPO_PRODOTTO,  
  CON.NOMEPROGETTO AS NOME_PROGETTO,  
                case when isnull(CON.tipoProgetto, '') = '' then 'Default'   
             when CON.tipoProgetto = 0 then 'Default'   
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,  
  --CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,  
  CON.AREA AS ID_AREA,  
  CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL  
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  SPB.QUOTE AS QUANTITA,  
  NULL AS PREZZO,  
  SPB.CTV AS CTV,  
  SPB.VALORE AS CTV_NOMINALE,  
  CASE   
      WHEN SPB.CVN = 0  
          THEN NULL     
   ELSE SPB.CVN   
  END AS VERSATO_NETTO,  
  SPB.PARTVIA AS PARTVIA_DISINV,  
  CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL  
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,     
  NULL AS PARTVIA_INV,    
  SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  NULL AS REND_TRIMESTRE,  
  SPB.RENDANNO AS REND_ANNO,  
        CON.StrType,  
        CON.Complessita AS COMPLEX,  
        CON.DescrizioneEmittente as EMITTENTE,  
  SPB.ISIN,  
  @ID_ELAB AS ID_ELAB,    
  @TIPO_ELAB AS TIPO_ELAB,    
  CON.chiaveClientePB,  
--nuovo   
        0 AS REND_NON_RAPPR,  
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,  
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,  
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,  
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO    
-- fine nuovo   
 FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB  
 INNER JOIN C6StagingPERIODICO.RP_Consulenza CON  
  ON CON.rete = SPB.RETE  
  AND CON.cod_fiscale = SPB.CODFIS  
  AND CON.Position_id = SPB.positionid     
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT  
  ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID  
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
  ON CON.chiaveprogetto = CM.chiaveProgetto  
        AND CM.stato = 1  
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT  
        ON  MIT.Emittente =KAT.EMITTENTE  
 WHERE SPB.TIPPROD = 'CC'  
 --***INIZIO INTERVENTI OMNIA***   
          or SPB.Isin in ('EURO00000009', 'EURO10000007')  
    --FINE INTERVENTI OMNIA***   
--and con.cod_fiscale + CON.RETE  IN  
--(  
--select COD_FISCALE + RETE   
--FROM ANDREA_RINO_CODICI_PATRIMONIO  
--)  
  
UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_BF_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_BF_1'  
  )  
  
INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_BF_1_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 --DROP TABLE #PATRIMONIO_DUPLICATI  
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp  
    INTO #PATRIMONIO_DUPLICATI  
    FROM TEMP_PATRIMONIO_CAMPIONE  
    GROUP BY RETE, COD_FISCALE, POSITIONID  
    HAVING COUNT(*) > 1  
      
      
    --Scrittura Tabella Data Quality  
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF'   
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2  
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF'   
    FROM #PATRIMONIO_DUPLICATI  
    GROUP BY RETE, COD_FISCALE  
  
UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_BF_1_1'  
  )  
  
INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_BF_1_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
  
 INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF  
([RETE]  
           ,[COD_FISCALE]  
           ,[POSITION_ID]  
           ,[COD_PRODOTTO]  
           ,[ID_CONTRATTO]  
           ,[DATA_SOTTOSCRIZIONE]  
           ,[COD_STATO]  
           ,[NUM_POLIZZA]  
           ,[COD_MAF]  
           ,[COD_INTERNO]  
           ,[COD_SOTTOPRODOTTO]  
           ,[TIPO_PRODOTTO]  
           ,[NOME_PROGETTO]  
           ,[TIPO_PROGETTO]  
           ,[ID_AREA]  
           ,[DATA_OPERAZIONE]  
           ,[DATA_VALUTA]  
           ,[DATA_REGOLAMENTO]  
           ,[QUANTITA]  
           ,[PREZZO]  
           ,[CTV]  
           ,[CTV_NOMINALE]  
           ,[VERSATO_NETTO]  
           ,[PARTVIA_DISINV]  
           ,[DATA_PARTVIA_DISINV]  
           ,[PARTVIA_INV]  
           ,[REND_SOTTOSCRIZIONE]  
           ,[REND_TRIMESTRE]  
           ,[REND_ANNO]  
     ,[REND_NON_RAPPR]  
     ,[ORDINAMENTO_PROGETTO]  
            ,[ORIZZ_TEMP_NUM]   
         ,[ORIZZ_TEMP]  
--            ,[STATO_CONSULENZA]   
--            ,[DATA_STATO_CONS]   
--            ,[DATA_MIGR_CONS]  
--           , [DATA_PIANIF]   
--     ,[EXTRANAC]  
           ,[STRTYPE]  
           ,[COMPLEX]  
           ,[EMITTENTE]  
     ,[ISIN]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB]  
           ,[CHIAVE_PROGETTO])  
  SELECT P.[RETE]  
      ,P.[COD_FISCALE]  
      ,P.[POSITIONID]  
      ,[COD_PRODOTTO]  
      ,[ID_CONTRATTO]  
      ,[DATA_SOTTOSCRIZIONE]  
      ,[COD_STATO]  
      ,[NUM_POLIZZA]  
      ,[COD_MAF]  
      ,[COD_INTERNO]  
      ,[COD_SOTTOPRODOTTO]  
      ,[TIPO_PRODOTTO]  
      ,[NOME_PROGETTO]  
      ,[TIPO_PROGETTO]  
      ,[ID_AREA]  
      ,[DATA_OPERAZIONE]  
      ,[DATA_VALUTA]  
      ,NULL --[DATA_REGOLAMENTO]  
      ,[QUANTITA]  
      ,[PREZZO]  
      ,[CTV]  
      ,[CTV_NOMINALE]  
      ,[VERSATO_NETTO]  
      ,[PARTVIA_DISINV]  
      ,[DATA_PARTVIA_DISINV]  
      ,[PARTVIA_INV]  
      ,[REND_SOTTOSCRIZIONE]  
      ,[REND_TRIMESTRE]  
      ,[REND_ANNO]  
      ,[REND_NON_RAPPR]  
     ,[ORDINAMENTO_PROGETTO]  
            ,[ORIZZ_TEMP_NUM]   
         ,[ORIZZONTETEMPORALE]  
           ,[STRTYPE]  
           ,[COMPLEX]  
           ,[EMITTENTE]  
     ,[ISIN]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB]  
           ,[CHIAVEPROGETTO]  
FROM   
TEMP_PATRIMONIO_CAMPIONE P  
 LEFT JOIN #PATRIMONIO_DUPLICATI T  
 ON P.RETE = T.RETE  
 AND P.COD_FISCALE = T.COD_FISCALE  
 --AND P.POSITIONID = T.POSITIONID  
 WHERE T.RETE IS NULL  
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1  
  
  
  
 UNION ALL   
   
 SELECT   
  SPB.RETE AS RETE,  
  SPB.CODFIS AS COD_FISCALE,  
  SPB.POSITIONID AS POSITIONID,  
  SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO,   
  SPB.CODCONF AS ID_CONTRATTO,  
--  CASE   
--   WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO   
--   ELSE SPB.DATADISOTTOSCRIZIONE   
--  END AS DATA_SOTTOSCRIZIONE,  
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL  
    ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_SOTTOSCRIZIONE,  
  null AS COD_STATO,  
  SPB.NUMPOL AS NUM_POLIZZA,  
  SPB.MAF AS COD_MAF,  
  SPB.CODINT AS COD_INTERNO,  
  SPB.SUBPROD AS COD_SOTTOPRODOTTO,  
  SPB.TIPPROD AS TIPO_PRODOTTO,  
  --LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,  
  null AS NOME_PROGETTO,  
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default'   
--             when CON.tipoProgetto = 0 then 'Default'   
--             else 'Progetto investimento' end   
        '' as TIPO_PROGETTO,  
  --ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,  
  'Na' AS ID_AREA,  
  CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,  
  NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY  
  NULL AS DATA_REGOLAMENTO,  
  convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,  
  NULL AS PREZZO,  
  convert(decimal(15,3),SPB.CTV) AS CTV,  
  convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,  
        NULL AS VERSATO_NETTO,  
  SPB.PARTVIA AS PARTVIA_DISINV,  
  CASE  
   WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL  
   ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_PARTVIA_DISINV,  
  --PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,  
  NULL AS PARTVIA_INV,  
  SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,  
  NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,  
  SPB.RENDANNO AS REND_ANNO,  
        0 AS REND_NON_RAPPR,  
  NULL AS ORDINAMENTO_PROGETTO,  
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM,   
     CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,  
        KAT.AzOb As STRTYPE,  
        KAT.Complessita as COMPLEX,  
        MIT.DESCRIZIONE AS EMITTENTE,  
  SPB.ISIN,  
  @ID_ELAB,  
  @TIPO_ELAB,  
        -1 AS CHIAVE_PROGETTO         
  FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB     
  LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR     
   ON SPB.RETE = PATR.RETE  
   AND SPB.CODFIS = PATR.COD_FISCALE  
   AND SPB.Positionid = PATR.positionid   
  JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON     
   ON SPB.RETE = VCON.RETE  
   AND SPB.CODFIS = VCON.COD_FISCALE  
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT  
      ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID          
  
        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT  
            ON  MIT.Emittente =KAT.EMITTENTE  
   --AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB      
 WHERE SPB.POSITIONID IS NOT NULL  
    AND PATR.POSITIONID IS NULL  
--and SPB.CODFIS + SPB.RETE  IN  
-- (  
-- select COD_FISCALE + RETE   
-- FROM ANDREA_RINO_CODICI_PATRIMONIO  
-- )  
  
  
UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_BF_1_2'  
  )  
  
INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_BF_1_3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
    --*************************************************************************************************  
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB  
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO   
    INTO #CHIAVEPROGETTONULL  
    FROM C6MARTPERIODICO.PATRIMONIO_BF  
    WHERE CHIAVE_PROGETTO = -1  
      
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO  
    FROM   
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R  
       ON C.COD_FISCALE = R.COD_FISCALE  
     AND C.RETE = R.RETE  
     AND R.area = 'Na'  
      
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET   
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,  
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO  
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T  
       ON P.COD_FISCALE = T.COD_FISCALE  
     AND P.RETE = T.RETE  
     WHERE P.CHIAVE_PROGETTO = -1  
    --*************************************************************************************************     
  drop table #CHIAVEPROGETTONULL  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_BF_1_3'  
  )  
  
  
  
  
  
--DROP table TEMP_PATRIMONIO_CAMPIONE  
  
INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_BF_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
    
    
 )  
  
  SELECT  
   TSCA.RETE,  
   TSCA.CODFIS,  
   C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(  
    TSCA.TIPPROD,  
    CONS.CODINTERNO,  
    CONS.CODMAF,  
--INIZIO INTERVENTO CORRETTIVO 20150130  
--    '',  
    CONS.CodIsin,  
--FINE   INTERVENTO CORRETTIVO 20150130  
    TSCA.SUBPROD  
   )  
   +  
   dbo.Crea_positionID(  
    TSCA.TIPPROD,  
    CONS.CODINTERNO,  
    CONS.CODMAF,  
    '',  
    TSCA.SUBPROD,  
    TSCA.CODCONF,  
    CONS.NUMPOLIZZA,  
    TSCA.CONTO,  
    TSCA.RUBR,  
    TSCA.CUSTGAR,  
    TSCA.TERMID,  
    TSCA.ANNO,  
    TSCA.PROG  
   ) AS POSITION_ID  
        INTO #REND_NON_RAPPR   
  FROM  
       
   C6StagingPeriodico.TSCABP AS TSCA  
     
            inner join     
            C6StagingPeriodico.tcptab as TCP  
            ON TCP.CODFIS=TSCA.CODFIS  
            AND TCP.RETE=TSCA.RETE  
            AND TCP.CODCONF=TSCA.CODCONF  
            AND TCP.CODPROG=TSCA.CODPROG  
            AND TCP.CODPROD=TSCA.CODPROD  
--INIZIO INTERVENTO CORRETTIVO 20150130  
            AND TCP.SUBPROD=TSCA.SUBPROD  
            AND TCP.ISIN=TSCA.ISIN  
            AND TCP.dtrif=TSCA.dtrif  
            AND TCP.dtingresso=TSCA.dtingresso  
--FINE   INTERVENTO CORRETTIVO 20150130  
            AND TCP.CONTO=TSCA.CONTO  
            AND TCP.CUSTGAR=TSCA.CUSTGAR  
            AND TCP.CODABI=TSCA.CODABI  
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')  
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')  
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')  
            inner join   
        C6StagingPeriodico.RP_CONSULENZA AS CONS   
        ON  
      
     TSCA.CODCONF = CONS.CODCONF  
--INIZIO INTERVENTO CORRETTIVO 20150130  
    AND (TSCA.CODPROD = CONS.CodInterno     
     OR  TSCA.CODABI  = CONS.CodInterno)         
--FINE   INTERVENTO CORRETTIVO 20150130  
    AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '')   
--INIZIO INTERVENTO CORRETTIVO 20150130  
    AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '')   
--    AND TCP.CODINT = CONS.CODINTERNO  
--FINE   INTERVENTO CORRETTIVO 20150130      
     INNER JOIN  
   C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM  
    ON CONS.chiaveprogetto = CM.chiaveProgetto  
             AND CM.stato = 1  
    and TSCA.CODPROG = CM.IDMONITORAGGIO  
  WHERE  
--INIZIO INTERVENTO CORRETTIVO 20150130    
   TCP.dtuscita = '99991231'  
--   TSCA.DTRIF <> 0  
--FINE   INTERVENTO CORRETTIVO 20150130      
    
  
  
  
    UPDATE  
  PATR_BF  
 SET  
  PATR_BF.REND_NON_RAPPR = 1  
 FROM  
  #REND_NON_RAPPR AS REND_NON_RAPPR  
 INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF  
  ON PATR_BF.RETE = REND_NON_RAPPR.RETE  
  AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546  
    CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS  
      ELSE  REND_NON_RAPPR.CODFIS  
    END   
  AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID  
    
    DROP TABLE #REND_NON_RAPPR  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_BF_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_BF_2'  
  )  
   
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_BF_3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
REND_NON_RAPPR=1  
FROM  
C6MARTPERIODICO.PATRIMONIO_BF  
WHERE   
TIPO_PRODOTTO='CC'  
--***INIZIO INTERVENTI OMNIA***   
or ISIN in('EURO00000009', 'EURO10000007')  
--***FINE INTERVENTI OMNIA***   
AND CTV > 0  
AND ID_AREA='Liq'  
  
--aggiunta Emanuele/Valerio  
UPDATE   
c6martperiodico.patrimonio_bf  
SET Id_area = 'Liq',  
REND_NON_RAPPR=1  
WHERE TIPO_PRODOTTO='CC'  
--***INIZIO INTERVENTI OMNIA***   
or ISIN in('EURO00000009', 'EURO10000007')  
--***FINE INTERVENTI OMNIA***   
--AND ID_AREA = 'na'  
AND CTV > 0  
  
UPDATE   
c6martperiodico.patrimonio_bf  
SET Id_area = 'Cc'  
WHERE TIPO_PRODOTTO='CC'  
--AND ID_AREA = 'na'  
AND CTV < 0  
  
--***INIZIO INTERVENTI OMNIA***   
UPDATE   
c6martperiodico.patrimonio_bf  
SET Id_area = 'Self'  
--INIZIO INTERVENTO CORRETTIVO 20150130  
   ,REND_NON_RAPPR=0  
--FINE   INTERVENTO CORRETTIVO 20150130  
WHERE ISIN in ('EURO00000009', 'EURO10000007')  
--AND ID_AREA = 'na'  
AND CTV < 0  
--***FINE INTERVENTI OMNIA***   
  
---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO  
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO,   
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO  
          
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF  
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R  
    ON BF.COD_FISCALE = R.COD_FISCALE  
    AND BF.RETE = R.RETE  
    AND BF.id_AREA IN ('Liq','Cc')  
    AND BF.id_AREA=R.AREA  
    WHERE BF.TIPO_PRODOTTO='CC'  
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)  
  
--***INIZIO INTERVENTI OMNIA***   
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO  
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO,   
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO  
          
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF  
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R  
    ON BF.COD_FISCALE = R.COD_FISCALE  
    AND BF.RETE = R.RETE  
    AND BF.id_AREA IN ('Liq','Self')  
    AND BF.id_AREA=R.AREA  
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')  
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)  
--***FINE INTERVENTI OMNIA***   
  
--aggiunta Emanuele  
UPDATE   
c6martperiodico.patrimonio_bf  
SET id_area = 'Liq'  
WHERE id_area = 'LIQ'  
  
  
UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
SET  
 NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))  
  
  
  -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_BF_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_BF_3'  
  )  
   
insert into c6martperiodico.test_quality   
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'  
from   
(SELECT * FRom c6martperiodico.patrimonio_bf ) a  
inner join  
(SELECT * FRom c6martperiodico.patrimonio_bf ) b  
on a.cod_fiscale = b.cod_fiscale   
and a.rete= b.rete  
and a.id_area = b.id_area  
where a.id_area <> 'Inv'  
and a.ordinamento_progetto <> b.ordinamento_progetto  
  
exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2  
  
  
  
END  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_20170421_4b_prometeria_err_fix]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
---------------------------------------------------------------------------
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_20170421_4b_prometeria_err_fix]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA_v AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto

exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END







GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_20171019_err]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
---------------------------------------------------------------------------
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_20171019_err]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			-- 20170421 elimina char ; dal nome progetto che causa errore 2000 durante elaborazione prometeia exe 
			--ELSE LTRIM(RTRIM(CON.nomeProgetto))
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA_v AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto

exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_BK_eligoTitoli]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin = 'EURO00000009'
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
				AND TCP.CODINT = CONS.CODINTERNO
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
			TSCA.DTRIF <> 0
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
WHERE ISIN = 'EURO00000009'
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN = 'EURO00000009'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto




END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_BKP_20231017]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
---------------------------------------------------------------------------
CREATE    procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_BKP_20231017]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			-- 20170421 elimina char ; dal nome progetto che causa errore 2000 durante elaborazione prometeia exe 
			--ELSE LTRIM(RTRIM(CON.nomeProgetto))
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO,
		NULL as ClienteDB,
		CON.CHIAVEPTFMOD as CHIAVEPTFMOD
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO,
		NULL as ClienteDB,
		CON.CHIAVEPTFMOD as CHIAVEPTFMOD
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO]
		   ,[ClienteDB])
		SELECT distinct P.[RETE] --aggiunto distinct
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
		   ,[ClienteDB]
		   ,[ChiavePtfMod]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT distinct--aggiunto distinct
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO,
		NULL as ClienteDB,
		patr.CHIAVEPTFMOD as CHIAVEPTFMOD
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        --C6StagingPeriodico.RP_CONSULENZA_v AS CONS 
		C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


--update correzione prodotti SMA con ID_AREA=Liq 
-- SPIEGAZIONE 20230502 poiche non venivano agganciati i progetti, queste persone avevano due prodotti SMA con nomi progetti differenti (uno a Default e uno a NULL)
-- ma sulla w6clirep non ci puo essere uno stesso prodotto nell'area liquidita cosi si danno i nomi progetti uguali e si risolve il problema
	update C6MartPeriodico.PATRIMONIO_BF 
	set NOME_PROGETTO='Default'
	where id_area='Liq'and TIPO_PRODOTTO='CC' and NOME_PROGETTO is null and COD_SOTTOPRODOTTO='SMA'



--modifica 05/09/2023 per togliere i prodotti con Codice Interno GD ai Fideuram Direct/ Direct Banker

update b
set b.clienteDB='S'
from C6MartPeriodico.PATRIMONIO_BF b inner join C6StagingPeriodico.APPO_CONTRATTI v on b.rete=v.rete and b.COD_FISCALE=v.COD_FISCALE where v.TIP_CONTRATTO=3 

delete from C6Mart.PATRIMONIO_BF where COD_INTERNO='GD' and clienteDB='S'

--fine modifica 05/09/2023 per togliere i prodotti con Codice Interno GD ai Fideuram Direct/ Direct Banker




		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto

exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_DaCancellare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
---------------------------------------------------------------------------
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_DaCancellare]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			-- 20170421 elimina char ; dal nome progetto che causa errore 2000 durante elaborazione prometeia exe 
			--ELSE LTRIM(RTRIM(CON.nomeProgetto))
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI_v SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        --C6StagingPeriodico.RP_CONSULENZA_v AS CONS 
		C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))

	-- Modifica del 21/01/2019 per escludere i prodotti relativi alle aree LIGHT e VOID
	
	-- backup della tabella C6MartPeriodico.Patrimonio_BF
	exec CreaTabellaBackUp 'Patrimonio_BF', 'C6MartPeriodico'

	delete C6MartPeriodico.Patrimonio_BF where id_area in ('LIGHT', 'VOID')

	-- Fine modifica del 21/01/2019

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto

exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_FC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_FC]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin = 'EURO00000009'
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
				AND TCP.CODINT = CONS.CODINTERNO
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
			TSCA.DTRIF <> 0
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
WHERE ISIN = 'EURO00000009'
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN = 'EURO00000009'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto




END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_pre_selective]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_pre_selective_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_pre_selective_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_pre_selective_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1_2'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_pre_selective_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_pre_selective_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_2'
		)
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_pre_selective_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_pre_selective_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto

exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_TEST]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_BF_TEST]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
TRUNCATE TABLE C6MARTPERIODICO.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	and con.cod_fiscale = 'GSPNGL31C04B157Q'
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE (SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin = 'EURO00000009')
    --FINE INTERVENTI OMNIA*** 
   	and con.cod_fiscale = 'GSPNGL31C04B157Q'

--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)


	INSERT INTO C6MARTPERIODICO.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReportTEST] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MARTPERIODICO.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MARTPERIODICO.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Elaborazione trimestrale'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodico.Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        C6StagingPeriodico.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
				AND TCP.CODINT = CONS.CODINTERNO
		   INNER JOIN
			C6StagingPeriodico.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
			TSCA.DTRIF <> 0
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN = 'EURO00000009'
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
c6martperiodico.patrimonio_bf
SET Id_area = 'Self'
WHERE ISIN = 'EURO00000009'
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MARTPERIODICO.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MARTPERIODICO.PATRIMONIO_BF BF
    inner join C6STAGINGPERIODICO.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN = 'EURO00000009'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
c6martperiodico.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MARTPERIODICO.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
insert into c6martperiodico.test_quality 
select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto




END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
--select * from C6MartPeriodico.patrimonio_immobiliare  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_IMMOBILIARE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_IMMOBILIARE  
    
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE]  
     ([RETE]  
     ,[COD_FISCALE]  
     ,[DESCRIZIONE]  
     ,[TIPOLOGIA]  
     ,[LOCALITA]  
     ,[PROVINCIA]  
     ,[CAP]  
     ,[NAZIONE]  
     ,[VALORE_STIMATO]  
     ,[AFFITTO]  
     ,[NOTE]  
     ,[DIV_RIFERIMENTO]  
     ,[CAMBIO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
 SELECT   
  C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,  
  C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione  
  B.TIPOLOGIA,   
  B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto  
  B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia  
  NULL AS CAP,  
  NULL AS NAZIONE,  
  B.VALOREIMMOBILETOTALE,   
  B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua  
  NULL AS NOTE,  
  NULL AS DIV_RIFERIMENTO,  
  NULL AS CAMBIO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
    
  FROM C6STAGINGPERIODICO.RP_PATRIMONIOTERZI A  
  JOIN C6STAGINGPERIODICO.RP_DETTIMMOBILIARE B  
   ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI  
  JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] C  
   ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB  
  WHERE A.IDTIPOPRODOTTO = 'IM'  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE'  
  )  
  
END  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
--select * from C6MartPeriodico.patrimonio_immobiliare  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_IMMOBILIARE',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_IMMOBILIARE_20190205_ProQuota  
    
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE_20190205_ProQuota]  
     ([RETE]  
     ,[COD_FISCALE]  
     ,[DESCRIZIONE]  
     ,[TIPOLOGIA]  
     ,[LOCALITA]  
     ,[PROVINCIA]  
     ,[CAP]  
     ,[NAZIONE]  
     ,[VALORE_STIMATO]  
     ,[AFFITTO]  
     ,[NOTE]  
     ,[DIV_RIFERIMENTO]  
     ,[CAMBIO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB]
	 -- modifica del 05/02/2019 per il ProQuota
	,[VALORE_STIMATO_PROQUOTA]
	,[PROQUOTA]
	 -- fine modifica del 05/02/2019 per il ProQuota
	 
	 )  
 SELECT   
  C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,  
  C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione  
  B.TIPOLOGIA,   
  B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto  
  B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia  
  NULL AS CAP,  
  NULL AS NAZIONE,  
  B.VALOREIMMOBILETOTALE,   
  B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua  
  NULL AS NOTE,  
  NULL AS DIV_RIFERIMENTO,  
  NULL AS CAMBIO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB
  -- modifica del 05/02/2019 per il ProQuota
	,B.valoreImmobileProQuota,
	B.ProQuota
  -- fine modifica del 05/02/2019 per il ProQuota
    
  FROM C6STAGINGPERIODICO.RP_PATRIMONIOTERZI A  
  JOIN C6STAGINGPERIODICO.RP_DETTIMMOBILIARE_20190205_ProQuota B  
   ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI  
  JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] C  
   ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB  
  WHERE A.IDTIPOPRODOTTO = 'IM'  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE'  
  )  
  
END  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--select * from C6MartPeriodico.patrimonio_immobiliare
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_IMMOBILIARE_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_IMMOBILIARE
		

	INSERT INTO [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[DESCRIZIONE]
		   ,[TIPOLOGIA]
		   ,[LOCALITA]
		   ,[PROVINCIA]
		   ,[CAP]
		   ,[NAZIONE]
		   ,[VALORE_STIMATO]
		   ,[AFFITTO]
		   ,[NOTE]
		   ,[DIV_RIFERIMENTO]
		   ,[CAMBIO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT 
		C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,
		C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,
		B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione
		B.TIPOLOGIA, 
		B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto
		B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia
		NULL AS CAP,
		NULL AS NAZIONE,
		B.VALOREIMMOBILETOTALE, 
		B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua
		NULL AS NOTE,
		NULL AS DIV_RIFERIMENTO,
		NULL AS CAMBIO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
		
		FROM C6STAGINGPERIODICO.RP_PATRIMONIOTERZI A
		JOIN C6STAGINGPERIODICO.RP_DETTIMMOBILIARE B
			ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI
		JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] C
			ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB
		WHERE A.IDTIPOPRODOTTO = 'IM'
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE_pre_selective'
		)

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE_ProQuota]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--select * from C6MartPeriodicO.PATRIMONIO_IMMOBILIARE_ProQuota
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_IMMOBILIARE_ProQuota]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_IMMOBILIARE_PROQUOTA',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_IMMOBILIARE_ProQuota

	INSERT INTO [C6MartPeriodico].[PATRIMONIO_IMMOBILIARE_ProQuota](
	[RETE],
	[COD_FISCALE],
	Descrizione,
	Tipologia,
	Localita,
	AffittoPercepito, 
	[VALORE_STIMATO],
	Totale,
	TotaleAffitto,
	[TIPOLOGIA_DIRITTO],
	[PROQUOTA],
	[VALORE_STIMATO_PROQUOTA],
	TotaleProQuota	
	)

	select
		vp.Rete,
		vp.Cod_Fiscale,
		vp.Descrizione ,
		vp.Tipologia,
		vp.Localita,
		vp.AffittoPercepito,
		vp.Valore,
		vp.Totale,
		vp.TotaleAffitto,
		vp.TipologiaDiritto, 
		vp.ProQuota,
		vp.Valore_ProQuota,
		vp.TotaleProQuota
	from
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] vc
			inner join C6MartPeriodico.vPatrimonioImmobiliare vp
			on vc.rete = vp.rete
			and vc.cod_fiscale = vp.cod_fiscale
	
		--select vContratti.Rete,
		--	vContratti.Cod_Fiscale, 
		--	dett.valoreImmobileTotale as Valore_Stimato,
		--	coin.moltiplicatoreDiritto * dett.valoreImmobileTotale as Valore_Stimato_ProQuota,
		--	coin.moltiplicatoreDiritto * 100 as ProQuota,
		--	dett.TipologiaDiritto
		--from
		--	C6MartPeriodico.vContrattiPerGenerazioneReport vContratti
		--	--(select top 100 rete, cod_fiscale from C6MartPeriodico.vContratti where Cod_Fiscale = 'BRNVLM35H61L407Q') vContratti
		--		inner join [CONSUNI].[ConsulenzaUnica].dbo.vInfoCliente vInfo
		--			on vContratti.Cod_Fiscale = vInfo.CodFis
		--			inner join [CONSUNI].[ConsulenzaUnica].dbo.Cointestatari coin
		--			on vInfo.chiaveClientePB = coin.chiaveClientePB
		--				inner join [CONSUNI].[ConsulenzaUnica].dbo.DettImmobiliare dett 
		--				on dett.chiaveProdottoTerzi = coin.chiaveProdottoTerzi
		--union

		--select  vContratti.Rete,
		--	vContratti.Cod_Fiscale,
		--	dett.valoreImmobileTotale as Valore_Stimato,
		--	dett.valoreImmobileTotale as Valore_Stimato_ProQuota,
		--	100 as ProQuota,
		--	isnull(dett.TipologiaDiritto, 'Proprietà') as TipologiaDiritto
		--from
		--	C6MartPeriodico.vContrattiPerGenerazioneReport vContratti
		--	--(select top 100 rete, cod_fiscale from C6MartPeriodico.vContratti where Cod_Fiscale = 'BRNVLM35H61L407Q') vContratti
		--		inner join [CONSUNI].[ConsulenzaUnica].dbo.vInfoCliente vInfo
		--			on vContratti.Cod_Fiscale = vInfo.CodFis
		--			inner join [CONSUNI].[ConsulenzaUnica].dbo.PatrimonioTerzi coin
		--			on vInfo.chiaveClientePB = coin.chiaveClientePB
		--				inner join [CONSUNI].[ConsulenzaUnica].dbo.DettImmobiliare dett 
		--				on dett.chiaveProdottoTerzi = coin.chiaveProdottoTerzi
	-- Log esecuzione

	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE_PROQUOTA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE_PROQUOTA'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_TERZI  
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_TERZI]  
     (  
     [RETE]  
     ,[COD_FISCALE]  
     ,[NUM_POLIZZA]  
     ,[TIPO_POLIZZA]  
     ,[TIPO_PRODOTTO]  
     ,[TIPO_PRODOTTO2]  
     ,[COD_PRODOTTO]  
     ,[COD_PRODOTTO_TERZI]  
     ,[INTERMEDIARIO]  
     ,[DATA_SOTTOSCRIZIONE]  
     ,[DATA_SCADENZA]  
     ,[FREQ_RATA]  
     ,[DURATA_POLIZZA]  
     ,[PREMIO]  
     ,[ALIQUOTA]  
     ,[DATA_SOTT_FP]  
     ,[DATA_REGOLAMENTO]  
     ,[QUANTITA]  
     ,[PREZZO]  
     ,[CTV]  
     ,[VERSATO_NETTO]  
     ,[DIV_REGOLAMENTO]  
     ,[CAMBIO]  
     ,[DESCR_GRUPPO_PRODOTTO]  
   ,[STRTYPE]  
   ,[COMPLEX]  
   ,[EMITTENTE]  
   ,[CHIAVE_THR]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
  
 SELECT   
  VCONTRATTI.rete AS RETE,  
  VCONTRATTI.COD_FISCALE AS COD_FISCALE,  
  NULL AS NUM_POLIZZA,  
  (CASE RP_DettProdottiTerzi.tipoPolizza  
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'  
       WHEN 'MistaImmediata' THEN 'Mista immediata'  
       WHEN 'VitaIntera' THEN 'Vita intera'  
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'  
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'  
       ELSE RP_DettProdottiTerzi.tipoPolizza  
     END) AS TIPO_POLIZZA,  
  COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere  
  NULL AS TIPO_PRODOTTO2,  
  isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,   
  ISNULL(MAPPING.Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$  
  RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,  
  case when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'  
     then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV)   
     when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'  
     then RP_PatrimonioTerzi.DATACTV  
     else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV)   
  end AS DATA_SOTTOSCRIZIONE,  
  RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,  
  RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,  
  NULL AS DURATA_POLIZZA,  
  NULL AS PREMIO,  
  NULL AS ALIQUOTA,  
  NULL AS DATA_SOTT_FP,  
  NULL AS DATA_REGOLAMENTO,  
  NULL AS QUANTITA,  
  NULL AS PREZZO, 
   
  --------------------- intervento del 15/03/2018 per gestire ctv e capitale_investito più grandi del consentito
		  --RP_PatrimonioTerzi.ctv AS CTV,  
		  --RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,  
  case 
		   when RP_PatrimonioTerzi.ctv > 999999999999.00 then 999999999999.00
		   else RP_PatrimonioTerzi.ctv
		end  AS CTV,

		case 
		   when RP_DettProdottiTerzi.capitaleInvestito > 999999999999.00 then 999999999999.00
		   else RP_DettProdottiTerzi.capitaleInvestito
		end  AS VERSATO_NETTO,


  ---------------------  fine intervento del 15/3/2018


  NULL AS DIV_REGOLAMENTO,  
  NULL AS CAMBIO,  
  CASE   
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato'   
     AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))  
    THEN 'Prodotti di Tipo amministrato (escluso C/C)'  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')  
     or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))  
    THEN 'Assicurativi Unit/Index Linked'
	/* 20170427 aggiunto Assets.FinancialAssets.OtherFin e Assets.FinancialAssets.OtherAss al gruppo Portafoglio Generico */   	
   --WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
     WHEN RP_PatrimonioTerzi.tipoProd in ('Assets.FinancialAssets.Other', 'Assets.FinancialAssets.OtherFin', 'Assets.FinancialAssets.OtherAss')
    THEN 'Portafoglio Generico'  
   WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')    
    THEN NULL  
   ELSE NULL   
  END AS DESCR_GRUPPO_PRODOTTO,  
  --'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta  
  RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)  
  RP_CatalogoProdotti.Complessita AS COMPLEX,  
  RP_AnEmittente.Descrizione AS EMITTENTE,  
  MAPPING.Temp_oidProd AS chiave_thr, --da rivedere  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
 INNER JOIN  
  C6StagingPeriodico.RP_PatrimonioTerzi  
  ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB  
 INNER JOIN  
  C6StagingPeriodico.RP_DettProdottiTerzi  
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi  
 LEFT JOIN    
        C6StagingPeriodico.RP_MappingTerzi MAPPING    
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = MAPPING.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6StagingPeriodico.RP_DettProdottiTerzi.alberatura = C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura  
 LEFT JOIN  
  C6StagingPeriodico.RP_CatalogoProdotti ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdotto = C6StagingPeriodico.RP_CatalogoProdotti.ChiaveProdotto  
 LEFT JOIN  
  C6StagingPeriodico.RP_AnEmittente ON C6StagingPeriodico.RP_CatalogoProdotti.Emittente = C6StagingPeriodico.RP_AnEmittente.Emittente  
  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_TERZI'  
  )  
  
END  
  
  
  




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI_20170427_Patr3]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI_20170427_Patr3]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_TERZI  
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_TERZI]  
     (  
     [RETE]  
     ,[COD_FISCALE]  
     ,[NUM_POLIZZA]  
     ,[TIPO_POLIZZA]  
     ,[TIPO_PRODOTTO]  
     ,[TIPO_PRODOTTO2]  
     ,[COD_PRODOTTO]  
     ,[COD_PRODOTTO_TERZI]  
     ,[INTERMEDIARIO]  
     ,[DATA_SOTTOSCRIZIONE]  
     ,[DATA_SCADENZA]  
     ,[FREQ_RATA]  
     ,[DURATA_POLIZZA]  
     ,[PREMIO]  
     ,[ALIQUOTA]  
     ,[DATA_SOTT_FP]  
     ,[DATA_REGOLAMENTO]  
     ,[QUANTITA]  
     ,[PREZZO]  
     ,[CTV]  
     ,[VERSATO_NETTO]  
     ,[DIV_REGOLAMENTO]  
     ,[CAMBIO]  
     ,[DESCR_GRUPPO_PRODOTTO]  
   ,[STRTYPE]  
   ,[COMPLEX]  
   ,[EMITTENTE]  
   ,[CHIAVE_THR]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
  
 SELECT   
  VCONTRATTI.rete AS RETE,  
  VCONTRATTI.COD_FISCALE AS COD_FISCALE,  
  NULL AS NUM_POLIZZA,  
  (CASE RP_DettProdottiTerzi.tipoPolizza  
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'  
       WHEN 'MistaImmediata' THEN 'Mista immediata'  
       WHEN 'VitaIntera' THEN 'Vita intera'  
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'  
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'  
       ELSE RP_DettProdottiTerzi.tipoPolizza  
     END) AS TIPO_POLIZZA,  
  COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere  
  NULL AS TIPO_PRODOTTO2,  
  isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,   
  ISNULL(MAPPING.Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$  
  RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,  
  case when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'  
     then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV)   
     when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'  
     then RP_PatrimonioTerzi.DATACTV  
     else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV)   
  end AS DATA_SOTTOSCRIZIONE,  
  RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,  
  RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,  
  NULL AS DURATA_POLIZZA,  
  NULL AS PREMIO,  
  NULL AS ALIQUOTA,  
  NULL AS DATA_SOTT_FP,  
  NULL AS DATA_REGOLAMENTO,  
  NULL AS QUANTITA,  
  NULL AS PREZZO,  
  RP_PatrimonioTerzi.ctv AS CTV,  
  RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS CAMBIO,  
  CASE   
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato'   
     AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))  
    THEN 'Prodotti di Tipo amministrato (escluso C/C)'  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')  
     or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))  
    THEN 'Assicurativi Unit/Index Linked'  
   WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'    
    THEN 'Portafoglio Generico'  
   WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')    
    THEN NULL  
   ELSE NULL   
  END AS DESCR_GRUPPO_PRODOTTO,  
  --'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta  
  RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)  
  RP_CatalogoProdotti.Complessita AS COMPLEX,  
  RP_AnEmittente.Descrizione AS EMITTENTE,  
  MAPPING.Temp_oidProd AS chiave_thr, --da rivedere  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
 INNER JOIN  
  C6StagingPeriodico.RP_PatrimonioTerzi  
  ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB  
 INNER JOIN  
  C6StagingPeriodico.RP_DettProdottiTerzi  
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi  
 LEFT JOIN    
        C6StagingPeriodico.RP_MappingTerzi MAPPING    
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = MAPPING.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6StagingPeriodico.RP_DettProdottiTerzi.alberatura = C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura  
 LEFT JOIN  
  C6StagingPeriodico.RP_CatalogoProdotti ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdotto = C6StagingPeriodico.RP_CatalogoProdotti.ChiaveProdotto  
 LEFT JOIN  
  C6StagingPeriodico.RP_AnEmittente ON C6StagingPeriodico.RP_CatalogoProdotti.Emittente = C6StagingPeriodico.RP_AnEmittente.Emittente  
  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_TERZI'  
  )  
  
END  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI_20180315]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI_20180315]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_TERZI  
  
 INSERT INTO [C6MartPeriodico].[PATRIMONIO_TERZI]  
     (  
     [RETE]  
     ,[COD_FISCALE]  
     ,[NUM_POLIZZA]  
     ,[TIPO_POLIZZA]  
     ,[TIPO_PRODOTTO]  
     ,[TIPO_PRODOTTO2]  
     ,[COD_PRODOTTO]  
     ,[COD_PRODOTTO_TERZI]  
     ,[INTERMEDIARIO]  
     ,[DATA_SOTTOSCRIZIONE]  
     ,[DATA_SCADENZA]  
     ,[FREQ_RATA]  
     ,[DURATA_POLIZZA]  
     ,[PREMIO]  
     ,[ALIQUOTA]  
     ,[DATA_SOTT_FP]  
     ,[DATA_REGOLAMENTO]  
     ,[QUANTITA]  
     ,[PREZZO]  
     ,[CTV]  
     ,[VERSATO_NETTO]  
     ,[DIV_REGOLAMENTO]  
     ,[CAMBIO]  
     ,[DESCR_GRUPPO_PRODOTTO]  
   ,[STRTYPE]  
   ,[COMPLEX]  
   ,[EMITTENTE]  
   ,[CHIAVE_THR]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
  
 SELECT   
  VCONTRATTI.rete AS RETE,  
  VCONTRATTI.COD_FISCALE AS COD_FISCALE,  
  NULL AS NUM_POLIZZA,  
  (CASE RP_DettProdottiTerzi.tipoPolizza  
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'  
       WHEN 'MistaImmediata' THEN 'Mista immediata'  
       WHEN 'VitaIntera' THEN 'Vita intera'  
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'  
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'  
       ELSE RP_DettProdottiTerzi.tipoPolizza  
     END) AS TIPO_POLIZZA,  
  COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere  
  NULL AS TIPO_PRODOTTO2,  
  isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,   
  ISNULL(MAPPING.Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$  
  RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,  
  case when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'  
     then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV)   
     when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'  
     then RP_PatrimonioTerzi.DATACTV  
     else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV)   
  end AS DATA_SOTTOSCRIZIONE,  
  RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,  
  RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,  
  NULL AS DURATA_POLIZZA,  
  NULL AS PREMIO,  
  NULL AS ALIQUOTA,  
  NULL AS DATA_SOTT_FP,  
  NULL AS DATA_REGOLAMENTO,  
  NULL AS QUANTITA,  
  NULL AS PREZZO,  
  RP_PatrimonioTerzi.ctv AS CTV,  
  RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS CAMBIO,  
  CASE   
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato'   
     AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))  
    THEN 'Prodotti di Tipo amministrato (escluso C/C)'  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')  
     or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))  
    THEN 'Assicurativi Unit/Index Linked'
	/* 20170427 aggiunto Assets.FinancialAssets.OtherFin e Assets.FinancialAssets.OtherAss al gruppo Portafoglio Generico */   	
   --WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
     WHEN RP_PatrimonioTerzi.tipoProd in ('Assets.FinancialAssets.Other', 'Assets.FinancialAssets.OtherFin', 'Assets.FinancialAssets.OtherAss')
    THEN 'Portafoglio Generico'  
   WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')    
    THEN NULL  
   ELSE NULL   
  END AS DESCR_GRUPPO_PRODOTTO,  
  --'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta  
  RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)  
  RP_CatalogoProdotti.Complessita AS COMPLEX,  
  RP_AnEmittente.Descrizione AS EMITTENTE,  
  MAPPING.Temp_oidProd AS chiave_thr, --da rivedere  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
 INNER JOIN  
  C6StagingPeriodico.RP_PatrimonioTerzi  
  ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB  
 INNER JOIN  
  C6StagingPeriodico.RP_DettProdottiTerzi  
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi  
 LEFT JOIN    
        C6StagingPeriodico.RP_MappingTerzi MAPPING    
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = MAPPING.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6StagingPeriodico.RP_DettProdottiTerzi.alberatura = C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura  
 LEFT JOIN  
  C6StagingPeriodico.RP_CatalogoProdotti ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdotto = C6StagingPeriodico.RP_CatalogoProdotti.ChiaveProdotto  
 LEFT JOIN  
  C6StagingPeriodico.RP_AnEmittente ON C6StagingPeriodico.RP_CatalogoProdotti.Emittente = C6StagingPeriodico.RP_AnEmittente.Emittente  
  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_TERZI'  
  )  
  
END  
  
  
  




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_TERZI_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_TERZI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_TERZI

	INSERT INTO [C6MartPeriodico].[PATRIMONIO_TERZI]
		   (
		   [RETE]
		   ,[COD_FISCALE]
		   ,[NUM_POLIZZA]
		   ,[TIPO_POLIZZA]
		   ,[TIPO_PRODOTTO]
		   ,[TIPO_PRODOTTO2]
		   ,[COD_PRODOTTO]
		   ,[COD_PRODOTTO_TERZI]
		   ,[INTERMEDIARIO]
		   ,[DATA_SOTTOSCRIZIONE]
		   ,[DATA_SCADENZA]
		   ,[FREQ_RATA]
		   ,[DURATA_POLIZZA]
		   ,[PREMIO]
		   ,[ALIQUOTA]
		   ,[DATA_SOTT_FP]
		   ,[DATA_REGOLAMENTO]
		   ,[QUANTITA]
		   ,[PREZZO]
		   ,[CTV]
		   ,[VERSATO_NETTO]
		   ,[DIV_REGOLAMENTO]
		   ,[CAMBIO]
		   ,[DESCR_GRUPPO_PRODOTTO]
			,[STRTYPE]
			,[COMPLEX]
			,[EMITTENTE]
			,[CHIAVE_THR]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		VCONTRATTI.rete AS RETE,
		VCONTRATTI.COD_FISCALE AS COD_FISCALE,
		NULL AS NUM_POLIZZA,
		(CASE RP_DettProdottiTerzi.tipoPolizza
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'
       WHEN 'MistaImmediata' THEN 'Mista immediata'
       WHEN 'VitaIntera' THEN 'Vita intera'
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'
       ELSE RP_DettProdottiTerzi.tipoPolizza
     END) AS TIPO_POLIZZA,
		COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere
		NULL AS TIPO_PRODOTTO2,
		isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO, 
		ISNULL(MAPPING.Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$
		RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,
		case when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'
		   then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV) 
		   when C6StagingPeriodico.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'
		   then RP_PatrimonioTerzi.DATACTV
		   else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV) 
		end AS DATA_SOTTOSCRIZIONE,
		RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,
		RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,
		NULL AS DURATA_POLIZZA,
		NULL AS PREMIO,
		NULL AS ALIQUOTA,
		NULL AS DATA_SOTT_FP,
		NULL AS DATA_REGOLAMENTO,
		NULL AS QUANTITA,
		NULL AS PREZZO,
		RP_PatrimonioTerzi.ctv AS CTV,
		RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,
		NULL AS DIV_REGOLAMENTO,
		NULL AS CAMBIO,
		CASE 
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali' 
				THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato' 
					AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))
				THEN 'Prodotti di Tipo amministrato (escluso C/C)'
			WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')
				 or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita' 
					 and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))
				THEN 'Assicurativi Unit/Index Linked'
			WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
				THEN 'Portafoglio Generico'
			WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')  
				THEN NULL
			ELSE NULL 
		END AS DESCR_GRUPPO_PRODOTTO,
		--'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta
		RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)
		RP_CatalogoProdotti.Complessita AS COMPLEX,
		RP_AnEmittente.Descrizione AS EMITTENTE,
		MAPPING.Temp_oidProd AS chiave_thr, --da rivedere
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI
	INNER JOIN
		C6StagingPeriodico.RP_PatrimonioTerzi
		ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB
	INNER JOIN
		C6StagingPeriodico.RP_DettProdottiTerzi
		ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
	LEFT JOIN 	
        C6StagingPeriodico.RP_MappingTerzi MAPPING		
		ON RP_PatrimonioTerzi.chiaveProdottoTerzi = MAPPING.chiaveProdottoTerzi
	INNER JOIN
		C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6StagingPeriodico.RP_DettProdottiTerzi.alberatura = C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura
	LEFT JOIN
		C6StagingPeriodico.RP_CatalogoProdotti ON C6StagingPeriodico.RP_DettProdottiTerzi.chiaveProdotto = C6StagingPeriodico.RP_CatalogoProdotti.ChiaveProdotto
	LEFT JOIN
		C6StagingPeriodico.RP_AnEmittente ON C6StagingPeriodico.RP_CatalogoProdotti.Emittente = C6StagingPeriodico.RP_AnEmittente.Emittente

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_TERZI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_TERZI_pre_selective'
		)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_MOD',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PIRAMIDE_MOD

	INSERT INTO [C6MartPeriodico].[PIRAMIDE_MOD]
		   (
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		rp_pirmod.area AS ID_AREA,
		-- 2016-12-02: nomeProgetto sempre presente e differente da NULL 
		--case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then rp_pirmod.nomeProgetto
        --  ELSE NULL END
		-- fine 
		rp_pirmod.nomeProgetto AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
		rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
	    --convert(int,REPLACE(durata,'anni',''))  AS ORIZZ_TEMP_NUM,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
        --rp_pirmod.durata AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
INNER JOIN
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		and rp_pirmod.DtFineValidita > getdate()		
		-- modifica del 30/11/2016 - il tipoProgetto non è più un campo significativo; ecludo le aree light e void
		   --and ((rp_pirmod.area = 'Inv') OR (rp_pirmod.area <> 'Inv' and rp_pirmod.tipoProgetto = 0))
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')
		-- fine -- modifica del 30/11/2016   
        
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_DM_PIRAMIDE_MOD'
		)



-------------------------------------> modifica del 19/1/2017 per inserire il record di aggregazione per l'area 'Pre'

	
	/* 
				PER OGNI CF MI ESTRAGGO SOLO I RECORD DELL'AREA 'PRE1' E 'PRE2' RINOMINANDOLI COME 'PRE'
				PER POTERLI POI AGGREGARE
	*/
	
	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		CASE WHEN rp_pirmod.area IN ('Pre','Pre1','Pre2') THEN 'Pre'
			else rp_pirmod.area
			END  AS ID_AREA,
		rp_pirmod.nomeProgetto AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
	    rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB

		into #appo

	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
    INNER JOIN
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		AND rp_pirmod.area   in ('Pre','Pre1','Pre2')
		and rp_pirmod.DtFineValidita > getdate()		
	
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')


     /* 
	 
			ORA INSERISCO UN SOLO RECORD 'PRE' PER OGNI CF COME AGGREGAZIONE DELL'AREE 'PRE1' E 'PRE2'
			DOPO QUESTA INSERT, PER OGNI CF, HO DI NUOVO 'PRE', 'PRE1', E 'PRE2' 
	 
	 */

		   insert into [C6MartPeriodico].[PIRAMIDE_MOD]
			(
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	select 
			rete,
			cod_fiscale,
			id_area,
			nome_progetto,
			tipo_progetto,
			sum(perc_area) as perc_area,
			sum(ctv_progetto) as ctv_progetto,
			sum(ctv_area) as ctv_area,
			orizz_temp_num,
			orizz_temp,
			sum(ctv_totale) as ctv_totale,
			stato_consulenza,
			data_stato_cons,
			data_migr_cons,
			id_contratto,
			max(ordinamento_progetto),
			id_elab,
			tipo_elab
		from #appo
		group by 
		rete,
		cod_fiscale,
		id_area,
		nome_progetto,
		tipo_progetto,
		orizz_temp_num,
		orizz_temp,
		stato_consulenza,
		data_stato_cons,
		data_migr_cons,
		id_contratto,id_elab,
			tipo_elab

---------------------------------------------------------------> FINE MODIFICA DEL 19/1/2017



END
-- select durata, convert(int,REPLACE(durata,'anni','')) FROM C6StagingPeriodico.RP_ProgettiPiramideModello where durata is not null 






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD_20161202]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD_20161202]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_MOD',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PIRAMIDE_MOD

	INSERT INTO [C6MartPeriodico].[PIRAMIDE_MOD]
		   (
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		rp_pirmod.area AS ID_AREA,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then rp_pirmod.nomeProgetto
          ELSE NULL END
		 AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
		rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
	    --convert(int,REPLACE(durata,'anni',''))  AS ORIZZ_TEMP_NUM,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
        --rp_pirmod.durata AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
INNER JOIN
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		and rp_pirmod.DtFineValidita > getdate()		
		-- modifica del 30/11/2016 - il tipoProgetto non è più un campo significativo; ecludo le aree light e void
		   --and ((rp_pirmod.area = 'Inv') OR (rp_pirmod.area <> 'Inv' and rp_pirmod.tipoProgetto = 0))
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')
		-- fine -- modifica del 30/11/2016   
        
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PIRAMIDE_MOD'
		)

END
-- select durata, convert(int,REPLACE(durata,'anni','')) FROM C6StagingPeriodico.RP_ProgettiPiramideModello where durata is not null 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD_20170119]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD_20170119]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_MOD',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PIRAMIDE_MOD

	INSERT INTO [C6MartPeriodico].[PIRAMIDE_MOD]
		   (
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		rp_pirmod.area AS ID_AREA,
		-- 2016-12-02: nomeProgetto sempre presente e differente da NULL 
		--case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then rp_pirmod.nomeProgetto
        --  ELSE NULL END
		-- fine 
		rp_pirmod.nomeProgetto AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
		rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
	    --convert(int,REPLACE(durata,'anni',''))  AS ORIZZ_TEMP_NUM,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
        --rp_pirmod.durata AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
INNER JOIN
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		and rp_pirmod.DtFineValidita > getdate()		
		-- modifica del 30/11/2016 - il tipoProgetto non è più un campo significativo; ecludo le aree light e void
		   --and ((rp_pirmod.area = 'Inv') OR (rp_pirmod.area <> 'Inv' and rp_pirmod.tipoProgetto = 0))
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')
		-- fine -- modifica del 30/11/2016   
        
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PIRAMIDE_MOD'
		)

END
-- select durata, convert(int,REPLACE(durata,'anni','')) FROM C6StagingPeriodico.RP_ProgettiPiramideModello where durata is not null 




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PIRAMIDE_MOD_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_MOD_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PIRAMIDE_MOD

	INSERT INTO [C6MartPeriodico].[PIRAMIDE_MOD]
		   (
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		rp_pirmod.area AS ID_AREA,
		-- 2016-12-02: nomeProgetto sempre presente e differente da NULL 
		--case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then rp_pirmod.nomeProgetto
        --  ELSE NULL END
		-- fine 
		rp_pirmod.nomeProgetto AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
		rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
	    --convert(int,REPLACE(durata,'anni',''))  AS ORIZZ_TEMP_NUM,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
        --rp_pirmod.durata AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
INNER JOIN
		[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		and rp_pirmod.DtFineValidita > getdate()		
		-- modifica del 30/11/2016 - il tipoProgetto non è più un campo significativo; ecludo le aree light e void
		   --and ((rp_pirmod.area = 'Inv') OR (rp_pirmod.area <> 'Inv' and rp_pirmod.tipoProgetto = 0))
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')
		-- fine -- modifica del 30/11/2016   
        
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PIRAMIDE_MOD_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PIRAMIDE_MOD_pre_selective'
		)

END
-- select durata, convert(int,REPLACE(durata,'anni','')) FROM C6StagingPeriodico.RP_ProgettiPiramideModello where durata is not null 




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_PIRAMIDE_VERT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 09/08/2008
-- Description:	
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_DM_PIRAMIDE_VERT]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = [C6MartPeriodico].GETIDELAB()
	SET @TIPO_ELAB = [C6MartPeriodico].GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_VERT',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6MartPeriodico].[PIRAMIDE_VERT]



	INSERT INTO [C6MartPeriodico].[PIRAMIDE_VERT]
           ([RETE]
           ,[COD_FISCALE]
           ,[ID_AREA]
           ,[CTV_AREA]
           ,[ID_ELAB]
           ,[TIPO_ELAB])
	SELECT DISTINCT
		V.rete AS RETE,
		ISNULL(V.COD_FISCALE, '') AS COD_FISCALE,
		CASE WHEN A.AREA IS NULL THEN M_A.AREA ELSE A.AREA END AS ID_AREA,
		CASE WHEN A.ctvArea IS NULL THEN M_A.ctvArea ELSE A.ctvArea END AS CTV_AREA,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
       [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] V Left Join 
       (C6StagingPeriodico.RP_Pianificazione P
        INNER JOIN C6StagingPeriodico.RP_Area A
        ON P.CHIAVECONSULENZA = A.CHIAVECONSULENZA) 
       ON V.CHIAVECLIENTEPB = P.CHIAVECLIENTEPB
                                   Left Join   
       (C6StagingPeriodico.RP_Migraz_Pianificazione M
        INNER JOIN C6StagingPeriodico.RP_Migraz_Area M_A
        ON M.CHIAVECONSULENZA = M_A.CHIAVECONSULENZA) 
       ON V.CHIAVECLIENTEPB = M.CHIAVECLIENTEPB

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_PIRAMIDE_VERT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_PIRAMIDE_VERT'
		)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_POPOLACONTRATTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--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_riattivazione]
           ,[Tip_contratto])           
     SELECT    
			A.CHIAVECLIENTEPB,
			NULL,
			NULL,
			NULL,
			0,
			0,
			NULL,
			NULL,
			'N',
			A.Riattivazione,
			A.Tip_Contratto
	 FROM
		C6MartPeriodico.VCONTRATTI A
	 LEFT JOIN
		[C6MartPeriodico].[CONTRATTOSEI_METADATI] B
	 ON
		A.chiaveClientePB = B.CHIAVECLIENTEPB
	 WHERE
		B.CHIAVECLIENTEPB IS NULL                       
       
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI]  SET tip_riattivazione=0 		
--SELECT *
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND   VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO <> '9999-12-31 00:00:00.000' AND MC.Tip_riattivazione = 1
       
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
SET tip_riattivazione=1 
,numRevoche = 0, data_UltimaRevoca = NULL, invioBenvenuto = 'N',numSolleciti = 0, data_UltimoSollecito = NULL
--SELECT * 
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND    VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' AND MC.Tip_riattivazione = 0
     
UPDATE [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
SET tip_riattivazione=2, tip_Contratto = 2
,numRevoche = 0, data_UltimaRevoca = NULL, invioBenvenuto = 'N', numSolleciti = 0, data_UltimoSollecito = NULL
--SELECT * 
FROM C6MartPeriodico.VCONTRATTI VC
JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
AND VC.tip_contratto = 2 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' AND MC.tip_Contratto = 1         
       
   


-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_POPOLACONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_POPOLACONTRATTI'
		)
                
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_QD_VAR_RISK_WEEK2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6MartPeriodico].[RP_DM_QD_VAR_RISK_WEEK2]  
AS 
BEGIN  


TRUNCATE TABLE [C6MARTPeriodico].[QD_VAR_RISK_WEEK2]

INSERT INTO [C6MARTPeriodico].[QD_VAR_RISK_WEEK2]
           ([banca],
			[rete],
			[codfis],
			[piva],
			[codfid],
			[codman],
			[chiave_acn],
			[isp_total_risk],
			[flag_risk])
			SELECT      
			[banca],
			[rete],
			[codfis],
			[piva],
			[codfid],
			[codman],
         CASE WHEN ISNULL(LTRIM(RTRIM(piva)), '') <> '' AND ISNULL(LTRIM(RTRIM(codman)), '') = '' THEN piva
              WHEN ISNULL(LTRIM(RTRIM(piva)), '') <> '' AND ISNULL(LTRIM(RTRIM(codman)), '') <> '' THEN 'FF@' + codman
              ELSE codfis 
              END AS chiave_acn,
			[isp_total_risk],
			[flag_risk]
  FROM [C6StagingPeriodico].[QD_VAR_RISK_WEEK2]

  
END  
  
  
  
 
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_W6CATESG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_W6CATESG]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_W6CATESG',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
-- declare @data varchar(8)

--set @data= [C6MartPeriodico].[getTrimestre2](getdate(),0)
  
truncate table C6MartPeriodico.W6CATESG
  
 INSERT INTO [C6MartPeriodico].[W6CATESG]
       ( 
	[dttrim]
      ,[banca]
      ,[rete]
      ,[codfis]
      ,[codman]
      ,[esg_e_prod_cli]
      ,[esg_s_prod_cli]
      ,[esg_g_prod_cli]
      ,[prodotto_id]
      ,[position_id])  
 SELECT distinct 
       [DTTRIM]
	  ,[BANCA]
      ,[RETE]
      ,case when CODMAN<>'' then 'FF@'+CODMAN
	   else CODFIS end as COD_FISCALE
	  ,isnull([codman],'')
      ,isnull([esg_e_prod_cli],'')
      ,isnull([esg_s_prod_cli],'')
      ,isnull([esg_g_prod_cli],'')
      ,isnull([prodotto_id],'')
      ,isnull([position_id],'')
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6CATESG] 
  --where 
  --DTTRIM=@data
 -- Log esecuzione  


 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_W6CATESG' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_W6CATESG'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_W6CKADEG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













CREATE   procedure [C6MartPeriodico].[RP_DM_W6CKADEG]

as 
begin

drop table if exists #tot

exec [dbo].[CreaTabellaBackUp] 'W6CKADEG','C6MartPeriodico','preBonifica'
declare @countAppoLimiter int
select @countAppoLimiter= count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER

if(@countAppoLimiter=0)
begin

truncate table C6MartPeriodico.W6CKADEG


--select	Rete,
--		Chiave_Acn,
--		Codfis,
--		Codman,
--		Dttrim,
--		Adeg_Rischio,
--		Adeg_Riserva,
--		Adeg_Invl_Period,
--		Adeg_Compl,
--		Adeg_Conc_ProdCompl,
--		Adeg_Freq_Oper,
--		Adeg_Conc_Emitt,
--		Adeg_Conc_Valut
--   from #tot
insert into C6MartPeriodico.W6CKADEG
SELECT
    wsei.Rete,
    wsei.Chiave_Acn,
    wsei.Codfis,
    wsei.Codman,
    wsei.Dttrim,
		CASE
        WHEN 'N' IN (Adeg_Rischio, Adeg_Riserva, Adeg_Invl_Period, Adeg_Compl, Adeg_Conc_ProdCompl, Adeg_Freq_Oper, Adeg_Conc_Emitt, Adeg_Conc_Valut) THEN 'N'
        ELSE 'S'
    END AS Adeg_Check,
    wsei.Adeg_Rischio,
    wsei.Adeg_Riserva,
    wsei.Adeg_Invl_Period,
    wsei.Adeg_Compl,
    wsei.Adeg_Conc_ProdCompl,
    wsei.Adeg_Freq_Oper,
    wsei.Adeg_Conc_Emitt,
    wsei.Adeg_Conc_Valut,
	wsei.Rfa_tot,
	wsei.Rfa_sei,
	wsei.Riserva,
	wsei.Profilo,
	wsei.Profilo_EC,
	wsei.Indicatore_ChiamataR4,
	wsei.Flg_Legali_Rappresentanti
	--into C6MartPeriodico.W6CKADEG
	
FROM C6MartPeriodico.vW6CKADEG wsei
inner join C6StagingPeriodico.appo_contratti appo on appo.rete=wsei.Rete and appo.cod_fiscale=wsei.Chiave_Acn

end 
else
begin
delete from [C6MartPeriodico].[W6CKADEG] where rete+CHIAVE_ACN in (select rete+cod_fiscale from C6StagingPeriodico.APPO_CONTRATTI_LIMITER)

insert into C6MartPeriodico.W6CKADEG
SELECT
    wsei.Rete,
    wsei.Chiave_Acn,
    wsei.Codfis,
    wsei.Codman,
    wsei.Dttrim,
		CASE
        WHEN 'N' IN (Adeg_Rischio, Adeg_Riserva, Adeg_Invl_Period, Adeg_Compl, Adeg_Conc_ProdCompl, Adeg_Freq_Oper, Adeg_Conc_Emitt, Adeg_Conc_Valut) THEN 'N'
        ELSE 'S'
    END AS Adeg_Check,
    wsei.Adeg_Rischio,
    wsei.Adeg_Riserva,
    wsei.Adeg_Invl_Period,
    wsei.Adeg_Compl,
    wsei.Adeg_Conc_ProdCompl,
    wsei.Adeg_Freq_Oper,
    wsei.Adeg_Conc_Emitt,
    wsei.Adeg_Conc_Valut,
	wsei.Rfa_tot,
	wsei.Rfa_sei,
	wsei.Riserva,
	wsei.Profilo,
	wsei.Profilo_EC,
	wsei.Indicatore_ChiamataR4,
	wsei.Flg_Legali_Rappresentanti
	--into C6MartPeriodico.W6CKADEG
	
FROM C6MartPeriodico.vW6CKADEG wsei
inner join C6StagingPeriodico.APPO_CONTRATTI_LIMITER appo on appo.rete=wsei.Rete and appo.cod_fiscale=wsei.Chiave_Acn
end

--casi particolari

update C6MartPeriodico.W6CKADEG
set Adeg_Check='N'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo=0 -- profilo Scaduto
--and isnull(Rfa_sei,0.00)=0.00 -- Rfa_sei = 0 e >0 adeg_check deve essere comunque = N

update C6MartPeriodico.W6CKADEG
set Adeg_Check='S'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo>0 -- profilo non scaduto 
and isnull(Rfa_tot,0.00)=0.00 --rfa totale =0 
and isnull(Riserva,0.00)=0.00 -- riserva =0


update C6MartPeriodico.W6CKADEG
set Adeg_Check='N'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo>0 -- profilo non scaduto 
and isnull(Rfa_tot,0.00)=0.00 --rfa totale =0 
and isnull(Riserva,0.00)>0.00 -- riserva >0



update C6MartPeriodico.W6CKADEG
set Adeg_Check='S'
where Indicatore_ChiamataR4='Z' --clcompl=Z
and Profilo>0 -- profilo non scaduto 
and isnull(Rfa_tot,0.00)<>0.00


----Clienti Solo CC


--drop table if exists #clienti_soloCC

--SELECT DISTINCT RETE, Cod_fiscale
--into #clienti_soloCC
--FROM C6MartPeriodico.PATRIMONIO_BF
--WHERE TIPO_PRODOTTO = 'CC' AND ID_AREA = 'liq'
--AND Cod_fiscale NOT IN (
--    SELECT Cod_fiscale
--    FROM C6MartPeriodico.PATRIMONIO_BF
--    WHERE (TIPO_PRODOTTO <> 'CC' OR ID_AREA <> 'liq')
--)


--update a
--set a.Adeg_Check='S'
--from C6MartPeriodico.W6CKADEG a
--inner join #clienti_soloCC cc
--on a.rete=cc.rete and a.Chiave_Acn=cc.cod_fiscale
--where a.Indicatore_ChiamataR4='Z' --clcompl=Z
--and a.Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale <>0 

---- Clienti prodotti Fuori perimetro 
--	drop table if exists #clienti_prodotti_fuori_adeg
--	drop table if exists #clienti_prodotti_fuori_adeg2
	
--	select rete,cod_fiscale, count(senza.CodInterno) as Contatore_Prodotti_fuori_Adeguatezza,count(patr.cod_Interno) as contatore_tutti_prodotti
--	into #clienti_prodotti_fuori_adeg
--	from c6martperiodico.patrimonio_bf patr
--	left join  [C6StagingPeriodico].[Prodotti_Fuori_Adeguatezza] senza
--		on patr.cod_interno = senza.codinterno and patr.cod_sottoprodotto=senza.codsottoprodotto
--		group by rete,COD_FISCALE

--  select   rete,cod_fiscale,Contatore_Prodotti_fuori_Adeguatezza,contatore_tutti_prodotti
--  into #clienti_prodotti_fuori_adeg2
--  from #clienti_prodotti_fuori_adeg
--  where Contatore_Prodotti_fuori_Adeguatezza=contatore_tutti_prodotti

----  select * from #clienti_prodotti_fuori_adeg2

--  update a
--set a.Adeg_Check='S'
--from C6MartPeriodico.W6CKADEG a
--inner join #clienti_prodotti_fuori_adeg2 cc
--on a.rete=cc.rete and a.Chiave_Acn=cc.cod_fiscale
--where a.Indicatore_ChiamataR4='Z' --clcompl=Z
--and a.Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale <>0

----EC -1

--update C6MartPeriodico.W6CKADEG
--set Adeg_Check='S'
--where Indicatore_ChiamataR4='Z' --clcompl=Z
--and Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale =0
--and Profilo_EC='-1'


----Flag Legali Rappresentanti
--update C6MartPeriodico.W6CKADEG
--set Adeg_Check='S'
--where Indicatore_ChiamataR4='Z' --clcompl=Z
--and Profilo>0 -- profilo non scaduto 
--and isnull(Rfa_tot,0.00)<>0.00 --rfa totale =0
--and Flg_Legali_Rappresentanti='S'


--SI
--NO
--NA Non Applicabile
--NR Non restituito, Professionale

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_W6CLIESG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_W6CLIESG]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_W6CLIESG',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
-- declare @data varchar(8)

--set @data= [C6MartPeriodico].[getTrimestre2](getdate(),0)
  
 TRUNCATE TABLE C6MartPeriodico.W6CLIESG
  
 INSERT INTO [C6MartPeriodico].[W6CliESG]
       ( 
	   [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[U_PREFSOST]
      ,[FLAGSFDR]
      ,[FLAGTAXO]
      ,[FLAGPAI]
      ,[SFDR_PERC]
      ,[TAXO_PERC]
      ,[PAI_A01]
      ,[PAI_A02]
      ,[PAI_A03]
      ,[PAI_A04]
      ,[PAI_A05]
      ,[PAI_A07]
      ,[PAI_A08]
      ,[PAI_S01]
      ,[PAI_S02]
	  ,[PAI_A1]
      ,[PAI_A2]
      ,[PAI_A3]
      ,[PAI_A4]
      ,[PAI_A5]
      ,[PAI_A7]
      ,[PAI_A8]
      ,[PAI_S1]
      ,[PAI_S2]
	  ,[PAI_A]
      ,[PAI_S]
      ,[PAI_NO_DETT]
      ,[PERC1ESG]
      ,[PERCAMB]
      ,[PERCSOC]
      ,[PERCGOV]
      ,[PERCAMB_OK]
      ,[PERCSOC_OK]
      ,[PERCGOV_OK]
      ,[SFDR_PERCT]
      ,[SFDR_PERC_OK]
      ,[TAXO_PERCT]
      ,[TAXO_PERC_OK]
      ,[PAIA_PERCT]
      ,[PAIA_PERC_OK]
      ,[PAIS_PERCT]
      ,[PAIS_PERC_OK])  
 SELECT distinct 
       [DTTRIM]
      ,[RETE]
      ,case when CODMAN<>'' then 'FF@'+CODMAN
	   else CODFIS end as COD_FISCALE
	  ,[CODMAN]
      ,[U_PREFSOST]
      ,[FLAGSFDR]
      ,[FLAGTAXO]
      ,[FLAGPAI]
      ,[SFDR_PERC]
      ,[TAXO_PERC]
      ,[PAI_A01]
      ,[PAI_A02]
      ,[PAI_A03]
      ,[PAI_A04]
      ,[PAI_A05]
      ,[PAI_A07]
      ,[PAI_A08]
      ,[PAI_S01]
      ,[PAI_S02]
	  ,CASE  WHEN PAI_A01 = 'S' THEN 'Emissioni gas serra' ELSE '' END AS PAI_A1,
       CASE  WHEN PAI_A02 = 'S' THEN 'Biodiversita''' ELSE ''     END AS PAI_A2,
	   CASE  WHEN PAI_A03 = 'S' THEN 'Acqua'  ELSE ''  END AS PAI_A3,
       CASE  WHEN PAI_A04 = 'S' THEN 'Rifiuti'  ELSE ''   END AS PAI_A4,  
       CASE  WHEN PAI_A05 = 'S' THEN 'Governativi di tipo Ambientale'  ELSE ''   END AS PAI_A5,   
    --CASE 
    --    WHEN PAI_A06 = 'S' THEN 'Combustibili Fossili' 
    --    ELSE '' 
    --END AS PAI_A06,
    CASE  WHEN PAI_A07 = 'S' THEN 'Settore Immobiliare'   ELSE ''  END AS PAI_A7,-- prima era Efficienza energetica ma deprecato
    CASE  WHEN PAI_A08 = 'S' THEN 'Settore Immobiliare'   ELSE '' END AS PAI_A8,  
    CASE  WHEN PAI_S01 = 'S' THEN 'Questioni Sociali e dei Dipendenti'    ELSE ''   END AS PAI_S1,
    CASE  WHEN PAI_S02 = 'S' THEN 'Governativi di tipo Sociale'     ELSE ''   END AS PAI_S2,
         CONCAT_WS(', ',
        NULLIF(CASE WHEN PAI_A01 = 'S' THEN 'Emissioni gas serra' ELSE '' END, ''),
        NULLIF(CASE WHEN PAI_A02 = 'S' THEN 'Biodiversita''' ELSE '' END, ''),
        NULLIF(CASE WHEN PAI_A03 = 'S' THEN 'Acqua' ELSE '' END, ''),
        NULLIF(CASE WHEN PAI_A04 = 'S' THEN 'Rifiuti' ELSE '' END, ''),
        --NULLIF(CASE WHEN PAI_A06 = 'S' THEN 'Combustibili Fossili' ELSE '' END, ''), -- Commentato
        NULLIF(CASE WHEN PAI_A07 = 'S' THEN 'Settore Immobiliare' ELSE '' END, ''),-- prima era Efficienza energetica
        NULLIF(CASE WHEN PAI_A08 = 'S' THEN 'Settore Immobiliare' ELSE '' END, ''),
	    NULLIF(CASE WHEN PAI_A05 = 'S' THEN 'Governativi di tipo Ambientale' ELSE '' END, '')

    ) AS PAI_A,

    -- Concatenazione del campo PAI_S (ritorna '' se tutti i campi sono vuoti)
    CONCAT_WS(', ',
        NULLIF(CASE WHEN PAI_S01 = 'S' THEN 'Questioni Sociali e dei Dipendenti' ELSE '' END, ''),
        NULLIF(CASE WHEN PAI_S02 = 'S' THEN 'Governativi di tipo Sociale' ELSE '' END, '')
    ) AS PAI_S, 
	   [PAI_NO_DETT]
      ,[PERC1ESG]
      ,[PERCAMB]
      ,[PERCSOC]
      ,[PERCGOV]
      ,[PERCAMB_OK]
      ,[PERCSOC_OK]
      ,[PERCGOV_OK]
      ,[SFDR_PERCT]
      ,[SFDR_PERC_OK]
      ,[TAXO_PERCT]
      ,[TAXO_PERC_OK]
      ,[PAIA_PERCT]
      ,[PAIA_PERC_OK]
      ,[PAIS_PERCT]
      ,[PAIS_PERC_OK]
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6CliESG] 
  --where 
  --DTTRIM=@data
 -- Log esecuzione  

 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_W6CliESG' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_W6CliESG'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_W6IndPtf]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












CREATE   procedure [C6MartPeriodico].[RP_DM_W6IndPtf]

as 
begin

exec [dbo].[CreaTabellaBackUp] 'W6IndPtf','C6MartPeriodico'
declare @countAppoLimiter int

select @countAppoLimiter= count(*) from C6StagingPeriodico.APPO_CONTRATTI_LIMITER

drop table if exists #tot

if(@countAppoLimiter=0)
begin

truncate table C6MartPeriodico.W6IndPtf

INSERT INTO [C6MartPeriodico].[W6IndPtf]
           ([DTTRIM]
           ,[RETE]
		   ,[CHIAVE_ACN]
           ,[CODFIS]
           ,[CODMAN]
           ,[PTF_DIVERSIFICATO]
           ,[PTF_ADEGUATO]
           ,[BLACKLIST]
           ,[DATA_ORA_INSE]
           ,[DATA_ORA_AGGI])
select 
distinct
ad.Dttrim,
ad.Rete,
ad.Chiave_Acn as Chiave_Acn,
ad.Codfis,
ad.Codman,
case when isnull(ptf.flg_NonDiv,'N')='S' then 'N' else 'S' end as flg_NonDiv,
ad.adeg_check,
case when e.rete IS not null then 'S' else 'N' end as Blacklist,
NULL as DATA_ORA_INSE,
NULL as DATA_ORA_AGGI
from C6MartPeriodico.W6CKADEG ad 
inner join C6StagingPeriodico.appo_contratti appo
on appo.rete=ad.Rete and appo.cod_fiscale=ad.Chiave_Acn
left join C6MartPeriodico.RP_ClientiPtfNonDiv ptf 
on ad.Rete=ptf.rete and ad.Chiave_Acn=ptf.chiave_acn
left join (select distinct rete,codicefiscale from C6MartPeriodico.ExcludedList) e on ad.Rete=e.Rete and ad.Chiave_Acn=e.codicefiscale
WHERE appo.tip_contratto<>'3'
end
--select distinct * from C6MartPeriodico.W6IndPtf
else
delete from [C6MartPeriodico].[W6IndPtf] where rete+CHIAVE_ACN in (select rete+cod_fiscale from C6StagingPeriodico.APPO_CONTRATTI_LIMITER)

INSERT INTO [C6MartPeriodico].[W6IndPtf]
           ([DTTRIM]
           ,[RETE]
		   ,[CHIAVE_ACN]
           ,[CODFIS]
           ,[CODMAN]
           ,[PTF_DIVERSIFICATO]
           ,[PTF_ADEGUATO]
           ,[BLACKLIST]
           ,[DATA_ORA_INSE]
           ,[DATA_ORA_AGGI])
select 
distinct
ad.Dttrim,
ad.Rete,
ad.Chiave_Acn as Chiave_Acn,
ad.Codfis,
ad.Codman,
case when isnull(ptf.flg_NonDiv,'N')='S' then 'N' else 'S' end as flg_NonDiv,
ad.adeg_check,
case when e.rete IS not null then 'S' else 'N' end as Blacklist,
NULL as DATA_ORA_INSE,
NULL as DATA_ORA_AGGI
from C6MartPeriodico.W6CKADEG ad 
inner join C6StagingPeriodico.APPO_CONTRATTI_LIMITER appo_lim
on appo_lim.rete=ad.Rete and appo_lim.cod_fiscale=ad.Chiave_Acn
left join C6StagingPeriodico.APPO_CONTRATTI appo
on appo.rete=ad.Rete and appo.cod_fiscale=ad.Chiave_Acn
left join C6MartPeriodico.RP_ClientiPtfNonDiv ptf 
on ad.Rete=ptf.rete and ad.Chiave_Acn=ptf.chiave_acn
left join (select distinct rete,codicefiscale from C6MartPeriodico.ExcludedList) e on ad.Rete=e.Rete and ad.Chiave_Acn=e.codicefiscale
WHERE appo.tip_contratto<>'3'



--SI
--NO
--NA Non Applicabile
--NR Non restituito, Professionale

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_WSEIAN2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE procedure [C6MartPeriodico].[RP_DM_WSEIAN2]

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
exec [dbo].[CreaTabellaBackUp] 'wseian2','C6MartPeriodico'

DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

truncate table c6martperiodico.wseian2

INSERT INTO [C6MartPeriodico].[wseian2]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
		   ,[PIVA]
           ,[NOME]
           ,[COGNOME]
           ,[DTNASCI]
           ,[INDIRIZZO]
           ,[CAP]
           ,[CITTA]
           ,[PROVINCIA]
           ,[NAZIONE]
           ,[CODPROF]
           ,[DTINVAL]
           ,[CODMAN]
           ,[CLASSERC]
           ,[COD_PROFEC]
           ,[FLAGPG]
           ,[CLCOMPL]
           ,[FLGCONC]
           ,[FLAGNQP]
           ,[FLGPRLRDE]
           ,[FLGPROF]
           ,[DTFINVAL]
           ,[CONCEMI]
           ,[FREQ]
           ,[LLIQUID]
           ,[PREFSOST]
           ,[FLAGAMB]
           ,[FLAGSOC]
           ,[FLAGGOV]
           ,[ADEGCONC_VALUT]
           ,[SOGLIAESG]
           ,[COERENZA]
           ,[RISERVA]
           ,[INVL_PERIOD]
           ,[MAXCOMPL]
           ,[NOCOMPL]
           ,[SPESA_FORZATA]
           ,[PERC_ILP]
           ,[IMP_RISERVA])

SELECT [DTTRIM]
      ,[RETE]
      ,case when codman<>'' then 'FF@'+codman else [CODFIS] end as CODFIS
	  ,case when LEN(codfis)<16 then codfis else '' end as PIVA
      ,[NOME]
      ,[COGNOME]
      ,[DTNASCI]
      ,[INDIRIZZO]
      ,[CAP]
      ,[CITTA]
      ,[PROVINCIA]
      ,[NAZIONE]
      ,[CODPROF]
      ,[DTINVAL]
      ,[CODMAN]
      ,[CLASSERC]
      ,[COD_PROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[DTFINVAL]
      ,[CONCEMI]
      ,[FREQ]
      ,[LLIQUID]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA]
  FROM [C6StagingPeriodico].[WSEIAN2]
 -- where DTTRIM=@DataFineTrim

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_WSEICAP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_WSEICAP]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_WSEICAP',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 declare @data varchar(8)

set @data= [C6MartPeriodico].[getTrimestre2](getdate(),0)
  
 TRUNCATE TABLE C6MartPeriodico.WSEICAP 
  
 INSERT INTO C6MartPeriodico.[WSEICAP]  
           ([DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[COD_FISCALE]
      ,[CODCONF]
      ,[SUBPROD]
      ,[ISIN]
      ,[DTINIZ]
      ,[DTFINE]
      ,[CTV_COMMIT]
      ,[IMPVERS]
      ,[IMPRES]
      ,[DESCPROD]
      ,[SGR])  

 SELECT distinct [DTTRIM]
      ,[DTRIFE]
      ,[RETE]
       ,case when CODMAN<>'' then 'FF@'+CODMAN
	  else CODFIS end as COD_FISCALE
      ,[CODCONF]
      ,[SUBPROD]
      ,CASE
    WHEN ISIN IS NULL OR ISIN = '' THEN 'NA'
    ELSE ISIN
  END AS ISIN
      ,[DTINIZ]
      ,[DTFINE]
      ,[CTV_COMMIT]
      ,[IMPVERS]
      ,[IMPRES]
      ,[DESCPROD]
      ,[SGR]
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICAP]
  where 
  DTTRIM=@data
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_WSEICAP' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_WSEICAP'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_WSEICC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_WSEICC]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  

  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_WSEICC',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 declare @data varchar(8)

set @data= [C6MartPeriodico].[getTrimestre2](getdate(),0)
  
 TRUNCATE TABLE C6MartPeriodico.WSEICC 
  
 INSERT INTO C6MartPeriodico.[WSEICC]  
           ([DTTRIM]
      ,[RETE]
      ,[COD_FISCALE]
      ,[CODCONFC]
      ,[CODCONFPR]
      ,[is_APC])  

 SELECT distinct [DTTRIM]
      ,[RETE]
      ,case when CODMAN<>'' then 'FF@'+CODMAN
	  else CODFIS end 
      ,[CODCONFC]
      ,[CODCONFPR]
	  ,'S'
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICC]
  where 
  DTTRIM=@data
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_WSEICC' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_DM_WSEICC'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_DM_WSEIRPF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE procedure [C6MartPeriodico].[RP_DM_WSEIRPF]

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


DECLARE @DataFineTrim VARCHAR(8)  
SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)


  SELECT 
   rpf.[dttrim]
  ,rpf.[rete]
  ,case when rpf.codman <>'' then 'FF@'+rpf.codman else rpf.codfis end as chiave_acn
  ,rpf.[codfis]
  ,rpf.[codman]
  ,rpf.[flgprof]
  ,rpf.[flgec]
  ,rpf.[data_ora_refresh]
  ,rpf.[data_ora_inse]
  ,rpf.[data_ora_aggi]
  into #WSEIRPF_temp
  FROM [C6StagingPeriodico].[WSEIRPF] rpf
  where rpf.flgprof in ('P','S') and rpf.dttrim=@DataFineTrim

  
  SELECT 
   rpf.[dttrim]
  ,rpf.[rete]
  ,rpf.chiave_acn
  ,rpf.[codfis]
  ,rpf.[codman]
  ,rpf.[flgprof]
  ,rpf.[flgec]
  ,rpf.[data_ora_refresh]
  ,rpf.[data_ora_inse]
  ,rpf.[data_ora_aggi]
  ,case when ac.TIP_CONTRATTO=3 then 'S' else 'N' end as isDirect
  into #WSEIRPF
  from #WSEIRPF_temp rpf
  inner join C6StagingPeriodico.APPO_CONTRATTI AC
  on rpf.rete=AC.rete and rpf.chiave_acn=AC.COD_FISCALE



    SELECT 
   rpf.[dttrim]
  ,rpf.[rete]
  ,rpf.chiave_acn
  ,rpf.[codfis]
  ,rpf.[codman]
  ,rpf.[flgprof]
  ,rpf.[flgec]
  ,rpf.[data_ora_refresh]
  ,rpf.[data_ora_inse]
  ,rpf.[data_ora_aggi]
  ,rpf.isDirect
  into #WSEI
  FROM #WSEIRPF rpf
   inner join C6MartPeriodico.wseian2 an2 on rpf.rete+rpf.chiave_acn=an2.rete+an2.codfis
  where rpf.flgprof='P' and rpf.dttrim=@DataFineTrim and CODPROF='0' and isDirect='N'

  union all 

  SELECT 
   rpf.[dttrim]
  ,rpf.[rete]
  ,rpf.chiave_acn
  ,rpf.[codfis]
  ,rpf.[codman]
  ,rpf.[flgprof]
  ,rpf.[flgec]
  ,rpf.[data_ora_refresh]
  ,rpf.[data_ora_inse]
  ,rpf.[data_ora_aggi]
  ,rpf.isDirect
  FROM #WSEIRPF rpf
   inner join C6MartPeriodico.wseian2 an2 on rpf.rete+rpf.chiave_acn=an2.rete+an2.codfis
   inner join C6MartPeriodico.vPatrimonioBFAggregato patr on patr.rete=rpf.rete and patr.cod_fiscale=rpf.chiave_acn
  where rpf.flgprof='P' and rpf.dttrim=@DataFineTrim and CODPROF='0' and isDirect='S' --and ctv>=10000




truncate table c6martperiodico.wseirpf


INSERT INTO [C6MartPeriodico].[wseirpf](
            [dttrim]
		   ,[rete]
		   ,[chiave_acn]
		   ,[codfis]
		   ,[codman]
		   ,[flgprof]
		   ,[flgec]
		   ,[data_ora_refresh]
		   ,[data_ora_inse]
		   ,[data_ora_aggi])  
           
  SELECT 
   ws.[dttrim]
  ,ws.[rete]
  ,WS.chiave_acn
  ,ws.[codfis]
  ,ws.[codman]
  ,ws.[flgprof]
  ,ws.[flgec]
  ,ws.[data_ora_refresh]
  ,ws.[data_ora_inse]
  ,ws.[data_ora_aggi]
  FROM #WSEI WS
  inner join C6StagingPeriodico.APPO_CONTRATTI AC
  on WS.rete=AC.rete and WS.chiave_acn=AC.COD_FISCALE

  drop table if exists #WSEIRPF
    drop table if exists #WSEI

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_GESTIONE_SELECT_LETTERE_DA_INVIARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--SELECT TOP 1 * FROM C6MartPeriodico.VCONTRATTI
--[C6MartPeriodico].[GESTIONE_SELECT_LETTERE_DA_INVIARE]'F','AA@55670',1,-1
CREATE procedure [C6MartPeriodico].[RP_GESTIONE_SELECT_LETTERE_DA_INVIARE]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()

--declare @prova as varchar(10)
--select @prova = 'AA@55670'
--select @prova
--select charindex('@',@prova)

	SELECT
			dbo.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			
			--Modifica per le persone giuridiche
			CASE 
				WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
					THEN aclie.cognome --+ 'JJ'
					ELSE aclie.nome
			END	AS nome,
			
			--aclie.nome as nome,
			CASE
				WHEN LEN(csei.cod_fiscale) = 11
					THEN aclie.nome
					ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
							THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
					ELSE
						aclie.cognome
					END	
			END	AS cognome,

			--aclie.cognome as cognome,
			csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.PROVINCIA end as provincia,
			csei.cap as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			dbo.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_MONITORAGGIO,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												csei.DATA_INZIOAVANZATO,
												@dataRichiestaRistampa,
												gpdf.DataGenerazione,
												tla.[TESTO]
											) as testo,
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma
 
		FROM	
			[C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[C6MartPeriodico].[VCONTRATTI] csei
			JOIN
			C6MartPeriodico.CONTRATTOSEI_METADATI META
			ON
				META.CHIAVECLIENTEPB= CSEI.CHIAVECLIENTEPB
			INNER JOIN
			[C6MartPeriodico].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
			LEFT OUTER JOIN
			C6MartPeriodico.GESTIONE_PDF_FTP gpdf
			on
				gpdf.rete = csei.rete and
				gpdf.codiceFiscale = csei.cod_fiscale
			
		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			csei.data_fineAvanzato > getDate() and
			tla.id = @codiceLettera and
			(gpdf.idReport = @idReport or @idreport = -1) 


END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio  
-- Create date: 18/11/2008  
-- Description:   
-- =============================================  
--[C6MartPeriodico].[PROM_TuttiIPortafogli]  
CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli]  
 -- Add the parameters for the stored procedure here  
AS  
BEGIN  
  
SELECT [Rete]  
      ,[CodiceFiscale]  
      ,[Portafoglio]  
      ,[CodiceProdotto]  
      ,[Piazza]  
      ,[CodiceValuta]  
      ,[Classe]  
      ,cast([CtvNominale] as varchar) as CtvNominale  
      ,cast([CtvReale] as varchar) as CtvReale  
  
  
  
FROM (  
  
 SELECT [Rete]  
    ,[CodiceFiscale]  
    ,[Portafoglio]  
    ,[CodiceProdotto]  
    ,[Piazza]  
    ,[CodiceValuta]  
    ,[Classe]  
    ,[CtvNominale]  
    ,[CtvReale]  
   FROM [C6MartPeriodico].[RP_vTuttiIPortafogli]  
  
  
 union all  
 SELECT [Rete]  
    ,[CodiceFiscale]  
    ,[Portafoglio]  
    ,[CodiceProdotto]  
    ,[Piazza]  
    ,[CodiceValuta]  
    ,[Classe]  
    ,[CtvNominale]  
    ,[CtvReale]  
   FROM [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq]  
) T  
  
order by rete,codiceFiscale,Portafoglio  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
END  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================
--[C6MartPeriodico].[PROM_TuttiIPortafogli]
CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli_pre_selective]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT [Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,cast([CtvNominale] as varchar) as CtvNominale
      ,cast([CtvReale] as varchar) as CtvReale



FROM (

	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6MartPeriodico].[RP_vTuttiIPortafogli]


	union all
	SELECT [Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6MartPeriodico].[RP_vTuttiIPortafogli_ccLiq]
) T

order by rete,codiceFiscale,Portafoglio








































END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,[CtvNominale]
      ,[CtvReale]
FROM (

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]


	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_ccLiq]

) T
--where t.codicefiscale <> 'MNTGFR35R06G337T'
--where ((t.rete = 'F'
--and    t.codicefiscale > 'KRLPBL79L31Z107U')
--or (t.rete = 'S'))
----------------------------------------------------------------
-- excluded for T2_L1 and T2_L2 to bypass Prometeia dtsx failure
--where T.codicefiscale <> 'RNLRLD71D19G492V'
----------------------------------------------------------------

order by rete,codiceFiscale,Portafoglio

END










GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170409_TEST]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170409_TEST]
	-- Add the parameters for the stored procedure here
AS
BEGIN


select *, row_number() over(order by CodiceFiscale, Rete, Portafoglio) as myrank into #tmp from
(

SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6Martperiodico].[RP_vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6Martperiodico].[RP_vTuttiIPortafogli_ccLiq]
	 )x


SELECT 
		CodiceFiscale, rete
 into #ranking
 from  #tmp
 
group by 	CodiceFiscale, rete
having  max(myrank) <= 1600000

 CREATE INDEX IDX_ranking_CodiceFiscale ON #ranking(CodiceFiscale, Rete)
 CREATE INDEX IDX_temp_CodiceFiscale ON #tmp(CodiceFiscale, Rete)

select 		t.[Rete]
		  ,t.[CodiceFiscale]
		  ,t.[Portafoglio]
		  ,t.[CodiceProdotto]
		  ,t.[Piazza]
		  ,t.[CodiceValuta]
		  ,t.[Classe]
		  ,t.[CtvNominale]
		  ,t.[CtvReale] 
		  from
#tmp t inner join #ranking r on r.Rete = t.rete and r.CodiceFiscale = t.CodiceFiscale



END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170410]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170410]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,[CtvNominale]
      ,[CtvReale]
FROM (

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_ccLiq]
) T
--where t.codicefiscale <> 'MNTGFR35R06G337T'
--where ((t.rete = 'F'
--and    t.codicefiscale > 'KRLPBL79L31Z107U')
--or (t.rete = 'S'))

order by rete,codiceFiscale,Portafoglio




END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170410_EXCLCF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170410_EXCLCF]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,[CtvNominale]
      ,[CtvReale]
FROM (

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_ccLiq]
) T
where t.codicefiscale <> 'RNLRLD71D19G42V'

order by rete,codiceFiscale,Portafoglio




END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170421_EXCL_CF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20170421_EXCL_CF]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,[CtvNominale]
      ,[CtvReale]
FROM (

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_ccLiq]
) T
--where t.codicefiscale <> 'MNTGFR35R06G337T'
--where ((t.rete = 'F'
--and    t.codicefiscale > 'KRLPBL79L31Z107U')
--or (t.rete = 'S'))
where T.codicefiscale <> 'RNLRLD71D19G492V'

order by rete,codiceFiscale,Portafoglio

END









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20180615_NewMotorePrometeia]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- Stored procedure
-- Stored procedure


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_20180615_NewMotorePrometeia]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]

FROM ( 

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]
	 FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_ccLiq]
) T
--esclusioni per errore nuovo servizio indicatori del 14-15/6/2018
where t.rete+t.codicefiscale not in 
('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
'SPCFMRA79D52I197L','SSNTLGU56A23L334O'

)

--where t.codicefiscale <> 'MNTGFR35R06G337T'
--where ((t.rete = 'F'
--and    t.codicefiscale > 'KRLPBL79L31Z107U')
--or (t.rete = 'S'))
----------------------------------------------------------------
-- excluded for T2_L1 and T2_L2 to bypass Prometeia dtsx failure
--where T.codicefiscale = 'BGIRUI39M03G687X'
----------------------------------------------------------------

order by rete,codiceFiscale,Portafoglio

END










GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
     ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore_newkey]-- where codicefiscale='MCHMNP63R51A794U'
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		-- and rete+codicefiscale not in 
		--('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		--'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		--'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
--and rete+codicefiscale<>'FMCHMNP63R51A794U'
--********************ELIMINARE*****************
	  	 --and rete+codicefiscale <> 'FMCHMNP63R51A794U'
--********************ELIMINARE*****************
 --and rete+codicefiscale <> 'SFRGMGH37R50G778A'
and portafoglio not like '%||%'
	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore_newkey]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		-- and rete+codicefiscale not in 
		--('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		--'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		--'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
--and rete+codicefiscale<>'FMCHMNP63R51A794U'		
--********************ELIMINARE*****************
	  	--and rete+codicefiscale <> 'FMCHMNP63R51A794U'
--********************ELIMINARE*****************
 --and rete+codicefiscale <> 'SFRGMGH37R50G778A'
and portafoglio not like '%||%'
	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore_newkey]
	  -- Fine Modifica del 18/10/2018
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		-- and rete+codicefiscale not in 
		--('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		--'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		--'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
--	and rete+codicefiscale<>'FMCHMNP63R51A794U'
--********************ELIMINARE*****************
	  --and rete+codicefiscale <> 'FMCHMNP63R51A794U'
--********************ELIMINARE*****************
 --and rete+codicefiscale <> 'SFRGMGH37R50G778A'
and portafoglio not like '%||%'

) T
--where rete+codicefiscale in ('SPLLGNN70P12D612D','SPLLGPP42H19D730M','SPLLGNN70P12D612D_BF','SPLLGPP42H19D730M_BF','SPLLGNN70P12D612D_TERZI','SPLLGPP42H19D730M_TERZI')
order by rete,codiceFiscale,Portafoglio

--select rete,codiceFiscale,Portafoglio 
--FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore] 
--order by rete,codiceFiscale,Portafoglio

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20180711_AZZERARE_CTV_NEGATIVI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--ELIMINARE WHERE CONDITION SUL CODICE FISCALE NELLE SELECT INTERNE



CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20180711_AZZERARE_CTV_NEGATIVI]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')

--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
		
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
	
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

) T
order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20180719_preAzzeramentoCCNeg]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20180719_preAzzeramentoCCNeg]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]


FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
	

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
      ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
	
	  	 

) T

order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20181018]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--ELIMINARE WHERE CONDITION SUL CODICE FISCALE NELLE SELECT INTERNE



CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20181018]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')

--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
		
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
	
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

) T
order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20181018_SingoloCF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--ELIMINARE WHERE CONDITION SUL CODICE FISCALE NELLE SELECT INTERNE



CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_20181018_SingoloCF]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale = 'FTMRSNN57T52L424E'

--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 		 and rete+codicefiscale = 'FTMRSNN57T52L424E'


		
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 		 and rete+codicefiscale = 'FTMRSNN57T52L424E'

	
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

) T
order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_IN]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--ELIMINARE WHERE CONDITION SUL CODICE FISCALE NELLE SELECT INTERNE



CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_IN]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale  in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')

--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale  in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
		
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale  in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
	
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

) T
order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_ORIGINALE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--ELIMINARE WHERE CONDITION SUL CODICE FISCALE NELLE SELECT INTERNE



CREATE procedure [C6MartPeriodico].[RP_PROM_TuttiIPortafogli2_Indicatore_ORIGINALE]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')

--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
		
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		 and rete+codicefiscale not in 
		('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
	
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BBTRST39C01G160T'
--********************ELIMINARE*****************

) T
order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_SRV_CHECK_C6_GIORNALIERO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_SRV_CHECK_C6_GIORNALIERO]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--V Esegue la procedura di estrazione dei CC
	EXEC [C6MartPeriodico].[RP_SRV_ESTRAZ_GIORNALIERA_CC]

	-- Report generati
	SELECT
		C.Rete,
		C.Cod_Agente,
		case when C.Cod_Fiscale  like '%@%' then c.piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else C.Cod_Fiscale end as Cod_fiscale,
		C.Data_Perf
	INTO #ReportGenerati
	FROM
		C6MartPeriodico.GESTIONE_PDF_FTP AS GPF
		INNER JOIN [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] AS C             
			ON GPF.RETE = C.Rete
			AND GPF.CODICEFISCALE = C.Cod_Fiscale
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND Data_FineAvanzato > getDate()
	ORDER BY
		C.Rete,
		C.Cod_Agente,
		C.Cod_Fiscale

	-- Report non generati
	SELECT
		Rete,
		Cod_Agente,
		case when Cod_Fiscale  like '%@%' then piva_fiduciaria + '  ' + substring(cod_fiscale,4,6) else Cod_Fiscale end as Cod_fiscale,
		Data_Perf,
		'Ragione:' + CASE
			WHEN ClienteMigrato = 'N' THEN ' Cliente non migrato'
			ELSE ''
		END
		+ CASE
			WHEN RisorseNA = 'S' THEN ' Risorse non associate'
			ELSE ''
		END
		+ CASE
			WHEN RisorseNA = 'N' and ClienteMigrato = 'S' and profiloAttivo = 0 THEN ' Profilo non attivo'
			ELSE ''
		END
		/*+ CASE
			WHEN PartViaDisinv = 'S' THEN ' Partite viaggianti disinvestimento'
			ELSE ''
		END*/ AS Ragione
	INTO #ReportNonGenerati
	FROM
		C6MartPeriodico.vcontratti as CONTRATTOSEI
        INNER JOIN C6MartPeriodico.ContrattoSEI_metadati AS M
            on  CONTRATTOSEI.chiaveclientepb = M.chiaveclientepb
	WHERE
		M.InvioBenvenuto = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND (ClienteMigrato = 'N'
		OR RisorseNA = 'S'
		--V Condizione per non generazione a causa di profilo non attivo
		OR ProfiloAttivo = 0
		--
		/*OR PartViaDisinv = 'S'*/)
		AND Data_FineAvanzato > getDate()
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale


	

	-- Email
	SELECT
		CASE Tipo
			WHEN 'PERF' THEN 'perfezionamento'
			WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
			WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
			WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
			WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
			WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
			WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
			WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
			WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
			WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
			WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
			--V aggiunta tipo mail profilo non attivo
			WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
			WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
			WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
			WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
			WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'

		END AS Tipo,
		COUNT(Tipo) AS Totale
	INTO #EmailInviate
	FROM
		C6MartPeriodico.GESTIONE_EMAIL
	WHERE
		Inviata = 'S'
		AND dbo.toShortDateString(Data_Invio) = dbo.toShortDateString(GETDATE())
	GROUP BY
		Tipo
	ORDER BY TIPO
	-- Indirizzi più lunghi di 36 caratteri
	SELECT
		C.Rete,
		Cod_Agente,
		Cod_Fiscale,
		Indirizzo,
		LEN(Indirizzo) AS LunghezzaIndirizzo
	INTO #IndirizziLunghi
	FROM
		C6MartPeriodico.vcontratti AS C
		INNER JOIN C6MartPeriodico.GESTIONE_PDF_FTP AS GPF
			ON C.Rete = GPF.RETE
			AND C.Cod_Fiscale = GPF.CODICEFISCALE
	WHERE
		dbo.toShortDateString(GPF.DataGenerazione) = dbo.toShortDateString(GETDATE())
		AND LEN(Indirizzo) > 36
	ORDER BY
		Rete,
		Cod_Agente,
		Cod_Fiscale

	-- Prodotti non a catalogo
	SELECT
		RETE,
		CODICEFISCALE,
		CODICECONTRATTO
	INTO #ProdNonInCat
	FROM
		C6Staging.SPB_CONTR_SINTESI
	WHERE
		POSITIONID IS NULL

	-- VaR discordanti
	SELECT
		RA.RETE,
		RA.COD_FISCALE,
		RA.VAR_PERC_PTF,
		VC.VAR_COMPLESSIVO_BF,
        CASE
			WHEN RA.VAR_PERC_PTF = VC.VAR_COMPLESSIVO_BF THEN 'OK'
			ELSE 'KO'
		END AS VAR_CORRETTO
	INTO #VaRDiscordanti
	FROM
		C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		INNER JOIN VAR_CHECK AS VC
			ON RA.RETE = VC.RETE
			AND RA.COD_FISCALE = VC.COD_FISCALE
	WHERE
		(RA.COD_AGGREG = 'COMPLESSIVO|BF')
	ORDER BY
		RA.RETE,
		RA.COD_FISCALE

	-- Posizioni in stato liquidato
	SELECT
		PB.RETE,
		PB.COD_FISCALE,
		ID_CONTRATTO
	INTO #PosizioniStatoL
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PB
		INNER JOIN #VaRDiscordanti AS VD
			ON PB.RETE = VD.RETE
			AND PB.COD_FISCALE = VD.COD_FISCALE
	WHERE
		PB.COD_STATO = 'L'
		AND PB.CTV >= 0
		AND VD.VAR_CORRETTO = 'KO'
	ORDER BY
		PB.RETE,
		PB.COD_FISCALE

	-- Clienti senza data sottoscrizione
	SELECT DISTINCT
		PB.RETE,
		C.COD_AGENTE,
		PB.COD_FISCALE,
		PB.ID_CONTRATTO
	INTO #ClientiSenzaDataSott
	FROM
		C6MartPeriodico.vcontratti AS C
		INNER JOIN C6MartPeriodico.PATRIMONIO_BF AS PB
			ON C.Rete = PB.RETE
			AND C.Cod_Fiscale = PB.COD_FISCALE
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON PB.RETE = RA.RETE
			AND PB.COD_FISCALE = RA.COD_FISCALE
	WHERE
		PB.DATA_SOTTOSCRIZIONE IS NULL
		AND PB.TIPO_PRODOTTO = 'DT'

	-- Clienti senza piramide modello
	SELECT
		Rete,
		Cod_Agente,
		Cod_Fiscale
	INTO #ClientiSenzaPiramideModello
	FROM
		C6MartPeriodico.vcontratti as CONTRATTOSEI
    inner join 
		C6MartPeriodico.contrattosei_metadati as M
    on CONTRATTOSEI.chiaveclientepb = m.chiaveclientepb
	WHERE
		Data_FineAvanzato < getDate()
		AND inviobenvenuto = 'N'
		AND clientemigrato = 'S'
		AND risorseNA = 'N'
		AND DATEDIFF(d, Data_Perf, GETDATE()) >= CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT)
		AND Cod_Fiscale NOT IN (
			SELECT
				COD_FISCALE
            FROM
				C6MartPeriodico.PIRAMIDE_MOD)

	--scarti simpb contrattoSintesi
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaContrattoSintesi
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MartPeriodico.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_CONTRSINTESI' 

	--scarti simpb mifid
	SELECT codiceFiscale,DATA_PERF
	INTO #ClientiSenzaProfiloMIFID
	FROM C6STAGING.SPB_SCARTI SPB
		 JOIN 
		 C6MartPeriodico.RP_vContrattiMigrati C6
		 ON
		 SPB.CODICEFISCALE = C6.COD_FISCALE
	WHERE pacchettoSSIS = 'SPB_MIFID'
	

	DECLARE @testoMail VARCHAR(MAX)
	DECLARE @rete CHAR(1)
	DECLARE @codiceAgente VARCHAR(6)
	DECLARE @codiceFiscale VARCHAR(25)
	DECLARE @data DATETIME
	DECLARE @ragione VARCHAR(100)
	DECLARE @tipo VARCHAR(100)
	DECLARE @indirizzo VARCHAR(100)
	DECLARE @totale INT
	DECLARE @codiceContratto VARCHAR(11)
	DECLARE @varPercPtf DECIMAL(5, 2)
	DECLARE @varComplessivoBf DECIMAL(5, 2)

	SET @testoMail = '<html><body><table border="0"><tr><td colspan="2"><strong>E-mail inviate:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Tipo,
			Totale
		FROM
			#EmailInviate
	OPEN reader
	FETCH NEXT FROM reader INTO @tipo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
		SET @testoMail = @testoMail + '<td align="right">' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @tipo, @totale
	END
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Report generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf
		FROM
			#ReportGenerati
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data
	END
	SELECT @totale = COUNT(*) FROM #ReportGenerati
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Report non generati:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Data_Perf,
			Ragione
		FROM
			#ReportNonGenerati
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '<td>' + @ragione + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @data, @ragione
	END
	SELECT @totale = COUNT(*) FROM #ReportNonGenerati
	SET @testoMail = @testoMail + '<tr><td align="right">Totale:</td><td>' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="5"><strong>Indirizzi più lunghi di 36 caratteri:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale,
			Indirizzo,
			LEN(Indirizzo) AS LunghezzaIndirizzo
		FROM
			#IndirizziLunghi
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @indirizzo + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@totale AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @indirizzo, @totale
	END
	SELECT @totale = COUNT(*) FROM #IndirizziLunghi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="3">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con prodotti non a catalogo:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			CODICEFISCALE,
			CODICECONTRATTO
		FROM #ProdNonInCat
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ProdNonInCat
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti con VaR discordante:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			VAR_PERC_PTF,
			VAR_COMPLESSIVO_BF
		FROM
			#VaRDiscordanti
		WHERE
			VAR_CORRETTO = 'KO'
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varPercPtf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '<td>' + CAST(@varComplessivoBf AS VARCHAR) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @varPercPtf, @varComplessivoBf
	END
	SELECT @totale = COUNT(*) FROM #VaRDiscordanti WHERE VAR_CORRETTO = 'KO'
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti con posizioni stato Liquidato:</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#PosizioniStatoL
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #PosizioniStatoL
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td>&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Clienti senza data sottoscrizione</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			RETE,
			COD_AGENTE,
			COD_FISCALE,
			ID_CONTRATTO
		FROM
			#ClientiSenzaDataSott
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceContratto + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale, @codiceContratto
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaDataSott
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza piramide modello</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			Rete,
			Cod_Agente,
			Cod_Fiscale
		FROM
			#ClientiSenzaPiramideModello
	OPEN reader
	FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @rete, @codiceAgente, @codiceFiscale
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaPiramideModello
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader





	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe Contratto Sintesi</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,
			data_perf
		FROM
			#ClientiSenzaContrattoSintesi
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaContrattoSintesi
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader


	SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="3"><strong>Clienti senza righe profilo MIFID</strong></td></tr>'
	DECLARE reader CURSOR LOCAL FORWARD_ONLY
	FOR
		SELECT
			codiceFiscale,data_perf
		FROM
			#ClientiSenzaProfiloMIFID
	OPEN reader
	FETCH NEXT FROM reader INTO @codiceFiscale,@data
	WHILE @@FETCH_STATUS = 0
	BEGIN
		SET @testoMail = @testoMail + '<tr>'
		SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
		SET @testoMail = @testoMail + '<td>' + dbo.toShortDateString(@data) + '</td>'
		SET @testoMail = @testoMail + '</tr>'
		FETCH NEXT FROM reader INTO @codiceFiscale,@data
	END
	SELECT @totale = COUNT(*) FROM #ClientiSenzaProfiloMIFID
	SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	SET @testoMail = @testoMail + '</table>'
	CLOSE reader
	DEALLOCATE reader

	

---------------------------------------------------------------------
--Email non inviate

	--SET @testoMail = @testoMail + '<br /><br /><table border="0"><tr><td colspan="4"><strong>Email non inviate:</strong></td></tr>'
	--DECLARE reader CURSOR LOCAL FORWARD_ONLY
	--FOR

	--	SELECT a.rete, a.cod_fiscale, a.cod_agente, 
	--	CASE Tipo
	--		WHEN 'PERF' THEN 'perfezionamento'
	--		WHEN '1_SOLL_NOASS' THEN '1° sollecito risorse non associate'
	--		WHEN '2_SOLL_NOASS' THEN '2° sollecito risorse non associate'
	--		WHEN '3_SOLL_NOASS' THEN '3° sollecito risorse non associate'
	--		WHEN 'S_SOLL_NOASS' THEN 'più di 3 solleciti risorse non associate'
	--		WHEN 'REVOCA_NOASS' THEN 'revoca per risorse non associate'
	--		WHEN '1_SOLL_NOMIG' THEN '1° sollecito cliente non migrato'
	--		WHEN '2_SOLL_NOMIG' THEN '2° sollecito cliente non migrato'
	--		WHEN '3_SOLL_NOMIG' THEN '3° sollecito cliente non migrato'
	--		WHEN 'S_SOLL_NOMIG' THEN 'più di 3 solleciti cliente non migrato'
	--		WHEN 'REVOCA_NOMIG' THEN 'revoca per cliente non migrato'
	--		--V aggiunta tipo mail profilo non attivo
	--		WHEN '1_SOLL_NOPRO' THEN '1° sollecito profilo non attivo'
	--		WHEN '2_SOLL_NOPRO' THEN '2° sollecito profilo non attivo'
	--		WHEN '3_SOLL_NOPRO' THEN '3° sollecito profilo non attivo'
	--		WHEN 'S_SOLL_NOPRO' THEN 'più di 3 solleciti profilo non attivo'
	--		WHEN 'REVOCA_NOPRO' THEN 'revoca per profilo non attivo'
	--	END AS Tipo
	--	FROM C6MartPeriodico.Contrattosei a
	--	inner join C6MartPeriodico.GESTIONE_EMAIL b
	--	on
	--	a.rete = b.rete
	--	and
	--	a.cod_fiscale = b.cod_fiscale
	--	WHERE isnull(b.Inviata,'N')='N'

	--OPEN reader
	--FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--WHILE @@FETCH_STATUS = 0
	--BEGIN
	--	SET @testoMail = @testoMail + '<tr>'
	--	SET @testoMail = @testoMail + '<td>' + @rete + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceFiscale + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @codiceAgente + '</td>'
	--	SET @testoMail = @testoMail + '<td>' + @tipo + '</td>'
	--	SET @testoMail = @testoMail + '</tr>'
	--	FETCH NEXT FROM reader INTO @rete, @codiceFiscale, @codiceAgente, @tipo
	--END
	--SELECT @totale = COUNT(*) FROM C6MartPeriodico.GESTIONE_EMAIL WHERE isnull(Inviata,'N')='N'
	--SET @testoMail = @testoMail + '<tr><td>Totale:</td><td align="right">' + CAST(@totale AS VARCHAR) + '</td><td colspan="2">&nbsp;</td></tr>'
	--SET @testoMail = @testoMail + '</table>'
	--CLOSE reader
	--DEALLOCATE reader

---------------------------------------------------------------------

	SET @testoMail = @testoMail + '</table></body></html>'

	SELECT @testoMail

	DROP TABLE #ReportGenerati
	DROP TABLE #ReportNonGenerati
	DROP TABLE #EmailInviate
	DROP TABLE #IndirizziLunghi
	DROP TABLE #PosizioniStatoL
	DROP TABLE #ProdNonInCat
	DROP TABLE #VaRDiscordanti
	DROP TABLE #ClientiSenzaDataSott
	DROP TABLE #ClientiSenzaPiramideModello
	DROP TABLE #ClientiSenzaContrattoSintesi
	DROP TABLE #ClientiSenzaProfiloMIFID




END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_SRV_ESTRAZ_GIORNALIERA_CC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		alessandro Tringali
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[RP_SRV_ESTRAZ_GIORNALIERA_CC]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_ESTRAZ_GIORNALIERA_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

--V Cancellazione delle tuple inserite nel giorno corrente, può accadere che la procedura viene 
-- lanciata più di una volta, in quel caso inserirei righe doppie.
DELETE FROM C6MartPeriodico.ESTRAZ_GIORNALIERA_CC
WHERE DATEDIFF(dd,dataGenerazione,getDate()) = 0



INSERT INTO C6MartPeriodico.ESTRAZ_GIORNALIERA_CC
SELECT
a.COD_FISCALE,
A.RETE,
A.CODICECONTRATTO,
DATAGENERAZIONE,
NUMERO_CC,
C.CTV_CC,
D.TOT_CTV,
D.TOT_CTV_NO_CC
FROM
[C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] A,
C6MartPeriodico.GESTIONE_PDF_FTP B, 
(
       SELECT 
       COD_FISCALE, 
       RETE, 
       COD_CC AS NUMERO_CC, 
       SUM(SALDOCONTABILE) AS CTV_CC 
       FROM C6MartPeriodico.ANAG_CC 
       GROUP BY 
       COD_FISCALE, 
       RETE,
       COD_CC
  ) C,
(       SELECT COD_FISCALE, RETE,
       SUM(CTV) AS TOT_CTV,
       SUM(CASE WHEN TIPO_PRODOTTO='CC' THEN 0 ELSE CTV END) AS TOT_CTV_NO_CC FROM C6MartPeriodico.PATRIMONIO_BF 
       GROUP BY COD_FISCALE, RETE
)D
WHERE
A.COD_FISCALE=B.CODICEFISCALE
AND A.RETE=B.RETE
AND A.COD_FISCALE=C.COD_FISCALE
AND A.RETE=C.RETE
AND A.COD_FISCALE=D.COD_FISCALE
AND A.RETE=D.RETE 
ORDER BY 1,2,3,5




	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_ESTRAZ_GIORNALIERA_CC' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_ESTRAZ_GIORNALIERA_CC'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_ESTRAZ_GIORNALIERA_CC',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	
END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_ST_ClientiPtfNonDiv]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE  PROCEDURE [C6MartPeriodico].[RP_ST_ClientiPtfNonDiv]    
AS    
BEGIN     
    
exec [dbo].[CreaTabellaBackUp] 'RP_ClientiPtfNonDiv','C6MartPeriodico'    
    
    -- Drop the #temp table if it exists    
    IF OBJECT_ID('tempdb..#temp') IS NOT NULL    
        DROP TABLE #temp;    
    
    -- Log esecuzione    
    INSERT INTO LOG_ESECUZIONE_PERIODICO    
        (Nome, Inizio, Nota)    
    VALUES (    
        'RP_ST_ClientiPtfNonDiv',    
        GETDATE(),    
        'Elaborazione Trimestrale'    
    );    
    
    DECLARE @appo_contratti_l INT;    
    SELECT @appo_contratti_l = ISNULL(COUNT(*), 0) FROM [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER];    
    
    DECLARE @DataFineTrim VARCHAR(8);    
    SET @DataFineTrim = c6martperiodico.getTrimestre2(GETDATE(), 0);    
    
     
    DECLARE @DataClientiPtf VARCHAR(8);    
    select @DataClientiPtf = MAX(DTTrim) from [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
    
 if(@DataFineTrim<>@DataClientiPtf or @appo_contratti_l = 0)     
 begin    
 truncate table [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
 end    
 drop table if exists #temp    
 CREATE TABLE #temp (    
    Rete VARCHAR(3),    
    COD_FISCALE VARCHAR(50),    
    Somma_credito [decimal](9, 4) NULL    
);    
    
    IF (@appo_contratti_l = 0)    
    BEGIN    
  insert into #temp    
        SELECT Rete, COD_FISCALE AS Cod_Fiscale, 0.0000 AS Somma_credito     
        FROM C6StagingPeriodico.APPO_CONTRATTI     
        EXCEPT    
        SELECT rete, cod_fiscale, 0.0000 FROM C6MartPeriodico.PATRIMONIO_BF    
        UNION    
        SELECT rete, cod_fiscale, SUM(credito) AS Somma_credito     
        FROM C6MartPeriodico.PATRIMONIO_BF bf     
        INNER JOIN [C6StagingPeriodico].[RP_CatDivPtf] c ON bf.COD_PRODOTTO = c.CatalogueID    
        GROUP BY rete, cod_fiscale    
        HAVING SUM(credito) < 3.00;    
    END    
    ELSE    
   BEGIN    
  insert into #temp    
        SELECT rete, COD_FISCALE AS Cod_Fiscale, 0.0000 AS Somma_credito    
        FROM C6StagingPeriodico.APPO_CONTRATTI_LIMITER     
        EXCEPT    
        SELECT rete, cod_fiscale, 0.0000 FROM C6MartPeriodico.PATRIMONIO_BF    
        UNION    
        SELECT rete, cod_fiscale, SUM(credito) AS Somma_credito     
        FROM C6MartPeriodico.PATRIMONIO_BF bf     
        INNER JOIN [C6StagingPeriodico].[RP_CatDivPtf] c ON bf.COD_PRODOTTO = c.CatalogueID    
        GROUP BY rete, cod_fiscale    
        HAVING SUM(credito) < 3.00;    
    END;    
 --select * from [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
    
     
    
 -- FerAcu 20250509
 --delete from [C6MartPeriodico].[RP_ClientiPtfNonDiv] where RETE+Chiave_Acn in (select RETE+COD_FISCALE from #temp )    
 IF (@appo_contratti_l != 0)  
 Begin
	delete from [C6MartPeriodico].[RP_ClientiPtfNonDiv] where RETE+Chiave_Acn in (select RETE+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI_LIMITER  )  
 End

    
 INSERT INTO [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
           ([Rete]    
           ,[Chiave_Acn]    
           ,[Codfis]    
           ,[Codman]    
           ,[Dttrim]    
           ,[Credito]    
           ,[Flg_NonDiv])    
    SELECT t.RETE,    
           t.Cod_Fiscale AS Chiave_ACN,    
           CASE WHEN LEN(t.COD_FISCALE) = 16 THEN t.Cod_Fiscale ELSE '' END AS Codfis,    
           a.COD_MANDATO AS Codman,    
     @DataFineTrim as Dttrim,    
           t.Somma_credito as Credito,    
           'S' AS Flg_NonDiv    
    FROM #temp t     
    INNER JOIN C6StagingPeriodico.APPO_CONTRATTI a ON t.RETE = a.rete AND t.Cod_Fiscale = a.COD_FISCALE;    
    
-- rimozione duplicati    
drop table if exists #noDup    
select distinct *     
into #noDup    
from [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
    
truncate table [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
    
insert into [C6MartPeriodico].[RP_ClientiPtfNonDiv]    
select * from #noDup    
-- fine rimozione duplicati    
    
    
-- -- Utilizziamo il comando MERGE per sincronizzare i dati tra le due tabelle    
--MERGE INTO [C6MartPeriodico].[RP_ClientiPtfNonDiv] AS dest    
--USING #nuovatab AS src    
--ON dest.rete = src.rete and dest.chiave_ACN= src.chiave_ACN and dest.dttrim=src.dttrim    
--WHEN MATCHED THEN    
--    UPDATE SET dest.credito = src.credito, dest.flg_NonDiv = src.flg_NonDiv, dest.AzioneMerge='UPDATE/NO VAR'    
--WHEN NOT MATCHED BY TARGET THEN    
--    INSERT (AzioneMerge,Rete, Chiave_ACN, Codfis, Codman, Dttrim, Credito, Flg_NonDiv) VALUES     
-- ('INSERT',src.Rete, src.Chiave_ACN, src.Codfis, src.Codman, src.Dttrim, src.Credito, src.Flg_NonDiv);    
    
    
    -- Log esecuzione    
    UPDATE    
        LOG_ESECUZIONE_PERIODICO    
    SET    
        Fine = GETDATE(),    
        Tipo = 'INSERT',    
        Righe = @@ROWCOUNT    
    WHERE    
        Nome = 'RP_ST_ClientiPtfNonDiv' AND    
        Inizio = (    
            SELECT    
                MAX(Inizio)    
            FROM    
                LOG_ESECUZIONE_PERIODICO    
            WHERE    
                Nome = 'RP_ST_ClientiPtfNonDiv'    
        );    
    
    
END; 
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_TCPTAB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[RP_TCPTAB]
AS
BEGIN
--		-- Log esecuzione
--	INSERT INTO LOG_ESECUZIONE
--		(Nome, Inizio, Nota)
--	VALUES (
--		'RP_CREA_POSITIONID_CONSULENZA',
--		GETDATE(),
--		'Elaborazione Trimestrale'
--	)
	
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
		CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
		CODSOTTOPRODOTTO,
		position_id
INTO #TAB1
FROM #tcptab	

UPDATE  #TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (       
				   C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
 
	UPDATE 	#tcptab
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF, 
								'', 
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   #tcptab c
			left join #TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
  
    
drop table 	#TAB1	

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_Tipologia_Campione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--Verifica tutti i clienti della APPO_CONTRATTI se hanno la nota fai
--per il singolo cliente [C6StagingPeriodico].[ClienteProdottiAssicurativiVita] 'F','BBNNLL48T52E730L'

CREATE procedure [C6MartPeriodico].[RP_Tipologia_Campione]
as
drop table if exists c6martperiodico.RP_TB_Tipologia_Campione
--per assicurativi
drop table if exists #assicurativi
SELECT distinct rete,cod_fiscale,count(*) as conta
into #assicurativi
from C6MartPeriodico.PATRIMONIO_BF bf
inner join C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
on bf.COD_PRODOTTO = kat.CatalogueID
where kat.Alberatura in (7,8,9) and
	bf.rete+bf.cod_fiscale in (select rete+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI)
group by rete,COD_FISCALE

	select a.rete,a.COD_FISCALE,
	case when f.conta is null then 'NO' 
	else 'SI' end as ASSICURATIVI
	into #assicurativiS
	from C6stagingPeriodico.APPO_CONTRATTI a 
	left join #assicurativi f on a.rete+a.COD_FISCALE=f.RETE+f.COD_FISCALE 

--fine assicurativi

--inizio colonna fai
drop table if exists #fai
SELECT distinct rete,COD_FISCALE, count(*) as Conta
into #fai
FROM [C6MartPeriodico].[PATRIMONIO_BF]
WHERE rtrim(ltrim(cod_interno)) + rtrim(ltrim(cod_sottoprodotto)) IN (
		'IA3364S'
		,'ID8562S'
		,'PE1772S'
		,'IA3447S'
		,'IA3448S'
		)
	and rete+COD_FISCALE in (select rete+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI)
	group by rete,COD_FISCALE

	select a.rete,a.COD_FISCALE,
	case when f.conta is null then 'NO' 
	else 'SI' end as FAI
	into #faiS
	from C6stagingPeriodico.APPO_CONTRATTI a left join #fai f on a.rete+a.COD_FISCALE=f.RETE+f.COD_FISCALE 
--fine colonna fai

	select t.rete,
	t.codice_fiscale,
	c.flag_stampa,
	case when t.freq_diagnosi='' then 'NO' else 'SI' end as Diagnosi,
	t.segmento as Segmento,
	case when t.flgprof='N' then 'NO' else 'SI' end as Professionale,
	case when t.ESG='N' then 'NO' else 'SI' end as ESG,
	a.ASSICURATIVI,
	f.FAI--,
--	t.rete+' '+t.codice_fiscale+' '+'Diagnosi='+Diagnosi+'Segmento='--+t.segmento+'Professionale='+t.flgprof+'ESG='+t.ESG+'ASSICURATIVI='+a.ASSICURATIVI+'FAI='+f.FAI 
	--as commento
	into #tipologia_Campione--c6martperiodico.RP_TB_Tipologia_Campione
from C6MartPeriodico.tabellone t inner join C6MartPeriodico.TB_Campione c 
on t.chiave_acn=c.rete+c.cod_fiscale  
left join #assicurativiS a on t.chiave_acn=a.rete+a.COD_FISCALE
left join #FaiS f on t.chiave_acn=f.rete+f.COD_FISCALE
order by t.codice_fiscale

select
rete,
codice_fiscale,
flag_stampa,
Diagnosi,
Segmento,
Professionale,
ESG,
ASSICURATIVI,
FAI,
rete+' '+codice_fiscale+' '+'Diagnosi='+Diagnosi+' '+'Segmento='+segmento+' '+'Professionale='+Professionale+' '+'ESG='+ESG+' '+'ASSICURATIVI='+ASSICURATIVI+' '+'FAI='+FAI as commento
into C6MartPeriodico.RP_TB_Tipologia_Campione
from #tipologia_Campione

select * from C6MartPeriodico.RP_TB_Tipologia_Campione order by codice_fiscale 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[RP_Tipologia_Tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--Verifica tutti i clienti della APPO_CONTRATTI se hanno la nota fai
--per il singolo cliente [C6StagingPeriodico].[ClienteProdottiAssicurativiVita] 'F','BBNNLL48T52E730L'

CREATE procedure [C6MartPeriodico].[RP_Tipologia_Tabellone]
as
drop table if exists c6martperiodico.RP_TB_Tipologia_Tabellone
--per assicurativi
drop table if exists #assicurativi
SELECT distinct rete,cod_fiscale,count(*) as conta
into #assicurativi
from C6MartPeriodico.PATRIMONIO_BF bf
inner join C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
on bf.COD_PRODOTTO = kat.CatalogueID
where kat.Alberatura in (7,8,9) and
	bf.rete+bf.cod_fiscale in (select rete+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI)
group by rete,COD_FISCALE

	select a.rete,a.COD_FISCALE,
	case when f.conta is null then 'NO' 
	else 'SI' end as ASSICURATIVI
	into #assicurativiS
	from C6stagingPeriodico.APPO_CONTRATTI a 
	left join #assicurativi f on a.rete+a.COD_FISCALE=f.RETE+f.COD_FISCALE 

--fine assicurativi

--inizio colonna fai
drop table if exists #fai
SELECT distinct rete,COD_FISCALE, count(*) as Conta
into #fai
FROM [C6MartPeriodico].[PATRIMONIO_BF]
WHERE rtrim(ltrim(cod_interno)) + rtrim(ltrim(cod_sottoprodotto)) IN (
		'IA3364S'
		,'ID8562S'
		,'PE1772S'
		,'IA3447S'
		,'IA3448S'
		)
	and rete+COD_FISCALE in (select rete+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI)
	group by rete,COD_FISCALE

	select a.rete,a.COD_FISCALE,
	case when f.conta is null then 'NO' 
	else 'SI' end as FAI
	into #faiS
	from C6stagingPeriodico.APPO_CONTRATTI a left join #fai f on a.rete+a.COD_FISCALE=f.RETE+f.COD_FISCALE 
--fine colonna fai

	select t.rete,
	t.codice_fiscale,
	--c.flag_stampa,
	case when t.freq_diagnosi='' then 'NO' else 'SI' end as Diagnosi,
	t.segmento as Segmento,
	case when t.flgprof='N' then 'NO' else 'SI' end as Professionale,
	case when t.ESG='N' then 'NO' else 'SI' end as ESG,
	a.ASSICURATIVI,
	f.FAI
	into c6martperiodico.RP_TB_Tipologia_Tabellone
from C6MartPeriodico.tabellone t 
left join #assicurativiS a on t.chiave_acn=a.rete+a.COD_FISCALE
left join #FaiS f on t.chiave_acn=f.rete+f.COD_FISCALE
order by t.codice_fiscale

select * from C6MartPeriodico.RP_TB_Tipologia_Tabellone order by codice_fiscale 


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Segnala_Disallineamenti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- exec [C6MartPeriodico].[Segnala_Disallineamenti]
CREATE procedure [C6MartPeriodico].[Segnala_Disallineamenti]
as

	set nocount on

	declare @Rete varchar(1)
	declare @CodFis varchar(20)
	declare @descSegnalazione varchar(200)

	--create table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim varchar(8), rete varchar(1), codiceFiscale varchar(20), TIPPROD varchar(100), CODINT varchar(100), CODPROD varchar(100), SUBPROD varchar(100), MAF varchar(100), CODABI varchar(100), ISIN varchar(100))
	
	declare @dtTrim varchar(8)

	set @dtTrim = [C6MartPeriodico].[getTrimestre](getdate(),0)

	exec dbo.CreaTabellaBackUp 'tSegnala_Disallineamenti_Result', 'C6MartPeriodico'

	declare @contaLimiter int

	select @contaLimiter = count(*) from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER]

	truncate table C6MartPeriodico.tSegnala_Disallineamenti_Result

	if @contaLimiter = 0
		begin
			insert into C6MartPeriodico.tSegnala_Disallineamenti_Result (rete, codicefiscale, descrizione)			
				SELECT rete, codiceFiscale, descSegnalazione
				FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]
				where idTipoControllo = 9
		end
	else
		begin
			insert into C6MartPeriodico.tSegnala_Disallineamenti_Result (rete, codicefiscale, descrizione)							
				SELECT a.rete, a.codiceFiscale, a.descSegnalazione
				FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] a
					inner join [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] b
					on a.rete = b.rete
					and a.codiceFiscale = b.cod_fiscale
				where a.idTipoControllo = 9
		end

	select * from C6MartPeriodico.tSegnala_Disallineamenti_Result
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Segnala_Disallineamenti_20190129]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- exec [C6MartPeriodico].[Segnala_Disallineamenti]
CREATE procedure [C6MartPeriodico].[Segnala_Disallineamenti_20190129]
as

	set nocount on

	declare @Rete varchar(1)
	declare @CodFis varchar(20)
	declare @descSegnalazione varchar(200)

	--create table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim varchar(8), rete varchar(1), codiceFiscale varchar(20), TIPPROD varchar(100), CODINT varchar(100), CODPROD varchar(100), SUBPROD varchar(100), MAF varchar(100), CODABI varchar(100), ISIN varchar(100))
	
	declare @dtTrim varchar(8)

	set @dtTrim = [C6MartPeriodico].[getTrimestre](getdate(),0)

	exec dbo.CreaTabellaBackUp 'tSegnala_Disallineamenti_Result', 'C6MartPeriodico'

	truncate table C6MartPeriodico.tSegnala_Disallineamenti_Result

	insert into C6MartPeriodico.tSegnala_Disallineamenti_Result (rete, codicefiscale, descrizione)

		SELECT rete, codiceFiscale, descSegnalazione
		FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]
		where idTipoControllo = 9

		--SELECT a.rete, a.codiceFiscale, a.descSegnalazione
		--FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] a
		--	inner join [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] b
		--	on a.rete = b.rete
		--	and a.codiceFiscale = b.cod_fiscale
		--where a.idTipoControllo = 9

	select * from C6MartPeriodico.tSegnala_Disallineamenti_Result
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Segnala_ProdottiNonCensiti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- exec [C6MartPeriodico].[Segnala_ProdottiNonCensiti]
CREATE procedure [C6MartPeriodico].[Segnala_ProdottiNonCensiti]
as

	set nocount on

	declare @Rete varchar(1)
	declare @CodFis varchar(20)
	declare @idTipoControllo int

	declare @tipprod varchar(100)
	declare @codint varchar(100)
	declare @codprod varchar(100)
	declare @subprod varchar(100)
	declare @maf varchar(100)
	declare @codabi varchar(100)
	declare @isin varchar(100)

	--create table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim varchar(8), rete varchar(1), codiceFiscale varchar(20), TIPPROD varchar(100), CODINT varchar(100), CODPROD varchar(100), SUBPROD varchar(100), MAF varchar(100), CODABI varchar(100), ISIN varchar(100))
	
	declare @dtTrim varchar(8)

	set @dtTrim = [C6MartPeriodico].[getTrimestre](getdate(),0)

	exec dbo.CreaTabellaBackUp 'tSegnala_ProdottiNonCensiti_Result', 'C6MartPeriodico'

	truncate table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result

	declare @contaLimiter int

	select @contaLimiter = count(*) from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER]

	if @contaLimiter = 0
		begin
			declare cur cursor for			
				SELECT rete, codiceFiscale, idTipoControllo
				FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]			
				where idTipoControllo in (1, 2)
		end
	else
		begin
			declare cur cursor for
				SELECT a.rete, a.codiceFiscale, a.idTipoControllo
				FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] a
					inner join [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] b
					on a.rete = b.rete
					and a.codiceFiscale = b.cod_fiscale
				where a.idTipoControllo in (1, 2)
		end
	  --and codiceFiscale = 'VNTGNN63D16D704Q'

	open cur

	fetch next from cur into @Rete, @CodFis, @idTipoControllo

	while @@fetch_status = 0
		begin

		select @tipprod = tipprod,
			@codint = codint,
			@codprod = codprod,
			@subprod = subprod,
			@maf = maf,
			@codabi = codabi,
			@isin = isin
		from C6StagingPeriodico.SPB_CONTR_SINTESI SPB
		where
			SPB.rete = @Rete and SPB.codfis = @CodFis
			and positionid is NULL
		order by tipprod, codint, subprod

		if @maf = ''
			set @maf = null


		if @idTipoControllo = 1
			begin
				-- 1. TipProd
				declare @TipoProdotto varchar(100)

				select distinct @TipoProdotto = TipoProdotto
				from C6StagingPeriodico.RP_CatalogoProdotti
				where TipoProdotto = @tipprod -- and codsottoprodotto = 'LSEL' and TipoProdotto = 'ASU2'-- AND CODMAF = '1499131' and codIsin = 'LU1829331989'

				--if @@rowcount = 0
				if @TipoProdotto is null
					begin
						insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODPROD, MAF, CODABI ) values (@dtTrim, @Rete, @CodFis, @tipprod, @codprod, @maf, @codabi)
						--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod --+ ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin
					end
				else
					begin
						-- 2. CodInt
						declare @CodInterno varchar(100)

						select distinct @CodInterno = codinterno
						from C6StagingPeriodico.RP_CatalogoProdotti
						where
							TipoProdotto = @tipprod
							and
							codinterno = @codint -- and codsottoprodotto = 'LSEL' and TipoProdotto = 'ASU2'-- AND CODMAF = '1499131' and codIsin = 'LU1829331989'

						--if @@rowcount = 0
						if @CodInterno is null
							begin
								insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, MAF, CODABI) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @maf, @codabi)
								--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint --+ ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin
							end
						else
							begin
								-- 3. SubProd
								declare @CodSottoProdotto varchar(100)

								select distinct @CodSottoProdotto = codsottoprodotto
								from C6StagingPeriodico.RP_CatalogoProdotti
								where
									TipoProdotto = @tipprod
									and
									codinterno = @codint
									and
									codsottoprodotto = @subprod

								--if @@rowcount = 0
								if @CodSottoProdotto is null
									begin
										insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi)
										--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod --+ ', CodIsin = ' + @isin
									end
								else
									begin
										-- 4. Isin
										declare @CodIsin varchar(100)

										select distinct @CodIsin = codIsin
										from C6StagingPeriodico.RP_CatalogoProdotti
										where
											TipoProdotto = @tipprod
											and
											codinterno = @codint
											and
											codsottoprodotto = @subprod
											and
											codIsin = @isin

										--if @@rowcount = 0
										if @CodIsin is null
											begin
												insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi, @isin)
												--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin
											end
										else
											begin
												-- 5. Maf
												declare @CodMaf varchar(100)

												select distinct codmaf
												from C6StagingPeriodico.RP_CatalogoProdotti
												where
													TipoProdotto = @tipprod
													and
													codinterno = @codint
													and
													codsottoprodotto = @subprod
													and
													codIsin = @isin
													and
													CodMaf = @maf

												--if @@rowcount = 0
												if @CodMaf is null
													begin
														insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi, @isin)
														--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin + ', CodMaf = ' + @maf
													end
												else
													begin
														insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale) values (@dtTrim, @Rete, @CodFis)
														--select 'CENSITO'
													end
											end
										end
									end
								end
							end
			else
				begin
					declare @DesProd varchar(200)
					declare @cod_interno varchar(100)
					declare @cod_sottoprodotto varchar(100)

					select @cod_interno = cod_interno, @cod_sottoprodotto = cod_sottoprodotto, @DesProd = DesProd from C6MartPeriodico.PROVENTI where rete = @Rete and cod_fiscale = @CodFis

					if @DesProd is null
						insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, CODINT, SUBPROD) values (@dtTrim, @Rete, @CodFis, @cod_interno, @cod_sottoprodotto)
				end

			--*************************

			set @TipoProdotto = null
			set @CodInterno = null
			set @CodSottoProdotto = null
			set @CodMaf = null
			set @CodIsin = null

			fetch next from cur into @Rete, @CodFis, @idTipoControllo

	end

	close cur
	deallocate cur


	select
		Rete,
		CodiceFiscale,
		isnull(TIPPROD, '') as TIPPROD,
		isnull(CODINT, '') as CODINT,
		isnull(CODPROD, '') as CODPROD,
		isnull(SUBPROD, '') as SUBPROD,
		isnull(MAF, '') as MAF,
		isnull(CODABI, '') as CODABI,
		isnull(ISIN, '') as ISIN
	from C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result
	order by TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN

	--drop table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Segnala_ProdottiNonCensiti_20190129]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- exec [C6MartPeriodico].[Segnala_ProdottiNonCensiti]
CREATE procedure [C6MartPeriodico].[Segnala_ProdottiNonCensiti_20190129]
as

	set nocount on

	declare @Rete varchar(1)
	declare @CodFis varchar(20)
	declare @idTipoControllo int

	declare @tipprod varchar(100)
	declare @codint varchar(100)
	declare @codprod varchar(100)
	declare @subprod varchar(100)
	declare @maf varchar(100)
	declare @codabi varchar(100)
	declare @isin varchar(100)

	--create table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim varchar(8), rete varchar(1), codiceFiscale varchar(20), TIPPROD varchar(100), CODINT varchar(100), CODPROD varchar(100), SUBPROD varchar(100), MAF varchar(100), CODABI varchar(100), ISIN varchar(100))
	
	declare @dtTrim varchar(8)

	set @dtTrim = [C6MartPeriodico].[getTrimestre](getdate(),0)

	exec dbo.CreaTabellaBackUp 'tSegnala_ProdottiNonCensiti_Result', 'C6MartPeriodico'

	truncate table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result

	declare cur cursor for

		SELECT rete, codiceFiscale, idTipoControllo
		FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality]			
		where idTipoControllo in (1, 2)

		--SELECT a.rete, a.codiceFiscale, a.idTipoControllo
		--FROM [C6StampeCentralizzate].[C6MartPeriodico].[tb_SegnalazioniDataQuality] a
		--	inner join [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER] b
		--	on a.rete = b.rete
		--	and a.codiceFiscale = b.cod_fiscale
		--where a.idTipoControllo in (1, 2)

	  --and codiceFiscale = 'VNTGNN63D16D704Q'

	open cur

	fetch next from cur into @Rete, @CodFis, @idTipoControllo

	while @@fetch_status = 0
		begin

		select @tipprod = tipprod,
			@codint = codint,
			@codprod = codprod,
			@subprod = subprod,
			@maf = maf,
			@codabi = codabi,
			@isin = isin
		from C6StagingPeriodico.SPB_CONTR_SINTESI SPB
		where
			SPB.rete = @Rete and SPB.codfis = @CodFis
			and positionid is NULL
		order by tipprod, codint, subprod

		if @maf = ''
			set @maf = null


		if @idTipoControllo = 1
			begin
				-- 1. TipProd
				declare @TipoProdotto varchar(100)

				select distinct @TipoProdotto = TipoProdotto
				from C6StagingPeriodico.RP_CatalogoProdotti
				where TipoProdotto = @tipprod -- and codsottoprodotto = 'LSEL' and TipoProdotto = 'ASU2'-- AND CODMAF = '1499131' and codIsin = 'LU1829331989'

				--if @@rowcount = 0
				if @TipoProdotto is null
					begin
						insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODPROD, MAF, CODABI ) values (@dtTrim, @Rete, @CodFis, @tipprod, @codprod, @maf, @codabi)
						--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod --+ ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin
					end
				else
					begin
						-- 2. CodInt
						declare @CodInterno varchar(100)

						select distinct @CodInterno = codinterno
						from C6StagingPeriodico.RP_CatalogoProdotti
						where
							TipoProdotto = @tipprod
							and
							codinterno = @codint -- and codsottoprodotto = 'LSEL' and TipoProdotto = 'ASU2'-- AND CODMAF = '1499131' and codIsin = 'LU1829331989'

						--if @@rowcount = 0
						if @CodInterno is null
							begin
								insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, MAF, CODABI) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @maf, @codabi)
								--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint --+ ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin
							end
						else
							begin
								-- 3. SubProd
								declare @CodSottoProdotto varchar(100)

								select distinct @CodSottoProdotto = codsottoprodotto
								from C6StagingPeriodico.RP_CatalogoProdotti
								where
									TipoProdotto = @tipprod
									and
									codinterno = @codint
									and
									codsottoprodotto = @subprod

								--if @@rowcount = 0
								if @CodSottoProdotto is null
									begin
										insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi)
										--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod --+ ', CodIsin = ' + @isin
									end
								else
									begin
										-- 4. Isin
										declare @CodIsin varchar(100)

										select distinct @CodIsin = codIsin
										from C6StagingPeriodico.RP_CatalogoProdotti
										where
											TipoProdotto = @tipprod
											and
											codinterno = @codint
											and
											codsottoprodotto = @subprod
											and
											codIsin = @isin

										--if @@rowcount = 0
										if @CodIsin is null
											begin
												insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi, @isin)
												--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin
											end
										else
											begin
												-- 5. Maf
												declare @CodMaf varchar(100)

												select distinct codmaf
												from C6StagingPeriodico.RP_CatalogoProdotti
												where
													TipoProdotto = @tipprod
													and
													codinterno = @codint
													and
													codsottoprodotto = @subprod
													and
													codIsin = @isin
													and
													CodMaf = @maf

												--if @@rowcount = 0
												if @CodMaf is null
													begin
														insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN) values (@dtTrim, @Rete, @CodFis, @tipprod, @codint, @codprod, @subprod, @maf, @codabi, @isin)
														--select 'Rete = ' + @Rete + ' CodiceFiscale = ' + @CodFis + ' NON CENSITO ' + 'TipoProdotto = ' + @tipprod + ', CodInterno = ' + @codint + ', CodSottoProdotto = ' + @subprod + ', CodIsin = ' + @isin + ', CodMaf = ' + @maf
													end
												else
													begin
														insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale) values (@dtTrim, @Rete, @CodFis)
														--select 'CENSITO'
													end
											end
										end
									end
								end
							end
			else
				begin
					declare @DesProd varchar(200)
					declare @cod_interno varchar(100)
					declare @cod_sottoprodotto varchar(100)

					select @cod_interno = cod_interno, @cod_sottoprodotto = cod_sottoprodotto, @DesProd = DesProd from C6MartPeriodico.PROVENTI where rete = @Rete and cod_fiscale = @CodFis

					if @DesProd is null
						insert into C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result (dtTrim, rete, codiceFiscale, CODINT, SUBPROD) values (@dtTrim, @Rete, @CodFis, @cod_interno, @cod_sottoprodotto)
				end

			--*************************

			set @TipoProdotto = null
			set @CodInterno = null
			set @CodSottoProdotto = null
			set @CodMaf = null
			set @CodIsin = null

			fetch next from cur into @Rete, @CodFis, @idTipoControllo

	end

	close cur
	deallocate cur


	select
		Rete,
		CodiceFiscale,
		isnull(TIPPROD, '') as TIPPROD,
		isnull(CODINT, '') as CODINT,
		isnull(CODPROD, '') as CODPROD,
		isnull(SUBPROD, '') as SUBPROD,
		isnull(MAF, '') as MAF,
		isnull(CODABI, '') as CODABI,
		isnull(ISIN, '') as ISIN
	from C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result
	order by TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, ISIN

	--drop table C6MartPeriodico.tSegnala_ProdottiNonCensiti_Result
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SetDocumentMissing]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

	CREATE procedure [C6MartPeriodico].[SetDocumentMissing]
	( @idReport bigint )
	as
	begin

	update c6MartPeriodico.GESTIONE_PDF_FTP set FlagInvio = 'X' where identityreport = @idReport and FLagInvio = 'N'

	end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_BlackList_GetAll]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6MartPeriodico].[sp_BlackList_GetAll]
	@DataInserimento datetime
AS
BEGIN

select * from [C6MartPeriodico].[ExcludedList]
where DataInserimento = @DataInserimento


END






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_BlackList_GetBlockedNumber]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

CREATE PROCEDURE [C6MartPeriodico].[sp_BlackList_GetBlockedNumber]
	@DataInserimento datetime
AS
BEGIN

select A.Bloccato, B.NonBloccato
from
(select Count(*) As Bloccato
from	[C6MartPeriodico].[ExcludedList]
where	DataInserimento = @DataInserimento
		and Bloccato = 1) A,
(select Count(*) As NonBloccato
from	[C6MartPeriodico].[ExcludedList]
where	DataInserimento = @DataInserimento
		and Bloccato = 0) B


END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_BlackList_Ricerca_GetAll]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

CREATE PROCEDURE [C6MartPeriodico].[sp_BlackList_Ricerca_GetAll]
	@DataRicerca datetime
AS
BEGIN

select * from [C6MartPeriodico].[ExcludedList]
where	year(DataInserimento) = year(@DataRicerca)		and
		month(DataInserimento) = month(@DataRicerca)	and
		day(DataInserimento) = day(@DataRicerca)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_BlackList_Save_Row]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure


CREATE PROCEDURE [C6MartPeriodico].[sp_BlackList_Save_Row]
	@Rete				char(1), 
	@CodiceFiscale		varchar(16),
	@DescrizioneErrore	varchar(8000),
	@DataInserimento	datetime,
	@Bloccato			bit
AS
BEGIN

insert into  [C6MartPeriodico].[ExcludedList]([RETE] ,[CodiceFiscale] ,[DescrizioneErrore], [DataInserimento], [Bloccato]) 
VALUES	(@Rete, @CodiceFiscale, @DescrizioneErrore, @DataInserimento, @Bloccato)

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_BlackList_Update_Row]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

CREATE PROCEDURE [C6MartPeriodico].[sp_BlackList_Update_Row]
	@Rete				char(1), 
	@CodiceFiscale		varchar(16),
	@DataInserimento	datetime,
	@Bloccato			bit
AS
BEGIN

update	[C6MartPeriodico].[ExcludedList]
set		[Bloccato] = @Bloccato
where	[RETE]				= @Rete				and
		[CodiceFiscale]		= @CodiceFiscale	and
		[DataInserimento]	= @DataInserimento

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_caricaBlacklist]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- Stored procedure

CREATE   PROCEDURE [C6MartPeriodico].[sp_caricaBlacklist]
	
AS
BEGIN

exec [C6StagingPeriodico].[REPTRIM_WSEIDC]
exec [C6StagingPeriodico].[REPTRIM_WSEIPS]

 Declare @dtTrime as decimal;  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  

 --truncate table C6MartPeriodico.ExcludedList
 
 drop table if exists #blacklist
 drop table if exists #riunisco_blacklist
 drop table if exists #rimuovi_duplicati

 update C6MartPeriodico.tabellone
set lettera_sost='N' --nel caso dovesse essere rilanciata e ci fossero problemi sulla wseidc e wseips


 select distinct rete
				,case when codman <> '' then 'FF@' + CODMAN else codfis end as codiceFiscale,
				 case when tipolett = '0' then 'RFA=0'--'BLACKLIST RFA=0' 
				   	  when tipolett = '6' then 'RFA Minus'--'BLACKLIST RFA MINUS CLIENTE SEI' 
					  when tipolett = '2' then 'BLACKLIST RFA MINUS CLIENTE SEI E IMMOBILIARE' 
					  when TIPOLETT='A' then 'Profilo EC'
					  END AS  DescrErr 
			--when tipolett = 1 then 'BLACKLIST RFA MINUS CLIENTE IMMOBILIARE' 
			into #blacklist
			from C6stagingPeriodico.wseidc 
			where TIPOLETT not in ('R','S') and dttrim = @dtTrime

insert into #blacklist
select distinct rete,
				case when codman <> '' then 'FF@' + CODMAN else codfis end as codiceFiscale,
				'Profilo Scaduto' as DescrErr 
					from c6stagingPeriodico.wseips 
					where dttrim = @dtTrime




insert into C6MartPeriodico.ExcludedList
select rete,codiceFiscale,DescrErr,getdate() as DataIns,'1' as Bloccato from #blacklist--#riunisco_blacklist


SELECT rete,codicefiscale,STRING_AGG( ISNULL(DescrErr, ' '), ',') As descrerr,getdate() as DataIns,'1' as Bloccato 
	into #riunisco_blacklist
       From #blacklist group by rete,codicefiscale -- a causa del frontend non posso mettere piu motivazioni per lo stesso cf ma mi serve per il tabellone per la lettera sostitutiva

update C6MartPeriodico.tabellone
set lettera_sost='S'
where chiave_acn in (select rete+codicefiscale from #riunisco_blacklist)


--rimuove duplicati nel caso questa sp dovesse essere lanciata piu volte

select distinct rete,codicefiscale,descrerr
into #rimuovi_duplicati
from C6MartPeriodico.ExcludedList

delete from C6MartPeriodico.ExcludedList
where rete+codicefiscale+DescrErr in (select rete+codicefiscale+DescrErr from #rimuovi_duplicati)

insert into C6MartPeriodico.ExcludedList
select rete,codiceFiscale,DescrErr,getdate() as DataIns,'1' as Bloccato from #rimuovi_duplicati

--fine rimozione duplicati

exec [C6MartPeriodico].[Blacklist_Blocco_Tabellone] 'blocco' --aggiorna tabellone

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_caricaBlacklist_RFAMinus_old]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

CREATE PROCEDURE [C6MartPeriodico].[sp_caricaBlacklist_RFAMinus_old]
	
AS
BEGIN


 Declare @dtTrime as decimal;  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  

 

 insert into c6martPeriodico.ExcludedList
 select
	   [Rete]
      ,case when codman <> '' then 'FF@' + CODMAN else codfis end as codiceFiscale
      ,case when tipolett = 0 then 'BLACKLIST RFA=0' 
			when tipolett = 6 then 'BLACKLIST RFA MINUS CLIENTE SEI' 
			when tipolett = 2 then 'BLACKLIST RFA MINUS CLIENTE SEI E IMMOBILIARE' 
			when tipolett = 1 then 'BLACKLIST RFA MINUS CLIENTE IMMOBILIARE' END AS  DescrErr
      ,getdate() as [DataIns]
      ,1 as [Bloccato]
from c6stagingPeriodico.wseidc 
where dttrim = @dtTrime



 insert into c6martPeriodico.ExcludedList
 select
	   [Rete]
      ,case when codman <> '' then 'FF@' + CODMAN else codfis end as CODFIS
      ,'BLACKLIST PROFILO SCADUTO' as DescrErr
      ,getdate() as [DataIns]
      ,1 as [Bloccato]
from c6stagingPeriodico.wseips
where dttrim = @dtTrime


END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_BonificaDati]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SP_DQ_BonificaDati]      
AS      
BEGIN      
      
-- select count(*) from C6MartPeriodico.contrattosei      
      
-- BONIFICA CARATTERI ANOMALI      
update c6martperiodico.contrattosei     
set indirizzo = 'VIA CONTRA'' BARONA, 52'    
where rete = 'F'      
and cod_fiscale = 'CRCMHL70M62I531H'      
and indirizzo ='VIA CONTRÀ BARONA, 52'    
    
update c6martperiodico.anag_clienti    
set indirizzo = 'VIA CONTRA'' BARONA, 52'    
where rete = 'F'      
and cod_fiscale = 'CRCMHL70M62I531H'      
and indirizzo ='VIA CONTRÀ BARONA, 52'    
    
update c6martperiodico.contrattosei    
set indirizzo = 'STRADA MONTA'' DA LANZA 48'    
where rete = 'S'      
and cod_fiscale = 'VLIPLA63H56L741Q'      
and indirizzo ='STRADA MONTÀ DA LANZA 48'    
      
update c6martperiodico.contrattosei set indirizzo ='VIA FRANGIPANE, TR.2, N.6' where cod_fiscale ='BRGGNN32A02H224F' and INDIRIZZO= 'VIA FRANGIPANE, TR.2^, N.6'      
update c6martperiodico.contrattosei set indirizzo ='VIA POSTIERLA N 31/C' where cod_fiscale ='CCCRNI39T54I381U' and INDIRIZZO= 'VIA POSTIERLA N¢ 31/C'      
update c6martperiodico.contrattosei set indirizzo ='VIA DEGLI OPERAI N 25' where cod_fiscale ='DTNNZR56M23D653T' and INDIRIZZO= 'VIA DEGLI OPERAI N¢ 25'      
update c6martperiodico.contrattosei set indirizzo ='VIA F.SICILIANI N 1' where cod_fiscale ='FRRTDR64M26A638Q' and INDIRIZZO= 'VIA F.SICILIANI N¢ 1'      
update c6martperiodico.contrattosei set Citta    ='VALLA'' DI RIESE PIO X' where cod_fiscale ='NDRTZN81A03C111N' and Citta=          'VALLA'' DI RIESE PIO X¢'      
update c6martperiodico.contrattosei set indirizzo ='VIA A.MOTTA N 61' where cod_fiscale ='TRRCRL47S28L667C' and INDIRIZZO= 'VIA A.MOTTA N¢ 61'      
update c6martperiodico.contrattosei set indirizzo ='VIA RIOMAGGIORE N 1' where cod_fiscale ='CRPDNC37C69L689V' and INDIRIZZO= 'VIA RIOMAGGIORE N¢1'      
update c6martperiodico.contrattosei set indirizzo ='VIA SANTI N 17' where cod_fiscale ='RNALRT64R05G337D' and INDIRIZZO= 'VIA SANTI N¢ 17'      
update c6martperiodico.contrattosei set indirizzo ='VIA M.DELLA LIBERT'' 13' where cod_fiscale ='GLPMRA71A16G856Z' and INDIRIZZO= 'VIA M.DELLA LIBERTÀ 13'      
update c6martperiodico.contrattosei set indirizzo ='LOCALITA'' MONETA' where cod_fiscale ='VLLCNZ58P47L219Z' and INDIRIZZO= 'LOCALITÀ MONETA'      
update c6martperiodico.contrattosei set Citta    ='FORLI''' where cod_fiscale ='GHTDNC38S29D704K' and Citta=          'FORLÌ'      
      
      
update c6martperiodico.contrattosei      
set presso = 'KOSTORIS e ASSOC.-STUDIO LEGALE'      
where rete = 'F'      
and cod_fiscale = 'KSTLRT60R14L424G'      
and presso = 'KOSTORIS & ASSOC.-STUDIO LEGALE'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA VINCENZO CIARDO N. 3'      
where rete = 'S'      
and cod_fiscale = 'CNGMTR43S59E506C'      
and indirizzo = 'VIA VINCENZO CIARDO N¢ 3'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA VINCENZO CIARDO N. 3'      
where rete = 'S'      
and cod_fiscale = 'CNGRSO46T44E506U'      
and indirizzo = 'VIA VINCENZO CIARDO N¢ 3'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA VINCENZO BELLINI N.6'      
where rete = 'S'      
and cod_fiscale = 'CRBMLD59M69C351S'      
and indirizzo = 'VIA VINCENZO BELLINI N¢6'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA SS 18 I TR. N. 11'      
where rete = 'S'      
and cod_fiscale = 'LZZCRC51P41B666S'      
and indirizzo = 'VIA SS 18 I TR. N¢ 11'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA DELL''IMPRUNETA N. 26'      
where rete = 'S'      
and cod_fiscale = 'RMNMRA69D13C351J'      
and indirizzo = 'VIA DELL''IMPRUNETA N¢ 26'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'LOCALITA'' MALTRAVERSO, 13'      
where rete = 'F'      
and cod_fiscale = 'PRSRNZ59B21C847E'      
and indirizzo = 'LOCALITÀ MALTRAVERSO, 13'      
      
update c6martperiodico.contrattosei      
set citta = 'CITTA'' SANTANGELO'    
where rete = 'S'      
and cod_fiscale = 'DFRNTN56D20A120O'      
and citta = 'CITTÀ SANTANGELO'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA MICHELE PIETRAVALLE 85 R'      
where rete = 'F'      
and cod_fiscale = 'DLLGST40D14B963Q'      
and indirizzo = 'VIA MICHELE PIETRAVALLE 85 ÇR'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA MICHELE PIETRAVALLE 85 B'      
where rete = 'F'      
and cod_fiscale = 'NZZSRA43S52F839U'      
and indirizzo = 'VIA MICHELE PIETRAVALLE 85 ÇB'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA TRENTO 14 - 27 SC D'      
where rete = 'S'      
and cod_fiscale = 'BOXFNC95S22D969G'      
and indirizzo = 'VIA TRENTO 14 Ç 27 SC D'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VCLO POME'' 14'      
where rete = 'F'      
and cod_fiscale = 'PRNNRC48D09E801B'      
and indirizzo = 'VCLO POMÈ 14'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'LOC.MASARE'' COL BADIOT'      
where rete = 'S'      
and cod_fiscale = 'CRDNZE48S13E490Z'      
and indirizzo = 'LOC.MASARÈ COL BADIOT'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA ROMBO'' 37'      
where rete = 'F'      
and cod_fiscale = 'STRGLG70H15H355F'      
and indirizzo = 'VIA ROMBÒ 37'      
      
--inizio intervento: 17/07/2015 LMaggi modifica carattere anomalo presente nel campo indirizzo e del campo 'presso' della tb c6martperiodico.contrattosei      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA BEATO ANGELICO N. 4'      
where rete = 'F'      
and cod_fiscale = 'CLLPLA53R43G148Z'      
and indirizzo = 'VIA BEATO ANGELICO N¢ 4'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'LOCAL.FORNI N. 2'      
where rete = 'F'      
and cod_fiscale = 'DNSVTR45B04A940D'      
and indirizzo = 'LOCAL.FORNI N¢ 2'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA DEL CORMORANO N. 21'      
where rete = 'F'      
and cod_fiscale = 'SVVSRA75L43L117F'      
and indirizzo = 'VIA DEL CORMORANO N¢ 21'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'BORGO RICCIO DA PARMA N.50'      
where rete = 'S'      
and cod_fiscale = 'MNTSFN57B10G337O'      
and indirizzo = 'BORGO RICCIO DA PARMA N¢50'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA LEONE IV N. 38'      
where rete = 'S'      
and cod_fiscale = 'RMNBMN37L23C351J'      
and indirizzo = 'VIA LEONE IV N¢ 38'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA MARCHETTI N. 27'      
where rete = 'S'      
and cod_fiscale = 'SLRRLF40D17L689Q'      
and indirizzo = 'VIA MARCHETTI N¢ 27'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA ROCCA N. 8'      
where rete = 'S'      
and cod_fiscale = 'ZMBRNG35C70H682I'      
and indirizzo = 'VIA ROCCA N¢ 8'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'LOCALITA'' PERA, 1'      
where rete = 'F'      
and cod_fiscale = 'MCHFST58P24C372Z'      
and indirizzo = 'LOCALITÀ PERA, 1'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'LOCALITA'' RONCO BALDELLO 1'      
where rete = 'F'      
and cod_fiscale = 'SLNRRT61A25A794Y'      
and indirizzo = 'LOCALITÀ RONCO BALDELLO 1'      
      
update c6martperiodico.contrattosei      
set presso = 'STEFANIA BLE'''      
where rete = 'S'      
and cod_fiscale = 'DDSCNN57S54Z110A'      
and presso = 'STEFANIA BLÈ'      
      
--9/2/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA ARCUENTU 9 ESP.2'      
where rete = 'F'      
and cod_fiscale = 'MNNNMR69M46L093G'      
and indirizzo = 'VIA ARCUENTU 9 ESP.2 ¢'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'PZZA XVIII MAGGIO 1944 N. 8'      
where rete = 'S'      
and cod_fiscale = 'SPSRFL60H27F839X'      
and indirizzo = 'PZZA XVIII MAGGIO 1944 N¢ 8'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'V.GOZZANO 1ma TRAVERSA,3-S.TERENZO-'      
where rete = 'S'      
and cod_fiscale = 'LNDMSM57S30E463S'      
and indirizzo = 'V.GOZZANO 1ª TRAVERSA,3-S.TERENZO-'      
      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA BERSO'' RIO, 12'      
where rete = 'S'      
and cod_fiscale = 'PRTFBA61H20A269D'      
and indirizzo = 'VIA BERSÒ RIO, 12'      
      
      
--27/4/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update c6martperiodico.contrattosei      
set indirizzo = 'VIA S.LUCIA 64 M'      
where rete = 'S'      
and cod_fiscale = 'LGRMTN50P67Z110T'      
and indirizzo = 'VIA S:LUCIA 64 M'      
      
update c6martperiodico.anag_clienti      
set cognome = 'CONDRO'''      
where rete = 'S'      
and cod_fiscale = 'CNDLNU88T59I138R'      
and cognome = 'CONDRÒ'      
     
    
 --16/10/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update    
c6martperiodico.anag_clienti      
set cognome = 'UNITA'' PASTORALE COMUNIT'      
where 1=1    
and  rete = 'F'      
and cod_fiscale = '90137840329'      
and cognome = 'UNITA'' PASTORALE "COMUNIT'      
    
    
    
    
      
--11/07/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update C6MartPeriodico.ContrattoSEI      
 set indirizzo = 'VIA MORICI N. 4/A'       
 where cod_fiscale = 'MZZDNL76T68G273F'       
 and indirizzo = 'VIA MORICI N¢ 4/A'      
       
update C6MartPeriodico.ContrattoSEI      
 set indirizzo = 'VIA IV NOVEMBRE N. 22'       
 where cod_fiscale = 'BRRNGL44L52C145G'       
 and indirizzo = 'VIA IV NOVEMBRE N¢ 22'      
       
update C6MartPeriodico.ContrattoSEI      
 set indirizzo = 'VIA IV NOVEMBRE N. 22'       
 where cod_fiscale = 'FRRPLA40L09B034B'       
 and indirizzo = 'VIA IV NOVEMBRE N¢ 22'      
       
update C6MartPeriodico.ContrattoSEI      
 set indirizzo = 'VIA CIACCIO MONTALTO N.3'       
 where cod_fiscale = 'LNNNNL64A66I153M'       
 and indirizzo = 'VIA CIACCIO MONTALTO N¢3'      
       
update C6MartPeriodico.ContrattoSEI      
 set indirizzo = 'VIA CARLO CARRA'' 4 INT 8'       
 where cod_fiscale = 'MNNLNE93E50G702X'       
 and indirizzo = 'VIA CARLO CARRÀ 4 INT 8'      
       
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'LOCALITA'' SETTA, 120'       
where cod_fiscale = 'BRSFNC78R57G062Z'       
and indirizzo = 'LOCALITÀ SETTA, 120'      
      
--20/10/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA I MAGGIO 40'       
where cod_fiscale = 'LMNTNQ47L46Z216U'      
and indirizzo = 'VIA I¢ MAGGIO 40'      
      
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA A/POD.SCOPETINO N.295'       
where cod_fiscale = 'MRLPRZ50C65D969T'      
and indirizzo = 'VIA A/POD.SCOPETINO N¢ 295'      
      
--27/10/2016 - segnalazione dq ID 3      
update C6MartPeriodico.ContrattoSEI       
set cap = '10044'       
where cod_fiscale = 'BNCGRG66C22C344P'      
      
    
------------------------------------------------------------   11/04/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'SDA PROVINCIALE 484 SUD N. 8'       
where cod_fiscale = 'RFULSN65S67L780B'      
and indirizzo = 'SDA PROVINCIALE 484 SUD N¢ 8'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA F.GRAMIZZI N. 24'       
where cod_fiscale = 'CGLGRG45M31H720T'      
and indirizzo = 'VIA F.GRAMIZZI N¢ 24'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA F.GRAMIZZI N. 24'       
where cod_fiscale = 'CHSCTT53L62C435N'      
and indirizzo = 'VIA F.GRAMIZZI N¢ 24'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA G.BOCCACCIO N. 10'       
where cod_fiscale = 'CHTGPL50P11H720M'      
and indirizzo = 'VIA G.BOCCACCIO N¢ 10'     
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'PIAZZA DUOMO N. 8'       
where cod_fiscale = 'CNLRTI80E62G535F'      
and indirizzo = 'PIAZZA DUOMO N¢8'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'SDA VERDI GIUSEPPE N. 13'       
where cod_fiscale = 'CTTLCU72T13I153F'      
and indirizzo = 'SDA VERDI GIUSEPPE N¢ 13'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA MARZABOTTO N. 5'       
where cod_fiscale = 'DDOMNL53H67Z614O'      
and indirizzo = 'VIA MARZABOTTO N¢ 5'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA CHOPIN N. 416'       
where cod_fiscale = 'FVAGPL61A16G337R'      
and indirizzo = 'VIA CHOPIN N¢ 416'      
    
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA URBANO III N. 3'       
where cod_fiscale = 'GLNBBR70M52F205C'      
and indirizzo = 'VIA URBANO III N¢3'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA URBANO III N. 3'       
where cod_fiscale = 'GLNBRC74H67A783U'      
and indirizzo = 'VIA URBANO III N¢ 3'      
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'BARGONE GORZANO N. 63'       
where cod_fiscale = 'MRAGRL23A27Z133U'      
and indirizzo = 'BARGONE GORZANO N¢63'    
     
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'CONTRA'' XX SETTEMBRE 42'       
where cod_fiscale = 'DLSCST68S41L551B'      
and indirizzo = 'CONTRÀ XX SETTEMBRE 42'    
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA FRA'' GIOV.DA SCHIO 1'       
where cod_fiscale = 'FSLLSE90T49L781C'      
and indirizzo = 'VIA FRÀ GIOV.DA SCHIO 1'    
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA FRA'' GIOV.DA SCHIO 1'       
where cod_fiscale = 'FSLNCL88A26L781P'      
and indirizzo = 'VIA FRÀ GIOV.DA SCHIO 1'    
     
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA MAZZE'' 32 B SCALA G'       
where cod_fiscale = 'RRGVEA74C54L219S'      
and indirizzo = 'VIA MAZZÈ 32 B SCALA G'    
    
------------------------------------------------------------   10/07/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA I. NIEVO N. 5'       
where cod_fiscale = 'BRGLSN69H07C933D'      
and indirizzo = 'VIA I. NIEVO N¢5'    
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA PETRARCA N. 4'       
where cod_fiscale = 'CQTMFR72H06F205V'      
and indirizzo = 'VIA PETRARCA N¢ 4'    
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'C.SO UMBERTO I N. 53'       
where cod_fiscale = 'RPGCRL84R61E058V'      
and indirizzo = 'C.SO UMBERTO I N¢ 53'    
    
update C6MartPeriodico.ContrattoSEI       
set indirizzo = 'VIA DEL CAFFE'' 12'       
where cod_fiscale = 'GGGNDR78B01A271G'      
and indirizzo = 'VIA DEL CAFFÈ 12'    
    
------------------------------------------------------------   16/10/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update c6martperiodico.contrattosei      
set indirizzo = 'VIA GOBBETTI N.5'    
where rete = 'S'      
and cod_fiscale = 'CSTMRN67R57B034G'      
and indirizzo = 'VIA GOBBETTI N¢5'      
    
update c6martperiodico.contrattosei      
set indirizzo = 'VIA BASSA 28'    
where rete = 'F'      
and cod_fiscale = 'SCTMND45M58L979X'      
and indirizzo = 'VIA BASSA ¨¨ 28'      
    
    
---------------------------------   15/01/2018 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update c6martperiodico.contrattosei      
set indirizzo = 'VIA CASSIA N.571 PAL A INT 5'    
where rete = 'F'      
and cod_fiscale = 'BLVLNE53T65A472W'      
--and indirizzo = 'VIA CASSIA N°571 PAL A INT 5'      
    
update c6martperiodico.contrattosei      
set indirizzo = 'VIA DEL MONTEBELLO N. 74'      
where rete = 'F'      
and cod_fiscale = 'PCHBNL58R66G478P'      
and indirizzo = 'VIA DEL MONTEBELLO N¢ 74'    
    
update c6martperiodico.contrattosei      
set indirizzo = 'VIA GRAMSCI N.30'      
where rete = 'S'      
and cod_fiscale = 'DMLBTN60M44B034H'      
and indirizzo = 'VIA GRAMSCI N¢30'    
    
update c6martperiodico.contrattosei      
set indirizzo = 'LOCALITA'' MONTEMAZZANO 15/A'      
where rete = 'F'      
and cod_fiscale = 'GSPLSN64A26B509O'      
and indirizzo = 'LOCALITÀ MONTEMAZZANO 15/A'    
    
    
update c6martperiodico.anag_clienti      
set indirizzo = 'LOCALITA'' MONTEMAZZANO 15/A'    
where rete = 'F'      
and cod_fiscale = 'GSPLSN64A26B509O'      
and indirizzo = 'LOCALITÀ MONTEMAZZANO 15/A'      
    
update a     
set indirizzo = 'LOCALITA''  CA'' GRAMIGNA 64/A'      
from  c6martperiodico.contrattosei  a    
where rete = 'S'      
and cod_fiscale = 'BSCLVR53C20A740D'      
and indirizzo ='LOCALITÀ CA'' GRAMIGNA 64/A'    
    
update a     
set indirizzo = 'LOCALITA'' CA'' GRAMIGNA 64/A'      
from   c6martperiodico.anag_clienti  a    
where rete = 'S'      
and cod_fiscale = 'BSCLVR53C20A740D'      
and indirizzo ='LOCALITÀ CA'' GRAMIGNA 64/A'    
    
update c6martperiodico.contrattosei      
set indirizzo = 'VIA LIBERTA''  I TRAV A DESTRA 7'      
where rete = 'S'      
and cod_fiscale = 'PLMRFL52A01G902R'      
and indirizzo ='VIA LIBERTÀ I TRAV A DESTRA 7'    
    
    
---------------------------------   23/04/2018 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update c6martperiodico.contrattosei      
set indirizzo = 'LOCALITA'' RUBBIOLI, 13'    
where rete = 'F'      
and cod_fiscale = 'GGLTRS35L52F780X'      
    
update c6martperiodico.contrattosei      
set indirizzo = 'VIA I MAGGIO 15'    
where rete = 'F'      
and cod_fiscale = 'TCCRTT47M66F634C'      
    
update c6martperiodico.contrattosei      
set email = 'borracelli.gianni@linkwave.eu'    
where rete = 'F'      
and cod_fiscale = 'BRRGNN70M25E202Y'      
    
update c6martperiodico.contrattosei      
set indirizzo = 'CORSO SPATUZZI N.146'    
where rete = 'S'      
and cod_fiscale = 'MRNSMN85A52C034Y'      
    
update c6martperiodico.contrattosei      
set indirizzo = 'VIA CADUTI PER LA LIBERTA'' 108 I2'    
where rete = 'S'      
and cod_fiscale = 'PNOCLD69A56C573G'      
    
    
---------------------------------   13/07/2018 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update a set indirizzo = 'VIA GRAMSCI N. 30'    
 from c6martperiodico.contrattosei   a    
where rete = 's'      
and cod_fiscale = 'CRBCLN93D69B034J'      
    
update a set indirizzo = 'VIA D'' AZEGLIO N. 12'    
 from c6martperiodico.contrattosei   a    
where rete = 's'      
and cod_fiscale = 'MLSSLV81P43B034C'      
    
update a set indirizzo = 'FRAZ.CASTELLINA S.PIETRO N. 14 A'    
 from c6martperiodico.contrattosei   a    
where rete = 's'      
and cod_fiscale = 'SDLRRT64D08D611X'      
    
update a set cognome = 'BORSO'''    
 from c6martperiodico.anag_clienti    a    
where rete = 's'      
and cod_fiscale = 'BRSGDU38M17E329R'      
---------------------------------------------------------------------------      
    
---------------------------------   16/10/2018 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update a set indirizzo = 'VIA CAUDINA I TRATTO 117'    
 from c6martperiodico.contrattosei   a    
where rete = 'F'      
and cod_fiscale = 'BRNVCN73A01E791X'    
    
update a set indirizzo = 'VIA SANT''ALESSANDRO N.72'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'PSSFVN61B43Z614I'    
---------------------------------------------------------------------------      
    
---------------------------------   21/01/2019 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update a set indirizzo = 'VIA MARTIRI DELLA LIBERTA'' 2/E'    
 from c6martperiodico.contrattosei   a    
where rete = 'F'      
and cod_fiscale = 'BLDGNN45P13C573H'    
---------------------------------------------------------------------------      
    
    
    
---------------------------------   17/04/2019 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update a set indirizzo = 'VIA PUCCINI N.27'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'CTTGZL43P45B293C'    
    
update a set indirizzo = 'VIA PUCCINI N.27'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'PZZCNZ71S67B293R'    
    
update a set indirizzo = 'VIA P.GOBETTI N. 29'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'RMNMNC70A69B034D'    
    
update a set indirizzo = 'CONTRA'' MURE SAN ROCCO 16'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'DNOTRS37E53L840Q'    
    
    
---------------------------------   12/07/2019 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]     
update a set indirizzo = 'VIA G.BOCCACCIO N. 10'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'SDLNGL53A44C904Q'    
    
update a set indirizzo = 'VIA G.BOCCACCIO N. 10'    
from   c6martperiodico.anag_clienti  a    
where rete = 'S'      
and cod_fiscale = 'SDLNGL53A44C904Q'      
    
update a set indirizzo = 'LOCALITA'' OLMO, 441/A'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'MTTMND43T44I991H'    
    
update a set indirizzo = 'LOCALITA'' OLMO, 441/A'    
from   c6martperiodico.anag_clienti  a    
where rete = 'S'      
and cod_fiscale = 'MTTMND43T44I991H'      
    
    
update a set indirizzo = 'CORSO CIRIE'' 16BIS'    
 from c6martperiodico.contrattosei   a    
where rete = 'S'      
and cod_fiscale = 'GBTBRN42T23L750Q'    
    
update a set indirizzo = 'CORSO CIRIE'' 16BIS'    
from   c6martperiodico.anag_clienti  a    
where rete = 'S'      
and cod_fiscale = 'GBTBRN42T23L750Q'      
    
    
update a set nome = 'NICCOLO'''    
from   c6martperiodico.anag_clienti  a    
where rete = 'F'      
and cod_fiscale = 'CSTNCL90M02D612E'      
    
----------------------------------------------------------------------------------------------------------------------    
    
      
--inizio intervento FCianfa 27/07/2015      
update c6martperiodico.contrattosei       
set indirizzo ='VIA CASEVECCHIE N 26'       
where rete = 'F'      
and cod_fiscale ='NNNMRZ60P16D653G'       
and INDIRIZZO= 'VIA CASEVECCHIE N¦ 26'      
--fine FCianfa      
      
--inizio intervento: 05/02/2015 FCianfa modifica carattere anomalo presente nel campo cognome della tb c6martperiodico.anag_clienti      
update c6martperiodico.anag_clienti      
set cognome = 'S.A.P.I. SOCIETA'' AMM.NE'      
where rete = 'S'      
and cod_fiscale = '01028041000'      
and cognome = 'S.A.P.I. SOCIETÀ AMM.NE'      
--fine intervento: 05/02/2015 FCianfa modifica carattere anomalo presente nel campo cognome della tb c6martperiodico.anag_clienti      
      
      
      
-- BONIFICA INDIRIZZI EMAIL FORMALMENTE ERRATI      
      
update c6martperiodico.contrattosei      
set email = 'pciprandi@tiscali.it'      
where rete = 'F'      
and cod_fiscale = 'CPRPLA44L30H373S'      
and email = 'pciprandi,@tiscali.it'      
--20/10/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update c6martperiodico.contrattosei      
set email = 'n.capezzuoli@guicciardini.magni.it'      
where rete = 'F'      
and cod_fiscale = 'DNTNRN68L64A881H'      
and email = 'n.capezzuoli°@guicciardini.magni.it'      
      
--12/04/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update c6martperiodico.contrattosei      
set email = NULL    
where rete = 'F'      
and cod_fiscale = 'PLCDNL47L12F205Y'      
and email = 'poloicante 81 @'      
    
    
--10/07/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update c6martperiodico.contrattosei      
set email = 'melzi.maria5@gmail.com'    
where rete = 'F'      
and cod_fiscale = 'MLZMRA40H55B423F'      
and email = 'melzi maria 5@gmail.com'      
    
update c6martperiodico.contrattosei      
set email = 'Pirretti.francesco@libero.it'    
where rete = 'F'      
and cod_fiscale = 'PRRFNC64P26F119R'      
and email = 'Pirretti.francesco @libero.it'      
    
--16/10/2017 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]      
update c6martperiodico.contrattosei      
set email = 'tresoldiluigia@gmail.com'    
where rete = 'S'      
and cod_fiscale = 'TRSLGU44E55B618J'      
and email = 'tresoldiluigia@@gmail.com'      
    
update c6martperiodico.contrattosei       
set indirizzo ='VIA GALEAZZO ALESSI 45'       
where rete = 'F'      
and cod_fiscale ='CPCGPP60H24G478D'       
    
update c6martperiodico.contrattosei       
set indirizzo ='SAL ARENELLA 13 A'       
where rete = 'F'      
and cod_fiscale ='MLTPLA79L71F839R'    
    
update c6martperiodico.contrattosei       
set indirizzo ='VLE DEI ROMAGNOLI 231'       
where rete = 'S'      
and cod_fiscale ='DCMDRN56E28H501Q'    
      
--inizio intervento: 05/02/2015 FCianfa modifica carattere anomalo presente nel campo cognome della tb c6martperiodico.anag_clienti      
update c6martperiodico.anag_clienti      
set indirizzo = 'VIA GALEAZZO ALESSI 45'     
where rete = 'F'      
and cod_fiscale ='CPCGPP60H24G478D'     
    
update c6martperiodico.anag_clienti      
set indirizzo = 'SAL ARENELLA 13 A'     
where rete = 'F'      
and cod_fiscale ='MLTPLA79L71F839R'    
    
update c6martperiodico.anag_clienti      
set indirizzo = 'VLE DEI ROMAGNOLI 231'     
where rete = 'S'      
and cod_fiscale ='DCMDRN56E28H501Q'    
    
    
    
--Bonifica doppi apici sul campo cod aggregato (il problema è causato dal batch di caricamento rischio_prometeia per i clienti      
--che hanno un nome progetto nell'area investimento che contiene il carattere doppio apice "      
--(bonifica predisposta per la trimestrale di dicembre 2015 in attesa di individuazione anomalia software)      
--segnalazione dq id 23 del 26/1/2016      
update C6MartPeriodico.RISCHIO_AGGREGATO      
set COD_AGGREG = replace(replace(rischio_prod.COD_AGGREG, '"', ''),'\','"')      
from       
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD       
left join C6MartPeriodico.PATRIMONIO_BF PATRBF       
on  PATRBF.RETE= RISCHIO_PROD.rete      
AND PATRBF.COD_FISCALE= RISCHIO_PROD.cod_fiscale      
where       
 RISCHIO_PROD.COD_AGGREG like '"%'      
--------------------------------------------------------      
    
    
--update del 20201014    
    
--select * from     
update     
c6martperiodico.contrattosei     
set indirizzo='LOCALITA'' MAGLIONI 6'    
where cod_fiscale='DLLMGR56R59D161Y' and rete='S'    
    
--select * from     
update     
c6martperiodico.anag_clienti     
set indirizzo='LOCALITA'' MAGLIONI 6'    
where cod_fiscale='DLLMGR56R59D161Y' and rete='S'    
      
--select * from     
update     
c6martperiodico.contrattosei     
set indirizzo='VIA GARRE'' 52'    
where cod_fiscale='RMRPLB70P24D969A' and rete='F'    
    
--select * from     
update     
c6martperiodico.anag_clienti     
set indirizzo='VIA GARRE'' 52'    
where cod_fiscale='RMRPLB70P24D969A' and rete='F'    
    
--select * from     
update     
c6martperiodico.contrattosei     
set indirizzo='VIA ANTONIO STARRABBA DI RUDINI'' 22A'    
where cod_fiscale='FNSSFN74L29E958X' and rete='F'    
    
--select * from     
update     
c6martperiodico.anag_clienti     
set indirizzo='VIA ANTONIO STARRABBA DI RUDINI'' 22A'    
where cod_fiscale='FNSSFN74L29E958X' and rete='F'    
    
update     
c6martperiodico.contrattosei     
set email='ocanfora@bancafideuram.it'    
where cod_fiscale='CNFTTV59R25A794J' and rete='F'    
    
--select * from     
update     
c6martperiodico.anag_clienti     
set e_mail='ocanfora@bancafideuram.it'    
where cod_fiscale='CNFTTV59R25A794J' and rete='F'    
    
--select * from     
update     
c6martperiodico.contrattosei     
set email='fabrizio.paolone@gmail.com'    
where cod_fiscale='PLNFRZ66L23L103U' and rete='F'    
    
--select * from     
update     
c6martperiodico.anag_clienti     
set e_mail='fabrizio.paolone@gmail.com',tel_recapito='039 0861329395'    
where cod_fiscale='PLNFRZ66L23L103U' and rete='F'    
    
--aggiunte 14/01/2021    
    
update c6martperiodico.contrattosei      
set email = 'torti.franco@alice.it'    
where rete = 'F'      
and cod_fiscale = 'TRTFNC31C24D969R'      
    
update c6martperiodico.contrattosei      
set email = 'maria.delcarratore@icloud.com'    
where rete = 'F'      
and cod_fiscale = 'DLCMRA43R43B950Y'     
    
update c6martperiodico.contrattosei      
set email = 'INFO@LABARKITETTURA.IT'    
where rete = 'S'      
and cod_fiscale = 'CTTLRI72H61D286I'     
    
update c6martperiodico.contrattosei      
set email = null    
where rete = 'S'      
and cod_fiscale = 'RCCLCU60E26H501I'     
    
update c6martperiodico.contrattosei      
set email = 'GIANFRANCO_BLASI@FASTWEBNET.IT'    
where rete = 'S'      
and cod_fiscale = 'BLSTMS84D08H501R'     
    
update c6martperiodico.contrattosei      
set email = 'PATRIZIAGAGLIANONE@VIRGILIO.IT'    
where rete = 'S'      
and cod_fiscale = 'GGLPRZ61D45E655U'     
    
update c6martperiodico.contrattosei      
set email = 'MARCO@MANTECO.COM'    
where rete = 'S'      
and cod_fiscale = 'MNTMRC74M26G702V'    
    
update c6martperiodico.contrattosei      
set email = 'NESSUNA@BANCASARA.IT'    
where rete = 'S'      
and cod_fiscale = 'RBBPLA49A41B828O'    
    
update c6martperiodico.contrattosei      
set email = 'mattiatiraboschi@libero.it'    
where rete = 'S'      
and cod_fiscale = 'TRBMTT32R21G441K'    
    
update c6martperiodico.contrattosei      
set email = 'colombogiulia58.@alice.it'    
where rete = 'F'      
and cod_fiscale = 'CLMGGB58L58H264C'    
    
update c6martperiodico.contrattosei      
set email = 'lorenaberverini@alice.it'    
where rete = 'F'      
and cod_fiscale = 'MNRFNC52T22E897V'    
    
    
--fix inserite il 15/01/2021    
    
update c6martperiodico.contrattosei    
set email = 'luca.bocchiardo@tin.it'      
where cod_fiscale = 'BCCLCU70A18D969C' and rete = 'F'    
    
update c6martperiodico.anag_clienti     
set tel_recapito = '0390105764663' , e_mail = 'luca.bocchiardo@tin.it'    
where cod_fiscale = 'BCCLCU70A18D969C' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'massimopietro.chellini@umbra.it'    
where cod_fiscale = 'BRGMNT39A61H501W' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'bortolan1@hotmail.it'    
where cod_fiscale = 'BRTNDR66D17L736E' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'prilla9@inwind.it'    
where cod_fiscale = 'BZZPSC49P59H501O' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'r.accarino@agtroma.it'    
where cod_fiscale = 'CCRRRT71E06H501R' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'avv.caggianomarco@gmail.com'    
where cod_fiscale = 'CGGMRC59D25H703T' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'tchey@email.it'    
where cod_fiscale = 'CHYTZN58C48D742N' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'claudio@novafides.com'    
where cod_fiscale = 'CLBCLD66E04G999R' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'colombogiulia58@alice.it'    
where cod_fiscale = 'CLMGGB58L58H264C' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'matteo.comi@crssinergie.it'    
where cod_fiscale = 'CMOMTT78L13L682T' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'GIROLAMO.CONSERVO@GMAIL.COM'    
where cod_fiscale = 'CNSGLM58S18C351P' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'caridi.franci@hotmail.it'    
where cod_fiscale = 'CRDFNC43R21G902G' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'f.carella@mokarica.com'    
where cod_fiscale = 'CRLFNC57S63D704X' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'sergiocaselli7@gmail.com'    
where cod_fiscale = 'CSLSRG47R14L483Y' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'adriano.lcz@libero.it'    
where cod_fiscale = 'CSTDRN59M09G931W' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'mgrazia.dg@libero.it'    
where cod_fiscale = 'DGSMGR53S67A318R' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'maria.delcarratore@icloud.com'    
where cod_fiscale = 'DLCMRA43R43B950Y' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'dallaratermotecnicasp@gmail.com'    
where cod_fiscale = 'DLLMRC65E26E463M' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'g.giuffrida@hotmail.it'    
where cod_fiscale = 'GFFGPP56P28C351K' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'antonio.guaglio@tele2.it'    
where cod_fiscale = 'GGLNTN43E25L356J' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'DIREZIONE@RECOGROUP.IT'    
where cod_fiscale = 'GJIMRZ56M19L219D' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'dott.galizzi@tiscalinet.it'    
where cod_fiscale = 'GLZRRT52C14A794C' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'honorati.mazzoni@libero.it'    
where cod_fiscale = 'HNRGRG38A09F205O' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'omar582009@libero.it'    
where cod_fiscale = 'LLLSCR58A31Z133P' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'ramodeo@karmasystem.com'    
where cod_fiscale = 'MDARSR36P29H743M' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'mauriziomigliorini@gmail.com'    
where cod_fiscale = 'MGLMRZ58D14G713M' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'martarose61@gmail.com'    
where cod_fiscale = 'MNCDVA59S13I187U' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'maurisandra@bullonerieromagna.com'    
where cod_fiscale = 'MRALSN65A58D704Q' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'massaristudiodoc@tiscali.it'    
where cod_fiscale = 'MSSMRC57E27F205L' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'nadaluttivanni@libero.it'    
where cod_fiscale = 'NDLVNN52A20G966S' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'p.anziliero@gmail.com'    
where cod_fiscale = 'NZLPRZ67L44C743K' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'runa23@tiscali.it'    
where cod_fiscale = 'NZSSMN72P53I628C' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'pochinul@gmail.com'    
where cod_fiscale = 'PCHLGS43A02I452H' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'spagnini@bancafideuram.it'    
where cod_fiscale = 'PGNSRG58D08F384H' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = '999999@sort.it'    
where cod_fiscale = 'PLOGPP40R19D245J' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'paparo.maria@email.it'    
where cod_fiscale = 'PPRMRA56B61M089J' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'luigi.perencin@gmail.com'    
where cod_fiscale = 'PRNLGU53S08H357N' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'stop@tiscali.com'    
where cod_fiscale = 'PTRVLR52A23C770U' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'ALESSIO.QUINTERIO@PROMO.IT'    
where cod_fiscale = 'QNTLSV51R30F205W' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'prova9@tim.it'    
where cod_fiscale = 'RBRVEA76C53G674U' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'giuracconto@gmail.com'    
where cod_fiscale = 'RCCGPP53E28G190X' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'FRANCONARCE@YAHOO.IT'    
where cod_fiscale = 'RCLFNC57D22G535G' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'carlarconte@gmail.com'    
where cod_fiscale = 'RCNCRL46L62L117G' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'DENISHP@VIRGILIO.IT'    
where cod_fiscale = 'RGHDNS66T25F241G' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'rosabromeo@gmail.com'    
where cod_fiscale = 'RMORBR47B45H224R' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'AVV.TODARO_AT@LIBERO.IT'    
where cod_fiscale = 'TDRNNN39T19G273S' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'Taglise@yahoo.it'   
where cod_fiscale = 'TGLSRN67R66C139K' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'andrea@studiotondolo.it'    
where cod_fiscale = 'TNDNDR63S30L483K' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'mautanzi@teletu.it'    
where cod_fiscale = 'TNZMRZ49T22L219Q' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'edoardo.tremolada@delphisas.it'    
where cod_fiscale = 'TRMDRD44D24F704V' and rete = 'F'    
    
    
update c6martperiodico.contrattosei    
set email = 'torti.franco@alice.it'    
where cod_fiscale = 'TRTFNC31C24D969R' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'vinotto.fam@alice.it'    
where cod_fiscale = 'VNTWTR59L20D062E' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'prova10@tim.com'    
where cod_fiscale = 'VSNGGR64P09L840I' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'vasarri.f@vasarrifabrizio.it'    
where cod_fiscale = 'VSRFRZ47B03D612R' and rete = 'F'    
    
update c6martperiodico.contrattosei    
set email = 'Fbelli@prholding.it'    
where cod_fiscale = 'BLLFNN50R25G388Z' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'GIANFRANCO_BLASI@FASTWEBNET.IT'    
where cod_fiscale = 'BLSTMS84D08H501R' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'FRANCOB@TIN.IT'    
where cod_fiscale = 'BRNFNC60L25E366A' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'bessonel@libero.it'    
where cod_fiscale = 'BSSLNZ39D12E290E' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'alberto.bellomi99@gmail.com'    
where cod_fiscale = 'CLSMGH69M60M109O' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'giovanni.corrado@italsia.it'    
where cod_fiscale = 'CRRGNN58S18C616Z' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'costanza5722@gmail.com'    
where cod_fiscale = 'CSTCNZ57P62H501I' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'INFO@LABARKITETTURA.IT'    
where cod_fiscale = 'CTTLRI72H61D286I' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'simone728c@alice.it'    
where cod_fiscale = 'CTZSMN74R15I775C' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'carlofederico.decataldo@gmail.com'    
where cod_fiscale = 'DCTCLF63M15G479X' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'MDILELLA@DILELLA.IT'    
where cod_fiscale = 'DLLDNC64H13A055G' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'ettore.fungi@fastwebnet.it'    
where cod_fiscale = 'FNGTTR46B16A859L' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'robfan1@aliceposta.it'    
where cod_fiscale = 'FNTRRT62C16F839O' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'PATRIZIAGAGLIANONE@VIRGILIO.IT'    
where cod_fiscale = 'GGLPRZ61D45E655U' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'giuseppe.garletti@garlettivacc.com'    
where cod_fiscale = 'GRLGPP63B09F205S' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'loggicalzature@inwind.it'    
where cod_fiscale = 'LGGNDR84L23H769T' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'DAVIDELAN1964@GMAIL.COM'    
where cod_fiscale = 'LNZDVD64A17I105L' and rete = 'S'    
    
    
update c6martperiodico.contrattosei    
set email = 'MARCO@MANTECO.COM'    
where cod_fiscale = 'MNTMRC74M26G702V' and rete = 'S'    
    
    
update c6martperiodico.contrattosei    
set email = 'prova123@MANTECO.COM'    
where cod_fiscale = 'MRCNDR63C10G224U' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'dodopaci@gmail.com'    
where cod_fiscale = 'PCADRD79E30I625T' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'francesco@paesanoesasso.it'    
where cod_fiscale = 'PSNFNC75T16F839M' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'sergiopettinaroli@outlook.it'    
where cod_fiscale = 'PTTSRG57E06E488W' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'rinapizzi@gmail.com'    
where cod_fiscale = 'PZZRSN38E64H501W' and rete = 'S'    
    
    
update c6martperiodico.contrattosei    
set email = 'NESSUNA@BANCASARA.IT'    
where cod_fiscale = 'RBBPLA49A41B828O' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'prova234@tim.com'    
where cod_fiscale = 'RCCLCU60E26H501I' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'Waltervincenzetti@gmail.com'    
where cod_fiscale = 'RNLSNT40T57A252M' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'prova43637@tim.com'    
where cod_fiscale = 'RZZVIO47M16H535O' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'prova43637@tim.com'    
where cod_fiscale = 'RZZVIO47M16H535O' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'olimpia81@hotmail.com'    
where cod_fiscale = 'SLNMLM41H55H501G' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'antonio.stornelli@gmail.com'    
where cod_fiscale = 'STRNTN81T14G482V' and rete = 'S'    
    
update c6martperiodico.contrattosei    
set email = 'prova436378@hotmail.it'    
where cod_fiscale = 'ZZATRN63R16B157Y' and rete = 'S'    
    
update c6martperiodico.contrattosei     
set email  = 'gaudenzidaniele9@gmail.com'    
where cod_fiscale = 'GDNDNL66R08C963A'    
    
--fix inserite il 15/04/2021    
    
update c6martperiodico.contrattosei     
set indirizzo = 'VIA A. GARIBALDI 278'    
where indirizzo = 'VIA A. GARIBALDI N¢ 278'    
and cod_fiscale ='VRSGPP37T58B379V'    
and rete = 'F'    
    
update c6martperiodico.anag_clienti      
set indirizzo = 'VIA A. GARIBALDI N 278'    
where rete = 'F'      
and cod_fiscale = 'VRSGPP37T58B379V'      
and indirizzo ='VIA A. GARIBALDI N° 278'    
    
update c6martperiodico.anag_clienti      
set nome = 'NICOLO'    
where rete='S' and cod_fiscale = 'LPANCL36P09F359U'    
    
update c6martperiodico.contrattosei      
set email = 'ASITEBIS@ALICE.IT'    
where rete = 'F'    
and cod_fiscale = 'BLTLVE69T14A271G'    
    
update c6martperiodico.contrattosei      
set email = 'stefanella.bruschi@studiolegale.it'    
where rete = 'F'    
and cod_fiscale = 'BRSSFN50R51G702X'    
    
update c6martperiodico.contrattosei      
set email = 'c.cartoni@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'CRTCLD72L62H501V'    
    
update c6martperiodico.contrattosei      
set email = 'ermanno.cavaleri@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'CVLRNN67M03L736R'    
    
update c6martperiodico.contrattosei      
set email = 'fabiogu@tiscalinet.it'    
where rete = 'F'    
and cod_fiscale = 'GFFFPL65L31F205Y'    
    
update c6martperiodico.contrattosei      
set email = 'ema2353@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'MDLMNL53H23A794P'    
    
update c6martperiodico.contrattosei      
set email = 'lazama@libero.it'    
where rete = 'F'    
and cod_fiscale = 'MNGLSN68T31F205P'    
    
update c6martperiodico.contrattosei      
set email = 'flaviomorchi@libero.it'    
where rete = 'F'    
and cod_fiscale = 'MRCFLV58D22F205Y'    
    
update c6martperiodico.contrattosei      
set email = 'info@pinomazzagtti.it'    
where rete = 'F'    
and cod_fiscale = 'MZZPNI51B13I084B'    
    
update c6martperiodico.contrattosei      
set email = 'pino.patisso@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'PTSGPP51E09G098H'    
    
update c6martperiodico.contrattosei      
set email = 'ANDREA.SCHIETTI@CECCONISCHIETTi.com'    
where rete = 'F'    
and cod_fiscale = 'SCHNDR66T29D869T'    
    
update c6martperiodico.contrattosei      
set email = '58cerchio@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'TRRFNC59A03G580U'    
    
update c6martperiodico.contrattosei      
set email = 'ebergamo@notariato.it'    
where rete = 'S'    
and cod_fiscale = 'BRGLEI74L07L719W'    
    
update c6martperiodico.contrattosei      
set email = 'nikcea@gmail.com'    
where rete = 'S'    
and cod_fiscale = 'CEANCL65B12F052D'    
    
update c6martperiodico.contrattosei      
set email = 'dnglcn53@gmail.com'    
where rete = 'S'    
and cod_fiscale = 'DNGLCN53T20G482V'    
    
update c6martperiodico.contrattosei      
set email = 'SANDRA.FERRAZIN74@gmail.com'    
where rete = 'S'    
and cod_fiscale = 'FRRSDR46P48G224N'    
    
update c6martperiodico.contrattosei      
set email = 'mmontagn@hotmail.com'    
where rete = 'S'    
and cod_fiscale = 'MNTMRZ58E30E507C'    
    
update c6martperiodico.contrattosei      
set email = 'FAIR_SRL@ALICE.IT'    
where rete = 'S'    
and cod_fiscale = 'PPPMRS61M41E435W'    
    
update c6martperiodico.contrattosei      
set email = 'pterrosu@hotmail.com'    
where rete = 'S'    
and cod_fiscale = 'TRRPFR53P18I452U'    
    
    
update c6martperiodico.contrattosei      
set email = 'kettitrevisan@libero.it'    
where rete = 'S'    
and cod_fiscale = 'TRVKTT68C41C111P'    
    
--20231231 Trimestrale Lotto 2 Gennaio 24    
update c6martperiodico.contrattosei     
set INDIRIZZO='CADUTI DELLA LIBERTA 9'     
where cod_fiscale = 'GRNCLD65D06L003S'    
    
    
      
 --fix inserite il 26/01/2022    
 update c6martperiodico.contrattosei      
set email = 'pasqualecolucci1948@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'CLCPQL48B08F839H'    
      
 update c6martperiodico.contrattosei      
set email = 'VIRGINIO.48@LIBERO.IT'    
where rete = 'F'    
and cod_fiscale = 'CZZVGN48L21H264W'    
    
 update c6martperiodico.contrattosei      
set email = 'VIRNA@VPARCHITETTI.IT'    
where rete = 'F'    
and cod_fiscale = 'PRSVRN60H42L407W'    
    
    
 update c6martperiodico.contrattosei      
set email = 'Terry.ronchi52@gmail.com'    
where rete = 'F'    
and cod_fiscale = 'RNCMTR52S50D869V'    
    
 update c6martperiodico.contrattosei      
set email = 'SILVIO.RINALDI.SR@GMAIL.COM'    
where rete = 'F'    
and cod_fiscale = 'RNLSVG50E13D969K'    
    
 update c6martperiodico.contrattosei      
set email = 'GIANNI19650@LIBERO.IT'    
where rete = 'F'    
and cod_fiscale = 'ZGLGNN65R19L157Z'    
    
 update c6martperiodico.contrattosei      
set email = 'MARCOMARINI_GEOLOGO@FASTWEBNET.it'    
where rete = 'S'    
and cod_fiscale = 'MRNMRC62P28H037Q'    
    
 update c6martperiodico.contrattosei      
set email = 'patrizia.tosto62@gmail.com'    
where rete = 'S'    
and cod_fiscale = 'TSTPRZ62P44B429E'    
    
     
 update c6martperiodico.contrattosei      
set email = 'patrizia.tosto62@gmail.com'    
where rete = 'S'    
and cod_fiscale = 'TSTPRZ62P44B429E'    
    
  update c6martperiodico.contrattosei      
set Presso = 'TeR BABY SRL'    
where rete = 'F'    
and cod_fiscale = 'TRRCML81T63F839J'    
    
  update c6martperiodico.contrattosei      
set Indirizzo = 'VIA SETTEVENE PALO I TRONCO 10'    
where rete = 'F'    
and cod_fiscale = 'ZNSCNZ72C65H501C'    
    
    
  update c6martperiodico.contrattosei      
set Indirizzo = 'VIA MORICI N 4/A'    
where rete = 'F'    
and cod_fiscale = 'MZZDNL76T68G273F'    
    
  update c6martperiodico.contrattosei      
set Indirizzo = 'VIA DELLA LIBERTA 10'    
where rete = 'F'    
and cod_fiscale = 'FRCFNC58R05L985B'    
    
  update c6martperiodico.contrattosei      
set Indirizzo = 'LOC. LOCALITA MONTEMAZZANO 15/A 15 A'    
where rete = 'F'    
and cod_fiscale = 'GSPLSN64A26B509O'    
    
 update c6martperiodico.contrattosei      
set Indirizzo = 'CALCADA DE SAO VICENTE 68'    
where rete = 'F'    
and cod_fiscale = 'DNDMCL54A11L551Z'    
    
 update c6martperiodico.contrattosei      
set Indirizzo = 'RUA DAS GARCAS 125'    
where rete = 'F'    
and cod_fiscale = 'CPPMNL76R16H282I'    
    
update c6martperiodico.contrattosei      
set Presso = 'VILLA GIANO SC.A - 4 PIA INT.7'    
where rete = 'S'    
and cod_fiscale = 'BTTTRS38M52I892G'    
    
 update c6martperiodico.contrattosei      
set Indirizzo = 'CALLE LOS MILLONES, 6 - 54'    
where rete = 'S'    
and cod_fiscale = 'RVRDNL81D22H501V'    
    
 update c6martperiodico.contrattosei      
set Indirizzo = 'VIA NICOL BALANZANO 58 PLT IN 1'    
where rete = 'S'    
and cod_fiscale = 'FLLGPP48S03A893T'    
    
update C6MartPeriodico.contrattosei    
set Indirizzo='VIA ROMOLO BALZANI 40 ED.G SC1'    
where rete='S' and Cod_Fiscale='RNDSFN67P13H501V'    
    
update C6MartPeriodico.ANAG_CLIENTI    
set INDIRIZZO='VIA A. GARIBALDI N 278'    
where rete='F' and Cod_Fiscale='VRSGPP37T58B379V'    
    
update C6MartPeriodico.contrattosei    
set INDIRIZZO='VIA A. GARIBALDI N 278'    
where rete='F' and Cod_Fiscale='VRSGPP37T58B379V'    
    
update C6MartPeriodico.contrattosei    
set Email='BATTISTA@TRAPATTONISRL.IT'    
  where rete='F' and Cod_Fiscale='TRPBTS62L25H509O'    
    
  update C6MartPeriodico.contrattosei    
set Email='AVVOCATOCENTOLA@ALICE.IT'    
  where rete='F' and Cod_Fiscale='CNTTMR39L05H985M'    
    
    update C6MartPeriodico.contrattosei    
set Email='m.ciaramelletti@alice.it'    
  where rete='F' and Cod_Fiscale='CRMMRZ64C13H282M'    
    
     update C6MartPeriodico.contrattosei    
set Email='CSCMOBILE.CRATERI@GMAIL.COM'    
  where rete='F' and Cod_Fiscale='CRTMGR51E68F801W'    
    
       update C6MartPeriodico.contrattosei    
set Email='ALBERTOZINANNI@GMAIL.COM'    
  where rete='F' and Cod_Fiscale='ZNNLRT82L25G713J'    
    
         update C6MartPeriodico.contrattosei    
set Email='TEST@GMAIL.COM'    
  where rete='S' and Cod_Fiscale='RMBMGL61R59H642J'    
    
       update C6MartPeriodico.contrattosei    
set Email='BRESCIANISIMONE@VIRGILIO.IT'    
  where rete='S' and Cod_Fiscale='BRSSMN75A21G628P'    
    
  --segnalazione S&M 18/07/2022    
  update C6MartPeriodico.contrattosei    
set Email='LUCIAIMP@LIBERO.IT'    
  where rete='F' and Cod_Fiscale='MPRLCU59L46F839O'    
    
    
    update C6MartPeriodico.contrattosei    
set presso='EOS E PARTNERS SRL'    
  where rete='F' and Cod_Fiscale='92305670280'    
    
      update C6MartPeriodico.contrattosei    
set presso='CERVESI E CERVESI'    
  where rete='F' and Cod_Fiscale='CRVNNA90T68L424A'    
    
  --26/09/2022    
    
  update c6martperiodico.contrattosei     
  set INDIRIZZO='RUE EUGENE LABICHE 11'     
  where cod_fiscale = 'BRNCLN70D50Z110J'    
update c6martperiodico.contrattosei     
  set INDIRIZZO='AVENIDA BARTOLOME MITRE 2466'     
  where cod_fiscale = 'DNOWLJ46L49E848A'    
update c6martperiodico.contrattosei     
  set Citta='SARANDI'     
  where cod_fiscale = 'DNOWLJ46L49E848A'    
    
update c6martperiodico.contrattosei     
  set EMAIL='NESSUNA@BANCASARA.IT'     
  where cod_fiscale = 'SRLMRT37R49B157M'    
    
update c6martperiodico.contrattosei     
  set EMAIL='ASCOMARY@GMAIL.COM'     
  where cod_fiscale = 'SCLMRS52A65F138O'    
    
UPDATE C6StampeCentralizzate.C6MartPeriodico.ANAG_CLIENTI     
SET INDIRIZZO ='RUE DU MARECHAL DE LATTRE DE TASSIGNY'    
WHERE Cod_Fiscale = 'PCNVCN72R23G273V'    
    
update c6martperiodico.contrattosei     
SET INDIRIZZO ='RUE DU MARECHAL DE LATTRE DE TASSIGNY'    
WHERE Cod_Fiscale = 'PCNVCN72R23G273V'    
    
UPDATE C6StampeCentralizzate.C6MartPeriodico.contrattosei    
SET Email = 'ANDREA.RUSCONI@EIFFAGE.COM'    
where Cod_Fiscale ='RSCNDR71P21E507V'    
    
UPDATE C6StampeCentralizzate.C6MartPeriodico.contrattosei    
SET Email = 'GIULIANO.PEZZOTTI@GMAIL.COM'    
where Cod_Fiscale ='PZZGLN69R31D251S'    
    
UPDATE C6MartPeriodico.ANAG_CLIENTI     
SET COGNOME ='SOCIETA SEMPLICE TOLOMEO'    
where COD_FISCALE='95695790154'    
    
UPDATE C6StampeCentralizzate.C6MartPeriodico.contrattosei    
SET Citta = 'CITTA'' DI SAN MARINO'    
WHERE Cod_Fiscale='CLVLDA65B17I952R'    
    
UPDATE C6MartPeriodico.ANAG_CLIENTI     
SET LOCALITA = 'CITTA'' DI SAN MARINO'    
WHERE Cod_Fiscale='CLVLDA65B17I952R'    
    
--20230615    
update C6MartPeriodico.contrattosei     
set Indirizzo='CARRER DE PAU ALSINA 74 4/O 4/A'    
WHERE Cod_Fiscale='MRCNDR69T02H501K'--CARRER DE PAU ALSINA 74 4º 4ª    
    
UPDATE C6MartPeriodico.ANAG_CLIENTI    
SET INDIRIZZO='CARRER DE PAU ALSINA 74 4/O 4/A'    
WHERE Cod_Fiscale='MRCNDR69T02H501K'--CARRER DE PAU ALSINA 74 4º 4ª    
    
UPDATE C6MartPeriodico.contrattosei     
SET Indirizzo='VIA MARTIRI DELLA LIBERTA'',41/D'    
WHERE Cod_Fiscale='BLLGNN78M22G843K'    
    
UPDATE C6MartPeriodico.contrattosei     
SET Indirizzo='VIA MARTIRI DELLA LIBERTA'',41/D'    
WHERE Cod_Fiscale='BLLGNN78M22G843K'    
    
--20230714    
update C6MartPeriodico.contrattosei     
set indirizzo='VIA MELCHIORRE GIOIA 22',CAP='20124'     
where Indirizzo ='VIA MONTEBELLO 18' and Citta='Milano' and PIva_Fiduciaria='01840910150'    
    
    
update C6MartPeriodico.ANAG_CLIENTI     
set INDIRIZZO='VIA MELCHIORRE GIOIA,22', CAP='20124'     
where INDIRIZZO like '%VIA MONTEBELLO,18%' and COGNOME='SOCIETA ITALIANA DI REVISIONE E FIDUCIARIA S.P.A'    
    
    
--20231019    
    
update c6martperiodico.contrattosei     
  set INDIRIZZO='VICO 1  SAN MARTINO 2'     
  where cod_fiscale = 'LIUNCL73T04H687R'    
update c6martperiodico.contrattosei     
  set Citta='CITTA DI SAN MARINO'     
  where cod_fiscale = 'FLPGNC54T10H501E'    
update c6martperiodico.contrattosei     
  set INDIRIZZO='VIA LOCALITA MOZZOLI 30A'     
  where cod_fiscale = 'DFRLND74M01Z516R'    
update c6martperiodico.contrattosei     
  set INDIRIZZO='VIA SALVADOR DALI 12'     
  where cod_fiscale = 'MRLGNE58R11H501P'    
    
--20231105    
update C6MartPeriodico.contrattosei     
set Email='achillemderamo@gmail.com'    
where cod_fiscale ='DRMCLL53A08A367V'    
    
--20231231 Trimestrale Lotto 2 Gennaio 24    
update c6martperiodico.contrattosei     
set INDIRIZZO='CADUTI DELLA LIBERTA 9'     
where cod_fiscale = 'GRNCLD65D06L003S'    
    
--20231231 Trimestrale Lotto 2 Gennaio 24    
update c6martperiodico.ANAG_CLIENTI     
set INDIRIZZO='CADUTI DELLA LIBERTA 9'     
where cod_fiscale = 'GRNCLD65D06L003S'    
    
--20240729 Timestrale Luglio 24  
update c6martperiodico.contrattosei   
  set INDIRIZZO='CITE GRISET 4'   
  where cod_fiscale = 'TDJKRM75L15Z110F'  
  
--20241016 Timestrale Ottobre 24  
update c6martperiodico.contrattosei 
		set INDIRIZZO='ALLEE DE LA BUTTE 6' 
		where cod_fiscale = 'CRTNTN60L02Z110X'
update c6martperiodico.contrattosei 
		set Presso='S. NICOLo DI CELLE' 
		where cod_fiscale = 'BRCPQL57E18D279J'

update c6martperiodico.contrattosei 
		set Citta='SAN NICOLAS DE LOS ARROYO' 
		where cod_fiscale = 'SPDMCR60B64Z600J'
end   
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_BonificaDati_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE procedure [C6MartPeriodico].[SP_DQ_BonificaDati_pre_selective]
AS
BEGIN

-- select count(*) from C6MartPeriodico.contrattosei

-- BONIFICA CARATTERI ANOMALI

update c6martperiodico.contrattosei set indirizzo ='VIA FRANGIPANE, TR.2, N.6' where cod_fiscale ='BRGGNN32A02H224F' and INDIRIZZO=	'VIA FRANGIPANE, TR.2^, N.6'
update c6martperiodico.contrattosei set indirizzo ='VIA POSTIERLA N 31/C' where cod_fiscale ='CCCRNI39T54I381U' and INDIRIZZO=	'VIA POSTIERLA N¢ 31/C'
update c6martperiodico.contrattosei set indirizzo ='VIA DEGLI OPERAI N 25' where cod_fiscale ='DTNNZR56M23D653T' and INDIRIZZO=	'VIA DEGLI OPERAI N¢ 25'
update c6martperiodico.contrattosei set indirizzo ='VIA F.SICILIANI N 1' where cod_fiscale ='FRRTDR64M26A638Q' and INDIRIZZO=	'VIA F.SICILIANI N¢ 1'
update c6martperiodico.contrattosei set Citta 	  ='VALLA'' DI RIESE PIO X' where cod_fiscale ='NDRTZN81A03C111N' and Citta=          'VALLA'' DI RIESE PIO X¢'
update c6martperiodico.contrattosei set indirizzo ='VIA A.MOTTA N 61' where cod_fiscale ='TRRCRL47S28L667C' and INDIRIZZO=	'VIA A.MOTTA N¢ 61'
update c6martperiodico.contrattosei set indirizzo ='VIA RIOMAGGIORE N 1' where cod_fiscale ='CRPDNC37C69L689V' and INDIRIZZO=	'VIA RIOMAGGIORE N¢1'
update c6martperiodico.contrattosei set indirizzo ='VIA SANTI N 17' where cod_fiscale ='RNALRT64R05G337D' and INDIRIZZO=	'VIA SANTI N¢ 17'
update c6martperiodico.contrattosei set indirizzo ='VIA M.DELLA LIBERT'' 13' where cod_fiscale ='GLPMRA71A16G856Z' and INDIRIZZO=	'VIA M.DELLA LIBERTÀ 13'
update c6martperiodico.contrattosei set indirizzo ='LOCALITA'' MONETA' where cod_fiscale ='VLLCNZ58P47L219Z' and INDIRIZZO=	'LOCALITÀ MONETA'
update c6martperiodico.contrattosei set Citta 	  ='FORLI''' where cod_fiscale ='GHTDNC38S29D704K' and Citta=          'FORLÌ'


update c6martperiodico.contrattosei
set presso = 'KOSTORIS e ASSOC.-STUDIO LEGALE'
where rete = 'F'
and cod_fiscale = 'KSTLRT60R14L424G'
and presso = 'KOSTORIS & ASSOC.-STUDIO LEGALE'

update c6martperiodico.contrattosei
set indirizzo = 'VIA VINCENZO CIARDO N. 3'
where rete = 'S'
and cod_fiscale = 'CNGMTR43S59E506C'
and indirizzo = 'VIA VINCENZO CIARDO N¢ 3'

update c6martperiodico.contrattosei
set indirizzo = 'VIA VINCENZO CIARDO N. 3'
where rete = 'S'
and cod_fiscale = 'CNGRSO46T44E506U'
and indirizzo = 'VIA VINCENZO CIARDO N¢ 3'

update c6martperiodico.contrattosei
set indirizzo = 'VIA VINCENZO BELLINI N.6'
where rete = 'S'
and cod_fiscale = 'CRBMLD59M69C351S'
and indirizzo = 'VIA VINCENZO BELLINI N¢6'

update c6martperiodico.contrattosei
set indirizzo = 'VIA SS 18 I TR. N. 11'
where rete = 'S'
and cod_fiscale = 'LZZCRC51P41B666S'
and indirizzo = 'VIA SS 18 I TR. N¢ 11'

update c6martperiodico.contrattosei
set indirizzo = 'VIA DELL''IMPRUNETA N. 26'
where rete = 'S'
and cod_fiscale = 'RMNMRA69D13C351J'
and indirizzo = 'VIA DELL''IMPRUNETA N¢ 26'

update c6martperiodico.contrattosei
set indirizzo = 'LOCALITA'' MALTRAVERSO, 13'
where rete = 'F'
and cod_fiscale = 'PRSRNZ59B21C847E'
and indirizzo = 'LOCALITÀ MALTRAVERSO, 13'

update c6martperiodico.contrattosei
set citta = 'CITTA'' SANTANGELO'
where rete = 'S'
and cod_fiscale = 'DFRNTN56D20A120O'
and citta = 'CITTÀ SANTANGELO'

update c6martperiodico.contrattosei
set indirizzo = 'VIA MICHELE PIETRAVALLE 85 R'
where rete = 'F'
and cod_fiscale = 'DLLGST40D14B963Q'
and indirizzo = 'VIA MICHELE PIETRAVALLE 85 ÇR'

update c6martperiodico.contrattosei
set indirizzo = 'VIA MICHELE PIETRAVALLE 85 B'
where rete = 'F'
and cod_fiscale = 'NZZSRA43S52F839U'
and indirizzo = 'VIA MICHELE PIETRAVALLE 85 ÇB'

update c6martperiodico.contrattosei
set indirizzo = 'VIA TRENTO 14 - 27 SC D'
where rete = 'S'
and cod_fiscale = 'BOXFNC95S22D969G'
and indirizzo = 'VIA TRENTO 14 Ç 27 SC D'

update c6martperiodico.contrattosei
set indirizzo = 'VCLO POME'' 14'
where rete = 'F'
and cod_fiscale = 'PRNNRC48D09E801B'
and indirizzo = 'VCLO POMÈ 14'

update c6martperiodico.contrattosei
set indirizzo = 'LOC.MASARE'' COL BADIOT'
where rete = 'S'
and cod_fiscale = 'CRDNZE48S13E490Z'
and indirizzo = 'LOC.MASARÈ COL BADIOT'

update c6martperiodico.contrattosei
set indirizzo = 'VIA ROMBO'' 37'
where rete = 'F'
and cod_fiscale = 'STRGLG70H15H355F'
and indirizzo = 'VIA ROMBÒ 37'

--inizio intervento: 17/07/2015 LMaggi modifica carattere anomalo presente nel campo indirizzo e del campo 'presso' della tb c6martperiodico.contrattosei
update c6martperiodico.contrattosei
set indirizzo = 'VIA BEATO ANGELICO N. 4'
where rete = 'F'
and cod_fiscale = 'CLLPLA53R43G148Z'
and indirizzo = 'VIA BEATO ANGELICO N¢ 4'

update c6martperiodico.contrattosei
set indirizzo = 'LOCAL.FORNI N. 2'
where rete = 'F'
and cod_fiscale = 'DNSVTR45B04A940D'
and indirizzo = 'LOCAL.FORNI N¢ 2'

update c6martperiodico.contrattosei
set indirizzo = 'VIA DEL CORMORANO N. 21'
where rete = 'F'
and cod_fiscale = 'SVVSRA75L43L117F'
and indirizzo = 'VIA DEL CORMORANO N¢ 21'

update c6martperiodico.contrattosei
set indirizzo = 'BORGO RICCIO DA PARMA N.50'
where rete = 'S'
and cod_fiscale = 'MNTSFN57B10G337O'
and indirizzo = 'BORGO RICCIO DA PARMA N¢50'

update c6martperiodico.contrattosei
set indirizzo = 'VIA LEONE IV N. 38'
where rete = 'S'
and cod_fiscale = 'RMNBMN37L23C351J'
and indirizzo = 'VIA LEONE IV N¢ 38'

update c6martperiodico.contrattosei
set indirizzo = 'VIA MARCHETTI N. 27'
where rete = 'S'
and cod_fiscale = 'SLRRLF40D17L689Q'
and indirizzo = 'VIA MARCHETTI N¢ 27'

update c6martperiodico.contrattosei
set indirizzo = 'VIA ROCCA N. 8'
where rete = 'S'
and cod_fiscale = 'ZMBRNG35C70H682I'
and indirizzo = 'VIA ROCCA N¢ 8'

update c6martperiodico.contrattosei
set indirizzo = 'LOCALITA'' PERA, 1'
where rete = 'F'
and cod_fiscale = 'MCHFST58P24C372Z'
and indirizzo = 'LOCALITÀ PERA, 1'

update c6martperiodico.contrattosei
set indirizzo = 'LOCALITA'' RONCO BALDELLO 1'
where rete = 'F'
and cod_fiscale = 'SLNRRT61A25A794Y'
and indirizzo = 'LOCALITÀ RONCO BALDELLO 1'

update c6martperiodico.contrattosei
set presso = 'STEFANIA BLE'''
where rete = 'S'
and cod_fiscale = 'DDSCNN57S54Z110A'
and presso = 'STEFANIA BLÈ'

--9/2/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]
update c6martperiodico.contrattosei
set indirizzo = 'VIA ARCUENTU 9 ESP.2'
where rete = 'F'
and cod_fiscale = 'MNNNMR69M46L093G'
and indirizzo = 'VIA ARCUENTU 9 ESP.2 ¢'

update c6martperiodico.contrattosei
set indirizzo = 'PZZA XVIII MAGGIO 1944 N. 8'
where rete = 'S'
and cod_fiscale = 'SPSRFL60H27F839X'
and indirizzo = 'PZZA XVIII MAGGIO 1944 N¢ 8'

update c6martperiodico.contrattosei
set indirizzo = 'V.GOZZANO 1ma TRAVERSA,3-S.TERENZO-'
where rete = 'S'
and cod_fiscale = 'LNDMSM57S30E463S'
and indirizzo = 'V.GOZZANO 1ª TRAVERSA,3-S.TERENZO-'

update c6martperiodico.contrattosei
set indirizzo = 'VIA BERSO'' RIO, 12'
where rete = 'S'
and cod_fiscale = 'PRTFBA61H20A269D'
and indirizzo = 'VIA BERSÒ RIO, 12'


--27/4/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]
update c6martperiodico.contrattosei
set indirizzo = 'VIA S.LUCIA 64 M'
where rete = 'S'
and cod_fiscale = 'LGRMTN50P67Z110T'
and indirizzo = 'VIA S:LUCIA 64 M'

update c6martperiodico.anag_clienti
set cognome = 'CONDRO'''
where rete = 'S'
and cod_fiscale = 'CNDLNU88T59I138R'
and cognome = 'CONDRÒ'


--11/07/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]
update C6MartPeriodico.ContrattoSEI
 set indirizzo = 'VIA MORICI N. 4/A' 
 where cod_fiscale = 'MZZDNL76T68G273F' 
 and indirizzo = 'VIA MORICI N¢ 4/A'
 
update C6MartPeriodico.ContrattoSEI
 set indirizzo = 'VIA IV NOVEMBRE N. 22' 
 where cod_fiscale = 'BRRNGL44L52C145G' 
 and indirizzo = 'VIA IV NOVEMBRE N¢ 22'
 
update C6MartPeriodico.ContrattoSEI
 set indirizzo = 'VIA IV NOVEMBRE N. 22' 
 where cod_fiscale = 'FRRPLA40L09B034B' 
 and indirizzo = 'VIA IV NOVEMBRE N¢ 22'
 
update C6MartPeriodico.ContrattoSEI
 set indirizzo = 'VIA CIACCIO MONTALTO N.3' 
 where cod_fiscale = 'LNNNNL64A66I153M' 
 and indirizzo = 'VIA CIACCIO MONTALTO N¢3'
 
update C6MartPeriodico.ContrattoSEI
 set indirizzo = 'VIA CARLO CARRA'' 4 INT 8' 
 where cod_fiscale = 'MNNLNE93E50G702X' 
 and indirizzo = 'VIA CARLO CARRÀ 4 INT 8'
 
update C6MartPeriodico.ContrattoSEI 
set indirizzo = 'LOCALITA'' SETTA, 120' 
where cod_fiscale = 'BRSFNC78R57G062Z' 
and indirizzo = 'LOCALITÀ SETTA, 120'

--20/10/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]
update C6MartPeriodico.ContrattoSEI 
set indirizzo = 'VIA I MAGGIO 40' 
where cod_fiscale = 'LMNTNQ47L46Z216U'
and indirizzo = 'VIA I¢ MAGGIO 40'

update C6MartPeriodico.ContrattoSEI 
set indirizzo = 'VIA A/POD.SCOPETINO N.295' 
where cod_fiscale = 'MRLPRZ50C65D969T'
and indirizzo = 'VIA A/POD.SCOPETINO N¢ 295'

--27/10/2016 - segnalazione dq ID 3
update C6MartPeriodico.ContrattoSEI 
set cap = '10044' 
where cod_fiscale = 'BNCGRG66C22C344P'

---------------------------------------------------------------------------


--inizio intervento FCianfa 27/07/2015
update c6martperiodico.contrattosei 
set indirizzo ='VIA CASEVECCHIE N 26' 
where rete = 'F'
and cod_fiscale ='NNNMRZ60P16D653G' 
and INDIRIZZO=	'VIA CASEVECCHIE N¦ 26'
--fine FCianfa

--inizio intervento: 05/02/2015 FCianfa modifica carattere anomalo presente nel campo cognome della tb c6martperiodico.anag_clienti
update c6martperiodico.anag_clienti
set cognome = 'S.A.P.I. SOCIETA'' AMM.NE'
where rete = 'S'
and cod_fiscale = '01028041000'
and cognome = 'S.A.P.I. SOCIETÀ AMM.NE'
--fine intervento: 05/02/2015 FCianfa modifica carattere anomalo presente nel campo cognome della tb c6martperiodico.anag_clienti



-- BONIFICA INDIRIZZI EMAIL FORMALMENTE ERRATI

update c6martperiodico.contrattosei
set email = 'pciprandi@tiscali.it'
where rete = 'F'
and cod_fiscale = 'CPRPLA44L30H373S'
and email = 'pciprandi,@tiscali.it'
--20/10/2016 - segnalazioni su [C6MartPeriodico].[tb_SegnalazioniDataQuality]
update c6martperiodico.contrattosei
set email = 'n.capezzuoli@guicciardini.magni.it'
where rete = 'F'
and cod_fiscale = 'DNTNRN68L64A881H'
and email = 'n.capezzuoli°@guicciardini.magni.it'


--Bonifica doppi apici sul campo cod aggregato (il problema è causato dal batch di caricamento rischio_prometeia per i clienti
--che hanno un nome progetto nell'area investimento che contiene il carattere doppio apice "
--(bonifica predisposta per la trimestrale di dicembre 2015 in attesa di individuazione anomalia software)
--segnalazione dq id 23 del 26/1/2016
update C6MartPeriodico.RISCHIO_AGGREGATO
set COD_AGGREG = replace(replace(rischio_prod.COD_AGGREG, '"', ''),'\','"')
from 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
left join C6MartPeriodico.PATRIMONIO_BF PATRBF 
on  PATRBF.RETE= RISCHIO_PROD.rete
AND PATRBF.COD_FISCALE= RISCHIO_PROD.cod_fiscale
where 
 RISCHIO_PROD.COD_AGGREG like '"%'
--------------------------------------------------------

end









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_CaratteriAnomali]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Individuazione dei Clienti che presentano in Anagrafica caratteri anomali nei campi che formano l’indirizzo di   
-- domiciliazione del contratto di consulenza  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
-- [C6MartPeriodico].[SP_DQ_CaratteriAnomali] 2  
CREATE procedure [C6MartPeriodico].[SP_DQ_CaratteriAnomali]   
@idFaseElaborazione int  
AS  
BEGIN  

drop table if exists C6MartPeriodico.TB_ClienticonCaratteriAnomali
  
--drop table #tab_temp  
  
--drop table #TbErrori  
  
Declare @idTipoControllo int  
  
  
set @idTipoControllo=7     
    
  
  
CREATE TABLE #tab_temp(  
 [Val_Ascii] [smallint] NOT NULL,  
 [Val_Char] [varchar](1) NOT NULL,  
 [Rete] [varchar](1) NOT NULL,  
 [Cod_Fiscale] [varchar](16) NOT NULL,  
 [Nome_Campo] [varchar](50) NOT NULL,  
 [Val_Campo] [varchar](150) NOT NULL)  
  
  
insert into #tab_temp  
exec [C6MartPeriodico].[CercaCaratteriAnomali]  

select val_Ascii,Val_Char,Rete,Cod_Fiscale,Nome_Campo,Val_Campo
into C6MartPeriodico.TB_ClienticonCaratteriAnomali
from #tab_temp
         
select *,@idTipoControllo idTipoControllo  
    into #TbErrori  
from #tab_temp  
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,cod_fiscale,  
Replace(replace(DescSegnalazione,'campo$',tbErr.Nome_Campo),'carattere$',tbErr.Val_Char) ,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_CaratteriAnomali_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano in Anagrafica caratteri anomali nei campi che formano l’indirizzo di 
-- domiciliazione del contratto di consulenza
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================


-- [C6MartPeriodico].[SP_DQ_CaratteriAnomali_pre_selective] 2
CREATE procedure [C6MartPeriodico].[SP_DQ_CaratteriAnomali_pre_selective] 
@idFaseElaborazione int
AS
BEGIN

--drop table #tab_temp

--drop table #TbErrori

Declare @idTipoControllo int


set @idTipoControllo=7			
		


CREATE TABLE #tab_temp(
	[Val_Ascii] [smallint] NOT NULL,
	[Val_Char] [varchar](1) NOT NULL,
	[Rete] [varchar](1) NOT NULL,
	[Cod_Fiscale] [varchar](16) NOT NULL,
	[Nome_Campo] [varchar](50) NOT NULL,
	[Val_Campo] [varchar](150) NOT NULL)


insert into #tab_temp
exec [C6MartPeriodico].[CercaCaratteriAnomali]
       
select *,@idTipoControllo idTipoControllo
    into #TbErrori
from #tab_temp



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,cod_fiscale,
Replace(replace(DescSegnalazione,'campo$',tbErr.Nome_Campo),'carattere$',tbErr.Val_Char) ,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DataAvvioMonitoraggio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Controllo corretta generazione del campo Data Avvio del Monitoraggio ( dtSalvataggio ) sulla tabella  
-- [C6MartPeriodico].[MONITORAGGIO_INIZIALE]   
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_DataAvvioMonitoraggio]  
@idFaseElaborazione int  
AS  
BEGIN  
  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=3     
  
SELECT  
           V.rete AS RETE,  
           V.COD_FISCALE AS COD_FISCALE,  
           @idTipoControllo idtipocontrollo  
into #TbErrori  
FROM C6StagingPeriodico.appo_contratti_v V   
      INNER JOIN C6STAGINGPERIODICO.RP_MonitoraggioStorico M  
    ON V.chiaveClientePB = M.chiaveClientePB  
 WHERE stato = '2'  
        AND M.dtSalvataggio IS NULL  
     
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,COD_FISCALE,DescSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DataAvvioMonitoraggio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Controllo corretta generazione del campo Data Avvio del Monitoraggio ( dtSalvataggio ) sulla tabella
-- [C6MartPeriodico].[MONITORAGGIO_INIZIALE] 
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_DQ_DataAvvioMonitoraggio_pre_selective]
@idFaseElaborazione int
AS
BEGIN


Declare @idTipoControllo int

set @idTipoControllo=3			

SELECT
           V.rete AS RETE,
           V.COD_FISCALE AS COD_FISCALE,
           @idTipoControllo idtipocontrollo
into #TbErrori
FROM C6StagingPeriodico.APPO_CONTRATTI V 
      INNER JOIN C6STAGINGPERIODICO.RP_MonitoraggioStorico M
    ON V.chiaveClientePB = M.chiaveClientePB
	WHERE stato = '2'
        AND M.dtSalvataggio IS NULL
			

declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,COD_FISCALE,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DataValorizzazioneTRenab]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
-- =============================================  
-- Author:  Fabrizio Caruso   
-- Create date: 17/09/2014  
-- Description:   
-- TODO --- Da ottimizzare per Data Quality   
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_DataValorizzazioneTRenab]  
@idFaseElaborazione int  
AS  
BEGIN  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=10   
  
 SELECT @idTipoControllo as idtipocontrollo,  
           TANAB.RETE AS RETE,  
     VC.COD_FISCALE as codfis,  
     'DTVALORIZZ non valida - Area: ' +    
     CASE  
    WHEN TANAB.CODAREA = 'INV' THEN 'Inv'  
    WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'  
    WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'  
    WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'  
     END + ' Nome Progetto: ' +  
           ISNULL(CS.nomeProgetto, 'XXX') + ' - DTVALORIZZ: ' +  
          CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) +    
           ' - CTV_MONITORATO: ' + ltrim(rtrim(cast(WRENAB.CTV AS VARCHAR(20)))) +  
           ' - RISORSE_ASSOCIATE: ' + ltrim(rtrim(cast(WRENAB.CVN AS VARCHAR(20)))) +  
           ' - CEDOLE_DIV: ' + ltrim(rtrim(cast((TANAB.TOT_CED + TANAB.TOT_DIV) AS VARCHAR(20)))) +   
     ' - ChiaveProgetto: ' + cast(isnull(CM.ChiaveProgetto, '') as varchar(10)) as descerror  
     into #TbErrori  
 FROM C6STAGINGPERIODICO.TANAB AS TANAB  
 INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB  
  ON TANAB.CODPROG = WRENAB.CODPROG  
  AND TANAB.DTRIF = WRENAB.DTRIF  
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM  
        ON TANAB.CODPROG = CM.idmonitoraggio  
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS  
--        ON CM.chiaveprogetto = CS.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_Progetto PR  
        ON CM.chiaveprogetto = PR.chiaveProgetto  
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS  
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod  
  
    INNER JOIN C6stagingperiodico.appo_contratti_v VC  
  ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = ''   
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = ''   
                                    THEN VC.COD_FISCALE   
                             ELSE VC.PIVA_FIDUCIARIA END   
                             ELSE VC.COD_MANDATO  
                          END  
        AND TANAB.RETE = VC.RETE  
--        AND VC.DATA_FINEAVANZATO > getDate()   
 WHERE 1 = 1  
 AND TANAB.DTFINE = '99991231'  
 AND ISDATE(WRENAB.DTVALORIZ) = 0  
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,codfis,descerror,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
  
end  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DataValorizzazioneTRenab_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Fabrizio Caruso	
-- Create date: 17/09/2014
-- Description:	
-- TODO --- Da ottimizzare per Data Quality 
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_DQ_DataValorizzazioneTRenab_pre_selective]
@idFaseElaborazione int
AS
BEGIN

Declare @idTipoControllo int

set @idTipoControllo=10	

	SELECT @idTipoControllo as idtipocontrollo,
           TANAB.RETE AS RETE,
		   VC.COD_FISCALE as codfis,
		   'DTVALORIZZ non valida - Area: ' +  
		   CASE
				WHEN TANAB.CODAREA = 'INV' THEN 'Inv'
				WHEN TANAB.CODAREA = 'RIS' THEN 'Ris'
				WHEN TANAB.CODAREA = 'EXR' THEN 'Ext'
				WHEN TANAB.CODAREA = 'LIQ' THEN 'Liq'
		   END + ' Nome Progetto: ' +
           ISNULL(CS.nomeProgetto, 'XXX') + ' - DTVALORIZZ: ' +
          CAST(WRENAB.DTVALORIZ AS VARCHAR(8)) +  
           ' - CTV_MONITORATO: ' + ltrim(rtrim(cast(WRENAB.CTV AS VARCHAR(20)))) +
           ' - RISORSE_ASSOCIATE: ' + ltrim(rtrim(cast(WRENAB.CVN AS VARCHAR(20)))) +
           ' - CEDOLE_DIV: ' + ltrim(rtrim(cast((TANAB.TOT_CED + TANAB.TOT_DIV) AS VARCHAR(20)))) + 
		   ' - ChiaveProgetto: ' + cast(isnull(CM.ChiaveProgetto, '') as varchar(10)) as descerror
		   into #TbErrori
	FROM C6STAGINGPERIODICO.TANAB AS TANAB
	INNER JOIN C6StagingPeriodico.TRENAB AS WRENAB
		ON TANAB.CODPROG = WRENAB.CODPROG
		AND TANAB.DTRIF = WRENAB.DTRIF
    INNER JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
        ON TANAB.CODPROG = CM.idmonitoraggio
--    INNER JOIN C6StagingPeriodico.RP_Consulenza CS
--        ON CM.chiaveprogetto = CS.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_Progetto PR
        ON CM.chiaveprogetto = PR.chiaveProgetto
    INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello CS
        ON PR.chiaveprogettoMod = CS.chiaveProgettoMod

    INNER JOIN C6stagingperiodico.appo_contratti VC
		ON TANAB.CODFIS = CASE WHEN VC.COD_MANDATO IS NULL OR VC.COD_MANDATO = '' 
                              THEN CASE WHEN VC.PIVA_FIDUCIARIA IS NULL OR VC.PIVA_FIDUCIARIA = '' 
                                    THEN VC.COD_FISCALE 
                             ELSE VC.PIVA_FIDUCIARIA END 
                             ELSE VC.COD_MANDATO
                          END
        AND TANAB.RETE = VC.RETE
--        AND VC.DATA_FINEAVANZATO > getDate() 
	WHERE 1 = 1
	AND TANAB.DTFINE = '99991231'
	AND ISDATE(WRENAB.DTVALORIZ) = 0



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,codfis,descerror,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo

end








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DeleteSegnalazioni]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Cancellazione Segnalazioni/Scarti su tabella DATA QUALITY  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_DeleteSegnalazioni]  
@idFaseElaborazione int  
AS  
BEGIN  
  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'SP_DQ_DeleteSegnalazioni',  
  GETDATE(),  
  'Elaborazione Trimestrale '  
 )  
  
if ( @idFaseElaborazione > 0 )   
begin  
  delete  
  from   C6MartPeriodico.tb_SegnalazioniDataQuality  
  where idFaseElaborazione =@idFaseElaborazione  
end   
else   
  truncate table  C6MartPeriodico.tb_SegnalazioniDataQuality  
  
     
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'SP_DQ_DeleteSegnalazioni' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'SP_DQ_DeleteSegnalazioni'  
  )  
  
  
  
     
end    

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DeleteSegnalazioni_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Cancellazione Segnalazioni/Scarti su tabella DATA QUALITY
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_DeleteSegnalazioni_pre_selective]
@idFaseElaborazione int
AS
BEGIN

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SP_DQ_DeleteSegnalazioni_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

if ( @idFaseElaborazione > 0 ) 
begin
  delete
  from   C6MartPeriodico.tb_SegnalazioniDataQuality
  where idFaseElaborazione =@idFaseElaborazione
end 
else 
  truncate table  C6MartPeriodico.tb_SegnalazioniDataQuality

			


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SP_DQ_DeleteSegnalazioni_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SP_DQ_DeleteSegnalazioni_pre_selective'
		)



			
end 	
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DescCatalogoProdottiScadenze]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
-- =============================================  
-- Author:  Fabrizio Caruso   
-- Create date: 17/09/2014  
-- Description:   
-- TODO --- Da ottimizzare per Data Quality   
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_DescCatalogoProdottiScadenze]  
@idFaseElaborazione int  
AS  
BEGIN  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=11   
  
       SELECT @idTipoControllo idTipoControllo,RETE, COD_FISCALE as codfis  
           into #TbErrori  
   FROM [C6MartPeriodico].[SCADENZE] WHERE ISNULL(DesProd,'') =''   
   
   
   
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,codfis,descSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
  
end  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DescCatalogoProdottiScadenze_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Fabrizio Caruso	
-- Create date: 17/09/2014
-- Description:	
-- TODO --- Da ottimizzare per Data Quality 
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_DQ_DescCatalogoProdottiScadenze_pre_selective]
@idFaseElaborazione int
AS
BEGIN

Declare @idTipoControllo int

set @idTipoControllo=11	

	      SELECT @idTipoControllo idTipoControllo,RETE, COD_FISCALE as codfis
	      	   into #TbErrori
			FROM [C6MartPeriodico].[SCADENZE] WHERE ISNULL(DesProd,'') ='' 
	
	
	



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,codfis,descSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo

end






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DescProdottoProventi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Controllo corretta generazione del campo Descrizione Prodotto ( DescProd ) sulla tabella  
-- C6MartPeriodico.PROVENTI  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_DescProdottoProventi]  
@idFaseElaborazione int  
AS  
BEGIN  
  
  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=2     
     
  
SELECT a.RETE, a.COD_FISCALE,@idTipoControllo idtipocontrollo  
into #TbErrori  
FROM [C6MartPeriodico].[PROVENTI] a  
 INNER JOIN c6stagingperiodico.appo_contratti_v b  
 on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and b.tip_contratto=2   
WHERE ISNULL(a.DesProd,'') =''   
group by a.RETE, a.COD_FISCALE  
     
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,COD_FISCALE,DescSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_DescProdottoProventi_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Controllo corretta generazione del campo Descrizione Prodotto ( DescProd ) sulla tabella
-- C6MartPeriodico.PROVENTI
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_DescProdottoProventi_pre_selective]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=2			
			

SELECT a.RETE, a.COD_FISCALE,@idTipoControllo idtipocontrollo
into #TbErrori
FROM [C6MartPeriodico].[PROVENTI] a
 INNER JOIN c6stagingperiodico.appo_contratti b
 on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and b.tip_contratto=2 
WHERE ISNULL(a.DesProd,'') ='' 
group by a.RETE, a.COD_FISCALE
			



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  


Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,COD_FISCALE,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PiramideAreeDuplicate]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Individuazione dei Clienti che presentano nella piramide modello una o più   
-- aree/progetti duplicati  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_PiramideAreeDuplicate]   
@idFaseElaborazione int  
AS  
BEGIN  
  
  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=6    
     
  
  
  
SELECT DISTINCT    
  d.rete,   
 case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman  
   when (isnull(codfis,'') <> '') then codfis    
   else c.piva  
 end as Codicefiscale,         
 @idTipoControllo idtipocontrollo  
    into #TbErrori  
 FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a  
 JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b   
  ON b.chiaveClientePB = a.chiaveClientePB   
  AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')  
 JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c   
  ON b.chiaveCliente = c.chiaveCliente   
 JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d   
  ON b.chiavePB = d.chiavePB  
 WHERE  
  A.chiaveclientepb in (   
  select distinct chiaveclientepb   
  FROM   
  (  
  --SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM     
  --[CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello  
  --where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()  
  --group by chiaveclientepb,area,tipoprogetto  
  --having COUNT(*)<>1   
    
   SELECT chiaveclientepb,area,COUNT(*) as c   
   FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod  
   inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod  
   on pirmod.chiavePiramideMod = areamod.chiaveAreaMod  
   inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod  
   on progmod.chiaveAreaMod = areamod.chiaveAreaMod  
   where  area <> 'na'   
   group by chiaveclientepb,area  
   having COUNT(*)<>1  
    
  ) t  
 )    
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,tbErr.rete,Codicefiscale,DescSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
inner join c6stagingperiodico.appo_contratti_v Contr  
on  tbErr.rete = contr.rete  
and tbErr.CodiceFiscale = contr.cod_fiscale  
     
     
end      
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PiramideAreeDuplicate_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano nella piramide modello una o più 
-- aree/progetti duplicati
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_PiramideAreeDuplicate_pre_selective] 
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=6		
			



SELECT DISTINCT	 
	 d.rete,	
	case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
		 when (isnull(codfis,'') <> '') then codfis 	
		 else c.piva
	end as Codicefiscale,       
	@idTipoControllo idtipocontrollo
    into #TbErrori
	FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
		ON b.chiaveClientePB = a.chiaveClientePB 
		AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
		ON b.chiaveCliente = c.chiaveCliente 
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
		ON b.chiavePB = d.chiavePB
	WHERE
		A.chiaveclientepb in ( 
		select distinct chiaveclientepb 
		FROM 
		(
		--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
		--[CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello
		--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
		--group by chiaveclientepb,area,tipoprogetto
		--having COUNT(*)<>1 
		
		 SELECT chiaveclientepb,area,COUNT(*) as c 
			FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
			inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
			on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
			inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
			on progmod.chiaveAreaMod = areamod.chiaveAreaMod
			where  area <> 'na' 
			group by chiaveclientepb,area
			having COUNT(*)<>1
		
		) t
	)  



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,tbErr.rete,Codicefiscale,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
inner join c6stagingperiodico.appo_contratti Contr
on  tbErr.rete = contr.rete
and tbErr.CodiceFiscale = contr.cod_fiscale
			
			
end 			



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PositionID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Controllo corretta generazione del campo POSITION ID sulla tabella  
-- C6StagingPeriodico.SPB_CONTR_SINTESI  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_PositionID]  
@idFaseElaborazione int  
AS  
BEGIN  
  
  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=1     
     
  
SELECT RETE, codfis,@idTipoControllo idtipocontrollo  
into #TbErrori  
FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''  
GROUP BY RETE, codfis  
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,codfis,DescSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PositionID_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Controllo corretta generazione del campo POSITION ID sulla tabella
-- C6StagingPeriodico.SPB_CONTR_SINTESI
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_PositionID_pre_selective]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=1			
			

SELECT RETE, codfis,@idTipoControllo idtipocontrollo
into #TbErrori
FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''
GROUP BY RETE, codfis



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,codfis,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PositionIDConsulenza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Controllo corretta generazione del campo POSITION ID sulla tabella  
-- C6StagingPeriodico.SPB_CONTR_SINTESI  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_PositionIDConsulenza]  
@idFaseElaborazione int  
AS  
BEGIN  
  
  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=12     
     
  
SELECT RETE, cod_fiscale codfis,@idTipoControllo idtipocontrollo  
into #TbErrori  
FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''  
GROUP BY RETE, cod_fiscale  
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,codfis,DescSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
  
end      
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PositionIDConsulenza_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Controllo corretta generazione del campo POSITION ID sulla tabella
-- C6StagingPeriodico.SPB_CONTR_SINTESI
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_PositionIDConsulenza_pre_selective]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=12			
			

SELECT RETE, cod_fiscale codfis,@idTipoControllo idtipocontrollo
into #TbErrori
FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''
GROUP BY RETE, cod_fiscale



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,codfis,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo

end 			



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_PosizioniDuplicate]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano una o più posizioni duplicate 
-- nel proprio patrimonio finanziario 
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================
--  ATTENZIONE !!! 
--  La SP che carica la Patrimonio BF effettua un controllo dopo una prima elaborazione e scarta 
--  i record "duplicati". Riporto la query di INPUT per poter effetturare il test e lo scarto
    
 
CREATE procedure [C6MartPeriodico].[SP_DQ_PosizioniDuplicate]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=4		
			
-- Selezione in Tabella Temporanea Verifica_CAMPIONE dei record "doppi"

SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
--***************************************
	INTO #Verifica_CAMPIONE
--***************************************	
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***


    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6STAGINGPERIODICO.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPERIODICO.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodico.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6STAGINGPERIODICO.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin = 'EURO00000009'


SELECT RETE, COD_FISCALE, POSITIONID,@idTipoControllo idtipocontrollo
into #TbErrori
FROM #Verifica_CAMPIONE
GROUP BY RETE, COD_FISCALE, POSITIONID
HAVING COUNT(*) > 1


declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,COD_FISCALE,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_ProgettoDuplicatoArea]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Record Aventi per Ordinamento Progetto Aree Duplicate

-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================

    
 
CREATE procedure [C6MartPeriodico].[SP_DQ_ProgettoDuplicatoArea]
@idFaseElaborazione int
AS
BEGIN




Declare @idTipoControllo int

set @idTipoControllo=5	
			

select distinct a.rete, a.cod_fiscale,@idTipoControllo idtipocontrollo
into #TbErrori
from 
(SELECT * FRom c6martperiodico.patrimonio_bf ) a
inner join
(SELECT * FRom c6martperiodico.patrimonio_bf ) b
on a.cod_fiscale = b.cod_fiscale 
and a.rete= b.rete
and a.id_area = b.id_area
where a.id_area <> 'Inv'
and a.ordinamento_progetto <> b.ordinamento_progetto



declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,COD_FISCALE,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_ScartiAPI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Individuazione dei Clienti che presentano in Anagrafica caratteri anomali nei campi che formano l’indirizzo di   
-- domiciliazione del contratto di consulenza  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
-- [C6MartPeriodico].[SP_DQ_CaratteriAnomali] 2  
CREATE procedure [C6MartPeriodico].[SP_DQ_ScartiAPI]   
@idFaseElaborazione int  
AS  
BEGIN  


  
Declare @idTipoControllo int  
  
  
set @idTipoControllo=16     
    
  
--select * from C6MartPeriodico.TB_SegnalazioniDataQuality where idTipoControllo=16  
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select @idTipoControllo,rete,case when codman<>'' then 'FF@'+codman 
 when piva<>'' then piva
else codfis end as codicefiscale,  
tipo.descSegnalazione+ ' IGNORA L''ERRORE verra recuperato al giro successivo automaticamente' ,@idelab,'',@idFaseElaborazione  
from C6StagingPeriodico.TRIMESTRALE_SCARTI tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on @idTipoControllo = tipo.idTipoControllo  
where BLACKLIST='in errore API Sei'
     
end      
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_ScriviDisallineati]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Individuazione dei Clienti che presentano un disallineamento tra l’importo associato ad una determinata   
-- area di bisogno e l’eventuale importo che risulta nei dati di Monitoraggio per la medesima Area di Bisogno   
-- (per ogni cliente si prevede l’inserimento di un record di segnalazione per ciascuna area di bisogno che risulta   
-- disallineata con l’indicazione, nel campo descrizione, dell’area a cui si riferisce il disallineamento)  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_ScriviDisallineati]  
@idFaseElaborazione int  
AS  
BEGIN  
  
--drop table #tab_temp  
  
--drop table #TbErrori  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=9     
    
       
select *,@idTipoControllo idTipoControllo  
    into #TbErrori  
from dbo.disallineati2  
  
--INIZIO Forzatura Trimestre 1° trimestre 2015  
--where cod_fiscale <> 'MTTMRT38A04H407S'  
--FINE Forzatura Trimestre 1° trimestre 2015  
  
  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,cod_fiscale,  
Replace(Replace(replace(DescSegnalazione,'area$',tbErr.mon_area),'ctv$',tbErr.CTV_MONIT),'delta$',tbErr.delta)  
,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_ScriviDisallineati_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano un disallineamento tra l’importo associato ad una determinata 
-- area di bisogno e l’eventuale importo che risulta nei dati di Monitoraggio per la medesima Area di Bisogno 
-- (per ogni cliente si prevede l’inserimento di un record di segnalazione per ciascuna area di bisogno che risulta 
-- disallineata con l’indicazione, nel campo descrizione, dell’area a cui si riferisce il disallineamento)
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_DQ_ScriviDisallineati_pre_selective]
@idFaseElaborazione int
AS
BEGIN

--drop table #tab_temp

--drop table #TbErrori

Declare @idTipoControllo int

set @idTipoControllo=9			
		
     
select *,@idTipoControllo idTipoControllo
    into #TbErrori
from dbo.disallineati2

--INIZIO Forzatura Trimestre 1° trimestre 2015
--where cod_fiscale <> 'MTTMRT38A04H407S'
--FINE Forzatura Trimestre 1° trimestre 2015




declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,cod_fiscale,
Replace(Replace(replace(DescSegnalazione,'area$',tbErr.mon_area),'ctv$',tbErr.CTV_MONIT),'delta$',tbErr.delta)
,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_SelezioneDisallineati]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Fabrizio Caruso	
-- Create date: 17/09/2014
-- Description:	Copia della SP  [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT]
-- TODO --- Da ottimizzare per Data Quality 
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_DQ_SelezioneDisallineati]

AS
BEGIN


	
SELECT 
RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4) AS ID_AREA,
isnull(ORDINAMENTO_PROGETTO,0) as ordinamento_progetto,
SUM(CTV) AS SUM_CTV
INTO #TEMP_PATRIMONIO_BF_AGGR
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE ID_AREA NOT IN ('CC','NA')
AND REND_NON_RAPPR=0
GROUP BY RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4),
isnull(ORDINAMENTO_PROGETTO,0)


--SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
--WHERE CODFIS IN 
--(SELECT DISTINCT COD_FISCALE FROM #TEMP_PATRIMONIO_BF_AGGR)

SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
WHERE CODFIS IN 
-- Modifica del 28/4/2017 per staging e mart selective
       --    (select cod_fiscale from c6stagingperiodico.appo_contratti)
	   (select cod_fiscale from c6stagingperiodico.appo_contratti_v)
-- Fine modifica del 28/4/2017 per staging e mart selective


SELECT  *
FROM
(
SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO as bf_ordprorg,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog as mon_codprog
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
AND S.chiaveprogetto=isnull(P.ORDINAMENTO_PROGETTO,0)
AND M.CODPROG = S.idmonitoraggio
and id_area ='Inv'

union all

SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
and id_area <>'Inv'

union all

--------------------------------------------
-- SOLO MONITORAGGIO
--------------------------------------------

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M
left outer join 
--#TEMP_PATRIMONIO_BF_AGGR P
(select T.*,S.idmonitoraggio from 
#TEMP_PATRIMONIO_BF_AGGR T
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
where S.chiaveprogetto=isnull(T.ORDINAMENTO_PROGETTO,0)
)P
on
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end  = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND M.CODPROG = P.idmonitoraggio
AND DTFINE ='99991231'
where
m.ctv > 0
and p.cod_fiscale is null
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
--and id_area ='Inv'
and m.codarea ='Inv'

union all

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
p.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M 
left outer join
#TEMP_PATRIMONIO_BF_AGGR P
on
M.RETE = P.RETE 
--AND M.CODFIS = P.COD_FISCALE
AND case when len(m.CODFIS) =4 then 'FF@'+m.codfis else m.codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
where
DTFINE ='99991231'
and  m.ctv > 0
and p.cod_fiscale is null
and codarea <>'Inv'
) k
order by 2,1



end






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_SelezioneDisallineati_pre_selective_luca]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Fabrizio Caruso	
-- Create date: 17/09/2014
-- Description:	Copia della SP  [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT]
-- TODO --- Da ottimizzare per Data Quality 
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_DQ_SelezioneDisallineati_pre_selective_luca]

AS
BEGIN


	
SELECT 
RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4) AS ID_AREA,
isnull(ORDINAMENTO_PROGETTO,0) as ordinamento_progetto,
SUM(CTV) AS SUM_CTV
INTO #TEMP_PATRIMONIO_BF_AGGR
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE ID_AREA NOT IN ('CC','NA')
AND REND_NON_RAPPR=0
GROUP BY RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4),
isnull(ORDINAMENTO_PROGETTO,0)


--SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
--WHERE CODFIS IN 
--(SELECT DISTINCT COD_FISCALE FROM #TEMP_PATRIMONIO_BF_AGGR)

SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
WHERE CODFIS IN 
(select cod_fiscale from c6stagingperiodico.appo_contratti)


SELECT  *
FROM
(
SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO as bf_ordprorg,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog as mon_codprog
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
AND S.chiaveprogetto=isnull(P.ORDINAMENTO_PROGETTO,0)
AND M.CODPROG = S.idmonitoraggio
and id_area ='Inv'

union all

SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
and id_area <>'Inv'

union all

--------------------------------------------
-- SOLO MONITORAGGIO
--------------------------------------------

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M
left outer join 
--#TEMP_PATRIMONIO_BF_AGGR P
(select T.*,S.idmonitoraggio from 
#TEMP_PATRIMONIO_BF_AGGR T
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
where S.chiaveprogetto=isnull(T.ORDINAMENTO_PROGETTO,0)
)P
on
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end  = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND M.CODPROG = P.idmonitoraggio
AND DTFINE ='99991231'
where
m.ctv > 0
and p.cod_fiscale is null
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
--and id_area ='Inv'
and m.codarea ='Inv'

union all

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
p.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M 
left outer join
#TEMP_PATRIMONIO_BF_AGGR P
on
M.RETE = P.RETE 
--AND M.CODFIS = P.COD_FISCALE
AND case when len(m.CODFIS) =4 then 'FF@'+m.codfis else m.codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
where
DTFINE ='99991231'
and  m.ctv > 0
and p.cod_fiscale is null
and codarea <>'Inv'
) k
order by 2,1



end






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_VerificaDisallineati]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Individuazione dei Clienti che presentano un disallineamento tra l’importo associato ad una determinata   
-- area di bisogno e l’eventuale importo che risulta nei dati di Monitoraggio per la medesima Area di Bisogno   
-- (per ogni cliente si prevede l’inserimento di un record di segnalazione per ciascuna area di bisogno che risulta   
-- disallineata con l’indicazione, nel campo descrizione, dell’area a cui si riferisce il disallineamento)  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_VerificaDisallineati]  
@idFaseElaborazione int  
AS  
BEGIN  
  
--drop table #tab_temp  
  
--drop table #TbErrori  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=9     
    
       
  
CREATE TABLE #tab_temp(  
 [Rete] varchar(1) NOT NULL,  
 [Cod_Fiscale] varchar(16) NOT NULL,  
 id_Area varchar(10) NULL,  
 mon_area varchar(10) NULL,  
 bf_ordprorg int NULL,  
 CTV_MONIT decimal(12,2) NULL,  
 SUM_CTV decimal(12,2) NULL,  
 delta   decimal(12,2) null,  
 CodProg  int)  
  
  
insert into #tab_temp  
exec [C6MartPeriodico].[SP_DQ_SelezioneDisallineati]  
  
select *,@idTipoControllo idTipoControllo  
    into #TbErrori  
from #tab_temp  
  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,cod_fiscale,  
Replace(Replace(replace(DescSegnalazione,'area$',tbErr.mon_area),'ctv$',tbErr.CTV_MONIT),'delta$',tbErr.delta)  
,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_VerificaDisallineati_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano un disallineamento tra l’importo associato ad una determinata 
-- area di bisogno e l’eventuale importo che risulta nei dati di Monitoraggio per la medesima Area di Bisogno 
-- (per ogni cliente si prevede l’inserimento di un record di segnalazione per ciascuna area di bisogno che risulta 
-- disallineata con l’indicazione, nel campo descrizione, dell’area a cui si riferisce il disallineamento)
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_VerificaDisallineati_pre_selective]
@idFaseElaborazione int
AS
BEGIN

--drop table #tab_temp

--drop table #TbErrori

Declare @idTipoControllo int

set @idTipoControllo=9			
		
     

CREATE TABLE #tab_temp(
	[Rete] varchar(1) NOT NULL,
	[Cod_Fiscale] varchar(16) NOT NULL,
	id_Area varchar(10) NULL,
	mon_area varchar(10) NULL,
	bf_ordprorg int NULL,
	CTV_MONIT decimal(12,2) NULL,
	SUM_CTV decimal(12,2) NULL,
	delta   decimal(12,2) null,
	CodProg  int)


insert into #tab_temp
exec [C6MartPeriodico].[SP_DQ_SelezioneDisallineati]

select *,@idTipoControllo idTipoControllo
    into #TbErrori
from #tab_temp


declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,cod_fiscale,
Replace(Replace(replace(DescSegnalazione,'area$',tbErr.mon_area),'ctv$',tbErr.CTV_MONIT),'delta$',tbErr.delta)
,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_VerificaEmail]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
-- =============================================  
-- Author:  Caruso Fabrizio  
-- Create date: 17/09/2014  
-- Description:   
-- Individuazione dei Clienti che presentano in Anagrafica un indirizzo email   
-- formalmente errato  
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico   
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )  
-- =============================================  
  
  
  
CREATE procedure [C6MartPeriodico].[SP_DQ_VerificaEmail]  
@idFaseElaborazione int  
AS  
BEGIN  
  
  
  
Declare @idTipoControllo int  
  
set @idTipoControllo=8    
     
  
  
  
  
  
SELECT RETE, cod_fiscale,@idTipoControllo idtipocontrollo  
into #TbErrori  
from c6martperiodico.contrattosei  
where dbo.RegExIsMatch('^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$',isNull(email,'aa@aa.it'),0) = 0   
and email <> '' -- 10/10/2016 Aggiunta questa condizione per gestire i campi email a ''  
  
declare @idElab  int  
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni  
       
--select * from c6martperiodico.tb_tipocontrollo  
  
Insert into C6MartPeriodico.TB_SegnalazioniDataQuality  
(   
idTipoControllo,  
rete,  
codiceFiscale,  
descSegnalazione,  
idElaborazione,  
richiesta,  
idFaseElaborazione)  
select tbErr.idTipoControllo,rete,cod_fiscale,DescSegnalazione,@idelab,'',@idFaseElaborazione  
from #TbErrori tbErr  
inner join c6martperiodico.tb_tipocontrollo Tipo  
on tbErr.idtipocontrollo = tipo.idTipoControllo  
     
     
end      
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_VerificaEmail_20161010]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano in Anagrafica un indirizzo email 
-- formalmente errato
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_VerificaEmail_20161010]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=8		
			





SELECT RETE, cod_fiscale,@idTipoControllo idtipocontrollo
into #TbErrori
from c6martperiodico.contrattosei
where dbo.RegExIsMatch('^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$',isNull(email,'aa@aa.it'),0) = 0


declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,cod_fiscale,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_DQ_VerificaEmail_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Caruso Fabrizio
-- Create date: 17/09/2014
-- Description:	
-- Individuazione dei Clienti che presentano in Anagrafica un indirizzo email 
-- formalmente errato
-- Impostazione Codice TIPO CONTROLLO per il controllo specifico 
-- ( per riferimenti al tipo controllo verificare tabella "tb_tipocontrollo" )
-- =============================================



CREATE procedure [C6MartPeriodico].[SP_DQ_VerificaEmail_pre_selective]
@idFaseElaborazione int
AS
BEGIN



Declare @idTipoControllo int

set @idTipoControllo=8		
			





SELECT RETE, cod_fiscale,@idTipoControllo idtipocontrollo
into #TbErrori
from c6martperiodico.contrattosei
where dbo.RegExIsMatch('^([\w\-\+\.]+)@([\w\-\+\.]+).([\w\-\+\.]+)$',isNull(email,'aa@aa.it'),0) = 0 
and email <> '' -- 10/10/2016 Aggiunta questa condizione per gestire i campi email a ''

declare @idElab  int
select @idElab=max(id_elab) from  c6martperiodico.elaborazioni
			  
--select * from c6martperiodico.tb_tipocontrollo

Insert into C6MartPeriodico.TB_SegnalazioniDataQuality
( 
idTipoControllo,
rete,
codiceFiscale,
descSegnalazione,
idElaborazione,
richiesta,
idFaseElaborazione)
select tbErr.idTipoControllo,rete,cod_fiscale,DescSegnalazione,@idelab,'',@idFaseElaborazione
from #TbErrori tbErr
inner join c6martperiodico.tb_tipocontrollo Tipo
on tbErr.idtipocontrollo = tipo.idTipoControllo
			
			
end 			





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_getDatiReport]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Fabrizio Caruso
-- Create date: 21/02/2015
-- Description:	Calcolo su  Totali Report per gestione generazione Zip
-- =============================================
CREATE procedure [C6MartPeriodico].[sp_getDatiReport]
AS
BEGIN

select top 400 pdf.codicecontratto as codiceContratto ,
pdf.rete as rete ,
pdf.codicefiscale as codiceFiscale ,
clienti.nome as nomeCliente  ,
clienti.cognome as cognomeCliente, 
pdf.TipoReport as TipoReport,
pdf.idReport as IdReport ,
contratti.cod_agente as codAgente ,
isnull(promot.nome,'') as nomeAgente ,
isnull(promot.Cognome,'') as cognomeAgente ,
pdf.numeropagine as numeroPagine ,
pdf.NomeFile as NomeFile,
contratti.tip_contratto tipoContratto,
id_fk_zip,
pdf.identityreport
from [C6MartPeriodico].[GESTIONE_PDF_FTP]  PDF
inner join C6MartPeriodico.controllo_trimestrale contr
on pdf.rete = contr.rete and pdf.codicefiscale=contr.cod_fiscale
inner join [C6MartPeriodico].[ANAG_CLIENTI] Clienti
on pdf.rete=clienti.rete and pdf.codicefiscale=clienti.COD_FISCALE 
inner join [C6StagingPeriodico].Appo_Contratti Contratti
on contratti.rete=pdf.rete and contratti.cod_fiscale= pdf.codicefiscale 
left join [C6MartPeriodico].[ANAG_Promotori] promot
on contratti.rete=promot.rete and contratti.cod_agente= promot.id_promotore
left join C6martperiodico.ExcludedList ex 
on  pdf.rete=ex.rete and pdf.codicefiscale = ex.codicefiscale
where stato_report=8 -- Se già generata la WhiteList -- 6 Se ancora non generata

and IDReport=IdentityReport -- Utilizzare Questa Condizione in fase di generazione massiva 


-- 27/10/2015 FCianfa commento cdz
-- Utilizzare questa condizione in fase di recupero report
--and IDReport in 
--(select identificativo from dbo.reportDainserire_recupero)

--order by IdentityReport



	
		
End





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_getDatiReport_checkFileCorrotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Fabrizio Caruso
-- Create date: 21/02/2015
-- Description:	Calcolo su  Totali Report per gestione generazione Zip
-- =============================================
CREATE procedure [C6MartPeriodico].[sp_getDatiReport_checkFileCorrotti]
AS
BEGIN

select --top 10
 pdf.codicecontratto as codiceContratto ,
pdf.rete as rete ,
pdf.codicefiscale as codiceFiscale ,
clienti.nome as nomeCliente  ,
clienti.cognome as cognomeCliente, 
pdf.TipoReport as TipoReport,
--pdf.idReport as IdReport ,
pdf.identityreport as IdReport ,
contratti.cod_agente as codAgente ,
isnull(promot.nome,'') as nomeAgente ,
isnull(promot.Cognome,'') as cognomeAgente ,
pdf.numeropagine as numeroPagine ,
pdf.NomeFile as NomeFile,
contratti.tip_contratto tipoContratto,
id_fk_zip,
pdf.identityreport
from [C6MartPeriodico].[GESTIONE_PDF_FTP]  PDF
inner join C6MartPeriodico.controllo_trimestrale contr
on pdf.rete = contr.rete and pdf.codicefiscale=contr.cod_fiscale
inner join [C6MartPeriodico].[ANAG_CLIENTI] Clienti
on pdf.rete=clienti.rete and pdf.codicefiscale=clienti.COD_FISCALE 
inner join [C6StagingPeriodico].Appo_Contratti Contratti
on contratti.rete=pdf.rete and contratti.cod_fiscale= pdf.codicefiscale 
left join [C6MartPeriodico].[ANAG_Promotori] promot
on contratti.rete=promot.rete and contratti.cod_agente= promot.id_promotore
left join C6martperiodico.ExcludedList ex 
on  pdf.rete=ex.rete and pdf.codicefiscale = ex.codicefiscale
where stato_report=8 -- 8 Se già generata la WhiteList -- 6 Se ancora non generata

--and IDReport=IdentityReport -- Utilizzare Questa Condizione in fase di generazione massiva 


-- 27/10/2015 FCianfa commento cdz
-- Utilizzare questa condizione in fase di recupero report
--and IDReport in 
--(select identificativo from dbo.reportDainserire_recupero)

--order by IdentityReport



	
		
End






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_getDatiReport_checkFileCorrotti_Griffin]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		Fabrizio Caruso
-- Create date: 21/02/2015
-- Description:	Calcolo su  Totali Report per gestione generazione Zip
-- =============================================
CREATE procedure [C6MartPeriodico].[sp_getDatiReport_checkFileCorrotti_Griffin]
AS
BEGIN

select --top 10
 pdf.codicecontratto as codiceContratto ,
pdf.rete as rete ,
pdf.codicefiscale as codiceFiscale ,
clienti.nome as nomeCliente  ,
clienti.cognome as cognomeCliente, 
pdf.TipoReport as TipoReport,
--pdf.idReport as IdReport ,
pdf.identityreport as IdReport ,
contratti.cod_agente as codAgente ,
isnull(promot.nome,'') as nomeAgente ,
isnull(promot.Cognome,'') as cognomeAgente ,
pdf.numeropagine as numeroPagine ,
pdf.NomeFile as NomeFile,
contratti.tip_contratto tipoContratto,
id_fk_zip,
pdf.identityreport
from [C6MartPeriodico].[GESTIONE_PDF_FTP]  PDF
inner join C6MartPeriodico.controllo_trimestrale contr
on pdf.rete = contr.rete and pdf.codicefiscale=contr.cod_fiscale
inner join [C6MartPeriodico].[ANAG_CLIENTI] Clienti
on pdf.rete=clienti.rete and pdf.codicefiscale=clienti.COD_FISCALE 
inner join [C6StagingPeriodico].Appo_Contratti Contratti
on contratti.rete=pdf.rete and contratti.cod_fiscale= pdf.codicefiscale 
left join [C6MartPeriodico].[ANAG_Promotori] promot
on contratti.rete=promot.rete and contratti.cod_agente= promot.id_promotore
left join C6martperiodico.ExcludedList ex 
on  pdf.rete=ex.rete and pdf.codicefiscale = ex.codicefiscale
where stato_report=8 -- 8 Se già generata la WhiteList -- 6 Se ancora non generata
and pdf.codicecontratto = '519345CO803'
--and IDReport=IdentityReport -- Utilizzare Questa Condizione in fase di generazione massiva 


-- 27/10/2015 FCianfa commento cdz
-- Utilizzare questa condizione in fase di recupero report
--and IDReport in 
--(select identificativo from dbo.reportDainserire_recupero)

--order by IdentityReport



	
		
End






GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_getIDReport]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--[C6MartPeriodico].sp_getIDReport '232126CO200_20150418'
CREATE procedure [C6MartPeriodico].[sp_getIDReport]
@nomeFile varchar(100)
AS

BEGIN 


	SELECT IDReport
	FROM
		C6MartPeriodico.GESTIONE_PDF_FTP
	WHERE
		nomefile=@nomeFile
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_GetNumeroZipProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Fabrizio Caruso
-- Create date: 21/01/2015
-- Description:	Calcolo su  Totali Report per gestione generazione Zip
-- =============================================
CREATE procedure [C6MartPeriodico].[sp_GetNumeroZipProdotti] 
AS
BEGIN

Declare @Return int

select @Return =count(*) 
from [C6MartPeriodico].[GESTIONE_ZIP_FTP] ZipFtp
inner join ( select max(idElaborazioneZip) id_elab_zip
			 from  [C6MartPeriodico].[ELABORAZIONI_ZIP] 
			 ) Elab_Zip
on  ZipFtp.FKIdElaborazioneZip = id_elab_zip
order by 1 desc 

select @Return 		
		
End









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_Patrimonio_BF_Percentuale_Piramide]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		Marian Zaki
-- Create date: 29/11/2010
-- Description:	Checks for data validation 
-- =============================================
CREATE procedure [C6MartPeriodico].[SP_Patrimonio_BF_Percentuale_Piramide]
-- Add the parameters for the stored procedure here


AS
BEGIN
drop table if exists #liq
drop table if exists #ris
drop table if exists #pre
drop table if exists #inv
drop table if exists #ext
drop table if exists [C6MartPeriodico].[TB_Patrimonio_BF_Percentuale_Piramide]

	SELECT pmod.rete,pmod.COD_FISCALE,isnull(sum(pmod.Perc_Area),0.00) as PERC_LIQ
	into #liq
	FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	where pmod.rete+pmod.COD_FISCALE in (select distinct b.RETE+b.COD_FISCALE from C6MartPeriodico.PATRIMONIO_BF b)
	 and ar.Id_area in ('Liq')
	group by pmod.RETE,pmod.COD_FISCALE

	SELECT pmod.rete,pmod.COD_FISCALE,isnull(sum(pmod.Perc_Area),0.00) as PERC_RIS
	into #ris
	FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	where pmod.rete+pmod.COD_FISCALE in (select distinct RETE+COD_FISCALE from C6MartPeriodico.PATRIMONIO_BF)
	 and ar.Id_area in ('Ris')
	group by pmod.RETE,pmod.COD_FISCALE

		SELECT pmod.rete,pmod.COD_FISCALE,isnull(sum(pmod.Perc_Area),0.00) as PERC_PRE
	into #pre
	FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	where pmod.rete+pmod.COD_FISCALE in (select distinct RETE+COD_FISCALE from C6MartPeriodico.PATRIMONIO_BF)
	 and ar.Id_area in ('Pre')
	group by pmod.RETE,pmod.COD_FISCALE

		SELECT pmod.rete,pmod.COD_FISCALE,isnull(sum(pmod.Perc_Area),0.00) as PERC_INV
	into #inv
	FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	where pmod.rete+pmod.COD_FISCALE in (select distinct RETE+COD_FISCALE from C6MartPeriodico.PATRIMONIO_BF)
	 and ar.Id_area in ('Inv')
	group by pmod.RETE,pmod.COD_FISCALE

		SELECT pmod.rete,pmod.COD_FISCALE,isnull(sum(pmod.Perc_Area),0.000) as PERC_EXT
	into #ext
	FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD] pmod
	inner join [C6StampeCentralizzate].[C6MartPeriodico].Area_Bisogno ar on pmod.id_area=ar.Id_area
	where pmod.rete+pmod.COD_FISCALE in (select distinct RETE+COD_FISCALE from C6MartPeriodico.PATRIMONIO_BF)
	 and ar.Id_area in ('Ext')
	group by pmod.RETE,pmod.COD_FISCALE

	select e.rete,e.cod_fiscale,e.PERC_EXT,i.PERC_INV,p.PERC_PRE,r.PERC_RIS,l.PERC_LIQ
	into [C6MartPeriodico].[TB_Patrimonio_BF_Percentuale_Piramide]
	from
	#ext e inner join #inv i on e.rete+e.COD_FISCALE=i.RETE+i.COD_FISCALE
	inner join #pre p on e.rete+e.COD_FISCALE=p.RETE+p.COD_FISCALE
	inner join #ris r on e.rete+e.COD_FISCALE=r.RETE+r.COD_FISCALE
	inner join #liq l on e.rete+e.COD_FISCALE=l.RETE+l.COD_FISCALE

	--select * from [C6MartPeriodico].[TB_Patrimonio_BF_Percentuale_Piramide]

	
	insert into [C6MartPeriodico].[TB_Patrimonio_BF_Percentuale_Piramide]
	select distinct rete,cod_fiscale,0.00 as PERC_EXT,0.00 as PERC_INV,0.00 as PERC_PRE,0.00 as PERC_RIS, 0.00 as PERC_LIQ from C6MartPeriodico.PATRIMONIO_BF
	except
	select rete,cod_fiscale,0.00 as PERC_EXT,0.00 as PERC_INV,0.00 as PERC_PRE,0.00 as PERC_RIS, 0.00 as PERC_LIQ from #liq



	--select distinct rete,cod_fiscale from c6martperiodico.PATRIMONIO_BF
END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_PreTotaliReportGenerazioneZip]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--exec C6MartPeriodico.SP_PreTotaliReportGenerazioneZip 960, 1

CREATE procedure [C6MartPeriodico].[SP_PreTotaliReportGenerazioneZip]
	@reportPerZip int,
	@isLotto1 int = 0
AS

	set nocount on
	

			create table #result (
				totReportGenerati int,
				isUltimoZip int
			)
			declare @ce int=0
			declare @totReportGenerati int
			declare @isUltimoZip int

			declare @KO int
			set @KO = 0
			declare @err varchar(500)
			set @err = ''

			--exec [C6MartPeriodico].[SP_TotaliReportGenerazioneZip] 960, 1

			insert into #result exec [C6MartPeriodico].[SP_TotaliReportGenerazioneZip]  @reportPerZip, @isLotto1

			select @totReportGenerati = totReportGenerati, @isUltimoZip = isUltimoZip from #result

			if @isLotto1 = 1
				begin
					if @isUltimoZip = 2
						begin
							if (select count(*) from  [C6MartPeriodico].WHITELIST_ZIP WHERE Pacchetto_Zip is null) = 0
							begin
								set @KO = 1
								set @err = 'Nel primo lotto non c''è da fare il file Approval, ma la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato 2'
							end
						end
					if @isUltimoZip = 1
						begin
							if (select count(*) from  [C6MartPeriodico].WHITELIST_ZIP WHERE Pacchetto_Zip is null) > 0
							begin
								set @KO = 1
								set @err = 'Nel primo lotto c''è da fare il file Approval, ma la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato 1'
							end
						end
					if @isUltimoZip not in (1, 2)
						begin
							set @KO = 1
							set @err = 'Nel primo lotto, la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato inconsistente ' + convert(varchar(10), @isUltimoZip)
						end
				end
			else
				begin
					if @isUltimoZip <> 1
						begin
							set @KO = 1
							set @err = 'Per il lotto successivo, la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato inconsistente ' + convert(varchar(10), @isUltimoZip)
						end
				end

			print '@isLotto1 = ' + convert(varchar(10), @isLotto1)
			print '@isUltimoZip = ' + convert(varchar(10), @isUltimoZip)
			print '@KO = ' + convert(varchar(10), @KO)
			print '@err = ''' +  @err + ''''

			if @KO = 0
				begin

					if @isUltimoZip in (1, 2)
						begin
							declare @num_stato_report_1 int
							declare @num_elab_4 int

							select @num_stato_report_1 = COUNT(*) 
							from C6MartPeriodico.controllo_trimestrale
							where stato_report in (1)  --1 

							select @num_elab_4 = COUNT(*) 
							from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
							where elab in(4)  

							if @num_stato_report_1 <> @num_elab_4
								begin
									set @KO = 1
									set @err = 'Controllare gli stati: Controllo_Trimestrale ha ' + convert(varchar(100), @num_stato_report_1) + ' report con stato_report = 1, Cruscotto_ContrattiSEI ha ' + convert(varchar(100), @num_elab_4) + ' con elab = 4'
								end
						end
				end

				if @KO = 0
					begin

						print 'Controllo su tabella C6MartPeriodico.Gestione_Zip_FTP'
						declare @maxIdElaborazione int

						select @maxIdElaborazione = max(FkIdElaborazioneZip) from [C6MartPeriodico].[gestione_zip_ftp]

						if( select count(*)
							from (
									SELECT TOP (1) [id]
										,[nomefile]
										,[dataInvio]
										,[flagInvio]
										,[nomeCartella]
										,[ID_ELAB]
										,[DateCopyToSend]
										,[FKIDElaborazioneZIP]
									FROM [C6MartPeriodico].[gestione_zip_ftp]
									where
										FkIdElaborazioneZip = @maxIdElaborazione
										and
										DateCopyToSend is null
									order by 1 desc, 3 desc) a
									) > 0
						begin
							set @KO = 1
							set @err = 'Situazione incongruente sulla tabella ''[C6MartPeriodico].[gestione_zip_ftp]'''
						end
					end

				if @KO = 0
					begin
						print 'Controllo su tabella C6MartPeriodico.Elaborazioni_ZIP'

						--modifica del 17/10/2018 per gestire il caso in cui il file di approval è stato inviato ma l'intero lotto ancora no e quindi c'è
						--  una riga con datafine= null
						if not (@isLotto1 = 1 and  @isUltimoZip = 1)
							begin
								if( select count(*)
									from (
										SELECT TOP (1) [IDElaborazioneZIP]
										,[DataInizio]
										,[DataFine]
										FROM [C6MartPeriodico].[elaborazioni_zip]
										where DataFine is null
										order by 1 desc, 2 desc) a
									) > 0
									begin
										set @KO = 1
										set @err = 'Situazione incongruente sulla tabella ''[C6MartPeriodico].[elaborazioni_zip]'''
									end
							end
					end

				if @KO = 0
					begin
						print 'COPIA TABELLE'
				
						begin try
						
						set @ce=10

							declare @query nvarchar(max)
							declare @today datetime
							declare @sToday varchar(10)
							declare @nometabella nvarchar(max)
							declare @sql nvarchar(max)
							declare @res table (tablename varchar(100))
							--SET FMTONLY ON

							set @today = getdate()
							set @ce=20
							set @sToday = convert(varchar(4), datepart(yyyy, @today)) + right('0' + convert(varchar(2), datepart(mm, @today)), 2) + right('0' + convert(varchar(2), datepart(dd, @today)), 2)
							set @ce=30

							set @nometabella='C6MartPeriodico.controllo_trimestrale_' + @sToday + '_preZip';
							set @sql='DROP TABLE '+QUOTENAME(@nometabella)+'';
							--if EXISTS (select * from sys.objects where object_id= OBJECT_ID(@nometabella) and type in (N'U'))
							--	exec sp_executesql @sql;

							set @query = 'select * into C6MartPeriodico.controllo_trimestrale_' + @sToday + '_preZip from C6MartPeriodico.controllo_trimestrale'
							print @query
							insert @res
							exec sys.sp_executesql @query

							set @nometabella='C6MartPeriodico.cruscotto_contrattisei_' + @sToday + '_preZip';
							set @sql='DROP TABLE '+QUOTENAME(@nometabella)+'';
							--if EXISTS (select * from sys.objects where object_id= OBJECT_ID(@nometabella) and type in (N'U'))
							--	exec sp_executesql @sql;


							set @ce=40
							set @query = 'select * into C6MartPeriodico.cruscotto_contrattisei_' + @sToday + '_preZip from C6MartPeriodico.cruscotto_contrattisei'
							print @query
							insert @res
							EXEC sys.sp_executesql @query
				
							set @nometabella='C6MartPeriodico.elaborazioni_zip_' + @sToday + '_preZip';
							set @sql='DROP TABLE '+QUOTENAME(@nometabella)+'';
							--if EXISTS (select * from sys.objects where object_id= OBJECT_ID(@nometabella) and type in (N'U'))
							--	exec sp_executesql @sql;

							set @ce=50
							set @query = 'select * into C6MartPeriodico.elaborazioni_zip_' + @sToday + '_preZip from C6MartPeriodico.elaborazioni_zip'
							print @query
							insert @res
							EXEC sys.sp_executesql @query

							set @nometabella='C6MartPeriodico.gestione_zip_ftp_' + @sToday + '_preZip';
							set @sql='DROP TABLE '+QUOTENAME(@nometabella)+'';
							--if EXISTS (select * from sys.objects where object_id= OBJECT_ID(@nometabella) and type in (N'U'))
							--	exec sp_executesql @sql;

							set @ce=60
							set @query = 'select * into C6MartPeriodico.gestione_zip_ftp_' + @sToday + '_preZip from C6MartPeriodico.gestione_zip_ftp'
							print @query
							insert @res
							EXEC sys.sp_executesql @query

							set @nometabella='C6MartPeriodico.gestione_pdf_ftp_' + @sToday + '_preZip';
							set @sql='DROP TABLE '+QUOTENAME(@nometabella)+'';
							--if EXISTS (select * from sys.objects where object_id= OBJECT_ID(@nometabella) and type in (N'U'))
							--	exec sp_executesql @sql;

							set @ce=70
							set @query = 'select * into C6MartPeriodico.gestione_pdf_ftp_' + @sToday + '_preZip from C6MartPeriodico.gestione_pdf_ftp'
							print @query
							insert @res
							EXEC sys.sp_executesql @query
				
							--SET FMTONLY OFF

							--exec C6MartPeriodico.CreaTabelleCopia

						end try

						begin catch
							set @KO = 1
							set @err = ERROR_MESSAGE()

							select 0 as Esito, @err as Err, ERROR_LINE() as rigaerr,@ce as riga

							--SET FMTONLY OFF

							return
						end catch
					end

				select
					case
						when @KO = 0 then 1
						when @KO = 1 then 0
						else 0
					end as Esito,
					@err as Err

			drop table #result

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_PreTotaliReportGenerazioneZip_20181017]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--exec C6MartPeriodico.SP_PreTotaliReportGenerazioneZip 960, 1

CREATE procedure [C6MartPeriodico].[SP_PreTotaliReportGenerazioneZip_20181017]
	@reportPerZip int,
	@isLotto1 int = 0
AS

	set nocount on

			create table #result (
				totReportGenerati int,
				isUltimoZip int
			)

			declare @totReportGenerati int
			declare @isUltimoZip int

			declare @KO int
			set @KO = 0
			declare @err varchar(500)
			set @err = ''

			--exec [C6MartPeriodico].[SP_TotaliReportGenerazioneZip] 960, 1

			insert into #result exec [C6MartPeriodico].[SP_TotaliReportGenerazioneZip]  @reportPerZip, @isLotto1

			select @totReportGenerati = totReportGenerati, @isUltimoZip = isUltimoZip from #result

			if @isLotto1 = 1
				begin
					if @isUltimoZip = 2
						begin
							if (select count(*) from  [C6MartPeriodico].WHITELIST_ZIP WHERE Pacchetto_Zip is null) = 0
							begin
								set @KO = 1
								set @err = 'Nel primo lotto non c''è da fare il file Approval, ma la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato 2'
							end
						end
					if @isUltimoZip = 1
						begin
							if (select count(*) from  [C6MartPeriodico].WHITELIST_ZIP WHERE Pacchetto_Zip is null) > 0
							begin
								set @KO = 1
								set @err = 'Nel primo lotto c''è da fare il file Approval, ma la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato 1'
							end
						end
					if @isUltimoZip not in (1, 2)
						begin
							set @KO = 1
							set @err = 'Nel primo lotto, la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato inconsistente ' + convert(varchar(10), @isUltimoZip)
						end
				end
			else
				begin
					if @isUltimoZip <> 1
						begin
							set @KO = 1
							set @err = 'Per il lotto successivo, la procedura ''SP_TotaliReportGenerazioneZip'' ha restituito lo stato inconsistente ' + convert(varchar(10), @isUltimoZip)
						end
				end

			print '@isLotto1 = ' + convert(varchar(10), @isLotto1)
			print '@isUltimoZip = ' + convert(varchar(10), @isUltimoZip)
			print '@KO = ' + convert(varchar(10), @KO)
			print '@err = ''' +  @err + ''''

			if @KO = 0
				begin

					if @isUltimoZip in (1, 2)
						begin
							declare @num_stato_report_1 int
							declare @num_elab_4 int

							select @num_stato_report_1 = COUNT(*) 
							from C6MartPeriodico.controllo_trimestrale
							where stato_report in (1)  --1 

							select @num_elab_4 = COUNT(*) 
							from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
							where elab in(4)  

							if @num_stato_report_1 <> @num_elab_4
								begin
									set @KO = 1
									set @err = 'Controllare gli stati: Controllo_Trimestrale ha ' + convert(varchar(100), @num_stato_report_1) + ' report con stato_report = 1, Cruscotto_ContrattiSEI ha ' + convert(varchar(100), @num_elab_4) + ' con elab = 4'
								end
						end
				end

				if @KO = 0
					begin

						print 'Controllo su tabella C6MartPeriodico.Gestione_Zip_FTP'
						declare @maxIdElaborazione int

						select @maxIdElaborazione = max(FkIdElaborazioneZip) from [C6MartPeriodico].[gestione_zip_ftp]

						if( select count(*)
							from (
									SELECT TOP (1) [id]
										,[nomefile]
										,[dataInvio]
										,[flagInvio]
										,[nomeCartella]
										,[ID_ELAB]
										,[DateCopyToSend]
										,[FKIDElaborazioneZIP]
									FROM [C6MartPeriodico].[gestione_zip_ftp]
									where
										FkIdElaborazioneZip = @maxIdElaborazione
										and
										DateCopyToSend is null
									order by 1 desc, 3 desc) a
									) > 0
						begin
							set @KO = 1
							set @err = 'Situazione incongruente sulla tabella ''[C6MartPeriodico].[gestione_zip_ftp]'''
						end
					end

				if @KO = 0
					begin
						print 'Controllo su tabella C6MartPeriodico.Elaborazioni_ZIP'

						if( select count(*)
							from (
								SELECT TOP (1) [IDElaborazioneZIP]
								,[DataInizio]
								,[DataFine]
								FROM [C6MartPeriodico].[elaborazioni_zip]
								where DataFine is null
								order by 1 desc, 2 desc) a
							) > 0
							begin
								set @KO = 1
								set @err = 'Situazione incongruente sulla tabella ''[C6MartPeriodico].[elaborazioni_zip]'''
							end
					end

				if @KO = 0
					begin
						print 'COPIA TABELLE'
				
						begin try
							declare @query nvarchar(max)
							declare @today datetime
							declare @sToday varchar(10)

							declare @res table (tablename varchar(100))
							--SET FMTONLY ON

							set @today = getdate()

							set @sToday = convert(varchar(4), datepart(yyyy, @today)) + right('0' + convert(varchar(2), datepart(mm, @today)), 2) + right('0' + convert(varchar(2), datepart(dd, @today)), 2)

							set @query = 'select * into C6MartPeriodico.controllo_trimestrale_' + @sToday + '_preZip from C6MartPeriodico.controllo_trimestrale'
							print @query
							insert @res
							exec sys.sp_executesql @query

							set @query = 'select * into C6MartPeriodico.cruscotto_contrattisei_' + @sToday + '_preZip from C6MartPeriodico.cruscotto_contrattisei'
							print @query
							insert @res
							EXEC sys.sp_executesql @query
				
							set @query = 'select * into C6MartPeriodico.elaborazioni_zip_' + @sToday + '_preZip from C6MartPeriodico.elaborazioni_zip'
							print @query
							insert @res
							EXEC sys.sp_executesql @query

							set @query = 'select * into C6MartPeriodico.gestione_zip_ftp_' + @sToday + '_preZip from C6MartPeriodico.gestione_zip_ftp'
							print @query
							insert @res
							EXEC sys.sp_executesql @query

							set @query = 'select * into C6MartPeriodico.gestione_pdf_ftp_' + @sToday + '_preZip from C6MartPeriodico.gestione_pdf_ftp'
							print @query
							insert @res
							EXEC sys.sp_executesql @query
				
							--SET FMTONLY OFF

							--exec C6MartPeriodico.CreaTabelleCopia

						end try

						begin catch
							set @KO = 1
							set @err = ERROR_MESSAGE()

							select 0 as Esito, @err as Err

							--SET FMTONLY OFF

							return
						end catch
					end

				select
					case
						when @KO = 0 then 1
						when @KO = 1 then 0
						else 0
					end as Esito,
					@err as Err

			drop table #result

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_statistiche_app_rendicontazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










--select * from dbo.w6trcli where [Freq_ Diagnosi]='S'


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SP_statistiche_app_rendicontazione]
as
begin
declare 

--NUMERI
@nr_clientiinperimetro int,
@nr_clientiRFA0 int,
@nr_clientiRFAMinus int,
@nr_clientiProfiloScaduto int,
@nr_clientiBlacklist int,
@nr_clientiinviati int,
@nr_clientidainviare int,
@nr_letteraSostitutiva int,
@nr_clientiImmobiliari int,
@nr_clientiInPerimentroSenzaImmobiliare int,
@nr_Blacklistdiversi int,
@nr_soloClientiImmobiliari int,
@nr_diagnosi int,
@nr_clientirendicontati int,
@nr_lotto1 int,
@nr_lotto2 int,
@nr_lotto3 int,
@nr_lotto4 int,
@nr_lotto5 int,
@nr_lotto6 int,
@nr_lotto7 int,
@nr_lotto8 int,
@nr_lotto9 int,
@nr_lotto10 int,
@nr_clientiinviati_IMM int,
@nr_clientidainviare_IMM int,
@nr_clientiBlacklist_IMM int,
@nr_clientirendicontati_IMM int,
@nr_lotto1_IMM int,
@nr_clientiDiagnosiInviati int,
@nr_clientiDiagnosidaInviare int,
@nr_clienticonMonitoraggio int,
@nr_clientiConImmESei int,
@nr_clientiConSoloImm int,
@nr_letteraSostitutivaImm int,
@nr_clientiRFAMinusImm int,
@nr_clientiProfiloEC int




select @nr_clientiInPerimetro=  COUNT(*) from C6MartPeriodico.tabellone where solo_rend_imm='N' or solo_rend_imm is NULL--clienti in perimetro
select @nr_clientiRFA0 =  COUNT(*) from C6MartPeriodico.tabellone where blacklist like '%RFA=0%' --clienti con RFA0
select @nr_clientiRFAMinus =  COUNT(*) from C6MartPeriodico.tabellone where blacklist like '%RFA Minus%' --clienti con RFA0
select @nr_clientiProfiloScaduto=  COUNT(*) from C6MartPeriodico.tabellone where blacklist like '%Profilo Scaduto%' and (blacklist not like '%RFA=0%' and blacklist not like '%RFA Minus%') --clienti con il profilo scaduto
select @nr_clientiBlacklist=  COUNT(*) from C6MartPeriodico.tabellone where blacklist is not null
select @nr_letteraSostitutiva= COUNT(*) from C6MartPeriodico.tabellone where blacklist like '%RFA=0%' or blacklist like '%profilo%' or blacklist like '%RFA Minus%'
--select @nr_clientiBlacklist=  COUNT(*) from C6MartPeriodico.tabellone where blacklist is not null --clienti in blacklist
select @nr_clientiinviati=  COUNT(*) from C6MartPeriodico.tabellone where lotto is not null  --clienti con report gia inviato
set @NR_clientidainviare= @nr_clientiinperimetro-@nr_clientiinviati-@nr_letteraSostitutiva--@nr_clientiBlacklist --clienti con report da inviare
--select @nr_letteraSostitutiva= COUNT(*) from C6MartPeriodico.tabellone where blacklist like '%sostitutiva%'--like '%RFA%' or blacklist like '%profilo%'
select @nr_clientiImmobiliari = COUNT(*) from C6MartPeriodico.tabellone where flgpe_perimetro_semestr='S'
set @nr_clientiInPerimentroSenzaImmobiliare=@nr_clientiinperimetro-@nr_clientiImmobiliari
select @nr_Blacklistdiversi=@nr_clientiBlacklist-@nr_letteraSostitutiva
select @nr_soloClientiImmobiliari= COUNT(*) from C6MartPeriodico.tabellone where solo_rend_imm='S'
select @nr_diagnosi= COUNT(*) from C6MartPeriodico.tabellone where freq_diagnosi <> ''
set @nr_clientirendicontati=@nr_clientiinperimetro-@nr_letteraSostitutiva--@nr_clientiBlacklist
select @nr_lotto1= count(*) from c6martperiodico.tabellone where lotto=1
select @nr_lotto2= count(*) from c6martperiodico.tabellone where lotto=2 
select @nr_lotto3= count(*) from c6martperiodico.tabellone where lotto=3
select @nr_lotto4= count(*) from c6martperiodico.tabellone where lotto=4
select @nr_lotto5= count(*) from c6martperiodico.tabellone where lotto=5
select @nr_lotto6= count(*) from c6martperiodico.tabellone where lotto=6
select @nr_lotto7= count(*) from c6martperiodico.tabellone where lotto=7
select @nr_lotto8= count(*) from c6martperiodico.tabellone where lotto=8
select @nr_lotto9= count(*) from c6martperiodico.tabellone where lotto=9
select @nr_lotto10= count(*) from c6martperiodico.tabellone where lotto=10
select @nr_clientiinviati_IMM=COUNT(*) from C6MartPeriodico.tabellone where lotto_imm is not null and blacklist is null
select @nr_clientiBlacklist_IMM=COUNT(*) from C6MartPeriodico.tabellone where lettera_sost_imm='S'
--select @nr_clientiBlacklist_IMM=COUNT(*) from C6MartPeriodico.tabellone where blacklist is not null --clienti in blacklist imm cambia in blacklist_imm quando aggiungi il campo nel tabellone decommenta quando aggiungi il campo
set @nr_clientirendicontati_IMM=@nr_clientiImmobiliari--@nr_clientiBlacklist_IMM -- da rivedere per nr_clientiBlacklist si ipotizza un altro campo in blacklist decommenta quando aggiungi il campo
--set @nr_lotto1_IMM=@nr_clientiinviati_IMM decommenta quando dino ha finito
set @nr_lotto1_IMM=0
select @nr_clientiDiagnosiInviati=COUNT(*) from C6MartPeriodico.tabellone where freq_diagnosi <> '' and lotto is not null and blacklist is null
select @nr_clientiDiagnosidaInviare=COUNT(*) from C6MartPeriodico.tabellone where freq_diagnosi <> '' and lotto is null and blacklist is null
select @nr_clienticonMonitoraggio=count(*) from C6MartPeriodico.tabellone where freq_monitoraggio<>'' and (solo_rend_imm='N' or solo_rend_imm is NULL)--freq_diagnosi='' and freq_monitoraggio<>'' and (solo_rend_imm='N' or solo_rend_imm is NULL)
select @nr_clientiConImmESei=count(*) from C6MartPeriodico.tabellone where anche_rend_sei='S'
select @nr_clientiConSoloImm=count(*) from C6MartPeriodico.tabellone where solo_rend_imm='S'
select @nr_letteraSostitutivaImm= COUNT(*) from C6MartPeriodico.tabellone where lettera_sost_imm='S'
set @nr_clientirendicontati_IMM=@nr_clientiImmobiliari-@nr_letteraSostitutivaImm--@nr_clientiBlacklist_IMM -- da rivedere per nr_clientiBlacklist si ipotizza un altro campo in blacklist decommenta quando aggiungi il campo
set @NR_clientidainviare_IMM= @nr_clientiImmobiliari-@nr_clientiinviati_IMM-@nr_letteraSostitutivaImm -- da rivedere per nr_clientiBlacklist si ipotizza un altro campo in blacklist decommenta quando aggiungi il campo
select @nr_clientiRFAMinusImm =  COUNT(*) from C6MartPeriodico.tabellone where blacklist_imm='BLACKLIST RFA MINUS CLIENTE SEI E IMMOBILIARE'--COUNT(*) from C6MartPeriodico.tabellone where blacklist_imm like '%RFA Minus%' --clienti con RFA0
select @nr_clientiProfiloEC=  COUNT(*) from C6MartPeriodico.tabellone where blacklist like '%Profilo EC%' and (blacklist not like '%RFA=0%' and blacklist not like '%RFA Minus%') 
--DESCRIZIONE
declare
@desc_clientiinperimetro varchar(64),
@desc_clientiRFA0 varchar(64),
@desc_clientiRFAMinus varchar(64),
@desc_clientiProfiloScaduto varchar(64),
@desc_clientiBlacklist varchar(64),
@desc_clientiInviati varchar(64),
@desc_clientiDaInviare varchar(64),
@desc_letteraSostitutiva varchar(64),
@desc_clientiImmobiliari varchar(64),
@desc_clientiInPerimentroSenzaImmobiliare  varchar(64),
@desc_Blacklistdiversi varchar(64),
@desc_soloClientiImmobiliari varchar(64),
@desc_Diagnosi varchar(64),
@desc_clientirendicontati varchar(64),
@desc_lotto1 varchar(64),
@desc_lotto2 varchar(64),
@desc_lotto3 varchar(64),
@desc_lotto4 varchar(64),
@desc_lotto5 varchar(64),
@desc_lotto6 varchar(64),
@desc_lotto7 varchar(64),
@desc_lotto8 varchar(64),
@desc_lotto9 varchar(64),
@desc_lotto10 varchar(64),
@desc_clientiInviati_IMM varchar(64),
@desc_clientiDaInviare_IMM varchar(64),
@desc_clientiBlacklist_IMM varchar(64),
@desc_clientirendicontati_IMM varchar(64),
@desc_lotto1_IMM varchar(64),
@desc_clientiDiagnosiInviati varchar(64),
@desc_clientiDiagnosiDaInviare varchar(64),
@desc_clienticonMonitoraggio varchar(64),
@desc_clientiConImmESei varchar(64),
@desc_clientiConSoloImm varchar(64),
@desc_letteraSostitutivaImm varchar(64),
@desc_clientiRFAMinusImm varchar(64),
@desc_clientiProfiloEC varchar(64)

set @desc_clientiinperimetro='Clienti in Perimetro SEI'
set @desc_clientiRFA0='Clienti RFA 0'
set @desc_clientiRFAMinus='Clienti RFA Minus SEI'
set @desc_clientiProfiloScaduto='Clienti Profilo Scaduto'
set @desc_ClientiBlacklist='Clienti in Blacklist SEI'
set @desc_ClientiInviati='Clienti con Report già inviati SEI'
set @desc_clientidaInviare='Clienti con Report da inviare SEI'
set @desc_letteraSostitutiva='Clienti Lettera Sostitutiva'
set @desc_clientiImmobiliari='Clienti in Perimetro IMM'
set @desc_clientiInPerimentroSenzaImmobiliare='Clienti in perimetro senza Immobiliare'
set @desc_Blacklistdiversi='Clienti Blacklist con Motivazione diversa'
set @desc_soloClientiImmobiliari='Clienti Solo Immobiliari senza report Sei'
set @desc_Diagnosi='Clienti con Diagnosi'
set @desc_clientirendicontati='Clienti da Rendicontare SEI'
set @desc_lotto1='Clienti Lotto 1'
set @desc_lotto2='Clienti Lotto 2'
set @desc_lotto3='Clienti Lotto 3'
set @desc_lotto4='Clienti Lotto 4'
set @desc_lotto5='Clienti Lotto 5'
set @desc_lotto6='Clienti Lotto 6'
set @desc_lotto7='Clienti Lotto 7'
set @desc_lotto8='Clienti Lotto 8'
set @desc_lotto9='Clienti Lotto 9'
set @desc_lotto10='Clienti Lotto 10'
set @desc_ClientiInviati_IMM='Clienti con Report già inviati IMM'
set @desc_clientidaInviare_IMM='Clienti con Report da inviare IMM'
set @desc_ClientiBlacklist_IMM='Clienti in Blacklist IMM'
set @desc_clientirendicontati_IMM='Clienti da Rendicontare IMM'
set @desc_lotto1_IMM='Clienti Lotto 1 IMM'
set @desc_clientiDiagnosiInviati='Clienti Diagnosi con report già inviati SEI'
set @desc_clientiDiagnosiDaInviare='Clienti Diagnosi con Report da inviare SEI'
set @desc_clienticonMonitoraggio='Clienti con Monitoraggio'
set @desc_clientiConImmESei='Clienti con Immobiliare e SEI'
set @desc_clientiConSoloImm='Clienti con Solo Immobiliare'
set @desc_letteraSostitutivaImm='Clienti Lettera Sostitutiva'
set @desc_clientiRFAMinusImm='Clienti RFA Minus IMM'
set @desc_clientiProfiloEC='Clienti Profilo EC Minimo'
--select * from C6MartPeriodico.ExcludedList
--select * from C6MartPeriodico.tabellone
--select * from C6MartPeriodico.statistiche_app_rendicontazione
--select * from C6Martperiodico.motivazioni_blacklist

--update C6MartPeriodico.tabellone
--set lotto=NULL
--from C6MartPeriodico.tabellone 
--where codconf='071130CO802'

--update C6MartPeriodico.tabellone
--set blacklist=NULL
--from C6MartPeriodico.tabellone 
--where codconf='025680CO800'

--update C6MartPeriodico.tabellone
--set blacklist=NULL
--from C6MartPeriodico.tabellone 
--where codconf='029507CO212'
--ID
declare 
@id_clientiInPerimetro int,
@id_clientiRFA0 int,
@id_clientiRFAMinus int,
@id_clientiProfiloScaduto int,
@id_ClientiBlacklist int,
@id_ClientiInviati int ,
@id_ClientidaInviare int,
@id_LetteraSostitutiva int,
@id_ClientiImmobiliari int,
@id_clientiInPerimentroSenzaImmobiliare int,
@id_Blacklistdiversi int,
@id_soloClientiImmobiliari int,
@id_Diagnosi int,
@id_ClientiRendicontati int,
@id_lotto1 int,
@id_lotto2 int,
@id_lotto3 int,
@id_lotto4 int,
@id_lotto5 int,
@id_lotto6 int,
@id_lotto7 int,
@id_lotto8 int,
@id_lotto9 int,
@id_lotto10 int,
@id_ClientiInviati_IMM int ,
@id_ClientidaInviare_IMM int,
@id_clientiBlacklist_IMM int,
@id_clientirendicontati_IMM int,
@id_lotto1_IMM int,
@id_ClientiDiagnosiInviati int ,
@id_ClientiDiagnosidaInviare int,
@id_clienticonMonitoraggio int,
@id_clientiConImmESei int,
@id_clientiConSoloImm int,
@id_LetteraSostitutivaImm int,
@id_clientiRFAMinusImm int,
@id_clientiProfiloEC int

set @id_clientiInPerimetro=1
set @id_clientiRFA0=2
set @id_clientiProfiloScaduto=3
set @id_ClientiBlacklist=4
set @id_ClientiInviati=5
set @id_ClientidaInviare=6
set @id_LetteraSostitutiva=7
set @id_ClientiImmobiliari=8
set @id_clientiInPerimentroSenzaImmobiliare=9
set @id_Blacklistdiversi=10
set @id_soloClientiImmobiliari=11
set @id_Diagnosi=12
set @id_ClientiRendicontati=13
set @id_lotto1 =14
set @id_lotto2 =15
set @id_lotto3 =16
set @id_lotto4 =17
set @id_lotto5 =18
set @id_lotto6 =19
set @id_lotto7 =20
set @id_lotto8 =21
set @id_lotto9 =22
set @id_lotto10 =23
set @id_ClientiInviati_IMM=24
set @id_ClientidaInviare_IMM=25
set @id_ClientiRFAMinus=26
set @id_clientiBlacklist_IMM=27
set @id_clientirendicontati_IMM=28
set @id_lotto1_IMM=29
set @id_ClientiDiagnosiInviati=30
set @id_ClientiDiagnosidaInviare=31
set @id_clienticonMonitoraggio=32
set @id_clientiConImmESei=33
set @id_clientiConSoloImm=34
set @id_LetteraSostitutivaImm=35
set @id_clientiRFAMinusImm=36
set @id_clientiProfiloEC=37

--if((select COUNT(*) from [C6MartPeriodico].[statistiche_app_rendicontazione])=0)
--begin

truncate table [C6MartPeriodico].[statistiche_app_rendicontazione] 
insert into [C6MartPeriodico].[statistiche_app_rendicontazione] values
(@id_clientiInPerimetro,@desc_clientiinperimetro,@nr_clientiinperimetro,'SEI'),
(@id_clientiRFA0,@desc_clientiRFA0,@nr_clientiRFA0,'SEI'),
(@id_clientiProfiloScaduto,@desc_clientiProfiloScaduto,@nr_clientiProfiloScaduto,'SEI'),
(@id_ClientiBlacklist,@desc_clientiBlacklist,@nr_clientiBlacklist,'SEI'),
(@id_ClientiInviati,@desc_clientiInviati,@nr_clientiinviati,'SEI'),
(@id_ClientidaInviare,@desc_clientiDaInviare,@nr_clientidainviare,'SEI'),
(@id_LetteraSostitutiva,@desc_letteraSostitutiva,@nr_letteraSostitutiva,'SEI'),
(@id_ClientiImmobiliari,@desc_clientiImmobiliari,@nr_clientiImmobiliari,'IMM'),
(@id_clientiInPerimentroSenzaImmobiliare,@desc_clientiInPerimentroSenzaImmobiliare,@nr_clientiInPerimentroSenzaImmobiliare,'SEI'),
(@id_Blacklistdiversi,@desc_Blacklistdiversi,@nr_Blacklistdiversi,'SEI'),
(@id_soloClientiImmobiliari,@desc_soloClientiImmobiliari,@nr_soloClientiImmobiliari,'IMM'),
(@id_Diagnosi,@desc_diagnosi,@nr_diagnosi,'SEI'),
(@id_ClientiRendicontati,@desc_clientirendicontati,@nr_clientirendicontati,'SEI'),
(@id_lotto1,@desc_lotto1,@nr_lotto1,'SEI'),
(@id_lotto2,@desc_lotto2,@nr_lotto2,'SEI'),
(@id_lotto3,@desc_lotto3,@nr_lotto3,'SEI'),
(@id_lotto4,@desc_lotto4,@nr_lotto4,'SEI'),
(@id_lotto5,@desc_lotto5,@nr_lotto5,'SEI'),
(@id_lotto6,@desc_lotto6,@nr_lotto6,'SEI'),
(@id_lotto7,@desc_lotto7,@nr_lotto7,'SEI'),
(@id_lotto8,@desc_lotto8,@nr_lotto8,'SEI'),
(@id_lotto9,@desc_lotto9,@nr_lotto9,'SEI'),
(@id_lotto10,@desc_lotto10,@nr_lotto10,'SEI'),
(@id_ClientiInviati_IMM,@desc_clientiInviati_IMM,@nr_clientiinviati_IMM,'IMM'),
(@id_ClientidaInviare_IMM,@desc_clientiDaInviare_IMM,@nr_clientidainviare_IMM,'IMM'),
(@id_ClientiRFAMinus,@desc_ClientiRFAMinus,@nr_ClientiRFAMinus,'SEI'),
(@id_ClientiBlacklist_IMM,@desc_clientiBlacklist_IMM,@nr_clientiBlacklist_IMM,'IMM'),
(@id_ClientiRendicontati_IMM,@desc_clientirendicontati_IMM,@nr_clientirendicontati_IMM,'IMM'),
(@id_lotto1_IMM,@desc_lotto1_IMM,@nr_lotto1_IMM,'IMM'),
(@id_ClientiDiagnosiInviati,@desc_clientiDiagnosiInviati,@nr_clientiDiagnosiinviati,'SEI'),
(@id_ClientiDiagnosidaInviare,@desc_clientiDiagnosiDaInviare,@nr_clientiDiagnosidainviare,'SEI'),
(@id_clienticonMonitoraggio,@desc_clienticonMonitoraggio,@nr_clienticonMonitoraggio,'SEI'),
(@id_clientiConImmESei,@desc_clientiConImmESei,@nr_clientiConImmESei,'IMM'),
(@id_clientiConSoloImm,@desc_clientiConSoloImm,@nr_clientiConSoloImm,'IMM'),
(@id_LetteraSostitutivaImm,@desc_letteraSostitutivaImm,@nr_letteraSostitutivaImm,'IMM'),
(@id_ClientiRFAMinusImm,@desc_ClientiRFAMinusImm,@nr_ClientiRFAMinusImm,'IMM'),
(@id_clientiProfiloEC,@desc_clientiProfiloEC,@nr_clientiProfiloEC,'SEI')

--end

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_clientiinperimetro
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_clientiInPerimetro

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_clientiRFA0
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_clientiRFA0

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_clientiProfiloScaduto
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_clientiProfiloScaduto

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_clientiBlacklist
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_ClientiBlacklist

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_clientiinviati
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_ClientiInviati

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_clientidainviare
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_ClientidaInviare

--update [C6MartPeriodico].[statistiche_app_rendicontazione]
--set numero=@nr_letteraSostitutiva
--from [C6MartPeriodico].[statistiche_app_rendicontazione]
--where id=@id_LetteraSostitutiva
select * from C6MartPeriodico.statistiche_app_rendicontazione
	end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_TotaliReportGenerazioneZip]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
      
--[C6MartPeriodico].[SP_TotaliReportGenerazioneZip]  960,1    
CREATE PROCEDURE [C6MartPeriodico].[SP_TotaliReportGenerazioneZip]     
@reportPerZip int, @isLotto1 int = 0    
AS    
BEGIN    
    
IF @isLotto1 = 1 and 0 < (select count(*) from  [C6MartPeriodico].WHITELIST_ZIP WHERE Pacchetto_Zip is null)    
    
  BEGIN    
    
  select  count(*) totReportGenerati,    
    2 as   isUltimoZip     
  from  [C6MartPeriodico].WHITELIST_ZIP WHERE Pacchetto_Zip is null    
    
  END    
    
ELSE    
    
  BEGIN    
    
  Declare @totReportDaGenerareCT int    
  Declare @totReportGenerati int     
  declare @totReportDaNonGenerareCCS int    
    
     
   if @reportPerZip = 0     
   set @reportPerZip = 960    
    
  select @totReportGenerati =COUNT(*)     
  from C6MartPeriodico.controllo_trimestrale    
  where stato_report in (4)  --1     
    
  select @totReportDaGenerareCT =COUNT(*)     
  from C6MartPeriodico.controllo_trimestrale    
  where stato_report in (1)  --1     
    
  select  @totReportDaNonGenerareCCS=COUNT(*)     
  from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI     
  where elab in(4)      
    
  --select @totReportGenerati totReportGenerati  
  --     , @totReportDaGenerareCT totReportDaGenerareCT  
  --  , @totReportDaNonGenerareCCS  totReportDaNonGenerareCCS   
    
  select  @totReportGenerati totReportGenerati,    
    case when(@totReportDaGenerareCT - @totReportDaNonGenerareCCS) = 0 then     
         1     
       else    
         0    
    End    as   isUltimoZip     
      
    END    
End    
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_TROVA_REPORT_DA_RIGENERARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE procedure [C6MartPeriodico].[SP_TROVA_REPORT_DA_RIGENERARE]
	@Rete char(1), 
	@CodiceFiscale varchar(16),
	@TipoReport varchar(1)
AS  
BEGIN
     
        SELECT IDReport from C6MartPeriodico.GESTIONE_PDF_FTP
        WHERE rete=@Rete 
          and codicefiscale=@CodiceFiscale
          and TipoReport=@TipoReport
        
END








GO
/****** Object:  StoredProcedure [C6MartPeriodico].[sp_UpdateIdReportPDF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<HP. Caruso>
-- Description: Parallelizzazione PRocessi Trimestrale
-- 23/02/2014 Gestione Allineamento IdReport 
-- con IdInRepository(ReportManager) di SeiReport.C6reportFisisco
-- =============================================
CREATE procedure [C6MartPeriodico].[sp_UpdateIdReportPDF]
	@IdReportC6 INT,
	@IdReportManager int 
AS
BEGIN


Update C6martperiodico.Gestione_PDF_FTP
Set idReport=@IdReportManager
where idReport=@IdReportC6;

	

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SP_Valorizza_Stati_semaforo_TRIM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- flag_stato=1 completato (verde)
-- flag_stato=2 in esecuzione (giallo)
-- flag_stato=3 non lavorato (rosso)

--truncate table C6MartPeriodico.tab_semaforo

--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI

  --select * from C6MartPeriodico.tab_semaforo
-- Stored procedure  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE   procedure [C6MartPeriodico].[SP_Valorizza_Stati_semaforo_TRIM] @param1 varchar(20),@tipo varchar(20)
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 declare 
 @intero  int,
 @trimestrale varchar(3),
 @lotto_zero varchar(3),
 @quadratura varchar(3),
 @lotto varchar(3),
 @congelamento varchar(3),
 @sm1 varchar(3),
 @position varchar(3),
 @adeguatezza varchar(3),
 @post_ade varchar(3),
 @sm2 varchar(3),
 @certificazione varchar(3),
 @zipping varchar(3),
 @approval varchar(3),
 @invio varchar(3),
 @postalizzazione varchar(3),

 --descrizioni
 @desc_trimestrale varchar(256),
 @desc_lotto_zero varchar(256),
 @desc_quadratura varchar(256),
 @desc_lotto varchar(256),
 @desc_congelamento varchar(256),
 @desc_sm1 varchar(256),
 @desc_position varchar(256),
 @desc_adeguatezza varchar(256),
 @desc_post_ade varchar(256),
 @desc_sm2 varchar(256),
 @desc_certificazione varchar(256),
 @desc_zipping varchar(256),
 @desc_approval varchar(256),
 @desc_invio varchar(256),
 @desc_postalizzazione varchar(256)

 set @intero='0'
 set @trimestrale='1'
 set @lotto_zero='2'
 set @quadratura='3'
 set @lotto='2'
 set @congelamento='4'
 set @sm1='5'
 set @position='6'
 --set @adeguatezza='7'
 --set @post_ade='8'
 set @sm2='7'
 set @certificazione='8'
 set @zipping='9'
 set @approval='10'
 set @invio='11'
 set @postalizzazione='12'

  set @desc_trimestrale='Rendicontazioni sugli investimenti per i clienti con contratto di consulenza "SEI". '
 set @lotto_zero=''
 set @desc_quadratura='Fase di Quadratura per i clienti tra le varie fonti db.'
 set @desc_lotto='Preparazione delle rendicontazioni in corso.'
 set @desc_congelamento='Fase di congelamento per il database di marketing.'
 set @desc_sm1='Preparazione ed elaborazione dati da Staging & Mart Fase 1.'
 set @desc_position='Elaborazione Position Data ed Adeguatezza.'
 --set @adeguatezza='7'
 --set @post_ade='8'
 set @desc_sm2='Preparazione ed elaborazione dati da Staging & Mart Fase 2.'
 set @desc_certificazione='Certificazione sul campione dei PDF dei Clienti.'
 set @desc_zipping='Fase di zip per l''invio dei report.'
 set @desc_approval='Approvazione del lotto corrente.'
 set @desc_invio='Invio dei file generati.'
 set @desc_postalizzazione='Conferma di avvenuta postalizzazione dei PDF dei clienti.'
 


 --select * from C6MartPeriodico.tab_semaforo

 --inserimento
 --select * from C6MartPeriodico.tab_semaforo
 --insert into C6MartPeriodico.tab_semaforo values
 --avvio_trimestre

 --update C6MartPeriodico.tab_semaforo
 --set descrizione='Fase di congelamento per il database di marketing'
 --from C6MartPeriodico.tab_semaforo
 --where id_milestone=4
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo)=0)
begin
insert into C6MartPeriodico.tab_semaforo values 
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@trimestrale,'TRIMESTRALE',@desc_trimestrale,'','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto_zero,'LOTTO 0','','','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@quadratura,'QUADRATURA',@desc_quadratura,'','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@congelamento,'CONGELAMENTO DB MK',@desc_congelamento,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm1,'STAGING & MART (FASE 1)'+' '+ cast(@intero+1 as varchar),@desc_sm1,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@position,'CHIAMATA ALADDIN'+' '+ cast(@intero+1 as varchar),@desc_position,'','',3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm2,'STAGING & MART (FASE 2)'+' '+ cast(@intero+1 as varchar),@desc_sm2,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@certificazione,'CERTIFICAZIONE',@desc_certificazione,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,'','',3,@intero+1,'','',0)
end

--insert into C6MartPeriodico.tab_semaforo values 
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@trimestrale,'TRIMESTRALE',@desc_trimestrale,'','',3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto_zero,'LOTTO 0','','','',3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@quadratura,'QUADRATURA',@desc_quadratura,getdate()+1,getdate()+4,3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,getdate()+5,getdate()+30,3,@intero+1,getdate()+5,getdate()+30,0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@congelamento,'CONGELAMENTO DB MK',@desc_congelamento,getdate()+6,getdate()+8,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm1,'STAGING & MART (FASE 1)'+' '+ cast(@intero+1 as varchar),@desc_sm1,getdate()+6,getdate()+8,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@position,'CHIAMATA ALADDIN'+' '+ cast(@intero+1 as varchar),@desc_position,getdate()+9,getdate()+11,3,@intero+1,'','',0),
----([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
----([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm2,'STAGING & MART (FASE 2)'+' '+ cast(@intero+1 as varchar),@desc_sm2,getdate()+12,getdate()+14,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@certificazione,'CERTIFICAZIONE',@desc_certificazione,getdate()+13,getdate()+17,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,getdate()+18,getdate()+21,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,getdate()+23,getdate()+25,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,getdate()+25,getdate()+27,3,@intero+1,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,getdate()+27,getdate()+30,3,@intero+1,'','',0)

if (@param1='TRIM_START')
begin
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo and flg_stato=1)>0)
begin
truncate table C6MartPeriodico.tab_semaforo 
--;throw 51014,'Presente una trimestrale conclusa, per continuare fai una truncate su questa tabella',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo
if(@intero>0)
begin
update C6MartPeriodico.tab_semaforo
set inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
--fine_milestone=GETDATE()+50,
--fine_lotto=GETDATE()+50,
flg_stato=2
where milestone='TRIMESTRALE' and tipo_reportistica=@tipo;
exec C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM LOTTO0_START,@tipo
end
--else
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,'TRIMESTRALE','',GETDATE(),GETDATE()+50,2,@intero)
--end
end

if(@param1='LOTTO0_START')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodico.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodico.tab_semaforo
where milestone='lotto 0' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Nessuna fase di Trimestrale in corso',0
end
end


if(@param1='LOTTO0_END')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO 0%' and flg_stato=2 and tipo_reportistica=@tipo)<>0) 
begin
update C6MartPeriodico.tab_semaforo 
set fine_lotto=GETDATE(),flg_stato=1,
fine_milestone=GETDATE()
from C6MartPeriodico.tab_semaforo
where milestone = 'LOTTO 0' and tipo_reportistica=@tipo
end
else 
begin
;throw 50003,'Nessuna fase di Lotto avviata',0
end
end

  

--if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Trimestrale' and tipo_reportistica=@tipo and flg_stato=2)=1)
--begin
--inizio quadratura
if(@param1='QUAD_START')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%Certificazione%' and flg_stato=1 and tipo_reportistica=@tipo)<>0)
begin
;throw 51012,'Fase di Certificazione già avviata non puoi avviare un altra quadratura',0
end
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='trimestrale' and tipo_reportistica=@tipo)=0)
begin
;throw 51000,'NESSUNA FASE DI TRIMESTRALE PRECEDENTE',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='QUADRATURA' and flg_stato<>1 and  tipo_reportistica=@tipo
if(@intero>0)
begin
update C6MartPeriodico.tab_semaforo
set trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
--fine_milestone=GETDATE()+2 ,
flg_stato=2
where milestone='QUADRATURA'
end
--else
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@quadratura,'QUADRATURA',@desc_quadratura,GETDATE(),GETDATE()+2,2,@intero,'','',0)
--end
end



-- certificazione start
--if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Trimestrale' and tipo_reportistica=@tipo and flg_stato=2)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and tipo_reportistica=@tipo and flg_stato=2)=1)
--begin
-- certificazione start
if(@param1='CERTIFICAZIONE_START')
begin
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='trimestrale' and tipo_reportistica=@tipo)=0)
begin
;throw 51000,'NESSUNA FASE DI TRIMESTRALE PRECEDENTE',0
end
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='quadratura' and flg_stato = 2 and tipo_reportistica=@tipo)>0 or 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='quadratura' and tipo_reportistica=@tipo) =0)
begin
;throw 51001,'NESSUNA FASE DI QUADRATURA PRECEDENTE',0
end
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0' and flg_stato <> 2 and tipo_reportistica=@tipo)>0 or 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0' and tipo_reportistica=@tipo) =0)
begin
;throw 51001,'NESSUNA FASE DI LOTTO PRECEDENTE',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CERTIFICAZIONE' and  tipo_reportistica=@tipo
if(@intero>0)
--and(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='quadratura' and flg_stato = 0 and tipo_reportistica=@tipo)=1)
begin
update C6MartPeriodico.tab_semaforo
set trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
--fine_milestone=GETDATE()+2 ,
flg_stato=2,
fase=@intero
where milestone='CERTIFICAZIONE'
end
else 
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,'10','CERTIFICAZIONE',@desc_certificazione,GETDATE(),GETDATE()+2,2,@intero,'','',0)
end
end

----lotto start
--if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Trimestrale' and tipo_reportistica=@tipo and flg_stato=2)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and tipo_reportistica=@tipo and flg_stato=2)=1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Certificazione' and tipo_reportistica=@tipo and flg_stato=2)=1)
--begin
if(@param1='LOTTO_START')
begin
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and tipo_reportistica=@tipo)=0)
begin
;throw 51013,'Non hai avviato una fase precedente al lotto (Trimestrale,Quadratura)',0
end
if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='Quadratura' and flg_stato=2 and tipo_reportistica=@tipo)>0)
begin
;throw 51015,'Fase Quadratura ancora in exec',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  tipo_reportistica=@tipo 
if(@intero >=0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  flg_stato = 1 and tipo_reportistica=@tipo and fase=@intero) >0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,GETDATE(),'',2,@intero+1,GETDATE(),'',0)
end
else 
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
inizio_lotto= getdate(), 
--case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
flg_stato=2
--fine_milestone=GETDATE()+10,
--fine_lotto=GETDATE()+10
from C6MartPeriodico.tab_semaforo
where milestone='lotto'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Lotto ancora in exec',0
end
end
--lotto end
if(@param1='LOTTO_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%LOTTO%' and milestone<> 'LOTTO 0' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and flg_stato=1 and fase=@intero and tipo_reportistica=@tipo)<>0  and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=1 and fase=@intero and tipo_reportistica=@tipo)<>0 )
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),
fine_lotto=getdate(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'LOTTO'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51004,'Nessuna fase di Lotto oppure fase lotto non conclusa (INVIO)',0
end
end
----zipping start
if(@param1='ZIPPING_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ZIPPING%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,GETDATE(),GETDATE()+1,2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
 set inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='zipping'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a zipping non avviati',0
end
end

--zipping end
if(@param1='ZIPPING_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%zipping%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'zipping'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di Zipping avviata',0
end
end

--invio start
if(@param1='INVIO_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) <>0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ZIPPING'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)<>0 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='APPROVAL'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)<>0 and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=2 and tipo_reportistica=@tipo)=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,GETDATE(),GETDATE()+2,2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set  inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='invio pdf'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51007,'Fase precedente ancora in exec o non avviata',0
end
end

--invio end
if(@param1='INVIO_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'INVIO pdf'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51008,'Nessuna fase di invio',0
end
end
--end --if controllo certificazione
--else 
--begin 
--throw('NESSUNA CERTIFICAZIONE AVVIATA 2 CONTROLLO')
--end
--end --if controllo quadratura
--else 
--begin
--if((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and flg_stato=2)=0)
--throw('NESSUNA QUADRATURA AVVIATA 2 CONTROLLO')
--end
--end --if controllo trimestrale
--else
--begin
--throw('NESSUNA TRIMESTRALE AVVIATA 2 CONTROLLO')
--end

-- approval inizio
if(@param1='APPROVAL_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+'1' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ZIPPING'+' '+'1' and flg_stato=1 and tipo_reportistica=@tipo)=1 and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%approval%' and flg_stato=2 and tipo_reportistica=@tipo)=0 )
begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,GETDATE(),GETDATE()+2,2,@intero+1,'','',0)
--end
--else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%APPROVAL%' and tipo_reportistica=@tipo)>0)
--begin 
update C6MartPeriodico.tab_semaforo
set   inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='APPROVAL' and tipo_reportistica=@tipo
end
else
begin
;throw 51007,'Fase precedente ancora in exec o non avviata',0
end
end

--approval end
if(@param1='APPROVAL_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%approval%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%approval%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'APPROVAL' and tipo_reportistica=@tipo
end
else
begin
;throw 51008,'Nessuna fase di APPROVAL',0
end
end

--fine_trimestre
if (@param1='TRIM_END')
begin
if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%Lotto%' and milestone<> 'LOTTO 0' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
begin
;throw 51002,'Lotto ancora in Corso',0
end
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo
if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='TRIMESTRALE' and  tipo_reportistica=@tipo) <>0 and 
(select COUNT (*) from C6MartPeriodico.tab_semaforo where milestone like '%lotto%' and milestone<> 'LOTTO 0'  and  flg_stato=1) <> 0)
begin
update C6MartPeriodico.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone='TRIMESTRALE' and tipo_reportistica=@tipo
end
else
begin
;throw 51009,'Nessuna trimestrale avviata oppure fase di Lotto non avviata/conclusa',0
end
end

--fine quadratura
if(@param1='QUAD_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='QUADRATURA' and  tipo_reportistica=@tipo
if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='QUADRATURA' and  tipo_reportistica=@tipo) <>0)
begin
update C6MartPeriodico.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone='QUADRATURA' and tipo_reportistica=@tipo;
exec C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM LOTTO0_end,@tipo
end
else
begin
;throw 51010,'Nessuna quadratura',0
end
end

--certificazione end
if(@param1='CERTIFICAZIONE_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CERTIFICAZIONE' and  tipo_reportistica=@tipo
if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='CERTIFICAZIONE' and  tipo_reportistica=@tipo) <>0)
begin
update C6MartPeriodico.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone='CERTIFICAZIONE' and tipo_reportistica=@tipo
end
else
begin
;throw 51011,'Nessuna Certificazione avviata',0
end
end

if(@param1='CONGELAMENTO_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%congelamento%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%congelamento%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@congelamento,'CONGELAMENTO DB MK',@desc_congelamento,GETDATE(),GETDATE()+1,2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CONGELAMENTO%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
 --fine_lotto=getdate()+1,
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='CONGELAMENTO DB MK' and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a congelamento non avviati',0
end
end

if(@param1='CONGELAMENTO_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CONGELAMENTO%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CONGELAMENTO%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'CONGELAMENTO DB MK' and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di Congelamento avviata',0
end
end

if(@param1='SM1_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO DB MK' and  flg_stato = 1 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm1,'STAGING & MART (FASE 1)'+' '+ cast(@intero+1 as varchar),@desc_sm1,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='STAGING & MART (FASE 1)'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a SM non avviati',0
end
end

--zipping end
if(@param1='SM1_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'STAGING & MART (FASE 1)'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di SM avviata',0
end
end

if(@param1='POSITION_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO' and  flg_stato = 1 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  flg_stato = 1 and tipo_reportistica=@tipo) <>0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@position,'CHIAMATA ALADDIN'+' '+ cast(@intero+1 as varchar),@desc_position,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='CHIAMATA ALADDIN'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a CHIAMATA ALADDIN non avviati',0
end
end

--zipping end
if(@param1='POSITION_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'CHIAMATA ALADDIN'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di CHIAMATA ALADDIN avviata',0
end
end

--if(@param1='ADEGUATEZZA_START')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and  tipo_reportistica=@tipo
--if(@intero >=0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='STAGING & MART (FASE 1)' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='POSITION' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'',GETDATE(),GETDATE()+1,2,@intero+1)
--end
--else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and tipo_reportistica=@tipo)>0)
--begin 
--update C6MartPeriodico.tab_semaforo
--set 
--inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2,
--fine_milestone=GETDATE()+1
--from C6MartPeriodico.tab_semaforo
--where milestone='ADEGUATEZZA'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51005,'Fasi precedenti a ADEGUATEZZA non avviati',0
--end
--end

--zipping end

--if(@param1='ADEGUATEZZA_END')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and  tipo_reportistica=@tipo
--if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%ADEGUATEZZA%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
----and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
--)
--begin
--update C6MartPeriodico.tab_semaforo 
--set fine_milestone=GETDATE(),flg_stato=1
--from C6MartPeriodico.tab_semaforo
--where milestone = 'ADEGUATEZZA'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51006,'Nessuna fase di ADEGUATEZZA avviata',0
--end
--end

--if(@param1='POST_ADE_START')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and  tipo_reportistica=@tipo
--if(@intero >=0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='STAGING & MART (FASE 1)' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='POSITION' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ADEGUATEZZA' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
--begin
--insert into C6MartPeriodico.tab_semaforo 
--values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'',GETDATE(),GETDATE()+1,2,@intero+1)
--end
--else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and tipo_reportistica=@tipo)>0 )
----and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ADEGUATEZZA' and  flg_stato = 1 and tipo_reportistica=@tipo) =1  )
--begin 
--update C6MartPeriodico.tab_semaforo
--set 
--inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2,
--fine_milestone=GETDATE()+1
--from C6MartPeriodico.tab_semaforo
--where milestone='POST_ADE'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51005,'Fasi precedenti a POST_ADEGUATEZZA non avviati',0
--end
--end

----zipping end
--if(@param1='POST_ADE_END')
--begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and  tipo_reportistica=@tipo
--if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POST_ADE%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
----and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
--)
--begin
--update C6MartPeriodico.tab_semaforo 
--set fine_milestone=GETDATE(),flg_stato=1
--from C6MartPeriodico.tab_semaforo
--where milestone = 'POST_ADE'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 51006,'Nessuna fase di POST_ADEGUATEZZA avviata',0
--end
--end



if(@param1='SM2_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='CONGELAMENTO DB MK' and  flg_stato = 1 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 1)%' and  flg_stato = 2 and tipo_reportistica=@tipo) =0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%CHIAMATA ALADDIN%' and  flg_stato = 2 and tipo_reportistica=@tipo) =0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ADEGUATEZZA' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='POST_ADE' and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and flg_stato=2 and tipo_reportistica=@tipo )=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@sm2,'STAGING & MART (FASE 2)'+' '+ cast(@intero+1 as varchar),@desc_sm2,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when flg_stato<>2 then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2
--fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='STAGING & MART (FASE 2)'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51005,'Fasi precedenti a STAGING & MART 2 non avviati',0
end
end

--zipping end
if(@param1='SM2_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%STAGING & MART (FASE 2)%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0 
--and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%invio%' and flg_stato=0 and fase=@intero)<>0
)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'STAGING & MART (FASE 2)'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51006,'Nessuna fase di STAGING & MART 2 avviata',0
end
END

--if(@param1='START')
--BEGIN
--update C6MartPeriodico.tab_semaforo
--set inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2,
--fine_milestone=GETDATE()+1
--from C6MartPeriodico.tab_semaforo
--where milestone LIKE '%POSTALIZZAZIONE%' 
----'POSTALIZZAZIONE'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
--end

if(@param1='P_START')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and  tipo_reportistica=@tipo
if(@intero >=0 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='LOTTO'+' '+cast(@intero+1 as varchar) and  flg_stato = 2 and tipo_reportistica=@tipo) =1 and 
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='ZIPPING'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='APPROVAL'+' '+cast(@intero+1 as varchar) and flg_stato=2 and tipo_reportistica=@tipo)=1 and
--(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='INVIO pdf'+' '+cast(@intero+1 as varchar) and flg_stato=1 and tipo_reportistica=@tipo)=1 and
(select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and flg_stato=2 and tipo_reportistica=@tipo)=0 )
begin
insert into C6MartPeriodico.tab_semaforo 
values ([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,GETDATE(),'',2,@intero+1,'','',0)
end
else if ((select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and tipo_reportistica=@tipo)>0)
begin 
update C6MartPeriodico.tab_semaforo
set 
 inizio_milestone= case when inizio_lotto like '%1900%' then GETDATE() else inizio_milestone end,
 inizio_lotto=getdate(),
flg_stato=2,
fine_milestone=GETDATE()+1
from C6MartPeriodico.tab_semaforo
where milestone='POSTALIZZAZIONE'+' '+cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51007,'Fase precedente a POSTALIZZAZIONE ancora in exec o non avviata',0
end
end

--invio end
if(@param1='P_END')
begin
select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and  tipo_reportistica=@tipo
if(@intero >0 and (select COUNT(*) from C6MartPeriodico.tab_semaforo where milestone like '%POSTALIZZAZIONE%' and  flg_stato = 2 and tipo_reportistica=@tipo) <> 0)
begin
update C6MartPeriodico.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'POSTALIZZAZIONE'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end
else
begin
;throw 51008,'Nessuna fase di POSTALIZZAZIONE',0
end
update C6MartPeriodico.tab_semaforo 
set fine_lotto=GETDATE(),flg_stato=1
from C6MartPeriodico.tab_semaforo
where milestone = 'LOTTO'+' '+ cast(@intero as varchar) and tipo_reportistica=@tipo
end



----truncate table C6MartPeriodico.tab_semaforo 
--select * from C6MartPeriodico.tab_semaforo order by inizio_milestone desc
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM congelamento_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM congelamento_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm1_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm1_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM position_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM position_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM adeguatezza_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM adeguatezza_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM post_ade_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM post_ade_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm2_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM sm2_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM approval_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM approval_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM p_START,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM p_end,SEI


--fase
--delete from C6MartPeriodico.tab_semaforo  where milestone='LOTTO 2'
--select * from C6MartPeriodico.tab_semaforo order by inizio_milestone desc
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_start,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_end,SEI
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_end,SEI

----truncate table C6MartPeriodico.tab_semaforo
--select * from C6MartPeriodico.tab_semaforo order by inizio_milestone desc
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM trim_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM quad_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM certificazione_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM lotto_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM zipping_end,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_start,IMM
--C6MartPeriodico.SP_Valorizza_Stati_semaforo_TRIM invio_end,IMM


end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_Allineamento_Pianificazione_Monitoraggio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
  
  
-- =============================================  
-- Author:  Marianna Coletta  
-- Create date: <Create Date,,>  
-- Description: riconciliazione posizioni disallineati tra pianificazione e monitoraggio  
-- =============================================  
CREATE procedure [C6MartPeriodico].[SRV_Allineamento_Pianificazione_Monitoraggio]  
   
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'SRV_Allineamento_Pianificazione_Monitoraggio',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
  
--DROP TABLE #TCPTAB  
--drop table #ciao  
  
--tcptab filtrata per i disallineati e con position_id  
  SELECT  
   tcp.RETE AS TCP_RETE,  
   dis.COD_FISCALE AS TCP_CODFIS,  
   tcp.codprog,  
   case when isnull(dis.id_area,mon_area)='exr' then 'ext' else isnull(dis.id_area,mon_area) end as id_area,  
   C6StagingPeriodico.rp_Info_DaProdottoCSaCatalogo(  
    TCp.TIPPROD,  
    tcp.CODINT,  
    tcp.MAF,  
    tcp.ISIN,  
    tcp.SUBPROD  
   )  
   +  
   dbo.Crea_positionID(  
    tcp.TIPPROD,  
    tcp.CODINT,  
    tcp.MAF,  
    tcp.ISIN,  
    tcp.SUBPROD,  
    tcp.CODCONF,  
    tcp.NUMPOL,  
    tcp.CONTO,  
    tcp.RUBR,  
    tcp.CUSTGAR,  
    tcp.TERMID,  
    tcp.ANNO,  
    tcp.PROG  
   ) AS POS_ID  
--            '' AS POS_ID  
  into #tcptab  
  FROM  
            C6StagingPeriodico.tcptab as TCP  
   INNER JOIN   
   disallineati2 AS DIS   
   ON DIS.RETE = TCP.RETE  
   AND DIS.COD_FISCALE =   
    CASE WHEN(SUBSTRING(DIS.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+TCP.CODFIS  
      ELSE  TCP.CODFIS  
    END   
   AND DIS.mon_AREA=TCP.CODAREA  
   AND DIS.mon_codprog=TCP.CODPROG  
   WHERE 1=1  
   and ctvatt>0  
   and dtuscita='99991231'  
    
--exec [C6MartPeriodico].[RP_TCPTAB]  
  
  
--tutte le posizioni della patrimonio_bf in esubero sulle aree monitorate vengono spostate in na  
-- UPDATE C6MARTPERIODICO.PATRIMONIO_BF  
--  set  id_area='Na',  
--   nome_progetto=null, tipo_progetto=null,  
--   ordinamento_progetto=null  
-- FROM   
--  C6MARTPERIODICO.PATRIMONIO_BF as PATBF  
-- inner join  
--  disallineati2 as dis  
--  on patbf.rete=dis.rete  
--  and patbf.cod_fiscale=dis.cod_fiscale  
--  and patbf.id_area=case when dis.id_area='exr' then 'ext' else dis.id_area end  
--  and patbf.ordinamento_progetto=dis.bf_ordprorg  
--  left join #TCPTAB as TCP  
--  ON TCP_RETE=PATBF.RETE  
--  AND TCP_CODFIS=PATBF.COD_FISCALE  
--  AND TCP.POS_ID=PATBF.POSITION_ID  
--  AND TCP.CODPROG=isnull(PATBF.ORDINAMENTO_PROGETTO,0)  
--  AND TCP.id_area=PATBF.ID_AREA  
-- where 1=1  
--   and tcp_rete is null    
   
  
  
--seleziono le posizioni monitorate sull'area ma non presenti sulla stessa area nella patrimonio_bf    
 select tcp_rete,  
  tcp_codfis,  
  TCP.CODPROG,  
  TCP.id_area,  
  TCP.POS_ID  
 into #ciao  
 FROM   
  C6MARTPERIODICO.PATRIMONIO_BF as PATBF  
 inner join  
  disallineati2 as dis  
  on patbf.rete=dis.rete  
  and patbf.cod_fiscale=dis.cod_fiscale  
 and patbf.id_area=dis.id_area  
 and patbf.ordinamento_progetto=dis.bf_ordprorg  
 left join C6StagingPeriodico.RP_ChiaviMonitoraggio ch        --dopo rp  
on ch.chiaveprogetto=patbf.ordinamento_progetto and ch.stato=1   --dopo rp  
 RIGHT join #TCPTAB as TCP  
  ON TCP_RETE=PATBF.RETE  
  AND TCP_CODFIS=PATBF.COD_FISCALE  
  AND TCP.POS_ID=PATBF.POSITION_ID  
  --AND TCP.CODPROG=isnull(DIS.BF_ORDPRORG,0)       dopo rp  
  AND TCP.CODPROG=isnull(ch.idmonitoraggio,0)     --dopo rp  
  AND TCP.id_area=DIS.ID_AREA  
  where patbf.rete is null  
  
  
  
 update C6MARTPERIODICO.PATRIMONIO_BF   
  set C6MARTPERIODICO.PATRIMONIO_BF.ordinamento_progetto = mod.ordinamento_progetto,   
  C6MARTPERIODICO.PATRIMONIO_BF.orizz_temp_num=mod.orizz_temp_num,  
  C6MARTPERIODICO.PATRIMONIO_BF.orizz_temp=mod.orizz_temp,  
  C6MARTPERIODICO.PATRIMONIO_BF.tipo_progetto=mod.tipo_progetto,  
  C6MARTPERIODICO.PATRIMONIO_BF.nome_progetto=mod.nome_progetto,  
  C6MARTPERIODICO.PATRIMONIO_BF.id_area=mod.id_area,  
  C6MARTPERIODICO.PATRIMONIO_BF.stato_consulenza='AttivaAggiornata',  
  C6MARTPERIODICO.PATRIMONIO_BF.data_stato_cons=mod.data_stato_cons,  
  C6MARTPERIODICO.PATRIMONIO_BF.data_migr_cons=mod.data_migr_cons,   
  C6MARTPERIODICO.PATRIMONIO_BF.data_pianif=mod.data_pianif,  
  C6MARTPERIODICO.PATRIMONIO_BF.chiave_progetto= mod.ordinamento_progetto --l'ordinamento progetto equivale alla chiaveprogetto della progetto o migraz_progetto  
  
  from C6MARTPERIODICO.PATRIMONIO_BF bf  
  inner join #ciao c  
  on bf.rete=c.tcp_rete  
  and bf.cod_fiscale=c.tcp_codfis  
  and bf.position_id=c.pos_id  
 --aggiunta------------------  
  left join C6StagingPeriodico.RP_ChiaviMonitoraggio ch        --dopo rp  
  on ch.chiaveprogetto=bf.ordinamento_progetto and ch.stato=1   --dopo rp  
 --condizione aggiunta mv---------  
  or ch.idmonitoraggio=c.codprog and ch.stato=1   --dopo rp  
 ----------------------------  
  inner join c6martperiodico.piramide_mod as mod  
  on mod.rete=tcp_rete  
  and mod.cod_fiscale=tcp_codfis  
 --aggiunta emanuele---------  
  --and mod.ordinamento_progetto=codprog  
 --condizione modificata mv---------    
  --AND c.CODPROG=isnull(ch.idmonitoraggio,0)     --dopo rp  
  AND mod.ordinamento_progetto=isnull(ch.ChiaveProgetto,0)     --dopo rp  
  
 ----------------------------  
  and mod.id_area=c.id_area  
  where  rend_non_rappr=0  
  
  
UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'SRV_Allineamento_Pianificazione_Monitoraggio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'SRV_Allineamento_Pianificazione_Monitoraggio'  
  )  
  
  
  
--esecuzione Stored per il Ricarico della tabella Disallineati2 dopo eventuali sistemazioni automatiche  
EXEC C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT  
  
END  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_Allineamento_Pianificazione_Monitoraggio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Marianna Coletta
-- Create date: <Create Date,,>
-- Description:	riconciliazione posizioni disallineati tra pianificazione e monitoraggio
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_Allineamento_Pianificazione_Monitoraggio_pre_selective]
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_Allineamento_Pianificazione_Monitoraggio_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)


--DROP TABLE #TCPTAB
--drop table #ciao

--tcptab filtrata per i disallineati e con position_id
		SELECT
			tcp.RETE AS TCP_RETE,
			dis.COD_FISCALE AS TCP_CODFIS,
			tcp.codprog,
			case when isnull(dis.id_area,mon_area)='exr' then 'ext' else isnull(dis.id_area,mon_area) end as id_area,
			C6StagingPeriodico.rp_Info_DaProdottoCSaCatalogo(
				TCp.TIPPROD,
				tcp.CODINT,
				tcp.MAF,
				tcp.ISIN,
				tcp.SUBPROD
			)
			+
			dbo.Crea_positionID(
				tcp.TIPPROD,
				tcp.CODINT,
				tcp.MAF,
				tcp.ISIN,
				tcp.SUBPROD,
				tcp.CODCONF,
				tcp.NUMPOL,
				tcp.CONTO,
				tcp.RUBR,
				tcp.CUSTGAR,
				tcp.TERMID,
				tcp.ANNO,
				tcp.PROG
			) AS POS_ID
--            '' AS POS_ID
		into #tcptab
		FROM
            C6StagingPeriodico.tcptab as TCP
			INNER JOIN 
			disallineati2 AS DIS 
			ON DIS.RETE = TCP.RETE
			AND DIS.COD_FISCALE = 
				CASE WHEN(SUBSTRING(DIS.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+TCP.CODFIS
					 ELSE  TCP.CODFIS
				END 
			AND DIS.mon_AREA=TCP.CODAREA
			AND DIS.mon_codprog=TCP.CODPROG
			WHERE 1=1
			and ctvatt>0
			and dtuscita='99991231'
		
--exec [C6MartPeriodico].[RP_TCPTAB]


--tutte le posizioni della patrimonio_bf in esubero sulle aree monitorate vengono spostate in na
--	UPDATE C6MARTPERIODICO.PATRIMONIO_BF
--		set  id_area='Na',
--			nome_progetto=null, tipo_progetto=null,
--			ordinamento_progetto=null
--	FROM 
--		C6MARTPERIODICO.PATRIMONIO_BF as PATBF
--	inner join
--		disallineati2 as dis
--		on patbf.rete=dis.rete
--		and patbf.cod_fiscale=dis.cod_fiscale
--		and patbf.id_area=case when dis.id_area='exr' then 'ext' else dis.id_area end
--		and patbf.ordinamento_progetto=dis.bf_ordprorg
--		left join #TCPTAB as TCP
--		ON TCP_RETE=PATBF.RETE
--		AND TCP_CODFIS=PATBF.COD_FISCALE
--		AND TCP.POS_ID=PATBF.POSITION_ID
--		AND TCP.CODPROG=isnull(PATBF.ORDINAMENTO_PROGETTO,0)
--		AND TCP.id_area=PATBF.ID_AREA
--	where 1=1
--			and tcp_rete is null  
	


--seleziono le posizioni monitorate sull'area ma non presenti sulla stessa area nella patrimonio_bf		
	select tcp_rete,
		tcp_codfis,
		TCP.CODPROG,
		TCP.id_area,
		TCP.POS_ID
	into #ciao
	FROM 
		C6MARTPERIODICO.PATRIMONIO_BF as PATBF
	inner join
		disallineati2 as dis
		on patbf.rete=dis.rete
		and patbf.cod_fiscale=dis.cod_fiscale
	and patbf.id_area=dis.id_area
	and patbf.ordinamento_progetto=dis.bf_ordprorg
	left join C6StagingPeriodico.RP_ChiaviMonitoraggio ch        --dopo rp
on ch.chiaveprogetto=patbf.ordinamento_progetto and ch.stato=1   --dopo rp
	RIGHT join #TCPTAB as TCP
		ON TCP_RETE=PATBF.RETE
		AND TCP_CODFIS=PATBF.COD_FISCALE
		AND TCP.POS_ID=PATBF.POSITION_ID
		--AND TCP.CODPROG=isnull(DIS.BF_ORDPRORG,0)				   dopo rp
		AND TCP.CODPROG=isnull(ch.idmonitoraggio,0)				 --dopo rp
		AND TCP.id_area=DIS.ID_AREA
		where patbf.rete is null



	update C6MARTPERIODICO.PATRIMONIO_BF 
		set C6MARTPERIODICO.PATRIMONIO_BF.ordinamento_progetto = mod.ordinamento_progetto, 
		C6MARTPERIODICO.PATRIMONIO_BF.orizz_temp_num=mod.orizz_temp_num,
		C6MARTPERIODICO.PATRIMONIO_BF.orizz_temp=mod.orizz_temp,
		C6MARTPERIODICO.PATRIMONIO_BF.tipo_progetto=mod.tipo_progetto,
		C6MARTPERIODICO.PATRIMONIO_BF.nome_progetto=mod.nome_progetto,
		C6MARTPERIODICO.PATRIMONIO_BF.id_area=mod.id_area,
		C6MARTPERIODICO.PATRIMONIO_BF.stato_consulenza='AttivaAggiornata',
		C6MARTPERIODICO.PATRIMONIO_BF.data_stato_cons=mod.data_stato_cons,
		C6MARTPERIODICO.PATRIMONIO_BF.data_migr_cons=mod.data_migr_cons, 
		C6MARTPERIODICO.PATRIMONIO_BF.data_pianif=mod.data_pianif,
		C6MARTPERIODICO.PATRIMONIO_BF.chiave_progetto= mod.ordinamento_progetto --l'ordinamento progetto equivale alla chiaveprogetto della progetto o migraz_progetto

		from C6MARTPERIODICO.PATRIMONIO_BF bf
		inner join #ciao c
		on bf.rete=c.tcp_rete
		and bf.cod_fiscale=c.tcp_codfis
		and bf.position_id=c.pos_id
	--aggiunta------------------
		left join C6StagingPeriodico.RP_ChiaviMonitoraggio ch        --dopo rp
		on ch.chiaveprogetto=bf.ordinamento_progetto and ch.stato=1   --dopo rp
	--condizione aggiunta mv---------
		or ch.idmonitoraggio=c.codprog and ch.stato=1   --dopo rp
	----------------------------
		inner join c6martperiodico.piramide_mod as mod
		on mod.rete=tcp_rete
		and mod.cod_fiscale=tcp_codfis
	--aggiunta emanuele---------
		--and mod.ordinamento_progetto=codprog
	--condizione modificata mv---------		
		--AND c.CODPROG=isnull(ch.idmonitoraggio,0)				 --dopo rp
		AND mod.ordinamento_progetto=isnull(ch.ChiaveProgetto,0)				 --dopo rp

	----------------------------
		and mod.id_area=c.id_area
		where  rend_non_rappr=0


UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_Allineamento_Pianificazione_Monitoraggio_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_Allineamento_Pianificazione_Monitoraggio_pre_selective'
		)



--esecuzione Stored per il Ricarico della tabella Disallineati2 dopo eventuali sistemazioni automatiche
EXEC C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_CALCOLA_BILANCIAMENTO_GENERATOR]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SRV_CALCOLA_BILANCIAMENTO_GENERATOR]
AS
declare @generatorParalleli int
set @generatorParalleli = 12

declare @numeroMedioReport int

select @numeroMedioReport  = count(*) / @generatorParalleli
from c6martperiodico.vcontrattipergenerazionereport

select @numeroMedioReport

select	substring(cod_fiscale,1,1),
		count(*),
		count(*) - @numeroMedioReport as residui
from c6martperiodico.vcontrattipergenerazionereport
group by substring(cod_fiscale,1,1)
order by 1


select	substring(cod_fiscale,1,2),
		count(*)--,
		--count(*) - @numeroMedioReport as residui
from c6martperiodico.vcontrattipergenerazionereport
where substring(cod_fiscale,1,1) in ('B','C','M','P')
group by substring(cod_fiscale,1,2)
order by 1


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_CHECK_INDIRIZZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:	    Alessandro Tringali
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_CHECK_INDIRIZZI]
AS

BEGIN


-- 1 indirizzi

SELECT 
nome,
cognome,
cod_fiscale,
indirizzo,
localita,
provincia,
cap
FROM
C6MARTPERIODICO.ANAG_CLIENTI
WHERE
(
NOME IS NULL
OR
COGNOME IS NULL
OR 
INDIRIZZO IS NULL
OR 
LOCALITA IS NULL
OR 
PROVINCIA IS NULL
OR
CAP IS NULL
)



	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'Update',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_CHECK_INDIRIZZI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_CHECK_INDIRIZZI'
		)

	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_CHECK_INDIRIZZI',
		GETDATE(),
		'Elaborazione MARKETING'
	)


END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_ESTRAZIONE_FASE_2_PRE_MART]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SRV_ESTRAZIONE_FASE_2_PRE_MART]

as

declare @dataFase as varchar(30)
select @dataFase = dbo.ToShortDateString(c6martperiodico.getPreviousTrimestre(getDate(),0))


SELECT
		a.rete,
		a.cod_fiscale,
		@dataFase as datafase,
		EXTRARENDIMENTO,
		INVESTIMENTO,
		PREVIDENZA,
		RISERVA,
		LIQUIDITA,
		RisorseNonAllocate,
		contocorrente,
		PARTVIA_DISINV + isnull(b.importo,0) AS Partita_viaggiante,
		--sum(case Upper(a.id_area) when 'CC' then 0 else a.ctv end ) as risorseFinanziarie,
		a.CTV + isnull(b.importo,0)+ PARTVIA_DISINV AS Totale,

		--V
		CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00
			 ELSE ROUND(RA.VAR_PERC_PTF,2)
		END  AS VarComplessivo,
		isnull(RA.COPERTURA,0) AS Copertura,
		CR.MAX_VAR AS VarMassimoProfiloFinanziario,
		-- TRINGALI MODIFICARE ---MODIFICATO!
		case when ra.creditrisk is null then 'n.a.'
        else cast(ra.creditrisk as varchar) end as RISKCLASS,
        mifid.riskclass as RISKCLASSMAX
		
FROM
		(select
		rete,
		cod_fiscale,
		sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) AS EXTRARENDIMENTO,
		sum(case Upper(id_area) when 'INV' then ctv else 0 end ) AS INVESTIMENTO,
		sum(case when Upper(id_area) = 'PRE1' or Upper(id_area) ='PRE2' then ctv else 0 end ) AS PREVIDENZA,
		sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) AS RISERVA,
		sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS LIQUIDITA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) AS RisorseNonAllocate,
				sum(case Upper(id_area) when 'CC' then ctv else 0 end ) as contocorrente,
		sum((isnull(PARTVIA_DISINV,0))) as PARTVIA_DISINV,
		SUM(CTV) as CTV
		from 
		[C6MartPeriodico].PATRIMONIO_BF
		group by rete, cod_fiscale 
		)  a
left join c6martperiodico.partite_viaggianti b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
INNER JOIN C6MartPeriodico.MIFID AS MIFID
	ON 	a.RETE = MIFID.RETE
	AND a.COD_FISCALE = MIFID.COD_FISCALE
INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
	ON MIFID.PROFILO_ASS = CR.PROFILO
LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
	ON 	RA.RETE = a.RETE
	AND RA.COD_FISCALE = a.COD_FISCALE
	AND RA.COD_AGGREG = 'COMPLESSIVO|BF'

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[srv_excel_zip]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[srv_excel_zip] as 
begin 

select cast(rete as nvarchar) as rete , cast(codicefiscale as nvarchar) as codicefiscale, cast(tiporeport as nvarchar) as tiporeport, id_fk_zip 
from c6martperiodico.gestione_pdf_ftp 
where datagenerazione>c6martperiodico.gettrimestre2(getdate(),0)
order by id_fk_zip asc
end
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_LISTA_CLIENTI_FASE2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		alessandro Tringali
-- Create date: 06 luglio 2010
-- Description:	estrae la lista dei clienti per fase II
-- =============================================
-- [C6MartPeriodico].[SRV_LISTA_CLIENTI_FASE2] '20110301', '20101231'
CREATE procedure [C6MartPeriodico].[SRV_LISTA_CLIENTI_FASE2]
	@DTTRIM int ,
    @DTTRIM_PREC DATETIME
AS
BEGIN



select
C6.Rete, 
C6.Cod_Agente, 
C6.Cod_Fiscale, 
C6.CodiceContratto, 
C6.Freq_Monitor, C6.Freq_Diagnosi, data_perf, 
pdf.datagenerazione,
data_fineavanzato as data_revoca, 
case when w.codfis is null then 0 else 1 end as flg_monit
FROM                  C6Mart.CONTRATTOSEI AS C6 INNER JOIN
                      C6Mart.GESTIONE_PDF_FTP AS PDF 
                      ON C6.Rete = PDF.Rete 
                       AND C6.Cod_Fiscale = PDF.CodiceFiscale 
                       AND   C6.CodiceContratto = SUBSTRING(PDF.NomeFile, 1, 11)
                       left outer join 
                       (select distinct codfis, rete from c6stagingperiodico.wanab w where dtfine='99991231' and dtrif <= CAST(@DTTRIM AS int) ) w
                       on  w.codfis=c6.cod_fiscale
                       and w.rete=c6.rete
WHERE     (1 = 1) 
                      AND (ISNULL(C6.Data_FineAvanzato, CAST('99991231' AS datetime)) > CAST(@DTTRIM_PREC AS datetime)) 
                      AND (PDF.DataGenerazione < '20110601') 
                      AND c6.INVIOBENVENUTO='S' 
					--AND isnull(C6.Data_Invio_Monitoraggio_Trimestrale,cast('20091231' as datetime)) < cast(C6MartPeriodico.getTrimestre(GETDATE(), 0) as datetime)


 
END









GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
-- =============================================  
-- Author:  alessandro Tringali  
-- Create date: 16 ottobre 2010  
-- Description: estrae la lista dei clienti per fase Ii  
-- =============================================  
-- exec [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT]  
CREATE procedure [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT]  
  
AS  
BEGIN  
  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'SRV_LISTA_DISALLINEAMENTI_MONIT',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
  
SELECT   
RETE,  
COD_FISCALE,  
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4) AS ID_AREA,  
isnull(ORDINAMENTO_PROGETTO,0) as ordinamento_progetto,  
SUM(CTV) AS SUM_CTV  
INTO #TEMP_PATRIMONIO_BF_AGGR  
FROM  
C6MARTPERIODICO.PATRIMONIO_BF  
WHERE ID_AREA NOT IN ('CC','NA')  
AND REND_NON_RAPPR=0  
GROUP BY RETE,  
COD_FISCALE,  
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4),  
isnull(ORDINAMENTO_PROGETTO,0)  
  
  
--SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB  
--WHERE CODFIS IN   
--(SELECT DISTINCT COD_FISCALE FROM #TEMP_PATRIMONIO_BF_AGGR)  
  
SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB  
WHERE CODFIS IN   
(select cod_fiscale from c6stagingperiodico.appo_contratti_v)  
  
  
drop table disallineati2  
SELECT *  
into disallineati2  
FROM  
(  
SELECT   
P.RETE,  
P.COD_FISCALE,  
P.ID_AREA,  
m.codarea as mon_area,  
P.ORDINAMENTO_PROGETTO as bf_ordprorg,  
M.CTV CTV_MONIT,  
P.SUM_CTV,  
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,  
m.codprog as mon_codprog  
FROM   
#TANAB M,  
#TEMP_PATRIMONIO_BF_AGGR P  
,C6StagingPeriodico.RP_ChiaviMonitoraggio S  
WHERE  
M.RETE = P.RETE   
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE  
AND M.CODAREA = P.ID_AREA  
AND DTFINE ='99991231'  
AND M.CTV <> P.SUM_CTV  
and m.ctv > 0  
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)  
AND S.chiaveprogetto=isnull(P.ORDINAMENTO_PROGETTO,0)  
AND M.CODPROG = S.idmonitoraggio  
and id_area ='Inv'  
  
union all  
  
SELECT   
P.RETE,  
P.COD_FISCALE,  
P.ID_AREA,  
m.codarea as mon_area,  
P.ORDINAMENTO_PROGETTO,  
M.CTV CTV_MONIT,  
P.SUM_CTV,  
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,  
m.codprog  
FROM   
#TANAB M,  
#TEMP_PATRIMONIO_BF_AGGR P  
WHERE  
M.RETE = P.RETE   
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE  
AND M.CODAREA = P.ID_AREA  
AND DTFINE ='99991231'  
AND M.CTV <> P.SUM_CTV  
and m.ctv > 0  
and id_area <>'Inv'  
  
union all  
  
--------------------------------------------  
-- SOLO MONITORAGGIO  
--------------------------------------------  
  
SELECT   
m.RETE,  
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,  
P.ID_AREA,  
m.codarea as mon_area,  
P.ORDINAMENTO_PROGETTO,  
M.CTV CTV_MONIT,  
P.SUM_CTV,  
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,  
m.codprog  
FROM   
#TANAB M  
left outer join   
--#TEMP_PATRIMONIO_BF_AGGR P  
(select T.*,S.idmonitoraggio from   
#TEMP_PATRIMONIO_BF_AGGR T  
,C6StagingPeriodico.RP_ChiaviMonitoraggio S  
where S.chiaveprogetto=isnull(T.ORDINAMENTO_PROGETTO,0)  
)P  
on  
M.RETE = P.RETE   
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end  = P.COD_FISCALE  
AND M.CODAREA = P.ID_AREA  
AND M.CODPROG = P.idmonitoraggio  
AND DTFINE ='99991231'  
where  
m.ctv > 0  
and p.cod_fiscale is null  
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)  
--and id_area ='Inv'  
and m.codarea ='Inv'  
  
union all  
  
SELECT   
m.RETE,  
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,  
p.ID_AREA,  
m.codarea as mon_area,  
P.ORDINAMENTO_PROGETTO,  
M.CTV CTV_MONIT,  
P.SUM_CTV,  
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,  
m.codprog  
FROM   
#TANAB M   
left outer join  
#TEMP_PATRIMONIO_BF_AGGR P  
on  
M.RETE = P.RETE   
--AND M.CODFIS = P.COD_FISCALE  
AND case when len(m.CODFIS) =4 then 'FF@'+m.codfis else m.codfis end = P.COD_FISCALE  
AND M.CODAREA = P.ID_AREA  
where  
DTFINE ='99991231'  
and  m.ctv > 0  
and p.cod_fiscale is null  
and codarea <>'Inv'  
) k  
order by 2,1  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'SRV_LISTA_DISALLINEAMENTI_MONIT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'SRV_LISTA_DISALLINEAMENTI_MONIT'  
  )  
  
  
end  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		alessandro Tringali
-- Create date: 16 ottobre 2010
-- Description:	estrae la lista dei clienti per fase Ii
-- =============================================
-- exec [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT_pre_selective]
CREATE procedure [C6MartPeriodico].[SRV_LISTA_DISALLINEAMENTI_MONIT_pre_selective]

AS
BEGIN


	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_LISTA_DISALLINEAMENTI_MONIT_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)


SELECT 
RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4) AS ID_AREA,
isnull(ORDINAMENTO_PROGETTO,0) as ordinamento_progetto,
SUM(CTV) AS SUM_CTV
INTO #TEMP_PATRIMONIO_BF_AGGR
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE ID_AREA NOT IN ('CC','NA')
AND REND_NON_RAPPR=0
GROUP BY RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4),
isnull(ORDINAMENTO_PROGETTO,0)


--SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
--WHERE CODFIS IN 
--(SELECT DISTINCT COD_FISCALE FROM #TEMP_PATRIMONIO_BF_AGGR)

SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
WHERE CODFIS IN 
(select cod_fiscale from c6stagingperiodico.appo_contratti)


drop table disallineati2
SELECT *
into disallineati2
FROM
(
SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO as bf_ordprorg,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog as mon_codprog
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
AND S.chiaveprogetto=isnull(P.ORDINAMENTO_PROGETTO,0)
AND M.CODPROG = S.idmonitoraggio
and id_area ='Inv'

union all

SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
and id_area <>'Inv'

union all

--------------------------------------------
-- SOLO MONITORAGGIO
--------------------------------------------

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M
left outer join 
--#TEMP_PATRIMONIO_BF_AGGR P
(select T.*,S.idmonitoraggio from 
#TEMP_PATRIMONIO_BF_AGGR T
,C6StagingPeriodico.RP_ChiaviMonitoraggio S
where S.chiaveprogetto=isnull(T.ORDINAMENTO_PROGETTO,0)
)P
on
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end  = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND M.CODPROG = P.idmonitoraggio
AND DTFINE ='99991231'
where
m.ctv > 0
and p.cod_fiscale is null
--AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
--and id_area ='Inv'
and m.codarea ='Inv'

union all

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
p.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog
FROM 
#TANAB M 
left outer join
#TEMP_PATRIMONIO_BF_AGGR P
on
M.RETE = P.RETE 
--AND M.CODFIS = P.COD_FISCALE
AND case when len(m.CODFIS) =4 then 'FF@'+m.codfis else m.codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
where
DTFINE ='99991231'
and  m.ctv > 0
and p.cod_fiscale is null
and codarea <>'Inv'
) k
order by 2,1



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_LISTA_DISALLINEAMENTI_MONIT_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_LISTA_DISALLINEAMENTI_MONIT_pre_selective'
		)


end




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 22 gennaio 2009  
-- Description: PER GESTIONE TIPOLOGIA ELABORAZIONE  
-- =============================================  
CREATE procedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE]  
 @TIPO_ELAB varchar(1) = 'T'  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 INSERT INTO C6MARTPERIODICO.ELABORAZIONI(TIPO_ELAB)   
 VALUES (@TIPO_ELAB)  
  
END  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE_20151009]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22 gennaio 2009
-- Description:	PER GESTIONE TIPOLOGIA ELABORAZIONE
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE_20151009] 
	@TIPO_ELAB varchar(1) = 'T'
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	INSERT INTO C6MARTPERIODICO.ELABORAZIONI_BK_20151008(TIPO_ELAB, DATA_OPERAZIONE) 
	VALUES (@TIPO_ELAB, '2015-10-09 19:37:21.913')

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE_bk_test_20151014]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22 gennaio 2009
-- Description:	PER GESTIONE TIPOLOGIA ELABORAZIONE
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE_bk_test_20151014]
	@TIPO_ELAB varchar(1) = 'T'
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	INSERT INTO C6MARTPERIODICO.ELABORAZIONI_bk_20151014(TIPO_ELAB) 
	VALUES (@TIPO_ELAB)

END





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 22 gennaio 2009
-- Description:	PER GESTIONE TIPOLOGIA ELABORAZIONE
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_NUOVA_ELABORAZIONE_pre_selective]
	@TIPO_ELAB varchar(1) = 'T'
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	INSERT INTO C6MARTPERIODICO.ELABORAZIONI(TIPO_ELAB) 
	VALUES (@TIPO_ELAB)

END




GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_QUANTO_MANCA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure  [C6MartPeriodico].[SRV_QUANTO_MANCA]
as

exec [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_QUINDICESIMO]
select @@rowcount
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE]

AS
BEGIN
--procedura di caricamento campione

DECLARE @appoDataInizioTrimestre varchar(8)

SET @appoDataInizioTrimestre = [C6MartPeriodico].[getDateTrimestre](0, 0, 0)

--SET @appoDataInizioTrimestre = '20190101'

--SET @appoDataInizioTrimestre = '20181001'
--SET @appoDataInizioTrimestre = '20180701'
--SET @appoDataInizioTrimestre = '20180401'
--SET @appoDataInizioTrimestre = '20180101'
--SET @appoDataInizioTrimestre = '20171001'
--SET @appoDataInizioTrimestre = '20170701'
--SET @appoDataInizioTrimestre = '20170401'
--SET @appoDataInizioTrimestre = '20170101'
--SET @appoDataInizioTrimestre = '20161001'
--SET @appoDataInizioTrimestre = '20160701'
--SET @appoDataInizioTrimestre = '20160401'
--SET @appoDataInizioTrimestre = '20160101'
--SET @appoDataInizioTrimestre = '20151001'
--SET @appoDataInizioTrimestre = '20150701'

DECLARE @appoDataFineTrimestre varchar(8)

SET @appoDataFineTrimestre = [C6MartPeriodico].[getDateTrimestre](0, 1, 0)

--SET @appoDataFineTrimestre = '20181231'

--SET @appoDataFineTrimestre = '20180930'
--SET @appoDataFineTrimestre = '20180630'
--SET @appoDataFineTrimestre = '20180331'
--SET @appoDataFineTrimestre = '20171231'
--SET @appoDataFineTrimestre = '20170930'
--SET @appoDataFineTrimestre = '20170630'
--SET @appoDataFineTrimestre = '20170331'
--SET @appoDataFineTrimestre = '20161231'
--SET @appoDataFineTrimestre = '20160930'
--SET @appoDataFineTrimestre = '20160630'
--SET @appoDataFineTrimestre = '20160331'
--SET @appoDataFineTrimestre = '20151231'
--SET @appoDataFineTrimestre = '20150930'

DECLARE @appoDataInizioTrimPrec varchar(8)

SET @appoDataInizioTrimPrec = [C6MartPeriodico].[getDateTrimestre](1, 0, 0)

--SET @appoDataInizioTrimPrec = '20181001'

--SET @appoDataInizioTrimPrec = '20180701'
--SET @appoDataInizioTrimPrec = '20180401'
--SET @appoDataInizioTrimPrec = '20180101'
--SET @appoDataInizioTrimPrec = '20171001'
--SET @appoDataInizioTrimPrec = '20170701'
--SET @appoDataInizioTrimPrec = '20170401'
--SET @appoDataInizioTrimPrec = '20170101'
--SET @appoDataInizioTrimPrec = '20161001'
--SET @appoDataInizioTrimPrec = '20160701'
--SET @appoDataInizioTrimPrec = '20160401'
--SET @appoDataInizioTrimPrec = '20160101'
--SET @appoDataInizioTrimPrec = '20151001'
--SET @appoDataInizioTrimPrec = '20150701'
--SET @appoDataInizioTrimPrec = '20150401'

DECLARE @appoDataFineTrimPrec varchar(8)

SET @appoDataFineTrimPrec = [C6MartPeriodico].[getDateTrimestre](1, 1, 0)

--SET @appoDataFineTrimPrec = '20180930'

--SET @appoDataFineTrimPrec = '20180630'
--SET @appoDataFineTrimPrec = '20180331'
--SET @appoDataFineTrimPrec = '20171231'
--SET @appoDataFineTrimPrec = '20170930'
--SET @appoDataFineTrimPrec = '20170630'
--SET @appoDataFineTrimPrec = '20170331'
--SET @appoDataFineTrimPrec = '20161231'
--SET @appoDataFineTrimPrec = '20160930'
--SET @appoDataFineTrimPrec = '20160630'
--SET @appoDataFineTrimPrec = '20160331'
--SET @appoDataFineTrimPrec = '20151231'
--SET @appoDataFineTrimPrec = '20150930'
--SET @appoDataFineTrimPrec = '20150630'

-- QUI VA SPECIFICATO IL PERIODO DI EFFETTIVA GENERAZIONE DEI REPORT CHE, IN GENERE, E' IL MESE SUCCESSIVO
-- A QUELLO DI FINE TRIMESTRE
DECLARE @appoDataGenerazioneTrimPrecDa varchar(8)

SET @appoDataGenerazioneTrimPrecDa = [C6MartPeriodico].[getDateTrimestre](1, 0, 0)

--SET @appoDataGenerazioneTrimPrecDa = '20181001'

--SET @appoDataGenerazioneTrimPrecDa = '20180701'
--SET @appoDataGenerazioneTrimPrecDa = '20180401'
--SET @appoDataGenerazioneTrimPrecDa = '20180101'
--SET @appoDataGenerazioneTrimPrecDa = '20171001'
--SET @appoDataGenerazioneTrimPrecDa = '20170701'
--SET @appoDataGenerazioneTrimPrecDa = '20170401'
--SET @appoDataGenerazioneTrimPrecDa = '20170101'
--SET @appoDataGenerazioneTrimPrecDa = '20161001'
--SET @appoDataGenerazioneTrimPrecDa = '20160701'
--SET @appoDataGenerazioneTrimPrecDa = '20160401'
--SET @appoDataGenerazioneTrimPrecDa = '20160101'
--SET @appoDataGenerazioneTrimPrecDa = '20151001'
--SET @appoDataGenerazioneTrimPrecDa = '20150701'

DECLARE @appoDataGenerazioneTrimPrecA varchar(8)

SET @appoDataGenerazioneTrimPrecA = [C6MartPeriodico].[getDateTrimestre](1, 1, 1)

--SET @appoDataGenerazioneTrimPrecA = '20181031'

--SET @appoDataGenerazioneTrimPrecA = '20180731'
--SET @appoDataGenerazioneTrimPrecA = '20180430'
--SET @appoDataGenerazioneTrimPrecA = '20180131'
--SET @appoDataGenerazioneTrimPrecA = '20171031'
--SET @appoDataGenerazioneTrimPrecA = '20170731'
--SET @appoDataGenerazioneTrimPrecA = '20170430'
--SET @appoDataGenerazioneTrimPrecA = '20170131'
--SET @appoDataGenerazioneTrimPrecA = '20161031'
--SET @appoDataGenerazioneTrimPrecA = '20160731'
--SET @appoDataGenerazioneTrimPrecA = '20160430'
--SET @appoDataGenerazioneTrimPrecA = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecA = '20151031'
--SET @appoDataGenerazioneTrimPrecA = '20150731'

DECLARE @appoDataGenerazioneTrimPrecX2Da varchar(8)

SET @appoDataGenerazioneTrimPrecX2Da = [C6MartPeriodico].[getDateTrimestre](2, 0, 0)

--SET @appoDataGenerazioneTrimPrecX2Da = '20180701'

--SET @appoDataGenerazioneTrimPrecA = '20180401'
--SET @appoDataGenerazioneTrimPrecA = '20180101'
--SET @appoDataGenerazioneTrimPrecA = '20171001'
--SET @appoDataGenerazioneTrimPrecA = '20170701'
--SET @appoDataGenerazioneTrimPrecA = '20170401'
--SET @appoDataGenerazioneTrimPrecA = '20170101'
--SET @appoDataGenerazioneTrimPrecA = '20161001'
--SET @appoDataGenerazioneTrimPrecA = '20160701'
--SET @appoDataGenerazioneTrimPrecA = '20160401'
--SET @appoDataGenerazioneTrimPrecA = '20160101'
--SET @appoDataGenerazioneTrimPrecX2Da = '20151001'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150701'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150401'

DECLARE @appoDataGenerazioneTrimPrecX2A varchar(8)

SET @appoDataGenerazioneTrimPrecX2A = [C6MartPeriodico].[getDateTrimestre](2, 1, 1)

--SET @appoDataGenerazioneTrimPrecX2A = '20180731'

--SET @appoDataGenerazioneTrimPrecX2A = '20180430'
--SET @appoDataGenerazioneTrimPrecX2A = '20180131'
--SET @appoDataGenerazioneTrimPrecX2A = '20171031'
--SET @appoDataGenerazioneTrimPrecX2A = '20170731'
--SET @appoDataGenerazioneTrimPrecX2A = '20170430'
--SET @appoDataGenerazioneTrimPrecX2A = '20170131'
--SET @appoDataGenerazioneTrimPrecX2A = '20161031'
--SET @appoDataGenerazioneTrimPrecX2A = '20160731'
--SET @appoDataGenerazioneTrimPrecX2A = '20160430'
--SET @appoDataGenerazioneTrimPrecX2A = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecX2A = '20151031'
--SET @appoDataGenerazioneTrimPrecX2A = '20150731'
--SET @appoDataGenerazioneTrimPrecX2A = '20150430'


TRUNCATE TABLE C6MARTPERIODICO.SELEZIONECAMPIONE
--select * into c6martperiodico.appo_selezione_campione from  C6MARTPERIODICO.SELEZIONECAMPIONE
--0 tutta la popolazione


INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
select distinct bf.cod_fiscale, bf.rete
from
C6MartPeriodico.rp_vcontrattipergenerazionereport bf
) bf


--1  UNA MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'UNA MACRO ASSET                                  ' AS DESCRIZIONE,
1 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 1 "ASSET CLASS" anzichè 1 "MACRO ASSET CLASS"
--select distinct bf.cod_fiscale, bf.rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=1
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=1
) bf


--2 TUTTE LE MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select  
bf.rete, 
bf.cod_fiscale,
'TUTTE LE MACRO ASSET                             ' AS DESCRIZIONE,
0 AS c1,
1 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 7 "ASSET CLASS" anzichè 7 "MACRO ASSET CLASS"
--select distinct cod_fiscale, rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=7
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=7
) bf


--3 TUTTE LE AREE SONO MONITORATE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis as cod_fiscale,
'TUTTE LE AREE SONO MONITORATE                    ' AS DESCRIZIONE,

0 AS c1,
0 AS c2,
1 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, count(distinct codarea) c
from C6StagingPeriodico.TANAB
where dtfine='99991231'
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=4
)bf


--4 SENZA PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'SENZA PATRIMONIO TERZI                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
1 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


--5 RISCHIO CREDITO NA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO N.A.                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
1 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk is null
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 6 CLASSE DI RISCHIO CREDITO > 3 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO > 3                              ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
1 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>3
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 7 PRODOTTO SENZA RENDIMENTO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PRODOTTO SENZA RENDIMENTO                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
1 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as cod_fiscale
from C6StagingPeriodico.TSCABP
) bf


-- 8 piu trimestrali

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PIU TRIMESTRALI                                  ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
1 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, codicefiscale AS COD_FISCALE, count(*)N
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where tiporeport='M'
and dataGenerazione > @appoDataGenerazioneTrimPrecX2Da
group by rete, codicefiscale
having count(*)>1
) bf


-- 9 PATRIMONIO TERZI SU PIU' INTERMEDIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI SU PIU'' INTERMEDIARI           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
1 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, count(distinct a.intermediario) M
from C6MartPeriodico.PATRIMONIO_TERZI a
group by a.rete, a.cod_fiscale
having count(distinct a.intermediario)>1
) bf


-- 10 PERSONE GIURIDICHE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PERSONE GIURIDICHE                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
1 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where len(cod_fiscale)=11
) bf


-- 11 PB TERMINATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PB TERMINATI                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
1 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct bf.rete, bf.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF bf, C6Mart.CONTRATTOSEI c6,C6Stagingperiodico.ADS4WS_PROMOTORI pr
--where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
--and c6.cod_agente=pr.codice and pr.rete=c6.rete
--and stato= 'T'
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6,C6Stagingperiodico.RP_anagrafica_promotori pr
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and c6.cod_agente=pr.codage and pr.rete=c6.rete
and stato= 'T'
) bf


-- 12 PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
1 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_TERZI a
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


-- 13 PATR NON RAPPR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR NON RAPPR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
1 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale
from C6MartPeriodico.vPatrimonioNonRappresentabileAsset
) bf


-- 14 PATR IMMOBILIARE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR IMMOB                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
1 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, sum(a.VALORE_STIMATO) M
from C6MartPeriodico.PATRIMONIO_IMMOBILIARE a 
group by a.rete, a.cod_fiscale
) bf


-- 15 PARTITE VIAGGIANTI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
1 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PARTITE_VIAGGIANTI) bf


--16 NON MONITORATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON MONITORATI                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
1 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.patrimonio_bf bf
where bf.rete + bf.cod_fiscale not in ( select distinct rete + case when len(codfis) =4 then 'FF@'+codfis else codfis end from C6StagingPeriodico.TANAB where dtfine='99991231')
) bf


-- 17 NO PATR IMMOB

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON PATR IMMOB                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
1 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from  C6MartPeriodico.PATRIMONIO_bf 
where cod_fiscale + rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.patrimonio_immobiliare)

) bf


-- 18 MON SU UNA SOLA AREA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON SU UNA SOLA AREA                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
1 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE, count(distinct codarea) H
from C6StagingPeriodico.TANAB
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=1

) bf


-- 19 MON DA PIU DI 12 MESI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MON DA PIU DI 12 MESI                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
1 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct  rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_FISCALE
from C6StagingPeriodico.TANAB
--where ('20101201'-dtrif)/30>12
where dtrif < convert(varchar(8), DATEADD(year, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112)
) bf


-- 20 MON APPENA AVVIATO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON APPENA AVVIATO                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
1 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE
from  C6StagingPeriodico.TANAB
--where '20101201'-GETDATE()<1
where (dtrif > convert(varchar(8), DATEADD(day, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112))
) bf


-- 21 MANDATI FIDUCIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MANDATI FIDUCIARI                                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
1 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where cod_fiscale like 'FF@%'
) bf


-- 22 INADEGUATI VAR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI VAR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
1 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.var_perc_ptf>cod.max_var
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 23 INADEGUATI CRISK

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI CRISK                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
1 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_CREDITRISK cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>mifid.profilo_ass
and a.cod_aggreg='COMPLESSIVO'
) bf

 
-- 24 INADEGUATI COMPLESSITA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI COMPLESSITA                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
1 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
-- EN2060408: begin - adapted to new feature "Adeguatezza" comnplexity / concentration
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF a, C6MartPeriodico.MIFID mifid
--where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
--and mifid.experience<(select max(complex) from C6MartPeriodico.PATRIMONIO_BF where rete=mifid.rete and cod_fiscale=mifid.cod_fiscale)
SELECT top 500 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 200 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
) bf
-- EN2060408: end


-- 25 DIVERSIFICAZIONE < 30

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'DIVERSIFICAZIONE < 30                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
1 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(

select rete, cod_fiscale, beneficio
from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='COMPLESSIVO'
and beneficio<30

) bf

 
-- 26 CC NEG E POS 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEG E POS                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
1 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0 
) bf


-- 27 CC NEG

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEGATIVO                                      ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
1 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale, sum(saldocontabile) M
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)<0
) bf
where rete+cod_fiscale not in 
(
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0
)


-- 28 REND NON RAPPR COME UNICA POSIZIONE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'REND NON RAPPR COME UNICA POSIZIONE IN AREA MONIT' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
1 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
SELECT
DISTINCT T.RETE, T.COD_FISCALE FROM
(
SELECT
RETE, COD_FISCALE , ID_AREA, SUM(CASE WHEN REND_NON_RAPPR =1 THEN 0 ELSE 1 END) TOT 
FROM
C6MARTPERIODICO
.PATRIMONIO_BF B 
GROUP
BY 
RETE
, COD_FISCALE, ID_AREA 
)
T, 
(
SELECT
RETE, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, CASE WHEN CODAREA ='EXR' THEN 'EXT'ELSE CODAREA END AS CODAREA FROM
C6STAGINGPERIODICO
.TANAB 
WHERE
DTFINE = 99991231 
)
B 
WHERE
T
.RETE=B.RETE AND B.CODFIS=T.COD_FISCALE 
AND
ID_AREA=CODAREA 
AND
TOT=0

) bf


-- 29 PREVIDENZA 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PREVIDENZA                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
1 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF
where id_area like '%Pre%'
) bf


--30 RESTART CONTRATTOSEI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RESTART CONTRATTOSEI                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
1 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, codicefiscale as cod_fiscale
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where datagenerazione between @appoDataGenerazioneTrimPrecX2Da and @appoDataGenerazioneTrimPrecX2A
except 
select distinct p.rete,p.codicefiscale
     from C6StoricoPeriodico.GESTIONE_PDF_FTP p
     inner join c6martperiodico.patrimonio_bf b
     on p.rete=b.rete and p.codicefiscale =b.cod_fiscale 
        where datagenerazione between @appoDataGenerazioneTrimPrecDa and @appoDataGenerazioneTrimPrecA
        
--select distinct rete, codicefiscale as cod_fiscale
--from appoGESTIONE_PDF_FTP
--where datagenerazione between '20111001' and '20111031'
--and rete + codicefiscale not in (select distinct rete + codicefiscale
--        from appoGESTIONE_PDF_FTP
--        where datagenerazione between '20120101' and '20120131')
--and rete + codicefiscale in (select distinct rete + cod_fiscale
--        from c6martperiodico.patrimonio_bf)        
        
) bf


--31 INDIRIZZO CONTRATTO ESTERO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INDIRIZZO CONTRATTO ESTERO                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
1 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and nazione<> 'italia'
) bf


--32 CC>10000

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC>10000                                         ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
1 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)>10000
) bf


--33 COPERTURA INFERIORE A 100

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'COPERTURA INFERIORE A 100                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
1 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
 from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='complessivo'
and copertura<100
) bf


--34 evoluzione controvalore > 30%

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'EVOLUZIONE CONTROVALORE > 30%                    ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
1 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct corrente.rete, corrente.cod_fiscale 
from
(select b.rete, b.cod_fiscale, sum(controvalore) ctv
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
group by b.rete, b.cod_fiscale) scorsa,
(select rete, cod_fiscale, sum(ctv) ctv
from c6martperiodico.patrimonio_bf
group by rete, cod_fiscale) corrente
where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
and  (case when scorsa.ctv>corrente.ctv
      then (scorsa.ctv-abs(corrente.ctv))
      else (corrente.ctv-abs(scorsa.ctv))
      end)
      >
	 (case when scorsa.ctv>corrente.ctv
      then (0.30*corrente.ctv)
      else (0.30*scorsa.ctv)
      end)
--select distinct corrente.rete, corrente.cod_fiscale
--from
--(select rete, cod_fiscale, sum(controvalore) ctv
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--group by rete, cod_fiscale) scorsa,
--(select rete, cod_fiscale, sum(ctv) ctv
--from c6martperiodico.patrimonio_bf
--group by rete, cod_fiscale) corrente
--where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
--and (0.33*scorsa.ctv>corrente.ctv or 0.33*scorsa.ctv<corrente.ctv)
) bf


--35  Clienti con investimenti in corso nel precedente report 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CLIENTI CON INV IN CORSO NEL PRECEDENTE REPORT   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
1 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct b.rete, b.cod_fiscale
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
where a.investimentiincorso>0

--select distinct rete, cod_fiscale
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--where investimentiincorso>0

) bf


--36  Monitoraggio con cedole/dividendi 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MONITORAGGIO CON CEDOLE/DIVIDENDI                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
1 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.MONITORAGGIO_ATTUALE
where CEDOLE_DIVIDENDI>0 
) bf


-- 37 PARTITE VIAGGIANTI DI DISINVESTIMENTO - 19/1/2016

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI DI DISINVESTIMENTO            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
1 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from C6MartPeriodico.patrimonio_bf a
inner join [C6StampeCentralizzate].[C6MartPeriodico].[TB_Campione] b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where (partvia_disinv <> 0.000 and partvia_disinv is not null)
) bf


--CRITERIO ELIMINATO IN QUANTO DUPLICATO DEL CRITERIO 31
--38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
--select 
--bf.rete, 
--bf.cod_fiscale,
--'Indirizzo Estero' AS DESCRIZIONE,
--0 AS c1,
--0 AS c2,
--0 AS c3,
--0 AS c4,
--0 AS c5,
--0 AS c6,
--0 AS c7,
--0 AS c8,
--0 AS c9,
--0 AS c10,
--0 AS c11,
--0 AS c12,
--0 AS c13,
--0 AS c14,
--0 AS c15,
--0 AS c16,
--0 AS c17,
--0 AS c18,
--0 AS c19,
--0 AS c20,
--0 AS c21,
--0 AS c22,
--0 AS c23,
--0 AS c24,
--0 AS c25,
--0 AS c26,
--0 AS c27,
--0 AS c28,
--0 AS c29,
--0 AS c30,
--0 AS c31,
--0 AS c32,
--0 AS c33,
--0 AS c34,
--0 AS c35,
--0 AS c36,
--0 AS c37,
--1 AS c38,
--0 AS c39,
--0 AS c40,
--0 AS c41,
--0 AS c42,
--0 AS c43,
--0 AS c44,
--0 AS c45,
--0 AS c46,
--0 AS c47,
--0 AS c48,
--0 AS c49,
--0 AS c50,
--0 AS c51,
--0 AS c52,
--0 AS c53,
--0 AS c54,
--0 AS c55,
--0 AS c56,
--0 AS c57,
--0 AS c58
--FROM
--(
--select distinct rete, cod_fiscale 
--from c6martperiodico.contrattosei
--where nazione <> 'italia'
--) bf

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'S', 
--'RSSRNZ49E14A479S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'CSCGPP34A03L050L',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNERSR61L08C351V',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'BGLPRD65E10Z130S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNZNLS71M48C814J',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)


---------------------
--c39

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C39 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
1 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
where data_foto >= @appoDataInizioTrimestre
) bf


--c40

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C40 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
1 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is not null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is not null
) bf


--41
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C41 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
1 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is null

) bf


--c42
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C42 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
1 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is null
) bf



--c43
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C43 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
1 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is not null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is not null
) bf


--C44
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'F' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
1 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
inner join c6stagingperiodico.st_mon 
on a.cod_fiscale = codfis
and a.rete = st_mon.rete
where data_foto > '20111001'
) bf


--C45
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'G' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
1 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto < '20111001'
) bf



--C46
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'H' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
1 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto > '20111001'
) bf


--C47
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'I' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
1 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and dttrim = @appoDataFineTrimestre
and data_foto > '20111001'
) bf


--C48
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'J' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
1 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
/*
(select * from c6stagingperiodico.wseics where dttrim = '20111231') a
inner join
(select * from c6stagingperiodico.wseics where dttrim = '20120331') b
on a.rete = b.rete
and a.codfis = b.codfis
inner join c6martperiodico.monitoraggio_iniziale c
on b.codfis = c.cod_fiscale
and b.rete = c.rete
where
a.codprod not in ('37', 'GP')
and
b.codprod in ('37', 'GP')
and c.data_foto > '20111001'
*/

select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'

) bf


--C49
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'K' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
1 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
--inner join c6stagingperiodico.wseics b
--on b.codfis = b.codfis
--and a.rete = b.rete
--where a.codprod not in ('37', 'GP')
----Se fase di Simulazione:
----		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
----and a.dttrim = '20131130'
----Se fase di Trimestrale:
----		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
--and a.dttrim = @appoDataFineTrimestre
--and b.codprod in ('37', 'GP')
----and b.dttrim = '20111231' -- b.dttrim = dt fine trimestre precedente
--and b.dttrim = @appoDataFineTrimPrec


select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'

) bf

--nuovi-----------------------------------------------------------

--C50
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti OLD' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
1 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 0
) bf

--C51
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Affluent' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
1 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 1
) bf



--C52
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Private' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
1 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 2
) bf


--C53
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Bonus' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
1 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.bonus bon
on vc.rete = bon.rete
and vc.cod_fiscale = bon.cod_fiscale
) bf


--C54
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Scadenze' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
1 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.scadenze sca
on vc.rete = sca.rete
and vc.cod_fiscale = sca.cod_fiscale
) bf

--C55
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Proventi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
1 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.proventi pro
on vc.rete = pro.rete
and vc.cod_fiscale = pro.cod_fiscale
) bf

--C56
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Monitoraggio avviato Trimestre precedente' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
1 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
--where data_foto > C6MartPeriodico.getPreviousTrimestre(getdate(), 1)
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
) bf


--C57
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
1 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where isnull(data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
where isnull(data_foto,getDate()) between @appoDataInizioTrimestre and @appoDataFineTrimestre
) bf


--C58
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
1 AS c58
FROM
(
--select distinct b.rete, b.cod_fiscale as codfis
--from c6martperiodico.monitoraggio_report a
--right join C6MartPeriodico.rp_vcontrattipergenerazionereport b
--on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete is null

select distinct rete, cod_fiscale as codfis 
from c6martperiodico.monitoraggio_iniziale 
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
except
select distinct rete, cod_fiscale as codfis
from c6martperiodico.monitoraggio_report

) bf
---------------------

--drop table C6MARTPERIODICO.SELEZIONECAMPIONE2

truncate table  C6MARTPERIODICO.SELEZIONECAMPIONE2

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
select
v.rete, 
v.cod_fiscale,
sum( C1 ) as C1,
sum( C2 ) as C2,
sum( C3 ) as C3,
sum( C4 ) as C4,
sum( C5 ) as C5,
sum( C6 ) as C6,
sum( C7 ) as C7,
sum( C8 ) as C8,
sum( C9 ) as C9,
sum( C10 ) as C10,
sum( C11) as C11,
sum( C12 ) as C12,
sum( C13 ) as C13,
sum( C14 ) as C14,
sum( C15 ) as C15,
sum( C16 ) as C16,
sum( C17 ) as C17,
sum( C18 ) as C18,
sum( C19 ) as C19,
sum( C20 ) as C20,
sum( C21 ) as C21,
sum( C22 ) as C22,
sum( C23) as C23,
sum( C24 ) as C24,
sum( C25 ) as C25,
sum( C26) as C26,
sum( C27 ) as C27,
sum( C28) as C28,
sum( C29 ) as C29,
sum( C30 ) as C30,
sum(C31) AS C31,
SUM(C32) AS C32,
SUM(C33) AS C33,
SUM(C34) AS C34,
SUM(C35) AS C35,
SUM(C36) AS C36,
SUM(C37) AS C37,
SUM(C38) AS C38,
SUM(C39) AS C39,
SUM(C40) AS C40,
SUM(C41) AS C41,
SUM(C42) AS C42,
SUM(C43) AS C43,
SUM(C44) AS C44,
SUM(C45) AS C45,
SUM(C46) AS C46,
SUM(C47) AS C47,
SUM(C48) AS C48,
SUM(C49) AS C49,

SUM(C50) AS C50,
SUM(C51) AS C51,
SUM(C52) AS C52,
SUM(C53) AS C53,
SUM(C54) AS C54,
SUM(C55) AS C55,
SUM(C56) AS C56,
SUM(C57) AS C57,
SUM(C58) AS C58

--INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
FROM
C6MARTPERIODICO.SELEZIONECAMPIONE sc join C6MartPeriodico.rp_vcontrattipergenerazionereport v  
on sc.rete=v.rete and sc.cod_fiscale=v.cod_fiscale

--modifica del 10/7/2018 per non far includere quelli della blacklist (se ci sono)
where sc.rete+sc.cod_fiscale not in (select rete+codicefiscale from [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList])


group by
v.rete,
v.cod_fiscale

END



--SELECT * FROM C6MARTPERIODICO.SELEZIONECAMPIONE2
























GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20160412]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20160412]

AS
BEGIN
--procedura di caricamento campione

DECLARE @appoDataInizioTrimestre varchar(8)
SET @appoDataInizioTrimestre = '20160101'
--SET @appoDataInizioTrimestre = '20151001'
--SET @appoDataInizioTrimestre = '20150701'

DECLARE @appoDataFineTrimestre varchar(8)
SET @appoDataFineTrimestre = '20160331'
--SET @appoDataFineTrimestre = '20151231'
--SET @appoDataFineTrimestre = '20150930'

DECLARE @appoDataInizioTrimPrec varchar(8)
SET @appoDataInizioTrimPrec = '20151001'
--SET @appoDataInizioTrimPrec = '20150701'
--SET @appoDataInizioTrimPrec = '20150401'

DECLARE @appoDataFineTrimPrec varchar(8)
SET @appoDataFineTrimPrec = '20151231'
--SET @appoDataFineTrimPrec = '20150930'
--SET @appoDataFineTrimPrec = '20150630'

-- QUI VA SPECIFICATO IL PERIODO DI EFFETTIVA GENERAZIONE DEI REPORT CHE, IN GENERE, E' IL MESE SUCCESSIVO
-- A QUELLO DI FINE TRIMESTRE
DECLARE @appoDataGenerazioneTrimPrecDa varchar(8)
SET @appoDataGenerazioneTrimPrecDa = '20160101'
--SET @appoDataGenerazioneTrimPrecDa = '20151001'
--SET @appoDataGenerazioneTrimPrecDa = '20150701'

DECLARE @appoDataGenerazioneTrimPrecA varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecA = '20151031'
--SET @appoDataGenerazioneTrimPrecA = '20150731'

DECLARE @appoDataGenerazioneTrimPrecX2Da varchar(8)
SET @appoDataGenerazioneTrimPrecX2Da = '20151001'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150701'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150401'

DECLARE @appoDataGenerazioneTrimPrecX2A varchar(8)
SET @appoDataGenerazioneTrimPrecX2A = '20151031'
--SET @appoDataGenerazioneTrimPrecX2A = '20150731'
--SET @appoDataGenerazioneTrimPrecX2A = '20150430'


TRUNCATE TABLE C6MARTPERIODICO.SELEZIONECAMPIONE
--select * into c6martperiodico.appo_selezione_campione from  C6MARTPERIODICO.SELEZIONECAMPIONE
--0 tutta la popolazione


INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
select distinct bf.cod_fiscale, bf.rete
from
C6MartPeriodico.rp_vcontrattipergenerazionereport bf
) bf


--1  UNA MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'UNA MACRO ASSET                                  ' AS DESCRIZIONE,
1 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 1 "ASSET CLASS" anzichè 1 "MACRO ASSET CLASS"
--select distinct bf.cod_fiscale, bf.rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=1
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=1
) bf


--2 TUTTE LE MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select  
bf.rete, 
bf.cod_fiscale,
'TUTTE LE MACRO ASSET                             ' AS DESCRIZIONE,
0 AS c1,
1 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 7 "ASSET CLASS" anzichè 7 "MACRO ASSET CLASS"
--select distinct cod_fiscale, rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=7
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=7
) bf


--3 TUTTE LE AREE SONO MONITORATE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis as cod_fiscale,
'TUTTE LE AREE SONO MONITORATE                    ' AS DESCRIZIONE,

0 AS c1,
0 AS c2,
1 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, count(distinct codarea) c
from C6StagingPeriodico.TANAB
where dtfine='99991231'
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=4
)bf


--4 SENZA PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'SENZA PATRIMONIO TERZI                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
1 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


--5 RISCHIO CREDITO NA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO N.A.                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
1 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk is null
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 6 CLASSE DI RISCHIO CREDITO > 3 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO > 3                              ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
1 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>3
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 7 PRODOTTO SENZA RENDIMENTO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PRODOTTO SENZA RENDIMENTO                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
1 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as cod_fiscale
from C6StagingPeriodico.TSCABP
) bf


-- 8 piu trimestrali

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PIU TRIMESTRALI                                  ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
1 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, codicefiscale AS COD_FISCALE, count(*)N
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where tiporeport='M'
and dataGenerazione > @appoDataGenerazioneTrimPrecX2Da
group by rete, codicefiscale
having count(*)>1
) bf


-- 9 PATRIMONIO TERZI SU PIU' INTERMEDIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI SU PIU'' INTERMEDIARI           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
1 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, count(distinct a.intermediario) M
from C6MartPeriodico.PATRIMONIO_TERZI a
group by a.rete, a.cod_fiscale
having count(distinct a.intermediario)>1
) bf


-- 10 PERSONE GIURIDICHE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PERSONE GIURIDICHE                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
1 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where len(cod_fiscale)=11
) bf


-- 11 PB TERMINATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PB TERMINATI                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
1 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct bf.rete, bf.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF bf, C6Mart.CONTRATTOSEI c6,C6Stagingperiodico.ADS4WS_PROMOTORI pr
--where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
--and c6.cod_agente=pr.codice and pr.rete=c6.rete
--and stato= 'T'
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6,C6Stagingperiodico.RP_anagrafica_promotori pr
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and c6.cod_agente=pr.codage and pr.rete=c6.rete
and stato= 'T'
) bf


-- 12 PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
1 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_TERZI a
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


-- 13 PATR NON RAPPR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR NON RAPPR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
1 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale
from C6MartPeriodico.vPatrimonioNonRappresentabileAsset
) bf


-- 14 PATR IMMOBILIARE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR IMMOB                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
1 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, sum(a.VALORE_STIMATO) M
from C6MartPeriodico.PATRIMONIO_IMMOBILIARE a 
group by a.rete, a.cod_fiscale
) bf


-- 15 PARTITE VIAGGIANTI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
1 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PARTITE_VIAGGIANTI) bf


--16 NON MONITORATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON MONITORATI                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
1 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.patrimonio_bf bf
where bf.rete + bf.cod_fiscale not in ( select distinct rete + case when len(codfis) =4 then 'FF@'+codfis else codfis end from C6StagingPeriodico.TANAB where dtfine='99991231')
) bf


-- 17 NO PATR IMMOB

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON PATR IMMOB                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
1 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from  C6MartPeriodico.PATRIMONIO_bf 
where cod_fiscale + rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.patrimonio_immobiliare)

) bf


-- 18 MON SU UNA SOLA AREA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON SU UNA SOLA AREA                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
1 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE, count(distinct codarea) H
from C6StagingPeriodico.TANAB
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=1

) bf


-- 19 MON DA PIU DI 12 MESI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MON DA PIU DI 12 MESI                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
1 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct  rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_FISCALE
from C6StagingPeriodico.TANAB
--where ('20101201'-dtrif)/30>12
where dtrif < convert(varchar(8), DATEADD(year, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112)
) bf


-- 20 MON APPENA AVVIATO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON APPENA AVVIATO                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
1 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE
from  C6StagingPeriodico.TANAB
--where '20101201'-GETDATE()<1
where (dtrif > convert(varchar(8), DATEADD(day, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112))
) bf


-- 21 MANDATI FIDUCIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MANDATI FIDUCIARI                                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
1 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where cod_fiscale like 'FF@%'
) bf


-- 22 INADEGUATI VAR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI VAR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
1 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.var_perc_ptf>cod.max_var
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 23 INADEGUATI CRISK

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI CRISK                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
1 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_CREDITRISK cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>mifid.profilo_ass
and a.cod_aggreg='COMPLESSIVO'
) bf

 
-- 24 INADEGUATI COMPLESSITA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI COMPLESSITA                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
1 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF a, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and mifid.experience<(select max(complex) from C6MartPeriodico.PATRIMONIO_BF where rete=mifid.rete and cod_fiscale=mifid.cod_fiscale)

) bf


-- 25 DIVERSIFICAZIONE < 30

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'DIVERSIFICAZIONE < 30                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
1 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(

select rete, cod_fiscale, beneficio
from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='COMPLESSIVO'
and beneficio<30

) bf

 
-- 26 CC NEG E POS 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEG E POS                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
1 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0 
) bf


-- 27 CC NEG

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEGATIVO                                      ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
1 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale, sum(saldocontabile) M
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)<0
) bf
where rete+cod_fiscale not in 
(
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0
)


-- 28 REND NON RAPPR COME UNICA POSIZIONE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'REND NON RAPPR COME UNICA POSIZIONE IN AREA MONIT' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
1 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
SELECT
DISTINCT T.RETE, T.COD_FISCALE FROM
(
SELECT
RETE, COD_FISCALE , ID_AREA, SUM(CASE WHEN REND_NON_RAPPR =1 THEN 0 ELSE 1 END) TOT 
FROM
C6MARTPERIODICO
.PATRIMONIO_BF B 
GROUP
BY 
RETE
, COD_FISCALE, ID_AREA 
)
T, 
(
SELECT
RETE, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, CASE WHEN CODAREA ='EXR' THEN 'EXT'ELSE CODAREA END AS CODAREA FROM
C6STAGINGPERIODICO
.TANAB 
WHERE
DTFINE = 99991231 
)
B 
WHERE
T
.RETE=B.RETE AND B.CODFIS=T.COD_FISCALE 
AND
ID_AREA=CODAREA 
AND
TOT=0

) bf


-- 29 PREVIDENZA 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PREVIDENZA                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
1 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF
where id_area like '%Pre%'
) bf


--30 RESTART CONTRATTOSEI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RESTART CONTRATTOSEI                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
1 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, codicefiscale as cod_fiscale
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where datagenerazione between @appoDataGenerazioneTrimPrecX2Da and @appoDataGenerazioneTrimPrecX2A
except 
select distinct p.rete,p.codicefiscale
     from C6StoricoPeriodico.GESTIONE_PDF_FTP p
     inner join c6martperiodico.patrimonio_bf b
     on p.rete=b.rete and p.codicefiscale =b.cod_fiscale 
        where datagenerazione between @appoDataGenerazioneTrimPrecDa and @appoDataGenerazioneTrimPrecA
        
--select distinct rete, codicefiscale as cod_fiscale
--from appoGESTIONE_PDF_FTP
--where datagenerazione between '20111001' and '20111031'
--and rete + codicefiscale not in (select distinct rete + codicefiscale
--        from appoGESTIONE_PDF_FTP
--        where datagenerazione between '20120101' and '20120131')
--and rete + codicefiscale in (select distinct rete + cod_fiscale
--        from c6martperiodico.patrimonio_bf)        
        
) bf


--31 INDIRIZZO CONTRATTO ESTERO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INDIRIZZO CONTRATTO ESTERO                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
1 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and nazione<> 'italia'
) bf


--32 CC>10000

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC>10000                                         ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
1 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)>10000
) bf


--33 COPERTURA INFERIORE A 100

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'COPERTURA INFERIORE A 100                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
1 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
 from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='complessivo'
and copertura<100
) bf


--34 evoluzione controvalore > 30%

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'EVOLUZIONE CONTROVALORE > 30%                    ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
1 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct corrente.rete, corrente.cod_fiscale 
from
(select b.rete, b.cod_fiscale, sum(controvalore) ctv
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
group by b.rete, b.cod_fiscale) scorsa,
(select rete, cod_fiscale, sum(ctv) ctv
from c6martperiodico.patrimonio_bf
group by rete, cod_fiscale) corrente
where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
and  (case when scorsa.ctv>corrente.ctv
      then (scorsa.ctv-abs(corrente.ctv))
      else (corrente.ctv-abs(scorsa.ctv))
      end)
      >
	 (case when scorsa.ctv>corrente.ctv
      then (0.30*corrente.ctv)
      else (0.30*scorsa.ctv)
      end)
--select distinct corrente.rete, corrente.cod_fiscale
--from
--(select rete, cod_fiscale, sum(controvalore) ctv
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--group by rete, cod_fiscale) scorsa,
--(select rete, cod_fiscale, sum(ctv) ctv
--from c6martperiodico.patrimonio_bf
--group by rete, cod_fiscale) corrente
--where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
--and (0.33*scorsa.ctv>corrente.ctv or 0.33*scorsa.ctv<corrente.ctv)
) bf


--35  Clienti con investimenti in corso nel precedente report 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CLIENTI CON INV IN CORSO NEL PRECEDENTE REPORT   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
1 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct b.rete, b.cod_fiscale
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
where a.investimentiincorso>0

--select distinct rete, cod_fiscale
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--where investimentiincorso>0

) bf


--36  Monitoraggio con cedole/dividendi 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MONITORAGGIO CON CEDOLE/DIVIDENDI                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
1 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.MONITORAGGIO_ATTUALE
where CEDOLE_DIVIDENDI>0 
) bf


-- 37 PARTITE VIAGGIANTI DI DISINVESTIMENTO - 19/1/2016

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI DI DISINVESTIMENTO            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
1 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from C6MartPeriodico.patrimonio_bf a
inner join [C6StampeCentralizzate].[C6MartPeriodico].[TB_Campione] b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where (partvia_disinv <> 0.000 and partvia_disinv is not null)
) bf


--CRITERIO ELIMINATO IN QUANTO DUPLICATO DEL CRITERIO 31
--38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
--select 
--bf.rete, 
--bf.cod_fiscale,
--'Indirizzo Estero' AS DESCRIZIONE,
--0 AS c1,
--0 AS c2,
--0 AS c3,
--0 AS c4,
--0 AS c5,
--0 AS c6,
--0 AS c7,
--0 AS c8,
--0 AS c9,
--0 AS c10,
--0 AS c11,
--0 AS c12,
--0 AS c13,
--0 AS c14,
--0 AS c15,
--0 AS c16,
--0 AS c17,
--0 AS c18,
--0 AS c19,
--0 AS c20,
--0 AS c21,
--0 AS c22,
--0 AS c23,
--0 AS c24,
--0 AS c25,
--0 AS c26,
--0 AS c27,
--0 AS c28,
--0 AS c29,
--0 AS c30,
--0 AS c31,
--0 AS c32,
--0 AS c33,
--0 AS c34,
--0 AS c35,
--0 AS c36,
--0 AS c37,
--1 AS c38,
--0 AS c39,
--0 AS c40,
--0 AS c41,
--0 AS c42,
--0 AS c43,
--0 AS c44,
--0 AS c45,
--0 AS c46,
--0 AS c47,
--0 AS c48,
--0 AS c49,
--0 AS c50,
--0 AS c51,
--0 AS c52,
--0 AS c53,
--0 AS c54,
--0 AS c55,
--0 AS c56,
--0 AS c57,
--0 AS c58
--FROM
--(
--select distinct rete, cod_fiscale 
--from c6martperiodico.contrattosei
--where nazione <> 'italia'
--) bf

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'S', 
--'RSSRNZ49E14A479S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'CSCGPP34A03L050L',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNERSR61L08C351V',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'BGLPRD65E10Z130S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNZNLS71M48C814J',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)


---------------------
--c39

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C39 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
1 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
where data_foto >= @appoDataInizioTrimestre
) bf


--c40

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C40 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
1 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is not null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is not null
) bf


--41
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C41 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
1 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is null

) bf


--c42
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C42 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
1 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is null
) bf



--c43
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C43 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
1 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is not null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is not null
) bf


--C44
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'F' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
1 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
inner join c6stagingperiodico.st_mon 
on a.cod_fiscale = codfis
and a.rete = st_mon.rete
where data_foto > '20111001'
) bf


--C45
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'G' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
1 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto < '20111001'
) bf



--C46
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'H' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
1 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto > '20111001'
) bf


--C47
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'I' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
1 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and dttrim = @appoDataFineTrimestre
and data_foto > '20111001'
) bf


--C48
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'J' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
1 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
/*
(select * from c6stagingperiodico.wseics where dttrim = '20111231') a
inner join
(select * from c6stagingperiodico.wseics where dttrim = '20120331') b
on a.rete = b.rete
and a.codfis = b.codfis
inner join c6martperiodico.monitoraggio_iniziale c
on b.codfis = c.cod_fiscale
and b.rete = c.rete
where
a.codprod not in ('37', 'GP')
and
b.codprod in ('37', 'GP')
and c.data_foto > '20111001'
*/

select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'

) bf


--C49
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'K' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
1 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
--inner join c6stagingperiodico.wseics b
--on b.codfis = b.codfis
--and a.rete = b.rete
--where a.codprod not in ('37', 'GP')
----Se fase di Simulazione:
----		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
----and a.dttrim = '20131130'
----Se fase di Trimestrale:
----		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
--and a.dttrim = @appoDataFineTrimestre
--and b.codprod in ('37', 'GP')
----and b.dttrim = '20111231' -- b.dttrim = dt fine trimestre precedente
--and b.dttrim = @appoDataFineTrimPrec


select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'

) bf

--nuovi-----------------------------------------------------------

--C50
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti OLD' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
1 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 0
) bf

--C51
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Affluent' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
1 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 1
) bf



--C52
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Private' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
1 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 2
) bf


--C53
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Bonus' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
1 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.bonus bon
on vc.rete = bon.rete
and vc.cod_fiscale = bon.cod_fiscale
) bf


--C54
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Scadenze' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
1 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.scadenze sca
on vc.rete = sca.rete
and vc.cod_fiscale = sca.cod_fiscale
) bf

--C55
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Proventi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
1 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.proventi pro
on vc.rete = pro.rete
and vc.cod_fiscale = pro.cod_fiscale
) bf

--C56
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Monitoraggio avviato Trimestre precedente' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
1 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
--where data_foto > C6MartPeriodico.getPreviousTrimestre(getdate(), 1)
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
) bf


--C57
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
1 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where isnull(data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
where isnull(data_foto,getDate()) between @appoDataInizioTrimestre and @appoDataFineTrimestre
) bf


--C58
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
1 AS c58
FROM
(
--select distinct b.rete, b.cod_fiscale as codfis
--from c6martperiodico.monitoraggio_report a
--right join C6MartPeriodico.rp_vcontrattipergenerazionereport b
--on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete is null

select distinct rete, cod_fiscale as codfis 
from c6martperiodico.monitoraggio_iniziale 
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
except
select distinct rete, cod_fiscale as codfis
from c6martperiodico.monitoraggio_report

) bf
---------------------

--drop table C6MARTPERIODICO.SELEZIONECAMPIONE2

truncate table  C6MARTPERIODICO.SELEZIONECAMPIONE2

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
select
v.rete, 
v.cod_fiscale,
sum( C1 ) as C1,
sum( C2 ) as C2,
sum( C3 ) as C3,
sum( C4 ) as C4,
sum( C5 ) as C5,
sum( C6 ) as C6,
sum( C7 ) as C7,
sum( C8 ) as C8,
sum( C9 ) as C9,
sum( C10 ) as C10,
sum( C11) as C11,
sum( C12 ) as C12,
sum( C13 ) as C13,
sum( C14 ) as C14,
sum( C15 ) as C15,
sum( C16 ) as C16,
sum( C17 ) as C17,
sum( C18 ) as C18,
sum( C19 ) as C19,
sum( C20 ) as C20,
sum( C21 ) as C21,
sum( C22 ) as C22,
sum( C23) as C23,
sum( C24 ) as C24,
sum( C25 ) as C25,
sum( C26) as C26,
sum( C27 ) as C27,
sum( C28) as C28,
sum( C29 ) as C29,
sum( C30 ) as C30,
sum(C31) AS C31,
SUM(C32) AS C32,
SUM(C33) AS C33,
SUM(C34) AS C34,
SUM(C35) AS C35,
SUM(C36) AS C36,
SUM(C37) AS C37,
SUM(C38) AS C38,
SUM(C39) AS C39,
SUM(C40) AS C40,
SUM(C41) AS C41,
SUM(C42) AS C42,
SUM(C43) AS C43,
SUM(C44) AS C44,
SUM(C45) AS C45,
SUM(C46) AS C46,
SUM(C47) AS C47,
SUM(C48) AS C48,
SUM(C49) AS C49,

SUM(C50) AS C50,
SUM(C51) AS C51,
SUM(C52) AS C52,
SUM(C53) AS C53,
SUM(C54) AS C54,
SUM(C55) AS C55,
SUM(C56) AS C56,
SUM(C57) AS C57,
SUM(C58) AS C58

--INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
FROM
C6MARTPERIODICO.SELEZIONECAMPIONE sc join C6MartPeriodico.rp_vcontrattipergenerazionereport v  
on sc.rete=v.rete and sc.cod_fiscale=v.cod_fiscale
group by
v.rete,
v.cod_fiscale

END



--SELECT * FROM C6MARTPERIODICO.SELEZIONECAMPIONE2

















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20161012]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20161012]

AS
BEGIN
--procedura di caricamento campione

DECLARE @appoDataInizioTrimestre varchar(8)
SET @appoDataInizioTrimestre = '20160701'
--SET @appoDataInizioTrimestre = '20160401'
--SET @appoDataInizioTrimestre = '20160101'
--SET @appoDataInizioTrimestre = '20151001'
--SET @appoDataInizioTrimestre = '20150701'

DECLARE @appoDataFineTrimestre varchar(8)
SET @appoDataFineTrimestre = '20160930'
--SET @appoDataFineTrimestre = '20160630'
--SET @appoDataFineTrimestre = '20160331'
--SET @appoDataFineTrimestre = '20151231'
--SET @appoDataFineTrimestre = '20150930'

DECLARE @appoDataInizioTrimPrec varchar(8)
SET @appoDataInizioTrimPrec = '20160401'
--SET @appoDataInizioTrimPrec = '20160101'
--SET @appoDataInizioTrimPrec = '20151001'
--SET @appoDataInizioTrimPrec = '20150701'
--SET @appoDataInizioTrimPrec = '20150401'

DECLARE @appoDataFineTrimPrec varchar(8)
SET @appoDataFineTrimPrec = '20160630'
--SET @appoDataFineTrimPrec = '20160331'
--SET @appoDataFineTrimPrec = '20151231'
--SET @appoDataFineTrimPrec = '20150930'
--SET @appoDataFineTrimPrec = '20150630'

-- QUI VA SPECIFICATO IL PERIODO DI EFFETTIVA GENERAZIONE DEI REPORT CHE, IN GENERE, E' IL MESE SUCCESSIVO
-- A QUELLO DI FINE TRIMESTRE
DECLARE @appoDataGenerazioneTrimPrecDa varchar(8)
SET @appoDataGenerazioneTrimPrecDa = '20160701'
--SET @appoDataGenerazioneTrimPrecDa = '20160401'
--SET @appoDataGenerazioneTrimPrecDa = '20160101'
--SET @appoDataGenerazioneTrimPrecDa = '20151001'
--SET @appoDataGenerazioneTrimPrecDa = '20150701'

DECLARE @appoDataGenerazioneTrimPrecA varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20160731'
--SET @appoDataGenerazioneTrimPrecA = '20160430'
--SET @appoDataGenerazioneTrimPrecA = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecA = '20151031'
--SET @appoDataGenerazioneTrimPrecA = '20150731'

DECLARE @appoDataGenerazioneTrimPrecX2Da varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20160401'
--SET @appoDataGenerazioneTrimPrecA = '20160101'
--SET @appoDataGenerazioneTrimPrecX2Da = '20151001'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150701'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150401'

DECLARE @appoDataGenerazioneTrimPrecX2A varchar(8)
SET @appoDataGenerazioneTrimPrecX2A = '20160430'
--SET @appoDataGenerazioneTrimPrecX2A = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecX2A = '20151031'
--SET @appoDataGenerazioneTrimPrecX2A = '20150731'
--SET @appoDataGenerazioneTrimPrecX2A = '20150430'


TRUNCATE TABLE C6MARTPERIODICO.SELEZIONECAMPIONE
--select * into c6martperiodico.appo_selezione_campione from  C6MARTPERIODICO.SELEZIONECAMPIONE
--0 tutta la popolazione


INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
select distinct bf.cod_fiscale, bf.rete
from
C6MartPeriodico.rp_vcontrattipergenerazionereport bf
) bf


--1  UNA MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'UNA MACRO ASSET                                  ' AS DESCRIZIONE,
1 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 1 "ASSET CLASS" anzichè 1 "MACRO ASSET CLASS"
--select distinct bf.cod_fiscale, bf.rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=1
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=1
) bf


--2 TUTTE LE MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select  
bf.rete, 
bf.cod_fiscale,
'TUTTE LE MACRO ASSET                             ' AS DESCRIZIONE,
0 AS c1,
1 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 7 "ASSET CLASS" anzichè 7 "MACRO ASSET CLASS"
--select distinct cod_fiscale, rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=7
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=7
) bf


--3 TUTTE LE AREE SONO MONITORATE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis as cod_fiscale,
'TUTTE LE AREE SONO MONITORATE                    ' AS DESCRIZIONE,

0 AS c1,
0 AS c2,
1 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, count(distinct codarea) c
from C6StagingPeriodico.TANAB
where dtfine='99991231'
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=4
)bf


--4 SENZA PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'SENZA PATRIMONIO TERZI                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
1 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


--5 RISCHIO CREDITO NA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO N.A.                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
1 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk is null
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 6 CLASSE DI RISCHIO CREDITO > 3 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO > 3                              ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
1 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>3
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 7 PRODOTTO SENZA RENDIMENTO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PRODOTTO SENZA RENDIMENTO                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
1 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as cod_fiscale
from C6StagingPeriodico.TSCABP
) bf


-- 8 piu trimestrali

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PIU TRIMESTRALI                                  ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
1 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, codicefiscale AS COD_FISCALE, count(*)N
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where tiporeport='M'
and dataGenerazione > @appoDataGenerazioneTrimPrecX2Da
group by rete, codicefiscale
having count(*)>1
) bf


-- 9 PATRIMONIO TERZI SU PIU' INTERMEDIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI SU PIU'' INTERMEDIARI           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
1 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, count(distinct a.intermediario) M
from C6MartPeriodico.PATRIMONIO_TERZI a
group by a.rete, a.cod_fiscale
having count(distinct a.intermediario)>1
) bf


-- 10 PERSONE GIURIDICHE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PERSONE GIURIDICHE                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
1 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where len(cod_fiscale)=11
) bf


-- 11 PB TERMINATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PB TERMINATI                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
1 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct bf.rete, bf.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF bf, C6Mart.CONTRATTOSEI c6,C6Stagingperiodico.ADS4WS_PROMOTORI pr
--where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
--and c6.cod_agente=pr.codice and pr.rete=c6.rete
--and stato= 'T'
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6,C6Stagingperiodico.RP_anagrafica_promotori pr
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and c6.cod_agente=pr.codage and pr.rete=c6.rete
and stato= 'T'
) bf


-- 12 PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
1 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_TERZI a
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


-- 13 PATR NON RAPPR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR NON RAPPR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
1 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale
from C6MartPeriodico.vPatrimonioNonRappresentabileAsset
) bf


-- 14 PATR IMMOBILIARE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR IMMOB                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
1 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, sum(a.VALORE_STIMATO) M
from C6MartPeriodico.PATRIMONIO_IMMOBILIARE a 
group by a.rete, a.cod_fiscale
) bf


-- 15 PARTITE VIAGGIANTI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
1 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PARTITE_VIAGGIANTI) bf


--16 NON MONITORATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON MONITORATI                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
1 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.patrimonio_bf bf
where bf.rete + bf.cod_fiscale not in ( select distinct rete + case when len(codfis) =4 then 'FF@'+codfis else codfis end from C6StagingPeriodico.TANAB where dtfine='99991231')
) bf


-- 17 NO PATR IMMOB

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON PATR IMMOB                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
1 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from  C6MartPeriodico.PATRIMONIO_bf 
where cod_fiscale + rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.patrimonio_immobiliare)

) bf


-- 18 MON SU UNA SOLA AREA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON SU UNA SOLA AREA                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
1 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE, count(distinct codarea) H
from C6StagingPeriodico.TANAB
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=1

) bf


-- 19 MON DA PIU DI 12 MESI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MON DA PIU DI 12 MESI                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
1 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct  rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_FISCALE
from C6StagingPeriodico.TANAB
--where ('20101201'-dtrif)/30>12
where dtrif < convert(varchar(8), DATEADD(year, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112)
) bf


-- 20 MON APPENA AVVIATO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON APPENA AVVIATO                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
1 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE
from  C6StagingPeriodico.TANAB
--where '20101201'-GETDATE()<1
where (dtrif > convert(varchar(8), DATEADD(day, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112))
) bf


-- 21 MANDATI FIDUCIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MANDATI FIDUCIARI                                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
1 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where cod_fiscale like 'FF@%'
) bf


-- 22 INADEGUATI VAR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI VAR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
1 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.var_perc_ptf>cod.max_var
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 23 INADEGUATI CRISK

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI CRISK                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
1 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_CREDITRISK cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>mifid.profilo_ass
and a.cod_aggreg='COMPLESSIVO'
) bf

 
-- 24 INADEGUATI COMPLESSITA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI COMPLESSITA                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
1 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
-- EN2060408: begin - adapted to new feature "Adeguatezza" comnplexity / concentration
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF a, C6MartPeriodico.MIFID mifid
--where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
--and mifid.experience<(select max(complex) from C6MartPeriodico.PATRIMONIO_BF where rete=mifid.rete and cod_fiscale=mifid.cod_fiscale)
SELECT top 500 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 200 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
) bf
-- EN2060408: end


-- 25 DIVERSIFICAZIONE < 30

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'DIVERSIFICAZIONE < 30                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
1 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(

select rete, cod_fiscale, beneficio
from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='COMPLESSIVO'
and beneficio<30

) bf

 
-- 26 CC NEG E POS 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEG E POS                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
1 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0 
) bf


-- 27 CC NEG

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEGATIVO                                      ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
1 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale, sum(saldocontabile) M
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)<0
) bf
where rete+cod_fiscale not in 
(
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0
)


-- 28 REND NON RAPPR COME UNICA POSIZIONE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'REND NON RAPPR COME UNICA POSIZIONE IN AREA MONIT' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
1 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
SELECT
DISTINCT T.RETE, T.COD_FISCALE FROM
(
SELECT
RETE, COD_FISCALE , ID_AREA, SUM(CASE WHEN REND_NON_RAPPR =1 THEN 0 ELSE 1 END) TOT 
FROM
C6MARTPERIODICO
.PATRIMONIO_BF B 
GROUP
BY 
RETE
, COD_FISCALE, ID_AREA 
)
T, 
(
SELECT
RETE, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, CASE WHEN CODAREA ='EXR' THEN 'EXT'ELSE CODAREA END AS CODAREA FROM
C6STAGINGPERIODICO
.TANAB 
WHERE
DTFINE = 99991231 
)
B 
WHERE
T
.RETE=B.RETE AND B.CODFIS=T.COD_FISCALE 
AND
ID_AREA=CODAREA 
AND
TOT=0

) bf


-- 29 PREVIDENZA 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PREVIDENZA                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
1 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF
where id_area like '%Pre%'
) bf


--30 RESTART CONTRATTOSEI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RESTART CONTRATTOSEI                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
1 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, codicefiscale as cod_fiscale
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where datagenerazione between @appoDataGenerazioneTrimPrecX2Da and @appoDataGenerazioneTrimPrecX2A
except 
select distinct p.rete,p.codicefiscale
     from C6StoricoPeriodico.GESTIONE_PDF_FTP p
     inner join c6martperiodico.patrimonio_bf b
     on p.rete=b.rete and p.codicefiscale =b.cod_fiscale 
        where datagenerazione between @appoDataGenerazioneTrimPrecDa and @appoDataGenerazioneTrimPrecA
        
--select distinct rete, codicefiscale as cod_fiscale
--from appoGESTIONE_PDF_FTP
--where datagenerazione between '20111001' and '20111031'
--and rete + codicefiscale not in (select distinct rete + codicefiscale
--        from appoGESTIONE_PDF_FTP
--        where datagenerazione between '20120101' and '20120131')
--and rete + codicefiscale in (select distinct rete + cod_fiscale
--        from c6martperiodico.patrimonio_bf)        
        
) bf


--31 INDIRIZZO CONTRATTO ESTERO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INDIRIZZO CONTRATTO ESTERO                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
1 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and nazione<> 'italia'
) bf


--32 CC>10000

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC>10000                                         ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
1 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)>10000
) bf


--33 COPERTURA INFERIORE A 100

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'COPERTURA INFERIORE A 100                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
1 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
 from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='complessivo'
and copertura<100
) bf


--34 evoluzione controvalore > 30%

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'EVOLUZIONE CONTROVALORE > 30%                    ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
1 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct corrente.rete, corrente.cod_fiscale 
from
(select b.rete, b.cod_fiscale, sum(controvalore) ctv
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
group by b.rete, b.cod_fiscale) scorsa,
(select rete, cod_fiscale, sum(ctv) ctv
from c6martperiodico.patrimonio_bf
group by rete, cod_fiscale) corrente
where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
and  (case when scorsa.ctv>corrente.ctv
      then (scorsa.ctv-abs(corrente.ctv))
      else (corrente.ctv-abs(scorsa.ctv))
      end)
      >
	 (case when scorsa.ctv>corrente.ctv
      then (0.30*corrente.ctv)
      else (0.30*scorsa.ctv)
      end)
--select distinct corrente.rete, corrente.cod_fiscale
--from
--(select rete, cod_fiscale, sum(controvalore) ctv
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--group by rete, cod_fiscale) scorsa,
--(select rete, cod_fiscale, sum(ctv) ctv
--from c6martperiodico.patrimonio_bf
--group by rete, cod_fiscale) corrente
--where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
--and (0.33*scorsa.ctv>corrente.ctv or 0.33*scorsa.ctv<corrente.ctv)
) bf


--35  Clienti con investimenti in corso nel precedente report 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CLIENTI CON INV IN CORSO NEL PRECEDENTE REPORT   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
1 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct b.rete, b.cod_fiscale
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
where a.investimentiincorso>0

--select distinct rete, cod_fiscale
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--where investimentiincorso>0

) bf


--36  Monitoraggio con cedole/dividendi 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MONITORAGGIO CON CEDOLE/DIVIDENDI                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
1 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.MONITORAGGIO_ATTUALE
where CEDOLE_DIVIDENDI>0 
) bf


-- 37 PARTITE VIAGGIANTI DI DISINVESTIMENTO - 19/1/2016

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI DI DISINVESTIMENTO            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
1 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from C6MartPeriodico.patrimonio_bf a
inner join [C6StampeCentralizzate].[C6MartPeriodico].[TB_Campione] b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where (partvia_disinv <> 0.000 and partvia_disinv is not null)
) bf


--CRITERIO ELIMINATO IN QUANTO DUPLICATO DEL CRITERIO 31
--38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
--select 
--bf.rete, 
--bf.cod_fiscale,
--'Indirizzo Estero' AS DESCRIZIONE,
--0 AS c1,
--0 AS c2,
--0 AS c3,
--0 AS c4,
--0 AS c5,
--0 AS c6,
--0 AS c7,
--0 AS c8,
--0 AS c9,
--0 AS c10,
--0 AS c11,
--0 AS c12,
--0 AS c13,
--0 AS c14,
--0 AS c15,
--0 AS c16,
--0 AS c17,
--0 AS c18,
--0 AS c19,
--0 AS c20,
--0 AS c21,
--0 AS c22,
--0 AS c23,
--0 AS c24,
--0 AS c25,
--0 AS c26,
--0 AS c27,
--0 AS c28,
--0 AS c29,
--0 AS c30,
--0 AS c31,
--0 AS c32,
--0 AS c33,
--0 AS c34,
--0 AS c35,
--0 AS c36,
--0 AS c37,
--1 AS c38,
--0 AS c39,
--0 AS c40,
--0 AS c41,
--0 AS c42,
--0 AS c43,
--0 AS c44,
--0 AS c45,
--0 AS c46,
--0 AS c47,
--0 AS c48,
--0 AS c49,
--0 AS c50,
--0 AS c51,
--0 AS c52,
--0 AS c53,
--0 AS c54,
--0 AS c55,
--0 AS c56,
--0 AS c57,
--0 AS c58
--FROM
--(
--select distinct rete, cod_fiscale 
--from c6martperiodico.contrattosei
--where nazione <> 'italia'
--) bf

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'S', 
--'RSSRNZ49E14A479S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'CSCGPP34A03L050L',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNERSR61L08C351V',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'BGLPRD65E10Z130S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNZNLS71M48C814J',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)


---------------------
--c39

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C39 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
1 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
where data_foto >= @appoDataInizioTrimestre
) bf


--c40

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C40 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
1 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is not null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is not null
) bf


--41
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C41 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
1 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is null

) bf


--c42
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C42 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
1 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is null
) bf



--c43
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C43 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
1 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is not null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is not null
) bf


--C44
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'F' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
1 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
inner join c6stagingperiodico.st_mon 
on a.cod_fiscale = codfis
and a.rete = st_mon.rete
where data_foto > '20111001'
) bf


--C45
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'G' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
1 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto < '20111001'
) bf



--C46
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'H' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
1 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto > '20111001'
) bf


--C47
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'I' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
1 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and dttrim = @appoDataFineTrimestre
and data_foto > '20111001'
) bf


--C48
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'J' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
1 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
/*
(select * from c6stagingperiodico.wseics where dttrim = '20111231') a
inner join
(select * from c6stagingperiodico.wseics where dttrim = '20120331') b
on a.rete = b.rete
and a.codfis = b.codfis
inner join c6martperiodico.monitoraggio_iniziale c
on b.codfis = c.cod_fiscale
and b.rete = c.rete
where
a.codprod not in ('37', 'GP')
and
b.codprod in ('37', 'GP')
and c.data_foto > '20111001'
*/

select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'

) bf


--C49
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'K' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
1 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
--inner join c6stagingperiodico.wseics b
--on b.codfis = b.codfis
--and a.rete = b.rete
--where a.codprod not in ('37', 'GP')
----Se fase di Simulazione:
----		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
----and a.dttrim = '20131130'
----Se fase di Trimestrale:
----		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
--and a.dttrim = @appoDataFineTrimestre
--and b.codprod in ('37', 'GP')
----and b.dttrim = '20111231' -- b.dttrim = dt fine trimestre precedente
--and b.dttrim = @appoDataFineTrimPrec


select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'

) bf

--nuovi-----------------------------------------------------------

--C50
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti OLD' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
1 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 0
) bf

--C51
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Affluent' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
1 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 1
) bf



--C52
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Private' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
1 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 2
) bf


--C53
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Bonus' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
1 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.bonus bon
on vc.rete = bon.rete
and vc.cod_fiscale = bon.cod_fiscale
) bf


--C54
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Scadenze' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
1 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.scadenze sca
on vc.rete = sca.rete
and vc.cod_fiscale = sca.cod_fiscale
) bf

--C55
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Proventi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
1 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.proventi pro
on vc.rete = pro.rete
and vc.cod_fiscale = pro.cod_fiscale
) bf

--C56
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Monitoraggio avviato Trimestre precedente' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
1 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
--where data_foto > C6MartPeriodico.getPreviousTrimestre(getdate(), 1)
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
) bf


--C57
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
1 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where isnull(data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
where isnull(data_foto,getDate()) between @appoDataInizioTrimestre and @appoDataFineTrimestre
) bf


--C58
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
1 AS c58
FROM
(
--select distinct b.rete, b.cod_fiscale as codfis
--from c6martperiodico.monitoraggio_report a
--right join C6MartPeriodico.rp_vcontrattipergenerazionereport b
--on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete is null

select distinct rete, cod_fiscale as codfis 
from c6martperiodico.monitoraggio_iniziale 
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
except
select distinct rete, cod_fiscale as codfis
from c6martperiodico.monitoraggio_report

) bf
---------------------

--drop table C6MARTPERIODICO.SELEZIONECAMPIONE2

truncate table  C6MARTPERIODICO.SELEZIONECAMPIONE2

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
select
v.rete, 
v.cod_fiscale,
sum( C1 ) as C1,
sum( C2 ) as C2,
sum( C3 ) as C3,
sum( C4 ) as C4,
sum( C5 ) as C5,
sum( C6 ) as C6,
sum( C7 ) as C7,
sum( C8 ) as C8,
sum( C9 ) as C9,
sum( C10 ) as C10,
sum( C11) as C11,
sum( C12 ) as C12,
sum( C13 ) as C13,
sum( C14 ) as C14,
sum( C15 ) as C15,
sum( C16 ) as C16,
sum( C17 ) as C17,
sum( C18 ) as C18,
sum( C19 ) as C19,
sum( C20 ) as C20,
sum( C21 ) as C21,
sum( C22 ) as C22,
sum( C23) as C23,
sum( C24 ) as C24,
sum( C25 ) as C25,
sum( C26) as C26,
sum( C27 ) as C27,
sum( C28) as C28,
sum( C29 ) as C29,
sum( C30 ) as C30,
sum(C31) AS C31,
SUM(C32) AS C32,
SUM(C33) AS C33,
SUM(C34) AS C34,
SUM(C35) AS C35,
SUM(C36) AS C36,
SUM(C37) AS C37,
SUM(C38) AS C38,
SUM(C39) AS C39,
SUM(C40) AS C40,
SUM(C41) AS C41,
SUM(C42) AS C42,
SUM(C43) AS C43,
SUM(C44) AS C44,
SUM(C45) AS C45,
SUM(C46) AS C46,
SUM(C47) AS C47,
SUM(C48) AS C48,
SUM(C49) AS C49,

SUM(C50) AS C50,
SUM(C51) AS C51,
SUM(C52) AS C52,
SUM(C53) AS C53,
SUM(C54) AS C54,
SUM(C55) AS C55,
SUM(C56) AS C56,
SUM(C57) AS C57,
SUM(C58) AS C58

--INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
FROM
C6MARTPERIODICO.SELEZIONECAMPIONE sc join C6MartPeriodico.rp_vcontrattipergenerazionereport v  
on sc.rete=v.rete and sc.cod_fiscale=v.cod_fiscale
group by
v.rete,
v.cod_fiscale

END



--SELECT * FROM C6MARTPERIODICO.SELEZIONECAMPIONE2



















GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20180711_preExcludedList]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20180711_preExcludedList]

AS
BEGIN
--procedura di caricamento campione

DECLARE @appoDataInizioTrimestre varchar(8)
SET @appoDataInizioTrimestre = '20180701'

--SET @appoDataInizioTrimestre = '20180401'
--SET @appoDataInizioTrimestre = '20180101'
--SET @appoDataInizioTrimestre = '20171001'
--SET @appoDataInizioTrimestre = '20170701'
--SET @appoDataInizioTrimestre = '20170401'
--SET @appoDataInizioTrimestre = '20170101'
--SET @appoDataInizioTrimestre = '20161001'
--SET @appoDataInizioTrimestre = '20160701'
--SET @appoDataInizioTrimestre = '20160401'
--SET @appoDataInizioTrimestre = '20160101'
--SET @appoDataInizioTrimestre = '20151001'
--SET @appoDataInizioTrimestre = '20150701'

DECLARE @appoDataFineTrimestre varchar(8)
SET @appoDataFineTrimestre = '20180630'

--SET @appoDataFineTrimestre = '20180331'
--SET @appoDataFineTrimestre = '20171231'
--SET @appoDataFineTrimestre = '20170930'
--SET @appoDataFineTrimestre = '20170630'
--SET @appoDataFineTrimestre = '20170331'
--SET @appoDataFineTrimestre = '20161231'
--SET @appoDataFineTrimestre = '20160930'
--SET @appoDataFineTrimestre = '20160630'
--SET @appoDataFineTrimestre = '20160331'
--SET @appoDataFineTrimestre = '20151231'
--SET @appoDataFineTrimestre = '20150930'

DECLARE @appoDataInizioTrimPrec varchar(8)
SET @appoDataInizioTrimPrec = '20180401'

--SET @appoDataInizioTrimPrec = '20180101'
--SET @appoDataInizioTrimPrec = '20171001'
--SET @appoDataInizioTrimPrec = '20170701'
--SET @appoDataInizioTrimPrec = '20170401'
--SET @appoDataInizioTrimPrec = '20170101'
--SET @appoDataInizioTrimPrec = '20161001'
--SET @appoDataInizioTrimPrec = '20160701'
--SET @appoDataInizioTrimPrec = '20160401'
--SET @appoDataInizioTrimPrec = '20160101'
--SET @appoDataInizioTrimPrec = '20151001'
--SET @appoDataInizioTrimPrec = '20150701'
--SET @appoDataInizioTrimPrec = '20150401'

DECLARE @appoDataFineTrimPrec varchar(8)
SET @appoDataFineTrimPrec = '20180331'

--SET @appoDataFineTrimPrec = '20171231'
--SET @appoDataFineTrimPrec = '20170930'
--SET @appoDataFineTrimPrec = '20170630'
--SET @appoDataFineTrimPrec = '20170331'
--SET @appoDataFineTrimPrec = '20161231'
--SET @appoDataFineTrimPrec = '20160930'
--SET @appoDataFineTrimPrec = '20160630'
--SET @appoDataFineTrimPrec = '20160331'
--SET @appoDataFineTrimPrec = '20151231'
--SET @appoDataFineTrimPrec = '20150930'
--SET @appoDataFineTrimPrec = '20150630'

-- QUI VA SPECIFICATO IL PERIODO DI EFFETTIVA GENERAZIONE DEI REPORT CHE, IN GENERE, E' IL MESE SUCCESSIVO
-- A QUELLO DI FINE TRIMESTRE
DECLARE @appoDataGenerazioneTrimPrecDa varchar(8)
SET @appoDataGenerazioneTrimPrecDa = '20180401'

--SET @appoDataGenerazioneTrimPrecDa = '20180101'
--SET @appoDataGenerazioneTrimPrecDa = '20171001'
--SET @appoDataGenerazioneTrimPrecDa = '20170701'
--SET @appoDataGenerazioneTrimPrecDa = '20170401'
--SET @appoDataGenerazioneTrimPrecDa = '20170101'
--SET @appoDataGenerazioneTrimPrecDa = '20161001'
--SET @appoDataGenerazioneTrimPrecDa = '20160701'
--SET @appoDataGenerazioneTrimPrecDa = '20160401'
--SET @appoDataGenerazioneTrimPrecDa = '20160101'
--SET @appoDataGenerazioneTrimPrecDa = '20151001'
--SET @appoDataGenerazioneTrimPrecDa = '20150701'

DECLARE @appoDataGenerazioneTrimPrecA varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20180430'

--SET @appoDataGenerazioneTrimPrecA = '20180131'
--SET @appoDataGenerazioneTrimPrecA = '20171031'
--SET @appoDataGenerazioneTrimPrecA = '20170731'
--SET @appoDataGenerazioneTrimPrecA = '20170430'
--SET @appoDataGenerazioneTrimPrecA = '20170131'
--SET @appoDataGenerazioneTrimPrecA = '20161031'
--SET @appoDataGenerazioneTrimPrecA = '20160731'
--SET @appoDataGenerazioneTrimPrecA = '20160430'
--SET @appoDataGenerazioneTrimPrecA = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecA = '20151031'
--SET @appoDataGenerazioneTrimPrecA = '20150731'

DECLARE @appoDataGenerazioneTrimPrecX2Da varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20180101'

--SET @appoDataGenerazioneTrimPrecA = '20171001'
--SET @appoDataGenerazioneTrimPrecA = '20170701'
--SET @appoDataGenerazioneTrimPrecA = '20170401'
--SET @appoDataGenerazioneTrimPrecA = '20170101'
--SET @appoDataGenerazioneTrimPrecA = '20161001'
--SET @appoDataGenerazioneTrimPrecA = '20160701'
--SET @appoDataGenerazioneTrimPrecA = '20160401'
--SET @appoDataGenerazioneTrimPrecA = '20160101'
--SET @appoDataGenerazioneTrimPrecX2Da = '20151001'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150701'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150401'

DECLARE @appoDataGenerazioneTrimPrecX2A varchar(8)
SET @appoDataGenerazioneTrimPrecX2A = '20180131'

--SET @appoDataGenerazioneTrimPrecX2A = '20171031'
--SET @appoDataGenerazioneTrimPrecX2A = '20170731'
--SET @appoDataGenerazioneTrimPrecX2A = '20170430'
--SET @appoDataGenerazioneTrimPrecX2A = '20170131'
--SET @appoDataGenerazioneTrimPrecX2A = '20161031'
--SET @appoDataGenerazioneTrimPrecX2A = '20160731'
--SET @appoDataGenerazioneTrimPrecX2A = '20160430'
--SET @appoDataGenerazioneTrimPrecX2A = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecX2A = '20151031'
--SET @appoDataGenerazioneTrimPrecX2A = '20150731'
--SET @appoDataGenerazioneTrimPrecX2A = '20150430'


TRUNCATE TABLE C6MARTPERIODICO.SELEZIONECAMPIONE
--select * into c6martperiodico.appo_selezione_campione from  C6MARTPERIODICO.SELEZIONECAMPIONE
--0 tutta la popolazione


INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
select distinct bf.cod_fiscale, bf.rete
from
C6MartPeriodico.rp_vcontrattipergenerazionereport bf
) bf


--1  UNA MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'UNA MACRO ASSET                                  ' AS DESCRIZIONE,
1 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 1 "ASSET CLASS" anzichè 1 "MACRO ASSET CLASS"
--select distinct bf.cod_fiscale, bf.rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=1
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=1
) bf


--2 TUTTE LE MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select  
bf.rete, 
bf.cod_fiscale,
'TUTTE LE MACRO ASSET                             ' AS DESCRIZIONE,
0 AS c1,
1 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 7 "ASSET CLASS" anzichè 7 "MACRO ASSET CLASS"
--select distinct cod_fiscale, rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=7
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=7
) bf


--3 TUTTE LE AREE SONO MONITORATE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis as cod_fiscale,
'TUTTE LE AREE SONO MONITORATE                    ' AS DESCRIZIONE,

0 AS c1,
0 AS c2,
1 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, count(distinct codarea) c
from C6StagingPeriodico.TANAB
where dtfine='99991231'
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=4
)bf


--4 SENZA PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'SENZA PATRIMONIO TERZI                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
1 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


--5 RISCHIO CREDITO NA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO N.A.                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
1 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk is null
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 6 CLASSE DI RISCHIO CREDITO > 3 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO > 3                              ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
1 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>3
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 7 PRODOTTO SENZA RENDIMENTO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PRODOTTO SENZA RENDIMENTO                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
1 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as cod_fiscale
from C6StagingPeriodico.TSCABP
) bf


-- 8 piu trimestrali

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PIU TRIMESTRALI                                  ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
1 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, codicefiscale AS COD_FISCALE, count(*)N
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where tiporeport='M'
and dataGenerazione > @appoDataGenerazioneTrimPrecX2Da
group by rete, codicefiscale
having count(*)>1
) bf


-- 9 PATRIMONIO TERZI SU PIU' INTERMEDIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI SU PIU'' INTERMEDIARI           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
1 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, count(distinct a.intermediario) M
from C6MartPeriodico.PATRIMONIO_TERZI a
group by a.rete, a.cod_fiscale
having count(distinct a.intermediario)>1
) bf


-- 10 PERSONE GIURIDICHE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PERSONE GIURIDICHE                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
1 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where len(cod_fiscale)=11
) bf


-- 11 PB TERMINATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PB TERMINATI                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
1 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct bf.rete, bf.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF bf, C6Mart.CONTRATTOSEI c6,C6Stagingperiodico.ADS4WS_PROMOTORI pr
--where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
--and c6.cod_agente=pr.codice and pr.rete=c6.rete
--and stato= 'T'
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6,C6Stagingperiodico.RP_anagrafica_promotori pr
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and c6.cod_agente=pr.codage and pr.rete=c6.rete
and stato= 'T'
) bf


-- 12 PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
1 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_TERZI a
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


-- 13 PATR NON RAPPR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR NON RAPPR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
1 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale
from C6MartPeriodico.vPatrimonioNonRappresentabileAsset
) bf


-- 14 PATR IMMOBILIARE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR IMMOB                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
1 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, sum(a.VALORE_STIMATO) M
from C6MartPeriodico.PATRIMONIO_IMMOBILIARE a 
group by a.rete, a.cod_fiscale
) bf


-- 15 PARTITE VIAGGIANTI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
1 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PARTITE_VIAGGIANTI) bf


--16 NON MONITORATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON MONITORATI                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
1 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.patrimonio_bf bf
where bf.rete + bf.cod_fiscale not in ( select distinct rete + case when len(codfis) =4 then 'FF@'+codfis else codfis end from C6StagingPeriodico.TANAB where dtfine='99991231')
) bf


-- 17 NO PATR IMMOB

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON PATR IMMOB                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
1 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from  C6MartPeriodico.PATRIMONIO_bf 
where cod_fiscale + rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.patrimonio_immobiliare)

) bf


-- 18 MON SU UNA SOLA AREA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON SU UNA SOLA AREA                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
1 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE, count(distinct codarea) H
from C6StagingPeriodico.TANAB
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=1

) bf


-- 19 MON DA PIU DI 12 MESI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MON DA PIU DI 12 MESI                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
1 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct  rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_FISCALE
from C6StagingPeriodico.TANAB
--where ('20101201'-dtrif)/30>12
where dtrif < convert(varchar(8), DATEADD(year, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112)
) bf


-- 20 MON APPENA AVVIATO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON APPENA AVVIATO                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
1 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE
from  C6StagingPeriodico.TANAB
--where '20101201'-GETDATE()<1
where (dtrif > convert(varchar(8), DATEADD(day, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112))
) bf


-- 21 MANDATI FIDUCIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MANDATI FIDUCIARI                                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
1 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where cod_fiscale like 'FF@%'
) bf


-- 22 INADEGUATI VAR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI VAR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
1 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.var_perc_ptf>cod.max_var
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 23 INADEGUATI CRISK

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI CRISK                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
1 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_CREDITRISK cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>mifid.profilo_ass
and a.cod_aggreg='COMPLESSIVO'
) bf

 
-- 24 INADEGUATI COMPLESSITA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI COMPLESSITA                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
1 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
-- EN2060408: begin - adapted to new feature "Adeguatezza" comnplexity / concentration
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF a, C6MartPeriodico.MIFID mifid
--where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
--and mifid.experience<(select max(complex) from C6MartPeriodico.PATRIMONIO_BF where rete=mifid.rete and cod_fiscale=mifid.cod_fiscale)
SELECT top 500 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 200 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
) bf
-- EN2060408: end


-- 25 DIVERSIFICAZIONE < 30

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'DIVERSIFICAZIONE < 30                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
1 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(

select rete, cod_fiscale, beneficio
from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='COMPLESSIVO'
and beneficio<30

) bf

 
-- 26 CC NEG E POS 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEG E POS                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
1 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0 
) bf


-- 27 CC NEG

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEGATIVO                                      ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
1 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale, sum(saldocontabile) M
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)<0
) bf
where rete+cod_fiscale not in 
(
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0
)


-- 28 REND NON RAPPR COME UNICA POSIZIONE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'REND NON RAPPR COME UNICA POSIZIONE IN AREA MONIT' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
1 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
SELECT
DISTINCT T.RETE, T.COD_FISCALE FROM
(
SELECT
RETE, COD_FISCALE , ID_AREA, SUM(CASE WHEN REND_NON_RAPPR =1 THEN 0 ELSE 1 END) TOT 
FROM
C6MARTPERIODICO
.PATRIMONIO_BF B 
GROUP
BY 
RETE
, COD_FISCALE, ID_AREA 
)
T, 
(
SELECT
RETE, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, CASE WHEN CODAREA ='EXR' THEN 'EXT'ELSE CODAREA END AS CODAREA FROM
C6STAGINGPERIODICO
.TANAB 
WHERE
DTFINE = 99991231 
)
B 
WHERE
T
.RETE=B.RETE AND B.CODFIS=T.COD_FISCALE 
AND
ID_AREA=CODAREA 
AND
TOT=0

) bf


-- 29 PREVIDENZA 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PREVIDENZA                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
1 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF
where id_area like '%Pre%'
) bf


--30 RESTART CONTRATTOSEI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RESTART CONTRATTOSEI                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
1 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, codicefiscale as cod_fiscale
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where datagenerazione between @appoDataGenerazioneTrimPrecX2Da and @appoDataGenerazioneTrimPrecX2A
except 
select distinct p.rete,p.codicefiscale
     from C6StoricoPeriodico.GESTIONE_PDF_FTP p
     inner join c6martperiodico.patrimonio_bf b
     on p.rete=b.rete and p.codicefiscale =b.cod_fiscale 
        where datagenerazione between @appoDataGenerazioneTrimPrecDa and @appoDataGenerazioneTrimPrecA
        
--select distinct rete, codicefiscale as cod_fiscale
--from appoGESTIONE_PDF_FTP
--where datagenerazione between '20111001' and '20111031'
--and rete + codicefiscale not in (select distinct rete + codicefiscale
--        from appoGESTIONE_PDF_FTP
--        where datagenerazione between '20120101' and '20120131')
--and rete + codicefiscale in (select distinct rete + cod_fiscale
--        from c6martperiodico.patrimonio_bf)        
        
) bf


--31 INDIRIZZO CONTRATTO ESTERO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INDIRIZZO CONTRATTO ESTERO                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
1 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and nazione<> 'italia'
) bf


--32 CC>10000

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC>10000                                         ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
1 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)>10000
) bf


--33 COPERTURA INFERIORE A 100

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'COPERTURA INFERIORE A 100                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
1 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
 from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='complessivo'
and copertura<100
) bf


--34 evoluzione controvalore > 30%

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'EVOLUZIONE CONTROVALORE > 30%                    ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
1 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct corrente.rete, corrente.cod_fiscale 
from
(select b.rete, b.cod_fiscale, sum(controvalore) ctv
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
group by b.rete, b.cod_fiscale) scorsa,
(select rete, cod_fiscale, sum(ctv) ctv
from c6martperiodico.patrimonio_bf
group by rete, cod_fiscale) corrente
where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
and  (case when scorsa.ctv>corrente.ctv
      then (scorsa.ctv-abs(corrente.ctv))
      else (corrente.ctv-abs(scorsa.ctv))
      end)
      >
	 (case when scorsa.ctv>corrente.ctv
      then (0.30*corrente.ctv)
      else (0.30*scorsa.ctv)
      end)
--select distinct corrente.rete, corrente.cod_fiscale
--from
--(select rete, cod_fiscale, sum(controvalore) ctv
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--group by rete, cod_fiscale) scorsa,
--(select rete, cod_fiscale, sum(ctv) ctv
--from c6martperiodico.patrimonio_bf
--group by rete, cod_fiscale) corrente
--where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
--and (0.33*scorsa.ctv>corrente.ctv or 0.33*scorsa.ctv<corrente.ctv)
) bf


--35  Clienti con investimenti in corso nel precedente report 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CLIENTI CON INV IN CORSO NEL PRECEDENTE REPORT   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
1 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct b.rete, b.cod_fiscale
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
where a.investimentiincorso>0

--select distinct rete, cod_fiscale
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--where investimentiincorso>0

) bf


--36  Monitoraggio con cedole/dividendi 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MONITORAGGIO CON CEDOLE/DIVIDENDI                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
1 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.MONITORAGGIO_ATTUALE
where CEDOLE_DIVIDENDI>0 
) bf


-- 37 PARTITE VIAGGIANTI DI DISINVESTIMENTO - 19/1/2016

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI DI DISINVESTIMENTO            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
1 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from C6MartPeriodico.patrimonio_bf a
inner join [C6StampeCentralizzate].[C6MartPeriodico].[TB_Campione] b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where (partvia_disinv <> 0.000 and partvia_disinv is not null)
) bf


--CRITERIO ELIMINATO IN QUANTO DUPLICATO DEL CRITERIO 31
--38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
--select 
--bf.rete, 
--bf.cod_fiscale,
--'Indirizzo Estero' AS DESCRIZIONE,
--0 AS c1,
--0 AS c2,
--0 AS c3,
--0 AS c4,
--0 AS c5,
--0 AS c6,
--0 AS c7,
--0 AS c8,
--0 AS c9,
--0 AS c10,
--0 AS c11,
--0 AS c12,
--0 AS c13,
--0 AS c14,
--0 AS c15,
--0 AS c16,
--0 AS c17,
--0 AS c18,
--0 AS c19,
--0 AS c20,
--0 AS c21,
--0 AS c22,
--0 AS c23,
--0 AS c24,
--0 AS c25,
--0 AS c26,
--0 AS c27,
--0 AS c28,
--0 AS c29,
--0 AS c30,
--0 AS c31,
--0 AS c32,
--0 AS c33,
--0 AS c34,
--0 AS c35,
--0 AS c36,
--0 AS c37,
--1 AS c38,
--0 AS c39,
--0 AS c40,
--0 AS c41,
--0 AS c42,
--0 AS c43,
--0 AS c44,
--0 AS c45,
--0 AS c46,
--0 AS c47,
--0 AS c48,
--0 AS c49,
--0 AS c50,
--0 AS c51,
--0 AS c52,
--0 AS c53,
--0 AS c54,
--0 AS c55,
--0 AS c56,
--0 AS c57,
--0 AS c58
--FROM
--(
--select distinct rete, cod_fiscale 
--from c6martperiodico.contrattosei
--where nazione <> 'italia'
--) bf

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'S', 
--'RSSRNZ49E14A479S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'CSCGPP34A03L050L',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNERSR61L08C351V',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'BGLPRD65E10Z130S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNZNLS71M48C814J',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)


---------------------
--c39

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C39 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
1 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
where data_foto >= @appoDataInizioTrimestre
) bf


--c40

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C40 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
1 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is not null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is not null
) bf


--41
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C41 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
1 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is null

) bf


--c42
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C42 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
1 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is null
) bf



--c43
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C43 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
1 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is not null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is not null
) bf


--C44
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'F' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
1 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
inner join c6stagingperiodico.st_mon 
on a.cod_fiscale = codfis
and a.rete = st_mon.rete
where data_foto > '20111001'
) bf


--C45
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'G' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
1 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto < '20111001'
) bf



--C46
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'H' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
1 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto > '20111001'
) bf


--C47
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'I' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
1 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and dttrim = @appoDataFineTrimestre
and data_foto > '20111001'
) bf


--C48
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'J' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
1 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
/*
(select * from c6stagingperiodico.wseics where dttrim = '20111231') a
inner join
(select * from c6stagingperiodico.wseics where dttrim = '20120331') b
on a.rete = b.rete
and a.codfis = b.codfis
inner join c6martperiodico.monitoraggio_iniziale c
on b.codfis = c.cod_fiscale
and b.rete = c.rete
where
a.codprod not in ('37', 'GP')
and
b.codprod in ('37', 'GP')
and c.data_foto > '20111001'
*/

select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'

) bf


--C49
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'K' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
1 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
--inner join c6stagingperiodico.wseics b
--on b.codfis = b.codfis
--and a.rete = b.rete
--where a.codprod not in ('37', 'GP')
----Se fase di Simulazione:
----		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
----and a.dttrim = '20131130'
----Se fase di Trimestrale:
----		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
--and a.dttrim = @appoDataFineTrimestre
--and b.codprod in ('37', 'GP')
----and b.dttrim = '20111231' -- b.dttrim = dt fine trimestre precedente
--and b.dttrim = @appoDataFineTrimPrec


select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'

) bf

--nuovi-----------------------------------------------------------

--C50
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti OLD' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
1 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 0
) bf

--C51
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Affluent' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
1 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 1
) bf



--C52
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Private' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
1 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 2
) bf


--C53
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Bonus' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
1 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.bonus bon
on vc.rete = bon.rete
and vc.cod_fiscale = bon.cod_fiscale
) bf


--C54
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Scadenze' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
1 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.scadenze sca
on vc.rete = sca.rete
and vc.cod_fiscale = sca.cod_fiscale
) bf

--C55
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Proventi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
1 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.proventi pro
on vc.rete = pro.rete
and vc.cod_fiscale = pro.cod_fiscale
) bf

--C56
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Monitoraggio avviato Trimestre precedente' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
1 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
--where data_foto > C6MartPeriodico.getPreviousTrimestre(getdate(), 1)
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
) bf


--C57
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
1 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where isnull(data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
where isnull(data_foto,getDate()) between @appoDataInizioTrimestre and @appoDataFineTrimestre
) bf


--C58
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
1 AS c58
FROM
(
--select distinct b.rete, b.cod_fiscale as codfis
--from c6martperiodico.monitoraggio_report a
--right join C6MartPeriodico.rp_vcontrattipergenerazionereport b
--on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete is null

select distinct rete, cod_fiscale as codfis 
from c6martperiodico.monitoraggio_iniziale 
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
except
select distinct rete, cod_fiscale as codfis
from c6martperiodico.monitoraggio_report

) bf
---------------------

--drop table C6MARTPERIODICO.SELEZIONECAMPIONE2

truncate table  C6MARTPERIODICO.SELEZIONECAMPIONE2

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
select
v.rete, 
v.cod_fiscale,
sum( C1 ) as C1,
sum( C2 ) as C2,
sum( C3 ) as C3,
sum( C4 ) as C4,
sum( C5 ) as C5,
sum( C6 ) as C6,
sum( C7 ) as C7,
sum( C8 ) as C8,
sum( C9 ) as C9,
sum( C10 ) as C10,
sum( C11) as C11,
sum( C12 ) as C12,
sum( C13 ) as C13,
sum( C14 ) as C14,
sum( C15 ) as C15,
sum( C16 ) as C16,
sum( C17 ) as C17,
sum( C18 ) as C18,
sum( C19 ) as C19,
sum( C20 ) as C20,
sum( C21 ) as C21,
sum( C22 ) as C22,
sum( C23) as C23,
sum( C24 ) as C24,
sum( C25 ) as C25,
sum( C26) as C26,
sum( C27 ) as C27,
sum( C28) as C28,
sum( C29 ) as C29,
sum( C30 ) as C30,
sum(C31) AS C31,
SUM(C32) AS C32,
SUM(C33) AS C33,
SUM(C34) AS C34,
SUM(C35) AS C35,
SUM(C36) AS C36,
SUM(C37) AS C37,
SUM(C38) AS C38,
SUM(C39) AS C39,
SUM(C40) AS C40,
SUM(C41) AS C41,
SUM(C42) AS C42,
SUM(C43) AS C43,
SUM(C44) AS C44,
SUM(C45) AS C45,
SUM(C46) AS C46,
SUM(C47) AS C47,
SUM(C48) AS C48,
SUM(C49) AS C49,

SUM(C50) AS C50,
SUM(C51) AS C51,
SUM(C52) AS C52,
SUM(C53) AS C53,
SUM(C54) AS C54,
SUM(C55) AS C55,
SUM(C56) AS C56,
SUM(C57) AS C57,
SUM(C58) AS C58

--INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
FROM
C6MARTPERIODICO.SELEZIONECAMPIONE sc join C6MartPeriodico.rp_vcontrattipergenerazionereport v  
on sc.rete=v.rete and sc.cod_fiscale=v.cod_fiscale
group by
v.rete,
v.cod_fiscale

END



--SELECT * FROM C6MARTPERIODICO.SELEZIONECAMPIONE2
























GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20190116_PreNewFunction]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20190116_PreNewFunction]

AS
BEGIN
--procedura di caricamento campione

DECLARE @appoDataInizioTrimestre varchar(8)
SET @appoDataInizioTrimestre = '20190101'

--SET @appoDataInizioTrimestre = '20181001'
--SET @appoDataInizioTrimestre = '20180701'
--SET @appoDataInizioTrimestre = '20180401'
--SET @appoDataInizioTrimestre = '20180101'
--SET @appoDataInizioTrimestre = '20171001'
--SET @appoDataInizioTrimestre = '20170701'
--SET @appoDataInizioTrimestre = '20170401'
--SET @appoDataInizioTrimestre = '20170101'
--SET @appoDataInizioTrimestre = '20161001'
--SET @appoDataInizioTrimestre = '20160701'
--SET @appoDataInizioTrimestre = '20160401'
--SET @appoDataInizioTrimestre = '20160101'
--SET @appoDataInizioTrimestre = '20151001'
--SET @appoDataInizioTrimestre = '20150701'

DECLARE @appoDataFineTrimestre varchar(8)
SET @appoDataFineTrimestre = '20181231'
--SET @appoDataFineTrimestre = '20180930'
--SET @appoDataFineTrimestre = '20180630'
--SET @appoDataFineTrimestre = '20180331'
--SET @appoDataFineTrimestre = '20171231'
--SET @appoDataFineTrimestre = '20170930'
--SET @appoDataFineTrimestre = '20170630'
--SET @appoDataFineTrimestre = '20170331'
--SET @appoDataFineTrimestre = '20161231'
--SET @appoDataFineTrimestre = '20160930'
--SET @appoDataFineTrimestre = '20160630'
--SET @appoDataFineTrimestre = '20160331'
--SET @appoDataFineTrimestre = '20151231'
--SET @appoDataFineTrimestre = '20150930'

DECLARE @appoDataInizioTrimPrec varchar(8)
SET @appoDataInizioTrimPrec = '20181001'
--SET @appoDataInizioTrimPrec = '20180701'
--SET @appoDataInizioTrimPrec = '20180401'
--SET @appoDataInizioTrimPrec = '20180101'
--SET @appoDataInizioTrimPrec = '20171001'
--SET @appoDataInizioTrimPrec = '20170701'
--SET @appoDataInizioTrimPrec = '20170401'
--SET @appoDataInizioTrimPrec = '20170101'
--SET @appoDataInizioTrimPrec = '20161001'
--SET @appoDataInizioTrimPrec = '20160701'
--SET @appoDataInizioTrimPrec = '20160401'
--SET @appoDataInizioTrimPrec = '20160101'
--SET @appoDataInizioTrimPrec = '20151001'
--SET @appoDataInizioTrimPrec = '20150701'
--SET @appoDataInizioTrimPrec = '20150401'

DECLARE @appoDataFineTrimPrec varchar(8)
SET @appoDataFineTrimPrec = '20180930'
--SET @appoDataFineTrimPrec = '20180630'
--SET @appoDataFineTrimPrec = '20180331'
--SET @appoDataFineTrimPrec = '20171231'
--SET @appoDataFineTrimPrec = '20170930'
--SET @appoDataFineTrimPrec = '20170630'
--SET @appoDataFineTrimPrec = '20170331'
--SET @appoDataFineTrimPrec = '20161231'
--SET @appoDataFineTrimPrec = '20160930'
--SET @appoDataFineTrimPrec = '20160630'
--SET @appoDataFineTrimPrec = '20160331'
--SET @appoDataFineTrimPrec = '20151231'
--SET @appoDataFineTrimPrec = '20150930'
--SET @appoDataFineTrimPrec = '20150630'

-- QUI VA SPECIFICATO IL PERIODO DI EFFETTIVA GENERAZIONE DEI REPORT CHE, IN GENERE, E' IL MESE SUCCESSIVO
-- A QUELLO DI FINE TRIMESTRE
DECLARE @appoDataGenerazioneTrimPrecDa varchar(8)
SET @appoDataGenerazioneTrimPrecDa = '20181001'
--SET @appoDataGenerazioneTrimPrecDa = '20180701'
--SET @appoDataGenerazioneTrimPrecDa = '20180401'
--SET @appoDataGenerazioneTrimPrecDa = '20180101'
--SET @appoDataGenerazioneTrimPrecDa = '20171001'
--SET @appoDataGenerazioneTrimPrecDa = '20170701'
--SET @appoDataGenerazioneTrimPrecDa = '20170401'
--SET @appoDataGenerazioneTrimPrecDa = '20170101'
--SET @appoDataGenerazioneTrimPrecDa = '20161001'
--SET @appoDataGenerazioneTrimPrecDa = '20160701'
--SET @appoDataGenerazioneTrimPrecDa = '20160401'
--SET @appoDataGenerazioneTrimPrecDa = '20160101'
--SET @appoDataGenerazioneTrimPrecDa = '20151001'
--SET @appoDataGenerazioneTrimPrecDa = '20150701'

DECLARE @appoDataGenerazioneTrimPrecA varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20181031'
--SET @appoDataGenerazioneTrimPrecA = '20180731'
--SET @appoDataGenerazioneTrimPrecA = '20180430'
--SET @appoDataGenerazioneTrimPrecA = '20180131'
--SET @appoDataGenerazioneTrimPrecA = '20171031'
--SET @appoDataGenerazioneTrimPrecA = '20170731'
--SET @appoDataGenerazioneTrimPrecA = '20170430'
--SET @appoDataGenerazioneTrimPrecA = '20170131'
--SET @appoDataGenerazioneTrimPrecA = '20161031'
--SET @appoDataGenerazioneTrimPrecA = '20160731'
--SET @appoDataGenerazioneTrimPrecA = '20160430'
--SET @appoDataGenerazioneTrimPrecA = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecA = '20151031'
--SET @appoDataGenerazioneTrimPrecA = '20150731'

DECLARE @appoDataGenerazioneTrimPrecX2Da varchar(8)
SET @appoDataGenerazioneTrimPrecA = '20180701'
--SET @appoDataGenerazioneTrimPrecA = '20180401'
--SET @appoDataGenerazioneTrimPrecA = '20180101'
--SET @appoDataGenerazioneTrimPrecA = '20171001'
--SET @appoDataGenerazioneTrimPrecA = '20170701'
--SET @appoDataGenerazioneTrimPrecA = '20170401'
--SET @appoDataGenerazioneTrimPrecA = '20170101'
--SET @appoDataGenerazioneTrimPrecA = '20161001'
--SET @appoDataGenerazioneTrimPrecA = '20160701'
--SET @appoDataGenerazioneTrimPrecA = '20160401'
--SET @appoDataGenerazioneTrimPrecA = '20160101'
--SET @appoDataGenerazioneTrimPrecX2Da = '20151001'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150701'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150401'

DECLARE @appoDataGenerazioneTrimPrecX2A varchar(8)
SET @appoDataGenerazioneTrimPrecX2A = '20180731'
--SET @appoDataGenerazioneTrimPrecX2A = '20180430'
--SET @appoDataGenerazioneTrimPrecX2A = '20180131'
--SET @appoDataGenerazioneTrimPrecX2A = '20171031'
--SET @appoDataGenerazioneTrimPrecX2A = '20170731'
--SET @appoDataGenerazioneTrimPrecX2A = '20170430'
--SET @appoDataGenerazioneTrimPrecX2A = '20170131'
--SET @appoDataGenerazioneTrimPrecX2A = '20161031'
--SET @appoDataGenerazioneTrimPrecX2A = '20160731'
--SET @appoDataGenerazioneTrimPrecX2A = '20160430'
--SET @appoDataGenerazioneTrimPrecX2A = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecX2A = '20151031'
--SET @appoDataGenerazioneTrimPrecX2A = '20150731'
--SET @appoDataGenerazioneTrimPrecX2A = '20150430'


TRUNCATE TABLE C6MARTPERIODICO.SELEZIONECAMPIONE
--select * into c6martperiodico.appo_selezione_campione from  C6MARTPERIODICO.SELEZIONECAMPIONE
--0 tutta la popolazione


INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
select distinct bf.cod_fiscale, bf.rete
from
C6MartPeriodico.rp_vcontrattipergenerazionereport bf
) bf


--1  UNA MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'UNA MACRO ASSET                                  ' AS DESCRIZIONE,
1 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 1 "ASSET CLASS" anzichè 1 "MACRO ASSET CLASS"
--select distinct bf.cod_fiscale, bf.rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=1
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=1
) bf


--2 TUTTE LE MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select  
bf.rete, 
bf.cod_fiscale,
'TUTTE LE MACRO ASSET                             ' AS DESCRIZIONE,
0 AS c1,
1 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 7 "ASSET CLASS" anzichè 7 "MACRO ASSET CLASS"
--select distinct cod_fiscale, rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=7
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=7
) bf


--3 TUTTE LE AREE SONO MONITORATE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis as cod_fiscale,
'TUTTE LE AREE SONO MONITORATE                    ' AS DESCRIZIONE,

0 AS c1,
0 AS c2,
1 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, count(distinct codarea) c
from C6StagingPeriodico.TANAB
where dtfine='99991231'
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=4
)bf


--4 SENZA PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'SENZA PATRIMONIO TERZI                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
1 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


--5 RISCHIO CREDITO NA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO N.A.                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
1 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk is null
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 6 CLASSE DI RISCHIO CREDITO > 3 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO > 3                              ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
1 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>3
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 7 PRODOTTO SENZA RENDIMENTO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PRODOTTO SENZA RENDIMENTO                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
1 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as cod_fiscale
from C6StagingPeriodico.TSCABP
) bf


-- 8 piu trimestrali

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PIU TRIMESTRALI                                  ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
1 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, codicefiscale AS COD_FISCALE, count(*)N
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where tiporeport='M'
and dataGenerazione > @appoDataGenerazioneTrimPrecX2Da
group by rete, codicefiscale
having count(*)>1
) bf


-- 9 PATRIMONIO TERZI SU PIU' INTERMEDIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI SU PIU'' INTERMEDIARI           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
1 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, count(distinct a.intermediario) M
from C6MartPeriodico.PATRIMONIO_TERZI a
group by a.rete, a.cod_fiscale
having count(distinct a.intermediario)>1
) bf


-- 10 PERSONE GIURIDICHE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PERSONE GIURIDICHE                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
1 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where len(cod_fiscale)=11
) bf


-- 11 PB TERMINATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PB TERMINATI                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
1 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct bf.rete, bf.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF bf, C6Mart.CONTRATTOSEI c6,C6Stagingperiodico.ADS4WS_PROMOTORI pr
--where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
--and c6.cod_agente=pr.codice and pr.rete=c6.rete
--and stato= 'T'
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6,C6Stagingperiodico.RP_anagrafica_promotori pr
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and c6.cod_agente=pr.codage and pr.rete=c6.rete
and stato= 'T'
) bf


-- 12 PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
1 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_TERZI a
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


-- 13 PATR NON RAPPR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR NON RAPPR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
1 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale
from C6MartPeriodico.vPatrimonioNonRappresentabileAsset
) bf


-- 14 PATR IMMOBILIARE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR IMMOB                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
1 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, sum(a.VALORE_STIMATO) M
from C6MartPeriodico.PATRIMONIO_IMMOBILIARE a 
group by a.rete, a.cod_fiscale
) bf


-- 15 PARTITE VIAGGIANTI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
1 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PARTITE_VIAGGIANTI) bf


--16 NON MONITORATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON MONITORATI                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
1 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.patrimonio_bf bf
where bf.rete + bf.cod_fiscale not in ( select distinct rete + case when len(codfis) =4 then 'FF@'+codfis else codfis end from C6StagingPeriodico.TANAB where dtfine='99991231')
) bf


-- 17 NO PATR IMMOB

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON PATR IMMOB                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
1 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from  C6MartPeriodico.PATRIMONIO_bf 
where cod_fiscale + rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.patrimonio_immobiliare)

) bf


-- 18 MON SU UNA SOLA AREA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON SU UNA SOLA AREA                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
1 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE, count(distinct codarea) H
from C6StagingPeriodico.TANAB
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=1

) bf


-- 19 MON DA PIU DI 12 MESI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MON DA PIU DI 12 MESI                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
1 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct  rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_FISCALE
from C6StagingPeriodico.TANAB
--where ('20101201'-dtrif)/30>12
where dtrif < convert(varchar(8), DATEADD(year, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112)
) bf


-- 20 MON APPENA AVVIATO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON APPENA AVVIATO                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
1 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE
from  C6StagingPeriodico.TANAB
--where '20101201'-GETDATE()<1
where (dtrif > convert(varchar(8), DATEADD(day, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112))
) bf


-- 21 MANDATI FIDUCIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MANDATI FIDUCIARI                                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
1 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where cod_fiscale like 'FF@%'
) bf


-- 22 INADEGUATI VAR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI VAR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
1 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.var_perc_ptf>cod.max_var
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 23 INADEGUATI CRISK

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI CRISK                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
1 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_CREDITRISK cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>mifid.profilo_ass
and a.cod_aggreg='COMPLESSIVO'
) bf

 
-- 24 INADEGUATI COMPLESSITA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI COMPLESSITA                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
1 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
-- EN2060408: begin - adapted to new feature "Adeguatezza" comnplexity / concentration
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF a, C6MartPeriodico.MIFID mifid
--where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
--and mifid.experience<(select max(complex) from C6MartPeriodico.PATRIMONIO_BF where rete=mifid.rete and cod_fiscale=mifid.cod_fiscale)
SELECT top 500 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 200 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
) bf
-- EN2060408: end


-- 25 DIVERSIFICAZIONE < 30

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'DIVERSIFICAZIONE < 30                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
1 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(

select rete, cod_fiscale, beneficio
from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='COMPLESSIVO'
and beneficio<30

) bf

 
-- 26 CC NEG E POS 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEG E POS                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
1 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0 
) bf


-- 27 CC NEG

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEGATIVO                                      ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
1 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale, sum(saldocontabile) M
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)<0
) bf
where rete+cod_fiscale not in 
(
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0
)


-- 28 REND NON RAPPR COME UNICA POSIZIONE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'REND NON RAPPR COME UNICA POSIZIONE IN AREA MONIT' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
1 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
SELECT
DISTINCT T.RETE, T.COD_FISCALE FROM
(
SELECT
RETE, COD_FISCALE , ID_AREA, SUM(CASE WHEN REND_NON_RAPPR =1 THEN 0 ELSE 1 END) TOT 
FROM
C6MARTPERIODICO
.PATRIMONIO_BF B 
GROUP
BY 
RETE
, COD_FISCALE, ID_AREA 
)
T, 
(
SELECT
RETE, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, CASE WHEN CODAREA ='EXR' THEN 'EXT'ELSE CODAREA END AS CODAREA FROM
C6STAGINGPERIODICO
.TANAB 
WHERE
DTFINE = 99991231 
)
B 
WHERE
T
.RETE=B.RETE AND B.CODFIS=T.COD_FISCALE 
AND
ID_AREA=CODAREA 
AND
TOT=0

) bf


-- 29 PREVIDENZA 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PREVIDENZA                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
1 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF
where id_area like '%Pre%'
) bf


--30 RESTART CONTRATTOSEI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RESTART CONTRATTOSEI                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
1 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, codicefiscale as cod_fiscale
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where datagenerazione between @appoDataGenerazioneTrimPrecX2Da and @appoDataGenerazioneTrimPrecX2A
except 
select distinct p.rete,p.codicefiscale
     from C6StoricoPeriodico.GESTIONE_PDF_FTP p
     inner join c6martperiodico.patrimonio_bf b
     on p.rete=b.rete and p.codicefiscale =b.cod_fiscale 
        where datagenerazione between @appoDataGenerazioneTrimPrecDa and @appoDataGenerazioneTrimPrecA
        
--select distinct rete, codicefiscale as cod_fiscale
--from appoGESTIONE_PDF_FTP
--where datagenerazione between '20111001' and '20111031'
--and rete + codicefiscale not in (select distinct rete + codicefiscale
--        from appoGESTIONE_PDF_FTP
--        where datagenerazione between '20120101' and '20120131')
--and rete + codicefiscale in (select distinct rete + cod_fiscale
--        from c6martperiodico.patrimonio_bf)        
        
) bf


--31 INDIRIZZO CONTRATTO ESTERO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INDIRIZZO CONTRATTO ESTERO                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
1 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and nazione<> 'italia'
) bf


--32 CC>10000

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC>10000                                         ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
1 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)>10000
) bf


--33 COPERTURA INFERIORE A 100

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'COPERTURA INFERIORE A 100                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
1 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
 from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='complessivo'
and copertura<100
) bf


--34 evoluzione controvalore > 30%

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'EVOLUZIONE CONTROVALORE > 30%                    ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
1 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct corrente.rete, corrente.cod_fiscale 
from
(select b.rete, b.cod_fiscale, sum(controvalore) ctv
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
group by b.rete, b.cod_fiscale) scorsa,
(select rete, cod_fiscale, sum(ctv) ctv
from c6martperiodico.patrimonio_bf
group by rete, cod_fiscale) corrente
where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
and  (case when scorsa.ctv>corrente.ctv
      then (scorsa.ctv-abs(corrente.ctv))
      else (corrente.ctv-abs(scorsa.ctv))
      end)
      >
	 (case when scorsa.ctv>corrente.ctv
      then (0.30*corrente.ctv)
      else (0.30*scorsa.ctv)
      end)
--select distinct corrente.rete, corrente.cod_fiscale
--from
--(select rete, cod_fiscale, sum(controvalore) ctv
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--group by rete, cod_fiscale) scorsa,
--(select rete, cod_fiscale, sum(ctv) ctv
--from c6martperiodico.patrimonio_bf
--group by rete, cod_fiscale) corrente
--where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
--and (0.33*scorsa.ctv>corrente.ctv or 0.33*scorsa.ctv<corrente.ctv)
) bf


--35  Clienti con investimenti in corso nel precedente report 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CLIENTI CON INV IN CORSO NEL PRECEDENTE REPORT   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
1 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct b.rete, b.cod_fiscale
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
where a.investimentiincorso>0

--select distinct rete, cod_fiscale
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--where investimentiincorso>0

) bf


--36  Monitoraggio con cedole/dividendi 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MONITORAGGIO CON CEDOLE/DIVIDENDI                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
1 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.MONITORAGGIO_ATTUALE
where CEDOLE_DIVIDENDI>0 
) bf


-- 37 PARTITE VIAGGIANTI DI DISINVESTIMENTO - 19/1/2016

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI DI DISINVESTIMENTO            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
1 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from C6MartPeriodico.patrimonio_bf a
inner join [C6StampeCentralizzate].[C6MartPeriodico].[TB_Campione] b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where (partvia_disinv <> 0.000 and partvia_disinv is not null)
) bf


--CRITERIO ELIMINATO IN QUANTO DUPLICATO DEL CRITERIO 31
--38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
--select 
--bf.rete, 
--bf.cod_fiscale,
--'Indirizzo Estero' AS DESCRIZIONE,
--0 AS c1,
--0 AS c2,
--0 AS c3,
--0 AS c4,
--0 AS c5,
--0 AS c6,
--0 AS c7,
--0 AS c8,
--0 AS c9,
--0 AS c10,
--0 AS c11,
--0 AS c12,
--0 AS c13,
--0 AS c14,
--0 AS c15,
--0 AS c16,
--0 AS c17,
--0 AS c18,
--0 AS c19,
--0 AS c20,
--0 AS c21,
--0 AS c22,
--0 AS c23,
--0 AS c24,
--0 AS c25,
--0 AS c26,
--0 AS c27,
--0 AS c28,
--0 AS c29,
--0 AS c30,
--0 AS c31,
--0 AS c32,
--0 AS c33,
--0 AS c34,
--0 AS c35,
--0 AS c36,
--0 AS c37,
--1 AS c38,
--0 AS c39,
--0 AS c40,
--0 AS c41,
--0 AS c42,
--0 AS c43,
--0 AS c44,
--0 AS c45,
--0 AS c46,
--0 AS c47,
--0 AS c48,
--0 AS c49,
--0 AS c50,
--0 AS c51,
--0 AS c52,
--0 AS c53,
--0 AS c54,
--0 AS c55,
--0 AS c56,
--0 AS c57,
--0 AS c58
--FROM
--(
--select distinct rete, cod_fiscale 
--from c6martperiodico.contrattosei
--where nazione <> 'italia'
--) bf

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'S', 
--'RSSRNZ49E14A479S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'CSCGPP34A03L050L',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNERSR61L08C351V',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'BGLPRD65E10Z130S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNZNLS71M48C814J',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)


---------------------
--c39

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C39 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
1 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
where data_foto >= @appoDataInizioTrimestre
) bf


--c40

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C40 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
1 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is not null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is not null
) bf


--41
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C41 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
1 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is null

) bf


--c42
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C42 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
1 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is null
) bf



--c43
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C43 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
1 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is not null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is not null
) bf


--C44
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'F' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
1 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
inner join c6stagingperiodico.st_mon 
on a.cod_fiscale = codfis
and a.rete = st_mon.rete
where data_foto > '20111001'
) bf


--C45
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'G' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
1 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto < '20111001'
) bf



--C46
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'H' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
1 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto > '20111001'
) bf


--C47
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'I' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
1 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and dttrim = @appoDataFineTrimestre
and data_foto > '20111001'
) bf


--C48
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'J' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
1 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
/*
(select * from c6stagingperiodico.wseics where dttrim = '20111231') a
inner join
(select * from c6stagingperiodico.wseics where dttrim = '20120331') b
on a.rete = b.rete
and a.codfis = b.codfis
inner join c6martperiodico.monitoraggio_iniziale c
on b.codfis = c.cod_fiscale
and b.rete = c.rete
where
a.codprod not in ('37', 'GP')
and
b.codprod in ('37', 'GP')
and c.data_foto > '20111001'
*/

select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'

) bf


--C49
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'K' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
1 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
--inner join c6stagingperiodico.wseics b
--on b.codfis = b.codfis
--and a.rete = b.rete
--where a.codprod not in ('37', 'GP')
----Se fase di Simulazione:
----		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
----and a.dttrim = '20131130'
----Se fase di Trimestrale:
----		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
--and a.dttrim = @appoDataFineTrimestre
--and b.codprod in ('37', 'GP')
----and b.dttrim = '20111231' -- b.dttrim = dt fine trimestre precedente
--and b.dttrim = @appoDataFineTrimPrec


select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'

) bf

--nuovi-----------------------------------------------------------

--C50
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti OLD' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
1 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 0
) bf

--C51
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Affluent' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
1 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 1
) bf



--C52
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Private' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
1 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 2
) bf


--C53
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Bonus' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
1 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.bonus bon
on vc.rete = bon.rete
and vc.cod_fiscale = bon.cod_fiscale
) bf


--C54
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Scadenze' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
1 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.scadenze sca
on vc.rete = sca.rete
and vc.cod_fiscale = sca.cod_fiscale
) bf

--C55
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Proventi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
1 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.proventi pro
on vc.rete = pro.rete
and vc.cod_fiscale = pro.cod_fiscale
) bf

--C56
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Monitoraggio avviato Trimestre precedente' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
1 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
--where data_foto > C6MartPeriodico.getPreviousTrimestre(getdate(), 1)
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
) bf


--C57
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
1 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where isnull(data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
where isnull(data_foto,getDate()) between @appoDataInizioTrimestre and @appoDataFineTrimestre
) bf


--C58
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
1 AS c58
FROM
(
--select distinct b.rete, b.cod_fiscale as codfis
--from c6martperiodico.monitoraggio_report a
--right join C6MartPeriodico.rp_vcontrattipergenerazionereport b
--on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete is null

select distinct rete, cod_fiscale as codfis 
from c6martperiodico.monitoraggio_iniziale 
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
except
select distinct rete, cod_fiscale as codfis
from c6martperiodico.monitoraggio_report

) bf
---------------------

--drop table C6MARTPERIODICO.SELEZIONECAMPIONE2

truncate table  C6MARTPERIODICO.SELEZIONECAMPIONE2

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
select
v.rete, 
v.cod_fiscale,
sum( C1 ) as C1,
sum( C2 ) as C2,
sum( C3 ) as C3,
sum( C4 ) as C4,
sum( C5 ) as C5,
sum( C6 ) as C6,
sum( C7 ) as C7,
sum( C8 ) as C8,
sum( C9 ) as C9,
sum( C10 ) as C10,
sum( C11) as C11,
sum( C12 ) as C12,
sum( C13 ) as C13,
sum( C14 ) as C14,
sum( C15 ) as C15,
sum( C16 ) as C16,
sum( C17 ) as C17,
sum( C18 ) as C18,
sum( C19 ) as C19,
sum( C20 ) as C20,
sum( C21 ) as C21,
sum( C22 ) as C22,
sum( C23) as C23,
sum( C24 ) as C24,
sum( C25 ) as C25,
sum( C26) as C26,
sum( C27 ) as C27,
sum( C28) as C28,
sum( C29 ) as C29,
sum( C30 ) as C30,
sum(C31) AS C31,
SUM(C32) AS C32,
SUM(C33) AS C33,
SUM(C34) AS C34,
SUM(C35) AS C35,
SUM(C36) AS C36,
SUM(C37) AS C37,
SUM(C38) AS C38,
SUM(C39) AS C39,
SUM(C40) AS C40,
SUM(C41) AS C41,
SUM(C42) AS C42,
SUM(C43) AS C43,
SUM(C44) AS C44,
SUM(C45) AS C45,
SUM(C46) AS C46,
SUM(C47) AS C47,
SUM(C48) AS C48,
SUM(C49) AS C49,

SUM(C50) AS C50,
SUM(C51) AS C51,
SUM(C52) AS C52,
SUM(C53) AS C53,
SUM(C54) AS C54,
SUM(C55) AS C55,
SUM(C56) AS C56,
SUM(C57) AS C57,
SUM(C58) AS C58

--INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
FROM
C6MARTPERIODICO.SELEZIONECAMPIONE sc join C6MartPeriodico.rp_vcontrattipergenerazionereport v  
on sc.rete=v.rete and sc.cod_fiscale=v.cod_fiscale

--modifica del 10/7/2018 per non far includere quelli della blacklist (se ci sono)
where sc.rete+sc.cod_fiscale not in (select rete+codicefiscale from [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList])


group by
v.rete,
v.cod_fiscale

END



--SELECT * FROM C6MARTPERIODICO.SELEZIONECAMPIONE2
























GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20230915]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_SELEZIONA_CAMPIONE_20230915]

AS
BEGIN
--procedura di caricamento campione

DECLARE @appoDataInizioTrimestre varchar(8)

SET @appoDataInizioTrimestre = [C6MartPeriodico].[getDateTrimestre](0, 0, 0)

--SET @appoDataInizioTrimestre = '20190101'

--SET @appoDataInizioTrimestre = '20181001'
--SET @appoDataInizioTrimestre = '20180701'
--SET @appoDataInizioTrimestre = '20180401'
--SET @appoDataInizioTrimestre = '20180101'
--SET @appoDataInizioTrimestre = '20171001'
--SET @appoDataInizioTrimestre = '20170701'
--SET @appoDataInizioTrimestre = '20170401'
--SET @appoDataInizioTrimestre = '20170101'
--SET @appoDataInizioTrimestre = '20161001'
--SET @appoDataInizioTrimestre = '20160701'
--SET @appoDataInizioTrimestre = '20160401'
--SET @appoDataInizioTrimestre = '20160101'
--SET @appoDataInizioTrimestre = '20151001'
--SET @appoDataInizioTrimestre = '20150701'

DECLARE @appoDataFineTrimestre varchar(8)

SET @appoDataFineTrimestre = [C6MartPeriodico].[getDateTrimestre](0, 1, 0)

--SET @appoDataFineTrimestre = '20181231'

--SET @appoDataFineTrimestre = '20180930'
--SET @appoDataFineTrimestre = '20180630'
--SET @appoDataFineTrimestre = '20180331'
--SET @appoDataFineTrimestre = '20171231'
--SET @appoDataFineTrimestre = '20170930'
--SET @appoDataFineTrimestre = '20170630'
--SET @appoDataFineTrimestre = '20170331'
--SET @appoDataFineTrimestre = '20161231'
--SET @appoDataFineTrimestre = '20160930'
--SET @appoDataFineTrimestre = '20160630'
--SET @appoDataFineTrimestre = '20160331'
--SET @appoDataFineTrimestre = '20151231'
--SET @appoDataFineTrimestre = '20150930'

DECLARE @appoDataInizioTrimPrec varchar(8)

SET @appoDataInizioTrimPrec = [C6MartPeriodico].[getDateTrimestre](1, 0, 0)

--SET @appoDataInizioTrimPrec = '20181001'

--SET @appoDataInizioTrimPrec = '20180701'
--SET @appoDataInizioTrimPrec = '20180401'
--SET @appoDataInizioTrimPrec = '20180101'
--SET @appoDataInizioTrimPrec = '20171001'
--SET @appoDataInizioTrimPrec = '20170701'
--SET @appoDataInizioTrimPrec = '20170401'
--SET @appoDataInizioTrimPrec = '20170101'
--SET @appoDataInizioTrimPrec = '20161001'
--SET @appoDataInizioTrimPrec = '20160701'
--SET @appoDataInizioTrimPrec = '20160401'
--SET @appoDataInizioTrimPrec = '20160101'
--SET @appoDataInizioTrimPrec = '20151001'
--SET @appoDataInizioTrimPrec = '20150701'
--SET @appoDataInizioTrimPrec = '20150401'

DECLARE @appoDataFineTrimPrec varchar(8)

SET @appoDataFineTrimPrec = [C6MartPeriodico].[getDateTrimestre](1, 1, 0)

--SET @appoDataFineTrimPrec = '20180930'

--SET @appoDataFineTrimPrec = '20180630'
--SET @appoDataFineTrimPrec = '20180331'
--SET @appoDataFineTrimPrec = '20171231'
--SET @appoDataFineTrimPrec = '20170930'
--SET @appoDataFineTrimPrec = '20170630'
--SET @appoDataFineTrimPrec = '20170331'
--SET @appoDataFineTrimPrec = '20161231'
--SET @appoDataFineTrimPrec = '20160930'
--SET @appoDataFineTrimPrec = '20160630'
--SET @appoDataFineTrimPrec = '20160331'
--SET @appoDataFineTrimPrec = '20151231'
--SET @appoDataFineTrimPrec = '20150930'
--SET @appoDataFineTrimPrec = '20150630'

-- QUI VA SPECIFICATO IL PERIODO DI EFFETTIVA GENERAZIONE DEI REPORT CHE, IN GENERE, E' IL MESE SUCCESSIVO
-- A QUELLO DI FINE TRIMESTRE
DECLARE @appoDataGenerazioneTrimPrecDa varchar(8)

SET @appoDataGenerazioneTrimPrecDa = [C6MartPeriodico].[getDateTrimestre](1, 0, 0)

--SET @appoDataGenerazioneTrimPrecDa = '20181001'

--SET @appoDataGenerazioneTrimPrecDa = '20180701'
--SET @appoDataGenerazioneTrimPrecDa = '20180401'
--SET @appoDataGenerazioneTrimPrecDa = '20180101'
--SET @appoDataGenerazioneTrimPrecDa = '20171001'
--SET @appoDataGenerazioneTrimPrecDa = '20170701'
--SET @appoDataGenerazioneTrimPrecDa = '20170401'
--SET @appoDataGenerazioneTrimPrecDa = '20170101'
--SET @appoDataGenerazioneTrimPrecDa = '20161001'
--SET @appoDataGenerazioneTrimPrecDa = '20160701'
--SET @appoDataGenerazioneTrimPrecDa = '20160401'
--SET @appoDataGenerazioneTrimPrecDa = '20160101'
--SET @appoDataGenerazioneTrimPrecDa = '20151001'
--SET @appoDataGenerazioneTrimPrecDa = '20150701'

DECLARE @appoDataGenerazioneTrimPrecA varchar(8)

SET @appoDataGenerazioneTrimPrecA = [C6MartPeriodico].[getDateTrimestre](1, 1, 1)

--SET @appoDataGenerazioneTrimPrecA = '20181031'

--SET @appoDataGenerazioneTrimPrecA = '20180731'
--SET @appoDataGenerazioneTrimPrecA = '20180430'
--SET @appoDataGenerazioneTrimPrecA = '20180131'
--SET @appoDataGenerazioneTrimPrecA = '20171031'
--SET @appoDataGenerazioneTrimPrecA = '20170731'
--SET @appoDataGenerazioneTrimPrecA = '20170430'
--SET @appoDataGenerazioneTrimPrecA = '20170131'
--SET @appoDataGenerazioneTrimPrecA = '20161031'
--SET @appoDataGenerazioneTrimPrecA = '20160731'
--SET @appoDataGenerazioneTrimPrecA = '20160430'
--SET @appoDataGenerazioneTrimPrecA = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecA = '20151031'
--SET @appoDataGenerazioneTrimPrecA = '20150731'

DECLARE @appoDataGenerazioneTrimPrecX2Da varchar(8)

SET @appoDataGenerazioneTrimPrecX2Da = [C6MartPeriodico].[getDateTrimestre](2, 0, 0)

--SET @appoDataGenerazioneTrimPrecX2Da = '20180701'

--SET @appoDataGenerazioneTrimPrecA = '20180401'
--SET @appoDataGenerazioneTrimPrecA = '20180101'
--SET @appoDataGenerazioneTrimPrecA = '20171001'
--SET @appoDataGenerazioneTrimPrecA = '20170701'
--SET @appoDataGenerazioneTrimPrecA = '20170401'
--SET @appoDataGenerazioneTrimPrecA = '20170101'
--SET @appoDataGenerazioneTrimPrecA = '20161001'
--SET @appoDataGenerazioneTrimPrecA = '20160701'
--SET @appoDataGenerazioneTrimPrecA = '20160401'
--SET @appoDataGenerazioneTrimPrecA = '20160101'
--SET @appoDataGenerazioneTrimPrecX2Da = '20151001'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150701'
--SET @appoDataGenerazioneTrimPrecX2Da = '20150401'

DECLARE @appoDataGenerazioneTrimPrecX2A varchar(8)

SET @appoDataGenerazioneTrimPrecX2A = [C6MartPeriodico].[getDateTrimestre](2, 1, 1)

--SET @appoDataGenerazioneTrimPrecX2A = '20180731'

--SET @appoDataGenerazioneTrimPrecX2A = '20180430'
--SET @appoDataGenerazioneTrimPrecX2A = '20180131'
--SET @appoDataGenerazioneTrimPrecX2A = '20171031'
--SET @appoDataGenerazioneTrimPrecX2A = '20170731'
--SET @appoDataGenerazioneTrimPrecX2A = '20170430'
--SET @appoDataGenerazioneTrimPrecX2A = '20170131'
--SET @appoDataGenerazioneTrimPrecX2A = '20161031'
--SET @appoDataGenerazioneTrimPrecX2A = '20160731'
--SET @appoDataGenerazioneTrimPrecX2A = '20160430'
--SET @appoDataGenerazioneTrimPrecX2A = '20160228' -- solo per questa trim. mettiamo 2 mesi di generazione perché in effetti abbiamo finito a fine febbraio 2016
--SET @appoDataGenerazioneTrimPrecX2A = '20151031'
--SET @appoDataGenerazioneTrimPrecX2A = '20150731'
--SET @appoDataGenerazioneTrimPrecX2A = '20150430'


TRUNCATE TABLE C6MARTPERIODICO.SELEZIONECAMPIONE
--select * into c6martperiodico.appo_selezione_campione from  C6MARTPERIODICO.SELEZIONECAMPIONE
--0 tutta la popolazione


INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
select distinct bf.cod_fiscale, bf.rete
from
C6MartPeriodico.rp_vcontrattipergenerazionereport bf
) bf


--1  UNA MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'UNA MACRO ASSET                                  ' AS DESCRIZIONE,
1 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
--into c6martperiodico.selezionecampione
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 1 "ASSET CLASS" anzichè 1 "MACRO ASSET CLASS"
--select distinct bf.cod_fiscale, bf.rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=1
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=1
) bf


--2 TUTTE LE MACRO ASSET

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select  
bf.rete, 
bf.cod_fiscale,
'TUTTE LE MACRO ASSET                             ' AS DESCRIZIONE,
0 AS c1,
1 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
from 
(
--Effettuato intervento correttivo in quanto venivano estratti i clienti che presentavano 7 "ASSET CLASS" anzichè 7 "MACRO ASSET CLASS"
--select distinct cod_fiscale, rete
--from
--C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASs a
--where p.COD_PRODOTTO = bf.COD_PRODOTTO
--and p.ID_ASSETCLASS=a.ID_ASSETCLASS
--group by bf.rete, bf.cod_fiscale
--having count(distinct a.ordinamento)=7
select distinct cod_fiscale, rete
from
C6MartPeriodico.patrimonio_bf bf, C6MartPeriodico.ASSET_PERC p, C6MartPeriodico.ASSETCLASS a
where p.COD_PRODOTTO = bf.COD_PRODOTTO
and p.ID_ASSETCLASS=a.ID_ASSETCLASS
and a.ordinamento like '%000'
group by bf.rete, bf.cod_fiscale
having count(distinct a.ordinamento)=7
) bf


--3 TUTTE LE AREE SONO MONITORATE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis as cod_fiscale,
'TUTTE LE AREE SONO MONITORATE                    ' AS DESCRIZIONE,

0 AS c1,
0 AS c2,
1 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, count(distinct codarea) c
from C6StagingPeriodico.TANAB
where dtfine='99991231'
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=4
)bf


--4 SENZA PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'SENZA PATRIMONIO TERZI                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
1 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


--5 RISCHIO CREDITO NA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO N.A.                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
1 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk is null
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 6 CLASSE DI RISCHIO CREDITO > 3 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RISCHIO CREDITO > 3                              ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
1 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>3
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 7 PRODOTTO SENZA RENDIMENTO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PRODOTTO SENZA RENDIMENTO                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
1 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end as cod_fiscale
from C6StagingPeriodico.TSCABP
) bf


-- 8 piu trimestrali

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PIU TRIMESTRALI                                  ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
1 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, codicefiscale AS COD_FISCALE, count(*)N
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where tiporeport='M'
and dataGenerazione > @appoDataGenerazioneTrimPrecX2Da
group by rete, codicefiscale
having count(*)>1
) bf


-- 9 PATRIMONIO TERZI SU PIU' INTERMEDIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI SU PIU'' INTERMEDIARI           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
1 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, count(distinct a.intermediario) M
from C6MartPeriodico.PATRIMONIO_TERZI a
group by a.rete, a.cod_fiscale
having count(distinct a.intermediario)>1
) bf


-- 10 PERSONE GIURIDICHE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PERSONE GIURIDICHE                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
1 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where len(cod_fiscale)=11
) bf


-- 11 PB TERMINATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PB TERMINATI                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
1 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct bf.rete, bf.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF bf, C6Mart.CONTRATTOSEI c6,C6Stagingperiodico.ADS4WS_PROMOTORI pr
--where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
--and c6.cod_agente=pr.codice and pr.rete=c6.rete
--and stato= 'T'
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6,C6Stagingperiodico.RP_anagrafica_promotori pr
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and c6.cod_agente=pr.codage and pr.rete=c6.rete
and stato= 'T'
) bf


-- 12 PATRIMONIO TERZI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATRIMONIO TERZI                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
1 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_TERZI a
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.PATRIMONIO_bf a
where a.cod_fiscale + a.rete in (select distinct cod_fiscale + rete from C6MartPeriodico.PATRIMONIO_TERZI)
) bf


-- 13 PATR NON RAPPR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR NON RAPPR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
1 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale
from C6MartPeriodico.vPatrimonioNonRappresentabileAsset
) bf


-- 14 PATR IMMOBILIARE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PATR IMMOB                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
1 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select a.rete, a.cod_fiscale, sum(a.VALORE_STIMATO) M
from C6MartPeriodico.PATRIMONIO_IMMOBILIARE a 
group by a.rete, a.cod_fiscale
) bf


-- 15 PARTITE VIAGGIANTI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
1 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PARTITE_VIAGGIANTI) bf


--16 NON MONITORATI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON MONITORATI                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
1 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.patrimonio_bf bf
where bf.rete + bf.cod_fiscale not in ( select distinct rete + case when len(codfis) =4 then 'FF@'+codfis else codfis end from C6StagingPeriodico.TANAB where dtfine='99991231')
) bf


-- 17 NO PATR IMMOB

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'NON PATR IMMOB                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
1 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from  C6MartPeriodico.PATRIMONIO_bf 
where cod_fiscale + rete not in (select distinct cod_fiscale + rete from C6MartPeriodico.patrimonio_immobiliare)

) bf


-- 18 MON SU UNA SOLA AREA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON SU UNA SOLA AREA                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
1 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(select rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE, count(distinct codarea) H
from C6StagingPeriodico.TANAB
group by rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end
having count(distinct codarea)=1

) bf


-- 19 MON DA PIU DI 12 MESI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MON DA PIU DI 12 MESI                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
1 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct  rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_FISCALE
from C6StagingPeriodico.TANAB
--where ('20101201'-dtrif)/30>12
where dtrif < convert(varchar(8), DATEADD(year, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112)
) bf


-- 20 MON APPENA AVVIATO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select
bf.rete, 
bf.cod_fiscale,
'MON APPENA AVVIATO                               ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
1 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, case when len(codfis) =4 then 'FF@'+codfis else codfis end AS COD_fISCALE
from  C6StagingPeriodico.TANAB
--where '20101201'-GETDATE()<1
where (dtrif > convert(varchar(8), DATEADD(day, -1, c6martperiodico.getTrimestre2(getdate(), 1)), 112))
) bf


-- 21 MANDATI FIDUCIARI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MANDATI FIDUCIARI                                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
1 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF 
where cod_fiscale like 'FF@%'
) bf


-- 22 INADEGUATI VAR

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI VAR                                   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
1 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_RISCHIO cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.var_perc_ptf>cod.max_var
and a.cod_aggreg='COMPLESSIVO'
) bf


-- 23 INADEGUATI CRISK

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI CRISK                                 ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
1 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale
from C6MartPeriodico.RISCHIO_AGGREGATO a, C6MartPeriodico.CODIFICA_CREDITRISK cod, C6MartPeriodico.MIFID mifid
where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
and cod.profilo=mifid.profilo_ass
and a.creditrisk>mifid.profilo_ass
and a.cod_aggreg='COMPLESSIVO'
) bf

 
-- 24 INADEGUATI COMPLESSITA

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INADEGUATI COMPLESSITA                           ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
1 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
-- EN2060408: begin - adapted to new feature "Adeguatezza" comnplexity / concentration
--select distinct a.rete, a.cod_fiscale
--from C6MartPeriodico.PATRIMONIO_BF a, C6MartPeriodico.MIFID mifid
--where mifid.rete=a.rete and mifid.cod_fiscale=a.cod_fiscale
--and mifid.experience<(select max(complex) from C6MartPeriodico.PATRIMONIO_BF where rete=mifid.rete and cod_fiscale=mifid.cod_fiscale)
SELECT top 500 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 200 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'S')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'S' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
	UNION 
SELECT top 20 rete, codfis as cod_fiscale FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] ancmpl
WHERE 
	([ancmpl].[CLCOMPL] = 'N' and [ancmpl].[FLGCONC] = 'N')
order by dttrim desc
) bf
-- EN2060408: end


-- 25 DIVERSIFICAZIONE < 30

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'DIVERSIFICAZIONE < 30                            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
1 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(

select rete, cod_fiscale, beneficio
from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='COMPLESSIVO'
and beneficio<30

) bf

 
-- 26 CC NEG E POS 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEG E POS                                     ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
1 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0 
) bf


-- 27 CC NEG

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC NEGATIVO                                      ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
1 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select rete, cod_fiscale, sum(saldocontabile) M
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)<0
) bf
where rete+cod_fiscale not in 
(
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile<0
intersect
select distinct  rete+cod_fiscale
from C6MartPeriodico.ANAG_CC
where saldocontabile>0
)


-- 28 REND NON RAPPR COME UNICA POSIZIONE

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'REND NON RAPPR COME UNICA POSIZIONE IN AREA MONIT' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
1 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
SELECT
DISTINCT T.RETE, T.COD_FISCALE FROM
(
SELECT
RETE, COD_FISCALE , ID_AREA, SUM(CASE WHEN REND_NON_RAPPR =1 THEN 0 ELSE 1 END) TOT 
FROM
C6MARTPERIODICO
.PATRIMONIO_BF B 
GROUP
BY 
RETE
, COD_FISCALE, ID_AREA 
)
T, 
(
SELECT
RETE, case when len(codfis) =4 then 'FF@'+codfis else codfis end as codfis, CASE WHEN CODAREA ='EXR' THEN 'EXT'ELSE CODAREA END AS CODAREA FROM
C6STAGINGPERIODICO
.TANAB 
WHERE
DTFINE = 99991231 
)
B 
WHERE
T
.RETE=B.RETE AND B.CODFIS=T.COD_FISCALE 
AND
ID_AREA=CODAREA 
AND
TOT=0

) bf


-- 29 PREVIDENZA 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PREVIDENZA                                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
1 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF
where id_area like '%Pre%'
) bf


--30 RESTART CONTRATTOSEI

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'RESTART CONTRATTOSEI                             ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
1 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, codicefiscale as cod_fiscale
from C6StoricoPeriodico.GESTIONE_PDF_FTP
where datagenerazione between @appoDataGenerazioneTrimPrecX2Da and @appoDataGenerazioneTrimPrecX2A
except 
select distinct p.rete,p.codicefiscale
     from C6StoricoPeriodico.GESTIONE_PDF_FTP p
     inner join c6martperiodico.patrimonio_bf b
     on p.rete=b.rete and p.codicefiscale =b.cod_fiscale 
        where datagenerazione between @appoDataGenerazioneTrimPrecDa and @appoDataGenerazioneTrimPrecA
        
--select distinct rete, codicefiscale as cod_fiscale
--from appoGESTIONE_PDF_FTP
--where datagenerazione between '20111001' and '20111031'
--and rete + codicefiscale not in (select distinct rete + codicefiscale
--        from appoGESTIONE_PDF_FTP
--        where datagenerazione between '20120101' and '20120131')
--and rete + codicefiscale in (select distinct rete + cod_fiscale
--        from c6martperiodico.patrimonio_bf)        
        
) bf


--31 INDIRIZZO CONTRATTO ESTERO

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'INDIRIZZO CONTRATTO ESTERO                       ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
1 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct bf.rete, bf.cod_fiscale
from C6MartPeriodico.PATRIMONIO_BF bf, C6MartPeriodico.CONTRATTOSEI c6
where bf.rete=c6.rete and bf.cod_fiscale=c6.cod_fiscale
and nazione<> 'italia'
) bf


--32 CC>10000

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CC>10000                                         ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
1 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.ANAG_CC
group by rete, cod_fiscale
having sum(saldocontabile)>10000
) bf


--33 COPERTURA INFERIORE A 100

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'COPERTURA INFERIORE A 100                        ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
1 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
 from C6MartPeriodico.RISCHIO_AGGREGATO
where cod_aggreg='complessivo'
and copertura<100
) bf


--34 evoluzione controvalore > 30%

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'EVOLUZIONE CONTROVALORE > 30%                    ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
1 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct corrente.rete, corrente.cod_fiscale 
from
(select b.rete, b.cod_fiscale, sum(controvalore) ctv
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
group by b.rete, b.cod_fiscale) scorsa,
(select rete, cod_fiscale, sum(ctv) ctv
from c6martperiodico.patrimonio_bf
group by rete, cod_fiscale) corrente
where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
and  (case when scorsa.ctv>corrente.ctv
      then (scorsa.ctv-abs(corrente.ctv))
      else (corrente.ctv-abs(scorsa.ctv))
      end)
      >
	 (case when scorsa.ctv>corrente.ctv
      then (0.30*corrente.ctv)
      else (0.30*scorsa.ctv)
      end)
--select distinct corrente.rete, corrente.cod_fiscale
--from
--(select rete, cod_fiscale, sum(controvalore) ctv
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--group by rete, cod_fiscale) scorsa,
--(select rete, cod_fiscale, sum(ctv) ctv
--from c6martperiodico.patrimonio_bf
--group by rete, cod_fiscale) corrente
--where scorsa.rete=corrente.rete and scorsa.cod_fiscale=corrente.cod_fiscale
--and (0.33*scorsa.ctv>corrente.ctv or 0.33*scorsa.ctv<corrente.ctv)
) bf


--35  Clienti con investimenti in corso nel precedente report 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'CLIENTI CON INV IN CORSO NEL PRECEDENTE REPORT   ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
1 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct b.rete, b.cod_fiscale
from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 a
inner join C6StagingPeriodico.appo_contratti b
on a.chiaveClientePB=b.chiaveClientePB 
where a.investimentiincorso>0

--select distinct rete, cod_fiscale
--from C6StagingPeriodico.S80_EVOL_STAMPA_C6
--where investimentiincorso>0

) bf


--36  Monitoraggio con cedole/dividendi 

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'MONITORAGGIO CON CEDOLE/DIVIDENDI                ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
1 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale
from C6MartPeriodico.MONITORAGGIO_ATTUALE
where CEDOLE_DIVIDENDI>0 
) bf


-- 37 PARTITE VIAGGIANTI DI DISINVESTIMENTO - 19/1/2016

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'PARTITE VIAGGIANTI DI DISINVESTIMENTO            ' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
1 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from C6MartPeriodico.patrimonio_bf a
inner join [C6StampeCentralizzate].[C6MartPeriodico].[TB_Campione] b
on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where (partvia_disinv <> 0.000 and partvia_disinv is not null)
) bf


--CRITERIO ELIMINATO IN QUANTO DUPLICATO DEL CRITERIO 31
--38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
--select 
--bf.rete, 
--bf.cod_fiscale,
--'Indirizzo Estero' AS DESCRIZIONE,
--0 AS c1,
--0 AS c2,
--0 AS c3,
--0 AS c4,
--0 AS c5,
--0 AS c6,
--0 AS c7,
--0 AS c8,
--0 AS c9,
--0 AS c10,
--0 AS c11,
--0 AS c12,
--0 AS c13,
--0 AS c14,
--0 AS c15,
--0 AS c16,
--0 AS c17,
--0 AS c18,
--0 AS c19,
--0 AS c20,
--0 AS c21,
--0 AS c22,
--0 AS c23,
--0 AS c24,
--0 AS c25,
--0 AS c26,
--0 AS c27,
--0 AS c28,
--0 AS c29,
--0 AS c30,
--0 AS c31,
--0 AS c32,
--0 AS c33,
--0 AS c34,
--0 AS c35,
--0 AS c36,
--0 AS c37,
--1 AS c38,
--0 AS c39,
--0 AS c40,
--0 AS c41,
--0 AS c42,
--0 AS c43,
--0 AS c44,
--0 AS c45,
--0 AS c46,
--0 AS c47,
--0 AS c48,
--0 AS c49,
--0 AS c50,
--0 AS c51,
--0 AS c52,
--0 AS c53,
--0 AS c54,
--0 AS c55,
--0 AS c56,
--0 AS c57,
--0 AS c58
--FROM
--(
--select distinct rete, cod_fiscale 
--from c6martperiodico.contrattosei
--where nazione <> 'italia'
--) bf

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'S', 
--'RSSRNZ49E14A479S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'CSCGPP34A03L050L',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

----38   Indirizzo Estero

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNERSR61L08C351V',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'BGLPRD65E10Z130S',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)

--INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE 
-- VALUES (
--'F', 
--'LNZNLS71M48C814J',
--'Indirizzo Estero',
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--1,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0,
--0)


---------------------
--c39

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C39 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
1 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
where data_foto >= @appoDataInizioTrimestre
) bf


--c40

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C40 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
1 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is not null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is not null
) bf


--41
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C41 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
1 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
and c.rete is null

--select distinct a.* from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto >= '20111001' and data_foto < @appoDataInizioTrimestre
--and c.rete is null

) bf


--c42
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C42 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
1 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is null
) bf



--c43
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'Campionatura C43 apporti e prelievi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
1 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete,a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
left join 
(select distinct y.rete,y.cod_fiscale from C6StagingPeriodico.RP_REP_S80_EVOL_STAMPA_C6 x
inner join C6StagingPeriodico.appo_contratti y
on x.chiaveClientePB=y.chiaveClientePB) c 
on a.rete = c.rete
and a.cod_fiscale = c.cod_fiscale
where data_foto < '20111001'
and c.rete is not null

--select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
--left join C6StagingPeriodico.S80_EVOL_STAMPA_C6 c
--on a.rete = c.rete
--and a.cod_fiscale = c.cod_fiscale
--where data_foto < '20111001'
--and c.rete is not null
) bf


--C44
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.cod_fiscale,
'F' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
1 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.cod_fiscale from c6martperiodico.monitoraggio_iniziale a
inner join c6stagingperiodico.st_mon 
on a.cod_fiscale = codfis
and a.rete = st_mon.rete
where data_foto > '20111001'
) bf


--C45
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'G' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
1 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto < '20111001'
) bf



--C46
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'H' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
1 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--and dttrim = '20111231' -- dttrim = dt fine trimestre precedente
and dttrim = @appoDataFineTrimPrec
and data_foto > '20111001'
) bf


--C47
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'I' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
1 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and dttrim = @appoDataFineTrimestre
and data_foto > '20111001'
) bf


--C48
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'J' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
1 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
/*
(select * from c6stagingperiodico.wseics where dttrim = '20111231') a
inner join
(select * from c6stagingperiodico.wseics where dttrim = '20120331') b
on a.rete = b.rete
and a.codfis = b.codfis
inner join c6martperiodico.monitoraggio_iniziale c
on b.codfis = c.cod_fiscale
and b.rete = c.rete
where
a.codprod not in ('37', 'GP')
and
b.codprod in ('37', 'GP')
and c.data_foto > '20111001'
*/

select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
--		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'

) bf


--C49
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'K' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
1 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
--select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
--inner join c6stagingperiodico.wseics b
--on b.codfis = b.codfis
--and a.rete = b.rete
--where a.codprod not in ('37', 'GP')
----Se fase di Simulazione:
----		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
----and a.dttrim = '20131130'
----Se fase di Trimestrale:
----		Impostare la condizione DTTRIM = a dt fine trimestre in elaborazione
--and a.dttrim = @appoDataFineTrimestre
--and b.codprod in ('37', 'GP')
----and b.dttrim = '20111231' -- b.dttrim = dt fine trimestre precedente
--and b.dttrim = @appoDataFineTrimPrec


select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on a.codfis = b.cod_fiscale
and a.rete = b.rete
where a.codprod in ('37', 'GP')
and   a.dttrim = @appoDataFineTrimPrec
and   b.data_foto > '20111001'and   b.data_foto > '20111001'
except
select distinct a.rete, a.codfis from c6stagingperiodico.wseics a
inner join c6martperiodico.monitoraggio_iniziale b
on    a.codfis = b.cod_fiscale
and   a.rete = b.rete
where a.codprod in ('37', 'GP')
--Se fase di Simulazione:
--		Impostare la condizione DTTRIM = a dt fine mese precedente a dt fine trimestre
--and a.dttrim = '20131130'
--Se fase di Trimestrale:
and   a.dttrim = @appoDataFineTrimestre
and   b.data_foto > '20111001'

) bf

--nuovi-----------------------------------------------------------

--C50
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti OLD' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
1 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 0
) bf

--C51
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Affluent' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
1 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 1
) bf



--C52
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Popolazione Contratti Private' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
1 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport
where tip_contratto = 2
) bf


--C53
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Bonus' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
1 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.bonus bon
on vc.rete = bon.rete
and vc.cod_fiscale = bon.cod_fiscale
) bf


--C54
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Scadenze' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
1 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.scadenze sca
on vc.rete = sca.rete
and vc.cod_fiscale = sca.cod_fiscale
) bf

--C55
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Proventi' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
1 AS c55,
0 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct vc.rete, vc.cod_fiscale as codfis from 
c6martperiodico.rp_vcontrattipergenerazionereport vc
inner join
c6martperiodico.proventi pro
on vc.rete = pro.rete
and vc.cod_fiscale = pro.cod_fiscale
) bf

--C56
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'Monitoraggio avviato Trimestre precedente' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
1 AS c56,
0 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where data_foto > '20120101'
--where data_foto > C6MartPeriodico.getPreviousTrimestre(getdate(), 1)
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
) bf


--C57
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
1 AS c57,
0 AS c58
FROM
(
select distinct rete, cod_fiscale as codfis from c6martperiodico.monitoraggio_iniziale a
--where isnull(data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
where isnull(data_foto,getDate()) between @appoDataInizioTrimestre and @appoDataFineTrimestre
) bf


--C58
INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE
select 
bf.rete, 
bf.codfis,
'' AS DESCRIZIONE,
0 AS c1,
0 AS c2,
0 AS c3,
0 AS c4,
0 AS c5,
0 AS c6,
0 AS c7,
0 AS c8,
0 AS c9,
0 AS c10,
0 AS c11,
0 AS c12,
0 AS c13,
0 AS c14,
0 AS c15,
0 AS c16,
0 AS c17,
0 AS c18,
0 AS c19,
0 AS c20,
0 AS c21,
0 AS c22,
0 AS c23,
0 AS c24,
0 AS c25,
0 AS c26,
0 AS c27,
0 AS c28,
0 AS c29,
0 AS c30,
0 AS c31,
0 AS c32,
0 AS c33,
0 AS c34,
0 AS c35,
0 AS c36,
0 AS c37,
0 AS c38,
0 AS c39,
0 AS c40,
0 AS c41,
0 AS c42,
0 AS c43,
0 AS c44,
0 AS c45,
0 AS c46,
0 AS c47,
0 AS c48,
0 AS c49,
0 AS c50,
0 AS c51,
0 AS c52,
0 AS c53,
0 AS c54,
0 AS c55,
0 AS c56,
0 AS c57,
1 AS c58
FROM
(
--select distinct b.rete, b.cod_fiscale as codfis
--from c6martperiodico.monitoraggio_report a
--right join C6MartPeriodico.rp_vcontrattipergenerazionereport b
--on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete is null

select distinct rete, cod_fiscale as codfis 
from c6martperiodico.monitoraggio_iniziale 
where isnull(data_foto,getDate()) between @appoDataInizioTrimPrec and @appoDataFineTrimPrec
except
select distinct rete, cod_fiscale as codfis
from c6martperiodico.monitoraggio_report

) bf
---------------------

--drop table C6MARTPERIODICO.SELEZIONECAMPIONE2

truncate table  C6MARTPERIODICO.SELEZIONECAMPIONE2

INSERT INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
select
v.rete, 
v.cod_fiscale,
sum( C1 ) as C1,
sum( C2 ) as C2,
sum( C3 ) as C3,
sum( C4 ) as C4,
sum( C5 ) as C5,
sum( C6 ) as C6,
sum( C7 ) as C7,
sum( C8 ) as C8,
sum( C9 ) as C9,
sum( C10 ) as C10,
sum( C11) as C11,
sum( C12 ) as C12,
sum( C13 ) as C13,
sum( C14 ) as C14,
sum( C15 ) as C15,
sum( C16 ) as C16,
sum( C17 ) as C17,
sum( C18 ) as C18,
sum( C19 ) as C19,
sum( C20 ) as C20,
sum( C21 ) as C21,
sum( C22 ) as C22,
sum( C23) as C23,
sum( C24 ) as C24,
sum( C25 ) as C25,
sum( C26) as C26,
sum( C27 ) as C27,
sum( C28) as C28,
sum( C29 ) as C29,
sum( C30 ) as C30,
sum(C31) AS C31,
SUM(C32) AS C32,
SUM(C33) AS C33,
SUM(C34) AS C34,
SUM(C35) AS C35,
SUM(C36) AS C36,
SUM(C37) AS C37,
SUM(C38) AS C38,
SUM(C39) AS C39,
SUM(C40) AS C40,
SUM(C41) AS C41,
SUM(C42) AS C42,
SUM(C43) AS C43,
SUM(C44) AS C44,
SUM(C45) AS C45,
SUM(C46) AS C46,
SUM(C47) AS C47,
SUM(C48) AS C48,
SUM(C49) AS C49,

SUM(C50) AS C50,
SUM(C51) AS C51,
SUM(C52) AS C52,
SUM(C53) AS C53,
SUM(C54) AS C54,
SUM(C55) AS C55,
SUM(C56) AS C56,
SUM(C57) AS C57,
SUM(C58) AS C58

--INTO C6MARTPERIODICO.SELEZIONECAMPIONE2
FROM
C6MARTPERIODICO.SELEZIONECAMPIONE sc join C6MartPeriodico.rp_vcontrattipergenerazionereport v  
on sc.rete=v.rete and sc.cod_fiscale=v.cod_fiscale

--modifica del 10/7/2018 per non far includere quelli della blacklist (se ci sono)
where sc.rete+sc.cod_fiscale not in (select rete+codicefiscale from [C6StampeCentralizzate].[C6MartPeriodico].[ExcludedList])


group by
v.rete,
v.cod_fiscale

END



--SELECT * FROM C6MARTPERIODICO.SELEZIONECAMPIONE2
























GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_STORICIZZAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 21 gennaio 2009
-- Description:	Effettua una storicizzazione del DataMart prima dell'import di nuovi dati.
-- =============================================
-- [C6MartPeriodico].[SRV_STORICIZZAZIONE] 'GESTIONE_EMAIL'
CREATE PROCEDURE [C6MartPeriodico].[SRV_STORICIZZAZIONE]
	@NomeTabella AS VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MARTPERIODICO.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	--XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONTRATTOSEI
		(Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, PartViaDisinv, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, Data_Invio_Diagnosi_Trimestrale, Data_Invio_Monitoraggio_Trimestrale, ID_ELAB)
		SELECT 
		 C.Rete, C.Cod_Fiscale, C.Data_Sott, C.CodiceContratto, C.Cod_Agente, C.Data_Perf_Base, C.Data_Perf, C.Fascia_CPP, C.Email, C.Indirizzo, C.CAP, C.Citta, C.Prov, C.Nazione, C.Presso, C.Data_Inizio, C.Freq_Diagnosi, C.Freq_Monitor, C.Freq_DiagnosiPrec, C.Freq_MonitorPrec, C.Data_InizioConsInv, C.Data_InizioBase, C.Data_FineBase, C.Data_InizioAvanzato, C.Data_FineAvanzato, C.ProgressivoInvio, C.GenerazioneReport, C.InvioBenvenuto, C.DataUltimoInvio, C.ClienteMigrato, C.RisorseNA, C.PartViaDisinv, C.NumSolleciti, C.Data_UltimoSollecito, C.NumRevoche, C.Data_UltimaRevoca, C.Note, C.Data_Invio_Diagnosi_Trimestrale, C.Data_Invio_Monitoraggio_Trimestrale, @ID_ELAB
		FROM C6Mart.CONTRATTOSEI C--WHERE ID_ELAB = @ID_ELAB
		LEFT OUTER JOIN C6StoricoPeriodico.CONTRATTOSEI SC
			ON C.Rete = SC.Rete
			AND C.Cod_Fiscale = SC.Cod_Fiscale
			AND C.CodiceContratto = SC.CodiceContratto
		WHERE SC.Rete IS NULL
	END
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CC
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AC.RETE, AC.COD_FISCALE, AC.INTERMEDIARIO, AC.COINTEST, AC.COD_CC, AC.FASCIA_CPP, AC.SALDO, AC.DATA_APERTURA, AC.DATA_CHIUSURA, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6MartPeriodico.ANAG_CC AC
		LEFT OUTER JOIN C6StoricoPeriodico.ANAG_CC SAC
			ON AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
			AND AC.COD_CC = SAC.COD_CC
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CC_TERZI
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB)
		SELECT 
		 ACT.RETE, ACT.COD_FISCALE, ACT.INTERMEDIARIO, ACT.COINTEST, ACT.COD_CC, ACT.FASCIA_CPP, ACT.SALDO, ACT.DATA_APERTURA, ACT.DATA_CHIUSURA, ACT.ID_ELAB
		FROM C6MartPeriodico.ANAG_CC_TERZI ACT
		LEFT OUTER JOIN C6StoricoPeriodico.ANAG_CC_TERZI SACT
			ON ACT.RETE = SACT.RETE
			AND ACT.COD_FISCALE = SACT.COD_FISCALE
			AND ACT.INTERMEDIARIO = SACT.INTERMEDIARIO
			AND ACT.COD_CC = SACT.COD_CC
		WHERE ACT.ID_ELAB = @ID_ELAB AND SACT.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CLIENTI
		(RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AC.RETE, AC.COD_FISCALE, AC.NOME, AC.COGNOME, AC.DATA_NASCITA, AC.STATO_CIVILE, AC.NUM_COMPONENTI, AC.NUM_FIGLI, AC.ETA, AC.PARTITA_IVA, AC.CITTADINANZA, AC.PERSONA_FIS_GIUR, AC.INDIRIZZO, AC.LOCALITA, AC.PROVINCIA, AC.CAP, AC.NAZIONE, AC.PRESSO, AC.TEL_RECAPITO, AC.TEL_CELL, AC.E_MAIL, AC.DATA_INIZIO, AC.DATA_FINE, AC.STATO, AC.RAG_SOC, AC.SESSO, AC.ID_PROMOTORE, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6MartPeriodico.ANAG_CLIENTI AC
		LEFT OUTER JOIN C6StoricoPeriodico.ANAG_CLIENTI SAC
			ON AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI_PREV XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI_PREV')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ANAG_CLIENTI_PREV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ANAG_CLIENTI_PREV
	--		(RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB
	--		FROM C6MartPeriodico.ANAG_CLIENTI_PREV WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_PRODOTTI
		(COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.COD_PRODOTTO, AP.COD_ISIN, AP.PAESE, AP.ID_AREA, AP.CAT_PRODOTTO, AP.TIPO_PRODOTTO, AP.DESCR_PRODOTTO, AP.DIV_QUOTAZIONE, AP.DIV_REGOLAMENTO, AP.ID_EMITTENTE, AP.MERCATO_CONTRATT, AP.COD_MAF, AP.RATING, AP.COD_ADEGUATEZZA, AP.COD_SOTTOPRODOTTO, AP.COD_INTERNO, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6MartPeriodico.ANAG_PRODOTTI AP
		LEFT OUTER JOIN C6StoricoPeriodico.ANAG_PRODOTTI SAP
			ON AP.COD_PRODOTTO = SAP.COD_PRODOTTO
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.COD_PRODOTTO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_PRODOTTI_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_PRODOTTI_TERZI
		(COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB)
		SELECT 
		 APT.COD_PRODOTTO, APT.COD_PRODOTTO_TERZI, APT.NOME_PRODOTTO, APT.ALBERO_PRODOTTI, APT.COD_ISIN, APT.DESCR_PRODOTTO, APT.DIV_QUOTAZIONE, APT.INTERMEDIARIO, APT.DIV_REGOLAMENTO, APT.ID_EMITTENTE, APT.MERCATO_CONTRATT, APT.PAESE, APT.RATING, APT.ID_ELAB, APT.TIPO_ELAB
		FROM C6MartPeriodico.ANAG_PRODOTTI_TERZI APT
		LEFT OUTER JOIN C6StoricoPeriodico.ANAG_PRODOTTI_TERZI SAPT
			ON APT.COD_PRODOTTO_TERZI = SAPT.COD_PRODOTTO_TERZI
		WHERE APT.ID_ELAB = @ID_ELAB AND SAPT.COD_PRODOTTO_TERZI IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PROMOTORI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_PROMOTORI
		(RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.RETE, AP.ID_PROMOTORE, AP.LIVELLO, AP.COD_FISCALE, AP.PARTITA_IVA, AP.COGNOME, AP.NOME, AP.RAG_SOC, AP.DATA_INIZIO, AP.DATA_FINE, AP.INDIRIZZO, AP.LOCALITA, AP.PROVINCIA, AP.CAP, AP.NAZIONE, AP.TEL_RECAPITO, AP.TEL_CELL, AP.E_MAIL, AP.COD_ABI, AP.COD_CAB, AP.COD_CIN, AP.COD_CC, AP.STATO, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6MartPeriodico.ANAG_PROMOTORI AP
		LEFT OUTER JOIN C6StoricoPeriodico.ANAG_PROMOTORI SAP
			ON AP.RETE = SAP.RETE
			AND AP.ID_PROMOTORE = SAP.ID_PROMOTORE
			AND AP.LIVELLO = SAP.LIVELLO
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREA_BISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREA_BISOGNO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.AREA_BISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.AREA_BISOGNO
		(ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB)
		SELECT 
		 AB.ID_AREA, AB.NOME_AREA, AB.ORDINAMENTO, AB.ID_ELAB
		FROM C6MartPeriodico.AREA_BISOGNO AB
		LEFT OUTER JOIN C6StoricoPeriodico.AREA_BISOGNO SAB
			ON AB.ID_AREA = SAB.ID_AREA
		WHERE AB.ID_ELAB = @ID_ELAB AND SAB.ID_AREA IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSET_PERC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSET_PERC
		(COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.COD_PRODOTTO, AP.ID_ASSETCLASS, AP.COD_ISIN, AP.COD_MAF, AP.COD_INTERNO, AP.COD_SOTTOPRODOTTO, AP.LIVELLO, AP.PERC, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6MartPeriodico.ASSET_PERC AP
		LEFT OUTER JOIN C6StoricoPeriodico.ASSET_PERC SAP
			ON AP.COD_PRODOTTO = SAP.COD_PRODOTTO
			AND AP.ID_ASSETCLASS = SAP.ID_ASSETCLASS
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.COD_PRODOTTO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSET_PERC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSET_PERC_TERZI
		(COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 APT.COD_PRODOTTO_TERZI, APT.ID_ASSETCLASS, APT.LIVELLO, APT.NOME_PRODOTTO, APT.TIPO_PRODOTTO, APT.PERC, APT.ID_ELAB, APT.TIPO_ELAB
		FROM C6MartPeriodico.ASSET_PERC_TERZI APT
		LEFT OUTER JOIN C6StoricoPeriodico.ASSET_PERC_TERZI SAPT
			ON APT.COD_PRODOTTO_TERZI = SAPT.COD_PRODOTTO_TERZI
			AND APT.ID_ASSETCLASS = SAPT.ID_ASSETCLASS
			AND APT.LIVELLO = SAPT.LIVELLO
		WHERE APT.ID_ELAB = @ID_ELAB AND SAPT.COD_PRODOTTO_TERZI IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSETCLASS
		(ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB)
		SELECT 
		 A.ID_ASSETCLASS, A.DESCRIZIONE, A.LIVELLO, A.ORDINAMENTO, A.ID_ELAB
		FROM C6MartPeriodico.ASSETCLASS A
		LEFT OUTER JOIN C6StoricoPeriodico.ASSETCLASS SA
			ON A.ID_ASSETCLASS = SA.ID_ASSETCLASS
		WHERE A.ID_ELAB = @ID_ELAB AND SA.ID_ASSETCLASS IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSETCLASS_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSETCLASS_TERZI
		(ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AT.ID_ASSETCLASS, AT.COD_ISIN, AT.COD_MAF, AT.COD_ADEGUATEZZA, AT.ID_ELAB, AT.TIPO_ELAB
		FROM C6MartPeriodico.ASSETCLASS_TERZI AT
		LEFT OUTER JOIN C6StoricoPeriodico.ASSETCLASS_TERZI SAT
			ON AT.ID_ASSETCLASS = SAT.ID_ASSETCLASS
		WHERE AT.ID_ELAB = @ID_ELAB AND SAT.ID_ASSETCLASS IS NULL
	END
 
  --XXXXXXXXXXXXXXXXXXXXXXXX CLIENTI_CON_RNA_ALTO XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CLIENTI_CON_RNA_ALTO')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.CLIENTI_CON_RNA_ALTO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.CLIENTI_CON_RNA_ALTO
	--		([Rete]
	--         ,[CodicePB]
	--         ,[CodiceFiscale]
	--         ,[Percentuale]
	--         ,[DataCalcolo]
	--		 , ID_ELAB)
	--		SELECT 
	--		 [Rete]
	--         ,[CodicePB]
	--         ,[CodiceFiscale]
	--         ,[Percentuale]
	--         ,[DataCalcolo]
	--		 , @ID_ELAB
	--		FROM C6MartPeriodico.CLIENTI_CON_RNA_ALTO
	--	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CODICI_PROMOTORI_FITTIZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODICI_PROMOTORI_FITTIZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CODICI_PROMOTORI_FITTIZI
		(Rete, CodiceDA, CodiceA, ID_ELAB)
		SELECT 
		 CPF.Rete, CPF.CodiceDA, CPF.CodiceA, @ID_ELAB
		FROM C6MartPeriodico.CODICI_PROMOTORI_FITTIZI CPF
		LEFT OUTER JOIN C6StoricoPeriodico.CODICI_PROMOTORI_FITTIZI SCPF
			ON CPF.Rete = SCPF.Rete
			AND CPF.CodiceDA = SCPF.CodiceDA
			AND CPF.CodiceA = SCPF.COdiceA
		WHERE SCPF.Rete IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_RISCHIO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CODIFICA_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CODIFICA_RISCHIO
		(PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB)
		SELECT 
		 CR.PROFILO, CR.DESCRIZIONE, CR.MIN_VAR, CR.MAX_VAR, CR.ID_ELAB
		FROM C6MartPeriodico.CODIFICA_RISCHIO CR
		LEFT OUTER JOIN C6StoricoPeriodico.CODIFICA_RISCHIO SCR
			ON CR.PROFILO = SCR.PROFILO
		WHERE CR.ID_ELAB = @ID_ELAB AND SCR.PROFILO IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CONGELAMENTO_SEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONGELAMENTO_SEI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONGELAMENTO_SEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONGELAMENTO_SEI
		(DATA_CONGELAMENTO, ID_ELAB)
		SELECT 
		 CS.DATA_CONGELAMENTO, CS.ID_ELAB
		FROM C6MartPeriodico.CONGELAMENTO_SEI CS
		LEFT OUTER JOIN C6StoricoPeriodico.CONGELAMENTO_SEI SCS
			ON CS.DATA_CONGELAMENTO = SCS.DATA_CONGELAMENTO
		WHERE CS.ID_ELAB = @ID_ELAB AND SCS.DATA_CONGELAMENTO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONO_PIANIFICAZIONE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO_PIANIFICAZIONE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONO_PIANIFICAZIONE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONO_PIANIFICAZIONE
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_CONO, SCENARIO_PESSIMISTICO, SCENARIO_MEDIO, SCENARIO_OTTIMISTICO, ID_ELAB)
		SELECT 
		 CP.RETE, CP.COD_FISCALE, CP.ID_AREA, CP.NOME_PROGETTO, CP.DATA_CONO, CP.SCENARIO_PESSIMISTICO, CP.SCENARIO_MEDIO, CP.SCENARIO_OTTIMISTICO, CP.ID_ELAB
		FROM C6MartPeriodico.CONO_PIANIFICAZIONE CP
		LEFT OUTER JOIN C6StoricoPeriodico.CONO_PIANIFICAZIONE SCP
			ON CP.RETE = SCP.RETE
			AND CP.COD_FISCALE = SCP.COD_FISCALE
			AND CP.ID_AREA = SCP.ID_AREA
			AND CP.NOME_PROGETTO = SCP.NOME_PROGETTO
			AND CP.DATA_CONO = SCP.DATA_CONO
		WHERE CP.ID_ELAB = @ID_ELAB AND SCP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DATI_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'DATI_REPORT')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.DATI_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.DATI_REPORT
	--		(RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB
	--		FROM C6MartPeriodico.DATI_REPORT WHERE ID_ELAB = @ID_ELAB
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DETTAGLIO_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DETTAGLIO_ASUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.DETTAGLIO_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.DETTAGLIO_ASUL
		(RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB)
		SELECT 
		 DA.RETE, DA.COD_FISCALE, DA.COD_PRODOTTO, DA.ID_CONTRATTO, DA.COD_SOTTOPRODOTTO, DA.COD_INTERNO, DA.CTV, DA.DATA_RIF, DA.COD_ISIN_FITTIZIO, DA.COD_ISIN_SOTT, DA.COD_MAF_SOTT, DA.ID_ELAB, DA.TIPO_ELAB
		FROM C6MartPeriodico.DETTAGLIO_ASUL DA
		LEFT OUTER JOIN C6StoricoPeriodico.DETTAGLIO_ASUL SDA
			ON DA.RETE = SDA.RETE
			AND DA.COD_FISCALE = SDA.COD_FISCALE
			AND DA.COD_PRODOTTO = SDA.COD_PRODOTTO
			AND DA.ID_CONTRATTO = SDA.ID_CONTRATTO
			AND DA.COD_SOTTOPRODOTTO = SDA.COD_SOTTOPRODOTTO
			AND DA.COD_INTERNO = SDA.COD_INTERNO
			AND DA.CTV = SDA.CTV
			AND DA.DATA_RIF = SDA.DATA_RIF
			AND DA.COD_ISIN_FITTIZIO = SDA.COD_ISIN_FITTIZIO
			AND DA.COD_ISIN_SOTT = SDA.COD_ISIN_SOTT
			AND DA.COD_MAF_SOTT = SDA.COD_MAF_SOTT
		WHERE DA.ID_ELAB = @ID_ELAB AND SDA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ELABORAZIONI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ELABORAZIONI
		(ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE)
		SELECT 
		 E.ID_ELAB, E.TIPO_ELAB, E.DATA_OPERAZIONE
		FROM C6MartPeriodico.ELABORAZIONI E
		LEFT OUTER JOIN C6StoricoPeriodico.ELABORAZIONI SE
			ON E.ID_ELAB = SE.ID_ELAB
		WHERE E.ID_ELAB = @ID_ELAB AND SE.ID_ELAB IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI_EMAIL_RNA XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI_EMAIL_RNA')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ELABORAZIONI_EMAIL_RNA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ELABORAZIONI_EMAIL_RNA
	--		([Data_Elaborazione],[ID_ELAB])
	--		SELECT 
	--		 [Data_Elaborazione],@ID_ELAB
	--		FROM C6MartPeriodico.ELABORAZIONI_EMAIL_RNA WHERE ID_ELAB = @ID_ELAB
	--	END

	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_PB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.EMAIL_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.EMAIL_PB
		(RETE, CODICE, PREFISSO, FIRMA, EMAIL, ID_ELAB, TIPO_ELAB)
		SELECT 
		 EP.RETE, EP.CODICE, EP.PREFISSO, EP.FIRMA, EP.EMAIL, EP.ID_ELAB, EP.TIPO_ELAB
		FROM C6MartPeriodico.EMAIL_PB EP
		LEFT OUTER JOIN C6StoricoPeriodico.EMAIL_PB SEP
			ON EP.FIRMA = SEP.FIRMA
		WHERE EP.ID_ELAB = @ID_ELAB AND SEP.FIRMA IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_EMAIL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.GESTIONE_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.GESTIONE_EMAIL
		(Email_Id, Rete, CodicePB, Tipo, Data_Generazione, Inviata, Data_Invio, ID_ELAB)
		SELECT 
		 GE.Email_Id, GE.Rete, GE.CodicePB, GE.Tipo, GE.Data_Generazione, GE.Inviata, GE.Data_Invio, GE.ID_ELAB
		FROM C6MartPeriodico.GESTIONE_EMAIL GE
		LEFT OUTER JOIN C6StoricoPeriodico.GESTIONE_EMAIL SGE
			ON GE.Email_Id = SGE.Email_Id
		WHERE GE.ID_ELAB = @ID_ELAB AND SGE.Email_Id IS NULL
	END

--	--XXXXXXXXXXXXXXXXXXX GESTITA SEPARATAMENTE XXXXXXXXXXXXXXXXXXX--
--	--XXXXXXXXXXXXXXXXXXXXXXXX GLOBAL_ERROR XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GLOBAL_ERROR')
--	BEGIN
--		DELETE FROM C6StoricoPeriodico.GLOBAL_ERROR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6StoricoPeriodico.GLOBAL_ERROR
--		(ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB)
--		SELECT 
--		 ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB
--		FROM C6MartPeriodico.GLOBAL_ERROR WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MIFID')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MIFID(RETE, COD_FISCALE,  PROFILO_ASS, DATA_INIZIO_VAL,ID_ELAB)
		SELECT 
		 M.RETE, M.COD_FISCALE,  M.PROFILO_ASS, M.DATA_INIZIO_VAL, @ID_ELAB
		FROM C6MartPeriodico.MIFID M
		LEFT OUTER JOIN C6StoricoPeriodico.MIFID SM
			ON M.RETE = SM.RETE
			AND M.COD_FISCALE = SM.COD_FISCALE
		WHERE M.ID_ELAB = @ID_ELAB AND SM.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_ATTUALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_ATTUALE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_ATTUALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_ATTUALE
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_ATTIVAZIONE, DATA_CTV, CTV_MONITORATO, APPORTO_INIZIALE, APPORTO_SUCCESSIVO, LIQUIDAZIONI, CEDOLE_DIVIDENDI, MINUS_PLUSVALENZA, RISORSE_ASSOCIATE, RENDIMENTO_CUMULATO, RENDIMENTO_ANNUALIZZATO, ORDINAMENTO_PROGETTO,ID_ELAB)
		SELECT 
		 MA.RETE, MA.COD_FISCALE, MA.ID_AREA, MA.NOME_PROGETTO, MA.DATA_ATTIVAZIONE, MA.DATA_CTV, MA.CTV_MONITORATO, MA.APPORTO_INIZIALE, MA.APPORTO_SUCCESSIVO, MA.LIQUIDAZIONI, MA.CEDOLE_DIVIDENDI, MA.MINUS_PLUSVALENZA, MA.RISORSE_ASSOCIATE, MA.RENDIMENTO_CUMULATO, MA.RENDIMENTO_ANNUALIZZATO, MA.ORDINAMENTO_PROGETTO,@ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_ATTUALE MA
		LEFT OUTER JOIN C6StoricoPeriodico.MONITORAGGIO_ATTUALE SMA
			ON MA.RETE = SMA.RETE
			AND MA.COD_FISCALE = SMA.COD_FISCALE
			AND MA.ID_AREA = SMA.ID_AREA
			AND MA.NOME_PROGETTO = SMA.NOME_PROGETTO
		WHERE SMA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_DETTAGLIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_DETTAGLIO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_DETTAGLIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_DETTAGLIO
		(RETE, COD_FISCALE, POSITION_ID, ID_AREA, DATA_ASSOCIAZIONE, VERSATO_NETTO_DA_ASSOC, UTILE_PERDITA_DA_ASSOC, ID_ELAB)
		SELECT 
		 MD.RETE, MD.COD_FISCALE, MD.POSITION_ID, MD.ID_AREA, MD.DATA_ASSOCIAZIONE, MD.VERSATO_NETTO_DA_ASSOC, MD.UTILE_PERDITA_DA_ASSOC, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_DETTAGLIO MD
		LEFT OUTER JOIN C6StoricoPeriodico.MONITORAGGIO_DETTAGLIO SMD
			ON MD.RETE = SMD.RETE
			AND MD.COD_FISCALE = SMD.COD_FISCALE
			AND MD.POSITION_ID = SMD.POSITION_ID
		WHERE SMD.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_INIZIALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_INIZIALE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_INIZIALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_INIZIALE
		(RETE, COD_FISCALE, DATA_FOTO, CTV_TOTALE, CTV_EXT, CTV_INV, CTV_RIS, CTV_PRE, CTV_LIQ, CTV_CC, CTV_NA, PARTITA_VIAGGIANTE, VAR_COMPLESSIVO, VAR_COPERTURA, ID_ELAB)
		SELECT 
		 MI.RETE, MI.COD_FISCALE, MI.DATA_FOTO, MI.CTV_TOTALE, MI.CTV_EXT, MI.CTV_INV, MI.CTV_RIS, MI.CTV_PRE, MI.CTV_LIQ, MI.CTV_CC, MI.CTV_NA, MI.PARTITA_VIAGGIANTE, MI.VAR_COMPLESSIVO, MI.VAR_COPERTURA, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_INIZIALE MI
		LEFT OUTER JOIN C6StoricoPeriodico.MONITORAGGIO_INIZIALE SMI
			ON MI.RETE = SMI.RETE
			AND MI.COD_FISCALE = SMI.COD_FISCALE
			AND MI.DATA_FOTO = SMI.DATA_FOTO
		WHERE SMI.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_REPORT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_REPORT
		(RETE, COD_FISCALE, DATA_INVIO, CTV_TOTALE, CTV_EXT, CTV_INV, CTV_RIS, CTV_PRE, CTV_LIQ, CTV_CC, CTV_NA, PARTITA_VIAGGIANTE, VAR_COMPLESSIVO, VAR_COPERTURA, ID_ELAB)
		SELECT 
		 MR.RETE, MR.COD_FISCALE, MR.DATA_INVIO, MR.CTV_TOTALE, MR.CTV_EXT, MR.CTV_INV, MR.CTV_RIS, MR.CTV_PRE, MR.CTV_LIQ, MR.CTV_CC, MR.CTV_NA, MR.PARTITA_VIAGGIANTE, MR.VAR_COMPLESSIVO, MR.VAR_COPERTURA, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_REPORT MR
		LEFT OUTER JOIN C6StoricoPeriodico.MONITORAGGIO_REPORT SMR
			ON MR.RETE = SMR.RETE
			AND MR.COD_FISCALE = SMR.COD_FISCALE
			AND MR.DATA_INVIO = SMR.DATA_INVIO
		WHERE SMR.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_STORICO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_STORICO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_STORICO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_STORICO
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_CTV, CTV_MONITORATO, RISORSE_ASSOCIATE, ID_ELAB)
		SELECT 
		 MS.RETE, MS.COD_FISCALE, MS.ID_AREA, MS.NOME_PROGETTO, MS.DATA_CTV, MS.CTV_MONITORATO, MS.RISORSE_ASSOCIATE, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_STORICO MS
		LEFT OUTER JOIN C6StoricoPeriodico.MONITORAGGIO_STORICO SMS
			ON MS.RETE = SMS.RETE
			AND MS.COD_FISCALE = SMS.COD_FISCALE
			AND MS.ID_AREA = SMS.ID_AREA
			AND MS.NOME_PROGETTO = SMS.NOME_PROGETTO
			AND MS.DATA_CTV = SMS.DATA_CTV
		WHERE SMS.RETE IS NULL
	END

 	--XXXXXXXXXXXXXXXXXXXXXXXX PARTITE_VIAGGIANTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PARTITE_VIAGGIANTI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PARTITE_VIAGGIANTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PARTITE_VIAGGIANTI
		(RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PV.RETE, PV.COD_FISCALE, PV.IMPORTO, PV.ID_ELAB, PV.TIPO_ELAB
		FROM C6MartPeriodico.PARTITE_VIAGGIANTI PV
		LEFT OUTER JOIN C6StoricoPeriodico.PARTITE_VIAGGIANTI SPV
			ON PV.RETE = SPV.RETE
			AND PV.COD_FISCALE = SPV.COD_FISCALE
		WHERE PV.ID_ELAB = @ID_ELAB AND SPV.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_ALTRO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_ALTRO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_ALTRO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_ALTRO
		(RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PA.RETE, PA.COD_FISCALE, PA.QUANTITA, PA.DESCRIZIONE, PA.CTV, PA.ID_ELAB, PA.TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_ALTRO PA
		LEFT OUTER JOIN C6StoricoPeriodico.PATRIMONIO_ALTRO SPA
			ON PA.RETE = SPA.RETE
			AND PA.COD_FISCALE = SPA.COD_FISCALE
			AND PA.QUANTITA = SPA.QUANTITA
			AND PA.DESCRIZIONE = SPA.DESCRIZIONE
			AND PA.CTV = SPA.CTV
		WHERE PA.ID_ELAB = @ID_ELAB AND SPA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_BF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_BF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_BF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_BF
		(RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, REND_NON_RAPPR, ORDINAMENTO_PROGETTO, EXTRANAC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PB.RETE, PB.COD_FISCALE, PB.POSITION_ID, PB.COD_PRODOTTO, PB.ID_CONTRATTO, PB.DATA_SOTTOSCRIZIONE, PB.COD_STATO, PB.NUM_POLIZZA, PB.COD_MAF, PB.COD_INTERNO, PB.COD_SOTTOPRODOTTO, PB.TIPO_PRODOTTO, PB.NOME_PROGETTO, PB.ID_AREA, PB.DATA_OPERAZIONE, PB.DATA_VALUTA, PB.DATA_REGOLAMENTO, PB.QUANTITA, PB.PREZZO, PB.CTV, PB.CTV_NOMINALE, PB.VERSATO_NETTO, PB.PARTVIA_DISINV, PB.DATA_PARTVIA_DISINV, PB.PARTVIA_INV, PB.REND_SOTTOSCRIZIONE, PB.REND_TRIMESTRE, PB.REND_ANNO, PB.REND_NON_RAPPR, PB.ORDINAMENTO_PROGETTO, PB.EXTRANAC, PB.ID_ELAB, PB.TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_BF PB
		LEFT OUTER JOIN C6StoricoPeriodico.PATRIMONIO_BF SPB
			ON PB.RETE = SPB.RETE
			AND PB.COD_FISCALE = SPB.COD_FISCALE
			AND PB.POSITION_ID = SPB.POSITION_ID
		WHERE PB.ID_ELAB = @ID_ELAB AND SPB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_IMMOBILIARE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_IMMOBILIARE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_IMMOBILIARE
		(RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PI.RETE, PI.COD_FISCALE, PI.DESCRIZIONE, PI.TIPOLOGIA, PI.LOCALITA, PI.PROVINCIA, PI.CAP, PI.NAZIONE, PI.VALORE_STIMATO, PI.AFFITTO, PI.NOTE, PI.DIV_RIFERIMENTO, PI.CAMBIO, PI.ID_ELAB, PI.TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE PI
		LEFT OUTER JOIN C6StoricoPeriodico.PATRIMONIO_IMMOBILIARE SPI
			ON PI.RETE = SPI.RETE
			AND PI.COD_FISCALE = SPI.COD_FISCALE
			AND PI.DESCRIZIONE = SPI.DESCRIZIONE
			AND PI.TIPOLOGIA = SPI.TIPOLOGIA
			AND PI.LOCALITA = SPI.LOCALITA
			AND PI.PROVINCIA = SPI.PROVINCIA
			AND PI.CAP = SPI.CAP
			AND PI.NAZIONE = PI.NAZIONE
			AND PI.VALORE_STIMATO = SPI.VALORE_STIMATO
			AND PI.AFFITTO = SPI.AFFITTO
			AND PI.NOTE = SPI.NOTE
			AND PI.DIV_RIFERIMENTO = SPI.DIV_RIFERIMENTO
			AND PI.CAMBIO = SPI.CAMBIO
		WHERE PI.ID_ELAB = @ID_ELAB AND SPI.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_TERZI
		(RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PT.RETE, PT.COD_FISCALE, PT.NUM_POLIZZA, PT.TIPO_POLIZZA, PT.TIPO_PRODOTTO, PT.TIPO_PRODOTTO2, PT.COD_PRODOTTO, PT.COD_PRODOTTO_TERZI, PT.INTERMEDIARIO, PT.DATA_SOTTOSCRIZIONE, PT.DATA_SCADENZA, PT.FREQ_RATA, PT.DURATA_POLIZZA, PT.PREMIO, PT.ALIQUOTA, PT.DATA_SOTT_FP, PT.DATA_REGOLAMENTO, PT.QUANTITA, PT.PREZZO, PT.CTV, PT.VERSATO_NETTO, PT.DIV_REGOLAMENTO, PT.CAMBIO, PT.DESCR_GRUPPO_PRODOTTO, PT.ID_ELAB, PT.TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_TERZI PT
		LEFT OUTER JOIN C6StoricoPeriodico.PATRIMONIO_TERZI SPT
			ON PT.RETE = SPT.RETE
			AND PT.COD_FISCALE = SPT.COD_FISCALE
			AND PT.COD_PRODOTTO = SPT.COD_PRODOTTO
			AND PT.COD_PRODOTTO_TERZI = SPT.COD_PRODOTTO_TERZI
		WHERE PT.ID_ELAB = @ID_ELAB AND SPT.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_MOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_MOD')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PIRAMIDE_MOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PIRAMIDE_MOD
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PM.RETE, PM.COD_FISCALE, PM.ID_AREA, PM.NOME_PROGETTO, PM.TIPO_PROGETTO, PM.PERC_AREA, PM.CTV_PROGETTO, PM.CTV_AREA, PM.ORIZZ_TEMP, PM.CTV_TOTALE, PM.STATO_CONSULENZA, PM.DATA_STATO_CONS, PM.DATA_MIGR_CONS, PM.ID_CONTRATTO, PM.ID_ELAB, PM.TIPO_ELAB
		FROM C6MartPeriodico.PIRAMIDE_MOD PM
		LEFT OUTER JOIN C6StoricoPeriodico.PIRAMIDE_MOD SPM
			ON PM.RETE = SPM.RETE
			AND PM.COD_FISCALE = SPM.COD_FISCALE
			AND PM.ID_AREA = SPM.ID_AREA
			AND PM.NOME_PROGETTO = SPM.NOME_PROGETTO
		WHERE PM.ID_ELAB = @ID_ELAB AND SPM.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_VERT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_VERT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PIRAMIDE_VERT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PIRAMIDE_VERT
		(RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PV.RETE, PV.COD_FISCALE, PV.ID_AREA, PV.CTV_AREA, PV.ID_ELAB, PV.TIPO_ELAB
		FROM C6MartPeriodico.PIRAMIDE_VERT PV
		LEFT OUTER JOIN C6StoricoPeriodico.PIRAMIDE_VERT SPV
			ON PV.RETE = SPV.RETE
			AND PV.COD_FISCALE = SPV.COD_FISCALE
			AND PV.ID_AREA = SPV.ID_AREA
		WHERE PV.ID_ELAB = @ID_ELAB AND SPV.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_AGGREGATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_AGGREGATO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.RISCHIO_AGGREGATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.RISCHIO_AGGREGATO
		(RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RA.RETE, RA.COD_FISCALE, RA.COD_AGGREG, RA.VAR_ASSOLUTO_PTF, RA.VAR_PERC_PTF, RA.CVAR_ASSOLUTO_PTF, RA.CVAR_PERC_PTF, RA.MCVAR, RA.MCVARP, RA.BENEFICIO, RA.COPERTURA, RA.CTV_AGGREG, RA.ID_ELAB, RA.TIPO_ELAB
		FROM C6MartPeriodico.RISCHIO_AGGREGATO RA
		LEFT OUTER JOIN C6StoricoPeriodico.RISCHIO_AGGREGATO SRA
			ON RA.RETE = SRA.RETE
			AND RA.COD_FISCALE = SRA.COD_FISCALE
			AND RA.COD_AGGREG = SRA.COD_AGGREG
		WHERE RA.ID_ELAB = @ID_ELAB AND SRA.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX STRUTTURA_RETE XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'STRUTTURA_RETE')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.STRUTTURA_RETE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.STRUTTURA_RETE
	--		(Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB
	--		FROM C6MartPeriodico.STRUTTURA_RETE WHERE ID_ELAB = @ID_ELAB
	--	END
  
	-- XX -- XX -- XX -- XX  AGGIORNAMENTO DATI C6MartPeriodico.TabelleStoricizzate XX -- XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6MartPeriodico.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_STORICIZZAZIONE_GLOBAL_ERROR]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SRV_STORICIZZAZIONE_GLOBAL_ERROR]  
 @NomeTabella AS VARCHAR(50) = NULL  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
 DECLARE @ID_ELAB INT   -- Elaborazione da storicizzare  
 DECLARE @MIN_ID_ELAB AS INT  -- Elaborazione vecchia da eliminare dallo storico  
 DECLARE @TempoStoricoC6 AS INT -- Numero di giorni di vita dello storico  
  
 SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6')   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'SRV_STORICIZZAZIONE_GLOBAL_ERROR',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)  
 FROM C6MARTPERIODICO.ELABORAZIONI  
 WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 DELETE FROM C6StoricoPeriodico.GLOBAL_ERROR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB  
  
 INSERT INTO C6StoricoPeriodico.GLOBAL_ERROR  
 (ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB)  
 SELECT   
  ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB  
 FROM dbo.GLOBAL_ERROR WHERE ID_ELAB = @ID_ELAB  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR'  
  )  
  
 TRUNCATE TABLE dbo.GLOBAL_ERROR  
  
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_STORICIZZAZIONE_GLOBAL_ERROR_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SRV_STORICIZZAZIONE_GLOBAL_ERROR_pre_selective]
	@NomeTabella AS VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_STORICIZZAZIONE_GLOBAL_ERROR_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MARTPERIODICO.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

	DELETE FROM C6StoricoPeriodico.GLOBAL_ERROR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB

	INSERT INTO C6StoricoPeriodico.GLOBAL_ERROR
	(ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB)
	SELECT 
	 ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB
	FROM dbo.GLOBAL_ERROR WHERE ID_ELAB = @ID_ELAB

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR_pre_selective'
		)

	TRUNCATE TABLE dbo.GLOBAL_ERROR

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_STORICIZZAZIONE_OLD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 21 gennaio 2009
-- Description:	Effettua una storicizzazione del DataMart prima dell'import di nuovi dati.
-- =============================================
-- [C6MartPeriodico].[SRV_STORICIZZAZIONE] 'GESTIONE_EMAIL'
CREATE PROCEDURE [C6MartPeriodico].[SRV_STORICIZZAZIONE_OLD]
	@NomeTabella AS VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MARTPERIODICO.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	--XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONTRATTOSEI
		(Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, ID_ELAB)
		SELECT 
		 Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, @ID_ELAB
		FROM C6Mart.CONTRATTOSEI --WHERE ID_ELAB = @ID_ELAB
	END
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CC
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ANAG_CC WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CC_TERZI
		(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB
		FROM C6MartPeriodico.ANAG_CC_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CLIENTI
		(RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ANAG_CLIENTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI_PREV XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI_PREV')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CLIENTI_PREV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_CLIENTI_PREV
		(RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ANAG_CLIENTI_PREV WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_PRODOTTI
		(COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ANAG_PRODOTTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_PRODOTTI_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_PRODOTTI_TERZI
		(COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ANAG_PRODOTTI_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PROMOTORI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ANAG_PROMOTORI
		(RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ANAG_PROMOTORI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREA_BISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREA_BISOGNO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.AREA_BISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.AREA_BISOGNO
		(ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB)
		SELECT 
		 ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB
		FROM C6MartPeriodico.AREA_BISOGNO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSET_PERC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSET_PERC
		(COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ASSET_PERC WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSET_PERC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSET_PERC_TERZI
		(COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ASSET_PERC_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSETCLASS
		(ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB)
		SELECT 
		 ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB
		FROM C6MartPeriodico.ASSETCLASS WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ASSETCLASS_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ASSETCLASS_TERZI
		(ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.ASSETCLASS_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
  --XXXXXXXXXXXXXXXXXXXXXXXX CLIENTI_CON_RNA_ALTO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CLIENTI_CON_RNA_ALTO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CLIENTI_CON_RNA_ALTO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CLIENTI_CON_RNA_ALTO
		([Rete]
         ,[CodicePB]
         ,[CodiceFiscale]
         ,[Percentuale]
         ,[DataCalcolo]
		 , ID_ELAB)
		SELECT 
		 [Rete]
         ,[CodicePB]
         ,[CodiceFiscale]
         ,[Percentuale]
         ,[DataCalcolo]
		 , @ID_ELAB
		FROM C6MartPeriodico.CLIENTI_CON_RNA_ALTO
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CODICI_PROMOTORI_FITTIZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODICI_PROMOTORI_FITTIZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CODICI_PROMOTORI_FITTIZI
		(Rete, CodiceDA, CodiceA, ID_ELAB)
		SELECT 
		 Rete, CodiceDA, CodiceA, @ID_ELAB
		FROM C6MartPeriodico.CODICI_PROMOTORI_FITTIZI
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_RISCHIO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CODIFICA_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CODIFICA_RISCHIO
		(PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB)
		SELECT 
		 PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB
		FROM C6MartPeriodico.CODIFICA_RISCHIO WHERE ID_ELAB = @ID_ELAB
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CONGELAMENTO_SEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONGELAMENTO_SEI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONGELAMENTO_SEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONGELAMENTO_SEI
		(DATA_CONGELAMENTO, ID_ELAB)
		SELECT 
		 DATA_CONGELAMENTO, @ID_ELAB
		FROM C6StagingPeriodico.CONGELAMENTO_SEI
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONO_PIANIFICAZIONE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO_PIANIFICAZIONE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONO_PIANIFICAZIONE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONO_PIANIFICAZIONE
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_CONO, SCENARIO_PESSIMISTICO, SCENARIO_MEDIO, SCENARIO_OTTIMISTICO, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_CONO, SCENARIO_PESSIMISTICO, SCENARIO_MEDIO, SCENARIO_OTTIMISTICO, ID_ELAB
		FROM C6MartPeriodico.CONO_PIANIFICAZIONE WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DATI_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DATI_REPORT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.DATI_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.DATI_REPORT
		(RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.DATI_REPORT WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX DETTAGLIO_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DETTAGLIO_ASUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.DETTAGLIO_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.DETTAGLIO_ASUL
		(RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.DETTAGLIO_ASUL WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ELABORAZIONI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ELABORAZIONI
		(ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE)
		SELECT 
		 ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE
		FROM C6MartPeriodico.ELABORAZIONI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI_EMAIL_RNA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI_EMAIL_RNA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ELABORAZIONI_EMAIL_RNA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ELABORAZIONI_EMAIL_RNA
		([Data_Elaborazione],[ID_ELAB])
		SELECT 
		 [Data_Elaborazione],@ID_ELAB
		FROM C6MartPeriodico.ELABORAZIONI_EMAIL_RNA WHERE ID_ELAB = @ID_ELAB
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_PB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.EMAIL_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.EMAIL_PB
		(RETE, CODICE, PREFISSO, FIRMA, EMAIL, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, CODICE, PREFISSO, FIRMA, EMAIL, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.EMAIL_PB WHERE ID_ELAB = @ID_ELAB
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_EMAIL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.GESTIONE_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.GESTIONE_EMAIL
		(Email_Id, Rete, CodicePB, Tipo, Data_Generazione, Inviata, Data_Invio, ID_ELAB)
		SELECT 
		 Email_Id, Rete, CodicePB, Tipo, Data_Generazione, Inviata, Data_Invio, ID_ELAB
		FROM C6MartPeriodico.GESTIONE_EMAIL WHERE ID_ELAB = @ID_ELAB
	END

--	--XXXXXXXXXXXXXXXXXXX GESTITA SEPARATAMENTE XXXXXXXXXXXXXXXXXXX--
--	--XXXXXXXXXXXXXXXXXXXXXXXX GLOBAL_ERROR XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GLOBAL_ERROR')
--	BEGIN
--		DELETE FROM C6StoricoPeriodico.GLOBAL_ERROR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6StoricoPeriodico.GLOBAL_ERROR
--		(ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB)
--		SELECT 
--		 ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB
--		FROM C6MartPeriodico.GLOBAL_ERROR WHERE ID_ELAB = @ID_ELAB
--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MIFID')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MIFID(RETE, COD_FISCALE,  PROFILO_ASS, DATA_INIZIO_VAL,ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE,  PROFILO_ASS, DATA_INIZIO_VAL, @ID_ELAB
		FROM C6MartPeriodico.MIFID WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_ATTUALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_ATTUALE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_ATTUALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_ATTUALE
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_ATTIVAZIONE, DATA_CTV, CTV_MONITORATO, APPORTO_INIZIALE, APPORTO_SUCCESSIVO, LIQUIDAZIONI, CEDOLE_DIVIDENDI, MINUS_PLUSVALENZA, RISORSE_ASSOCIATE, RENDIMENTO_CUMULATO, RENDIMENTO_ANNUALIZZATO, ORDINAMENTO_PROGETTO,ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_ATTIVAZIONE, DATA_CTV, CTV_MONITORATO, APPORTO_INIZIALE, APPORTO_SUCCESSIVO, LIQUIDAZIONI, CEDOLE_DIVIDENDI, MINUS_PLUSVALENZA, RISORSE_ASSOCIATE, RENDIMENTO_CUMULATO, RENDIMENTO_ANNUALIZZATO, ORDINAMENTO_PROGETTO,@ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_ATTUALE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_DETTAGLIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_DETTAGLIO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_DETTAGLIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_DETTAGLIO
		(RETE, COD_FISCALE, POSITION_ID, ID_AREA, DATA_ASSOCIAZIONE, VERSATO_NETTO_DA_ASSOC, UTILE_PERDITA_DA_ASSOC, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, POSITION_ID, ID_AREA, DATA_ASSOCIAZIONE, VERSATO_NETTO_DA_ASSOC, UTILE_PERDITA_DA_ASSOC, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_DETTAGLIO
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_INIZIALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_INIZIALE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_INIZIALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_INIZIALE
		(RETE, COD_FISCALE, DATA_FOTO, CTV_TOTALE, CTV_EXT, CTV_INV, CTV_RIS, CTV_PRE, CTV_LIQ, CTV_CC, CTV_NA, PARTITA_VIAGGIANTE, VAR_COMPLESSIVO, VAR_COPERTURA, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, DATA_FOTO, CTV_TOTALE, CTV_EXT, CTV_INV, CTV_RIS, CTV_PRE, CTV_LIQ, CTV_CC, CTV_NA, PARTITA_VIAGGIANTE, VAR_COMPLESSIVO, VAR_COPERTURA, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_INIZIALE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_REPORT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_REPORT
		(RETE, COD_FISCALE, DATA_INVIO, CTV_TOTALE, CTV_EXT, CTV_INV, CTV_RIS, CTV_PRE, CTV_LIQ, CTV_CC, CTV_NA, PARTITA_VIAGGIANTE, VAR_COMPLESSIVO, VAR_COPERTURA, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, DATA_INVIO, CTV_TOTALE, CTV_EXT, CTV_INV, CTV_RIS, CTV_PRE, CTV_LIQ, CTV_CC, CTV_NA, PARTITA_VIAGGIANTE, VAR_COMPLESSIVO, VAR_COPERTURA, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_REPORT
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MONITORAGGIO_STORICO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MONITORAGGIO_STORICO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.MONITORAGGIO_STORICO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.MONITORAGGIO_STORICO
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_CTV, CTV_MONITORATO, RISORSE_ASSOCIATE, ID_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, DATA_CTV, CTV_MONITORATO, RISORSE_ASSOCIATE, @ID_ELAB
		FROM C6MartPeriodico.MONITORAGGIO_STORICO
	END

 	--XXXXXXXXXXXXXXXXXXXXXXXX PARTITE_VIAGGIANTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PARTITE_VIAGGIANTI')
	BEGIN
		DELETE FROM C6Storico.PARTITE_VIAGGIANTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PARTITE_VIAGGIANTI
		(RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PARTITE_VIAGGIANTI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_ALTRO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_ALTRO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_ALTRO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_ALTRO
		(RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_ALTRO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_BF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_BF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_BF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_BF
		(RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, REND_NON_RAPPR, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, REND_NON_RAPPR, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_BF WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_IMMOBILIARE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_IMMOBILIARE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_IMMOBILIARE
		(RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PATRIMONIO_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PATRIMONIO_TERZI
		(RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.PATRIMONIO_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_MOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_MOD')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PIRAMIDE_MOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PIRAMIDE_MOD
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.PIRAMIDE_MOD WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_VERT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_VERT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.PIRAMIDE_VERT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.PIRAMIDE_VERT
		(RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.PIRAMIDE_VERT WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_AGGREGATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_AGGREGATO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.RISCHIO_AGGREGATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.RISCHIO_AGGREGATO
		(RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.RISCHIO_AGGREGATO WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX STRUTTURA_RETE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'STRUTTURA_RETE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.STRUTTURA_RETE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.STRUTTURA_RETE
		(Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB)
		SELECT 
		 Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB
		FROM C6MartPeriodico.STRUTTURA_RETE WHERE ID_ELAB = @ID_ELAB
	END
  
	-- XX -- XX -- XX -- XX  AGGIORNAMENTO DATI C6MartPeriodico.TabelleStoricizzate XX -- XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6MartPeriodico.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END

END

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_TABELLE_IN_MART]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SRV_TABELLE_IN_MART]  
AS  
BEGIN  
  
 DECLARE @tabella AS VARCHAR(50)   
 SET @tabella = NULL  
  
 SELECT TOP 1 @tabella = A.tabella  
 FROM(  
  SELECT tables.name tabella  
  FROM sys.tables tables  
  INNER JOIN sys.schemas schemas  
   ON tables.schema_id = schemas.schema_id  
  WHERE schemas.name = 'C6MartPeriodico'  
   AND tables.name NOT IN ('TabelleStoricizzate','VerificheCampione','GLOBAL_ERROR')  
 ) A  
 WHERE A.tabella NOT IN (  
  SELECT Nome   
  FROM C6MartPeriodico.TabelleStoricizzate  
 )  
 ORDER BY A.tabella  
  
 -- vedi stessa sp di Staging  
 /*INSERT INTO [C6MartPeriodico].[TabelleStoricizzate]  
           ([Nome])  
 VALUES  
           (@tabella)*/  
  
 DECLARE @tabellaMartDaStoricizzare AS SMALLINT  
 IF @tabella IS NOT NULL  
  BEGIN  
   INSERT INTO [C6MartPeriodico].[TabelleStoricizzate]  
       ([Nome])  
   VALUES  
       (@tabella)  
   EXEC [C6MartPeriodico].[SRV_STORICIZZAZIONE] @tabella  
   SET @tabellaMartDaStoricizzare = 1  
  END  
 ELSE  
  SET @tabellaMartDaStoricizzare = 0  
  
 SELECT @tabellaMartDaStoricizzare tabella, @tabella nome  
  
-- DECLARE @tabella AS VARCHAR(50)   
-- SET @tabella = NULL  
--  
-- -- AGGIORNAMENTO TABELLA C6MartPeriodico.TabelleStoricizzate:  
-- --> CANCELLO LE VECCHIE  
-- DELETE C6MartPeriodico.TabelleStoricizzate   
-- FROM sys.tables tables  
-- INNER JOIN sys.schemas schemas  
--  ON tables.schema_id = schemas.schema_id  
-- RIGHT JOIN C6MartPeriodico.TabelleStoricizzate   
--  ON tables.name = TabelleStoricizzate.NOME  
-- WHERE schemas.name = 'C6MartPeriodico'  
--  AND tables.name IS NULL  
--  AND tables.name <> 'CONTRATTOSEI'  
--   
-- --> INSERISCO LE NUOVE TABELLE  
-- INSERT INTO C6MartPeriodico.TabelleStoricizzate (NOME, STORICIZZATA)  
-- SELECT A.NOME, A.STORICIZZATA  
-- FROM (  
--  SELECT tables.name AS NOME, 0 AS STORICIZZATA  
--  FROM sys.tables tables  
--  INNER JOIN sys.schemas schemas  
--   ON tables.schema_id = schemas.schema_id  
--  WHERE schemas.name = 'C6MartPeriodico'  
--  UNION  
--  SELECT 'CONTRATTOSEI', 0  
-- ) A  
-- LEFT JOIN C6MartPeriodico.TabelleStoricizzate   
--  ON TabelleStoricizzate.NOME = A.NOME  
-- WHERE TabelleStoricizzate.NOME IS NULL  
-- -- FINE AGGIORNAMENTO TABELLA  
--  
-- BEGIN TRANSACTION  
--  
-- -- SELEZIONE TABELLA  
-- SELECT TOP 1 @tabella = NOME  
-- FROM C6MartPeriodico.TabelleStoricizzate  
-- WHERE STORICIZZATA = 0  
-- ORDER BY DURATA DESC  
--  
-- -- MARCATURA TABELLA SELEZIONATA  
-- UPDATE C6MartPeriodico.TabelleStoricizzate  
-- SET   
--  STORICIZZATA = 1,  
--  VECCHIA_DURATA = DURATA,  
--  INIZIO = GETDATE()  
-- WHERE NOME = @tabella  
--  
-- COMMIT TRANSACTION   
--  
-- DECLARE @tabellaMartDaStoricizzare AS SMALLINT  
-- IF @tabella IS NOT NULL  
-- BEGIN  
--  EXEC C6MartPeriodico.SRV_STORICIZZAZIONE @tabella  
--  SET @tabellaMartDaStoricizzare = 1  
-- END  
-- ELSE  
--  SET @tabellaMartDaStoricizzare = 0  
--  
-- SELECT @tabellaMartDaStoricizzare tabella, @tabella nome  
   
END  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_TABELLE_IN_MART_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[SRV_TABELLE_IN_MART_pre_selective]
AS
BEGIN

	DECLARE @tabella AS VARCHAR(50) 
	SET @tabella = NULL

	SELECT TOP 1 @tabella = A.tabella
	FROM(
		SELECT tables.name tabella
		FROM sys.tables tables
		INNER JOIN sys.schemas schemas
			ON tables.schema_id = schemas.schema_id
		WHERE schemas.name = 'C6MartPeriodico'
			AND tables.name NOT IN ('TabelleStoricizzate','VerificheCampione','GLOBAL_ERROR')
	) A
	WHERE A.tabella NOT IN (
		SELECT Nome 
		FROM C6MartPeriodico.TabelleStoricizzate
	)
	ORDER BY A.tabella

	-- vedi stessa sp di Staging
	/*INSERT INTO [C6MartPeriodico].[TabelleStoricizzate]
           ([Nome])
	VALUES
           (@tabella)*/

	DECLARE @tabellaMartDaStoricizzare AS SMALLINT
	IF @tabella IS NOT NULL
		BEGIN
			INSERT INTO [C6MartPeriodico].[TabelleStoricizzate]
				   ([Nome])
			VALUES
				   (@tabella)
			EXEC [C6MartPeriodico].[SRV_STORICIZZAZIONE] @tabella
			SET @tabellaMartDaStoricizzare = 1
		END
	ELSE
		SET @tabellaMartDaStoricizzare = 0

	SELECT @tabellaMartDaStoricizzare tabella, @tabella nome

--	DECLARE @tabella AS VARCHAR(50) 
--	SET @tabella = NULL
--
--	-- AGGIORNAMENTO TABELLA C6MartPeriodico.TabelleStoricizzate:
--	--> CANCELLO LE VECCHIE
--	DELETE C6MartPeriodico.TabelleStoricizzate 
--	FROM sys.tables tables
--	INNER JOIN sys.schemas schemas
--		ON tables.schema_id = schemas.schema_id
--	RIGHT JOIN C6MartPeriodico.TabelleStoricizzate 
--		ON tables.name = TabelleStoricizzate.NOME
--	WHERE schemas.name = 'C6MartPeriodico'
--		AND tables.name IS NULL
--		AND tables.name <> 'CONTRATTOSEI'
--	
--	--> INSERISCO LE NUOVE TABELLE
--	INSERT INTO C6MartPeriodico.TabelleStoricizzate (NOME, STORICIZZATA)
--	SELECT A.NOME, A.STORICIZZATA
--	FROM (
--		SELECT tables.name AS NOME, 0 AS STORICIZZATA
--		FROM sys.tables tables
--		INNER JOIN sys.schemas schemas
--			ON tables.schema_id = schemas.schema_id
--		WHERE schemas.name = 'C6MartPeriodico'
--		UNION
--		SELECT 'CONTRATTOSEI', 0
--	) A
--	LEFT JOIN C6MartPeriodico.TabelleStoricizzate 
--		ON TabelleStoricizzate.NOME = A.NOME
--	WHERE TabelleStoricizzate.NOME IS NULL
--	-- FINE AGGIORNAMENTO TABELLA
--
--	BEGIN TRANSACTION
--
--	-- SELEZIONE TABELLA
--	SELECT TOP 1 @tabella = NOME
--	FROM C6MartPeriodico.TabelleStoricizzate
--	WHERE STORICIZZATA = 0
--	ORDER BY DURATA DESC
--
--	-- MARCATURA TABELLA SELEZIONATA
--	UPDATE C6MartPeriodico.TabelleStoricizzate
--	SET 
--		STORICIZZATA = 1,
--		VECCHIA_DURATA = DURATA,
--		INIZIO = GETDATE()
--	WHERE NOME = @tabella
--
--	COMMIT TRANSACTION 
--
--	DECLARE @tabellaMartDaStoricizzare AS SMALLINT
--	IF @tabella IS NOT NULL
--	BEGIN
--		EXEC C6MartPeriodico.SRV_STORICIZZAZIONE @tabella
--		SET @tabellaMartDaStoricizzare = 1
--	END
--	ELSE
--		SET @tabellaMartDaStoricizzare = 0
--
--	SELECT @tabellaMartDaStoricizzare tabella, @tabella nome
	
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_TRUNCATE_RP_STAGING]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[SRV_TRUNCATE_RP_STAGING]
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- *** TABELLE GESTIONE ERRORE *** --
	-- TRUNCATE TABLE dbo.GLOBAL_ERROR;
	-- *** FINE TABELLE GESTIONE ERRORE *** --
	
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_Staging SEI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6Staging.RP_Proposta;
	TRUNCATE TABLE C6Staging.RP_DettaglioOperazione;
	TRUNCATE TABLE C6Staging.RP_PatrimonioTerzi;
	TRUNCATE TABLE C6Staging.RP_DettAltriProdotti;
	TRUNCATE TABLE C6Staging.RP_DettPatrAziendale;
	TRUNCATE TABLE C6Staging.RP_MappaturaPT;
	TRUNCATE TABLE C6Staging.RP_REP_ASSET_1_E_2_ORDINATE;
	TRUNCATE TABLE C6Staging.RP_DettImmobiliare;
	TRUNCATE TABLE C6Staging.RP_DettProdottiTerzi;
	TRUNCATE TABLE C6Staging.RP_AssetClass;
	TRUNCATE TABLE C6Staging.RP_Mappatura;
	TRUNCATE TABLE C6Staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3;
	TRUNCATE TABLE C6Staging.RP_PosizioniProposta;
	TRUNCATE TABLE C6Staging.RP_AnAlberatura;
	TRUNCATE TABLE C6Staging.RP_Cliente;
	TRUNCATE TABLE C6Staging.RP_PromotoreBancario;
	TRUNCATE TABLE C6Staging.RP_PosizioniPortafoglio;
	TRUNCATE TABLE C6Staging.RP_ProgettiPiramideModello;
	TRUNCATE TABLE C6Staging.RP_Progetto;
	TRUNCATE TABLE C6Staging.RP_DettaglioPosizionePortafoglio;
	TRUNCATE TABLE C6Staging.RP_GradoParentela;
	TRUNCATE TABLE C6Staging.RP_Migraz_Pianificazione;
	TRUNCATE TABLE C6Staging.RP_Parentela;
	TRUNCATE TABLE C6Staging.RP_Migraz_Progetto;
	TRUNCATE TABLE C6Staging.RP_Migraz_Posizioni;
	TRUNCATE TABLE C6Staging.RP_CatalogoProdotti;
	TRUNCATE TABLE C6Staging.RP_ClientePB;
	TRUNCATE TABLE C6Staging.RP_AnEmittente;
	TRUNCATE TABLE C6Staging.RP_Pianificazione;
	

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[SRV_Verifica_DISALLINEAMENTI_MONIT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		alessandro Tringali
-- Create date: 16 ottobre 2010
-- Description:	estrae la lista dei clienti per fase Ii
-- =============================================
-- exec [C6MartPeriodico].[SRV_Verifica_DISALLINEAMENTI_MONIT] 'F','BLFLSU65M55A470K'
CREATE procedure [C6MartPeriodico].[SRV_Verifica_DISALLINEAMENTI_MONIT]
	@rete char(1), 
	@CodiceFiscale varchar(16)

AS
BEGIN


	
--DROP TABLE #TEMP_PATRIMONIO_BF_AGGR
SELECT 
RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4) AS ID_AREA,
isnull(ORDINAMENTO_PROGETTO,0) as ordinamento_progetto,
SUM(CTV) AS SUM_CTV
INTO #TEMP_PATRIMONIO_BF_AGGR
FROM
C6MARTPERIODICO.PATRIMONIO_BF
WHERE ID_AREA NOT IN ('CC','NA')
AND REND_NON_RAPPR=0
and rete=@Rete and  COD_FISCALE =@CodiceFiscale
GROUP BY RETE,
COD_FISCALE,
SUBSTRING(CASE WHEN ID_AREA='EXT' THEN 'Exr' ELSE ID_AREA END,0,4),
isnull(ORDINAMENTO_PROGETTO,0)


SELECT * INTO #TANAB FROM C6STAGINGPERIODICO.TANAB
WHERE CODFIS IN 
(SELECT DISTINCT COD_FISCALE FROM #TEMP_PATRIMONIO_BF_AGGR)




SELECT *
FROM
(
SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO as bf_ordprorg,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog as mon_codprog,
'Disallineati Inv' as descContr
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
and id_area ='Inv'
union all
SELECT 
P.RETE,
P.COD_FISCALE,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog,
'Disallineati non Inv' as descContr
FROM 
#TANAB M,
#TEMP_PATRIMONIO_BF_AGGR P
WHERE
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
AND M.CTV <> P.SUM_CTV
and m.ctv > 0
and id_area <>'Inv'
union all
--------------------------------------------
-- SOLO MONITORAGGIO
--------------------------------------------

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
P.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog,
'Disalinneati Solo Monit Inv' as descContr
FROM 
#TANAB M
left outer join 
#TEMP_PATRIMONIO_BF_AGGR P
on
M.RETE = P.RETE 
AND case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end  = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
AND DTFINE ='99991231'
where
--AND M.CTV <> P.SUM_CTV
--and m.dtrif= c6martperiodico.gettrimestre2(getdate(),0)
m.ctv > 0
and p.cod_fiscale is null
AND M.CODPROG = isnull(P.ORDINAMENTO_PROGETTO,0)
and id_area ='Inv'

union all

SELECT 
m.RETE,
case when len(m.CODFIS) =4 then 'FF@'+codfis else codfis end as cod_fiscale,
p.ID_AREA,
m.codarea as mon_area,
P.ORDINAMENTO_PROGETTO,
M.CTV CTV_MONIT,
P.SUM_CTV,
(isnull(sum_ctv,0) - isnull(m.ctv,0)) as delta,
m.codprog,
'Disallineati Solo Monit non Inv' as descContr
FROM 
#TANAB M 
left outer join
#TEMP_PATRIMONIO_BF_AGGR P
on
M.RETE = P.RETE 
AND M.CODFIS = P.COD_FISCALE
AND M.CODAREA = P.ID_AREA
where
DTFINE ='99991231'
-- M.CTV <> P.SUM_CTV
and  m.ctv > 0
and p.cod_fiscale is null
and codarea <>'Inv'

) k
order by 2,1

end





GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_ConvertiExcel_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6MartPeriodico].[start_ConvertiExcel_tabellone] as
begin

--if((DATEDIFF(second, select top 1 data_avvio from C6MartPeriodico.selettore where id_richiesta=1 order by data_avvio desc, getdate() )<5) 
insert into C6MartPeriodico.selettore values
(10,getdate(),'Conversione Tabellone da xlsx su db')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;

end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_email_Approval_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




create procedure [C6MartPeriodico].[start_email_Approval_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(7,getdate(),'Invio Email Fase Approval')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_email_Certificazione_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




create procedure [C6MartPeriodico].[start_email_Certificazione_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(6,getdate(),'Invio Email Fase Certificazione')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_email_ConfermaPostalizzazione_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create procedure [C6MartPeriodico].[start_email_ConfermaPostalizzazione_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(4,getdate(),'Invio Segnalazione Conferma Postalizzazione')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_email_CongelamentoDB_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create procedure [C6MartPeriodico].[start_email_CongelamentoDB_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(3,getdate(),'Invio Segnalazione Congelamento DB MK')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_email_position_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


create procedure [C6MartPeriodico].[start_email_position_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(2,getdate(),'Invio Segnalazione Position')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[start_esportazione_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6MartPeriodico].[start_esportazione_tabellone] as  
begin  
  
----if((DATEDIFF(second, select top 1 data_avvio from C6MartPeriodico.selettore where id_richiesta=1 order by data_avvio desc, getdate() )<5)   
insert into C6MartPeriodico.selettore values  
(1,getdate(),'Invio Tabellone via E-Mail')  
  
EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  
  
-- FerAcu 20250219 dall'history dei job i tempi si sono allungati fino ad 01:03
--waitfor delay '00:00:50'  
waitfor delay '00:01:10'  
  
insert into C6MartPeriodico.selettore values  
(10,getdate(),'Conversione Tabellone da xlsx su db')  
  
EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  
  
waitfor delay '00:00:05'  
  
--EXEC msdb.dbo.sp_stop_job    
--    N'Esportazione_Tabellone' ;    
  
waitfor delay '00:00:01'  
  
end  
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[temp_GESTIONE_SELECT_EMAIL_DA_INVIARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[C6MartPeriodico].[GESTIONE_SELECT_EMAIL_DA_INVIARE]
CREATE PROCEDURE [C6MartPeriodico].[temp_GESTIONE_SELECT_EMAIL_DA_INVIARE]
AS

--INSERT INTO C6MartPeriodico.Gestione_EmailBCK
--SELECT * FROM C6MartPeriodico.GESTIONE_EMAIL
--WHERE Data_Generazione < '20130613'

--UPDATE STATISTICS C6MartPeriodico.GESTIONE_EMAIL



--select * from c6martperiodico.anag_promotori where id_promotore = '014890'
--select * from c6storico.anag_promotori where id_promotore = '014890'
--update c6martperiodico.anag_promotori set e_mail = 'LBATTISTI2@bancafideuram.it' where id_promotore = '014890'
--drop table temp_mail
--
--select *
--from temp_mail
--where testo like '%BSSSVT62L13H243Z%'
--where testo not like '<html>%'


BEGIN

--recupero la percentuale limite di risorse non associate

DECLARE @Ambiente varchar(20)
select @Ambiente= dbo.getParametro('Ambiente')
DECLARE @DestinatarioEmail varchar(255)
select @DestinatarioEmail= dbo.getParametro('DestinatarioEmail')

DECLARE @SERVIZI_OPERATIVI as varchar(50)
select @SERVIZI_OPERATIVI= dbo.getParametro('EmailServiziOperativi')

DECLARE @RESPONSABILE_PROCESSO as varchar(50)
select @RESPONSABILE_PROCESSO= dbo.getParametro('EmailResponsabileProcesso')

SELECT top 800
        anag_promotori.*,
		GESTIONE_EMAIL.[ID_ELAB]
		,GESTIONE_EMAIL.rete
		,GESTIONE_EMAIL.codICEPB cod_agente
		,GESTIONE_EMAIL.TIPO
		,GESTIONE_EMAIL.[Email_Id]
		,'' Cod_Fiscale
      	,[dbo].[Replace_From_Email](GESTIONE_EMAIL.[Rete],ISNULL(TIPO_EMAIL.[E_From],'')) E_From
		, case 
			when 
				@Ambiente = 'Produzione' 
			then 
				dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,@SERVIZI_OPERATIVI,@RESPONSABILE_PROCESSO)
			else
				@DestinatarioEmail
		 end as [E_To]
		,'' E_Ccn
		,'' E_Cc
		, case 
			when 
				@Ambiente = 'Produzione' 
			then 
				dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],'','',ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE)
			else
				dbo.Replace_Subject_Email(TIPO_EMAIL.[E_Subject],'','',ANAG_PROMOTORI.NOME,ANAG_PROMOTORI.COGNOME,ANAG_PROMOTORI.ID_PROMOTORE) + '--- TO:' +  dbo.Replace_To_Email(TIPO_EMAIL.[E_To],ANAG_PROMOTORI.E_MAIL,'','') + '---'
		 end as E_Subject
      ,dbo.Replace_Testo_Email_Periodico(GESTIONE_EMAIL.RETE,GESTIONE_EMAIL.[CodicePB],GESTIONE_EMAIL.TIPO,TIPO_EMAIL.[Testo])  Testo
--drop table temp_mail
--into temp_mail
FROM [C6MartPeriodico].[GESTIONE_EMAIL] GESTIONE_EMAIL
  INNER JOIN [C6MartPeriodico].[TIPO_EMAIL] TIPO_EMAIL
  ON GESTIONE_EMAIL.Tipo = TIPO_EMAIL.Tipo
  AND GESTIONE_EMAIL.[Tipo] <> 'LC_REP_GEN'
--  INNER JOIN [C6Mart].[CONTRATTOSEI] CONTRATTOSEI
--  ON CONTRATTOSEI.Rete = GESTIONE_EMAIL.[Rete]
--  AND CONTRATTOSEI.Cod_Agente = GESTIONE_EMAIL.CodicePB
--  INNER JOIN [C6MartPeriodico].[ANAG_CLIENTI] ANAG_CLIENTI
--  ON ANAG_CLIENTI.Rete = CONTRATTOSEI.[Rete]
--  AND ANAG_CLIENTI.Cod_Fiscale = CONTRATTOSEI.Cod_Fiscale
  INNER JOIN [C6MartPeriodico].ANAG_PROMOTORI ANAG_PROMOTORI
  ON ANAG_PROMOTORI.Rete = GESTIONE_EMAIL.[Rete]
  AND ANAG_PROMOTORI.ID_PROMOTORE = GESTIONE_EMAIL.[CodicePB]
--  WHERE isnull(GESTIONE_EMAIL.Inviata,'N')='N'
  --AND GESTIONE_EMAIL.rete = 's'
where ANAG_PROMOTORI.cognome = 'MILANESE' and nome = 'GIuSTINO'
END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[temp_RP_DM_GestioneEmail]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--delete from C6MartPeriodico.gestione_Email where data_Generazione > getDate()-1
--truncate table log_esecuzione
--select * from log_esecuzione
CREATE PROCEDURE [C6MartPeriodico].[temp_RP_DM_GestioneEmail] 
AS
BEGIN

BEGIN TRANSACTION
--QUESTA SP POPOLA LA TABELLA GESTIONE_EMAIL PER LE CASISTICHE DI:
--	PERFEZIONAMENTO;
--	MANCATA MIGRAZIONE;
--	REINVIO SOLLECITO MANCATA MIGRAZIONE.

--LA GESTIONE DELLE EMAIL PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO O
--PER REINVIO DEL SOLLECITO PER LE RISORSE NON ASSOCIATE AD AREE DI BISOGNO 
--VIENE FATTA DOPO L'ALLINEAMENTO CON I DATI DEL SIMPB

	
--ESTRAZIONE EMAIL PERFEZIONAMENTO
--TIPO EMAIL: "PERF"
--L'EMAIL VIENE INVIATA PER TUTTI I CLIENTI CHE HANNO DATA DI PERFEZIONAMENTO VALORIZZATA
--IL CONTROLLO SULLA DATA DI GENERAZIONE >= DELLA DATA DI PERFEZIONAMENTO E' DOVUTO AL
--FATTO CHE IL CONTRATTO PUO` ESSERE CHIUSO E RIAPERTO ED IN QUESTO CASO LA MAIL DI PERFEZIONAMENTO
--DEVE ESSERE REINVIATA

-- EMAIL DI ADESIONE AL SERVIZIO SEI
-- TIPO EMAIL 'PERF'
DECLARE @NUMGIORNIDALPERF SMALLINT
DECLARE @NUMGIORNIDASOLLECITO SMALLINT
DECLARE @ID_ELAB INT
DECLARE @MaxInvioSoll as SMALLINT

SET @MaxInvioSoll = CAST(dbo.getParametro('MaxInvioSoll') as smallint)
SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
SET @NUMGIORNIDALPERF = CAST(dbo.getParametro('NUMGIORNIDALPERF') as smallint) --7
SET @NUMGIORNIDASOLLECITO = CAST(dbo.getParametro('NUMGIORNIDASOLLECITO') as smallint) --7

-- Log esecuzione
INSERT INTO LOG_ESECUZIONE(Nome, Inizio, Nota) 
	VALUES ('RP_DM_GestioneEmail - Mail Perf',GETDATE(),'Elaborazione giornaliera')
--0. MODIFICO I RECORD IN GESTIONE EMAIL CON TIPO = PERF PER EVITARE IL REINVIO MULTIPLO A SEGUITO DELLA RIATTIVAZIONE 
UPDATE C6MartPeriodico.GESTIONE_EMAIL
SET TIPO = 'OLD'
FROM C6MartPeriodico.Gestione_EMAIL EMAIL
	INNER JOIN C6MartPeriodico.VCONTRATTI VC
	   ON VC.COD_FISCALE = EMAIL.COD_FISCALE
	   AND VC.rete = EMAIL.RETE
	   AND EMAIL.TIPO = 'PERF'
    INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI]  MC
       ON VC.chiaveClientePB = MC.CHIAVECLIENTEPB
       AND VC.riattivazione = 1 AND VC.DATA_FINEAVANZATO = '9999-12-31 00:00:00.000' 
       AND MC.Tip_riattivazione = 1


--1. INSERIMENTO MAIL DI "PERFEZIONAMENTO"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- NON PRESENTI SU GESTIONE_EMAIL

INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione, ID_ELAB)
SELECT 
	VC.Rete,
	VC.Cod_Fiscale,
	'PERF' as TipoEmail,
	GETDATE() AS DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6MartPeriodico.VCONTRATTI VC
INNER JOIN C6MartPeriodico.CONTRATTOSEI_METADATI MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
	AND EMAIL.TIPO = 'PERF'						
	AND EMAIL.Data_Generazione >= VC.Data_Perf	-- CONDIZIONE PER ESCLUDERE DAL JOIN UN CONTRATTO CHIUSO E RIAPERTO.
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF	-- IN QUESTO MODO LO INSERIAMO NUOVAMENTE IN GESTIONE_MAIL.
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	--AND VC.InvioBenvenuto = 'N'
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND EMAIL.COD_FISCALE IS NULL
	AND PF.RETE IS NULL
	
		
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf' AND
	Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Perf')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - SollecitiNOMIG',GETDATE(),'Elaborazione giornaliera')

-- 2. INSERIMENTO MAIL "SOLLECITI"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE
-- N.B. PER IL PRIMO SOLLECITO DATA_ULTIMOSOLLECITO è NULL -> CONSIDERIAMO DATA_PERF

INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT 
	VC.rete,
	VC.cod_fiscale,
	CASE 
		WHEN ISNULL(MD.numSolleciti,0) = 0 THEN '1_SOLL_NOMIG'
		WHEN MD.numSolleciti = 1 THEN '2_SOLL_NOMIG'
		WHEN MD.numSolleciti = 2 THEN '3_SOLL_NOMIG'
		ELSE 'S_SOLL_NOMIG'
	END as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB
FROM C6MartPeriodico.VCONTRATTI VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
--LEFT JOIN C6MartPeriodico.GESTIONE_EMAIL EMAIL
--	ON VC.RETE = EMAIL.RETE
--	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
    --AND EMAIL.DATA_GENERAZIONE < getDate()
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE

WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' 
	AND VC.Data_FineAvanzato > getDate()
--	AND (EMAIL.COD_FISCALE IS NULL OR EMAIL.INVIATA = 'S')
	AND PF.RETE IS NULL
    AND VC.COD_FISCALE = 'TSSDNI82P44A984U'
		

-- 2.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "SOLLECITI"
-- AUMENTIAMO IL NUMERO numSolleciti
-- AGGIORNIAMO LA DATA Data_UltimoSollecito

UPDATE 
	C6MartPeriodico.[CONTRATTOSEI_METADATI]
SET 
	numSolleciti = isnull(numSolleciti,0) + 1,
	Data_UltimoSollecito = getDate()
FROM C6MartPeriodico.vcontratti VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.ChiaveClientePb = VC.ChiaveClientePb
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND MD.numSolleciti < @MaxInvioSoll
	AND (
			(ISNULL(MD.numSolleciti,0) = 0 AND DATEDIFF(DAY,VC.Data_Perf,GETDATE()) >= @NUMGIORNIDALPERF)
			 OR
			(DATEDIFF(DAY,isnull(MD.Data_UltimoSollecito,GETDATE()),GETDATE()) >= @NUMGIORNIDASOLLECITO)
		)
	AND MD.clienteMigrato = 'N'
	AND MD.InvioBenvenuto = 'N' -- richiesto da Tringali per non inviare mail se report già inviato
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND PF.RETE IS NULL
	AND VC.COD_FISCALE = 'TSSDNI82P44A984U'
	
-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET	Fine = GETDATE(),Tipo = 'UPDATE',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG' AND Inizio = (SELECT MAX(Inizio) FROM LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - SollecitiNOMIG')

INSERT INTO LOG_ESECUZIONE (Nome, Inizio, Nota)
	VALUES ('RP_DM_GestioneEmail - Mail Revoca',GETDATE(),'Elaborazione giornaliera')

-- 3. INSERIMENTO MAIL "REVOCA"
-- TUPLE DA PERFEZIONARE SU CONTRATTOSEI
-- E PRESENTI SU GESTIONE_EMAIL
-- IL PB NON HA EFFETTUATO LA MIGRAZIONE DOPO @MaxInvioSoll SOLLECITI
-- N.B. OCCHIO ALLA CONDIZIONE -> (c6.clienteMigrato = 'N' AND numSolleciti = @MaxInvioSoll) OR  numSolleciti > @MaxInvioSoll
--		OVVERO: BUONA LA MIGRAZIONE EFFETTUATA DOPO L'ULTIMO SOLLECITO MA NON DOPO LA PRIMA REVOCA

INSERT INTO C6MartPeriodico.GESTIONE_EMAIL
	(Rete,Cod_Fiscale,Tipo,Data_Generazione,ID_ELAB)
SELECT  
	email.rete,
	email.cod_fiscale,
	'REVOCA_NOMIG' as tipoEmail,
	getDate() as DataGenerazione,
	@ID_ELAB AS ID_ELAB --max(Data_Generazione)
FROM C6MartPeriodico.vcontratti VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN C6MartPeriodico.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
    AND VC.COD_FISCALE = 'TSSDNI82P44A984U'
GROUP BY email.rete, email.cod_fiscale
		


-- 3.BIS UPDATE CONTRATTOSEI DOPO INSERIMENTO MAIL "REVOCA"
-- AUMENTIAMO IL NUMERO numSolleciti
-- NON AGGIORNIAMO LA DATA Data_UltimoSollecito
-- N.B. VERIFICARE SE IL CAMPO Data_UltimoSollecito VA AGGIORNATO

UPDATE C6MartPeriodico.[CONTRATTOSEI_METADATI]
SET 
	numRevoche = isnull(numRevoche,0) + 1,
	data_UltimaRevoca = getDate()
FROM C6MartPeriodico.vcontratti VC
INNER JOIN [C6MartPeriodico].[CONTRATTOSEI_METADATI] MD
		ON MD.chiaveclientepb = VC.chiaveclientepb
INNER JOIN C6MartPeriodico.gestione_Email EMAIL
	ON VC.RETE = EMAIL.RETE
	AND VC.COD_FISCALE = EMAIL.COD_FISCALE
LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
	ON VC.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA
	AND VC.RETE = PF.RETE
WHERE 1 = 1
	AND EMAIL.Tipo IN ('S_SOLL_NOMIG','REVOCA_NOMIG')	
	AND (
			(MD.numRevoche> 0) -- SONO NEL CASO DI REVOCA SUCCESSIVA BRAVO VALERIO
			OR 
			(MD.numSolleciti = @MaxInvioSoll and MD.clienteMigrato = 'N')-- SONO NEL CASO DI PRIMA REVOCA
		)
	AND VC.Data_FineAvanzato > getDate()
	--AND VC.GenerazioneReport = 'S'
	AND (DATEDIFF(DAY,isnull(MD.Data_UltimaRevoca,MD.Data_UltimoSollecito),GETDATE()) >= @NUMGIORNIDASOLLECITO)
	AND PF.RETE IS NULL
	AND VC.COD_FISCALE = 'TSSDNI82P44A984U'	

-- Log esecuzione
UPDATE LOG_ESECUZIONE
SET Fine = GETDATE(),Tipo = 'INSERT',Righe = @@ROWCOUNT
WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca' AND Inizio = (
		SELECT MAX(Inizio) FROM	LOG_ESECUZIONE WHERE Nome = 'RP_DM_GestioneEmail - Mail Revoca')

COMMIT

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[temp_RP_DM_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6MartPeriodico].[temp_RP_DM_PATRIMONIO_BF]
	-- Add the parameters for the stored procedure here
	--select * from C6MartPeriodico.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()
	

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_BF


	
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN  SPB.TIPPROD IN ('DT', 'FI') AND 
--              SPB.DTSOTTOS IS NOT NULL THEN null
--			ELSE SPB.DTSOTTOS
         CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
 				ELSE SPB.DTSOTTOS
 		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			ELSE LTRIM(RTRIM(CON.nomeProgetto))
		END AS NOME_PROGETTO,
		CON.area AS ID_AREA,
		CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE SPB.DTRIFE --CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
 		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,	 
 		CASE 
 			WHEN (SPB.TIPPROD = 'GE' 
 				OR SPB.TIPPROD = 'GES')
 				AND SPB.DTSOTTOS < 20070101
 				THEN NULL 
 			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
 				THEN NULL
 			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
 				THEN NULL
 			ELSE SPB.RENDINIZ
 		END AS REND_SOTTOSCRIZIONE,
 		CASE 
 			WHEN (SPB.TIPPROD = 'GE' 
 				OR SPB.TIPPROD = 'GES')
 				AND SPB.DTSOTTOS < 20070101
 				THEN NULL 
 			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
 				THEN NULL
 			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
 				THEN NULL
 			ELSE SPB.RENDINIZ
 		END AS REND_TRIMESTRE,	
 		CASE 
 			WHEN (SPB.TIPPROD = 'GE' 
 				OR SPB.TIPPROD = 'GES')
 				AND SPB.DTSOTTOS < 20070101
 				THEN NULL 
 			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
 				THEN NULL
 			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
 				THEN NULL
 			ELSE SPB.RENDANNO
 		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
	 	@ID_ELAB AS ID_ELAB,  
	 	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB	
	INTO #PATRIMONIO
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'

    
    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPOPRODOTTO = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DTSOTTOS
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
		CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		SPB.DTRIFE AS DATA_OPERAZIONE,
		null AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		null AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		null AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB	
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB
	INNER JOIN C6StagingPeriodico.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6StagingPeriodico.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT OUTER JOIN C6StagingPeriodico.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC' 

	/*
	truncate table C6MartPeriodico.patrimonio_bf
	select top 1 * from #patrimonio
 */
 
  
	 
SELECT [RETE]
      ,[COD_FISCALE]
      ,[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
      ,[STRTYPE]
      ,[COMPLEX]
      ,[EMITTENTE]
      ,[ISIN]
      ,[ChiaveClientePb]
  INTO #PATRIMONIO2
  FROM #PATRIMONIO

	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.dtsottos IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
         
		 CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		SPB.DTRIFE AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		convert(decimal(15,3),SPB.PARTVIA) AS PARTVIA_DISINV,
		SPB.PARTVIAAL AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,
		convert(decimal(8,5),SPB.RENDINIZ) AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		convert(decimal(8,5),SPB.RENDANNO) AS REND_ANNO,
        @ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
        STRTYPE,
        null as COMPLEX,
        null as EMITTENTE,
		SPB.ISIN,
		VCON.CHIAVECLIENTEPB
		FROM C6StagingPeriodico.SPB_CONTR_SINTESI SPB 		
		LEFT JOIN #PATRIMONIO PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		--LEFT JOIN C6STAGING.RP_vNewPositionProposta NEWPOSITION
		--	ON	SPB.POSITIONID = NEWPOSITION.positionIDProposta
		JOIN C6MartPeriodico.VCONTRATTI VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
 
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM #PATRIMONIO2
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    INSERT INTO C6MartPeriodico.TEST_QUALITY
    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
    FROM #PATRIMONIO_DUPLICATI
    GROUP BY RETE, COD_FISCALE
    
	INSERT INTO C6MartPeriodico.PATRIMONIO_BF 
	SELECT P.* FROM 
	#PATRIMONIO2 P LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
 
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF'
		)


--
--DROP TABLE #TempPianif
--
DROP table #patrimonio
DROP table #PATRIMONIO2
drop table #PATRIMONIO_DUPLICATI
END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[test_CaricamentoPL_fc]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[test_CaricamentoPL_fc]
	-- Add the parameters for the stored procedure here

AS
BEGIN 

DECLARE @rete char (1)
Declare @CodiceFiscale   varchar(16) 

SELECT  rete, 
		cod_fiscale 
into 	#Clienti	
FROM	c6martperiodico.vcontrattipergenerazionereport

SELECT TOP 1 @rete=rete,@CodiceFiscale=cod_fiscale   FROM #Clienti

while @@ROWCOUNT <> 0
BEGIN
EXECUTE [C6MartPeriodico].[POPOLA_D2_S157ConfrontoPiramidi_SVIL] @Rete,@CodiceFiscale

 DELETE From #Clienti where rete=@rete and cod_fiscale=@CodiceFiscale	

SELECT TOP 1 @rete=rete,@CodiceFiscale=cod_fiscale   FROM #Clienti

END

DROP TABLE #Clienti

END



GO
/****** Object:  StoredProcedure [C6MartPeriodico].[UPDATE_TABELLE_CAMBIO_RETE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodico].[UPDATE_TABELLE_CAMBIO_RETE]
AS

begin

---------------------------------------    Recupero dalla Puc l'elenco dei cf sui quali è stato fatto il cambio rete

select v.codfis, v.piva, v.codman, v.codicecontratto, v.statocontratto, v.rete as retenew, v.agente as agentenew, c.rete as reteold, c.pb as agenteold

into #elenco

from [consuni].consulenzaunicafl.dbo.ClienteCambioReteContratto c
inner join [consuni].consulenzaunica.dbo.vinfocliente v
on v.codicecontratto=c.cod_conf
where flag_cli_fittizio='N'
and statocontratto in ('SEI','AVANZATOBASE')

----------------------------------------  Aggiorno la rete sulle tabelle del giornaliero per evitare un nuovo invio di lettere ed email

exec dbo.CreaTabellaBackUp 'gestione_pdf_ftp', 'c6mart', 'preCambioRete'
--select pdf.codicefiscale,pdf.rete as reteAttuale, elenco.retenew as nuovaRete
update pdf set pdf.rete = elenco.retenew
from  c6mart.gestione_pdf_ftp pdf
inner join #elenco elenco
on pdf.codicefiscale = elenco.codfis

exec dbo.CreaTabellaBackUp 'gestione_email', 'c6mart', 'preCambioRete'
--select email.cod_fiscale,email.rete as reteAttuale,elenco.retenew as nuovaRete
update email set email.rete = elenco.retenew
from c6mart.gestione_email email
inner join #elenco elenco
on email.cod_fiscale = elenco.codfis


----------------------------------------  Aggiorno la rete sulle tabelle della Trimestrale

exec dbo.CreaTabellaBackUp 'APPO_CONTRATTI', 'C6StagingPeriodico', 'preCambioRete'
--select appo.cod_fiscale,appo.rete as reteAttuale,elenco.retenew as nuovaRete
update appo set appo.rete = elenco.retenew
from [C6StagingPeriodico].[APPO_CONTRATTI] appo
inner join #elenco elenco
on appo.cod_fiscale = elenco.codfis





-- Log esecuzione
	--INSERT INTO LOG_ESECUZIONE_PERIODICO
	--	(Nome, Inizio, Nota)
	--VALUES (
	--	'UPDATE_TABELLE_CAMBIO_RETE',
	--	GETDATE(),
	--	'Elaborazione trimestrale'
	--)


  
     
	-- Log esecuzione
	--UPDATE
	--	LOG_ESECUZIONE_PERIODICO
	--SET
	--	Fine = GETDATE(),
	--	Tipo = 'UPDATE',
	--	Righe = @@ROWCOUNT
	--WHERE
	--	Nome = 'UPDATE_TABELLE_CAMBIO_RETE' AND
	--	Inizio = (
	--		SELECT
	--			MAX(Inizio)
	--		FROM
	--			LOG_ESECUZIONE_PERIODICO
	--		WHERE
	--			Nome = 'UPDATE_TABELLE_CAMBIO_RETE'
	--	)



end

GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Update_TB_Campione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6MartPeriodico].[Update_TB_Campione](@codfis varchar(16),@rt varchar(1))
AS
BEGIN

	SET NOCOUNT ON;

	UPDATE [c6martperiodico].[TB_Campione]
	SET flag_stampa=2
	WHERE
	cod_fiscale=@codfis AND rete=@rt;

END;
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Update_TB_Campione_GB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE   procedure [C6MartPeriodico].[Update_TB_Campione_GB](@codfis varchar(16),@rt varchar(1))
AS
BEGIN

	SET NOCOUNT ON;

	UPDATE [C6MartPeriodico].[TB_Campione_GB]
	SET flag_stampa=2
	WHERE
	cod_fiscale=@codfis AND rete=@rt;

END;
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[UpdateStatoReport]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[UpdateStatoReport](@FiscalCode nvarchar(max), @Rete nvarchar(max))
as
begin

insert into dbo.logn(message, level, logged, application)
select 'UpdateStatoReport:'+@fiscalCode+@Rete, 'Info', getdate(), 'Trimestrale'

update C6MartPeriodico.controllo_trimestrale 
set stato_report = 4 
where COALESCE(cod_fiscale,'R')=COALESCE(@FiscalCode,'R') and COALESCE(rete,'R') =COALESCE(@Rete,'R')

end


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Util_Test_PL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6MartPeriodico].[Util_Test_PL]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

	SELECT 'C6MartPeriodico.PL_Intermediari' 
	DECLARE @num int
	EXEC C6MartPeriodico.PL_Intermediari @Rete , @CodiceFiscale , @num OUTPUT
	SELECT @num AS NumIntermediari

	SELECT 'PL_S10PatrimonioFinanziario' 
	EXEC C6MartPeriodico.PL_S10PatrimonioFinanziario @Rete , @CodiceFiscale 

	SELECT 'PL_S18PatrimonioFinanziarioRischio' 
	EXEC C6MartPeriodico.PL_S18PatrimonioFinanziarioRischio @Rete,@CodiceFiscale

	SELECT 'PL_S1Patrimonio' 
	EXEC C6MartPeriodico.PL_S1Patrimonio @Rete,@CodiceFiscale

	SELECT 'PL_S23DettaglioRischio' 
	EXEC C6MartPeriodico.PL_S23DettaglioRischio @Rete,@CodiceFiscale

	SELECT 'PL_S25Anagrafica' 
	EXEC C6MartPeriodico.PL_S25Anagrafica @Rete,@CodiceFiscale

	SELECT 'PL_S26PatrimonioImmobiliare' 
	EXEC C6MartPeriodico.PL_S26PatrimonioImmobiliare @Rete,@CodiceFiscale

	SELECT 'PL_S27ALtroPatrimonio' 
	EXEC C6MartPeriodico.PL_S27ALtroPatrimonio @Rete,@CodiceFiscale

	SELECT 'PL_S2PatrimonioFinanziario' 
	EXEC C6MartPeriodico.PL_S2PatrimonioFinanziario @Rete,@CodiceFiscale

	SELECT 'PL_S31PatrimonioFinanziarioIntermediario' 
	EXEC C6MartPeriodico.PL_S31PatrimonioFinanziarioIntermediario @Rete,@CodiceFiscale

	SELECT 'PL_S32PatrimonioFinanziarioMAssetClass' 
	EXEC C6MartPeriodico.PL_S32PatrimonioFinanziarioMAssetClass @Rete,@CodiceFiscale

	SELECT 'PL_S36ProfiloRischio' 
	EXEC C6MartPeriodico.PL_S36ProfiloRischio @Rete,@CodiceFiscale

	SELECT 'PL_S37PiramideModello' 
	EXEC C6MartPeriodico.PL_S37PiramideModello @Rete,@CodiceFiscale

	SELECT 'PL_S43DettaglioProdottiBF' 
	EXEC C6MartPeriodico.PL_S43DettaglioProdottiBF @Rete,@CodiceFiscale

	SELECT 'PL_S47ContoCorrenteBF' 
	EXEC C6MartPeriodico.PL_S47ContoCorrenteBF @Rete,@CodiceFiscale

	SELECT 'PL_S48DettaglioProdotti' 
	EXEC C6MartPeriodico.PL_S48DettaglioProdotti @Rete,@CodiceFiscale

	SELECT 'PL_S49PolizzeAltriIstituti' 
	EXEC C6MartPeriodico.PL_S49PolizzeAltriIstituti @Rete,@CodiceFiscale

	SELECT 'PL_S50FondiAltriIstituti' 
	EXEC C6MartPeriodico.PL_S50FondiAltriIstituti @Rete,@CodiceFiscale

	SELECT 'PL_S51ContoCorrenteAI' 
	EXEC C6MartPeriodico.PL_S51ContoCorrenteAI @Rete,@CodiceFiscale

	SELECT 'PL_S56PatrimonioBFAreeBisogno' 
	EXEC C6MartPeriodico.PL_S56PatrimonioBFAreeBisogno @Rete,@CodiceFiscale

	SELECT 'PL_S57ConfrontoPiramidi' 
	EXEC C6MartPeriodico.PL_S57ConfrontoPiramidi @Rete,@CodiceFiscale

	SELECT 'PL_S6PatrimonioFinanziario' 
	EXEC C6MartPeriodico.PL_S6PatrimonioFinanziario @Rete,@CodiceFiscale

	SELECT 'PL_S75GradoCopertura' 
	EXEC C6MartPeriodico.PL_S75GradoCopertura @Rete,@CodiceFiscale

	SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass' 
	EXEC C6MartPeriodico.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass @Rete,@CodiceFiscale

	SELECT 'PL_S76PatrimonioNonRappresentabileAssettClass' 
	EXEC C6MartPeriodico.PL_S76PatrimonioNonRappresentabileAssettClass @Rete,@CodiceFiscale

	SELECT 'PL_S80BisEvoluzioneRischio' 
	EXEC C6MartPeriodico.PL_S80BisEvoluzioneRischio @Rete,@CodiceFiscale

	SELECT 'PL_S80EvoluzioneControvalore' 
	EXEC C6MartPeriodico.PL_S80EvoluzioneControvalore @Rete,@CodiceFiscale

	SELECT 'PL_S82BisDatiSintetici' 
	EXEC C6MartPeriodico.PL_S82BisDatiSintetici @Rete,@CodiceFiscale

	SELECT 'PL_S82DatiSintetici' 
	EXEC C6MartPeriodico.PL_S82DatiSintetici @Rete,@CodiceFiscale

	SELECT 'PL_S83DatiRendimento' 
	EXEC C6MartPeriodico.PL_S83DatiRendimento @Rete,@CodiceFiscale

	SELECT 'PL_S84ControvaloreRisorseApportate' 
	EXEC C6MartPeriodico.PL_S84ControvaloreRisorseApportate @Rete,@CodiceFiscale

	SELECT 'PL_S85RendimentoPortafoglioCono' 
	EXEC C6MartPeriodico.PL_S85RendimentoPortafoglioCono @Rete,@CodiceFiscale

	SELECT 'PL_S86PatrimonioFinanziarioMAssetClass' 
	EXEC C6MartPeriodico.PL_S86PatrimonioFinanziarioMAssetClass @Rete,@CodiceFiscale

	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento' 
	EXEC C6MartPeriodico.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento @Rete,@CodiceFiscale

	SELECT 'PL_S93Controvalore' 
	EXEC C6MartPeriodico.PL_S93Controvalore @Rete,@CodiceFiscale

	SELECT 'PL_S94Rischio' 
	EXEC C6MartPeriodico.PL_S94Rischio @Rete,@CodiceFiscale

END


GO
/****** Object:  StoredProcedure [C6MartPeriodico].[Verifica_esecuzione_API_Trimestrale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6MartPeriodico].[Verifica_esecuzione_API_Trimestrale] as  
  
begin   
 
 if( (SELECT TOP (1) 
[flattivo]
FROM consuni.[ConsulenzaUnicaFL].[dbo].[Semaforo]
where nomebatch='Trimestrale Sei'
order by id desc)<>0)
begin
WAITFOR DELAY '00:03:00';
exec [C6MartPeriodico].[Verifica_esecuzione_API_Trimestrale]
end
else
print('OK')
end
  
  
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[zzzPL_S80Alternativa]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure

-- Stored procedure


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodico].[PL_S80Alternativa]'F','PZZFCS50L28E092G'
--DROP PROCEDURE [C6MartPeriodico].[PL_S80BisEvoluzioneRischio]

CREATE procedure [C6MartPeriodico].[zzzPL_S80Alternativa]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Recupero data congelamento SEI

	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT
	DECLARE @DettMovPrec money
	DECLARE @DettMovCorr money
	DECLARE @AppoDettMovPrec varchar(50)
	DECLARE @AppoDettMovCorr varchar(50)
	DECLARE @NumAsterischiPrec int
	DECLARE @NumAsterischiCorr int
	DECLARE @DATA_FOTO datetime
	DECLARE @UltimoInvio int

	SET @NumAsterischiPrec = 0
	SET @NumAsterischiCorr = 0

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0
	
   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

    -- Inserimento Dati Scirocco
    --SELECT @DettMovPrec = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM < '20111231'
	SELECT @DettMovPrec = DETT_MOV_PREC, @DettMovCorr = DETT_MOV_CORR
	FROM C6MartPeriodico.DettaglioMovimenti
	WHERE
		RETE = @Rete
	AND
		COD_FIS = @CodiceFiscale
    --SELECT @DettMovCorr = (sum(APPORTI) - sum(PRELIEVI))
	--FROM [C6StampeCentralizzate].[C6StagingPeriodico].[W6APTR]
	--WHERE DTTRIM = '20111231'
	
	IF @DettMovPrec is null
		SET @AppoDettMovPrec = 'n.d.'
	ELSE
		SET @AppoDettMovPrec = REPLACE(CAST(@DettMovPrec as varchar(50)), '.', ',')

	IF @DettMovCorr is null
		SET @AppoDettMovCorr = 'n.d.'
	ELSE
		SET @AppoDettMovCorr = REPLACE(CAST(@DettMovCorr as varchar(50)), '.', ',')

	--query per asterischi situazione precedente
	IF EXISTS(SELECT * FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEICS]
		WHERE CODPROD IN ('37', 'GP') AND DTTRIM = c6martperiodico.getprevioustrimestre(getdate(),0)
		AND RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1

	IF EXISTS(SELECT * FROM C6StagingPeriodico.ST_MON
		WHERE RETE = @Rete AND CODFIS = @CodiceFiscale)
		SET @NumAsterischiPrec = 1
	-----------------------------------------
	
	--query per asterischi situazione corrente
	IF EXISTS(SELECT * FROM C6MartPeriodico.PATRIMONIO_BF
		WHERE COD_INTERNO IN ('37', 'GP')
		AND RETE = @Rete AND COD_FISCALE = @CodiceFiscale)
		SET @NumAsterischiCorr = 1
	-----------------------------------------

	SELECT @DATA_FOTO = DATA_FOTO FROM C6MartPeriodico.MONITORAGGIO_INIZIALE a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale

	SELECT @UltimoInvio = Count(*) FROM C6MartPeriodico.MONITORAGGIO_REPORT a
	WHERE a.Rete = @Rete
	AND a.COD_FISCALE = @CodiceFiscale


    IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
    BEGIN

	-- Attivazione monitoraggio

--versione nuova da testare 


	SELECT
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		ISNULL(INI.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		INI.CTV_EXT,
		INI.CTV_INV,
		INI.CTV_PRE,
		INI.CTV_RIS,
		INI.CTV_LIQ,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ AS RisorseAllocate,
		INI.CTV_NA AS RisorseNonAllocate,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA AS RisorseFinanziarie,
		INI.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END,
		INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA + INI.CTV_CC + ISNULL(INI.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio		
		--INI.CTV_EXT + INI.CTV_INV + INI.CTV_PRE + INI.CTV_RIS + INI.CTV_LIQ + INI.CTV_NA +	(CASE WHEN CAST(INI.CTV_CC AS NUMERIC(20,4)) < 0 THEN INI.CTV_CC ELSE 0 END) AS TotalePatrimonio
		--INI.CTV_TOTALE AS ControvaloreComplessivo
		
		,null as DettMov
		,0	as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale
       --AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,'2999-12-31')
       
    UNION ALL

	-- Precedente invio report

 	SELECT
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		ISNULL(rep.PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		rep.CTV_EXT,
		rep.CTV_INV,
		rep.CTV_PRE,
		rep.CTV_RIS,
		rep.CTV_LIQ,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ AS RisorseAllocate,		
		rep.CTV_NA AS RisorseNonAllocate,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA AS RisorseFinanziarie,		
		rep.CTV_CC AS Contocorrente,
		--Contocorrente = CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END,
		rep.CTV_EXT + rep.CTV_INV + rep.CTV_PRE + rep.CTV_RIS + rep.CTV_LIQ + rep.CTV_NA + rep.CTV_CC + ISNULL(rep.PARTITA_VIAGGIANTE,0) AS TotalePatrimonio				
		--CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + (CASE WHEN CAST(CTV_CC AS NUMERIC(20,4)) < 0 THEN CTV_CC ELSE 0 END) AS TotalePatrimonio
		--CTV_TOTALE AS ControvaloreComplessivo
		
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovPrec END) as DettMov
		,(CASE WHEN @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiPrec END) as NumeroAsterischiNota
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
		AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento

	UNION ALL

	-- Situazione corrente
	--All values will be read from DB and passed to code, no value will be calculated on code

	SELECT 
			3 AS Fase,
			CASE
				WHEN @DataCongelamento IS NULL THEN GETDATE()
				ELSE @DataCongelamento
			END AS DataFase,
			--Get the sum Operazioni in corso	
			--sum((isnull(IMPORTO,0))) as Partita_viaggiante,
			0 as Partita_viaggiante,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end ) as CTV_EXT,
			sum(case Upper(id_area) when 'INV' then ctv else 0 end ) as CTV_INV,
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) as CTV_PRE,
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end ) as CTV_PRE,
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end ) as CTV_RIS,			
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) as CTV_LIQ,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end ) AS CTV_RA,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as CTV_NA,
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end ) +
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	AS CTV_RF,				
			--CTV_CC = (Case WHEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end ) < 0 THEN sum(case Upper(id_area) when 'CC' then ctv  else 0 end) ELSE 0 END),
			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS CTV_CC,
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS CTV_CC,			
			sum(case Upper(id_area) when 'EXT' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'INV' then ctv else 0 end )+ 
			--sum(case Upper(id_area) when 'PRE' then ctv else 0 end )+ 
			sum(case when Upper(id_area) like 'PRE%' then ctv else 0 end )+
			sum(case Upper(id_area) when 'RIS' then ctv else 0 end )+
			sum(case Upper(id_area) when 'LIQ' then ctv else 0 end )+ 
			sum(case Upper(id_area) when 'NA' then ctv else 0 end )	+
			sum(Case Upper(id_area) when 'CC' then ctv else 0 end) AS TotalePatrimonio
			--sum((isnull(IMPORTO,0))) AS TotalePatrimonio

			--sum(Case When (Upper(id_area) = 'CC' and cast(ctv As Numeric)<0) Then ctv else 0 end) AS TotalePatrimonio			
			--SUM(CTV) as ControvaloreComplessivo
			
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 'n.d.' ELSE @AppoDettMovCorr END) as DettMov
			,(CASE WHEN @UltimoInvio = 0 AND @DATA_FOTO < '20111001' THEN 0 ELSE @NumAsterischiCorr END) as NumeroAsterischiNota
			--,'1' as NumeroAsterischiNota
	FROM 
		C6MartPeriodico.PATRIMONIO_BF 
--		AS BF Left Join C6MartPeriodico.partite_viaggianti AS PV
--		ON 	BF.RETE = PV.RETE
--		AND BF.COD_FISCALE = PV.COD_FISCALE
	WHERE	
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale

END

ELSE

BEGIN

	SELECT
		1 AS Fase,
		DATA_FOTO AS DataFase,
		ISNULL(PARTITA_VIAGGIANTE,0) AS Partita_viaggiante,
		CTV_EXT,
		CTV_INV,
		CTV_PRE,
		CTV_RIS,
		CTV_LIQ,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ AS RisorseAllocate,		
		CTV_NA AS RisorseNonAllocate,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA AS RisorseFinanziarie,		
		CTV_CC AS Contocorrente,
		CTV_EXT + CTV_INV + CTV_PRE + CTV_RIS + CTV_LIQ + CTV_NA + CTV_CC AS TotalePatrimonio			
		--CTV_TOTALE AS ControvaloreComplessivo
	FROM
		MONITORAGGIO_INIZIALE
	WHERE
		1=2

END

END
GO
/****** Object:  StoredProcedure [C6MartPeriodico].[zzzRP_DM_EMAIL_PB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 26 gennaio 2009
-- Description:	Recupera PB, RM, DM, AM le cui email non sono ancora valorizzate.
-- =============================================
CREATE procedure [C6MartPeriodico].[zzzRP_DM_EMAIL_PB]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_EMAIL_PB',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	SELECT DISTINCT
		CODICI_PB.RETE AS RETE, 
		CODICI_PB.CODICE AS CODICE,
		
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' ELSE 'P' END) AS PREFISSO,
		(CASE CODICI_PB.RETE WHEN 'F' THEN 'R' ELSE 'P' END) + CODICI_PB.CODICE AS FIRMA
--,
--		CODICI_PB.LIVELLO AS LIVELLO,
--		CODICI_PB.LIV_ORD AS LIV_ORD
	FROM
	(	
		SELECT STRUTTURA.RETE, STRUTTURA.PB CODICE--, 'PB' as LIVELLO, 1 AS LIV_ORD
		FROM C6MartPeriodico.VCONTRATTI PB
		INNER JOIN C6MartPeriodico.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.RM CODICE--, 'RM' as LIVELLO, 2 AS LIV_ORD
		FROM C6MartPeriodico.VCONTRATTI PB
		INNER JOIN C6MartPeriodico.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.DM CODICE--, 'DM' as LIVELLO, 3 AS LIV_ORD
		FROM C6MartPeriodico.VCONTRATTI PB
		INNER JOIN C6MartPeriodico.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

		UNION

		SELECT STRUTTURA.RETE, STRUTTURA.AM CODICE--, 'AM' as LIVELLO, 4 AS LIV_ORD
		FROM C6MartPeriodico.VCONTRATTI PB
		INNER JOIN C6MartPeriodico.STRUTTURA_RETE STRUTTURA
			ON PB.RETE = STRUTTURA.RETE
			AND PB.COD_AGENTE = STRUTTURA.PB

	) CODICI_PB
	LEFT JOIN C6MartPeriodico.EMAIL_PB EMAIL_PB_ESISTENTI
		ON EMAIL_PB_ESISTENTI.RETE = CODICI_PB.RETE
		AND EMAIL_PB_ESISTENTI.CODICE = CODICI_PB.CODICE
	LEFT JOIN C6MartPeriodico.CODICI_PROMOTORI_FITTIZI PF
		ON (CODICI_PB.CODICE BETWEEN PF.CODICEDA AND PF.CODICEA)
		AND CODICI_PB.RETE = PF.RETE
	WHERE 
	--CODICI_PB.CODICE = '014777' and
	EMAIL_PB_ESISTENTI.EMAIL IS NULL 
		AND PF.RETE IS NULL
		
		
--togliere
	--and CODICI_PB.CODICE not in ('010712','015115','015117','015091','015182','006167','015125','015126','015185','006154','006200') 
and CODICI_PB.CODICE not in ('015185') 
---eliminato il filtro '010712'
---eliminato il filtro su '015089'--,'015163', 12/08
	--ORDER BY CODICI_PB.LIV_ORD

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_EMAIL_PB' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_EMAIL_PB'
		)
END

GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Blacklist_Blocco_Tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6MartPeriodicoImmobiliare].[Blacklist_Blocco_Tabellone] @param1 varchar(20)
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  

-- [C6MartPeriodico].[Blacklist_Blocco_Tabellone] Blocco
-- [C6MartPeriodico].[Blacklist_Blocco_Tabellone] SBlocco
--select * from c6martperiodico.tabellone where blacklist is not null
--select * from C6MartPeriodico.ExcludedList 
--select * from C6MartPeriodico.ExcludedList_testing
--
--select * from c6martperiodico.tabellone where codice_fiscale='BBBMRA56T09L736R'

--select * from C6MartPeriodico.ExcludedList where codicefiscale='FRILXA72T04H501R'



--select codicefiscale,COUNT(*) from C6MartPeriodico.ExcludedList group by codicefiscale having COUNT(*)>1

--insert into C6MartPeriodico.ExcludedList
--values ('F','BBBMRA56T09L736R','TestF',GETDATE(),1),
--('F','BBBMRA56T09L736R','TestB',GETDATE(),1),
--('F','BBBMRA56T09L736R','TestC',GETDATE(),1),
--('F','BBBMRA56T09L736R','TestF',GETDATE(),1)
----delete from C6MartPeriodico.ExcludedList  where DescrErr='TestC'
if (@param1='BLOCCO')
begin
drop table if exists #riunisco_imm
drop table if exists #rimuovoduplicati_imm

update C6MartPeriodico.tabellone
set blacklist_imm=NULL


select distinct rete,codicefiscale,DescrErr
into #rimuovoduplicati_imm
from  C6MartPeriodicoImmobiliare.ExcludedList

SELECT rete,codicefiscale,STRING_AGG( ISNULL(DescrErr, ' '), ',') As descrerr 
	into #riunisco_imm
       From #rimuovoduplicati_imm group by rete,codicefiscale

update C6MartPeriodico.tabellone 
set blacklist_imm=r.descrerr
from #riunisco_imm r inner join C6MartPeriodico.tabellone t 
on t.chiave_acn=r.Rete+r.codicefiscale

update C6MartPeriodico.tabellone 
set lettera_sost_imm='S'
where blacklist_imm like '%sostitutiva%'
end



if (@param1='SBLOCCO') 
begin
update C6MartPeriodico.tabellone 
set blacklist_imm=NULL

drop  table if exists #riunisco1_imm
drop table if exists #rimuovoduplicati1_imm


select distinct rete,codicefiscale,DescrErr
into #rimuovoduplicati1_imm
from  C6MartPeriodicoImmobiliare.ExcludedList

SELECT rete,codicefiscale,STRING_AGG( ISNULL(DescrErr, ' '), ',') As descrerr 
	into #riunisco1_imm
       From #rimuovoduplicati1_imm group by rete,codicefiscale

update C6MartPeriodico.tabellone 
set blacklist_imm=r.descrerr
from #riunisco1_imm r inner join C6MartPeriodico.tabellone t 
on t.chiave_acn=r.Rete+r.codicefiscale

update C6MartPeriodico.tabellone 
set lettera_sost_imm='S'
where blacklist_imm like '%sostitutiva%'
end



end
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Delete_Immobiliare_GestionePDF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <15.02.2019>
-- Description:	<Eliminazione righe di Immobiliare_GestionePDF>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[Delete_Immobiliare_GestionePDF]
  
  @DataRiferimento varchar(8), 
  @Return int OUTPUT

/*
SP Parameter Comment 
*/
 
AS
SET NOCOUNT ON;
 
/*
SP Body Comment
*/
 
	BEGIN TRAN
	BEGIN TRY

  	DELETE FROM [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF]
      WHERE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF].[DataRiferimento] = @DataRiferimento

			Set @Return=1;
    END TRY
    
	BEGIN CATCH     
      BEGIN
        IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
        Set @Return=-ERROR_NUMBER();
        
      END
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_ANAG_SELF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
-- Stored procedure  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_ANAG_SELF]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
      
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_SELF',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodicoImmobiliare].[ANAG_SELF]  
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[ANAG_SELF]  
  (RETE  
  ,CODFIS  
  ,CODCONF  
  ,NOMEPRODOTTO  
  ,CTV  
  ,DATASOTT  
  ,[ID_ELAB]  
  ,[TIPO_ELAB]
  -- mio foglio
  ,CodInterno
  ,CodSottoprodotto)  
 SELECT  
   SPB.RETE  
  ,SPB.CODFIS  
  ,SPB.CODCONF  
  ,CAT.NomeProdotto  
  ,SPB.CTV  
  ,SPB.DTSOTTOS  
  ,@ID_ELAB AS ID_ELAB  
  ,@TIPO_ELAB AS TIPO_ELAB  
   ,CodInterno
  ,CodSottoprodotto 
 FROM   
  C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI SPB  
 inner join C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti CAT  
 on SPB.isin = CAT.codisin and CAT.visibilita = 1  
  -- aggiunto il 17/12/2018 per gestire l'ambiguità tra GP e FO a parità di Isin
 and SPB.CodInt = CAT.CodInterno
 -- fine modifica
 WHERE SPB.isin in ('EURO00000009', 'EURO10000007')  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_SELF' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_ANAG_SELF'  
  )  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_ANAG_SELF_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
-- Stored procedure  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_ANAG_SELF_20181214_PreMioFoglio]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
  DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
      
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_ANAG_SELF',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE [C6MartPeriodicoImmobiliare].[ANAG_SELF]  
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[ANAG_SELF]  
  (RETE  
  ,CODFIS  
  ,CODCONF  
  ,NOMEPRODOTTO  
  ,CTV  
  ,DATASOTT  
  ,[ID_ELAB]  
  ,[TIPO_ELAB])  
 SELECT  
   SPB.RETE  
  ,SPB.CODFIS  
  ,SPB.CODCONF  
  ,CAT.NomeProdotto  
  ,SPB.CTV  
  ,SPB.DTSOTTOS  
  ,@ID_ELAB AS ID_ELAB  
  ,@TIPO_ELAB AS TIPO_ELAB  
 FROM   
  C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI SPB  
 inner join C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti CAT  
 on SPB.isin = CAT.codisin and CAT.visibilita = 1  
 WHERE SPB.isin in ('EURO00000009', 'EURO10000007')  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_ANAG_SELF' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_ANAG_SELF'  
  )  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_CODIFICA_CREDITRISK]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Valerio Colaianni  
-- Create date: 17 marzo 2009  
  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_CODIFICA_CREDITRISK]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CODIFICA_CREDITRISK',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.CODIFICA_CREDITRISK  
  
 INSERT INTO C6MartPeriodicoImmobiliare.[CODIFICA_CREDITRISK]  
           ([PROFILO]  
           ,[DESCRIZIONE]  
           ,[MIN_VAL]  
           ,[MAX_VAL]  
           ,[ID_ELAB])  
 SELECT   
  COD,  
  DESCR,  
  MINVAL,  
  MAXVAL,  
  @ID_ELAB AS ID_ELAB  
 FROM C6StagingPeriodicoImmobiliare.RISKCLASS  
   
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CODIFICA_CREDITRISK' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_CODIFICA_CREDITRISK'  
  )  
  
END  
  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_CODIFICA_RISCHIO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 17 marzo 2009  
-- Description: NOTA BENE: I JOIN NON DOVREBBERO MAI ESSERE FATTI COME SOTTO, TRATTASI DI WORK AROUND  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_CODIFICA_RISCHIO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_CODIFICA_RISCHIO',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.CODIFICA_RISCHIO  
  
 INSERT INTO C6MartPeriodicoImmobiliare.[CODIFICA_RISCHIO]  
           ([PROFILO]  
           ,[DESCRIZIONE]  
           ,[MIN_VAR]  
           ,[MAX_VAR]  
           ,[ID_ELAB])  
 SELECT   
  SPB_PROF_RISCHIO.CODICEPROFILO AS PROFILO,  
  SPB_PROF_RISCHIO.DESCRIZIONEPROFILO AS DESCRIZIONE,  
  ISNULL(SPB_MIN.VARTRIMESTRALE,-0.01) + 0.01 AS MIN_VAR,  
  SPB_PROF_RISCHIO.VARTRIMESTRALE AS MAX_VAR,  
  @ID_ELAB AS ID_ELAB  
 FROM C6StagingPeriodicoImmobiliare.SPB_PROF_RISCHIO  
 LEFT JOIN C6StagingPeriodicoImmobiliare.SPB_PROF_RISCHIO SPB_MIN   
  ON SPB_MIN.CODICEPROFILO + 1 = SPB_PROF_RISCHIO.CODICEPROFILO  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_CODIFICA_RISCHIO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_CODIFICA_RISCHIO'  
  )  
  
END  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_MIFID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 24/11/2008  
-- Description: Aggiunta chiave primaria autoincrement su tabella di staging   
--    per eliminazione duplicati.  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_MIFID]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_MIFID',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.MIFID  
  
 INSERT INTO C6MartPeriodicoImmobiliare.[MIFID]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[PROFILO_ASS]  
           ,[DATA_INIZIO_VAL]  
           ,[ID_ELAB]  
           ,[RISKCLASS]  
           ,[EXPERIENCE]   
   ,SCADUTO )  
 SELECT  
  AN.RETE AS RETE,  
  AN.CODFIS AS COD_FISCALE,  
  AN.CODPROF AS PROFILO_ASS,  
  CASE  
   WHEN AN.DTINVAL = 0 THEN CASE  
    WHEN AN.CODPROF = 0 THEN NULL  
    ELSE GETDATE()  
   END  
   ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_INIZIO_VAL,  
  @ID_ELAB AS ID_ELAB,  
        CLASSeRC,  
        COD_PROFEC,  
--  CASE   
--   WHEN datediff(dd,   
--    case when isnull(AN.DTINVAL,0) <> 0    
--    then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)  
--    else CAST('19900101' as DATETIME)  
--    END  
--    , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0  
--   ELSE 1  
--  END AS SCADUTO  
  CASE   
   WHEN   
    ISNULL(AN.CODPROF,0)>0 THEN 0  
   ELSE 1  
  END AS SCADUTO  
  
 FROM  
 C6StagingPeriodico.WSEIAN2 AS AN  
  --C6StagingPeriodico.ALL_CF_PB AS AL  
  --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN  
   --ON AL.RETE_PB = AN.RETE  
   --AND AL.CODICEFISCALE = AN.CODFIS  
 WHERE AN.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2 )  
        AND AN.CODMAN=''  
UNION   
SELECT  
  AN.RETE AS RETE,  
  'FF@' + AN.CODMAN AS COD_FISCALE, --AN.CODFIS AS COD_FISCALE,  
  AN.CODPROF AS PROFILO_ASS,  
  CASE  
   WHEN AN.DTINVAL = 0 THEN CASE  
    WHEN AN.CODPROF = 0 THEN NULL  
    ELSE GETDATE()  
   END  
   ELSE CAST(CAST(AN.DTINVAL AS VARCHAR(8)) AS DATETIME)  
  END AS DATA_INIZIO_VAL,  
  @ID_ELAB AS ID_ELAB,  
        classErc,  
        COD_PROFEC,  
--  CASE   
--   WHEN datediff(dd,   
--    case when isnull(AN.DTINVAL,0) <> 0    
--    then CAST(CAST(AN.DTINVAL AS VARCHAR(8))  AS DATETIME)  
--    else CAST('19900101' as DATETIME)  
--    END  
--    , c6martperiodico.gettrimestre2(getdate(),0))/365.25<3 THEN 0  
--   ELSE 1  
--  END AS SCADUTO  
  CASE   
   WHEN   
    ISNULL(AN.CODPROF,0)>0 THEN 0  
   ELSE 1  
  END AS SCADUTO  
 FROM  
  C6StagingPeriodico.WSEIAN2 AS AN  
  --C6StagingPeriodico.ALL_CF_PB AS AL  
  --LEFT OUTER JOIN C6StagingPeriodico.WSEIAN AS AN  
  -- ON AL.RETE_PB = AN.RETE  
  -- AND SUBSTRING(AL.CODICEFISCALE,4,4) = AN.CODMAN  
 WHERE AN.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2 )  
        AND AN.CODMAN <> ''   
        --AND AL.CODICEFISCALE LIKE '%@%'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_MIFID' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_MIFID'  
  )  
  
END  
  
  
--select count(*) from c6martperiodico.mifid  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_PARTITE_VIAGGIANTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_PARTITE_VIAGGIANTI]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()  
 SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_PARTITE_VIAGGIANTI',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.PARTITE_VIAGGIANTI  
  
 INSERT INTO C6MartPeriodicoImmobiliare.PARTITE_VIAGGIANTI  
  (RETE  
  ,COD_FISCALE  
  ,IMPORTO  
  ,ID_ELAB  
  ,TIPO_ELAB)  
 SELECT  
  WSEIPV.RETE AS RETE,  
  case when isnull(codman,'') ='' then  WSEIPV.CODFIS else 'FF@'+ codman end AS COD_FISCALE,  
  SUM(IMPVER) AS IMPORTO,  
  @ID_ELAB,  
  @TIPO_ELAB  
 FROM  
  C6StagingPeriodico.WSEIPV  
 WHERE  
  WSEIPV.DTTRIM = (  
   SELECT  
    MAX(DTTRIM)  
   FROM  
    C6StagingPeriodico.WSEIPV  
  )  
 GROUP BY  
  WSEIPV.RETE,  
  case when isnull(codman,'') ='' then  WSEIPV.CODFIS else 'FF@'+ codman end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_PARTITE_VIAGGIANTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_PARTITE_VIAGGIANTI'  
  )  
  
END  
  
  
  




GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[DM_RISCHIO_AGGREGATO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Stored procedure  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[DM_RISCHIO_AGGREGATO]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'DM_RISCHIO_AGGREGATO',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO  
   
 INSERT INTO C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO(  
  RETE,  
  COD_FISCALE,  
  COD_AGGREG,  
  VAR_ASSOLUTO_PTF,  
  VAR_PERC_PTF,  
  CVAR_ASSOLUTO_PTF,  
  CVAR_PERC_PTF,  
  MCVAR,  
  MCVARP,  
  BENEFICIO,  
  COPERTURA,  
  CTV_AGGREG,  
  ID_ELAB,  
  TIPO_ELAB,  
  CREDITRISK,  
  Ully_perc,  
  CREDITRISKEMIT  
 )  
 SELECT   
  PROMETEIA_AGGR.RETE AS RETE,  
  PROMETEIA_AGGR.CODICEFISCALE AS COD_FISCALE,  
  PROMETEIA_AGGR.PORTAFOGLIO AS COD_AGGREG,  
  ROUND(CAST(PROMETEIA_AGGR.VARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS VAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.VARPERCENTUIALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS VAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.CVARASSOLUTODIPORTAFOGLIO AS DECIMAL(30,20)), 2) AS CVAR_ASSOLUTO_PTF,  
  CAST(PROMETEIA_AGGR.CVARPERCENTUALEDIPORTAFOGLIO AS DECIMAL(10,2)) AS CVAR_PERC_PTF,  
  ROUND(CAST(PROMETEIA_AGGR.MCVAR AS DECIMAL(30,20)), 2) AS MCVAR,  
  CAST(PROMETEIA_AGGR.MCVARP AS DECIMAL(10,2)) AS MCVARP, 
  CAST(PROMETEIA_AGGR.BENEFICIO AS DECIMAL(10,2)) AS BENEFICIO, 
  CAST(PROMETEIA_AGGR.COPERTURA AS DECIMAL(10,2)) AS COPERTURA,  
  CAST(PROMETEIA_AGGR.TOTALE AS DECIMAL(15,3)) AS CTV_AGGREG,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,  

  -- Modifica del 5/11/2018 - per gestire i casi in cui numtitrc contiene caratteri speciali (cr e lf)
         --C6martperiodico.getCreditRiskClass(Ully_perc,numtitrc) AS CREDITRISK,  
  C6martperiodico.getCreditRiskClass(Ully_perc,REPLACE(REPLACE(numtitrc, CHAR(13),''), CHAR(10),'')) AS CREDITRISK,
  -- Fine Modifica del 5/11/2018 

  CAST(Ully_perc AS DECIMAL(10,2)) AS ULLY_PREC,  

   -- Modifica del 5/11/2018 - per gestire i casi in cui numtitrc contiene caratteri speciali (cr e lf)
       --c6martperiodico.getCreditRiskClassEmit(Ully_perc,numtitrc) as CREDITRISKCLASS_EMIT  
   c6martperiodico.getCreditRiskClassEmit(Ully_perc,REPLACE(REPLACE(numtitrc, CHAR(13),''), CHAR(10),'')) as CREDITRISKCLASS_EMIT
   -- Fine Modifica del 5/11/2018 


 FROM   
  C6StagingPeriodicoImmobiliare.PROMETEIA_AGGR  
  
--begin transaction  
update C6MartPeriodicoImmobiliare.rischio_aggregato  
set copertura = 100  
where cod_aggreg = 'RISFIN|PIRAMIDE|Liq'  
and CTV_AGGREG = 0  
--commit  
--and cod_fiscale= 'TRPDRA75D15A794T'  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'DM_RISCHIO_AGGREGATO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'DM_RISCHIO_AGGREGATO'  
  )  
  
END  
  
  
  




GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--------rete -> F
--------     tip_contratto = 0  codicelettera= 500
--------					 1				   501
--------                     2                 502
--------rete --> S
--------					 0                 503
--------					 1                 504
--------                     2                 505



--[C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE] 'F','FRCFDN42D13L975I',501,-1,'M'

CREATE procedure [C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()
	--Modifica per la variazione di testo nella lettera di accompagnamento nel caso di diagnosi
	
	IF @codiceLettera in (7,8) AND @tipoReport = 'DIAGNOSI'
		SET @codiceLettera = @codiceLettera + 2 
	

	SELECT
			c6martperiodico.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			


	--Modifica per le persone giuridiche
	CASE 
		WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
			THEN aclie.cognome --+ 'JJ'
			ELSE aclie.nome
	END	AS nome,
	
	--aclie.nome as nome,
	CASE
		WHEN LEN(csei.cod_fiscale) = 11
			THEN aclie.nome
			ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
					THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
			ELSE
				aclie.cognome
			END	
	END	AS cognome,
			



csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.prov end as provincia,
			case when (upper(csei.nazione) <> 'ITALIA') then '' else csei.cap end as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			c6martperiodico.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_Monitor,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												servizi.dataattivazione,
												@dataRichiestaRistampa,
												null,
												tla.[TESTO]
											) as testo,
											
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
 0 as pagina
 
		FROM	
			[C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[consuni_periodico].[ConsulenzaUnica].[dbo].[v_servizi_aggiuntivi] servizi,
			[C6MartPeriodicoImmobiliare].[CONTRATTOSEI] csei
			INNER JOIN
			[C6MartPeriodicoImmobiliare].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
		

		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			tla.id = @codiceLettera and
			(@idreport = -1)
			AND isnull(csei.data_fineavanzato,'99991231') > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getDate(),-1),0)
			
			--and servizi.chiaveclientepb in (select chiaveclientepb from c6mart.vcontratti where cod_fiscale = csei.cod_Fiscale)
			and servizi.chiaveclientepb in (select chiaveclientepb from [consuni_periodico].[ConsulenzaUnica].[dbo].[vInfoCliente] where coalesce(codfis,piva) = csei.cod_Fiscale and flagPBPrimario is null)
			and servizi.chiaveservizioaggiuntivo = 1 and servizi.flagattivo = 1 --Commentata Andrea per semestrale 2023

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE_BKP28052023]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--------rete -> F
--------     tip_contratto = 0  codicelettera= 500
--------					 1				   501
--------                     2                 502
--------rete --> S
--------					 0                 503
--------					 1                 504
--------                     2                 505



--[C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE] 'F','FRCFDN42D13L975I',501,-1,'M'

CREATE procedure [C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE_BKP28052023]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()
	--Modifica per la variazione di testo nella lettera di accompagnamento nel caso di diagnosi
	
	IF @codiceLettera in (7,8) AND @tipoReport = 'DIAGNOSI'
		SET @codiceLettera = @codiceLettera + 2 
	

	SELECT
			c6martperiodico.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			


	--Modifica per le persone giuridiche
	CASE 
		WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
			THEN aclie.cognome --+ 'JJ'
			ELSE aclie.nome
	END	AS nome,
	
	--aclie.nome as nome,
	CASE
		WHEN LEN(csei.cod_fiscale) = 11
			THEN aclie.nome
			ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
					THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
			ELSE
				aclie.cognome
			END	
	END	AS cognome,
			



csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.prov end as provincia,
			case when (upper(csei.nazione) <> 'ITALIA') then '' else csei.cap end as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			c6martperiodico.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_Monitor,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												servizi.dataattivazione,
												@dataRichiestaRistampa,
												null,
												tla.[TESTO]
											) as testo,
											
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
 0 as pagina
 
		FROM	
			[C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[consuni_periodico].[ConsulenzaUnica].[dbo].[v_servizi_aggiuntivi] servizi,
			[C6MartPeriodicoImmobiliare].[CONTRATTOSEI] csei
			INNER JOIN
			[C6MartPeriodicoImmobiliare].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
		

		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			tla.id = @codiceLettera and
			(@idreport = -1)
			AND isnull(csei.data_fineavanzato,'99991231') > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getDate(),-1),0)
			
			--and servizi.chiaveclientepb in (select chiaveclientepb from c6mart.vcontratti where cod_fiscale = csei.cod_Fiscale)
			and servizi.chiaveclientepb in (select chiaveclientepb from [consuni_periodico].[ConsulenzaUnica].[dbo].[vInfoCliente] where coalesce(codfis,piva) = csei.cod_Fiscale and flagPBPrimario is null)
			and servizi.chiaveservizioaggiuntivo = 1 and servizi.flagattivo = 1 --Commentata Andrea per semestrale 2023

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE_CONSUNI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--------rete -> F
--------     tip_contratto = 0  codicelettera= 500
--------					 1				   501
--------                     2                 502
--------rete --> S
--------					 0                 503
--------					 1                 504
--------                     2                 505



--[C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE_CONSUNI]'S','MRMRSR55P64L738D',504,-1,'M'

CREATE procedure [C6MartPeriodicoImmobiliare].[GESTIONE_SELECT_LETTERE_DA_INVIARE_CONSUNI]
	@rete as varchar(1) = '',
	@cf as varchar(16) = '',
	@codiceLettera as smallint = null,
	--vedere se questa cosa ha senso
--	@dataRichiestaRistampa as datetime = null,
	@idReport as int,
	@tipoReport as varchar(20) = ''


AS
BEGIN
	declare @dataRichiestaRistampa as datetime
	set @dataRichiestaRistampa = getDate()
	--Modifica per la variazione di testo nella lettera di accompagnamento nel caso di diagnosi
	
	IF @codiceLettera in (7,8) AND @tipoReport = 'DIAGNOSI'
		SET @codiceLettera = @codiceLettera + 2 
	

	SELECT
			c6martperiodico.getAppellativo(aclie.sesso,aclie.cod_fiscale) as appellativo,
			


	--Modifica per le persone giuridiche
	CASE 
		WHEN LEN(csei.cod_fiscale) = 11 or CHARINDEX('@',csei.cod_fiscale) > 0
			THEN aclie.cognome --+ 'JJ'
			ELSE aclie.nome
	END	AS nome,
	
	--aclie.nome as nome,
	CASE
		WHEN LEN(csei.cod_fiscale) = 11
			THEN aclie.nome
			ELSE CASE WHEN CHARINDEX('@',csei.cod_fiscale) > 0 
					THEN aclie.nome + ' - ' + substring(csei.cod_fiscale,CHARINDEX('@',csei.cod_fiscale)+1,LEN(csei.cod_fiscale))
			ELSE
				aclie.cognome
			END	
	END	AS cognome,
			



csei.indirizzo + (case isnull(csei.presso,'') when '' then '' else CHAR(13) + 'C/O ' + csei.presso end) as via,
			csei.citta as localita,
			--csei.prov as provincia,
			--V modificata il campo provincia viene scritto tra parentesi (PROVINCIA). NEl caso di nazione estera non viene valorizzato
			--quindi viene usato per la nazione
			case when (upper(csei.nazione) <> 'ITALIA') then csei.nazione else csei.prov end as provincia,
			case when (upper(csei.nazione) <> 'ITALIA') then '' else csei.cap end as cap,
			dbo.Replace_Oggetto_Lettera_Benvenuto(
						csei.CodiceContratto,
						aclie.cognome,
						aclie.nome,tla.[OGGETTO],
						@tipoReport
						) as oggetto,
--DA TOGLIERE
			csei.codiceContratto as CodiceContratto,
			
			c6martperiodico.Replace_Testo_Lettera_Benvenuto(	
												csei.CodiceContratto,
												csei.freq_Diagnosi,
												csei.freq_Monitor,
												aclie.cognome,
												aclie.nome, 
												@tipoReport,
												csei.indirizzo,
												servizi.dataattivazione,
												@dataRichiestaRistampa,
												null,
												tla.[TESTO]
											) as testo,
											
			dbo.replace_Firma_Lettera_Benvenuto(tla.firma) as firma,
 0 as pagina
 
		FROM	
			[C6MartPeriodico].[TESTO_LETTERA_ACCETTAZIONE] tla,	
			[consuni].[ConsulenzaUnica].[dbo].[v_servizi_aggiuntivi] servizi,
			[C6MartPeriodicoImmobiliare].[CONTRATTOSEI] csei
			INNER JOIN
			[C6MartPeriodicoImmobiliare].[ANAG_CLIENTI] aclie
			on
				csei.rete = aclie.rete and
				csei.cod_fiscale = aclie.cod_fiscale
		

		
		WHERE
			csei.rete = @rete and
			csei.cod_Fiscale = @cf and
			tla.id = @codiceLettera and
			(@idreport = -1)
			AND isnull(csei.data_fineavanzato,'99991231') > c6martperiodico.getTrimestre(c6martperiodico.getTrimestre(getDate(),-1),0)
			
			and servizi.chiaveclientepb in (select chiaveclientepb from c6mart.vcontratti where cod_fiscale = csei.cod_Fiscale)
			and servizi.chiaveservizioaggiuntivo = 1 and servizi.flagattivo = 1

END








GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[GetDatiPerIDX]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[GetDatiPerIDX]
	-- Add the parameters for the stored procedure here
	@cf as varchar(max),
	@dtMS as varchar(10),
	@dtRif as varchar(10)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	Declare @temptable Table(cf varchar(80))

	declare @idx int       
	declare @slice varchar(8000)       

	select @idx = 1       
		if len(@cf)<1 or @cf is null  return       

	while @idx!= 0       
	begin       
		set @idx = charindex(',',@cf)       
		if @idx!=0       
			set @slice = left(@cf,@idx - 1)       
		else       
			set @slice = @cf       

		if(len(@slice)>0)  
			insert into @temptable(cf) values(@slice)       

		set @cf = right(@cf,len(@cf) - @idx)       
		if len(@cf) = 0 break       
	end   



    -- Insert statements for procedure here
	SELECT		
		cat.rete+
		+ LEFT(isnull(ANAG_CLIENTI.Nome,'NOME') + ' ' + ISNULL(ANAG_CLIENTI.Cognome,'COGNOME') + '                                                  ',50) -- NOMINATIVODESTINATARIO(50)
		+ LEFT(isnull(CONTRATTOSEI.Indirizzo,'') + '                                                  ',50) --VIA(50)
		+ LEFT(isnull(CONTRATTOSEI.CAP,'') + '     ',5) --CAP(5)
		+ LEFT(isnull(CONTRATTOSEI.Citta,'') + '                                                  ',50) --LOCALITA(50)
		+ LEFT(isnull(CONTRATTOSEI.Prov,'') + '  ',2)--PROVINCIA(2)
		+ (CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN 'I' ELSE 'E' END) -- IoE(1)
		+ 'PE' --TIPOPOSTALIZZAZIONE(2)
		+ LEFT(contrattoSEI.COD_FISCALE+'_'+contrattoSEI.rete+ '                                                  ',50) --NOMEFILE(50)
		+ LEFT((CASE UPPER(isnull(CONTRATTOSEI.Nazione,'')) WHEN 'ITALIA' THEN '' ELSE isnull(CONTRATTOSEI.Nazione,'') END) + '                               ',30) -- NAZIONEESTERA(30)
		+ right (' ' + COALESCE(CONTRATTOSEI.Rol, 'N'), 1) 
		+ right ('                ' + CONTRATTOSEI.Cod_Fiscale, 16)
		+ left (coalesce(CONTRATTOSEI.Email, '') + '                                                  ', 50)
		+ convert(char(8), @dtMS)  /** modificare la data alla metà del semestre di interesse */
		+ CONTRATTOSEI.COD_AGENTE	
		+ CONTRATTOSEI.codicecontratto as idx
	FROM consuni.consulenzaunicafl.dbo.Immobiliare_RichiesteMonitoraggioCatastoCliente cat
	INNER JOIN C6MARTPERIODICOimmobiliare.CONTRATTOSEI
		ON CONTRATTOSEI.Rete = cat.Rete
		AND CONTRATTOSEI.COD_FISCALE = cat.codfis
	INNER JOIN C6MARTPERIODICOimmobiliare.ANAG_CLIENTI 
		ON ANAG_CLIENTI.Rete = cat.Rete
		AND ANAG_CLIENTI.COD_FISCALE = cat.codfis

where cat.dtRiferimento=@dtRif AND cat.codfis IN (Select cf from @temptable)

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[getRichiesteMonitoraggioCatastoCliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [C6MartPeriodicoImmobiliare].[getRichiesteMonitoraggioCatastoCliente] 
    @rete varchar(1), 
    @agente varchar(255), 
    @codFis varchar(16)
AS

BEGIN
  declare @exit_status	numeric

  set @exit_status = 0

  SELECT * FROM CONSUNI.ConsulenzaUnicaFL.dbo.Immobiliare_RichiesteMonitoraggioCatastoCliente
    WHERE rete = @rete
    AND agente = @agente
    AND codFis = @codFis
    AND dtRiferimento IS NULL

  set @exit_status = @@ROWCOUNT
  
  return @exit_status

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Insert_ExcludedList]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <27.02.2019>
-- Description:	<Inserimento riga di Insert_ExcludedList>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[Insert_ExcludedList]

  @IDReport int,
  @Rete varchar(1),
  @CodiceFiscale varchar(16),
  @DescrizioneErrore varchar(500),
  @DataInserimento datetime,
  @Bloccato bit,
  @DataRiferimento varchar(8),
  
  @Return int OUTPUT

 
/*
SP Parameter Comment 
*/
WITH EXEC AS CALLER 
AS
 
/*
SP Body Comment
*/
 
	BEGIN TRANSACTION
    BEGIN TRY
    	  
    INSERT INTO [C6MartPeriodicoImmobiliare].[ExcludedList](
      [IDReport],
      [Rete],
      [CodiceFiscale],
      [DescrizioneErrore],
      [DataInserimento],
      [Bloccato],
      [DataRiferimento])
      
      VALUES (
      @IDReport,
      @Rete,
      @CodiceFiscale,
      @DescrizioneErrore,
      @DataInserimento,
      @Bloccato,
      @DataRiferimento)
  
      Set @Return=@IDReport;
       
    END TRY
    
	BEGIN CATCH
      IF ERROR_NUMBER()=2601 
      BEGIN
        Set @Return=-2601;
      END
       IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Insert_Immobiliare_GestionePDF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <15.02.2019>
-- Description:	<Inserimento riga di Immobiliare_GestionePDF>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[Insert_Immobiliare_GestionePDF]
  
  @IDReport int,
  @IDReportSemestrale int,
  @IDChiaveRichiesta bigint,
  @Rete varchar(1),
  @ChiaveAgente varchar(8),
  @NominativoAgente varchar(255),
  @CodiceFiscale varchar(16),
  @ChiaveCliente int,
  @NominativoCliente varchar(255),
  @DataRichiestaCatasto datetime,
  @DataRicezioneCatasto datetime,
  @DataRichiestaRischio datetime,
  @DataRicezioneRischio datetime,
  @Utente varchar(50),
  @Rfa decimal(19, 7),
  @Diversificazione decimal(19, 7),
  @Var decimal(19, 7),
  @DataRiferimento varchar(8),
  @CodiceContratto varchar(11),
  @TipoContratto varchar(1),
  @TipoReport varchar(2),
  @DataReport datetime,
  @DataReportUpdate datetime,
  @DataZip datetime,
  @DataZipUpdate datetime,
  @DataInvio datetime,
  @DataInvioUpdate datetime,
  @FlagInvio varchar(1),
  @NomeFile varchar(50),
  @IDZip int,

  
  @Return int OUTPUT

 
/*
SP Parameter Comment 
*/
WITH EXEC AS CALLER 
AS
 
/*
SP Body Comment
*/
 
	BEGIN TRANSACTION
    BEGIN TRY
    
    SELECT @IdReport = (SELECT ISNULL(MAX([IDReport]),0) + 1 FROM [Immobiliare_GestionePDF] with (tablockx, holdlock, updlock))
    SELECT @IdReportSemestrale = (SELECT ISNULL(MAX([IDReportSemestrale]),0) + 1 FROM [Immobiliare_GestionePDF] WHERE [DataRiferimento] = @DataRiferimento)
		  
    INSERT INTO [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF](
       [IDReport]
      ,[IDReportSemestrale]
      ,[IDChiaveRichiesta]
      ,[Rete]
      ,[ChiaveAgente]
      ,[NominativoAgente]
      ,[CodiceFiscale]
      ,[ChiaveCliente]
      ,[NominativoCliente]
      ,[DataRichiestaCatasto]
      ,[DataRicezioneCatasto]
      ,[DataRichiestaRischio]
      ,[DataRicezioneRischio]
      ,[Utente]
      ,[Rfa]
      ,[Diversificazione]
      ,[Var]
      ,[DataRiferimento]
      ,[CodiceContratto]
      ,[TipoContratto]
      ,[TipoReport]
      ,[DataReport]
      ,[DataReportUpdate]
      ,[DataZip]
      ,[DataZipUpdate]
      ,[DataInvio]
      ,[DataInvioUpdate]
      ,[FlagInvio]
      ,[NomeFile]
      ,[IDZip]) 
      
      VALUES (
      @IDReport,
      @IDReportSemestrale,
      @IDChiaveRichiesta,
      @Rete,
      @ChiaveAgente,
      @NominativoAgente,
      @CodiceFiscale,
      @ChiaveCliente,
      @NominativoCliente,
      @DataRichiestaCatasto,
      @DataRicezioneCatasto,
      @DataRichiestaRischio,
      @DataRicezioneRischio,
      @Utente,
      @Rfa,
      @Diversificazione,
      @Var,
      @DataRiferimento,
      @CodiceContratto,
      @TipoContratto,
      @TipoReport,
      @DataReport,
      @DataReportUpdate,
      @DataZip,
      @DataZipUpdate,
      @DataInvio,
      @DataInvioUpdate,
      @FlagInvio,
      @NomeFile,
      @IDZip )
  
      Set @Return=@IdReport;
       
    END TRY
    
	BEGIN CATCH
      IF ERROR_NUMBER()=2601 
      BEGIN
        Set @Return=-2601;
      END
       IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Insert_Immobiliare_GestioneZIP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <27.02.2019>
-- Description:	<Inserimento riga di Immobiliare_GestioneZIP>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[Insert_Immobiliare_GestioneZIP]

  @IDZip int,
  @NomeFile varchar(255),
  @DataInvio datetime,
  @FlagInvio varchar(1),
  @NomeCartella varchar(255),
  @IDLottoElaborazione int,
  @DataRiferimento varchar(8),
  
  @Return int OUTPUT

 
/*
SP Parameter Comment 
*/
WITH EXEC AS CALLER 
AS
 
/*
SP Body Comment
*/
 
	BEGIN TRANSACTION
    BEGIN TRY
    	  
    INSERT INTO [C6MartPeriodicoImmobiliare].[Immobiliare_GestioneZIP](
       [IDZip]
      ,[NomeFile]
      ,[DataInvio]
      ,[FlagInvio]
      ,[NomeCartella]
      ,[IDLottoElaborazione]
      ,[DataRiferimento]) 
      
      VALUES (
      @IDZip,
      @NomeFile,
      @DataInvio,
      @FlagInvio,
      @NomeCartella,
      @IDLottoElaborazione,
      @DataRiferimento)
  
      Set @Return=@IdZip;
       
    END TRY
    
	BEGIN CATCH
      IF ERROR_NUMBER()=2601 
      BEGIN
        Set @Return=-2601;
      END
       IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[insertRichiesteMonitoraggioCatastoCliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[insertRichiesteMonitoraggioCatastoCliente] 
    @rete varchar(1), 
    @agente varchar(255), 
    @agenteCognome varchar(255),
    @agenteNome varchar(255),
    @codFis varchar(16),
    @nomeCliente varchar(255),
    @cognomeCliente varchar(255)

AS
BEGIN
declare @exit_status	numeric

BEGIN TRY
begin transaction
set @exit_status = 0

INSERT INTO CONSUNI.ConsulenzaUnicaFL.dbo.Immobiliare_RichiesteMonitoraggioCatastoCliente(
   rete
  ,agente
  ,agenteCognome
  ,agenteNome
  ,codFis
  ,cognomeCliente
  ,nomeCliente
  ,dtElabRichiestaCatasto
  ,dtElabRicezioneCatasto
  ,dtElabRichiestaRischio
  ,dtElabRicezioneRischio
  ,utente
) VALUES (
   @rete
  ,@agente
  ,@agenteCognome
  ,@agenteNome
  ,@codFis
  ,@cognomeCliente
  ,@nomeCliente
  ,NULL
  ,NULL
  ,NULL
  ,NULL
  ,NULL
)

set @exit_status = @@ROWCOUNT
commit transaction

END TRY

BEGIN CATCH
rollback transaction
		set @exit_status = 0

END CATCH	
	return @exit_status

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[MERGED_PROCEDURE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE   procedure [C6MartPeriodicoImmobiliare].[MERGED_PROCEDURE]
AS
BEGIN
	SET NOCOUNT ON;


truncate table C6MartperiodicoImmobiliare.Maledetti

insert into C6MartperiodicoImmobiliare.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )


SELECT [i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
      ,[scaduto]
  FROM [wh].[Maledetti]








END











GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_D_S152Patrimonio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Stored procedure

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodicoImmobiliare].[PL_D_S152Patrimonio]  'F','BCHRRT54L12G999R'
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_D_S152Patrimonio] 

	@Rete char(1), 
	@CodiceFiscale varchar(16)

AS

BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT 
		@PatrimonioBF = SUM(CTV)
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND patrBF.id_area <> 'CC' --escludo il cc negativo

--	SELECT @Part_viaggianti=SUM(IMPORTO)
--	FROM C6MartPeriodicoImmobiliare.PARTITE_VIAGGIANTI partvia
--	WHERE
--	partvia.Rete = @Rete
--	and partvia.Cod_Fiscale = @CodiceFiscale
	SELECT @Part_viaggianti=SUM(IMPORTO)
    from
    (
    SELECT SUM(IMPORTO) AS IMPORTO
	FROM C6MartPeriodicoImmobiliare.PARTITE_VIAGGIANTI partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
    union 
    SELECT SUM(PARTVIA_DISINV) AS IMPORTO
	FROM C6MartPeriodicoImmobiliare.patrimonio_bf partvia
	WHERE
	partvia.Rete = @Rete
	and partvia.Cod_Fiscale = @CodiceFiscale
     ) H


	SELECT 
		@PatrimonioTerzi = SUM(ROUND(CTV,2))
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI patrTerzi
	WHERE
		patrTerzi.Rete = @Rete
		and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_IMMOBILIARE patrImm
	WHERE
		patrImm.Rete = @Rete
		and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT 
		@PatrimonioAltro = SUM(patrAltro.ctv)
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_ALTRO patrAltro
	WHERE
		patrAltro.Rete = @Rete
		AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END







GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_D_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure


-- =============================================
-- Author:		Luca De Lisio
-- Create date: 
-- Description:	
-- =============================================
--[C6MartPeriodicoImmobiliare].[PL_D_S154PatrimonioFinanziario] 'F','BCHRRT54L12G999R'
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_D_S154PatrimonioFinanziario] 
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.

SELECT 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			ISNULL(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'), 0),0.00)
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodicoImmobiliare.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	



























--			ASSETPERC.ID_ASSETCLASS,
--			PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM 
--			C6MartPeriodicoImmobiliare.PATRIMONIO_BF PATRBF
--		INNER JOIN 
--			C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC 
--			ON 
--				PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--				AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--				AND ASSETPERC.LIVELLO = 1
--		LEFT OUTER JOIN 
--			C6MartPeriodicoImmobiliare.ClientiConCCNegativo CCNegativo
--			ON 
--				PATRBF.RETE = CCNegativo.Rete
--				AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			PATRBF.TIPO_PRODOTTO = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL
		--DETTAGLIO ASUL SENZA SKANDIA
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO

END







GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_D2_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
  
-- [C6MartPeriodicoImmobiliare].[PL_D2_S170RischioDiversificazione] 'F','FF@7181'  
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_D2_S170RischioDiversificazione]  
 -- Add the parameters for the stored procedure here  
 @Rete char(1),   
 @CodiceFiscale varchar(16)  
  
AS  
BEGIN  
  
 declare @contaCC as int  
 select @contaCC = count(*)  
 from C6MartPeriodicoImmobiliare.patrimonio_Bf  
 where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete  
  
   
 declare @contaPOS as int  
 select @contaPOS = count(*)  
 from C6MartPeriodicoImmobiliare.patrimonio_Bf  
 where cod_fiscale = @codiceFiscale and rete = @rete  
      
    declare @ctvbf as decimal(12,2)    
 SELECT @ctvbf = isnull(sum(ctv),0) FROM  C6MartPeriodicoImmobiliare.patrimonio_bf       
   where cod_fiscale = @CodiceFiscale  
      and rete= @Rete   
      and CTV > 0  
        
    declare @ctvterzi as decimal (12,2)    
 SELECT @ctvterzi = isnull(sum(ctv),0) FROM  C6MartPeriodicoImmobiliare.patrimonio_terzi       
   where cod_fiscale = @CodiceFiscale  
      and rete= @Rete   
      and CTV > 0  
  
  
SELECT   
K.COD_FISCALE,  
K.RETE,  
CASE   
 when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf  
 when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi  
 when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi  
 else 0  
END AS CTV_AGGREG,   
K.CREDITRISK,  
  
CASE   
 WHEN (@contaPOS - @contacc = 0) THEN 0  
 ELSE VAR_PERC_PTF   
END AS VAR,  
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,  
   
CASE   
 WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0  
  --THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'    
  THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'    
 ELSE null   
END AS coperturaString,  
beneficio as diversificazione,  
  
CASE   
 WHEN (@contaPOS - @contacc = 0) THEN 100  
 ELSE COPERTURA  
END AS COPERTURA,  
case   
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'  
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)  
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'  
ELSE ''  
END AS PATRIMONIO,  
  
case   
 when b.profilo is null then -1   
 else b.profilo  
end as profiloCode,  
b.max_var as var_profilo,  
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo  
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.  
case   
when cod_Aggreg = 'COMPLESSIVO' then 3  
when cod_Aggreg = 'COMPLESSIVO|BF' then 1  
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2  
ELSE ''  
END AS Ordine  
  
   
FROM  
C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO K left outer JOIN C6MartPeriodicoImmobiliare.mifid a  
 ON k.cod_fiscale = a.cod_fiscale and  
  k.rete = a.rete  
 left outer join  
C6MartPeriodicoImmobiliare.CODIFICA_RISCHIO b on  
A.PROFILO_ASS=B.PROFILO  
WHERE  
--A.PROFILO_ASS=B.PROFILO  
--AND K.RETE=A.RETE  
--AND K.COD_FISCALE= A.COD_FISCALE  
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')  
AND k.COD_FISCALE = @COdiceFISCALE  
AND k.RETE= @RETE  
ORDER BY ordine  
 
  
END   
  
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_GetClientNegativeCurrentAccountsValue]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Stored procedure 
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodicoImmobiliare].[PL_GetClientNegativeCurrentAccountsValue] 'S','SCLDNC71P13H224R'
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_GetClientNegativeCurrentAccountsValue]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	DECLARE @PatrimonioBF DECIMAL(15,2)
	
    -- Insert statements for procedure here
	SELECT 
		--@PatrimonioBF = case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end 
		cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV
		
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_BF patrBF
	WHERE
		patrBF.Rete = @Rete
		AND patrBF.Cod_Fiscale = @CodiceFiscale
		AND ID_AREA = 'CC' 
		and CTV < 0
	--Return @PatrimonioBF
END

 

GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_GetClientSelfNegCurrentAccountValue]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodicoImmobiliare].[PL_GetClientSelfNegCurrentAccountValue] 'S','LMNFNC40L14L219U'
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_GetClientSelfNegCurrentAccountValue]
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	--DECLARE @PatrimonioBF DECIMAL(15,2)
	
     SELECT  	 	 
		 cast( case when isnull(SUM(CTV),0) = 0 then 0 else SUM(CTV) end as decimal(15,2)) as CTV	 
	FROM       
		C6MartPeriodicoImmobiliare.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND ctv < 0
		
	--Return @PatrimonioBF
END
 
   


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_MP_S133AreeBisognoPrincProd]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6MartPeriodicoImmobiliare].[PL_MP_S133AreeBisognoPrincProd]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN

SELECT distinct [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6StampeCentralizzate].[C6MartPeriodicoImmobiliare].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento
		 

END

GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_MP_S140AnalisiRisparmioCharts]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [C6MartPeriodicoImmobiliare].[PL_MP_S140AnalisiRisparmioCharts] 'S','RTRRLF23S12Z105V'
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[PL_MP_S140AnalisiRisparmioCharts]
@Rete char(1), @CodiceFiscale varchar(16)
WITH EXEC AS CALLER
AS
BEGIN
	SET NOCOUNT ON;



--QUERY PER INTERMEDIARIO
SELECT 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6MartPeriodicoImmobiliare].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MartPeriodicoImmobiliare].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MartPeriodicoImmobiliare].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6MartPeriodicoImmobiliare].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodicoImmobiliare.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodicoImmobiliare.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MartPeriodicoImmobiliare].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MartPeriodicoImmobiliare].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MartPeriodicoImmobiliare].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6MartPeriodicoImmobiliare].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale AND
		PATRTERZI.RETE = @Rete
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6MartPeriodicoImmobiliare].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MartPeriodicoImmobiliare].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MartPeriodicoImmobiliare].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6MartPeriodicoImmobiliare].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6MartPeriodicoImmobiliare].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
WHERE PATRBF.COD_FISCALE = @CodiceFiscale AND
		PATRBF.RETE = @Rete
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6MartPeriodicoImmobiliare].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6MartPeriodicoImmobiliare].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6MartPeriodicoImmobiliare].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6MartPeriodicoImmobiliare].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--V
WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale 
  AND PATRTERZI.RETE = @Rete
--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H


GROUP BY
RETE,
COD_FISCALE



END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--[C6MartPeriodicoImmobiliare].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]   's','FLLGRG54H28A479K'
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]   
 -- Add the parameters for the stored procedure here
 @Rete char(1), 
 @CodiceFiscale varchar(16)

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Fideuram'
	ELSE
		SET @NOMERETE = 'Sanpaolo Invest'

	SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodicoImmobiliare.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodicoImmobiliare.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00

UNION ALL

SELECT  
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodicoImmobiliare.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodicoImmobiliare.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodicoImmobiliare.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodicoImmobiliare.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale

  GROUP BY 
     PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 

END





GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure



-- =============================================
-- [C6MartPeriodicoImmobiliare].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento] 's','FLLGRG54H28A479K'
CREATE procedure [C6MartPeriodicoImmobiliare].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
	-- Add the parameters for the stored procedure here
	@Rete char(1), 
	@CodiceFiscale varchar(16)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	--SELECT
	--	PATR_BF.ID_AREA AS Need_Area,
	--	PATR_BF.ID_CONTRATTO AS Contratto,
	--	CASE
	--		WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
	--		ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
	--	END AS Area_O_Nome_Progetto,
		
	--	PRODOTTI.DESCR_PRODOTTO AS Descrizione,

	--	PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
	--	SUM(PATR_BF.CTV) OVER (PARTITION BY PATR_BF.POSITION_ID) AS Controvalore,
	--	dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	--FROM
	--	C6MartPeriodicoImmobiliare.PATRIMONIO_BF AS PATR_BF
	--	INNER JOIN C6MartPeriodicoImmobiliare.AREA_BISOGNO AS AREA ON
	--		PATR_BF.ID_AREA = AREA.ID_AREA
	--	INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI AS PRODOTTI ON
	--		PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO
	SELECT
   PATR_BF.RETE,
   PATR_BF.COD_FISCALE,
    --PATR_BF.RETE,
    --PATR_BF.COD_FISCALE,
		--PATR_BF.ID_AREA AS Need_Area,
		--PATR_BF.ID_CONTRATTO AS Contratto,
		--CASE
		--	WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
		--	ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		--END AS Area_O_Nome_Progetto,
		
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		--CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
		--	 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		--END AS Descrizione,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,

		--PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		--SUM(PATR_BF.CTV) OVER (PARTITION BY PATR_BF.POSITION_ID) AS Controvalore,
    SUM(PATR_BF.CTV) AS Controvalore
		--dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodicoImmobiliare.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodicoImmobiliare.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodicoImmobiliare.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

	WHERE
		PATR_BF.RETE = @Rete
		AND PATR_BF.COD_FISCALE = @CodiceFiscale
		
		and PATR_BF.ID_AREA not in ('Pre1','Pre2') and  PATR_BF.TIPO_PRODOTTO <> 'CC'
		
		AND PATR_BF.REND_NON_RAPPR = 1

GROUP BY PATR_BF.RETE, PATR_BF.COD_FISCALE
END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Popola_S133_S157DatiPiramide]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
  
CREATE procedure [C6MartPeriodicoImmobiliare].[Popola_S133_S157DatiPiramide]                                                                              
AS                                                                                                                                                
BEGIN                                                                                                                                             
                                                                                                                                           
 SELECT                                                                                                                                    
  PIRAMIDE_MOD.RETE,                                                                                                                
  PIRAMIDE_MOD.COD_FISCALE,                                                                                                    
  PIRAMIDE_MOD.ID_AREA,                                                                                                             
  PIRAMIDE_MOD.PERC_AREA,                                                                                                           
  PIRAMIDE_VERT.CTV_AREA AS CONTROVALORE                                                                                            
 INTO #PIRAMIDE_VERT_TEMP                                                                                                                       
 FROM                                                                                                                                      
  C6MartPeriodicoImmobiliare.PIRAMIDE_MOD                                                                                                      
 LEFT JOIN (                                                                                                                               
  -- GROUP BY PER ACCORPARE I CTV_AREA SULLE PRE1 E PRE2 IN UNO UNICO CORRISPONDENTE A PRE                                          
     SELECT                                                                                                                                
   RETE,                                                                                                                     
   COD_FISCALE,                                                                                                              
--   LEFT(ID_AREA,3) AS ID_AREA,                                                                                               
  CASE                                                                                                                              
   WHEN ID_AREA = 'SELF'                                                                                                     
   THEN LEFT(ID_AREA,4)                                                                                                      
   ELSE LEFT(ID_AREA,3)                                                                                                      
   END AS ID_AREA,                                                                                                           
   SUM(COALESCE(CTV,0)) AS CTV_AREA                                                                                          
  FROM                                                                                                                              
   C6MartPeriodicoImmobiliare.PATRIMONIO_BF  PIRAMIDE_VERT                                                                              
   GROUP BY                                                                                                                  
   RETE, COD_FISCALE,                                                                                             
   CASE                          
   WHEN ID_AREA = 'SELF'                                                                                                     
   THEN LEFT(ID_AREA,4)                                                                                                      
   ELSE LEFT(ID_AREA,3)                                                                                                      
   END                                                                                                                       
 ) PIRAMIDE_VERT                                                                                                                           
  ON                                                                                                                                
   PIRAMIDE_VERT.ID_AREA = PIRAMIDE_MOD.ID_AREA                                                                              
      and PIRAMIDE_VERT.COD_FISCALE = PIRAMIDE_MOD.COD_FISCALE                                          
   and PIRAMIDE_VERT.RETE = PIRAMIDE_MOD.RETE                                                                                
 WHERE                                                                                                                                     
            --modificata atringali --  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA')                                                    
  (PIRAMIDE_MOD.ID_AREA IN ('RIS','EXT','LIQ','PRE','NA', 'CC','SELF','INV')                                                              
   --OR (PIRAMIDE_MOD.ID_AREA = 'INV' AND PIRAMIDE_MOD.NOME_PROGETTO IS NULL) /* 20161202 nome_progetto sempre diverso da null */  
  )    
                                                 
/* 20161214 - aggiunto aggragazione percentuali per area */  
 SELECT                                                                                                                                    
  RETE,                                                                                                                
  COD_FISCALE,                                                                                                    
  ID_AREA,                                                                                                             
  sum(PERC_AREA) as PERC_AREA,                                                                                                           
  CONTROVALORE                                                                                            
 INTO #PIRAMIDE_VERT                                                                                                            
 FROM                                                                                                                                      
  #PIRAMIDE_VERT_TEMP  
 group by rete,cod_fiscale, id_area, CONTROVALORE                                                                                                                                    
                                                                                                                                                  
                                                                                                                                          
                                                                                                                                    
truncate table  C6MartPeriodicoImmobiliare.TB_S133_S157DatiPiramide                                                             
insert into C6MartPeriodicoImmobiliare.TB_S133_S157DatiPiramide                                                                                       
  SELECT    distinct  /* 20161202 */                                                                                                                        
  ATTUALE.RETE,                                                                                                                     
  ATTUALE.COD_FISCALE,                                                                                                              
   AREA_BISOGNO.ID_AREA AS NeedArea,                                                                                         
   AREA_BISOGNO.NOME_AREA AS AreaName,                                                                                       
   ISNULL(ATTUALE.PERC_AREA,0) AS PercentualeModello,                                                                        
   ISNULL(ATTUALE.CONTROVALORE,0) PercentualeAttuale,                                                                        
   ROUND(ISNULL(ATTUALE.CONTROVALORE,0),2) AS ControvaloreAttuale,                                                           
   ISNULL(ATTUALE.PERC_AREA,0) ControvaloreModello,                                                                          
   ATTUALE.PERC_AREA AS Totale_Percentuale,                                                                                  
   ISNULL(ATTUALE.CONTROVALORE,0) DifferenzaEuro,                                                                            
   0 differenzapercentuale,                                                                                                  
   ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,                                                     
   CASE                                                                                                                      
    WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                    
    WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.'                                                                        
--------------------------------------------------------------                                                                                    
--INIZIO INTERVENTI OMNIA QUIII                                                                                              
                                                                                                                      
    --WHEN AREA_BISOGNO.ID_AREA = 'LIQ' THEN 'n.c.'                                                                     
--FINE INTERVENTI OMNIA QUIII                                                                                                                     
--------------------------------------------------------------             
    ELSE NULL                                                                                                         
   END AS var_needareaString,                                                                                                
   ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,                                                                    
   CASE                                                                                                                      
    WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.'                                                                    
    WHEN RISCHIOAREA.COPERTURA = 0 THEN '0,00'                                                                        
    ELSE NULL                                                                                                         
   END AS copertura_needareaString,                                                                                          
   0 AS Nota, --TODO: VERIFICARE REGOLA PER LA NOTA                                                                          
   0 somma_controvalAttuale,                                                                                                 
   0 somma_controvalModello,                                                                                                 
   0.00 AS somma_percentualeAttuale,                                                                                         
   0.00 AS somma_percentualeModello,                                       
   RISCHIOTOTALE.VAR_PERC_PTF var_tot,                                                                                       
    null var_totString,                                                                                               
    RISCHIOTOTALE_PIR.VAR_PERC_PTF var_tot_pir,                                                                       
    CASE                                                                                                              
     --V SOLO CC -> VAR = 0                                                                                   
                                                                                                                                                  
     WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'  
     WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                            
     ELSE NULL                                                                                                 
                                                                                                               
    END AS var_tot_pirString,           
                                                                                                                             
                                                                                                                             
   ISNULL(RISCHIOTOTALE.COPERTURA,0) AS copertura_tot,                                                                       
   CASE                                                                                                                      
    WHEN RISCHIOTOTALE.COPERTURA IS NULL THEN '0,00'                                                                  
    WHEN RISCHIOTOTALE.COPERTURA = 0 THEN '0,00'                                                                      
    ELSE NULL                                                                                                         
   END AS copertura_totString,                                                                                               
   --V                                                                                                                       
   ISNULL(RISCHIOTOTALE_PIR.COPERTURA,0) AS copertura_tot_pir,                                                               
   CASE                                                                                                                      
    WHEN RISCHIOTOTALE_PIR.COPERTURA IS NULL THEN 'n.c.'                                                              
    WHEN RISCHIOTOTALE_PIR.COPERTURA = 0 THEN 'n.c.'                                                                  
   END AS copertura_tot_pirString,                                                                                           
   --                                                                                                                        
   --V                                                                                                                       
   RISCHIORISFIN.VAR_PERC_PTF AS VAR_RISFIN,                                                                                 
   CASE                                                                                                                      
    WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                  
    WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                      
    ELSE NULL                                                                                                         
   END AS VAR_RISFINSTRING,                                                                                                  
              
   ISNULL(RISCHIORISFIN.COPERTURA,0) AS copertura_risfin,                                                                    
   CASE                                                                                                                      
    WHEN RISCHIORISFIN.COPERTURA IS NULL THEN 'n.c.'                                                                  
    WHEN RISCHIORISFIN.COPERTURA = 0 THEN 'n.c.'                                                                      
    ELSE NULL                                                                                                         
   END AS copertura_risfinString,                                                                                            
                                                                                                                             
                                                                                                                                                  
   AREA_BISOGNO.ORDINAMENTO AS ordinamento                                                                                   
                                                                                                                                                  
  FROM                                                                                                                              
   C6MartPeriodicoImmobiliare.AREA_BISOGNO                                                                                              
  LEFT JOIN                                                                                                                         
   #PIRAMIDE_VERT ATTUALE                                                                                                    
   ON                                                                                                                        
    ATTUALE.ID_AREA = AREA_BISOGNO.ID_AREA                                                                            
  LEFT JOIN                                                                                                                         
   C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO RISCHIOAREA                                                                             
   ON                                                                                                                        
    RISCHIOAREA.RETE = ATTUALE.RETE                                                                                   
    AND RISCHIOAREA.COD_FISCALE = ATTUALE.COD_FISCALE                                                                 
     AND                                                                                                       
                   RISCHIOAREA.COD_AGGREG = (                                                                                                     
                   CASE WHEN ATTUALE.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')                                                                   
     THEN  'RISFIN|PIRAMIDE|' + ATTUALE.ID_AREA                                                                
       WHEN ATTUALE.ID_AREA = 'NA'                                                                                    
     THEN 'RISFIN|NA'                                                                                          
                   WHEN ATTUALE.ID_AREA = 'CC'                                                                                                    
     THEN 'COMPLESSIVO|BF|CC'                                                                                  
       WHEN ATTUALE.ID_AREA = 'Self'                                                                                  
      THEN 'COMPLESSIVO|BF|SELF'                                                                        
                   END                         
                   )                                                                                                                              
  LEFT JOIN                                                                                                                         
   C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO RISCHIOTOTALE                                                                           
   ON                                                                                                                        
    RISCHIOTOTALE.RETE = ATTUALE.RETE                                                                                 
    AND RISCHIOTOTALE.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
    AND RISCHIOTOTALE.COD_AGGREG = 'COMPLESSIVO|BF'                                                                   
                                                                                                                                                  
  --V                                                                                                                               
  LEFT JOIN                                                                                                                         
   C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO RISCHIOTOTALE_PIR                                                                       
   ON                                                                                                                        
    RISCHIOTOTALE_PIR.RETE = ATTUALE.RETE                                                                             
    AND RISCHIOTOTALE_PIR.COD_FISCALE = ATTUALE.COD_FISCALE                                                           
    AND RISCHIOTOTALE_PIR.COD_AGGREG = 'RISFIN|PIRAMIDE'                                                              
                                                                                                                                                  
  LEFT JOIN                                                                                                                         
   C6MartPeriodicoImmobiliare.RISCHIO_AGGREGATO RISCHIORISFIN                                                                           
   ON                                                                                                                        
    RISCHIORISFIN.RETE = ATTUALE.RETE                                                                                 
    AND RISCHIORISFIN.COD_FISCALE = ATTUALE.COD_FISCALE                                                               
    AND RISCHIORISFIN.COD_AGGREG = 'RISFIN'                                                                           
  --                                                                                                                                
  /*WHERE                                                                                                                           
   AREA_BISOGNO.ORDINAMENTO < 6*/                                                                                            
                                                                                                                             
  WHERE AREA_BISOGNO.ID_AREA <> 'self'                                                                                                                 
                                                                                                                                          
------------------------------------------------------------------                                                                           
SELECT rete, cod_fiscale,sum(ATTUALE.CONTROVALORE) TotControvalore                                                                           
into #temp                                  
FROM #PIRAMIDE_VERT ATTUALE                                                                                                                       
WHERE ID_AREA not in ('Na', 'Cc','Self')                                                                                                          
group by rete,cod_fiscale                                                                                                                         
  
                                                                                                                                                 
update s157                                                                                                                                       
set s157.PercentualeAttuale =CASE                                                                                                                 
  WHEN vert.TotControvalore = 0 THEN 0                                                                                              
  ELSE (100 * s157.PercentualeAttuale / ISNULL(vert.TotControvalore,1))                                                             
  END,                                                                                                                              
s157.ControvaloreModello=ROUND(ISNULL(s157.ControvaloreModello * vert.TotControvalore / 100 , 0),2) ,                                             
s157.DifferenzaEuro = ROUND(ISNULL(s157.DifferenzaEuro,0),2) - ROUND(ISNULL(s157.Totale_Percentuale * vert.TotControvalore / 100 , 0),2),         
s157.DifferenzaPercentuale = CASE                                                                                                                 
   WHEN vert.TotControvalore = 0 THEN - s157.Totale_Percentuale                                                              
    ELSE ISNULL( (100 * ISNULL(s157.ControvaloreAttuale,0) / vert.TotControvalore  - s157.Totale_Percentuale) , 0)    
   END ,                                                                                                                     
s157.somma_controvalAttuale =vert.TotControvalore,                                                                                                
s157.somma_controvalModello=vert.TotControvalore                                                                                                  
                                                                                                                             
from C6MartPeriodicoImmobiliare.TB_S133_S157DatiPiramide s157                                                                                                
inner join #temp vert                                                                                                                             
on vert.rete = s157.rete and vert.cod_fiscale = s157.codicefiscale                                                                                  
                                                                                                                                           
                                                                       
                                                                                                                                                  
select rete,cod_fiscale,'TOT' as Tipo,count(*) over ( partition by rete,cod_fiscale) TOT  
 into #TempContatori  
 FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF  
union  
select rete,cod_fiscale,'TOTCCSELF',count(*) over ( partition by rete,cod_fiscale) TOTCCSELF  
 FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF  
 where TIPO_PRODOTTO = 'CC' OR  ISIN in ('EURO00000009','EURO10000007')  
union  
select rete,cod_fiscale,'TOTSELF',count(*) over ( partition by rete,cod_fiscale) TOTSELF  
 FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF  
 where ISIN  in ('EURO00000009','EURO10000007')  
union  
select rete,cod_fiscale,'TOTSELFLIQ',count(*) over ( partition by rete,cod_fiscale) TOTSELFLIQ  
 FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF  
 where ISIN in ('EURO00000009','EURO10000007') AND ID_AREA = 'LIQ'  
union  
select rete,cod_fiscale,'TOTLIQ',count(*) over ( partition by rete,cod_fiscale) TOTLIQ  
 FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF  
 where ID_AREA = 'LIQ'  
   
   
   
 select   
 totale1.rete,  
 totale1.cod_fiscale,  
 ISNULL(totale1.TOT,0) as TOT,  
 ISNULL(totale2.TOT,0) as TOTCCSELF,  
 ISNULL(totale3.TOT,0) as TOTSELF,   
 ISNULL(totale4.TOT,0) as TOTSELFLIQ,  
 ISNULL(totale5.TOT,0) as TOTLIQ   
  
  
 into #Contatori  
 from   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOT') as totale1  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTCCSELF') as totale2  
 on  totale1.rete=totale2.rete  
 and totale1.cod_fiscale=totale2.cod_fiscale  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTSELF') as totale3  
 on  totale1.rete=totale3.rete  
 and totale1.cod_fiscale=totale3.cod_fiscale  
 left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTSELFLIQ') as totale4  
 on  totale1.rete=totale4.rete  
 and totale1.cod_fiscale=totale4.cod_fiscale  
  left join   
 (select rete,cod_fiscale,TOT from #TempContatori  
 where tipo = 'TOTLIQ') as totale5  
 on  totale1.rete=totale5.rete  
 and totale1.cod_fiscale=totale5.cod_fiscale  
  
  
  
                                                                                                                                                  
update s157                    
set    
var_needareaString= CASE  
     WHEN TOTSELFLIQ = TOTLIQ and needarea = 'LIQ' THEN 'n.c.'     
     ELSE var_needareaString    
     END,  
var_tot =     CASE  
     WHEN TOTCCSELF = TOT THEN 0.00  
     ELSE var_tot  
     END ,   
var_totString=CASE   
     WHEN (TOTCCSELF <> TOT) AND(copertura_tot IS NULL OR copertura_tot = 0) THEN 'n.c.'  
     WHEN (TOTSELF = TOT) THEN 'n.c.'   
     ELSE NULL   
    END    ,    
    
     
var_tot_pir =CASE   
     WHEN TOTCCSELF = TOT THEN 0  
     ELSE var_tot_pir  
END ,  
var_tot_pirString=CASE  
     WHEN var_tot_pirString <> 'n.c.' THEN  
     CASE  
         WHEN TOTCCSELF = TOT THEN NULL  
         WHEN TOTSELF = TOT THEN 'n.c.'  
      ELSE var_tot_pirString  
        END  
     ELSE var_tot_pirString  
    END ,    
VAR_RISFINSTRING=CASE   
     WHEN VAR_RISFINSTRING <> 'n.c.' THEN  
     CASE  
      WHEN TOTCCSELF = TOT THEN NULL  
      ELSE VAR_RISFINSTRING  
     END  
     ELSE VAR_RISFINSTRING  
     END                                                                                                                           
from C6MartPeriodicoImmobiliare.TB_S133_S157DatiPiramide s157                                                                                                
inner join ( select * from #Contatori )  contatori                                                                                                  
on contatori.rete = s157.rete and contatori.cod_fiscale = s157.codicefiscale                                                                  
--and codicefiscale='00247580970'                                                                                                      
                                                                                                                                                  
                                                                                                                                           
                                                                                                                                           
 Drop TABLE #temp                                                                                                                          
                                                                                                                                                  
 DROP TABLE #PIRAMIDE_VERT                                                                                                                 
                                                                                                                           
 drop table #Contatori          
   
    drop table #TempContatori                                                                                                          
                                                                                                                                                  
END                                                                                                                                               
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  
  
  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ANAG_CLIENTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


 
-- =============================================  
-- Author:  Paolo Giovanetti  / TRINGALI PER FIDUCIARIE  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ANAG_CLIENTI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_CLIENTI',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ANAG_CLIENTI
 
  
 INSERT INTO C6MartPeriodicoImmobiliare.[ANAG_CLIENTI]  
           ([RETE]  
           ,[COD_FISCALE]  
           ,[NOME]  
           ,[COGNOME]  
           ,[DATA_NASCITA]  
           ,[STATO_CIVILE]  
           ,[NUM_COMPONENTI]  
           ,[NUM_FIGLI]  
           ,[ETA]  
           ,[PARTITA_IVA]  
           ,[CITTADINANZA]  
           ,[PERSONA_FIS_GIUR]  
           ,[INDIRIZZO]  
           ,[LOCALITA]  
           ,[PROVINCIA]  
           ,[CAP]  
           ,[NAZIONE]  
           ,[PRESSO]  
           ,[TEL_RECAPITO]  
           ,[TEL_CELL]  
           ,[E_MAIL]  
           ,[DATA_INIZIO]  
           ,[DATA_FINE]  
           ,[STATO]  
           ,[RAG_SOC]  
           ,[SESSO]  
           ,[ID_PROMOTORE]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])  
 SELECT  
  AL.RETE AS RETE,  
        [dbo].[FFCODICEFISCALE] (AL.CODFIS,AL.CODMAN,AL.PIVA)AS COD_FISCALE,  
  RTRIM(ISNULL(CL.NOME,AL.NOMECLIENTE)) AS NOME,  
  RTRIM(ISNULL(CL.COGNOME,AL.COGNOMECLIENTE)) AS COGNOME,  
  ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END) AS DATA_NASCITA,   
          NULL AS STATO_CIVILE,  
  NULL AS NUM_COMPONENTI,  
  NULL AS NUM_FIGLI,  
    
  /*DATEDIFF(YY,  
   ISNULL(  
    AL.DATA_NASCITA,  
    CASE  
     WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
     ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
    END),   
   GETDATE()) AS ETA,*/  
  dbo.Eta(ISNULL(  
   AL.DTNASCITA,  
   CASE  
    WHEN ISDATE(CL.DTNASCI) = 0 THEN NULL  
    ELSE CAST(CAST(CL.DTNASCI AS VARCHAR(8)) AS DATETIME)  
   END)  
  ) AS ETA,  
  [dbo].[FFPIVA] (AL.CODMAN, AL.PIVA) AS PARTITA_IVA,  
  NULL AS CITTADINANZA,  
  NULL AS PERSONA_FIS_GIUR,  
  ISNULL(CL.INDIRIZZO, '') AS INDIRIZZO,  
  ISNULL(CL.CITTA, '') AS LOCALITA,  
  ISNULL(CL.PROVINCIA, '') AS PROVINCIA,  
  ISNULL(CL.CAP, '') AS CAP,  
  ISNULL(CL.NAZIONE, '') AS NAZIONE,  
  '' AS PRESSO,  
  NULL AS TEL_RECAPITO,  
  NULL AS TEL_CELL,  
  NULL AS E_MAIL,  
  NULL AS DATA_INIZIO,  
  NULL AS DATA_FINE,  
  NULL AS STATO,  
  NULL AS RAG_SOC,  
  --NULL AS SESSO,  
  CASE  
    WHEN SUBSTRING(AL.CODFIS,10,2) < '40' THEN 'M'  
   ELSE 'F'  
  END AS SESSO,  
  AL.AGENTE AS ID_PROMOTORE,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM C6StagingPeriodicoImmobiliare.RP_InfoCliente AL  
 LEFT JOIN C6STAGINGPERIODICO.WSEIAN2 CL  
  ON CL.RETE = AL.RETE  
  AND ( ltrim(rtrim(CL.CODFIS)) = CASE WHEN ISNULL(AL.CODFIS, '') = '' THEN AL.PIVA ELSE AL.CODFIS END )  
        AND (ISNULL(CL.CODMAN, '') = ISNULL(AL.CODMAN, ''))  
 WHERE CL.DTTRIM = (  
  SELECT MAX(DTTRIM)  
  FROM C6StagingPeriodico.WSEIAN2)  
--and al.codfis not in  
--(  
--'FF@8464',  
--'LBRMRA73H15H501A',  
--'FF@5134'  
--)
-------------------------------
/* 20170409 rete + cf duplicato  
--S	SFRCLD60E12Z110N
--F	TTLVNT44H04L746B
*/
 and AL.AGENTE is not null 
   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_CLIENTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ANAG_CLIENTI'  
  )  
  
END  
  
  
  
  





GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ANAG_PRODOTTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ANAG_PRODOTTI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;   
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PRODOTTI',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ANAG_PRODOTTI  
   
 INSERT INTO [C6MartPeriodicoImmobiliare].[ANAG_PRODOTTI]  
     (--ChiaveProdotto,  
     [COD_PRODOTTO]  
     ,[COD_ISIN]  
     ,[PAESE]  
     ,[ID_AREA]  
     ,[CAT_PRODOTTO]  
     ,[TIPO_PRODOTTO]  
     ,[DESCR_PRODOTTO]  
     ,[DIV_QUOTAZIONE]  
     ,[DIV_REGOLAMENTO]  
     ,[ID_EMITTENTE]  
     ,[MERCATO_CONTRATT]  
     ,[COD_MAF]  
     ,[RATING]  
     ,[COD_ADEGUATEZZA]  
     ,[COD_SOTTOPRODOTTO]  
     ,[COD_INTERNO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB]  
           ,[DT_SCADENZA]  
           ,[TIPO_EMITTENTE]   
           ,[TIPO_TASSO]  
           ,[FLG_OB])  
 SELECT   
  --ChiaveProdotto,   
  CatalogueID AS COD_PRODOTTO,  
  ISNULL(CodIsin, '') AS COD_ISIN,  
  NULL AS PAESE,  
  '' AS ID_AREA,  
  (SELECT CASE    
   WHEN a.Livello1 like '%Assicurativo%' THEN 'Gestito Finanziario'  
         else a.Livello1  
  END) AS CAT_PRODOTTO,  
  TipoProdotto AS TIPO_PRODOTTO,  
  NomeProdotto AS DESCR_PRODOTTO,  
  PrezzoValuta AS DIV_QUOTAZIONE,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  NULL AS MERCATO_CONTRATT,  
  CodMaf AS COD_MAF,  
  case when LTRIM(RTRIM(RATINGobbligazioni)) = '' THEN null ELSE RATINGobbligazioni end AS RATING,  
  CodAdeguatezza AS COD_ADEGUATEZZA,  
  CodSottoprodotto AS COD_SOTTOPRODOTTO,  
  ISNULL(CodInterno, '') AS COD_INTERNO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB,   
        DtScadenza,   
        TIP_EMITTENTE,   
        TIP_TASSO,   
        CASE WHEN c.Alberatura = 98 THEN 'S' ELSE 'N' END AS FLG_OB  
 FROM C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti  c  
Inner Join C6StagingPeriodicoImmobiliare.RP_AnAlberatura  a  
 ON c.Alberatura = a.Alberatura  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PRODOTTI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ANAG_PRODOTTI'  
  )  
  
END  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ANAG_PRODOTTI_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ANAG_PRODOTTI_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ANAG_PRODOTTI_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ANAG_PRODOTTI_TERZI  
  
  INSERT INTO [C6MartPeriodicoImmobiliare].[ANAG_PRODOTTI_TERZI]  
       ([COD_PRODOTTO]  
           ,[COD_PRODOTTO_TERZI]  
           ,[NOME_PRODOTTO]  
           ,[ALBERO_PRODOTTI]  
           ,[COD_ISIN]  
           ,[DESCR_PRODOTTO]  
           ,[DIV_QUOTAZIONE]  
           ,[INTERMEDIARIO]  
           ,[DIV_REGOLAMENTO]  
           ,[ID_EMITTENTE]  
           ,[MERCATO_CONTRATT]  
           ,[PAESE]  
           ,[RATING]  
           ,[ID_ELAB]  
           ,[TIPO_ELAB])       
  
 SELECT   
  --C6MartPeriodicoImmobiliare.VCONTRATTI.chiaveClientePB AS chiaveClientePB,  
  C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.chiaveProdotto AS COD_PRODOTTO,  
  ISNULL(Mapping.Temp_oidProd ,C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI,  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.nomeProdotto AS NOME_PRODOTTO,  
  NULL AS ALBERO_PRODOTTI,   
  NULL AS COD_ISIN,  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.tipoprod AS DESCR_PRODOTTO,  
  NULL AS DIV_QUOTAZIONE,  
  C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS ID_EMITTENTE,  
  NULL AS MERCATO_CONTRATT,  
  NULL AS PAESE,  
  NULL AS RATING,  
  @ID_ELAB AS ID_ELAB,  
     @TIPO_ELAB AS TIPO_ELAB  
    
 FROM C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi  
 ON C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.chiaveProdottoTerzi = C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.chiaveProdottoTerzi  
 INNER JOIN [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
 ON C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
 LEFT JOIN C6StagingPeriodicoImmobiliare.RP_MappingTerzi Mapping  
 ON C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.chiaveProdottoTerzi = Mapping.chiaveProdottoTerzi  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ANAG_PRODOTTI_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ANAG_PRODOTTI_TERZI'  
  )  
  
END  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_AREA_BISOGNO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_AREA_BISOGNO]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
    -- Insert statements for procedure here  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.AREA_BISOGNO  
   
 DECLARE @ID_ELAB INT  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_AREA_BISOGNO',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 INSERT INTO C6MartPeriodicoImmobiliare.[AREA_BISOGNO]  
           ([ID_AREA]  
           ,[NOME_AREA]  
           ,[ORDINAMENTO]  
           ,[ID_ELAB])  
 SELECT   
  LTRIM(RTRIM(Area)) AS ID_AREA,  
  LTRIM(RTRIM(Descrizione)) AS NOME_AREA,  
  Ordinamento AS ORDINAMENTO,  
  @ID_ELAB AS ID_ELAB  
     FROM   C6StagingPeriodicoImmobiliare.RP_NEEDAREA  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_AREA_BISOGNO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_AREA_BISOGNO'  
  )  
  
END  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSET_PERC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSET_PERC]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSET_PERC',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ASSET_PERC  
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[ASSET_PERC]  
     ([COD_PRODOTTO]  
     ,[ID_ASSETCLASS]  
     ,[COD_ISIN]  
     ,[COD_MAF]  
     ,[COD_INTERNO]  
     ,[COD_SOTTOPRODOTTO]  
     ,[LIVELLO]  
     ,[PERC]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
       
 SELECT DISTINCT  
  cat.CatalogueID AS COD_PRODOTTO,  
  LTRIM(RTRIM(ac.Asset)) AS ID_ASSETCLASS,  
  cat.CodIsin AS COD_ISIN,  
  cat.CodMaf AS COD_MAF,  
  cat.CodInterno AS COD_INTERNO,  
  cat.CodSottoprodotto AS COD_SOTTOPRODOTTO,  
  ac.Livello AS LIVELLO,  
  LTRIM(RTRIM(map.Percentuale)) AS PERC,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodicoImmobiliare.RP_Mappatura AS map  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_AssetClass AS ac  
 ON  
  map.Asset = ac.Asset  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti cat  
 ON  
  map.ChiaveProdotto = cat.ChiaveProdotto  
  where map.Percentuale >= -999.099 and map.Percentuale <= 999.099
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSET_PERC' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ASSET_PERC'  
  )  
  
END  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSET_PERC_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSET_PERC_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSET_PERC_TERZI',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ASSET_PERC_TERZI  
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[ASSET_PERC_TERZI]  
  ([COD_PRODOTTO_TERZI] --  
  ,[ID_ASSETCLASS] --  
  ,[LIVELLO] --  
  ,[NOME_PRODOTTO]  
  ,[TIPO_PRODOTTO]  
  ,[PERC] --  
  ,[ID_ELAB]  
  ,[TIPO_ELAB])  
 SELECT DISTINCT  
  ISNULL(Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI,  
  RP_AssetClass.Asset AS ID_ASSETCLASS,  
  RP_AssetClass.Livello AS LIVELLO,  
  NULL AS NOME_PRODOTTO,  
  NULL AS TIPO_PRODOTTO,  
  RP_MappaturaPT.percentuale / 100 AS PERC,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi  
 ON  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_S4_S5_S13_TRAD_UNTIL_LIV3  
 ON  
  C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.alberatura = C6StagingPeriodicoImmobiliare.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_MappaturaPT  
 ON  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.chiaveProdottoTerzi = C6StagingPeriodicoImmobiliare.RP_MappaturaPT.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_AssetClass  
 ON  
  C6StagingPeriodicoImmobiliare.RP_MappaturaPT.asset = C6StagingPeriodicoImmobiliare.RP_AssetClass.Asset  
 LEFT JOIN  
  C6StagingPeriodicoImmobiliare.RP_MappingTerzi Mapping  
 ON  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.chiaveProdottoTerzi = Mapping.chiaveProdottoTerzi  
  
   
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSET_PERC_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ASSET_PERC_TERZI'  
  )  
  
END  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSETCLASS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--select * from C6MartPeriodicoImmobiliare.assetclass  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSETCLASS]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
   
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSETCLASS',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ASSETCLASS  
  

      
 SELECT
  A.ASSET AS ID_ASSETCLASS,  
  A.DESCRIZIONE AS DESCRIZIONE,  
  A.LIVELLO AS LIVELLO,  
  B.ORDINAMENTO_ASSET AS ORDINAMENTO,  
  @ID_ELAB AS ID_ELAB 
  into #temp_asset
 FROM C6StagingPeriodicoImmobiliare.RP_ASSETCLASS A  
 JOIN   
 C6StagingPeriodicoImmobiliare.RP_REP_ASSET_1_E_2_ORDINATE B  
  ON A.ASSET = B.CODICE_ASSET_CLASS_INGRESSO  
  
   INSERT INTO [C6MartPeriodicoImmobiliare].[ASSETCLASS]  
     ([ID_ASSETCLASS]  
     ,[DESCRIZIONE]  
     ,[LIVELLO]  
     ,[ORDINAMENTO]  
     ,[ID_ELAB])   
     select ID_ASSETCLASS,  
     DESCRIZIONE,  
     LIVELLO,  
    ORDINAMENTO,  
   ID_ELAB 
  from #temp_asset


 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSETCLASS' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ASSETCLASS'  
  )  
  
END  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSETCLASS_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
  
--select * from [C6MartPeriodicoImmobiliare].[ASSETCLASS_TERZI]  
--[C6MartPeriodicoImmobiliare].[DM_ASSETCLASS_TERZI]  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_ASSETCLASS_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
   
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_ASSETCLASS_TERZI',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.ASSETCLASS_TERZI  
   
 INSERT INTO [C6MartPeriodicoImmobiliare].[ASSETCLASS_TERZI]  
     ([ID_ASSETCLASS]  
     ,[COD_ISIN]  
     ,[COD_MAF]  
     ,[COD_ADEGUATEZZA]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
   
 SELECT   
  B.CODICE_ASSET_CLASS_INGRESSO,  
  B.CODICE_ISIN,  
  B.CODICE_MAF,  
  ISNULL(B.CODICE_ADEGUATEZZA,'$'),  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM   
 C6StagingPeriodicoImmobiliare.RP_REP_ASSET_1_E_2_ORDINATE B  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_ASSETCLASS_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_ASSETCLASS_TERZI'  
  )  
  
END  
  


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_CONTRATTOSEI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-----------------------------------------------------------------------------
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_CONTRATTOSEI]  
AS  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_CONTRATTOSEI',  
  GETDATE(),  
  'Elaborazione trimestrale Immobiliare'  
 )  
  
  
TRUNCATE TABLE C6MartPeriodicoImmobiliare.CONTRATTOSEI  
INSERT INTO C6MartPeriodicoImmobiliare.CONTRATTOSEI  
SELECT       
 [Rete],  
 [Cod_Fiscale],  
 [PIva_Fiduciaria],  
 [DATA_INZIOAVANZATO] as [Data_Sott],  
 [CodiceContratto],  
 [Cod_Agente],  
 [Data_Perf_Base],  
 [Data_Perf],  
 null as [Fascia_CPP],  
 null as [Email],  
 [Indirizzo],  
 [CAP],  
 [Citta],  
 [Provincia],  
 [Nazione],  
 [Presso],  
 null as[Data_Inizio],  
 [Freq_Diagnosi],  
 [FREQ_MONITORAGGIO],  
 null as [Freq_DiagnosiPrec],  
 null as [Freq_MonitorPrec],  
 null as [Data_InizioConsInv],  
 [Data_InizioBase],  
 [Data_FineBase],  
 [DATA_INZIOAVANZATO],  
 [Data_FineAvanzato],  
 null as [ProgressivoInvio],  
 'N',  
 'N',  
 null as [DataUltimoInvio],  
 [ClienteMigrato],  
 [RisorseNA],  
 null as [PartViaDisinv],  
 [NumSolleciti],  
 [Data_UltimoSollecito],  
 [NumRevoche],  
 [Data_UltimaRevoca],  
 null as [Note],  
 null as [Data_Invio_Diagnosi_Trimestrale],  
 null as [Data_Invio_Monitoraggio_Trimestrale],  
 [ProfiloAttivo],  
 null as [Rol],  
 [TIP_CONTRATTO],  
 [TIP_RIATTIVAZIONE]  
  
FROM   
    [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport]  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_CONTRATTOSEI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_CONTRATTOSEI'  
  )  
    
    
    
UPDATE C6MartPeriodicoImmobiliare.contrattosei  
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,prov         = a.Provincia  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITOR      = a.FREQ_MONITORAGGIO  
from c6mart.vcontratti a  
inner join C6MartPeriodicoImmobiliare.contrattosei b  
on a.codicecontratto = b.codicecontratto  
  
  
UPDATE contr
 set    
   indirizzo        = a.indirizzo  
  ,cap         = a.cap   
  ,citta         = a.citta  
  ,provincia        = a.Prov  
  ,nazione        = a.Nazione  
  ,presso         = a.Presso  
  ,Cod_Agente        = a.Cod_Agente  
  ,Freq_Diagnosi     = a.Freq_Diagnosi  
     ,FREQ_MONITORAGGIO = a.FREQ_MONITOR  
from C6MartPeriodicoImmobiliare.contrattosei a  
inner join [C6StagingPeriodico].[APPO_CONTRATTI] contr on a.codicecontratto = contr.codicecontratto  
left join  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] lim on lim.COD_FISCALE = contr.COD_FISCALE and lim.rete = contr.rete
where lim.cod_fiscale is not null or 0 = (select count(*) from  [C6StagingPeriodicoImmobiliare].[APPO_CONTRATTI_LIMITER] with (nolock))


  
-- Allineamento Flag Rol su contratto sei  
  
Update C6MartPeriodicoImmobiliare.ContrattoSei  
Set Rol = Case D.statorol  
    When 'S' then D.statorol  
    Else 'N'  
    End,  
    EmAil = Case d.alertrol  
    When 'S' then D.Email  
    End        
from  C6MartPeriodicoImmobiliare.ContrattoSei C inner join  C6StagingPeriodico.datiRol2 D  
on d.codContratto = c.codiceContratto  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_DETTAGLIO_ASUL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6MartPeriodicoImmobiliare].[TEMP_RP_DM_DETTAGLIO_ASUL]
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[RP_DM_DETTAGLIO_ASUL]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_1',
		GETDATE(),
		'Mart Immobiliare'
	)
	
    DECLARE @MaxDTTrim AS decimal(9,0)
    SELECT @MaxDTTrim = MAX(DTTRIM) FROM C6STAGINGPERIODICO.WSEIUL
    
	TRUNCATE TABLE C6MartPeriodicoImmobiliare.DETTAGLIO_ASUL
	
	SELECT --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODFIS AS COD_FISCALE,
		--ISNULL(
		--	C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
		--	SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		CAST('' AS VARCHAR(255)) AS COD_PRODOTTO,
		--ISNULL(SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57),
  --          C6StagingPeriodico.RP_Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD)
  --            ) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
        CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB,
		SPB_CONTR_SINTESI.POSITIONID AS SPB_POSITIONID
    INTO #TEMP_DETTAGLIO_ASUL		
	FROM 
		C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.CodInterno
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.CodSottoprodotto
		-------------------> Mod del 23/1/2017 - ripristinata and sulla visibilità precedentemente commentata
        AND CATITEMREF.Visibilita = 1 
		-------------------> Fine Mod del 23/1/2017
		AND (SPB_ASS_UNIT.ISIN = '' --and CATITEMREF.CodIsin is null --= '$'
              OR (
			SPB_ASS_UNIT.ISIN = CATITEMREF.CodAdeguatezza
			AND 
			SPB_ASS_UNIT.MAF = CATITEMREF.CodMaf)

		)
WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = @MaxDTTrim
	-------------------> Mod del 23/1/2017 -Commentata and sulla visibilità
	--AND CATITEMREF.Visibilita = 1
	-------------------> Fine Mod del 23/1/2017
    and SPB_CONTR_SINTESI.CTV <> 0
    
    
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_1'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_2',
		GETDATE(),
		'Mart Immobiliare'
	)

	
	declare @visible int 
	set @visible = 1
	while @visible >= 0
		begin
			UPDATE #TEMP_DETTAGLIO_ASUL
			SET COD_PRODOTTO = CAT.CATALOGUEID
			FROM 
					#TEMP_DETTAGLIO_ASUL
			--********************************************************************************
					INNER JOIN  
					(
						select * from C6StagingPeriodicoImmobiliare.rp_catalogoprodotti where visibilita = 1
					)CAT
						on  
						--caso 1
						(COD_SOTTOPRODOTTO not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,''))
						or 
						--else caso 1 
						(COD_SOTTOPRODOTTO in ('LIQUI', 'VAR5', 'VAR10', 'VAR15')
						and isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
						and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
						and cat.TIPOPRODOTTO = 'ASUL')
			--***********************************************************************************		
			WHERE COD_PRODOTTO = ''

			set @visible = @visible - 1
			end

	-------------------> Mod del 23/1/2017 
		--aggiorno tutti quelli che non hanno almeno un prodotto in catalogo con visibilità 1
		set @visible = 1
		while @visible >= 0
			begin
				UPDATE #TEMP_DETTAGLIO_ASUL
				SET COD_PRODOTTO = CAT.CATALOGUEID
				FROM 
					   #TEMP_DETTAGLIO_ASUL
				--********************************************************************************
					   INNER JOIN  C6StagingPeriodicoImmobiliare.rp_catalogoprodotti cat
							on  
						
							 isnull(cat.CODINTERNO,'') = isnull(COD_INTERNO,'')
							and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(COD_SOTTOPRODOTTO,'')
							and cat.TIPOPRODOTTO = 'ASUL'
							--)
				--***********************************************************************************		
				WHERE COD_PRODOTTO = ''

				set @visible = @visible - 1
			end

	-------------------> Fine Mod del 23/1/2017 




	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_2'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_3',
		GETDATE(),
		'Mart Immobiliare'
	)

	
	-------------> modifica del 23/01/2017 - questa update non è corretta - sostituiamo con scarto su data quality
		--UPDATE #TEMP_DETTAGLIO_ASUL
		--SET COD_PRODOTTO = SPB_POSITIONID
		--WHERE COD_PRODOTTO = ''

	--select 
	--	14 as idTipoCtr,
	--	rete as rete,
	--	cod_fiscale as codfis,
	--	(select DescSegnalazione  from   C6MartPeriodicoImmobiliare.tb_tipocontrollo where idtipocontrollo = 14) + temp.cod_interno + '/' + temp.cod_sottoprodotto + '/'  +temp.id_contratto
	--	 as descrizione,
	--	@ID_ELAB as idelab,
	--	'' as richiesta,
	--	0 as idfase,
	--	getdate() as dataelab
	--into #TbErrori
	--from  #TEMP_DETTAGLIO_ASUL temp
	--WHERE temp.COD_PRODOTTO = ''

	



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_3'
		)

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_DETTAGLIO_ASUL_4',
		GETDATE(),
		'Mart Immobiliare'
	)

	INSERT INTO [C6MartPeriodicoImmobiliare].[DETTAGLIO_ASUL]
		   ([RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	SELECT
		   [RETE]
		   ,[COD_FISCALE]
		   ,[COD_PRODOTTO]
		   ,[ID_CONTRATTO]
		   ,[COD_SOTTOPRODOTTO]
		   ,[COD_INTERNO]
		   ,[CTV]
		   ,[DATA_RIF]
		   ,[COD_ISIN_FITTIZIO]
		   ,[COD_ISIN_SOTT]
		   ,[COD_MAF_SOTT]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB]
     FROM #TEMP_DETTAGLIO_ASUL

    DROP TABLE #TEMP_DETTAGLIO_ASUL
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_DETTAGLIO_ASUL_4' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_DETTAGLIO_ASUL_4'
		)

END








GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_ALTRO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_ALTRO]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_ALTRO',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
TRUNCATE TABLE C6MartPeriodicoImmobiliare.PATRIMONIO_ALTRO  
  
INSERT INTO [C6MartPeriodicoImmobiliare].[PATRIMONIO_ALTRO]  
 (  
--chiaveClientePB  
-- ,  
[RETE]  
 ,[COD_FISCALE]  
 ,[QUANTITA]  
 ,[DESCRIZIONE]  
 ,[CTV]  
 ,[ID_ELAB]  
 ,[TIPO_ELAB])  
  
SELECT  
-- VCONTRATTI.chiaveClientePB,  
 VCONTRATTI.rete AS RETE,  
 VCONTRATTI.COD_FISCALE,  
 dettPatrAz.numQuote AS QUANTITA,  
 dettPatrAz.denominazione AS DESCRIZIONE,   
 --(dettPatrAz.valoreStimato) as valore,  
 SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettPatrAz.denominazione) AS CTV,  
 @ID_ELAB AS ID_ELAB,  
 @TIPO_ELAB AS TIPO_ELAB  
FROM   
 C6StagingPeriodicoImmobiliare.RP_DettPatrAziendale dettPatrAz,  
 C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi patrTerzi,  
 [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
WHERE  
 dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi  
AND  
 patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
  
UNION ALL  
  
SELECT  
 VCONTRATTI.rete AS RETE,  
 VCONTRATTI.COD_FISCALE,  
 NULL AS QUANTITA,  
 dettAltriProd.descrizione AS DESCRIZIONE,   
 SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettAltriProd.descrizione) AS CTV,  
 @ID_ELAB AS ID_ELAB,  
 @TIPO_ELAB AS TIPO_ELAB  
FROM   
 C6StagingPeriodicoImmobiliare.RP_DettAltriProdotti dettAltriProd,  
 C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi patrTerzi,  
 C6Mart.VCONTRATTI  
WHERE  
 dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi  
AND  
 patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_ALTRO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_ALTRO'  
  )  
  
END  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_BF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Rino Le Boffe
-- Create date: 18 luglio 2013
-- =============================================
--drop table  #patrimonio
---------------------------------------------------------------------------
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_BF]
	-- Add the parameters for the stored procedure here
	--select * from c6mart.patrimonio_bf
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()
	SET @TIPO_ELAB = C6MARTPERIODICO.GETTIPOELAB()
	
INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1',
		GETDATE(),
		'Mart Immobiliare'
	)
TRUNCATE TABLE C6MartPeriodicoImmobiliare.PATRIMONIO_BF

DROP TABLE TEMP_PATRIMONIO_CAMPIONE
--DROP TABLE #PATRIMONIO
 -- *** INCROCIO TRA SPB E CONSULENZA ************************
 SELECT -- PER DIVERSI DA CC ************************
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
        null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CASE
			WHEN CON.area = 'Inv' AND CON.tipoProgetto = 0 THEN 'Prodotti non associati a progetti'
			-- 20170421 elimina char ; dal nome progetto che causa errore 2000 durante elaborazione prometeia exe 
			--ELSE LTRIM(RTRIM(CON.nomeProgetto))
			ELSE replace (LTRIM(RTRIM(CON.nomeProgetto)), ';', '')
		END AS NOME_PROGETTO,
        case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		CON.area AS ID_AREA,
        CASE
			WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, 
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,		
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
        CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
          ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END AS DATA_PARTVIA_DISINV,
		NULL AS PARTVIA_INV,	 
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDINIZ
		END AS REND_SOTTOSCRIZIONE,
--		CASE 
--			WHEN (SPB.TIPPROD = 'GE' 
--				OR SPB.TIPPROD = 'GES')
--				AND SPB.DTSOTTOS < 20070101
--				THEN NULL 
--			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
--				THEN NULL
--			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
--				THEN NULL
--			ELSE SPB.RENDINIZ
		null AS REND_TRIMESTRE,	
		CASE 
			WHEN (SPB.TIPPROD = 'GE' 
				OR SPB.TIPPROD = 'GES')
				AND SPB.DTSOTTOS < 20070101
				THEN NULL 
			WHEN SPB.TIPPROD IN ( 'ASVI','ASU1')
				THEN NULL
			WHEN SPB.TIPPROD = 'ASUL' AND SPB.CODINT NOT IN ('18','19','35','PR','PX')
				THEN NULL
			ELSE SPB.RENDANNO
		END AS REND_ANNO,
		CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
     	@TIPO_ELAB AS TIPO_ELAB,   
		CON.chiaveClientePB,

--nuovo 
        0 AS REND_NON_RAPPR,
        --ISNULL(CM.IDMONITORAGGIO, CON.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo
	INTO TEMP_PATRIMONIO_CAMPIONE
	FROM C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodicoImmobiliare.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid	 
	LEFT JOIN C6StagingPeriodicoImmobiliare.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
       AND CM.stato = 1
	WHERE SPB.POSITIONID IS NOT NULL
          and CON.area <> 'CC' and SPB.TIPPROD <> 'CC'
    --***INIZIO INTERVENTI OMNIA*** 
          and SPB.Isin <> 'EURO00000009'
          and SPB.Isin <> 'EURO10000007'
          and CON.area <> 'SELF'
    --FINE INTERVENTI OMNIA***
     
	--and con.cod_fiscale + CON.RETE  IN
	--(
	--select COD_FISCALE + RETE 
	--FROM ANDREA_RINO_CODICI_PATRIMONIO
	--)

    UNION ALL
    
    SELECT -- *** PER UGUALI DA CC ************************      
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD = 'DT' /* OR SPB.TIPPROD = 'FI' */ THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
                --ELSE SPB.DTSOTTOS 
		END AS DATA_SOTTOSCRIZIONE,
		NULL AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		CON.NOMEPROGETTO AS NOME_PROGETTO,
                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
             when CON.tipoProgetto = 0 then 'Default' 
             else 'ProgettoInvestimento' end as TIPO_PROGETTO,
		--CASE WHEN SPB.CTV>0 THEN 'Liq' ELSE 'Cc' END AS ID_AREA, --PRCONSUL.NEEDAREAID AS ID_AREA,--POSITION.C_NEEDAREASE_3D485 AS ID_AREA,
		CON.AREA AS ID_AREA,
		CASE WHEN ISDATE(SPB.DTRIFE) = 0 THEN NULL
         ELSE CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) END AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		SPB.QUOTE AS QUANTITA,
		NULL AS PREZZO,
		SPB.CTV AS CTV,
		SPB.VALORE AS CTV_NOMINALE,
		CASE 
		    WHEN SPB.CVN = 0
		        THEN NULL		 
			ELSE SPB.CVN 
		END AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
         ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME) END  AS DATA_PARTVIA_DISINV,			
		NULL AS PARTVIA_INV,  
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        CON.StrType,
        CON.Complessita AS COMPLEX,
        CON.DescrizioneEmittente as EMITTENTE,
		SPB.ISIN,
		@ID_ELAB AS ID_ELAB,  
		@TIPO_ELAB AS TIPO_ELAB,  
		CON.chiaveClientePB,
--nuovo 
        0 AS REND_NON_RAPPR,
        CON.ChiaveProgetto AS ORDINAMENTO_PROGETTO,
        CASE WHEN CON.orizzonteTemporale = 0 THEN NULL ELSE CON.orizzonteTemporale END AS ORIZZ_TEMP_NUM,
        CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        CON.CHIAVEPROGETTO AS CHIAVEPROGETTO 	
-- fine nuovo	
	FROM C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI_v SPB
	INNER JOIN C6StagingPeriodicoImmobiliare.RP_Consulenza CON
		ON CON.rete = SPB.RETE
		AND CON.cod_fiscale = SPB.CODFIS
		AND CON.Position_id = SPB.positionid		 
    INNER JOIN C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI KAT
		ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID
    LEFT JOIN C6StagingPeriodicoImmobiliare.RP_ChiaviMonitoraggio CM
		ON CON.chiaveprogetto = CM.chiaveProgetto
        AND CM.stato = 1
    LEFT OUTER JOIN C6StagingPeriodicoImmobiliare.RP_AnEmittente MIT
        ON  MIT.Emittente =KAT.EMITTENTE
	WHERE SPB.TIPPROD = 'CC'
	--***INIZIO INTERVENTI OMNIA*** 
          or SPB.Isin in ('EURO00000009', 'EURO10000007')
    --FINE INTERVENTI OMNIA*** 
--and con.cod_fiscale + CON.RETE  IN
--(
--select COD_FISCALE + RETE 
--FROM ANDREA_RINO_CODICI_PATRIMONIO
--)

UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_1',
		GETDATE(),
		'Mart Immobiliare'
	)

	--DROP TABLE #PATRIMONIO_DUPLICATI
    SELECT RETE, COD_FISCALE, POSITIONID, GETDATE()  as dtstamp
    INTO #PATRIMONIO_DUPLICATI
    FROM TEMP_PATRIMONIO_CAMPIONE
    GROUP BY RETE, COD_FISCALE, POSITIONID
    HAVING COUNT(*) > 1
    
    
    --Scrittura Tabella Data Quality
    --id 4 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
--exec C6MartPeriodico.SP_DQ_PosizioniDuplicate 2
--    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
--    SELECT RETE, COD_FISCALE, 'POSIZIONI DUPLICATE - PATRIMONIO_BF' 
--    FROM #PATRIMONIO_DUPLICATI
--    GROUP BY RETE, COD_FISCALE

UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_1'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_2',
		GETDATE(),
		'Mart Immobiliare'
	)


	INSERT INTO C6MartPeriodicoImmobiliare.PATRIMONIO_BF
([RETE]
           ,[COD_FISCALE]
           ,[POSITION_ID]
           ,[COD_PRODOTTO]
           ,[ID_CONTRATTO]
           ,[DATA_SOTTOSCRIZIONE]
           ,[COD_STATO]
           ,[NUM_POLIZZA]
           ,[COD_MAF]
           ,[COD_INTERNO]
           ,[COD_SOTTOPRODOTTO]
           ,[TIPO_PRODOTTO]
           ,[NOME_PROGETTO]
           ,[TIPO_PROGETTO]
           ,[ID_AREA]
           ,[DATA_OPERAZIONE]
           ,[DATA_VALUTA]
           ,[DATA_REGOLAMENTO]
           ,[QUANTITA]
           ,[PREZZO]
           ,[CTV]
           ,[CTV_NOMINALE]
           ,[VERSATO_NETTO]
           ,[PARTVIA_DISINV]
           ,[DATA_PARTVIA_DISINV]
           ,[PARTVIA_INV]
           ,[REND_SOTTOSCRIZIONE]
           ,[REND_TRIMESTRE]
           ,[REND_ANNO]
		   ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZ_TEMP]
--            ,[STATO_CONSULENZA] 
--            ,[DATA_STATO_CONS] 
--            ,[DATA_MIGR_CONS]
--           , [DATA_PIANIF] 
--		   ,[EXTRANAC]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVE_PROGETTO])
		SELECT P.[RETE]
      ,P.[COD_FISCALE]
      ,P.[POSITIONID]
      ,[COD_PRODOTTO]
      ,[ID_CONTRATTO]
      ,[DATA_SOTTOSCRIZIONE]
      ,[COD_STATO]
      ,[NUM_POLIZZA]
      ,[COD_MAF]
      ,[COD_INTERNO]
      ,[COD_SOTTOPRODOTTO]
      ,[TIPO_PRODOTTO]
      ,[NOME_PROGETTO]
      ,[TIPO_PROGETTO]
      ,[ID_AREA]
      ,[DATA_OPERAZIONE]
      ,[DATA_VALUTA]
      ,NULL --[DATA_REGOLAMENTO]
      ,[QUANTITA]
      ,[PREZZO]
      ,[CTV]
      ,[CTV_NOMINALE]
      ,[VERSATO_NETTO]
      ,[PARTVIA_DISINV]
      ,[DATA_PARTVIA_DISINV]
      ,[PARTVIA_INV]
      ,[REND_SOTTOSCRIZIONE]
      ,[REND_TRIMESTRE]
      ,[REND_ANNO]
      ,[REND_NON_RAPPR]
		   ,[ORDINAMENTO_PROGETTO]
            ,[ORIZZ_TEMP_NUM] 
	        ,[ORIZZONTETEMPORALE]
           ,[STRTYPE]
           ,[COMPLEX]
           ,[EMITTENTE]
		   ,[ISIN]
           ,[ID_ELAB]
           ,[TIPO_ELAB]
           ,[CHIAVEPROGETTO]
FROM 
TEMP_PATRIMONIO_CAMPIONE P
 LEFT JOIN #PATRIMONIO_DUPLICATI T
	ON P.RETE = T.RETE
	AND P.COD_FISCALE = T.COD_FISCALE
	--AND P.POSITIONID = T.POSITIONID
	WHERE T.RETE IS NULL
--select rete, cod_fiscale, positionid, count(*) from #PATRIMONIO group by rete, cod_fiscale, positionid having count(*) > 1



	UNION ALL 
	
	SELECT 
		SPB.RETE AS RETE,
		SPB.CODFIS AS COD_FISCALE,
		SPB.POSITIONID AS POSITIONID,
		SUBSTRING(SPB.POSITIONID,1,57) AS COD_PRODOTTO, 
		SPB.CODCONF AS ID_CONTRATTO,
--		CASE 
--			WHEN SPB.TIPPROD IN ('DT', 'FI') AND SPB.DATAINIZIORENDIMENTO IS NOT NULL THEN SPB.DATAINIZIORENDIMENTO 
--			ELSE SPB.DATADISOTTOSCRIZIONE 
--		END AS DATA_SOTTOSCRIZIONE,
        CASE WHEN ISDATE(SPB.DTSOTTOS) = 0 THEN NULL
				ELSE CAST(CAST(SPB.DTSOTTOS AS VARCHAR(8)) AS DATETIME)
		END AS DATA_SOTTOSCRIZIONE,
		null AS COD_STATO,
		SPB.NUMPOL AS NUM_POLIZZA,
		SPB.MAF AS COD_MAF,
		SPB.CODINT AS COD_INTERNO,
		SPB.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB.TIPPROD AS TIPO_PRODOTTO,
		--LTRIM(RTRIM(NEWPOSITION.NOMEPROGETTOPROP)) AS NOME_PROGETTO,
		null AS NOME_PROGETTO,
--                case when isnull(CON.tipoProgetto, '') = '' then 'Default' 
--             when CON.tipoProgetto = 0 then 'Default' 
--             else 'Progetto investimento' end 
        '' as TIPO_PROGETTO,
		--ISNULL(NEWPOSITION.AREAPROP,'Na') AS ID_AREA,
		'Na' AS ID_AREA,
		CAST(CAST(SPB.DTRIFE AS VARCHAR(8)) AS DATETIME) AS DATA_OPERAZIONE,
		NULL AS DATA_VALUTA, -- 105 PER FORMAT DD/MM/YYYY
		NULL AS DATA_REGOLAMENTO,
		convert(decimal(15,3),SPB.QUOTE) AS QUANTITA,
		NULL AS PREZZO,
		convert(decimal(15,3),SPB.CTV) AS CTV,
		convert(decimal(15,3),SPB.VALORE) AS CTV_NOMINALE,
        NULL AS VERSATO_NETTO,
		SPB.PARTVIA AS PARTVIA_DISINV,
		CASE
			WHEN ISDATE(SPB.PARTVIAAL) = 0 THEN NULL
			ELSE CAST(CAST(SPB.PARTVIAAL AS VARCHAR(8)) AS DATETIME)
		END AS DATA_PARTVIA_DISINV,
		--PARTITEVIAGGIANTI.IMPVER AS PARTVIA_INV,
		NULL AS PARTVIA_INV,
		SPB.RENDINIZ AS REND_SOTTOSCRIZIONE,
		NULL AS REND_TRIMESTRE, --CONTRATTOSINTESI.RENDIMENTODAINIZIOTRIMESTRE AS REND_TRIMESTRE,
		SPB.RENDANNO AS REND_ANNO,
        0 AS REND_NON_RAPPR,
		NULL AS ORDINAMENTO_PROGETTO,
        CASE WHEN ORIZZ_TEMP_NUM = 0 THEN NULL ELSE ORIZZ_TEMP_NUM END AS ORIZZ_TEMP_NUM, 
	    CASE WHEN ISNULL(ORIZZONTETEMPORALE, 0) = 0 THEN NULL ELSE  LTRIM(RTRIM(ORIZZONTETEMPORALE)) + ' anni' END AS ORIZZONTETEMPORALE,
        KAT.AzOb As STRTYPE,
        KAT.Complessita as COMPLEX,
        MIT.DESCRIZIONE AS EMITTENTE,
		SPB.ISIN,
		@ID_ELAB,
		@TIPO_ELAB,
        -1 AS CHIAVE_PROGETTO       
		FROM C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI_v SPB 		
		LEFT JOIN TEMP_PATRIMONIO_CAMPIONE PATR   
			ON	SPB.RETE = PATR.RETE
			AND SPB.CODFIS = PATR.COD_FISCALE
			AND SPB.Positionid = PATR.positionid	
		JOIN [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] VCON   
			ON SPB.RETE = VCON.RETE
			AND SPB.CODFIS = VCON.COD_FISCALE
        INNER JOIN C6StagingPeriodicoImmobiliare.RP_CATALOGOPRODOTTI KAT
		    ON SUBSTRING(SPB.POSITIONID,1,57)=KAT.CATALOGUEID        

        LEFT OUTER JOIN C6StagingPeriodicoImmobiliare.RP_AnEmittente MIT
            ON  MIT.Emittente =KAT.EMITTENTE
			--AND VCON.chiaveClientePB  = NEWPOSITION.chiaveClientePB			 
	WHERE SPB.POSITIONID IS NOT NULL
		  AND PATR.POSITIONID IS NULL
--and SPB.CODFIS + SPB.RETE  IN
--	(
--	select COD_FISCALE + RETE 
--	FROM ANDREA_RINO_CODICI_PATRIMONIO
--	)


UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_2'
		)

INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_1_3',
		GETDATE(),
		'Mart Immobiliare'
	)

    --*************************************************************************************************
    -- RECUPERO CHIAVE PROGETTO DALLA CONSULENZA PER I PRODOTTI CHE SCENDONO DAL WS MA NON SONO NEL DB
    SELECT DISTINCT COD_FISCALE, RETE, NULL AS CHIAVEPROGETTO 
    INTO #CHIAVEPROGETTONULL
    FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF
    WHERE CHIAVE_PROGETTO = -1
    
    UPDATE #CHIAVEPROGETTONULL SET CHIAVEPROGETTO = R.CHIAVEPROGETTO
    FROM 
       #CHIAVEPROGETTONULL C INNER JOIN C6StagingPeriodicoImmobiliare.RP_PROGETTICLIENTE R
       ON C.COD_FISCALE = R.COD_FISCALE
     AND C.RETE = R.RETE
     AND R.area = 'Na'
    
    UPDATE C6MartPeriodicoImmobiliare.PATRIMONIO_BF SET 
      CHIAVE_PROGETTO = T.CHIAVEPROGETTO,
      ORDINAMENTO_PROGETTO = T.CHIAVEPROGETTO
     FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF P INNER JOIN #CHIAVEPROGETTONULL T
       ON P.COD_FISCALE = T.COD_FISCALE
     AND P.RETE = T.RETE
     WHERE P.CHIAVE_PROGETTO = -1
    --*************************************************************************************************   
  drop table #CHIAVEPROGETTONULL
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_1_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_1_3'
		)





--DROP table TEMP_PATRIMONIO_CAMPIONE

INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_2',
		GETDATE(),
		'Mart Immobiliare'
		
		
	)

		SELECT
			TSCA.RETE,
			TSCA.CODFIS,
			C6StagingPeriodicoImmobiliare.RP_Info_DaProdottoCSaCatalogo(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
--INIZIO INTERVENTO CORRETTIVO 20150130
--				'',
				CONS.CodIsin,
--FINE   INTERVENTO CORRETTIVO 20150130
				TSCA.SUBPROD
			)
			+
			dbo.Crea_positionID(
				TSCA.TIPPROD,
				CONS.CODINTERNO,
				CONS.CODMAF,
				'',
				TSCA.SUBPROD,
				TSCA.CODCONF,
				CONS.NUMPOLIZZA,
				TSCA.CONTO,
				TSCA.RUBR,
				TSCA.CUSTGAR,
				TSCA.TERMID,
				TSCA.ANNO,
				TSCA.PROG
			) AS POSITION_ID
        INTO #REND_NON_RAPPR 
		FROM
		   
			C6StagingPeriodico.TSCABP AS TSCA
			
            inner join   
            C6StagingPeriodico.tcptab as TCP
            ON TCP.CODFIS=TSCA.CODFIS
            AND TCP.RETE=TSCA.RETE
            AND TCP.CODCONF=TSCA.CODCONF
            AND TCP.CODPROG=TSCA.CODPROG
            AND TCP.CODPROD=TSCA.CODPROD
--INIZIO INTERVENTO CORRETTIVO 20150130
            AND TCP.SUBPROD=TSCA.SUBPROD
            AND TCP.ISIN=TSCA.ISIN
            AND TCP.dtrif=TSCA.dtrif
            AND TCP.dtingresso=TSCA.dtingresso
--FINE   INTERVENTO CORRETTIVO 20150130
            AND TCP.CONTO=TSCA.CONTO
            AND TCP.CUSTGAR=TSCA.CUSTGAR
            AND TCP.CODABI=TSCA.CODABI
            AND ISNULL(TCP.PROG,'XXX')=ISNULL(TSCA.PROG,'XXX')
            AND ISNULL(TCP.TERMID,'XXX')=ISNULL(TSCA.TERMID,'XXX')
            AND ISNULL(TCP.ANNO,'XXX')=ISNULL(TSCA.ANNO,'XXX')
            inner join 
        --C6StagingPeriodicoImmobiliare.RP_CONSULENZA_v AS CONS 
		C6StagingPeriodicoImmobiliare.RP_CONSULENZA AS CONS 
        ON
				
				 TSCA.CODCONF = CONS.CODCONF
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND (TSCA.CODPROD = CONS.CodInterno			
				 OR  TSCA.CODABI  = CONS.CodInterno)						 
--FINE   INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.SUBPROD, '') = ISNULL(CONS.CODSOTTOPRODOTTO, '') 
--INIZIO INTERVENTO CORRETTIVO 20150130
				AND ISNULL(TSCA.ISIN, '') = ISNULL(CONS.CodIsin, '') 
--				AND TCP.CODINT = CONS.CODINTERNO
--FINE   INTERVENTO CORRETTIVO 20150130				
		   INNER JOIN
			C6StagingPeriodicoImmobiliare.RP_CHIAVIMONITORAGGIO AS CM
			 ON CONS.chiaveprogetto = CM.chiaveProgetto
             AND CM.stato = 1
			 and TSCA.CODPROG = CM.IDMONITORAGGIO
		WHERE
--INIZIO INTERVENTO CORRETTIVO 20150130		
			TCP.dtuscita = '99991231'
--			TSCA.DTRIF <> 0
--FINE   INTERVENTO CORRETTIVO 20150130				
		



    UPDATE
		PATR_BF
	SET
		PATR_BF.REND_NON_RAPPR = 1
	FROM
		#REND_NON_RAPPR AS REND_NON_RAPPR
	INNER JOIN C6MartPeriodicoImmobiliare.PATRIMONIO_BF AS PATR_BF
		ON PATR_BF.RETE = REND_NON_RAPPR.RETE
		AND PATR_BF.COD_FISCALE = --V REND_NON_RAPPR.CODFIS --FF@4546   4546
				CASE WHEN(SUBSTRING(PATR_BF.COD_FISCALE,1,3) = 'FF@') THEN 'FF@'+REND_NON_RAPPR.CODFIS
					 ELSE  REND_NON_RAPPR.CODFIS
				END 
		AND PATR_BF.POSITION_ID = REND_NON_RAPPR.POSITION_ID
  
    DROP TABLE #REND_NON_RAPPR

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_2'
		)
	
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PATRIMONIO_BF_3',
		GETDATE(),
		'Mart Immobiliare'
	)
	
UPDATE C6MartPeriodicoImmobiliare.PATRIMONIO_BF
SET
REND_NON_RAPPR=1
FROM
C6MartPeriodicoImmobiliare.PATRIMONIO_BF
WHERE 
TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
AND CTV > 0
AND ID_AREA='Liq'

--aggiunta Emanuele/Valerio
UPDATE 
C6MartPeriodicoImmobiliare.patrimonio_bf
SET Id_area = 'Liq',
REND_NON_RAPPR=1
WHERE TIPO_PRODOTTO='CC'
--***INIZIO INTERVENTI OMNIA*** 
or ISIN in('EURO00000009', 'EURO10000007')
--***FINE INTERVENTI OMNIA*** 
--AND ID_AREA = 'na'
AND CTV > 0

UPDATE 
C6MartPeriodicoImmobiliare.patrimonio_bf
SET Id_area = 'Cc'
WHERE TIPO_PRODOTTO='CC'
--AND ID_AREA = 'na'
AND CTV < 0

--***INIZIO INTERVENTI OMNIA*** 
UPDATE 
C6MartPeriodicoImmobiliare.patrimonio_bf
SET Id_area = 'Self'
--INIZIO INTERVENTO CORRETTIVO 20150130
   ,REND_NON_RAPPR=0
--FINE   INTERVENTO CORRETTIVO 20150130
WHERE ISIN in ('EURO00000009', 'EURO10000007')
--AND ID_AREA = 'na'
AND CTV < 0
--***FINE INTERVENTI OMNIA*** 

---AGGIORNO LA CHIAVE PROGETTO PER I CC DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MartPeriodicoImmobiliare.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF BF
    inner join C6StagingPeriodicoImmobiliare.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Cc')
    AND BF.id_AREA=R.AREA
    WHERE BF.TIPO_PRODOTTO='CC'
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)

--***INIZIO INTERVENTI OMNIA*** 
---AGGIORNO LA CHIAVE PROGETTO PER I SELF GP OMNIA DI CUI AVEVO CAMBIATO L'AREA, PRENDEDOLA DAL PROGETTO
    UPDATE C6MartPeriodicoImmobiliare.PATRIMONIO_BF
    SET CHIAVE_PROGETTO = R.CHIAVEPROGETTO, 
        ORDINAMENTO_PROGETTO = R.CHIAVEPROGETTO
        
    FROM C6MartPeriodicoImmobiliare.PATRIMONIO_BF BF
    inner join C6StagingPeriodicoImmobiliare.RP_PROGETTICLIENTE R
    ON BF.COD_FISCALE = R.COD_FISCALE
    AND BF.RETE = R.RETE
    AND BF.id_AREA IN ('Liq','Self')
    AND BF.id_AREA=R.AREA
    WHERE BF.ISIN in ('EURO00000009', 'EURO10000007')
    AND (BF.CHIAVE_PROGETTO<>R.CHIAVEPROGETTO or BF.CHIAVE_PROGETTO is null)
--***FINE INTERVENTI OMNIA*** 

--aggiunta Emanuele
UPDATE 
C6MartPeriodicoImmobiliare.patrimonio_bf
SET id_area = 'Liq'
WHERE id_area = 'LIQ'


UPDATE C6MartPeriodicoImmobiliare.PATRIMONIO_BF
SET
	NOME_PROGETTO = LTRIM(RTRIM(NOME_PROGETTO))


		-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_BF_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_BF_3'
		)
	
--insert into c6martperiodico.test_quality 
--select distinct a.rete, a.cod_fiscale, 'ORDINAMENTO PROGETTO PER AREA DUPLICATO'
--from 
--(SELECT * FRom c6martperiodico.patrimonio_bf ) a
--inner join
--(SELECT * FRom c6martperiodico.patrimonio_bf ) b
--on a.cod_fiscale = b.cod_fiscale 
--and a.rete= b.rete
--and a.id_area = b.id_area
--where a.id_area <> 'Inv'
--and a.ordinamento_progetto <> b.ordinamento_progetto

--exec C6MartPeriodico.SP_DQ_ProgettoDuplicatoArea  2



END










GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_IMMOBILIARE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
--select * from C6MartPeriodicoImmobiliare.patrimonio_immobiliare  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_IMMOBILIARE]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_IMMOBILIARE',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.PATRIMONIO_IMMOBILIARE  
    
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[PATRIMONIO_IMMOBILIARE]  
     ([RETE]  
     ,[COD_FISCALE]  
     ,[DESCRIZIONE]  
     ,[TIPOLOGIA]  
     ,[LOCALITA]  
     ,[PROVINCIA]  
     ,[CAP]  
     ,[NAZIONE]  
     ,[VALORE_STIMATO]  
     ,[AFFITTO]  
     ,[NOTE]  
     ,[DIV_RIFERIMENTO]  
     ,[CAMBIO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
 SELECT   
  C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,  
  C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione  
  B.TIPOLOGIA,   
  B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto  
  B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia  
  NULL AS CAP,  
  NULL AS NAZIONE,  
  B.VALOREIMMOBILETOTALE,   
  B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua  
  NULL AS NOTE,  
  NULL AS DIV_RIFERIMENTO,  
  NULL AS CAMBIO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
    
  FROM C6StagingPeriodicoImmobiliare.RP_PATRIMONIOTERZI A  
  JOIN C6StagingPeriodicoImmobiliare.RP_DETTIMMOBILIARE B  
   ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI  
  JOIN [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] C  
   ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB  
  WHERE A.IDTIPOPRODOTTO = 'IM'  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE'  
  )  
  
END  
  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




  
--select * from C6MartPeriodicoImmobiliare.patrimonio_immobiliare  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_IMMOBILIARE_20190205_ProQuota]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_IMMOBILIARE',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.PATRIMONIO_IMMOBILIARE  
    
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[PATRIMONIO_IMMOBILIARE]  
     ([RETE]  
     ,[COD_FISCALE]  
     ,[DESCRIZIONE]  
     ,[TIPOLOGIA]  
     ,[LOCALITA]  
     ,[PROVINCIA]  
     ,[CAP]  
     ,[NAZIONE]  
     ,[VALORE_STIMATO]  
     ,[AFFITTO]  
     ,[NOTE]  
     ,[DIV_RIFERIMENTO]  
     ,[CAMBIO]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
 SELECT   
  C.RETE, --ALL_PATR_TERZI.RETE_PB AS RETE,  
  C.COD_FISCALE, --ALL_PATR_TERZI.CODICE_FISCALE AS COD_FISCALE,  
  B.DESCRIZIONE, --ALL_PATR_TERZI.DESCRIZIONE_RDESCR AS DESCRIZIONE, --b.descrizione  
  B.TIPOLOGIA,   
  B.COMUNE AS COMUNE, --ALL_PATR_TERZI.LOCALITA AS LOCALITA, --comune è null verificare se è corretto  
  B.codProvincia AS PROVINCIA, --NULL AS PROVINCIA, --provincia  
  NULL AS CAP,  
  NULL AS NAZIONE,  
  B.VALOREIMMOBILETOTALE,   
  B.RENDITAANNUA, --ALL_PATR_TERZI.AFFITTOPERCEPITO AS AFFITTO, --renditaAnnua  
  NULL AS NOTE,  
  NULL AS DIV_RIFERIMENTO,  
  NULL AS CAMBIO,  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
    
  FROM C6StagingPeriodicoImmobiliare.RP_PATRIMONIOTERZI A  
  JOIN C6StagingPeriodicoImmobiliare.RP_DETTIMMOBILIARE B  
   ON A.CHIAVEPRODOTTOTERZI = B.CHIAVEPRODOTTOTERZI  
  JOIN [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] C  
   ON A.CHIAVECLIENTEPB = C.CHIAVECLIENTEPB  
  WHERE A.IDTIPOPRODOTTO = 'IM'  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_IMMOBILIARE'  
  )  
  
END  
  
  



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_TERZI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[RP_DM_PATRIMONIO_TERZI]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_TERZI',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
  
 TRUNCATE TABLE C6MartPeriodicoImmobiliare.PATRIMONIO_TERZI  
  
 INSERT INTO [C6MartPeriodicoImmobiliare].[PATRIMONIO_TERZI]  
     (  
     [RETE]  
     ,[COD_FISCALE]  
     ,[NUM_POLIZZA]  
     ,[TIPO_POLIZZA]  
     ,[TIPO_PRODOTTO]  
     ,[TIPO_PRODOTTO2]  
     ,[COD_PRODOTTO]  
     ,[COD_PRODOTTO_TERZI]  
     ,[INTERMEDIARIO]  
     ,[DATA_SOTTOSCRIZIONE]  
     ,[DATA_SCADENZA]  
     ,[FREQ_RATA]  
     ,[DURATA_POLIZZA]  
     ,[PREMIO]  
     ,[ALIQUOTA]  
     ,[DATA_SOTT_FP]  
     ,[DATA_REGOLAMENTO]  
     ,[QUANTITA]  
     ,[PREZZO]  
     ,[CTV]  
     ,[VERSATO_NETTO]  
     ,[DIV_REGOLAMENTO]  
     ,[CAMBIO]  
     ,[DESCR_GRUPPO_PRODOTTO]  
   ,[STRTYPE]  
   ,[COMPLEX]  
   ,[EMITTENTE]  
   ,[CHIAVE_THR]  
     ,[ID_ELAB]  
     ,[TIPO_ELAB])  
  
 SELECT   
  VCONTRATTI.rete AS RETE,  
  VCONTRATTI.COD_FISCALE AS COD_FISCALE,  
  NULL AS NUM_POLIZZA,  
  (CASE RP_DettProdottiTerzi.tipoPolizza  
       WHEN 'CapitaleDifferito' THEN 'Capitale differito'  
       WHEN 'MistaImmediata' THEN 'Mista immediata'  
       WHEN 'VitaIntera' THEN 'Vita intera'  
       WHEN 'RenditaVitalizia' THEN 'Rendita vitalizia'  
       WHEN 'Capitalizzazione' THEN 'Capitalizzazione'  
       ELSE RP_DettProdottiTerzi.tipoPolizza  
     END) AS TIPO_POLIZZA,  
  COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3,COALESCE(RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2,RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1)) AS TIPO_PRODOTTO, --da rivedere  
  NULL AS TIPO_PRODOTTO2,  
  isnull(RP_CatalogoProdotti.catalogueID, 'PRODOTTO NON IN CATALOGO') AS COD_PRODOTTO,   
  ISNULL(MAPPING.Temp_oidProd, RP_PatrimonioTerzi.chiaveProdottoTerzi) AS COD_PRODOTTO_TERZI, --da rivedere prima era una stringona presa dal campo OID$  
  RP_DettProdottiTerzi.nomeIntermediario AS INTERMEDIARIO,  
  case when C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.tipoProd ='Assets.FinancialAssets.PolizzeRivalutabili'  
     then isnull(RP_DettProdottiTerzi.DTSOTTOSCRIZIONE, RP_PatrimonioTerzi.DATACTV)   
     when C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.ProdottiPrevidenziali'  
     then RP_PatrimonioTerzi.DATACTV  
     else isnull(RP_DettProdottiTerzi.dtInizioInvest,RP_PatrimonioTerzi.DATACTV)   
  end AS DATA_SOTTOSCRIZIONE,  
  RP_PatrimonioTerzi.dtFine AS DATA_SCADENZA,  
  RP_DettProdottiTerzi.tipoVersamento AS FREQ_RATA,  
  NULL AS DURATA_POLIZZA,  
  NULL AS PREMIO,  
  NULL AS ALIQUOTA,  
  NULL AS DATA_SOTT_FP,  
  NULL AS DATA_REGOLAMENTO,  
  NULL AS QUANTITA,  
  NULL AS PREZZO,  

  		--------------------- intervento del 2/3/2018 per gestire ctv e capitale_investito più grandi del consentito
                   ---RP_PatrimonioTerzi.ctv AS CTV,  
                   ----RP_DettProdottiTerzi.capitaleInvestito AS VERSATO_NETTO,  
		  case 
				   when RP_PatrimonioTerzi.ctv > 999999999999.00 then 999999999999.00
				   else RP_PatrimonioTerzi.ctv
				end  AS CTV,

				case 
				   when RP_DettProdottiTerzi.capitaleInvestito > 999999999999.00 then 999999999999.00
				   else RP_DettProdottiTerzi.capitaleInvestito
				end  AS VERSATO_NETTO,
  
		---------------------  fine intervento del 2/3/2018

  
  NULL AS DIV_REGOLAMENTO,  
  NULL AS CAMBIO,  
  CASE   
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Fondi'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2 = 'Gestioni patrimoniali'   
    THEN RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1 = 'Amministrato'   
     AND RP_PatrimonioTerzi.tipoProd NOT IN( 'Assets.FinancialAssets.CurrentAccount', 'Assets.FinancialAssets.Other'))  
    THEN 'Prodotti di Tipo amministrato (escluso C/C)'  
   WHEN (RP_S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3 IN ('Index linked', 'Unit linked')  
     or (RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_1='Gestito Assicurativo previdenziale'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_2='Assicurativi Vita'   
      and RP_S4_S5_S13_TRAD_UNTIL_LIV3.albero_gerarchia_3 is null))  
    THEN 'Assicurativi Unit/Index Linked'
	/* 20170427 aggiunto Assets.FinancialAssets.OtherFin e Assets.FinancialAssets.OtherAss al gruppo Portafoglio Generico */   	
   --WHEN RP_PatrimonioTerzi.tipoProd = 'Assets.FinancialAssets.Other'  
     WHEN RP_PatrimonioTerzi.tipoProd in ('Assets.FinancialAssets.Other', 'Assets.FinancialAssets.OtherFin', 'Assets.FinancialAssets.OtherAss')
    THEN 'Portafoglio Generico'  
   WHEN RP_PatrimonioTerzi.tipoProd IN ('Assets.FinancialAssets.ProdottiPrevidenziali', 'Assets.FinancialAssets.PolizzeRivalutabili')    
    THEN NULL  
   ELSE NULL   
  END AS DESCR_GRUPPO_PRODOTTO,  
  --'' AS DESCR_GRUPPO_PRODOTTO, --se mi dici adesso come si chiama questo campo (ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO) è fatta  
  RP_CatalogoProdotti.AzOb AS STRTYPE, --manca (farselo dire da Alessia) (obbligazionario o azionario)  
  RP_CatalogoProdotti.Complessita AS COMPLEX,  
  RP_AnEmittente.Descrizione AS EMITTENTE,  
  MAPPING.Temp_oidProd AS chiave_thr, --da rivedere  
  @ID_ELAB AS ID_ELAB,  
  @TIPO_ELAB AS TIPO_ELAB  
 FROM  
  [C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi  
  ON VCONTRATTI.chiaveClientePB = RP_PatrimonioTerzi.chiaveClientePB  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi  
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi  
 LEFT JOIN    
        C6StagingPeriodicoImmobiliare.RP_MappingTerzi MAPPING    
  ON RP_PatrimonioTerzi.chiaveProdottoTerzi = MAPPING.chiaveProdottoTerzi  
 INNER JOIN  
  C6StagingPeriodicoImmobiliare.RP_S4_S5_S13_TRAD_UNTIL_LIV3 ON C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.alberatura = C6StagingPeriodicoImmobiliare.RP_S4_S5_S13_TRAD_UNTIL_LIV3.alberatura  
 LEFT JOIN  
  C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti ON C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi.chiaveProdotto = C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti.ChiaveProdotto  
 LEFT JOIN  
  C6StagingPeriodicoImmobiliare.RP_AnEmittente ON C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti.Emittente = C6StagingPeriodicoImmobiliare.RP_AnEmittente.Emittente  
  
    
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_TERZI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_TERZI'  
  )  
  
END  
  
  
  






GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_DM_PIRAMIDE_MOD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[RP_DM_PIRAMIDE_MOD]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)
	
	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_PIRAMIDE_MOD',
		GETDATE(),
		'Mart Immobiliare'
	)

	TRUNCATE TABLE C6MartPeriodicoImmobiliare.PIRAMIDE_MOD

	INSERT INTO [C6MartPeriodicoImmobiliare].[PIRAMIDE_MOD]
		   (
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])

	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		rp_pirmod.area AS ID_AREA,
		-- 2016-12-02: nomeProgetto sempre presente e differente da NULL 
		--case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then rp_pirmod.nomeProgetto
        --  ELSE NULL END
		-- fine 
		rp_pirmod.nomeProgetto AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
		rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
	    --convert(int,REPLACE(durata,'anni',''))  AS ORIZZ_TEMP_NUM,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
        --rp_pirmod.durata AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
INNER JOIN
		[C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		and rp_pirmod.DtFineValidita > getdate()		
		-- modifica del 30/11/2016 - il tipoProgetto non è più un campo significativo; ecludo le aree light e void
		   --and ((rp_pirmod.area = 'Inv') OR (rp_pirmod.area <> 'Inv' and rp_pirmod.tipoProgetto = 0))
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')
		-- fine -- modifica del 30/11/2016   
        
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PIRAMIDE_MOD' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_DM_PIRAMIDE_MOD'
		)



-------------------------------------> modifica del 19/1/2017 per inserire il record di aggregazione per l'area 'Pre'

	
	/* 
				PER OGNI CF MI ESTRAGGO SOLO I RECORD DELL'AREA 'PRE1' E 'PRE2' RINOMINANDOLI COME 'PRE'
				PER POTERLI POI AGGREGARE
	*/
	
	SELECT 
		VCONTRATTI.rete AS RETE,
		ISNULL(VCONTRATTI.COD_FISCALE, '') AS COD_FISCALE,
		CASE WHEN rp_pirmod.area IN ('Pre','Pre1','Pre2') THEN 'Pre'
			else rp_pirmod.area
			END  AS ID_AREA,
		rp_pirmod.nomeProgetto AS NOME_PROGETTO,
		case when isnull(rp_pirmod.area, '') = 'inv' and isnull(rp_pirmod.tipoprogetto, 0) = 1 then 'ProgettoInvestimento' 
		    else 'Default'
		    end AS TIPO_PROGETTO,
	    rp_pirmod.percentualeProgetto AS PERC_AREA,
		ISNULL(Progetto.CTVPROGETTO, MigrazProgetto.CTVPROGETTO) AS CTV_PROGETTO,
		NULL AS CTV_AREA,
        Progetto.orizzonteTemporale  AS ORIZZ_TEMP_NUM,
		CASE WHEN ISNULL(Progetto.orizzonteTemporale, 0) = 0 THEN '' ELSE 
        cast(Progetto.orizzonteTemporale as varchar(2)) + ' anni' END AS ORIZZ_TEMP,
		NULL AS CTV_TOTALE,
		NULL AS STATO_CONSULENZA,
		NULL AS DATA_STATO_CONS, --ISNULL(CONVERT(DATETIME, CONSUL.C_DATAINIZIO_35C15),NULL) AS DATA_STATO_CONS, -- STRINGA IN FORMATO ISO
		NULL AS DATA_MIGR_CONS,
		NULL AS ID_CONTRATTO,
       ISNULL(Progetto.ChiaveProgetto, MigrazProgetto.ChiaveProgetto) AS ORDINAMENTO_PROGETTO,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB

		into #appo

	FROM C6StagingPeriodico.RP_ProgettiPiramideModello AS rp_pirmod 
    INNER JOIN
		[C6MartPeriodicoImmobiliare].[RP_vContrattiPerGenerazioneReport] vCONTRATTI
	ON
		rp_pirmod.chiaveClientePB = vCONTRATTI.chiaveClientePB
	LEFT JOIN
		C6StagingPeriodico.RP_Progetto Progetto
	on 	rp_pirmod.chiaveprogettomod = Progetto.chiaveprogettomod
    LEFT JOIN
		C6StagingPeriodico.RP_Migraz_Progetto MigrazProgetto
	on 	rp_pirmod.chiaveprogettomod = MigrazProgetto.chiaveprogettomod
    AND Progetto.chiaveprogettomod is null
	WHERE 1=1
		AND rp_pirmod.area   in ('Pre','Pre1','Pre2')
		and rp_pirmod.DtFineValidita > getdate()		
	
		   and rp_pirmod.area  not in ('LIGHT', 'VOID')


     /* 
	 
			ORA INSERISCO UN SOLO RECORD 'PRE' PER OGNI CF COME AGGREGAZIONE DELL'AREE 'PRE1' E 'PRE2'
			DOPO QUESTA INSERT, PER OGNI CF, HO DI NUOVO 'PRE', 'PRE1', E 'PRE2' 
	 
	 */

		   insert into [C6MartPeriodicoImmobiliare].[PIRAMIDE_MOD]
			(
            [RETE]
		   ,[COD_FISCALE]
		   ,[ID_AREA]
		   ,[NOME_PROGETTO]
		   ,[TIPO_PROGETTO]
		   ,[PERC_AREA]
		   ,[CTV_PROGETTO]
		   ,[CTV_AREA]
		   ,[ORIZZ_TEMP_NUM]
		   ,[ORIZZ_TEMP]
		   ,[CTV_TOTALE]
		   ,[STATO_CONSULENZA]
		   ,[DATA_STATO_CONS]
		   ,[DATA_MIGR_CONS]
		   ,[ID_CONTRATTO]
		   ,[ORDINAMENTO_PROGETTO]
		   ,[ID_ELAB]
		   ,[TIPO_ELAB])
	select 
			rete,
			cod_fiscale,
			id_area,
			nome_progetto,
			tipo_progetto,
			sum(perc_area) as perc_area,
			sum(ctv_progetto) as ctv_progetto,
			sum(ctv_area) as ctv_area,
			orizz_temp_num,
			orizz_temp,
			sum(ctv_totale) as ctv_totale,
			stato_consulenza,
			data_stato_cons,
			data_migr_cons,
			id_contratto,
			max(ordinamento_progetto),
			id_elab,
			tipo_elab
		from #appo
		group by 
		rete,
		cod_fiscale,
		id_area,
		nome_progetto,
		tipo_progetto,
		orizz_temp_num,
		orizz_temp,
		stato_consulenza,
		data_stato_cons,
		data_migr_cons,
		id_contratto,id_elab,
			tipo_elab

---------------------------------------------------------------> FINE MODIFICA DEL 19/1/2017



END
-- select durata, convert(int,REPLACE(durata,'anni','')) FROM C6StagingPeriodico.RP_ProgettiPiramideModello where durata is not null 








GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_PROM_TuttiIPortafogli2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Paolo Giovanetti --modificata per i cc in liq Marianna/Valerio
-- Create date: 18/11/2008
-- Description:	
-- =============================================

CREATE procedure [C6MartPeriodicoImmobiliare].[RP_PROM_TuttiIPortafogli2]
	-- Add the parameters for the stored procedure here
AS
BEGIN

SELECT 
	--	descr_prodotto,
		[Rete]
      ,[CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
      ,[CtvNominale]
      ,[CtvReale]
FROM (

	SELECT 
--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	  FROM [C6StampeCentralizzate].[C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli]

	union all
	SELECT 
		--descr_prodotto,
			[Rete]
		  ,[CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  ,[CtvNominale]
		  ,[CtvReale]
	 FROM [C6StampeCentralizzate].[C6MartPeriodicoImmobiliare].[RP_vTuttiIPortafogli_ccLiq]
) T
--where t.codicefiscale <> 'MNTGFR35R06G337T'
--where ((t.rete = 'F'
--and    t.codicefiscale > 'KRLPBL79L31Z107U')
--or (t.rete = 'S'))
----------------------------------------------------------------
-- excluded for T2_L1 and T2_L2 to bypass Prometeia dtsx failure
--where T.codicefiscale = 'BRRNGL37T26F063Y'
----------------------------------------------------------------

order by rete,codiceFiscale,Portafoglio

END


GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[RP_PROM_TuttiIPortafogli2_Indicatore]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6MartPeriodicoImmobiliare].[RP_PROM_TuttiIPortafogli2_Indicatore]
	-- Add the parameters for the stored procedure here
AS
BEGIN

set nocount on
SELECT 
	--	descr_prodotto,
		[Rete]
      , rtrim([CodiceFiscale]) as [CodiceFiscale]
      ,[Portafoglio]
      ,[CodiceProdotto]
	     -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
      ,[Piazza]
      ,[CodiceValuta]
      ,[Classe]
	  --MIFID2 20180711
	 -- ,case
		--when [CtvNominale] < 0 then '0.00'
		--else convert(varchar(20),[CtvNominale])
	 -- end as [CtvNominale]
	 -- ,case
		--when [CtvReale] < 0 then '0.00'
		--else convert(varchar(20),[CtvReale])
	 -- end as [CtvReale]
	  --orig:
	  ,convert(varchar(20),[CtvNominale]) as [CtvNominale]
	  ,convert(varchar(20),[CtvReale]) as [CtvReale]
	  --MIFID2

FROM 

(

	 SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_BF' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
		  
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6MartperiodicoImmobiliare].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|BF%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		-- and rete+codicefiscale not in 
		--('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		--'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		--'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
--and rete+codicefiscale in (select rete+codfis from consuni.consulenzaunicafl.dbo.immobiliare_richiestemonitoraggiocatastocliente where dtriferimento is null)

--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BRRNGL37T26F063Y'
--********************ELIMINARE*****************


	  UNION

	  SELECT 
           [Rete]
		  ,rtrim(CodiceFiscale) + '_TERZI' as [CodiceFiscale]
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6MartperiodicoImmobiliare].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where [Portafoglio] like '%COMPLESSIVO|TERZI%'
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		-- and rete+codicefiscale not in 
		--('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		--'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		--'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
--and rete+codicefiscale in (select rete+codfis from consuni.consulenzaunicafl.dbo.immobiliare_richiestemonitoraggiocatastocliente where dtriferimento is null)		
--********************ELIMINARE*****************
	  	--and codicefiscale = 'BRRNGL37T26F063Y'
--********************ELIMINARE*****************

	 UNION

	   SELECT 
           [Rete]
		  ,rtrim([CodiceFiscale])
		  ,[Portafoglio]
		  ,[CodiceProdotto]
	  -- 12/6/2018 ---------
	  ,[CodiceAdeguatezza]
	  -----------------------
		  ,[Piazza]
		  ,[CodiceValuta]
		  ,[Classe]
		  --MIFID2 20180711
			  ,case
				when [CtvNominale] < 0 then '0.000'
				else convert(varchar(20),[CtvNominale])
			  end as [CtvNominale]
			  ,case
				when [CtvReale] < 0 then '0.000'
				else convert(varchar(20),[CtvReale])
			  end as [CtvReale]
		  --orig:
		  --,convert(varchar(20),[CtvNominale]) as [CtvNominale]
		  --,convert(varchar(20),[CtvReale]) as [CtvReale]
		  --MIFID2
	  -- Modifica del 18/10/2018: creata nuova vista RP_vTuttiIPortafogli_Indicatore (per risolvere il problema del nome_progetto vuoto che causava due caratteri pipe ||
	  --FROM [C6StampeCentralizzate].[C6Martperiodico].[RP_vTuttiIPortafogli]
	  FROM [C6StampeCentralizzate].[C6MartperiodicoImmobiliare].[RP_vTuttiIPortafogli_Indicatore]
	  -- Fine Modifica del 18/10/2018
	  where ([Portafoglio] like '%COMPLESSIVO|TERZI%' or [Portafoglio] like '%COMPLESSIVO|BF%')
	  --esclusioni per errore nuovo servizio indicatori del 14-15-28/6/2018
		-- and rete+codicefiscale not in 
		--('FMRLVCN68L02F274G','FPTRBBR71E65A345O','FPTRBDT72C41H223C','FRSSMNT49A71E498A','FRTOMHL64H69B354H',
		--'FTMBCST76M67M082T','FVLIMLL56P45I480C','FVRTMRC61S04H501Q','FZLACRN41D49B157T','SMTTBRN52M12D982T',
		--'SPCFMRA79D52I197L','SSNTLGU56A23L334O')
--and rete+codicefiscale in (select rete+codfis from consuni.consulenzaunicafl.dbo.immobiliare_richiestemonitoraggiocatastocliente where dtriferimento is null)	
--********************ELIMINARE*****************
	  	 --and codicefiscale = 'BRRNGL37T26F063Y'
--********************ELIMINARE*****************

) T
--where codicefiscale+portafoglio = 'BRRNGL37T26F063YCOMPLESSIVO|BF|Liq|Progetto investimento||EURO000000099000002        FO             V301           091343FO10600000000000000000000000000000000000000000000000'
--Da ELIMINARE 13 Apr 2020 -->
where portafoglio not like '%||%'
--Da ELIMINARE 13 Apr 2020 <--
order by rete,codiceFiscale,Portafoglio

END

GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[sp_caricaBlacklist]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Stored procedure

CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[sp_caricaBlacklist]
	
AS
BEGIN


 Declare @dtTrime as decimal;  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  

 truncate table C6MartPeriodicoImmobiliare.blacklist

 insert into C6MartPeriodicoImmobiliare.blacklist
 select distinct
	   Rete
      ,case when codman <> '' then 'FF@' + CODMAN
	        when len(codfis)=11 then NULL else codfis end as codiceFiscale
	  ,case when LEN(codfis) =11 and codman='' then codfis else NULL end as Piva
	  ,case when codman<>'' then codman else NULL end as Codman
		,case when tipolett = '2' then 'BLACKLIST RFA MINUS CLIENTE SEI E IMMOBILIARE' 
			when tipolett = '1' then 'BLACKLIST RFA MINUS CLIENTE IMMOBILIARE' END AS  DescrErr
      ,getdate() as [DataIns]
     -- ,1 as [Bloccato]
from c6stagingPeriodico.wseidc 
where dttrim = @dtTrime and (tipolett='2' or TIPOLETT='1')

insert into C6MartPeriodicoImmobiliare.blacklist
select distinct 
	   ps.Rete
      ,case when codman <> '' then 'FF@' + CODMAN
	        when len(ps.codfis)=11 then NULL else ps.codfis end as codiceFiscale
	  ,case when LEN(ps.codfis) =11 and codman='' then ps.codfis else NULL end as Piva
	  ,case when codman<>'' then codman else NULL end as Codman
	, 'Profilo Scaduto' as DescrErr 
    , getdate() as [DataIns]
    -- , 1 as [Bloccato]
from c6stagingPeriodico.wseips ps
     join c6martperiodicoimmobiliare.w6imm imm on imm.RETE = ps.RETE and imm.CODFIS = ps.CODFIS
where 1=1
  and dttrim = @dtTrime 
  and imm.flag_in_perimetro='S' 

exec [C6MartPeriodicoImmobiliare].[Blacklist_Blocco_Tabellone] 'blocco' --aggiorna tabellone

END

GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[SP_PopolaW6IMM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- 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,'2025-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,'2020-03-01') AND
	--		rpt.codFIS=coalesce(cli.codFis,cli.piva) AND chiaveImportazione = (select max(chiaveImportazione) from [CONSUNI].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente rpt2  where rpt2.dtUltimoAggiornamento < convert(datetime,'2020-03-01') AND
	--		rpt2.codFIS=rpt.codFis)),'') AS Evento_Prometeia,
	--		'',
	--		'',
	--		''
	--		from [CONSUNI].[ConsulenzaUnica].dbo.vInfoCliente cli 
	--		left outer join [CONSUNI].[ConsulenzaUnica].dbo.v_servizi_aggiuntivi srv on srv.chiaveclientepb = cli.chiaveClientePB  AND srv.chiaveServizioAggiuntivo = 1 and srv.flagattivo=1
	--		inner join [CONSUNI].[ConsulenzaUnica].dbo.PatrimonioTerzi PT on cli.chiaveClientePB=PT.chiaveClientePB
	--		inner join [CONSUNI].[ConsulenzaUnica].dbo.Contratto con on cli.chiaveClientePB = con.chiaveClientePB
	--		inner join [CONSUNI].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente rpt on coalesce(cli.codFis,cli.piva) = rpt.codfis
	--		--left outer join 
	--		--(select distinct s.chiaveImportazione,i.statoImportazione, s.chiaveClientePB  
	--		-- from  [CONSUNI].[ConsulenzaUnica].[dbo].[PatrimonioImmobiliareStaging] s inner join [CONSUNI].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente i on s.chiaveImportazione=i.chiaveImportazione
	--		-- where chiaveProdottoTerzi IN 
	--		-- (select chiaveProdottoTerzi from [CONSUNI].[ConsulenzaUnica].dbo.PatrimonioTerzi where  idTipoProdotto='IM' AND idImmobileCatasto IS NOT NULL)) keyimport 
	--		--  on keyimport.chiaveClientePB=cli.chiaveClientePB
			
	--		where idTipoProdotto='IM' AND dtfinevalidita='9999-12-31 00:00:00.000'
	--		AND StatoContratto IN ('SEI','AVANZATOBASE','BASE') 
	--		and idImmobileCatasto IS NOT NULL
	--		and rpt.dtUltimoAggiornamento < convert(datetime,'2020-03-01')




	--SELECT 
	--		distinct 
	--		isnull(cli.rete,''), 
	--		isnull(coalesce(cli.codFis, cli.pIva),'') as codfis,
	--		isnull(con.codiceContratto,''),
	--		case 
	--			when (cli.StatoContratto = 'AVANZATOBASE') 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,'2020-02-27') AND
	--		rpt.codFIS=coalesce(cli.codFis,cli.piva) AND chiaveImportazione = (select max(chiaveImportazione) from [CONSUNI].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente rpt2  where rpt2.dtUltimoAggiornamento < convert(datetime,'2020-02-27') AND
	--		rpt2.codFIS=rpt.codFis)),'') AS Evento_Prometeia,
	--		'',
	--		'',
	--		''
	--		from [CONSUNI].[ConsulenzaUnica].dbo.vInfoCliente cli 
	--		inner join [CONSUNI].[ConsulenzaUnica].dbo.v_servizi_aggiuntivi srv on srv.chiaveclientepb = cli.chiaveClientePB  AND srv.chiaveServizioAggiuntivo = 1
	--		inner join [CONSUNI].[ConsulenzaUnica].dbo.Contratto con on cli.chiaveClientePB = con.chiaveClientePB
	--		where cli.codman = ''
	--		and cli.StatoContratto <> 'REVOCASEI'

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[SP_Valorizza_Stati_semaforo_IMM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- flag_stato=1 completato (verde)
-- flag_stato=2 in esecuzione (giallo)
-- flag_stato=3 non lavorato (rosso)

--truncate table C6MartPeriodicoImmobiliare.tab_semaforo

--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_TRIM quad_end,SEI

  --select * from C6MartPeriodicoImmobiliare.tab_semaforo
-- Stored procedure  

-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodicoImmobiliare].[SP_Valorizza_Stati_semaforo_IMM] @param1 varchar(20),@tipo varchar(20)
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 declare 
 @intero  int,
 @semestrale varchar(3),
 @lotto varchar(3),
 @testi_statici varchar(3),
 --@lotto_zero varchar(3),
 @omi varchar(3),
 @richiesta_catasto varchar(3),
 @richiesta_rischio varchar(3),
 @Generazione_Invio_PDF varchar(3),


 --descrizioni
 @desc_semestrale varchar(256),
 @desc_testi_statici varchar(256),
 @desc_lotto varchar(256),
 @desc_omi varchar(256),
 @desc_richiesta_catasto varchar(256),
 @desc_richiesta_rischio varchar(256),
 @desc_Generazione_Invio_PDF varchar(256)


 set @intero='0'
 set @semestrale='1'
 --set @lotto='2'
 set @testi_statici='2'
 set @omi='3'
 set @richiesta_catasto='4'
 set @richiesta_rischio='5'
 --set @adeguatezza='7'
 --set @post_ade='8'
 set @Generazione_Invio_PDF='6'
 

 set @desc_semestrale='Rendicontazioni sugli investimenti per i clienti con contratto di consulenza "IMMOBILIARI". '
 set @desc_testi_statici='Fase dei testi statici.'
 set @desc_lotto='Preparazione delle rendicontazioni in corso.'
 set @desc_omi='Fase di omi per il database di marketing.'
 set @desc_richiesta_catasto='Fase di Richiesta al Catasto'
 set @desc_richiesta_rischio='Fase di Richiesta del Rischio.'
 set @desc_Generazione_Invio_PDF='Generazione e Invio PDF.'
 
 


 --select * from C6MartPeriodicoImmobiliare.tab_semaforo

 --inserimento
 --select * from C6MartPeriodicoImmobiliare.tab_semaforo
 --insert into C6MartPeriodicoImmobiliare.tab_semaforo values
 --avvio_trimestre

 --update C6MartPeriodicoImmobiliare.tab_semaforo
 --set descrizione='Fase di omi per il database di marketing'
 --from C6MartPeriodicoImmobiliare.tab_semaforo
 --where id_milestone=4
if ((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo)=0)
begin
insert into C6MartPeriodicoImmobiliare.tab_semaforo values 
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@semestrale,'SEMESTRALE',@desc_semestrale,'','',3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto_zero,'LOTTO 0','','','',3,@intero,'','',0),
--([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO',@desc_lotto,'','',3,@intero+1,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@testi_statici,'TESTI STATICI',@desc_testi_statici,'','',3,@intero,'','',0),

([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@omi,'OMI',@desc_omi,'','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@richiesta_catasto,'RICHIESTA CATASTO',@desc_richiesta_catasto,'','',3,@intero,'','',0),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@richiesta_rischio,'RICHIESTA RISCHIO',@desc_richiesta_rischio,'','',3,@intero,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
([C6MartPeriodico].[getTrimestre](GETDATE(),0),@tipo,@Generazione_Invio_PDF,'GENERAZIONE E INVIO PDF',@desc_Generazione_Invio_PDF,'','',3,@intero,'','',0)
end

--insert into C6MartPeriodicoImmobiliare.tab_semaforo values 
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@semestrale,'SEMESTRALE',@desc_semestrale,'','',3,@intero,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@lotto_zero,'LOTTO 0','','','',3,@intero,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@testi_statici,'TESTI STATICI',@desc_testi_statici,getdate()+1,getdate()+4,3,@intero,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@lotto,'LOTTO'+' '+ cast(@intero+1 as varchar),@desc_lotto,getdate()+5,getdate()+30,3,@intero+1,getdate()+5,getdate()+30,0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@omi,'OMI',@desc_omi,getdate()+6,getdate()+8,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@richiesta_catasto,'RICHIESTA CATASTO'+' '+ cast(@intero+1 as varchar),@desc_richiesta_catasto,getdate()+6,getdate()+8,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@richiesta_rischio,'RICHIESTA RISCHIO'+' '+ cast(@intero+1 as varchar),@desc_richiesta_rischio,getdate()+9,getdate()+11,3,@intero+1,'','',0),
----([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@adeguatezza,'ADEGUATEZZA'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
----([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@post_ade,'POST_ADE'+' '+ cast(@intero+1 as varchar),'','','',3,@intero+1),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@Generazione_Invio_PDF,'GENERAZIONE E INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_Generazione_Invio_PDF,getdate()+12,getdate()+14,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@certificazione,'CERTIFICAZIONE',@desc_certificazione,getdate()+13,getdate()+17,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@zipping,'ZIPPING'+' '+ cast(@intero+1 as varchar),@desc_zipping,getdate()+18,getdate()+21,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@approval,'APPROVAL',@desc_approval,getdate()+23,getdate()+25,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@invio,'INVIO PDF'+' '+ cast(@intero+1 as varchar),@desc_invio,getdate()+25,getdate()+27,3,@intero+1,'','',0),
--([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,@postalizzazione,'POSTALIZZAZIONE'+' '+ cast(@intero+1 as varchar),@desc_postalizzazione,getdate()+27,getdate()+30,3,@intero+1,'','',0)

if (@param1='SEM_START')
begin
if ((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='SEMESTRALE' and  tipo_reportistica=@tipo and flg_stato=1)>0)
begin
truncate table C6MartPeriodicoImmobiliare.tab_semaforo 
--;throw 51014,'Presente una semestrale conclusa, per continuare fai una truncate su questa tabella',0
end
select @intero= COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='SEMESTRALE' and  tipo_reportistica=@tipo
if(@intero>0)
begin
update C6MartPeriodicoImmobiliare.tab_semaforo
set inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
trim_corrente=[C6MartPeriodico].[getTrimestre](GETDATE(),0),
--fine_milestone=GETDATE()+50,
--fine_lotto=GETDATE()+50,
flg_stato=2
where milestone='SEMESTRALE' and tipo_reportistica=@tipo;
--exec C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM LOTTO_START,@tipo
end
--else
--begin
--insert into C6MartPeriodicoImmobiliare.tab_semaforo 
--values ([C6MartPeriodicoImmobiliare].[getTrimestre](GETDATE(),0),@tipo,'SEMESTRALE','',GETDATE(),GETDATE()+50,2,@intero)
--end
end

--if(@param1='LOTTO_START')
--begin
--if((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='SEMESTRALE' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
--begin
--update C6MartPeriodicoImmobiliare.tab_semaforo
--set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
--inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
--flg_stato=2
----fine_milestone=GETDATE()+4,
----fine_lotto=GETDATE()+4
--from C6MartPeriodicoImmobiliare.tab_semaforo
--where milestone='LOTTO' and tipo_reportistica=@tipo
--end
--else
--begin
--;throw 50003,'Nessuna fase di Semestrale in corso',0
--end
--end

if(@param1='TESTI_START')
begin
if((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='SEMESTRALE' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodicoImmobiliare.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone='TESTI STATICI' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Nessuna fase di Lotto in corso',0
end
end

if(@param1='OMI_START')
begin
if((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='SEMESTRALE' and flg_stato=2 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodicoImmobiliare.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone='OMI' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Nessuna fase di Lotto in corso',0
end
end

if(@param1='CATASTO_START')
begin
if((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='OMI' and flg_stato=1 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodicoImmobiliare.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone='RICHIESTA CATASTO' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Fase di OMI non completata',0
end
end

if(@param1='RISCHIO_START')
begin
if((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='OMI' and flg_stato=1 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodicoImmobiliare.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone='RICHIESTA RISCHIO' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Fase di OMI non completata',0
end
end

if(@param1='ZIPPING_START')
begin
if((select COUNT(*) from C6MartPeriodicoImmobiliare.tab_semaforo where milestone='RICHIESTA RISCHIO' and flg_stato=1 and tipo_reportistica=@tipo)<>0)
begin
update C6MartPeriodicoImmobiliare.tab_semaforo
set inizio_lotto= case when inizio_lotto like '%1900%' then GETDATE() else inizio_lotto end,
inizio_milestone= case when inizio_milestone like '%1900%' then GETDATE() else inizio_milestone end,
flg_stato=2
--fine_milestone=GETDATE()+4,
--fine_lotto=GETDATE()+4
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone='GENERAZIONE E INVIO PDF' and tipo_reportistica=@tipo
end
else
begin
;throw 50003,'Fase di Richiesta non completata',0
end
end

if (@param1='SEM_END')
begin
--select @intero= COUNT(*) from C6MartPeriodico.tab_semaforo where milestone='SEMESTRALE' and  tipo_reportistica=@tipo
--if(@intero>0 and (select flg_stato from C6MartPeriodico.tab_semaforo where milestone='SEMESTRALE' and  tipo_reportistica=@tipo) <>0 )
--begin
--exec C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM lotto_end,IMM
--end
update C6MartPeriodicoImmobiliare.tab_semaforo
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone='SEMESTRALE' and tipo_reportistica=@tipo
end

--if(@param1='LOTTO_END')
--begin
--if ((select count(*) from C6MartPeriodicoImmobiliare.tab_semaforo where inizio_milestone='GENERAZIONE E INVIO PDF' and flg_stato=2)>0)
--begin
--exec C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM zipping_end,IMM
----end
--update C6MartPeriodico.tab_semaforo 
--set fine_milestone=GETDATE(),flg_stato=1
--from C6MartPeriodico.tab_semaforo
--where milestone = 'LOTTO'and tipo_reportistica=@tipo
--end

--if(@param1='ZIPPING_END')
--begin
--update C6MartPeriodico.tab_semaforo 
--set fine_milestone=GETDATE(),flg_stato=1
--from C6MartPeriodico.tab_semaforo
--where milestone = 'GENERAZIONE E INVIO PDF' and tipo_reportistica=@tipo
--end

if(@param1='RISCHIO_END')
begin
update C6MartPeriodicoImmobiliare.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone = 'RICHIESTA RISCHIO' and tipo_reportistica=@tipo
end

if(@param1='CATASTO_END')
begin
update C6MartPeriodicoImmobiliare.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone = 'RICHIESTA CATASTO' and tipo_reportistica=@tipo
end

if(@param1='OMI_END')
begin
update C6MartPeriodicoImmobiliare.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone = 'OMI' and tipo_reportistica=@tipo
end

if(@param1='TEST_END')
begin
update C6MartPeriodicoImmobiliare.tab_semaforo 
set fine_milestone=GETDATE(),flg_stato=1
from C6MartPeriodicoImmobiliare.tab_semaforo
where milestone = 'TESTI STATICI' and tipo_reportistica=@tipo
end




----truncate table C6MartPeriodicoImmobiliare.tab_semaforo 
--select * from C6MartPeriodicoImmobiliare.tab_semaforo order by inizio_milestone desc
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM sem_start,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM testi_start,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM omi_start,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM catasto_start,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM rischio_start,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM zipping_start,IMM

--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM sem_end,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM testi_end,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM omi_end,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM catasto_end,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM rischio_end,IMM
--C6MartPeriodicoImmobiliare.SP_Valorizza_Stati_semaforo_IMM zipping_end,IMM


end
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[start_email_Testi_Statici_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6MartPeriodicoImmobiliare].[start_email_Testi_Statici_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(8,getdate(),'Invio Email Testi Statici Immobiliare')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[start_email_Zipping_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





create procedure [C6MartPeriodicoImmobiliare].[start_email_Zipping_tabellone] as
begin
insert into C6MartPeriodico.selettore values
(9,getdate(),'Invio Email Zipping Immobiliare')

EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[Update_Immobiliare_GestioneZIP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <27.02.2019>
-- Description:	<Aggiornamento Date Report di Immobiliare_GestioneZIP>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[Update_Immobiliare_GestioneZIP]
  @IdZip int ,
  @DataInvio datetime,
  @FlagInvio varchar(1), 

  @Return int OUTPUT
  
WITH EXEC AS CALLER
AS
 
/*
SP Body Comment
*/
 
	BEGIN TRANSACTION
    BEGIN TRY		
    	
    		UPDATE [C6MartPeriodicoImmobiliare].[Immobiliare_GestioneZIP]      
    		SET
     				[DataInvio] = @DataInvio,
            [FlagInvio] = @FlagInvio
             
      	WHERE [C6MartPeriodicoImmobiliare].[Immobiliare_GestioneZIP].[IDZip] = @IdZip

    		UPDATE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF]      
    		SET
     				[DataInvio] = @DataInvio,
            [FlagInvio] = @FlagInvio
             
      	WHERE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF].[IDZip] = @IdZip

        Set @Return=1;

    END TRY
    
	BEGIN CATCH
      IF ERROR_NUMBER()=2601 
      BEGIN
        IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
        Set @Return=-2601;
        
      END
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[UpdateDateReport_Immobiliare_GestionePDF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ==================================================================================
-- Author:		<Ernesto Serfilippi>
-- Create date: <27.02.2019>
-- Description:	<Aggiornamento Date Report di Immobiliare_GestionePDF>
-- ==================================================================================
 
 
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[UpdateDateReport_Immobiliare_GestionePDF]
	@IdReport int ,
  @DataReport datetime,
  @DataReportUpdate datetime,
  @DataZip datetime,
  @DataZipUpdate datetime,
  @DataInvio datetime,
  @DataInvioUpdate datetime,
  @NomeFile varchar(50), 
  @IdZip int ,

  @Return int OUTPUT
  
WITH EXEC AS CALLER
AS
 
/*
SP Body Comment
*/
 
	BEGIN TRANSACTION
    BEGIN TRY		
    	
      IF @IDZip > 0
        BEGIN
    		UPDATE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF]      
    		SET
     				[DataReport] = @DataReport,
      			[DataReportUpdate] = @DataReportUpdate,
     				[DataZip] = @DataZip,
      			[DataZipUpdate] = @DataZipUpdate,
     				[DataInvio] = @DataInvio,
      			[DataInvioUpdate] = @DataInvioUpdate,
            [NomeFile] = @NomeFile,
            [IDZip] = @IdZip
             
      	WHERE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF].[IDReport] = @IdReport
    	  Set @Return=1;
        END
      ELSE
        BEGIN
    		UPDATE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF]      
    		SET
     				[DataReport] = @DataReport,
      			[DataReportUpdate] = @DataReportUpdate,
     				[DataZip] = @DataZip,
      			[DataZipUpdate] = @DataZipUpdate,
     				[DataInvio] = @DataInvio,
      			[DataInvioUpdate] = @DataInvioUpdate,
            [NomeFile] = @NomeFile
             
      	WHERE [C6MartPeriodicoImmobiliare].[Immobiliare_GestionePDF].[IDReport] = @IdReport
    	  Set @Return=1;
        END
    END TRY
    
	BEGIN CATCH
      IF ERROR_NUMBER()=2601 
      BEGIN
        IF @@TRANCOUNT > 0
        ROLLBACK TRANSACTION;
        Set @Return=-2601;
        
      END
     END CATCH
   
    IF @@TRANCOUNT > 0
      COMMIT TRANSACTION;
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[updateRichiesteMonitoraggioCatastoClienteCong]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [C6MartPeriodicoImmobiliare].[updateRichiesteMonitoraggioCatastoClienteCong] 
    @chiaveRichiesta int,
    @rete varchar(1), 
    @codFis varchar(16),
    @rfa decimal(19,7),
    @diversificazione decimal(19,7),
    @var decimal(19,7),
    @dtRiferimento varchar(8)   

AS
BEGIN
declare @exit_status	numeric

  begin transaction
  set @exit_status = 0

  UPDATE CONSUNI.ConsulenzaUnicaFL.dbo.Immobiliare_RichiesteMonitoraggioCatastoCliente
  SET
    rfa = @rfa
    ,diversificazione = @diversificazione
    ,[var] = @var
    ,dtRiferimento = @dtRiferimento
    
  WHERE rete = @rete AND codfis = @codFis AND chiaveRichiesta = @chiaveRichiesta
    
  set @exit_status = @@ROWCOUNT
  commit transaction

END
GO
/****** Object:  StoredProcedure [C6MartPeriodicoImmobiliare].[updateRichiesteMonitoraggioCatastoClienteProd]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [C6MartPeriodicoImmobiliare].[updateRichiesteMonitoraggioCatastoClienteProd] 
    @rete varchar(1), 
    @codFis varchar(16),
    @rfa decimal(19,7),
    @diversificazione decimal(19,7),
    @var decimal(19,7),
    @dtRiferimento varchar(8)   

AS
BEGIN
declare @exit_status	numeric

BEGIN TRY
begin transaction
set @exit_status = 0

UPDATE CONSUNI.ConsulenzaUnicaFL.dbo.Immobiliare_RichiesteMonitoraggioCatastoCliente
SET
  rfa = @rfa
  ,diversificazione = @diversificazione
  ,[var] = @var
  
WHERE rete = @rete AND codfis = @codFis AND dtRiferimento = @dtRiferimento
  
set @exit_status = @@ROWCOUNT
commit transaction

END TRY

BEGIN CATCH
rollback transaction
		set @exit_status = 0

END CATCH	
	return @exit_status

END
GO
/****** Object:  StoredProcedure [C6Staging].[CheckScartiMIFID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Staging].[CheckScartiMIFID]
	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    /*-- Insert statements for procedure here
	DECLARE @iScarti INT

	SELECT @iScarti = count(rete+codiceFiscale)
	FROM C6STAGING.SPB_SCARTI SPB
	WHERE pacchettoSSIS = 'SPB_MIFID'
select @iScarti
	IF @iScarti > 0
		RAISERROR ('Scarti MIFID presenti.', -- Message text.
               16, -- Severity.
               1 -- State.
               );
	*/

	declare @iScarti INT

	select @iscarti = 
		count(*) 
		from 
			c6mart.vContrattiMigrati n 
		left join
			C6STAGING.SPB_MIFID m 
		on	
			n.rete = m.rete and
			n.cod_fiscale = m.codiceFiscale
		where
			m.rete is null
				
	if @iScarti > 0
		RAISERROR ('Scarti MIFID presenti.', -- Message text.
               16, -- Severity.
               1 -- State.
               );


END


GO
/****** Object:  StoredProcedure [C6Staging].[CREA_FIRMA_PROMOTORE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[CREA_FIRMA_PROMOTORE] as
begin
update  [C6Staging].[ADS4WS_PROMOTORI]
set firma = case when rete = 'F' then 'R'+codice
				else  'P'+codice end,

prefisso = case when rete = 'F' then 'R'
				else  'P'end


end

GO
/****** Object:  StoredProcedure [C6Staging].[DecodificaIndicatoriAdeguatezza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6Staging].[DecodificaIndicatoriAdeguatezza]

as

begin

--1. RM - Rischio Mercato
	update a
	set [RM_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.RM_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 1

--2. RC - Rischio Credito
	-- 20180821 CR Rischio Credito adeguato se non si riesce a calcolarlo
		--update a
		--set [RC_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
		--from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		--	inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		--	on a.RC_ADEGUATEZZA_INDICATORE = b.Adeguato
		--where b.Ordine = 2

	update a
	set [RS_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.RS_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 2
	and a.RS_ADEGUATEZZA_INDICATORE in (0, 1)

	update a
	set
		a.RS_ADEGUATEZZA_INDICATORE = 1,
		a.RS_ADEGUATEZZA_DESCRIZIONE = (select b.DescrizioneEsito from [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b where b.Ordine = 2 and b.Adeguato = 1)
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
	where a.RS_ADEGUATEZZA_INDICATORE = -1

	-- FINE 20180821 CR

--3. CE - Concentrazione emittenti
	update a
	set [TH_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.TH_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 3

--4. CM - Complessita
	--update a
	--set [CM_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	--from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
	--	inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
	--	on a.CM_ADEGUATEZZA_INDICATORE = b.Adeguato
	--where b.Ordine = 4

	update a
	set [CM_ADEGUATEZZA_DESCRIZIONE] = (select DescrizioneEsito from [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] where Ordine = 4 and Adeguato = '1')
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
	where a.CM_ADEGUATEZZA_INDICATORE = 1

	update a
	set [CM_ADEGUATEZZA_DESCRIZIONE] = (select DescrizioneEsito from [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] where Ordine = 4 and Adeguato = '-1')
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
	where a.CM_ADEGUATEZZA_INDICATORE = -1

		update a
	set [CM_ADEGUATEZZA_DESCRIZIONE] = (select DescrizioneEsito from [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] where Ordine = 4 and Adeguato = '0A')
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
	where a.CM_ADEGUATEZZA_INDICATORE = 0

--5. CC - Concentrazione prodotti complessi
	update a
	set [CC_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.CC_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 5

--6. FQ - Frequenza delle operazioni
	update a
	set [FQ_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.FQ_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 6

--7. LQ - Liquidità/liquidabilità (Orizzonti temporali degli investimenti)
	update a
	set [CE_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.CE_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 7

		update a
	set [CV_ADEGUATEZZA_DESCRIZIONE] = b.DescrizioneEsito
	from [C6Staging].[VAR_ADEGUATEZZA_INDICATORI] a
		inner join [C6Mart].[TB_S178IndicatoriEsitoAdeguatezza_Note] b
		on a.CV_ADEGUATEZZA_INDICATORE = b.Adeguato
	where b.Ordine = 8

end

GO
/****** Object:  StoredProcedure [C6Staging].[inserisci_promotori_fittizi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Staging].[inserisci_promotori_fittizi] as
begin
insert into [C6Staging].[ADS4WS_PROMOTORI] (rete,codice,prefisso,firma)  
SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM C6Mart.vContrattiPerGenerazioneReport C6
		INNER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
end



GO
/****** Object:  StoredProcedure [C6Staging].[RP_AGGIORNA_SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6Staging].[RP_AGGIORNA_SPB_PROF_RISCHIO]

AS
BEGIN

update C6Staging.SPB_PROF_RISCHIO
set VARTRIMESTRALE=d.varmax
from consuni.consulenzaunica.dbo.dprofilo d
inner join C6Staging.SPB_PROF_RISCHIO s
on d.profilo=s.CODICEPROFILO



END 
GO
/****** Object:  StoredProcedure [C6Staging].[RP_clientiConMigrazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_clientiConMigrazione]
as
begin
truncate table [C6Staging].[RP_V_clienti_contrsei_con_migraz]

INSERT INTO [C6Staging].[RP_V_clienti_contrsei_con_migraz]    --[C6StampeCentralizzate]
           ([chiaveClientePb]
           ,[rete]
           ,[cod_fiscale]
           ,[dtprimaMigrazione])
   
select 
	a.chiaveClientePb,
	b.rete,
	b.cod_fiscale,
	a.dtprimaMigrazione

from

c6staging.RP_MIGRAZ_PIANIFICAZIONE a
join
[C6Mart].[vContratti] b
on a.chiaveClientePb = b.chiaveClientePb


end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_CREA_POSITIONID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- AUTHOR:		<VALERIO COLAIANNI,ANDREA NOBILI>
-- alter DATE:  10/05/2010
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Staging].[RP_CREA_POSITIONID]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	UPDATE    
C6Staging.SPB_CONTR_SINTESI

	SET       
		POSITIONID = 
             [C6STAGING].[RP_INFO_DAPRODOTTOCSACATALOGO] --DBO.INFO_DAPRODOTTOCSACATALOGO
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				--V ISIN per ASU2
				ISNULL(ISIN,''), 
				CODICESOTTOPRODOTTO
				) 
		--END
        + 
			DBO.CREA_POSITIONID
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				'', 
				CODICESOTTOPRODOTTO, 
				CODICECONTRATTO, -- VERIFICARNE LA CORRETTEZZA
				NUMEROPOLIZZA, 
				CONTO,
                RUBRICATO, 
				CUSTODIAGARANZIA, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
				END
				)

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_CREA_POSITIONID' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_CREA_POSITIONID'
		)

END


GO
/****** Object:  StoredProcedure [C6Staging].[RP_CREA_POSITIONID_2011113]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- AUTHOR:		<VALERIO COLAIANNI,ANDREA NOBILI>
-- alter DATE:  10/05/2010
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Staging].[RP_CREA_POSITIONID_2011113]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	UPDATE    
C6Staging.SPB_CONTR_SINTESI

	SET       
		POSITIONID = 
             [C6STAGING].[RP_INFO_DAPRODOTTOCSACATALOGO] --DBO.INFO_DAPRODOTTOCSACATALOGO
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				--V ISIN per ASU2
				ISNULL(ISIN,''), 
				CODICESOTTOPRODOTTO
				) 
		--END
        + 
			DBO.CREA_POSITIONID
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				'', 
				CODICESOTTOPRODOTTO, 
				CODICECONTRATTO, -- VERIFICARNE LA CORRETTEZZA
				NUMEROPOLIZZA, 
				CONTO,
                RUBRICATO, 
				CUSTODIAGARANZIA, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
				END
				)

		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_CREA_POSITIONID' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_CREA_POSITIONID'
		)

END


GO
/****** Object:  StoredProcedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA]
AS
BEGIN
		-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA',
		GETDATE(),
		'Elaborazione Giornaliero'
	)
	
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
		--Inizio intervento Omnia
		--CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--inizio INTERVENTO 'RE' - 20161223 + 'RF' - 20171113
		--CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'') 
		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') THEN ISNULL(CODISIN,'') 
--fine   INTERVENTO 'RE' - 20161223
			 ELSE '' END AS CODISIN,
--FINE INTERVENTO MIGRAZIONE ASU3		
		--Fine intervento Omnia
		CODSOTTOPRODOTTO,
		position_id
INTO #TAB1
FROM C6Staging.RP_CONSULENZA	

UPDATE  #TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (    
				   C6STAGING.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
 
--DECLARE @CNTNULL as int
--SELECT @CNTNULL = COUNT(*) FROM #TAB1 WHERE isnull(position_id,'') = ''
--
--
--IF @CNTNULL = 0

	UPDATE 	C6Staging.RP_CONSULENZA
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF, 
--INIZIO INTERVENTO MIGRAZIONE ASU3
--								'', 
--inizio INTERVENTO 'RE' - 20161223	+ 'RF' - 20171113 						
								--CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'') 
								CASE WHEN C.CODINTERNO in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') THEN ISNULL(c.CODISIN,'') 
--fine    INTERVENTO 'RE' - 20161223 + 'RF' - 20171113
								ELSE '' END,
--FINE INTERVENTO MIGRAZIONE ASU3								
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   C6Staging.RP_CONSULENZA c
			left join #TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
			--Inizio intervento Omnia
--INIZIO INTERVENTO MIGRAZIONE ASU3
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2', 'GP') THEN ISNULL(c.CODISIN,'') ELSE '' END 
--inizio INTERVENTO 'RE' - 20161223	+ 'RF' - 20171113
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB') 
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
--fine   INTERVENTO 'RE' - 20161223	
			THEN ISNULL(c.CODISIN,'') 
			ELSE '' END 
--FINE INTERVENTO MIGRAZIONE ASU3					
			--Fine intervento Omnia
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
  
    
DECLARE @CNT as int
SELECT @CNT = COUNT(*) FROM C6Staging.RP_CONSULENZA WHERE isnull(position_id,'') <> ''

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @CNT
WHERE
	Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'RP_CREA_POSITIONID_CONSULENZA'
	)
	
drop table 	#TAB1	



END



GO
/****** Object:  StoredProcedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA_20161223]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA_20161223]
AS
BEGIN
		-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA',
		GETDATE(),
		'Elaborazione Giornaliero'
	)
	
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
		--Inizio intervento Omnia
		--CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'') 
			 ELSE '' END AS CODISIN,
--FINE INTERVENTO MIGRAZIONE ASU3		
		--Fine intervento Omnia
		CODSOTTOPRODOTTO,
		position_id
INTO #TAB1
FROM C6Staging.RP_CONSULENZA	

UPDATE  #TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (       
				   C6STAGING.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
 
--DECLARE @CNTNULL as int
--SELECT @CNTNULL = COUNT(*) FROM #TAB1 WHERE isnull(position_id,'') = ''
--
--
--IF @CNTNULL = 0

	UPDATE 	C6Staging.RP_CONSULENZA
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF, 
--INIZIO INTERVENTO MIGRAZIONE ASU3
--								'', 
								CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'') 
								ELSE '' END,
--FINE INTERVENTO MIGRAZIONE ASU3								
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   C6Staging.RP_CONSULENZA c
			left join #TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
			--Inizio intervento Omnia
--INIZIO INTERVENTO MIGRAZIONE ASU3
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2', 'GP') THEN ISNULL(c.CODISIN,'') ELSE '' END 
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB') 
			THEN ISNULL(c.CODISIN,'') 
			ELSE '' END 
--FINE INTERVENTO MIGRAZIONE ASU3					
			--Fine intervento Omnia
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
  
    
DECLARE @CNT as int
SELECT @CNT = COUNT(*) FROM C6Staging.RP_CONSULENZA WHERE isnull(position_id,'') <> ''

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @CNT
WHERE
	Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'RP_CREA_POSITIONID_CONSULENZA'
	)
	
drop table 	#TAB1	



END



GO
/****** Object:  StoredProcedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA_20171113_orig]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA_20171113_orig]
AS
BEGIN
		-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA',
		GETDATE(),
		'Elaborazione Giornaliero'
	)
	
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
		--Inizio intervento Omnia
		--CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--inizio INTERVENTO 'RE' - 20161223
		--CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'') 
		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(CODISIN,'') 
--fine   INTERVENTO 'RE' - 20161223
			 ELSE '' END AS CODISIN,
--FINE INTERVENTO MIGRAZIONE ASU3		
		--Fine intervento Omnia
		CODSOTTOPRODOTTO,
		position_id
INTO #TAB1
FROM C6Staging.RP_CONSULENZA	

UPDATE  #TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (       
				   C6STAGING.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
 
--DECLARE @CNTNULL as int
--SELECT @CNTNULL = COUNT(*) FROM #TAB1 WHERE isnull(position_id,'') = ''
--
--
--IF @CNTNULL = 0

	UPDATE 	C6Staging.RP_CONSULENZA
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF, 
--INIZIO INTERVENTO MIGRAZIONE ASU3
--								'', 
--inizio INTERVENTO 'RE' - 20161223									
								--CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'') 
								CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(c.CODISIN,'') 
--fine    INTERVENTO 'RE' - 20161223	
								ELSE '' END,
--FINE INTERVENTO MIGRAZIONE ASU3								
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   C6Staging.RP_CONSULENZA c
			left join #TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
			--Inizio intervento Omnia
--INIZIO INTERVENTO MIGRAZIONE ASU3
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2', 'GP') THEN ISNULL(c.CODISIN,'') ELSE '' END 
--inizio INTERVENTO 'RE' - 20161223	
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB') 
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE') 
--fine   INTERVENTO 'RE' - 20161223	
			THEN ISNULL(c.CODISIN,'') 
			ELSE '' END 
--FINE INTERVENTO MIGRAZIONE ASU3					
			--Fine intervento Omnia
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
  
    
DECLARE @CNT as int
SELECT @CNT = COUNT(*) FROM C6Staging.RP_CONSULENZA WHERE isnull(position_id,'') <> ''

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @CNT
WHERE
	Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'RP_CREA_POSITIONID_CONSULENZA'
	)
	
drop table 	#TAB1	



END



GO
/****** Object:  StoredProcedure [C6Staging].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Questa sp aggiorna il campo 'beneficio' della [PROMETEIA_AGGR] con il valore del nuovo indicatore dalla nuova tabella PROMETEIA_AGGR_IndDiv
CREATE procedure [C6Staging].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE]

AS
BEGIN

update [C6Staging].[PROMETEIA_AGGR_IndDiv]
set indicatore = '0.0' where indicatore = '0'

update [C6Staging].[PROMETEIA_AGGR_IndDiv]
set indicatore = '100.0' where indicatore = '100'

-- FerAcu 20240830
update [C6Staging].[PROMETEIA_AGGR_IndDiv]  
set indicatore = RTRIM(indicatore) + '.00' 
where indicatore not like '%.%'

	--aggiorna il beneficio per il COMPLESSIVO
--UPDATE aggr set aggr.beneficio = CAST(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) AS DECIMAL(12,3))
--con le replace sostituisco i caratteri speciali a fine testo che mandano in errore il cast quando l'indicatore è = 0.0 - CHAR(13) = cr, CHAR(10) = lf 
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6Staging].[PROMETEIA_AGGR] aggr
inner join 
[C6Staging].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale 
where aggr.portafoglio = 'COMPLESSIVO'

--aggiorna il beneficio per il COMPLESSIVO|BF
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6Staging].[PROMETEIA_AGGR] aggr
inner join 
[C6Staging].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_BF' 
where aggr.portafoglio = 'COMPLESSIVO|BF'

--aggiorna il beneficio per il COMPLESSIVO|TERZI
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6Staging].[PROMETEIA_AGGR] aggr
inner join 
[C6Staging].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_TERZI' 
where aggr.portafoglio = 'COMPLESSIVO|TERZI'




END 
GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_anagrafica_promotori]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_anagrafica_promotori] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_anagrafica_promotori',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_anagrafica_promotori

	insert into c6staging.RP_anagrafica_promotori

	--select * into c6staging.RP_anagrafica_promotori from [CONSUNI].ConsulenzaUnica.dbo.anagrafica_promotori
	select * from [CONSUNI].ConsulenzaUnica.dbo.anagrafica_promotori

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_anagrafica_promotori' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_anagrafica_promotori'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_AnAlberatura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_AnAlberatura]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AnAlberatura',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_AnAlberatura

	insert into c6staging.RP_AnAlberatura (
	Alberatura,
	Livello1,
	Livello2,
	Livello3,
	Livello4,
	Livello5
)
	select
	Alberatura,
	Livello1,
	Livello2,
	Livello3,
	Livello4,
	Livello5
	
	from [CONSUNI].CatalogoProdotti.dbo.AnAlberatura
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AnAlberatura' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AnAlberatura'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_AnEmittente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_AnEmittente] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AnEmittente',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_AnEmittente

	insert into c6staging.RP_AnEmittente (
	 [Emittente]
      ,[Descrizione] )

	select 
	
	 [Emittente]
     ,[Descrizione]
	
	
	
	  from [CONSUNI].CatalogoProdotti.dbo.AnEmittente
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AnEmittente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AnEmittente'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_AssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_AssetClass]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AssetClass',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_AssetClass

	insert into c6staging.RP_AssetClass (
	Asset,
	Madre,
	Livello,
	Descrizione,
	codicergb,
	isresidual )
	
	select 
	Asset,
	Madre,
	Livello,
	Descrizione,
	codicergb,
	isresidual
	
	
	
	from [CONSUNI].[CatalogoProdotti].dbo.AssetClass
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AssetClass' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AssetClass'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_CatalogoProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_ST_CatalogoProdotti]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione giornaliera'
	)
--drop table c6staging.RP_CatalogoProdotti
	truncate table c6staging.RP_CatalogoProdotti

INSERT INTO [C6Staging].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           , [TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,[DESCR_SGR]
		   ,[Dossier])
   	select cat.[ChiaveProdotto]
           ,cat.[CodSottoprodotto]
           ,cat.[CodInterno]
           ,cat.[CodMaf]
           ,cat.[CodAdeguatezza]
           ,cat.[CodIsin]
           ,cat.[TipoVersamento]
           ,cat.[RischioPrSc]
           ,cat.[StatoProdotto]
           ,cat.[TipoPolizza]
           ,cat.[NomeProdotto]
           ,cat.[Visibilita]
           ,cat.[PrezzoInEuro]
           ,cat.[Alberatura]
           ,cat.[DtScadenza]
           ,cat.[Categoria]
           ,cat.[Istituto]
           ,cat.[Piazza]
           ,cat.[PrezzoInValuta]
           ,cat.[PrezzoValuta]
           ,cat.[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--         ,[TipoProdotto]
		   ,CASE WHEN cat.[TipoProdotto] = 'ASU3' then 'ASU1' else cat.[TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,cat.[RatingObbligazioni]
           ,cat.[RischioMinimo]
           ,cat.[CapRisparmio]
           ,cat.[CapMinimo]
           ,cat.[CapMinimoValuta]
           ,cat.[CapMinSucc]
           ,cat.[CapMinSuccValuta]
           ,cat.[MinRispContr]
           ,cat.[MinRispContrValuta]
           ,cat.[SuccRispContr]
           ,cat.[SuccRispContrValuta]
           ,cat.[MinComm]
           ,cat.[MinCommValuta]
           ,cat.[DelegaGestionale]
           ,cat.[TipologiaPerPick]
           ,cat.[RischioPrezzo]
           ,cat.[RegimeFiscale]
           ,cat.[Quotato]
           ,cat.[ClasseDiPrezzo]
           ,cat.[Lineefinacc]
           ,cat.[DurataContrattuale]
           ,cat.[RiscFinFaseAcc]
           ,cat.[OpzRendVital]
           ,cat.[MetaA]
           ,cat.[MetaB]
           ,cat.[MetaC]
           ,cat.[DtRifPrezzo]
           ,cat.[CodTipoContratto]
           ,cat.[PrezzoNetto]
           ,cat.[PrezzoNettoValuta]
           ,cat.[DtPrezzoNetto]
           ,cat.[CodBloomberg]
           ,cat.[DenomUnitLink]
           ,cat.[DtInizioValidita]
           ,cat.[Negoziabilita]
           ,cat.[TassoTecnico]
           ,cat.[TassoTecnicoValuta]
           ,cat.[CollSkandia]
           ,cat.[CodAssetSatellite]
           ,cat.[Mercato]
           ,cat.[AzOb]
           ,cat.[Complessita]
           ,cat.[Emittente]
           ,cat.[GaranziaDemografica]
           ,cat.[SocietaDiGestione]
           ,cat.[IndPrz]
           ,cat.[Differimento]
           ,cat.[DtPrezzo]
           ,cat.[TipoObbligazione]
           ,cat.[TaglioMinimo]
           ,cat.[IsAttivoRc]
           ,cat.[RischioCredito]
           ,cat.[Copertura]
           ,cat.[VarP]
           ,cat.[Diversificazione]
           ,cat.[FlagCoreSatellite]
           ,cat.[PerimetroCoreSatellite]
           ,cat.[FondoCore] 
		   ,an.nomeCompagnia
		   ,case when cat.[TipoProdotto] = 'DT' then 'DT' else '' end as Dossier
	--into [C6Staging].[RP_CatalogoProdotti]
	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti cat
	 LEFT JOIN
			 CONSUNI.CatalogoProdotti.dbo.AnCompagnia an ON cat.SocietaDiGestione=an.SocietaDiGestione
	--where  chiaveProdotto not in (240922,240923)
	
	

	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE c6staging.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Cliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_ST_Cliente]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Cliente',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Cliente

	--insert into c6staging.RP_Cliente
	----select * into c6staging.RP_Cliente from CONSUNI.ConsulenzaUnica.dbo.Cliente
	--select chiaveCliente
 --     ,codFis
 --     ,pIva
 --     ,codMan
 --     ,nome
 --     ,SUBSTRING(cognome, 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH
 --     ,tipologia
 --     ,dtNascita
 --     ,indirizzo
 --     ,numCivico
 --     ,citta
 --     ,cap
 --     ,nazione
 --     ,idQuestionario
 --     ,dtQuestionario
 --     ,dtScadQuest
 --     ,profilo
 --     ,frequenza
 --     ,rendicSemestrale
 --     ,codStatoCivile
 --     ,sesso
 --     ,codTitoloStudio
 --     ,flagCanOnLine
 --     ,numFigli
 --     ,codProvNasc
 --     ,codComNasc
 --     ,codNazNasc
 --     ,fonte
 --     ,pinCode
 --     ,cittadinanza
 --     ,provincia  from CONSUNI.ConsulenzaUnica.dbo.Cliente
 
 /* NUOVA PER SEMPLIFICAZIONE  */
 
 insert into c6staging.RP_Cliente
 select 
	   cli.chiaveCliente
      ,codFis
      ,pIva
      ,codMan
      ,nome
      ,SUBSTRING(cognome, 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH
      ,tipologia  --CHIEDERE AD ALESSIA  SU CLIENTEPB
      ,dtNascita
      ,indirizzo
      ,numCivico
      ,c.NomeComune as citta	
      ,cap
      ,n.descrizioneNazione as nazione
      ,idQuestionario
      ,null--,dtQuestionario
      ,null -- ,dtScadQuest
      ,profilo
      ,cli.frequenza
      ,rendicSemestrale
      ,codStatoCivile
      ,genere as sesso
      ,codTitoloStudio
      ,flagCanOnLine
      ,numFigli
      ,codProvNasc
      ,codComNasc
      ,codNazNasc
      ,fonte
      ,pinCode
      ,cli.cittadinanza
      ,null as provincia  
	 from CONSUNI.ConsulenzaUnica.dbo.Cliente cli
      -- Modifica del 14/6/2017 per evitare di caricare sulla tabella cliente dei cf duplicati che non hanno riferimenti sulla clientePB
	     --LEFT JOIN CONSUNI.ConsulenzaUnica.dbo.ClientePB clipb
		 INNER JOIN CONSUNI.ConsulenzaUnica.dbo.ClientePB clipb
		 -- fine Modifica del 14/6/2017 
      on clipb.chiavecliente = cli.chiavecliente
	  left join CONSUNI.ConsulenzaUnica.dbo.DComune c
	  on c.codcomune = cli.codcomRes
	  left join CONSUNI.ConsulenzaUnica.dbo.Dnazione n
	  on n.codNazione = cli.CodNazRes 
     

 
 
 
 
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Cliente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Cliente'
		)
	
END



GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Cliente_20170614]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_ST_Cliente_20170614]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Cliente',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Cliente

	--insert into c6staging.RP_Cliente
	----select * into c6staging.RP_Cliente from CONSUNI.ConsulenzaUnica.dbo.Cliente
	--select chiaveCliente
 --     ,codFis
 --     ,pIva
 --     ,codMan
 --     ,nome
 --     ,SUBSTRING(cognome, 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH
 --     ,tipologia
 --     ,dtNascita
 --     ,indirizzo
 --     ,numCivico
 --     ,citta
 --     ,cap
 --     ,nazione
 --     ,idQuestionario
 --     ,dtQuestionario
 --     ,dtScadQuest
 --     ,profilo
 --     ,frequenza
 --     ,rendicSemestrale
 --     ,codStatoCivile
 --     ,sesso
 --     ,codTitoloStudio
 --     ,flagCanOnLine
 --     ,numFigli
 --     ,codProvNasc
 --     ,codComNasc
 --     ,codNazNasc
 --     ,fonte
 --     ,pinCode
 --     ,cittadinanza
 --     ,provincia  from CONSUNI.ConsulenzaUnica.dbo.Cliente
 
 /* NUOVA PER SEMPLIFICAZIONE  */
 
 insert into c6staging.RP_Cliente
 select 
	   cli.chiaveCliente
      ,codFis
      ,pIva
      ,codMan
      ,nome
      ,SUBSTRING(cognome, 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH
      ,tipologia  --CHIEDERE AD ALESSIA  SU CLIENTEPB
      ,dtNascita
      ,indirizzo
      ,numCivico
      ,c.NomeComune as citta	
      ,cap
      ,n.descrizioneNazione as nazione
      ,idQuestionario
      ,null--,dtQuestionario
      ,null -- ,dtScadQuest
      ,profilo
      ,cli.frequenza
      ,rendicSemestrale
      ,codStatoCivile
      ,genere as sesso
      ,codTitoloStudio
      ,flagCanOnLine
      ,numFigli
      ,codProvNasc
      ,codComNasc
      ,codNazNasc
      ,fonte
      ,pinCode
      ,cli.cittadinanza
      ,null as provincia  
	 from CONSUNI.ConsulenzaUnica.dbo.Cliente cli
      LEFT JOIN CONSUNI.ConsulenzaUnica.dbo.ClientePB clipb
      on clipb.chiavecliente = cli.chiavecliente
	  left join CONSUNI.ConsulenzaUnica.dbo.DComune c
	  on c.codcomune = cli.codcomRes
	  left join CONSUNI.ConsulenzaUnica.dbo.Dnazione n
	  on n.codNazione = cli.CodNazRes 
     

 
 
 
 
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Cliente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Cliente'
		)
	
END



GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_ClientePB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_ClientePB]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ClientePB',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_ClientePB

	insert into c6staging.RP_ClientePB (
	chiaveClientePB,
	chiaveCliente,
	chiavePB,
	idQuestionario,
	profilo,
	frequenza,
	pirModAuto,
	fonte,
	tipologia,
	pirModModif )
	
	select 
	chiaveClientePB,
	chiaveCliente,
	chiavePB,
	idQuestionario,
	profilo,
	frequenza,
	null,
	null,
	tipologia,
	null 
	
	from [CONSUNI].ConsulenzaUnica.dbo.ClientePB
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ClientePB' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ClientePB'
		)
	
END


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettaglioOperazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_DettaglioOperazione] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettaglioOperazione',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettaglioOperazione
	--drop table c6staging.RP_DettaglioOperazione
	insert into c6staging.RP_DettaglioOperazione
	--select * into c6staging.RP_DettaglioOperazione from [CONSUNI].[ConsulenzaUnica].dbo.DettaglioOperazione
	select  [chiaveProposta]
      ,[codTipoOperazione]
      ,[chiavePosizionePtf]
      ,[chiavePosizionePro]
      ,[chiaveContratto]
      ,[ctv]
      ,[ptfIniziale]
      ,[quantitaNominale]
      ,[ctvNonRappresentabile]
      ,[investi]
      ,[disinvesti]
      ,[rischioCredito]
      ,[rischioMercato]
      ,[copertura]
      ,[percOperazione]
      ,[gestPO]
      ,[relOperazione]
      ,[opEseguita]
      ,[posRiallocata]
      ,[nomeProgettoProp]
      ,[areaProp]
      ,[isAttivoRC]
      from [CONSUNI].[ConsulenzaUnica].dbo.DettaglioOperazione
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettaglioOperazione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettaglioOperazione'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettaglioPosizionePortafoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_DettaglioPosizionePortafoglio] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettaglioPosizionePortafoglio',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettaglioPosizionePortafoglio

	insert into c6staging.RP_DettaglioPosizionePortafoglio (
	  [chiavePosizionePtf]
	   ,[ctv]
      ,[copertura]
      ,[ctvNonAllocabile]
      ,[quantitaNominale]
      ,[partitaViaggiante]
      ,[ctvOut]
      ,[ctvIni]
      ,[dtSaldo]
           )
	
	select 
	[chiavePosizionePtf]
    ,[ctv]
      ,[copertura]
      ,[ctvNonAllocabile]
      ,[quantitaNominale]
      ,[partitaViaggiante]
      ,[ctvOut]
      ,[ctvIni]
      ,[dtSaldo] 
      
      from [CONSUNI].[ConsulenzaUnica].dbo.DettaglioPosizionePortafoglio
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettaglioPosizionePortafoglio' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettaglioPosizionePortafoglio'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettAltriProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_DettAltriProdotti] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettAltriProdotti',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettAltriProdotti


/* 11/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.
*/
	insert into c6staging.RP_DettAltriProdotti
	--select * into c6staging.RP_DettAltriProdotti from [CONSUNI].[ConsulenzaUnica].dbo.DettAltriProdotti
	--select * from [CONSUNI].[ConsulenzaUnica].dbo.DettAltriProdotti
	select  [chiaveProdottoTerzi],
	[idTipoExtra],
	[descrizione],
	NULL,
	[valoreStimato],
	NULL,
	NULL,
	NULL,
	[flagAssicurativo],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL
	
	from [CONSUNI].[ConsulenzaUnica].dbo.DettAltriProdotti
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettAltriProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettAltriProdotti'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettImmobiliare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_DettImmobiliare] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettImmobiliare',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettImmobiliare
	--drop table c6staging.RP_DettImmobiliare
	
		/* 08/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati. 
	Sostituzione del campo valore immobile con valoreimmobiletotale per l'evolutiva patrimonio immobiliare.
*/
	insert into c6staging.RP_DettImmobiliare
	
	--select *  
	--into c6staging.RP_DettImmobiliare
	select
	[chiaveProdottoTerzi],
	[descrizione],
	[codProvincia],
	[provincia],
	[codComune],
	[comune],
	[codZona],
	[zona],
	[superficie],
	NULL,
	NULL,
	NULL,
	--[valoreImmobile],
	[valoreImmobileTotale],
	NULL,
	[renditaAnnua],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	[codTipologia],
	[tipologia] 
	--into c6staging.RP_DettImmobiliare
	from [CONSUNI].[ConsulenzaUnica].dbo.DettImmobiliare
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettImmobiliare' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettImmobiliare'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettImmobiliare_20190107_ProQuota]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_ST_DettImmobiliare_20190107_ProQuota] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettImmobiliare',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettImmobiliare_20190107_ProQuota
	--drop table c6staging.RP_DettImmobiliare
	
		/* 08/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati. 
	Sostituzione del campo valore immobile con valoreimmobiletotale per l'evolutiva patrimonio immobiliare.
*/
	insert into c6staging.RP_DettImmobiliare_20190107_ProQuota
	
	--select *  
	--into c6staging.RP_DettImmobiliare
	select
	[chiaveProdottoTerzi],
	[descrizione],
	[codProvincia],
	[provincia],
	[codComune],
	[comune],
	[codZona],
	[zona],
	[superficie],
	NULL,
	NULL,
	NULL,
	--[valoreImmobile],
	[valoreImmobileTotale],
	NULL,
	[renditaAnnua],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	[codTipologia],
	[tipologia],

	[valoreImmobile],
	[TipologiaDiritto],
	[QuotaProprieta]
	--into c6staging.RP_DettImmobiliare
from [CONSUNI].[ConsulenzaUnica].dbo.DettImmobiliare
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettImmobiliare' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettImmobiliare'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettPatrAziendale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_DettPatrAziendale] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettPatrAziendale',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettPatrAziendale

	insert into c6staging.RP_DettPatrAziendale
/* 11/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.
*/

	--select *  from [CONSUNI].[ConsulenzaUnica].dbo.DettPatrAziendale
	select [chiaveProdottoTerzi],
	NULL,
	[denominazione],
	[codTipoCompagnia],
	[patrimonio],
	NULL,
	NULL,
	NULL,
	[idTipoAzienda],
	NULL,
	NULL,
	[numQuote],
	[valoreStimato],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL
	
	from [CONSUNI].[ConsulenzaUnica].dbo.DettPatrAziendale
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettPatrAziendale' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettPatrAziendale'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_DettProdottiTerzi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_DettProdottiTerzi]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettProdottiTerzi',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_DettProdottiTerzi

--drop table c6staging.RP_DettProdottiTerzi
--select * into c6staging.RP_DettProdottiTerzi from [CONSUNI].[ConsulenzaUnica].dbo.DettProdottiTerzi
	
	insert into c6staging.RP_DettProdottiTerzi
	select
		[chiaveProdottoTerzi]
      ,[idIntermediario]
      ,[alberatura]
      ,[nomeIntermediario]
      ,[dtInizioInvest]
      ,[totVersato]
      ,[totPrelevato]
      ,[valutaTotPrelevato]
      ,[chiaveProdotto]
      ,[numQuote]
      ,[divQuoteProd]
      ,[dtSottoscrizione]
      ,[valutaPremioVers]
      ,[tipoPolizza]
      ,[tipoVersamento]
      ,[tipoFormaPensionistica]
      ,[capitaleInvestito]
      ,[valutaCapInvestito]
      ,[contoPrincipale]
      ,[addebitoUtenze]
      ,[accreditoStipPens]
      ,[cartaCredito]
      ,[addebitoMutuo]
      ,[isin]
      ,[lineaFinanziaria]
      ,[fabbisognoPrev]
      ,[dtDecorrenza]
      ,[modalitaUso]
      ,[ctvUltimaPrestNota]
      ,[dtUltimaPrestNota]
      ,[flgPrestazioneScad]
      ,[dtTermineVers]
      ,[dtUltimoPremioNoto]
      ,[nomeCompagnia]
      ,[valutaCtvUltPrestNota]
	from [CONSUNI].[ConsulenzaUnica].dbo.DettProdottiTerzi
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettProdottiTerzi' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettProdottiTerzi'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_GradoParentela]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_GradoParentela]
as

begin

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_GradoParentela',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_GradoParentela

	insert into c6staging.RP_GradoParentela
	--select * into c6staging.RP_GradoParentela from [CONSUNI].[ConsulenzaUnica].dbo.GradoParentela
	select * from [CONSUNI].[ConsulenzaUnica].dbo.GradoParentela
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_GradoParentela' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_GradoParentela'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Mappatura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_Mappatura] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Mappatura',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Mappatura

	insert into c6staging.RP_Mappatura

	select *  from [CONSUNI].CatalogoProdotti.dbo.Mappatura
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Mappatura' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Mappatura'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_MappaturaPT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_MappaturaPT] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_MappaturaPT',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_MappaturaPT

	insert into c6staging.RP_MappaturaPT
	--select * into c6staging.RP_MappaturaPT from [CONSUNI].[ConsulenzaUnica].dbo.MappaturaPT
	select * from [CONSUNI].[ConsulenzaUnica].dbo.MappaturaPT
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_MappaturaPT' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_MappaturaPT'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Migraz_Pianificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_Migraz_Pianificazione] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Pianificazione',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Migraz_Pianificazione

	insert into c6staging.RP_Migraz_Pianificazione(
		chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,token
		,lineaself
	)
	    SELECT
		chiaveConsulenza
		,pian.chiaveClientePB
		,pian.dtAggiornamento
		,null as risorseFinanziarieBF
		,null as risorseFinanziarieTerzi
		,null as contoCorrente
		,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
			or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioCredito
				
		,null as rischioMercato
		,null as diversificazione
		,coperturaRisAll as copertura
		,null as isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,tok.value as Token
		,null AS lineaself

FROM [CONSUNI].[ConsulenzaUnica].dbo.Pianificazione pian
left join [CONSUNI].[consulenzaUnica].dbo.token tok
on pian.chiaveToken = tok.chiavetoken
inner join [CONSUNI].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
--where ev.flagPianificazione = 0
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Pianificazione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Pianificazione'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Migraz_Posizioni]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_Migraz_Posizioni] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Posizioni',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Migraz_Posizioni

	insert into c6staging.RP_Migraz_Posizioni

select 
chiavePosizionePtf , 
chiaveProgetto  , 
chiaveProdotto  , 
dtInizioValidita, 
'99991231' as dtFineValidita, 
conto           , 
rubricato       , 
codConf         , 
numPolizza      , 
custGar         , 
codAbi          , 
termId          , 
anno            , 
prog            , 
null as ctv              
 from [CONSUNI].[ConsulenzaUnica].dbo.PosizioniPortafoglio
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Posizioni' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Posizioni'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Migraz_Progetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_Migraz_Progetto] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Progetto',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Migraz_Progetto

	insert into c6staging.RP_Migraz_Progetto (
	chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,varProgetto
      ,coperturaProgetto
      ,ctvProgetto
      ,chiaveProgettoMod )
      

	select 
	prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto   --- SETTATO A NULL 16/09
      ,null as dtCreazione
      ,null as varProgetto
      ,coperturaProgetto
      ,null as ctvProgetto
      ,propirMod.chiaveProgettoMod

	from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Progetto'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_NobPrez]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE    procedure [C6Staging].[RP_ST_NobPrez] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_NobPrez',
		GETDATE(),
		'Elaborazione giornaliera'
	)
truncate table C6Staging.RP_NobPrez 
  
INSERT INTO [C6Staging].[RP_NobPrez]
           ([CHIAVECLIENTEPB]
           ,[RETE]
           ,[COD_AGENTE]
           ,[CODFIS]
           ,[PIVA]
           ,[CODMAN]
           ,[CODCONF]
           ,[CODCONF_ES]
           ,[DOSSIER]
           ,[DTINI]
           ,[DTFIN]
           ,[CC]
           ,[DT_AGGIORNAMENTO]
		   ,[DT_FIRMASEI]
		   ,[DTEFFINI]
		   ,[DTEFFFIN]
		   )
  
SELECT p.[CHIAVECLIENTEPB]
      ,p.[RETE]
      ,p.[COD_AGENTE]
      ,p.[CODFIS]
      ,p.[PIVA]
      ,p.[CODMAN]
      ,p.[CODCONF]
      ,p.[CODCONF_ES]
      ,case when isnull(p.[DOSSIER],'')='' then '' else 'DT' end
      ,p.[DTINI]
      ,p.[DTFIN]
      ,p.[CC]
      ,p.[DT_AGGIORNAMENTO]
	  ,CONVERT(varchar(8), v.dtfirmaSEI, 112) as DT_FirmaSei
	  ,p.[DTEFFINI]	
	  ,p.[DTEFFFIN]
 from [Consuni].[ConsulenzaUnica].[dbo].[PRAM_NOBPREZ] p
	left join [Consuni].[ConsulenzaUnica].[dbo].[vinfocliente] v
	on p.chiaveclientePB=v.chiaveclientePB
	where CONVERT(varchar(8), v.dtfirmaSEI, 112) between p.DTEFFINI and p.DTEFFFIN
	--inizio fix: (Luca di Chiara)
	--viene inserita quest'ulteriore condizione perchè il periodo in cui i prodotti devono essere esclusi dal prezziario è indicato dai campi DTEFFINI e DTEFFFIN
	--fix eseguita a seguito al ticket TCK-3743659-W4C0T6 per cui un cliente non si attivava perchè venivano erroneamente scartati dal conteggio dell'rfa
	--dei prodotti che solo temporaneamente erano stati esclusi dalla base prezzabile
	and  CONVERT(varchar(8), getdate(), 112) between p.DTEFFINI and p.DTEFFFIN
	--fine fix
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_NobPrez' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_NobPrez'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Parentela]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_Parentela]
as

begin

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Parentela',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Parentela

--	insert into c6staging.RP_Parentela
--	--select * into c6staging.RP_Parentela from [CONSUNI].[consulenzaEvoluta].dbo.Parentela
--		select chiaveClientePB1,
--chiaveClientePB2,
--idParentela     ,
--dtMatrimonio    ,
--aCarico         ,
--dtCensimento    ,
--dtFine           
-- from [CONSUNI].[consulenzaEvoluta].dbo.Parentela
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Parentela' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Parentela'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_PatrimonioTerzi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_PatrimonioTerzi] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PatrimonioTerzi',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_PatrimonioTerzi

--drop table c6staging.RP_PatrimonioTerzi
--select * into c6staging.RP_PatrimonioTerzi from [CONSUNI].[ConsulenzaUnica].dbo.PatrimonioTerzi
/*  11/05/2015FCianfa e LM: aggiunta della where condition e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.
*/
	insert into c6staging.RP_PatrimonioTerzi
		select chiaveProdottoTerzi  ,    
chiaveClientePB      ,    
idTipoProdotto       ,    
nomeProdotto         ,
NULL                 ,     
valutaCtv            ,    
ctv                  ,   
NULL                 ,         
dataCtv              ,    
prezzoMedioCarico    ,    
tipoProd             ,    
dtFine               ,    
divisa               ,    
ultimoPrezzo         
from [CONSUNI].[ConsulenzaUnica].dbo.PatrimonioTerzi
where dtFineValidita >getdate() 
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PatrimonioTerzi' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PatrimonioTerzi'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Pianificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6Staging].[RP_ST_Pianificazione] as

begin


declare @diff_giorni as datetime
declare @data_diff as int

set @diff_giorni = (SELECT MAX(dtInizioValidita) From CONSUNI.ConsulenzaUnica.DBO.Token)

set @data_diff = (SELECT DATEDIFF(day, @diff_giorni,getdate())+1)
 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Pianificazione',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Pianificazione

	insert into c6staging.RP_Pianificazione (
		chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,token
		,varRisorseAllocate
		,coperturaRisorseAllocate
		,lineaself
		)
select chiaveConsulenza
,pian.chiaveClientePB
,pian.dtAggiornamento as dtUltimoAggiornamento
,Null as risorseFinanziarieBF
,Null as risorseFinanziarieTerzi
,Null as contoCorrente
,null as rischioCredito
,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
--rischioCreditoDecodificatoRFA as rischioCredito
,coperturaRFA as diversificazione
,coperturaRisAll as copertura
,null as isAttivoRC
,partiteViaggianti
,dtPrimaMigrazione
,dtPianificazioneOrizzontale
,dtPianificazioneVerticale
,tok.value as Token
,null as varRisorseAllocate
,coperturaRisorseAllocate
,null AS lineaself
-----------------------> MODIFICA DEL 28/11/2016 SU INDICAZIONE DI ALESSIA PER UNA CORRETTA JOIN
--FROM [CONSUNI].[consulenzaUnica].dbo.Pianificazione pian
--inner join [CONSUNI].[consulenzaUnica].dbo.token tok
--on pian.chiaveToken = tok.chiavetoken
--inner join [CONSUNI].[ConsulenzaUnica].dbo.eventiCliente ev
FROM [CONSUNI].[consulenzaUnica].dbo.Pianificazione pian
inner join [CONSUNI].[consulenzaUnica].dbo.Clientepb clipb
on pian.chiaveclientepb = clipb.chiaveclientepb
inner join [CONSUNI].[consulenzaUnica].dbo.token tok
on clipb.chiaveToken = tok.chiavetoken
inner join [CONSUNI].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
and CONVERT(VARCHAR,DATEADD(d, @data_diff,CONVERT(DATETIME,tok.dtiniziovalidita, 112) ),112)= CONVERT(VARCHAR,DATEADD(d, 1,CONVERT(DATETIME,getdate(), 112) ),112)

					
/* 6/9/2016 Condizione non più necessaria nella nuova CU: il significato di pianificazione è mutato */
--where ev.flagPianificazione = 1

	

	
/*  POPOLO RISORSE FINANZIARIE BF   */


SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	

	UPDATE  C6StagingPeriodico.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodico.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB








	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Pianificazione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Pianificazione'
		)
	
end





GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Pianificazione_20161128_ORI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6Staging].[RP_ST_Pianificazione_20161128_ORI] as

begin

 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Pianificazione',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Pianificazione

	insert into c6staging.RP_Pianificazione (
		chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,token
		,varRisorseAllocate
		,coperturaRisorseAllocate
		,lineaself
		)
		

	SELECT
	chiaveConsulenza
		,pian.chiaveClientePB
		,pian.dtAggiornamento as dtUltimoAggiornamento
		,Null as risorseFinanziarieBF
		,Null as risorseFinanziarieTerzi
		,Null as contoCorrente
		,null as rischioCredito
		,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
			or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
				 --rischioCreditoDecodificatoRFA as rischioCredito
		,coperturaRFA as diversificazione
		,coperturaRisAll as copertura
		,null as isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,tok.value as Token
		,null as varRisorseAllocate
		,coperturaRisorseAllocate
		,null AS lineaself
FROM [CONSUNI].[consulenzaUnica].dbo.Pianificazione pian
inner join [CONSUNI].[consulenzaUnica].dbo.token tok
on pian.chiaveToken = tok.chiavetoken
inner join [CONSUNI].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
/* 6/9/2016 Condizione non più necessaria nella nuova CU: il significato di pianificazione è mutato */
--where ev.flagPianificazione = 1

	

	
/*  POPOLO RISORSE FINANZIARIE BF   */


SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	

	UPDATE  C6StagingPeriodico.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodico.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB








	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Pianificazione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Pianificazione'
		)
	
end





GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_PosizioniPortafoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_PosizioniPortafoglio]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PosizioniPortafoglio',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_PosizioniPortafoglio

	insert into c6staging.RP_PosizioniPortafoglio

	select
		[chiavePosizionePtf]
      ,[chiaveProgetto]
      ,[dtInizioValidita]
      ,'99991231' as[dtFineValidita]
      ,[chiaveProdotto]
      ,[conto]
      ,[rubricato]
      ,[codConf]
      ,[numPolizza]
      ,[custGar]
      ,[codAbi]
      ,[termId]
      ,[anno]
      ,[prog]
	from [CONSUNI].[ConsulenzaUnica].dbo.PosizioniPortafoglio
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PosizioniPortafoglio' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PosizioniPortafoglio'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_PosizioniProposta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_PosizioniProposta] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PosizioniProposta',
		GETDATE(),
		'Elaborazione giornaliera'
	)
          
	truncate table c6staging.RP_PosizioniProposta

	insert into c6staging.RP_PosizioniProposta

	SELECT [chiavePosizionePro]
      ,[chiaveProgetto]
      ,[chiaveProdotto]
      ,[conto]
      ,[rubricato]
      ,[codConf]
      ,[numPolizza]
      ,[custGar]
      ,[codAbi]
      ,[termId]
      ,[anno]
      ,[prog]  from [CONSUNI].[ConsulenzaUnica].dbo.PosizioniProposta
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PosizioniProposta' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PosizioniProposta'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_ProgettiPiramideModello]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_ProgettiPiramideModello] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	
	--INSERT INTO C6MART.TEST_QUALITY	
	
	--SELECT DISTINCT	 
	--	d.rete,	
	--	case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
	--		 when (isnull(codfis,'') <> '') then codfis 	
	--		 else c.piva
	--	end as Cod_fiscale,   
	--	'ProgettiPiramideModello AREE DUPLICATE' AS MOTIVO	 
	--FROM [CONSUNI].[consulenzaUnica].dbo.Contratto a
	--JOIN [CONSUNI].[consulenzaUnica].dbo.ClientePB b 
	--	ON b.chiaveClientePB = a.chiaveClientePB 
	--	AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	--JOIN [CONSUNI].[consulenzaUnica].dbo.Cliente c 
	--	ON b.chiaveCliente = c.chiaveCliente 
	--JOIN [CONSUNI].[consulenzaUnica].dbo.PromotoreBancario d 
	--	ON b.chiavePB = d.chiavePB
	--WHERE
	--	A.chiaveclientepb in ( 
	--	select distinct chiaveclientepb 
	--	FROM 
	--	(
	--	SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
	--	[CONSUNI].[consulenzaUnica].dbo.ProgettiPiramideModello
	--	where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
	--	group by chiaveclientepb,area,tipoprogetto
	--	having COUNT(*)<>1 
	--	) t
	--)  
	--drop table c6staging.RP_ProgettiPiramideModello
	
	truncate table c6staging.RP_ProgettiPiramideModello

	insert into c6staging.RP_ProgettiPiramideModello

	select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
      ,am.area
      ,percentualeProgetto
      ,null as tipoProgetto
      ,nomeProgetto
      ,isnull(orizzontetemporale,0) durata
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
      
	from [CONSUNI].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 left join [CONSUNI].[consulenzaUnica].dbo.portafogliomodello pormod --modifica inserita il 24/04 per orizzontetemporale non congruente con la PUC online
		 on prog.chiaveptfmod=pormod.chiaveptfmod
		 inner join [CONSUNI].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join [CONSUNI].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
	
   -- update c6staging.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Progetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[RP_ST_Progetto] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	--drop table c6staging.RP_Progetto
	truncate table c6staging.RP_Progetto

	insert into c6staging.RP_Progetto (
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto -- sulla Progetto dovrebbero essere già stati filtrati in questo modo
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
      ,SUBSTRING (propirMod.durata,1,1) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset
	
	from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	
	
	
	-- AGGREGO E VALORIZZO IL CTV DI PROGETTO
	
	select prog.chiaveprogetto, SUM(ctv) as ctvProgetto
	INTO #APPO
	from CONSUNI.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	inner join CONSUNI.ConsulenzaUnica.dbo.posizioniportafoglio pos
	on dett.chiaveposizioneptf = pos.chiaveposizioneptf
	inner join CONSUNI.ConsulenzaUnica.dbo.progetto prog
	on prog.chiaveprogetto = pos.chiaveprogetto	
	
	group by prog.chiaveprogetto	
	

	UPDATE c6staging.RP_Progetto
	SET ctvProgetto = ap.ctvProgetto
	from #APPO ap
	inner join c6staging.RP_Progetto pr
	on ap.chiaveprogetto = pr.chiaveprogetto
	
	

	
	
	
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end



GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Progetto_Robo]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE   procedure [C6Staging].[RP_ST_Progetto_Robo] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto_Robo',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	--drop table c6staging.RP_Progetto
	truncate table c6staging.RP_Progetto_Robo

	insert into c6staging.RP_Progetto_Robo (
	  [chiaveProgetto]
      ,[flagUtilizzoLiquidita]
      ,[Iban_codiceContrattoCC]
      ,[ctvSogliaCC]
      ,[minimoMantenimentoSuCC]
      ,[listTagFondiDaUtilizzare]
      ,[percentualeFogli]
      ,[percentualeFondi]
      ,[chiaveclientepb]
      ,[dt_inserimento]
      ,[dt_aggiornamento]
      ,[FlagCsv]
      ,[isProgettoRobo]  )

	select  
	 [chiaveProgetto]
      ,[flagUtilizzoLiquidita]
      ,[Iban_codiceContrattoCC]
      ,[ctvSogliaCC]
      ,[minimoMantenimentoSuCC]
      ,[listTagFondiDaUtilizzare]
      ,[percentualeFogli]
      ,[percentualeFondi]
      ,[chiaveclientepb]
      ,[dt_inserimento]
      ,[dt_aggiornamento]
      ,[FlagCsv]
	  ,'S'
	
	from CONSUNI.ConsulenzaUnica.dbo.[Robo_ProgettoRobo]

	
	
	
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto_Robo' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto_Robo'
		)
	
end



GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_PromotoreBancario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_PromotoreBancario] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PromotoreBancario',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_PromotoreBancario

	insert into c6staging.RP_PromotoreBancario (
	   [chiavePB]
      ,[codage]
      ,[nome]
      ,[cognome]
      ,[status]
      ,[livello]
      ,[rete]
      ,[indirizzo]
      ,[numCivico]
      ,[citta]
      ,[prov]
      ,[cap]
      ,[nazione]
      ,[ptel]
      ,[tel]
      ,[tipologia]
      ,[grado]
      ,[codManager]

)
	select 
	[chiavePB]
      ,[codage]
      ,[nome]
      ,[cognome]
      ,[status]
      ,[livello]
      ,[rete]
      ,[indirizzo]
      ,[numCivico]
      ,[citta]
      ,[prov]
      ,[cap]
      ,[nazione]
      ,[ptel]
      ,[tel]
      ,[tipologia]
      ,[grado]
      ,[codManager]
	
	from [CONSUNI].ConsulenzaUnica.dbo.PromotoreBancario
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PromotoreBancario' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PromotoreBancario'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_Proposta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_Proposta] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Proposta',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_Proposta

	INSERT INTO c6staging.RP_Proposta
	SELECT
		chiaveProposta
		,chiaveConsulenza
		,[status]
		,chiaveClientePB
		,nomeProposta
		,dtProposta
		,dtValidazione
		,dtUltimoAgg
		,dtScadenza
		,risorseFinanziarieBF
		,risorseFinanziarieBT
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,adeguatezza
		,discesaRegime
		,diversificazione
		,copertura
		,codValidazione
		,urlValidazione
		,urlSimulazione
		,urlReport
		,apporti
		,prelievi
		,flgScadenza
		,flgInadRischioCredito
		,flgInadRischioMercato
		,flgInadComplessita
		,flgInadFrequenza
		,flgInadConcentrazione
		,flgInadLiquidita
		,isAttivoRC
		,token
		,flagNuovoFlusso
		,null AS lineaself
	FROM [CONSUNI].[ConsulenzaUnica].dbo.Proposta
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Proposta' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Proposta'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6Staging].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE 
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table c6staging.RP_RDR_VALUTE_DB_DTGIORNALIERI  
  
 insert into c6staging.RP_RDR_VALUTE_DB_DTGIORNALIERI  
  
-- 2015/03/17 FCianfa inserimento cast per problemi di lettura dati  
  
 SELECT DT1.ChiaveProdotto, DT1.Divisa, cast(DT1.Peso as numeric(18,7))  
    FROM [consuni].[consulenzaUnicaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI DT1   
       INNER JOIN  
          (SELECT chiaveProdotto, divisa, MAX(dtRiferimento) AS MAXDATE   
           FROM [consuni].[consulenzaUnicaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI   
           GROUP BY chiaveProdotto, divisa) DT2  
       ON DT1.chiaveProdotto = DT2.chiaveProdotto  
      AND DT1.DIVISA= DT2.DIVISA  
      AND DT1.dtRiferimento = DT2.MAXDATE  
    ORDER BY DT1.CHIAVEPRODOTTO, dt1.divisa  
   
 /*pk 20160506  
 insert into c6staging.RP_RDR_VALUTE_DB_DTGIORNALIERI   
select 9276460, divisa, peso   
from c6staging.RP_RDR_VALUTE_DB_DTGIORNALIERI   
where ChiaveProdotto = 261831   
pk 20160506*/  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE
   WHERE  
    Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_REP_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_REP_ASSET_1_E_2_ORDINATE] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_REP_ASSET_1_E_2_ORDINATE',
		GETDATE(),
		'Elaborazione giornaliera'
	)
    --drop table c6staging.RP_REP_ASSET_1_E_2_ORDINATE
	truncate table c6staging.RP_REP_ASSET_1_E_2_ORDINATE

	insert into c6staging.RP_REP_ASSET_1_E_2_ORDINATE

	select *  
	--into c6staging.RP_REP_ASSET_1_E_2_ORDINATE
	from [CONSUNI].[ConsulenzaUnica].dbo.REP_ASSET_1_E_2_ORDINATE
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	truncate table c6staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3

	insert into c6staging.RP_S4_S5_S13_TRAD_UNTIL_LIV3

	select * from [CONSUNI].[ConsulenzaUnica].[dbo].[REP_S4_S5_S13_TRAD_UNTIL_LIV3]
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_TB_ESG_ANAG_STRUM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6Staging].[RP_ST_TB_ESG_ANAG_STRUM] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_TB_ESG_ANAG_STRUM',
		GETDATE(),
		'Elaborazione giornaliera'
	)

truncate table C6Staging.RP_TB_ESG_ANAG_STRUM

INSERT INTO [C6Staging].[RP_TB_ESG_ANAG_STRUM]
           ([ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	  ,[TrendESGRating_Val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
	  ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
	  ,[PAI_LAB_A_Settore_Immobiliare]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE])
   	select  [ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,case when [ESG_E]='0' then 'N' else ESG_E end
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	  ,[TrendESGRating_Val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
	  ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
	   ,[PAI_LAB_A_Settore_Immobiliare]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE]
	from [CONSUNI].CatalogoProdotti.dbo.TB_ESG_ANAG_STRUM

	




	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_TB_ESG_ANAG_STRUM' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_TB_ESG_ANAG_STRUM'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_TB_ESG_ANAG_STRUM_bkp_Pre_ESG4]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6Staging].[RP_ST_TB_ESG_ANAG_STRUM_bkp_Pre_ESG4] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_TB_ESG_ANAG_STRUM',
		GETDATE(),
		'Elaborazione giornaliera'
	)

truncate table C6Staging.RP_TB_ESG_ANAG_STRUM

INSERT INTO [C6Staging].[RP_TB_ESG_ANAG_STRUM]
           ([ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	  ,[TrendESGRating_Val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
	  ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE])
   	select  [ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,case when [ESG_E]='0' then 'N' else ESG_E end
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
	  ,[TrendESGRating_Val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
	  ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE]
	from [CONSUNI].CatalogoProdotti.dbo.TB_ESG_ANAG_STRUM

	




	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_TB_ESG_ANAG_STRUM' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_TB_ESG_ANAG_STRUM'
		)
	
end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_ST_vNewPositionProposta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[RP_ST_vNewPositionProposta]
as
begin

truncate table [C6Staging].[RP_vNewPositionProposta]

insert into [C6Staging].[RP_vNewPositionProposta]

select 
	pro.chiaveClientePB,
	ope.nomeProgettoProp,
	ope.areaProp,
	pospro.chiaveProgetto,
	cat.codSottoprodotto,
	cat.codInterno,
	cat.codMaf,
	cat.codIsin,
	cat.tipoProdotto,
    null as positionIdProposta
from 
	c6staging.RP_Proposta pro,
	c6staging.RP_DettaglioOperazione ope, 
	c6staging.RP_PosizioniProposta pospro,
	c6staging.RP_catalogoprodotti cat
where 
	pro.chiaveproposta=ope.chiaveproposta
	and ope.chiaveposizionepro=pospro.chiaveposizionepro
	and pospro.chiaveprodotto=cat.chiaveprodotto
	and ope.chiaveposizioneptf=0--ISANEWPOSITION = 1
	and ope.posriallocata=0--RICONCILIATA = 0
	and pro.status in ('PE','ES')--STATO_PROPOSTA in ('InEsecuzione', 'ParzialmenteEseguita')

end


GO
/****** Object:  StoredProcedure [C6Staging].[RP_W6LogBatch]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [C6Staging].[RP_W6LogBatch]
    @BatchName NVARCHAR(100)
AS
BEGIN
    DECLARE @BatchID INT;

    -- Trova l'ultimo batch in esecuzione con lo stesso nome
    SELECT TOP 1 @BatchID = BatchID
    FROM C6Staging.W6LogBatch
    WHERE BatchName = @BatchName AND EndDate IS NULL
    ORDER BY BatchID DESC;

    IF @BatchID IS NOT NULL
    BEGIN
        -- È la fine del batch
        -- Aggiorna la data di fine, lo status e calcola il delta in minuti
        UPDATE C6Staging.W6LogBatch
        SET EndDate = GETDATE(),
            Status = 'OK',
            DeltaMinutes = DATEDIFF(MINUTE, StartDate, GETDATE())
        WHERE BatchID = @BatchID;
        
        -- Output o messaggio di conferma per la fine del batch
        SELECT 'Log entry updated for BatchID ' + CAST(@BatchID AS NVARCHAR(20)) + '.' +
               ' Batch "' + @BatchName + '" ended.';
    END
    ELSE
    BEGIN
        -- È l'inizio del batch
        -- Inserisci i dati relativi al log nella tabella C6Staging.W6LogBatch
        INSERT INTO C6Staging.W6LogBatch (BatchName, Status, StartDate)
        VALUES (@BatchName, 'In esecuzione', GETDATE());

        -- Ottieni l'ID del batch appena inserito
        SET @BatchID = SCOPE_IDENTITY();
        
        -- Output o messaggio di conferma per l'inizio del batch
        SELECT 'Log entry added for BatchID ' + CAST(@BatchID AS NVARCHAR(20)) + '.' +
               ' Batch "' + @BatchName + '" started.';
    END
END;
GO
/****** Object:  StoredProcedure [C6Staging].[SRV_STORICIZZAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [C6Staging].[SRV_STORICIZZAZIONE] 'ACBDENOTH'
CREATE procedure [C6Staging].[SRV_STORICIZZAZIONE]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MART.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENOTH XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENOTH')
		BEGIN
			DELETE FROM C6Storico.ST_ACBDENOTH WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ACBDENOTH
			(OID_, VERSION_, BDPERCENTAGE, BDBETA, F_OID__PASSE_CDF1A, F_PFINANCIAL_815C0, ID_ELAB)
			SELECT ACBDENOTH.OID_, ACBDENOTH.VERSION_, ACBDENOTH.BDPERCENTAGE, ACBDENOTH.BDBETA, ACBDENOTH.F_OID__PASSE_CDF1A, ACBDENOTH.F_PFINANCIAL_815C0, @ID_ELAB 
			FROM C6Staging.ACBDENOTH
			LEFT OUTER JOIN C6Storico.ST_ACBDENOTH
				ON ACBDENOTH.OID_ = ST_ACBDENOTH.OID_
			WHERE ST_ACBDENOTH.OID_ IS NULL
		END

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENTRY XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENTRY')
		BEGIN
			DELETE FROM C6Storico.ST_ACBDENTRY WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ACBDENTRY
			(OID_, VERSION_, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID__PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, ID_ELAB)
			SELECT ACBDENTRY.OID_, ACBDENTRY.VERSION_, ACBDENTRY.F_PINDEXBREA_08079, ACBDENTRY.F_PINSTRUMEN_FBCDE, ACBDENTRY.BDPERCENTAGE, ACBDENTRY.BDBETA, ACBDENTRY.F_OID__PASSE_B8A1E, ACBDENTRY.F_PFINANCIAL_65EBB, ACBDENTRY.F_PFINANCIAL_C2FD3, @ID_ELAB 
			FROM C6Staging.ACBDENTRY
			LEFT OUTER JOIN C6Storico.ST_ACBDENTRY
				ON ACBDENTRY.OID_ = ST_ACBDENTRY.OID_
			WHERE ST_ACBDENTRY.OID_ IS NULL
		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADBKRELAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADBKRELAT')
		BEGIN	
			DELETE FROM C6Storico.ST_ADBKRELAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ADBKRELAT
			(OID_, VERSION_, TYPE__TYPE_CAB4A, ADBKRELDESCR, ADBKRELNOTE, DEPENDANT, PHONEDECIMAL, F_OID__ADBKR_CBA9A, F_PADDRESSBO_24DA1, ID_ELAB)
			SELECT ADBKRELAT.OID_, ADBKRELAT.VERSION_, ADBKRELAT.TYPE__TYPE_CAB4A, ADBKRELAT.ADBKRELDESCR, ADBKRELAT.ADBKRELNOTE, ADBKRELAT.DEPENDANT, ADBKRELAT.PHONEDECIMAL, ADBKRELAT.F_OID__ADBKR_CBA9A, ADBKRELAT.F_PADDRESSBO_24DA1, @ID_ELAB 
			FROM C6Staging.ADBKRELAT
			LEFT OUTER JOIN C6Storico.ST_ADBKRELAT
				ON ADBKRELAT.OID_ = ST_ADBKRELAT.OID_
			WHERE ST_ADBKRELAT.OID_ IS NULL
 		END

	--XXXXXXXXXXXXXXXXXXXXXXXX ADS4WS_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
		BEGIN
			DELETE FROM C6Storico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ADS4WS_PROMOTORI
			(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, PrefissoTelefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
			SELECT Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, PrefissoTelefono, TelefonoAgenzia1, TelefonoAgenzia2, @ID_ELAB 
			FROM C6Staging.ADS4WS_PROMOTORI
 		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_ASSET_CLASS_PER_PROMET XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_ASSET_CLASS_PER_PROMET')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_ASSET_CLASS_PER_PROMET WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_ASSET_CLASS_PER_PROMET
			(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
			SELECT ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO, ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN, ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF, ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA, @ID_ELAB 
			FROM C6Staging.ALL_ASSET_CLASS_PER_PROMET
			LEFT OUTER JOIN C6Storico.ST_ALL_ASSET_CLASS_PER_PROMET
				ON ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO
				AND ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN
				AND ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF
				AND ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA
			WHERE ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO IS NULL
 		END
  
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_PB')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_CF_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_CF_PB
			(ID_CLI, NOME, COGNOME, CODICEFISCALE, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, ID_ELAB)
			SELECT ID_CLI, NOME, COGNOME, CODICEFISCALE, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, @ID_ELAB 
			FROM C6Staging.ALL_CF_PB
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_STATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_STATO')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_CF_STATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_CF_STATO
			(CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, ID_ELAB)
			SELECT CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, @ID_ELAB 
			FROM C6Staging.ALL_CF_STATO
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CONSUL_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CONSUL_ASUL')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_CONSUL_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_CONSUL_ASUL
			(CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, ID_ELAB)
			SELECT CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, @ID_ELAB 
			FROM C6Staging.ALL_CONSUL_ASUL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATR_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATR_TERZI')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_PATR_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_PATR_TERZI
			(CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, CAPITALE_INVESTITO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATETIME_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESC, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, ID_ELAB)
			SELECT CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, CAPITALE_INVESTITO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATETIME_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESC, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, @ID_ELAB 
			FROM C6Staging.ALL_PATR_TERZI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATRBF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATRBF')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_PATRBF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_PATRBF
			(AGENTE, CODICEFISCALE, PATRIMONIO_BF_CON_CC, PATRIMONIOBF_SENZA_CC, PATRIMONIOBF_SOLO_CC, ID_ELAB)
			SELECT AGENTE, CODICEFISCALE, PATRIMONIO_BF_CON_CC, PATRIMONIOBF_SENZA_CC, PATRIMONIOBF_SOLO_CC, @ID_ELAB 
			FROM C6Staging.ALL_PATRBF
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_POS_CONS_CAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_POS_CONS_CAT')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_POS_CONS_CAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_POS_CONS_CAT
			(CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, PK_PRC_, TIPO_PROGETTO, C_CTVNEEDARE_EA4FB, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, PERCENTUALE_MODELLO, ID_MONITORAGGIO_, NOME_PROGETTO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, CONTROVALORE_PER_INV, C_INVESTIMEN_60625, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, ID_ELAB)
			SELECT CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, PK_PRC_, TIPO_PROGETTO, C_CTVNEEDARE_EA4FB, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, PERCENTUALE_MODELLO, ID_MONITORAGGIO_, NOME_PROGETTO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, CONTROVALORE_PER_INV, C_INVESTIMEN_60625, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, @ID_ELAB 
			FROM C6Staging.ALL_POS_CONS_CAT
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PROPOSTA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PROPOSTA')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_PROPOSTA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_PROPOSTA
			(AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, ID_ELAB)
			SELECT AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, @ID_ELAB 
			FROM C6Staging.ALL_PROPOSTA
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
		BEGIN
			DELETE FROM C6Storico.ST_ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ASSETCLASS
			(VERSION_, OID_, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ORDINE, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID__ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
			SELECT ASSETCLASS.VERSION_, ASSETCLASS.OID_, ASSETCLASS.ASSETCLASSID, ASSETCLASS.ASSETCLASSNAME, ASSETCLASS.ASSETCLASSDESCR, ASSETCLASS.ASSETCLASSLEV, ASSETCLASS.ORDINE, ASSETCLASS.ISRESIDUAL, ASSETCLASS.F_PASSETCLAS_2FB94, ASSETCLASS.F_OID__ASSET_B965C, ASSETCLASS.CODICE_ISIN, ASSETCLASS.CODICE_MAF, ASSETCLASS.CODICE_ADEGUATEZZA, @ID_ELAB 
			FROM C6Staging.ASSETCLASS
			LEFT OUTER JOIN C6Storico.ST_ASSETCLASS
				ON ASSETCLASS.OID_ = ST_ASSETCLASS.OID_
			WHERE ST_ASSETCLASS.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX C_BO_453FB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'C_BO_453FB')
		BEGIN
			DELETE FROM C6Storico.ST_C_BO_453FB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_C_BO_453FB
			(OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, ID_ELAB)
			SELECT C_BO_453FB.OID$, C_BO_453FB.C_VALUE_7BD3C, C_BO_453FB.C_DESCRIZION_93ABE, C_BO_453FB.PK_PRC, @ID_ELAB 
			FROM C6Staging.C_BO_453FB
			LEFT OUTER JOIN C6Storico.ST_C_BO_453FB
				ON C_BO_453FB.OID$ = ST_C_BO_453FB.OID$
			WHERE ST_C_BO_453FB.OID$ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATINAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATINAREA')
		BEGIN
			DELETE FROM C6Storico.ST_CATINAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CATINAREA
			(OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, ID_ELAB)
			SELECT CATINAREA.OID$, CATINAREA.VERSION$, CATINAREA.C_ISMAINNEED_9C780, CATINAREA.NEEDAREAVALUE, CATINAREA.F_OID$_NEEDA_2C362, CATINAREA.F_PCATALOGUE_5D024, @ID_ELAB 
			FROM C6Staging.CATINAREA
			LEFT OUTER JOIN C6Storico.ST_CATINAREA
				ON CATINAREA.OID$ = ST_CATINAREA.OID$
			WHERE ST_CATINAREA.OID$ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATITEMREF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATITEMREF')
		BEGIN
			DELETE FROM C6Storico.ST_CATITEMREF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CATITEMREF
			(OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, ID_ELAB)
			SELECT CATITEMREF.OID$, CATITEMREF.VERSION$, CATITEMREF.PRODUCTCURRENCY, CATITEMREF.PRODUCTCOUNTRY, CATITEMREF.PRODUCTREGION, CATITEMREF.CATALOGUEID, CATITEMREF.COD_ISIN, CATITEMREF.COD_ADEGUATEZZA, CATITEMREF.COD_MAF, CATITEMREF.COD_INTERNO, CATITEMREF.COD_SOTTOPRODOTTO, CATITEMREF.TYPE$_BCATAL_FC317, CATITEMREF.CATEGORY, CATITEMREF.INSTITUTIONS, CATITEMREF.COUNTRY, CATITEMREF.PIAZZA, CATITEMREF.ULTIMOPRZCURR, CATITEMREF.ULTIMOPRZ, CATITEMREF.CAPITALERISPARMIO, CATITEMREF.LMINCAPCONTRCURR, CATITEMREF.LMINCAPCONTR, CATITEMREF.LSUCCAPCONTRCURR, CATITEMREF.LSUCCAPCONTR, CATITEMREF.LMINRISPCONTRCURR, CATITEMREF.LMINRISPCONTR, CATITEMREF.LSUCRISPCONTRCURR, CATITEMREF.LSUCRISPCONTR, CATITEMREF.LMINCOMMCURR, CATITEMREF.LMINCOMM, CATITEMREF.DELEGAGESTIONALE, CATITEMREF.TIPOLOGIAPERPICK, CATITEMREF.EXPIRATIONDATE, CATITEMREF.RISKPRICE, CATITEMREF.FISCALREGIMENT, CATITEMREF.QUOTATO, CATITEMREF.CLASSEDIPREZZO, CATITEMREF.BONDRATING, CATITEMREF.BONDDURATION, CATITEMREF.TEMPMIN, CATITEMREF.TEMPMAX, CATITEMREF.PRIPRODCOM, CATITEMREF.MAINASSETCLASS, CATITEMREF.MACROACOBPERC, CATITEMREF.MACROACALPERC, CATITEMREF.MACROACAZPERC, CATITEMREF.MACROACMNPERC, CATITEMREF.LINEEFINACC, CATITEMREF.TIPOVERS, CATITEMREF.TIPOPOLIZRAM1, CATITEMREF.DURATACONTR, CATITEMREF.GARDEMO, CATITEMREF.RISKPRESSCAD, CATITEMREF.LIVFLUTDUR, CATITEMREF.OPZRENDVIT, CATITEMREF.METAA, CATITEMREF.METAB, CATITEMREF.METAC, CATITEMREF.RATOBBLIG, CATITEMREF.ULTIMOPREZZOCURR, CATITEMREF.ULTIMOPREZZO, CATITEMREF.DATARIFPREZZO, CATITEMREF.CODICEADB, CATITEMREF.AGGIORNFEED, CATITEMREF.DISTRPROV, CATITEMREF.CODTIPOCONTR, CATITEMREF.ULTPRZSECCURR, CATITEMREF.ULTPRZSEC, CATITEMREF.DATAULTPRZSEC, CATITEMREF.CODBLOOMBERG, CATITEMREF.DENOMUNITLNK, CATITEMREF.TIPOPRODOTTO, CATITEMREF.GENERICDATA, CATITEMREF.GENERICCURCURR, CATITEMREF.GENERICCUR, CATITEMREF.GENERICSTRING1, CATITEMREF.GENERICSTRING2, CATITEMREF.CATALOGUENAME, CATITEMREF.EFFECTIVEFROM, CATITEMREF.EFFECTIVETO, CATITEMREF.PRODUCTSTATUS, CATITEMREF.ISVISIBLE, CATITEMREF.ISNEGOTIABLE, CATITEMREF.BRIEFDESCRIPTION, CATITEMREF.F_OID$_VAR_CDDF8, CATITEMREF.RISKPROFOFSUITCLS, CATITEMREF.OPINION, CATITEMREF.OPINIONDATE, CATITEMREF.F_OID$_CATAL_B3E14, CATITEMREF.F_OID$_PCATE_F3BF6, CATITEMREF.F_OID$_MAINA_76C35, CATITEMREF.F_OID$_INSTR_B5526, CATITEMREF.F_OID$_MAINS_5FCE5, CATITEMREF.F_OID$_MAINR_08A23, CATITEMREF.F_OID$_PRISK_AAC57, CATITEMREF.F_OID$_PRODU_F8FBB, CATITEMREF.F_OID$_MARKE_F3D2D, CATITEMREF.COLL_SKANDIA, CATITEMREF.CODASSETSAT, @ID_ELAB 
			FROM C6Staging.CATITEMREF
			LEFT OUTER JOIN C6Storico.ST_CATITEMREF
				ON CATITEMREF.OID$ = ST_CATITEMREF.OID$
			WHERE ST_CATITEMREF.OID$ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX COMPTYPE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'COMPTYPE')
		BEGIN
			DELETE FROM C6Storico.ST_COMPTYPE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_COMPTYPE
			(OID_, TYPE_, ID_ELAB)
			SELECT COMPTYPE.OID_, COMPTYPE.TYPE_, @ID_ELAB 
			FROM C6Staging.COMPTYPE
			LEFT OUTER JOIN C6Storico.ST_COMPTYPE
				ON COMPTYPE.OID_ = ST_COMPTYPE.OID_
			WHERE ST_COMPTYPE.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONO XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO')
	--		BEGIN
	--			DELETE FROM C6Storico.ST_CONO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--			INSERT INTO C6Storico.ST_CONO
	--			(OID_, VERSION_, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, ID_ELAB)
	--			SELECT CONO.OID_, CONO.VERSION_, CONO.C_DATA_FD2A6, CONO.C_QUANTILE5_BF710, CONO.C_QUANTILE95_0D6CE, CONO.F_PPROJECT_P_46507, CONO.C_QUANTILE50_C47E0, @ID_ELAB 
	--			FROM C6Staging.CONO
	--			LEFT OUTER JOIN C6Storico.ST_CONO
	--				ON CONO.OID_ = ST_CONO.OID_
	--			WHERE ST_CONO.OID_ IS NULL
	--  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSAREA')
		BEGIN
			DELETE FROM C6Storico.ST_CONSAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CONSAREA
			(OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, ID_ELAB)
			SELECT OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, @ID_ELAB 
			FROM C6Staging.CONSAREA
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSUL')
		BEGIN
			DELETE FROM C6Storico.ST_CONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CONSUL
			(OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, ID_ELAB)
			SELECT OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, @ID_ELAB 
			FROM C6Staging.CONSUL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INDREND XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INDREND')
		BEGIN
			DELETE FROM C6Storico.ST_INDREND WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_INDREND
			(OID_, VERSION_, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, ID_ELAB)
			SELECT INDREND.OID_, INDREND.VERSION_, INDREND.C_VAR_A94EA, INDREND.C_TEMPOINVES_CE300, INDREND.C_COPERTURA_94818, INDREND.C_PERDITAMAX_F5B51, @ID_ELAB 
			FROM C6Staging.INDREND
			LEFT OUTER JOIN C6Storico.ST_INDREND
				ON INDREND.OID_ = ST_INDREND.OID_
			WHERE ST_INDREND.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INSTRBDS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INSTRBDS')
		BEGIN
			DELETE FROM C6Storico.ST_INSTRBDS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_INSTRBDS
			(OID_, VERSION_, BDISIN, BDMAF, F_OID__PCATA_5DDA6, PROVENIENZA, ID_ELAB)
			SELECT INSTRBDS.OID_, INSTRBDS.VERSION_, INSTRBDS.BDISIN, INSTRBDS.BDMAF, INSTRBDS.F_OID__PCATA_5DDA6, INSTRBDS.PROVENIENZA, @ID_ELAB 
			FROM C6Staging.INSTRBDS
			LEFT OUTER JOIN C6Storico.ST_INSTRBDS
				ON INSTRBDS.OID_ = ST_INSTRBDS.OID_
			WHERE ST_INSTRBDS.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MACROASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MACROASSETCLASS')
		BEGIN
			DELETE FROM C6Storico.ST_MACROASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_MACROASSETCLASS
			(ASSETCLASSID, ASSETCLASSNAME, ORDINE, ID_ELAB)
			SELECT MACROASSETCLASS.ASSETCLASSID, MACROASSETCLASS.ASSETCLASSNAME, MACROASSETCLASS.ORDINE, @ID_ELAB 
			FROM C6Staging.MACROASSETCLASS
			LEFT OUTER JOIN C6Storico.ST_MACROASSETCLASS
				ON MACROASSETCLASS.ASSETCLASSID = ST_MACROASSETCLASS.ASSETCLASSID
			WHERE ST_MACROASSETCLASS.ASSETCLASSID IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NEEDAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NEEDAREA')
		BEGIN
			DELETE FROM C6Storico.ST_NEEDAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_NEEDAREA
			(OID_, VERSION_, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, ID_ELAB)
			SELECT NEEDAREA.OID_, NEEDAREA.VERSION_, NEEDAREA.AREAID, NEEDAREA.AREANAME, NEEDAREA.EFFECTIVEFROM, NEEDAREA.EFFECTIVETO, NEEDAREA.BRIEFDESCRIPTION, NEEDAREA.F_PNEEDAREA__742D7, NEEDAREA.AREASORTORDER, @ID_ELAB 
			FROM C6Staging.NEEDAREA
			LEFT OUTER JOIN C6Storico.ST_NEEDAREA
				ON NEEDAREA.OID_ = ST_NEEDAREA.OID_
			WHERE ST_NEEDAREA.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX OTHINTRST XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'OTHINTRST')
		BEGIN
			DELETE FROM C6Storico.ST_OTHINTRST WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_OTHINTRST
			(OID_, VERSION_, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, ID_ELAB)
			SELECT OTHINTRST.OID_, OTHINTRST.VERSION_, OTHINTRST.INTERESTDESC, OTHINTRST.INTERESTCUR, OTHINTRST.INTERESTAMT, OTHINTRST.F_PQUANTIFIC_76FF6, @ID_ELAB 
			FROM C6Staging.OTHINTRST
			LEFT OUTER JOIN C6Storico.ST_OTHINTRST
				ON OTHINTRST.OID_ = ST_OTHINTRST.OID_
			WHERE ST_OTHINTRST.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PORTMOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PORTMOD')
		BEGIN
			DELETE FROM C6Storico.ST_PORTMOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PORTMOD
			(OID_, VERSION_, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, ID_ELAB)
			SELECT PORTMOD.OID_, PORTMOD.VERSION_, PORTMOD.F_PPROJECT_P_EE748, PORTMOD.C_ASSET_CD02D, PORTMOD.C_PERCENTUAL_143B7, @ID_ELAB 
			FROM C6Staging.PORTMOD
			LEFT OUTER JOIN C6Storico.ST_PORTMOD
				ON PORTMOD.OID_ = ST_PORTMOD.OID_
			WHERE ST_PORTMOD.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX POSITION XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'POSITION')
		BEGIN
			DELETE FROM C6Storico.ST_POSITION WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_POSITION
			(OID_, VERSION_, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE__CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID__POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, ID_ELAB)
			SELECT OID_, VERSION_, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE__CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID__POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, @ID_ELAB 
			FROM C6Staging.POSITION
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PRCONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PRCONSUL')
		BEGIN
			DELETE FROM C6Storico.ST_PRCONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PRCONSUL
			(OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, ID_ELAB)
			SELECT OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, @ID_ELAB 
			FROM C6Staging.PRCONSUL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_AGGR XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_AGGR')
		BEGIN
			DELETE FROM C6Storico.ST_PROMETEIA_AGGR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PROMETEIA_AGGR
			(Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, ID_ELAB)
			SELECT Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, @ID_ELAB 
			FROM C6Staging.PROMETEIA_AGGR
  		END
 
--	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_DETT XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_DETT')
--		BEGIN
--			DELETE FROM C6Storico.ST_PROMETEIA_DETT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--			INSERT INTO C6Storico.ST_PROMETEIA_DETT
--			(Rete, CodiceFiscale, Portafoglio, CodiceProdotto, Piazza, CodVal, Classe, VarAssoluto, VaRPercentuale, CVarAssoluto, CVarPercentuale, RiskSize, McVar, McVarP, TipoCopertura, CtvNominale, CtvReale, ID_ELAB)
--			SELECT Rete, CodiceFiscale, Portafoglio, CodiceProdotto, Piazza, CodVal, Classe, VarAssoluto, VaRPercentuale, CVarAssoluto, CVarPercentuale, RiskSize, McVar, McVarP, TipoCopertura, CtvNominale, CtvReale, @ID_ELAB 
--			FROM C6Staging.PROMETEIA_DETT
--  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX QUANTIF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'QUANTIF')
		BEGIN
			DELETE FROM C6Storico.ST_QUANTIF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_QUANTIF
			(OID_, VERSION_, UPDATETIMEDATETIME, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, STATEPENSIONCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID__ADDRE_81D21, ID_ELAB)
			SELECT QUANTIF.OID_, QUANTIF.VERSION_, QUANTIF.UPDATETIMEDATETIME, QUANTIF.EXPNEEDSCUR, QUANTIF.EXPNEEDSAMT, QUANTIF.GROSSINPRIMCUR, QUANTIF.GROSSINPRIMAMT, QUANTIF.GROSSINSECCUR, QUANTIF.GROSSINSECAMT, QUANTIF.RETIREMENTYEARS, QUANTIF.STATEPENSIONAMT, QUANTIF.PRIVATEPENSIONCUR, QUANTIF.PRIVATEPENSIONAMT, QUANTIF.LIFEINTERESTCUR, QUANTIF.LIFEINTERESTAMT, QUANTIF.C_FINANCIALI_8D659, QUANTIF.C_FINANCIALI_91C75, QUANTIF.INSINTERESTCUR, QUANTIF.STATEPENSIONCUR, QUANTIF.INSINTERESTAMT, QUANTIF.INVINTERESTCUR, QUANTIF.INVINTERESTAMT, QUANTIF.REINTERESTCUR, QUANTIF.REINTERESTAMT, QUANTIF.PRIMARYGAPCUR, QUANTIF.PRIMARYGAPAMT, QUANTIF.SECONDARYGAPCUR, QUANTIF.SECONDARYGAPAMT, QUANTIF.TOCONSUMPTIONETM, QUANTIF.TOINTERESTETM, QUANTIF.LOCKPERCFRSTBRNC, QUANTIF.PRFCONSUMPTIONS, QUANTIF.PRFGROSSAMOUNT, QUANTIF.PRFPERCFRSTBRNC, QUANTIF.PRFADDRETIREMENT, QUANTIF.PRFLIFEINTEREST, QUANTIF.PRFINTERFRSTBRNC, QUANTIF.PRFINTERUNIT, QUANTIF.F_OID__ADDRE_81D21, @ID_ELAB 
			FROM C6Staging.QUANTIF
			LEFT OUTER JOIN C6Storico.ST_QUANTIF
				ON QUANTIF.OID_ = ST_QUANTIF.OID_
			WHERE ST_QUANTIF.OID_ IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S25_CLI_CLIENTE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S25_CLI_CLIENTE')
		BEGIN
			DELETE FROM C6Storico.ST_S25_CLI_CLIENTE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_S25_CLI_CLIENTE
			(NOME, COGNOME, CODICEFISCALE, DATANASCITA, ETA, PROFESSIONE, NUMEROCOMPONENTI, NUMEROFIGLI, STATO_CIVILE, INDIRIZZO, RETE, ID_ELAB)
			SELECT NOME, COGNOME, CODICEFISCALE, DATANASCITA, ETA, PROFESSIONE, NUMEROCOMPONENTI, NUMEROFIGLI, STATO_CIVILE, INDIRIZZO, RETE, @ID_ELAB 
			FROM C6Staging.S25_CLI_CLIENTE
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S4_S5_S13_TRAD_UNTIL_LIV3 XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S4_S5_S13_TRAD_UNTIL_LIV3')
		BEGIN
			DELETE FROM C6Storico.ST_S4_S5_S13_TRAD_UNTIL_LIV3 WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
			(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, ID_ELAB)
			SELECT S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3, S4_S5_S13_TRAD_UNTIL_LIV3.ORDINAMENTO_GERARCHIA_2, @ID_ELAB 
			FROM C6Staging.S4_S5_S13_TRAD_UNTIL_LIV3
			LEFT OUTER JOIN C6Storico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
				ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ST_S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE
			WHERE ST_S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_ASS_UNIT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_ASS_UNIT')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_ASS_UNIT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_ASS_UNIT
			(CODICECONTRATTO, CODICESOTTOPRODOTTO, CODICEINTERNO, CONTROVALORE, DATADIRIFERIMENTO, ISINFITTIZIO, CODICEISINSOTTOSTANTE, CODICEMAFSOTTOSTANTE, ID_ELAB)
			SELECT CODICECONTRATTO, CODICESOTTOPRODOTTO, CODICEINTERNO, CONTROVALORE, DATADIRIFERIMENTO, ISINFITTIZIO, CODICEISINSOTTOSTANTE, CODICEMAFSOTTOSTANTE, @ID_ELAB 
			FROM C6Staging.SPB_ASS_UNIT
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CLIENTI')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_CLIENTI
			(CODICERETE, CODICEAGENTE, CODICEFISCALE, NOME, COGNOME, DATADINASCITA, NAZIONEDINASCITA, COMUNEDINASCITA, SESSO, CITTADINANZA, TITOLODISTUDIOCODICE, TITOLODISTUDIODESCRIZIONE, TIPOCLIENTE, DATAATTIVAZIONECLIENTE, ID_ELAB)
			SELECT CODICERETE, CODICEAGENTE, CODICEFISCALE, NOME, COGNOME, DATADINASCITA, NAZIONEDINASCITA, COMUNEDINASCITA, SESSO, CITTADINANZA, TITOLODISTUDIOCODICE, TITOLODISTUDIODESCRIZIONE, TIPOCLIENTE, DATAATTIVAZIONECLIENTE, @ID_ELAB 
			FROM C6Staging.SPB_CLIENTI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CONTR_SINTESI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CONTR_SINTESI')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_CONTR_SINTESI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_CONTR_SINTESI
			(POSITIONID, RETE, CODAGENTE, CODICEFISCALE, PIVAFIDUCIARIA, CODICECONTRATTO, NUMEROPOLIZZA, CONTO, RUBRICATO, CUSTODIAGARANZIA, PCTTITOLOCOLLEGATO, TIPOPRODOTTO, CODICEINTERNO, CODICESOTTOPRODOTTO, CODICEMAF, PCTKEY, PCTDESCRIZIONTETITOLOCOLLEGATO, QUOTE, PREZZO, CTV, PARTVIA, PARTVIAAL, DATADIRIFERIMENTO, DATADISOTTOSCRIZIONE, DATAVALNAVAL, CODICESTATO, DATAINIZIORENDIMENTO, RENDIMENTODASOTTOSCRIZIONE, DATATRIMESTRERENDIMENTO, RENDIMENTODAINIZIOTRIMESTRE, DATAANNORENDIMENTO, RENDIMENTODAINIZIOANNO, VALORE, CVN, ID_ELAB)
			SELECT POSITIONID, RETE, CODAGENTE, CODICEFISCALE, PIVAFIDUCIARIA, CODICECONTRATTO, NUMEROPOLIZZA, CONTO, RUBRICATO, CUSTODIAGARANZIA, PCTTITOLOCOLLEGATO, TIPOPRODOTTO, CODICEINTERNO, CODICESOTTOPRODOTTO, CODICEMAF, PCTKEY, PCTDESCRIZIONTETITOLOCOLLEGATO, QUOTE, PREZZO, CTV, PARTVIA, PARTVIAAL, DATADIRIFERIMENTO, DATADISOTTOSCRIZIONE, DATAVALNAVAL, CODICESTATO, DATAINIZIORENDIMENTO, RENDIMENTODASOTTOSCRIZIONE, DATATRIMESTRERENDIMENTO, RENDIMENTODAINIZIOTRIMESTRE, DATAANNORENDIMENTO, RENDIMENTODAINIZIOANNO, VALORE, CVN, @ID_ELAB 
			FROM C6Staging.SPB_CONTR_SINTESI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_INDIRIZZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_INDIRIZZI')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_INDIRIZZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_INDIRIZZI
			(RETE, CODAGENTE, CODICEFISCALE, TIPOINDIRIZZO, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, ID_ELAB)
			SELECT RETE, CODAGENTE, CODICEFISCALE, TIPOINDIRIZZO, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, @ID_ELAB 
			FROM C6Staging.SPB_INDIRIZZI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_MIFID')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_MIFID
			(RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, ID_ELAB)
			SELECT RETE, CODAGENTE, CODICEFISCALE, NULL, CODICEPROFILOASSEGNATO, NULL, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODAGENTE, NULL, NULL, TIPOQUESTIONARIO, STATUS, @ID_ELAB 
			FROM C6Staging.SPB_MIFID
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_NAC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_NAC')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_NAC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_NAC
			(COGNOMENOME, CODICEAGENTE, RETE, CODICERETE, CODICEMANAGER, LIVELLONELLAGERARCHIA, SUBORDINATI, ID_ELAB)
			SELECT SPB_NAC.COGNOMENOME, SPB_NAC.CODICEAGENTE, SPB_NAC.RETE, SPB_NAC.CODICERETE, SPB_NAC.CODICEMANAGER, SPB_NAC.LIVELLONELLAGERARCHIA, SPB_NAC.SUBORDINATI, @ID_ELAB 
			FROM C6Staging.SPB_NAC
			LEFT OUTER JOIN C6Storico.ST_SPB_NAC
				ON SPB_NAC.CODICEAGENTE = ST_SPB_NAC.CODICEAGENTE
				AND SPB_NAC.CODICERETE = ST_SPB_NAC.CODICERETE
				AND SPB_NAC.LIVELLONELLAGERARCHIA = ST_SPB_NAC.LIVELLONELLAGERARCHIA
			WHERE ST_SPB_NAC.CODICEAGENTE IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PARTITE_VIAGG XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PARTITE_VIAGG')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_PARTITE_VIAGG WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_PARTITE_VIAGG
			(RETE, CODAGENTE, CODICEFISCALE, CODICECONFERIMENTO, DESCRPRODOTTO, IMPORTOVERSATO, DATAACQUISIZIONE, DATAINCASSO, DATAVALUTAFONDO, NOTA, ID_ELAB)
			SELECT RETE, CODAGENTE, CODICEFISCALE, CODICECONFERIMENTO, DESCRPRODOTTO, IMPORTOVERSATO, DATAACQUISIZIONE, DATAINCASSO, DATAVALUTAFONDO, NOTA, @ID_ELAB 
			FROM C6Staging.SPB_PARTITE_VIAGG
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PROF_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PROF_RISCHIO')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_PROF_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_PROF_RISCHIO
			(CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, ID_ELAB)
			SELECT SPB_PROF_RISCHIO.CODICEPROFILO, SPB_PROF_RISCHIO.DESCRIZIONEPROFILO, SPB_PROF_RISCHIO.DESCRIZIONEPROFILOESTESA, SPB_PROF_RISCHIO.PERCENTUALEASSETAZIONARIO, SPB_PROF_RISCHIO.PERCENTUALEASSETOBBLIGAZIONARIO, SPB_PROF_RISCHIO.PERCENTUALEASSETMONETARIO, SPB_PROF_RISCHIO.VOLATILITADA, SPB_PROF_RISCHIO.VOLATILITAA, SPB_PROF_RISCHIO.RENDIMENTOATTESO, SPB_PROF_RISCHIO.VARTRIMESTRALE, @ID_ELAB 
			FROM C6Staging.SPB_PROF_RISCHIO
			LEFT OUTER JOIN C6Storico.ST_SPB_PROF_RISCHIO
				ON SPB_PROF_RISCHIO.CODICEPROFILO = ST_SPB_PROF_RISCHIO.CODICEPROFILO
			WHERE ST_SPB_PROF_RISCHIO.CODICEPROFILO IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX V_CLIENTI_CONTRSEI_CON_MIGRAZ XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'V_CLIENTI_CONTRSEI_CON_MIGRAZ')
		BEGIN
			DELETE FROM C6Storico.ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ
			(CODICE_FISCALE, RETE_PB, CODICE_CONTRATTO, STATO_CONTRATTO_SEI, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, FLAG_CLIENTE_MIGRATO, DATA_ULTIMA_MIGRAZIONE, PIVA, ID_ELAB)
			SELECT V_CLIENTI_CONTRSEI_CON_MIGRAZ.CODICE_FISCALE, V_CLIENTI_CONTRSEI_CON_MIGRAZ.RETE_PB, V_CLIENTI_CONTRSEI_CON_MIGRAZ.CODICE_CONTRATTO, V_CLIENTI_CONTRSEI_CON_MIGRAZ.STATO_CONTRATTO_SEI, V_CLIENTI_CONTRSEI_CON_MIGRAZ.DATA_SOTTOSCRIZIONE_C6, V_CLIENTI_CONTRSEI_CON_MIGRAZ.DATA_CHIUSURA_C6, V_CLIENTI_CONTRSEI_CON_MIGRAZ.FLAG_CLIENTE_MIGRATO, V_CLIENTI_CONTRSEI_CON_MIGRAZ.DATA_ULTIMA_MIGRAZIONE, V_CLIENTI_CONTRSEI_CON_MIGRAZ.PIVA, @ID_ELAB 
			FROM C6Staging.V_CLIENTI_CONTRSEI_CON_MIGRAZ
			LEFT OUTER JOIN C6Storico.ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ
				ON V_CLIENTI_CONTRSEI_CON_MIGRAZ.CODICE_CONTRATTO = ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ.CODICE_CONTRATTO
			WHERE ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ.CODICE_CONTRATTO IS NULL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX VARIAZIONE_CONTRSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'VARIAZIONE_CONTRSEI')
		BEGIN
			DELETE FROM C6Storico.ST_VARIAZIONE_CONTRSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_VARIAZIONE_CONTRSEI
			(CODICE_CONTRATTO, CODICE_FISCALE, RETE_PB, PB, DATA_PERFEZIONAMENTO_BASE, DATA_SOTTOSCRIZIONE_BASE, DATA_CHIUSURA_BASE, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, PRESSO, CPP, FLAG_STAMPA_REPORT, FLAG_EMISSIONE_FATTURA, EMAIL, FREQUENZA_DIAGNOSI, FREQUENZA_MONITORAGGIO, DATA_PERFEZIONAMENTO_C6, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, ORDINE_DI_ELABORAZIONE_RIGA, ULTIMO_PROGRESSIVO_INVIO, ULTIMA_DATA_INVIO, ULTIMA_DATA_ELABORAZIONE, ID_ELAB)
			SELECT CODICE_CONTRATTO, CODICE_FISCALE, RETE_PB, PB, DATA_PERFEZIONAMENTO_BASE, DATA_SOTTOSCRIZIONE_BASE, DATA_CHIUSURA_BASE, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, PRESSO, CPP, FLAG_STAMPA_REPORT, FLAG_EMISSIONE_FATTURA, EMAIL, FREQUENZA_DIAGNOSI, FREQUENZA_MONITORAGGIO, DATA_PERFEZIONAMENTO_C6, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, ORDINE_DI_ELABORAZIONE_RIGA, ULTIMO_PROGRESSIVO_INVIO, ULTIMA_DATA_INVIO, ULTIMA_DATA_ELABORAZIONE, @ID_ELAB 
			FROM C6Staging.VARIAZIONE_CONTRSEI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'WANAB')
	--		BEGIN
	--			DELETE FROM C6Storico.ST_WANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--			INSERT INTO C6Storico.ST_WANAB
	--			(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
	--			SELECT WANAB.RETE, WANAB.CODAREA, WANAB.CODPROG, WANAB.CODFIS, WANAB.DTRIF, WANAB.DTFINE, WANAB.DTINI, WANAB.CTVINI, WANAB.DTRENDMAX, WANAB.RENDMAX, WANAB.DTRENDMIN, WANAB.RENDMIN, WANAB.DTCTV, WANAB.CTV, WANAB.RENDATT, WANAB.DTCTVMAX, WANAB.CTVMAX, WANAB.DTCTVMIN, WANAB.CTVMIN, WANAB.CVN, WANAB.CVN_IA, WANAB.CVN_IT, WANAB.APP_INI, WANAB.TOT_APP, WANAB.TOT_LIQ, WANAB.TOT_CED, WANAB.TOT_DIV, WANAB.DCD, WANAB.DCVN, WANAB.SCARTO, WANAB.NTOT_APP, WANAB.NTOT_LIQ, @ID_ELAB 
	--			FROM C6Staging.WANAB
	--			LEFT OUTER JOIN C6Storico.ST_WANAB
	--				ON WANAB.RETE = ST_WANAB.RETE
	--				AND WANAB.CODAREA = ST_WANAB.CODAREA
	--				AND WANAB.CODPROG = ST_WANAB.CODPROG
	--				AND WANAB.CODFIS = ST_WANAB.CODFIS
	--				AND WANAB.DTRIF = ST_WANAB.DTRIF
	--			WHERE ST_WANAB.RETE IS NULL
	-- 		END
  
	--XXXXXXXXXXXXXXXXXXXXXXXX WRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'WRENAB')
	--		BEGIN
	--			DELETE FROM C6Storico.ST_WRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--			INSERT INTO C6Storico.ST_WRENAB
	--			(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
	--			SELECT WRENAB.RETE, WRENAB.CODAREA, WRENAB.CODPROG, WRENAB.CODFIS, WRENAB.DTRIF, WRENAB.DTVALORIZ, WRENAB.CTV, WRENAB.DTINIZ, WRENAB.RENDINIZ, WRENAB.DTTRIM, WRENAB.RENDTRIM, WRENAB.DTANNO, WRENAB.RENDANNO, WRENAB.CVN, WRENAB.CVN_IA, WRENAB.CVN_IT, WRENAB.APP_INI, WRENAB.TOT_APP, WRENAB.TOT_LIQ, WRENAB.TOT_CED, WRENAB.TOT_DIV, WRENAB.DCD, WRENAB.DCVN, WRENAB.SCARTO, WRENAB.NTOT_APP, WRENAB.NTOT_LIQ, @ID_ELAB 
	--			FROM C6Staging.WRENAB
	--			LEFT OUTER JOIN C6Storico.ST_WRENAB
	--				ON WRENAB.RETE = ST_WRENAB.RETE
	--				AND WRENAB.CODAREA = ST_WRENAB.CODAREA
	--				AND WRENAB.CODPROG = ST_WRENAB.CODPROG
	--				AND WRENAB.CODFIS = ST_WRENAB.CODFIS
	--				AND WRENAB.DTRIF = ST_WRENAB.DTRIF
	--				AND WRENAB.DTVALORIZ = ST_WRENAB.DTVALORIZ
	--			WHERE ST_WRENAB.RETE IS NULL
	--  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSCABP')
	--		BEGIN
	--			DELETE FROM C6Storico.ST_WSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--			INSERT INTO C6Storico.ST_WSCABP
	--			(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
	--			SELECT WSCABP.RETE, WSCABP.CODAREA, WSCABP.CODPROG, WSCABP.CODFIS, WSCABP.DTRIF, WSCABP.TIPPROD, WSCABP.CODCONF, WSCABP.SUBPROD, WSCABP.CODPROD, WSCABP.CONTO, WSCABP.CUSTGAR, WSCABP.RUBR, WSCABP.CODABI, WSCABP.TERMID, WSCABP.ANNO, WSCABP.PROG, WSCABP.DTINGRESSO, WSCABP.ISTITUTO, WSCABP.TIPO_PRODOTT, WSCABP.CONTO_OP, WSCABP.STRUM_FIN, WSCABP.ID_MOVIM, WSCABP.TIPO_OP, WSCABP.RESTART, WSCABP.DT_ING_USC, WSCABP.ING_USC, WSCABP.COD_ERR, WSCABP.DESCR_ERR, WSCABP.DT_ELAB, WSCABP.DT_INS, WSCABP.PCT, WSCABP.PROVENIENZA, @ID_ELAB 
	--			FROM C6Staging.WSCABP 
	--			LEFT OUTER JOIN C6Storico.ST_WSCABP
	--				ON WSCABP.RETE = ST_WSCABP.RETE
	--				AND WSCABP.CODAREA = ST_WSCABP.CODAREA
	--				AND WSCABP.CODPROG = ST_WSCABP.CODPROG
	--				AND WSCABP.CODFIS = ST_WSCABP.CODFIS
	--			WHERE ST_WSCABP.RETE IS NULL
	-- 		END
 
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

	-- XX -- XX -- XX AGGIORNAMENTO DATI C6Staging.TabelleStoricizzate XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6Staging.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END
END


GO
/****** Object:  StoredProcedure [C6Staging].[SRV_STORICIZZAZIONE_OLD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- [C6Staging].[SRV_STORICIZZAZIONE] 'ACBDENOTH'
CREATE PROCEDURE [C6Staging].[SRV_STORICIZZAZIONE_OLD]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MART.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENOTH XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENOTH')
		BEGIN
			DELETE FROM C6Storico.ST_ACBDENOTH WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ACBDENOTH
			(OID_, VERSION_, BDPERCENTAGE, BDBETA, F_OID__PASSE_CDF1A, F_PFINANCIAL_815C0, ID_ELAB)
			SELECT OID_, VERSION_, BDPERCENTAGE, BDBETA, F_OID__PASSE_CDF1A, F_PFINANCIAL_815C0, @ID_ELAB 
			FROM C6Staging.ACBDENOTH
		END

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENTRY XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENTRY')
		BEGIN
			DELETE FROM C6Storico.ST_ACBDENTRY WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ACBDENTRY
			(OID_, VERSION_, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID__PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, ID_ELAB)
			SELECT OID_, VERSION_, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID__PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, @ID_ELAB 
			FROM C6Staging.ACBDENTRY
		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADBKRELAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADBKRELAT')
		BEGIN	
			DELETE FROM C6Storico.ST_ADBKRELAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ADBKRELAT
			(OID_, VERSION_, TYPE__TYPE_CAB4A, ADBKRELDESCR, ADBKRELNOTE, DEPENDANT, PHONEDECIMAL, F_OID__ADBKR_CBA9A, F_PADDRESSBO_24DA1, ID_ELAB)
			SELECT OID_, VERSION_, TYPE__TYPE_CAB4A, ADBKRELDESCR, ADBKRELNOTE, DEPENDANT, PHONEDECIMAL, F_OID__ADBKR_CBA9A, F_PADDRESSBO_24DA1, @ID_ELAB 
			FROM C6Staging.ADBKRELAT
 		END

	--XXXXXXXXXXXXXXXXXXXXXXXX ADS4WS_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
		BEGIN
			DELETE FROM C6Storico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ADS4WS_PROMOTORI
			(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, Telefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
			SELECT Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, Telefono, TelefonoAgenzia1, TelefonoAgenzia2, @ID_ELAB 
			FROM C6Staging.ADS4WS_PROMOTORI
 		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_ASSET_CLASS_PER_PROMET XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_ASSET_CLASS_PER_PROMET')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_ASSET_CLASS_PER_PROMET WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_ASSET_CLASS_PER_PROMET
			(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
			SELECT CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, @ID_ELAB 
			FROM C6Staging.ALL_ASSET_CLASS_PER_PROMET
 		END
  
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_PB')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_CF_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_CF_PB
			(ID_CLI, NOME, COGNOME, CODICEFISCALE, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, ID_ELAB)
			SELECT ID_CLI, NOME, COGNOME, CODICEFISCALE, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, @ID_ELAB 
			FROM C6Staging.ALL_CF_PB
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_STATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_STATO')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_CF_STATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_CF_STATO
			(CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, ID_ELAB)
			SELECT CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, @ID_ELAB 
			FROM C6Staging.ALL_CF_STATO
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CONSUL_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CONSUL_ASUL')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_CONSUL_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_CONSUL_ASUL
			(CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, ID_ELAB)
			SELECT CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, @ID_ELAB 
			FROM C6Staging.ALL_CONSUL_ASUL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATR_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATR_TERZI')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_PATR_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_PATR_TERZI
			(CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, CAPITALE_INVESTITO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATETIME_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESC, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, ID_ELAB)
			SELECT CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, CAPITALE_INVESTITO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATETIME_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESC, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, @ID_ELAB 
			FROM C6Staging.ALL_PATR_TERZI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATRBF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATRBF')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_PATRBF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_PATRBF
			(AGENTE, CODICEFISCALE, PATRIMONIO_BF_CON_CC, PATRIMONIOBF_SENZA_CC, PATRIMONIOBF_SOLO_CC, ID_ELAB)
			SELECT AGENTE, CODICEFISCALE, PATRIMONIO_BF_CON_CC, PATRIMONIOBF_SENZA_CC, PATRIMONIOBF_SOLO_CC, @ID_ELAB 
			FROM C6Staging.ALL_PATRBF
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_POS_CONS_CAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_POS_CONS_CAT')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_POS_CONS_CAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_POS_CONS_CAT
			(CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, PK_PRC_, TIPO_PROGETTO, C_CTVNEEDARE_EA4FB, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, PERCENTUALE_MODELLO, ID_MONITORAGGIO_, NOME_PROGETTO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, CONTROVALORE_PER_INV, C_INVESTIMEN_60625, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, ID_ELAB)
			SELECT CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, PK_PRC_, TIPO_PROGETTO, C_CTVNEEDARE_EA4FB, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, PERCENTUALE_MODELLO, ID_MONITORAGGIO_, NOME_PROGETTO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, CONTROVALORE_PER_INV, C_INVESTIMEN_60625, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, @ID_ELAB 
			FROM C6Staging.ALL_POS_CONS_CAT
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PROPOSTA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PROPOSTA')
		BEGIN
			DELETE FROM C6Storico.ST_ALL_PROPOSTA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ALL_PROPOSTA
			(AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, ID_ELAB)
			SELECT AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, @ID_ELAB 
			FROM C6Staging.ALL_PROPOSTA
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
		BEGIN
			DELETE FROM C6Storico.ST_ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_ASSETCLASS
			(VERSION_, OID_, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ORDINE, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID__ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
			SELECT VERSION_, OID_, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ORDINE, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID__ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, @ID_ELAB 
			FROM C6Staging.ASSETCLASS
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX C_BO_453FB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'C_BO_453FB')
		BEGIN
			DELETE FROM C6Storico.ST_C_BO_453FB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_C_BO_453FB
			(OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, ID_ELAB)
			SELECT OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, @ID_ELAB 
			FROM C6Staging.C_BO_453FB
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATINAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATINAREA')
		BEGIN
			DELETE FROM C6Storico.ST_CATINAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CATINAREA
			(OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, ID_ELAB)
			SELECT OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, @ID_ELAB 
			FROM C6Staging.CATINAREA
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATITEMREF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATITEMREF')
		BEGIN
			DELETE FROM C6Storico.ST_CATITEMREF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CATITEMREF
			(OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, ID_ELAB)
			SELECT OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, @ID_ELAB 
			FROM C6Staging.CATITEMREF
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX COMPTYPE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'COMPTYPE')
		BEGIN
			DELETE FROM C6Storico.ST_COMPTYPE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_COMPTYPE
			(OID_, TYPE_, ID_ELAB)
			SELECT OID_, TYPE_, @ID_ELAB 
			FROM C6Staging.COMPTYPE
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO')
		BEGIN
			DELETE FROM C6Storico.ST_CONO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CONO
			(OID_, VERSION_, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, ID_ELAB)
			SELECT OID_, VERSION_, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, @ID_ELAB 
			FROM C6Staging.CONO
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSAREA')
		BEGIN
			DELETE FROM C6Storico.ST_CONSAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CONSAREA
			(OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, ID_ELAB)
			SELECT OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, @ID_ELAB 
			FROM C6Staging.CONSAREA
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSUL')
		BEGIN
			DELETE FROM C6Storico.ST_CONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_CONSUL
			(OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, ID_ELAB)
			SELECT OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, @ID_ELAB 
			FROM C6Staging.CONSUL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INDREND XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INDREND')
		BEGIN
			DELETE FROM C6Storico.ST_INDREND WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_INDREND
			(OID_, VERSION_, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, ID_ELAB)
			SELECT OID_, VERSION_, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, @ID_ELAB 
			FROM C6Staging.INDREND
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INSTRBDS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INSTRBDS')
		BEGIN
			DELETE FROM C6Storico.ST_INSTRBDS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_INSTRBDS
			(OID_, VERSION_, BDISIN, BDMAF, F_OID__PCATA_5DDA6, PROVENIENZA, ID_ELAB)
			SELECT OID_, VERSION_, BDISIN, BDMAF, F_OID__PCATA_5DDA6, PROVENIENZA, @ID_ELAB 
			FROM C6Staging.INSTRBDS
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX MACROASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MACROASSETCLASS')
		BEGIN
			DELETE FROM C6Storico.ST_MACROASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_MACROASSETCLASS
			(ASSETCLASSID, ASSETCLASSNAME, ORDINE, ID_ELAB)
			SELECT ASSETCLASSID, ASSETCLASSNAME, ORDINE, @ID_ELAB 
			FROM C6Staging.MACROASSETCLASS
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NEEDAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NEEDAREA')
		BEGIN
			DELETE FROM C6Storico.ST_NEEDAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_NEEDAREA
			(OID_, VERSION_, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, ID_ELAB)
			SELECT OID_, VERSION_, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, @ID_ELAB 
			FROM C6Staging.NEEDAREA
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX OTHINTRST XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'OTHINTRST')
		BEGIN
			DELETE FROM C6Storico.ST_OTHINTRST WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_OTHINTRST
			(OID_, VERSION_, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, ID_ELAB)
			SELECT OID_, VERSION_, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, @ID_ELAB 
			FROM C6Staging.OTHINTRST
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PORTMOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PORTMOD')
		BEGIN
			DELETE FROM C6Storico.ST_PORTMOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PORTMOD
			(OID_, VERSION_, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, ID_ELAB)
			SELECT OID_, VERSION_, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, @ID_ELAB 
			FROM C6Staging.PORTMOD
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX POSITION XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'POSITION')
		BEGIN
			DELETE FROM C6Storico.ST_POSITION WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_POSITION
			(OID_, VERSION_, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE__CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID__POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, ID_ELAB)
			SELECT OID_, VERSION_, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE__CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID__POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, @ID_ELAB 
			FROM C6Staging.POSITION
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PRCONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PRCONSUL')
		BEGIN
			DELETE FROM C6Storico.ST_PRCONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PRCONSUL
			(OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, ID_ELAB)
			SELECT OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, @ID_ELAB 
			FROM C6Staging.PRCONSUL
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_AGGR XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_AGGR')
		BEGIN
			DELETE FROM C6Storico.ST_PROMETEIA_AGGR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PROMETEIA_AGGR
			(Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, ID_ELAB)
			SELECT Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, @ID_ELAB 
			FROM C6Staging.PROMETEIA_AGGR
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_DETT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_DETT')
		BEGIN
			DELETE FROM C6Storico.ST_PROMETEIA_DETT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_PROMETEIA_DETT
			(Rete, CodiceFiscale, Portafoglio, CodiceProdotto, Piazza, CodVal, Classe, VarAssoluto, VaRPercentuale, CVarAssoluto, CVarPercentuale, RiskSize, McVar, McVarP, TipoCopertura, CtvNominale, CtvReale, ID_ELAB)
			SELECT Rete, CodiceFiscale, Portafoglio, CodiceProdotto, Piazza, CodVal, Classe, VarAssoluto, VaRPercentuale, CVarAssoluto, CVarPercentuale, RiskSize, McVar, McVarP, TipoCopertura, CtvNominale, CtvReale, @ID_ELAB 
			FROM C6Staging.PROMETEIA_DETT
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX QUANTIF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'QUANTIF')
		BEGIN
			DELETE FROM C6Storico.ST_QUANTIF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_QUANTIF
			(OID_, VERSION_, UPDATETIMEDATETIME, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, STATEPENSIONCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID__ADDRE_81D21, ID_ELAB)
			SELECT OID_, VERSION_, UPDATETIMEDATETIME, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, STATEPENSIONCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID__ADDRE_81D21, @ID_ELAB 
			FROM C6Staging.QUANTIF
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S25_CLI_CLIENTE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S25_CLI_CLIENTE')
		BEGIN
			DELETE FROM C6Storico.ST_S25_CLI_CLIENTE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_S25_CLI_CLIENTE
			(NOME, COGNOME, CODICEFISCALE, DATANASCITA, ETA, PROFESSIONE, NUMEROCOMPONENTI, NUMEROFIGLI, STATO_CIVILE, INDIRIZZO, RETE, ID_ELAB)
			SELECT NOME, COGNOME, CODICEFISCALE, DATANASCITA, ETA, PROFESSIONE, NUMEROCOMPONENTI, NUMEROFIGLI, STATO_CIVILE, INDIRIZZO, RETE, @ID_ELAB 
			FROM C6Staging.S25_CLI_CLIENTE
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S4_S5_S13_TRAD_UNTIL_LIV3 XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S4_S5_S13_TRAD_UNTIL_LIV3')
		BEGIN
			DELETE FROM C6Storico.ST_S4_S5_S13_TRAD_UNTIL_LIV3 WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
			(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, ID_ELAB)
			SELECT DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, @ID_ELAB 
			FROM C6Staging.S4_S5_S13_TRAD_UNTIL_LIV3
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_ASS_UNIT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_ASS_UNIT')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_ASS_UNIT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_ASS_UNIT
			(CODICECONTRATTO, CODICESOTTOPRODOTTO, CODICEINTERNO, CONTROVALORE, DATADIRIFERIMENTO, ISINFITTIZIO, CODICEISINSOTTOSTANTE, CODICEMAFSOTTOSTANTE, ID_ELAB)
			SELECT CODICECONTRATTO, CODICESOTTOPRODOTTO, CODICEINTERNO, CONTROVALORE, DATADIRIFERIMENTO, ISINFITTIZIO, CODICEISINSOTTOSTANTE, CODICEMAFSOTTOSTANTE, @ID_ELAB 
			FROM C6Staging.SPB_ASS_UNIT
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CLIENTI')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_CLIENTI
			(CODICERETE, CODICEAGENTE, CODICEFISCALE, NOME, COGNOME, DATADINASCITA, NAZIONEDINASCITA, COMUNEDINASCITA, SESSO, CITTADINANZA, TITOLODISTUDIOCODICE, TITOLODISTUDIODESCRIZIONE, TIPOCLIENTE, DATAATTIVAZIONECLIENTE, ID_ELAB)
			SELECT CODICERETE, CODICEAGENTE, CODICEFISCALE, NOME, COGNOME, DATADINASCITA, NAZIONEDINASCITA, COMUNEDINASCITA, SESSO, CITTADINANZA, TITOLODISTUDIOCODICE, TITOLODISTUDIODESCRIZIONE, TIPOCLIENTE, DATAATTIVAZIONECLIENTE, @ID_ELAB 
			FROM C6Staging.SPB_CLIENTI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CONTR_SINTESI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CONTR_SINTESI')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_CONTR_SINTESI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_CONTR_SINTESI
			(POSITIONID, RETE, CODAGENTE, CODICEFISCALE, CODICECONTRATTO, NUMEROPOLIZZA, CONTO, RUBRICATO, CUSTODIAGARANZIA, PCTTITOLOCOLLEGATO, TIPOPRODOTTO, CODICEINTERNO, CODICESOTTOPRODOTTO, CODICEMAF, PCTKEY, PCTDESCRIZIONTETITOLOCOLLEGATO, QUOTE, PREZZO, CTV, PARTVIA, PARTVIAAL, DATADIRIFERIMENTO, DATADISOTTOSCRIZIONE, DATAVALNAVAL, CODICESTATO, DATAINIZIORENDIMENTO, RENDIMENTODASOTTOSCRIZIONE, DATATRIMESTRERENDIMENTO, RENDIMENTODAINIZIOTRIMESTRE, DATAANNORENDIMENTO, RENDIMENTODAINIZIOANNO, VALORE, CVN, ID_ELAB)
			SELECT POSITIONID, RETE, CODAGENTE, CODICEFISCALE, CODICECONTRATTO, NUMEROPOLIZZA, CONTO, RUBRICATO, CUSTODIAGARANZIA, PCTTITOLOCOLLEGATO, TIPOPRODOTTO, CODICEINTERNO, CODICESOTTOPRODOTTO, CODICEMAF, PCTKEY, PCTDESCRIZIONTETITOLOCOLLEGATO, QUOTE, PREZZO, CTV, PARTVIA, PARTVIAAL, DATADIRIFERIMENTO, DATADISOTTOSCRIZIONE, DATAVALNAVAL, CODICESTATO, DATAINIZIORENDIMENTO, RENDIMENTODASOTTOSCRIZIONE, DATATRIMESTRERENDIMENTO, RENDIMENTODAINIZIOTRIMESTRE, DATAANNORENDIMENTO, RENDIMENTODAINIZIOANNO, VALORE, CVN, @ID_ELAB 
			FROM C6Staging.SPB_CONTR_SINTESI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_INDIRIZZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_INDIRIZZI')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_INDIRIZZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_INDIRIZZI
			(RETE, CODAGENTE, CODICEFISCALE, TIPOINDIRIZZO, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, ID_ELAB)
			SELECT RETE, CODAGENTE, CODICEFISCALE, TIPOINDIRIZZO, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, @ID_ELAB 
			FROM C6Staging.SPB_INDIRIZZI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_MIFID')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_MIFID
			(RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, ID_ELAB)
			SELECT RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, @ID_ELAB 
			FROM C6Staging.SPB_MIFID
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_NAC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_NAC')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_NAC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_NAC
			(COGNOMENOME, CODICEAGENTE, RETE, CODICERETE, CODICEMANAGER, LIVELLONELLAGERARCHIA, SUBORDINATI, ID_ELAB)
			SELECT COGNOMENOME, CODICEAGENTE, RETE, CODICERETE, CODICEMANAGER, LIVELLONELLAGERARCHIA, SUBORDINATI, @ID_ELAB 
			FROM C6Staging.SPB_NAC
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PARTITE_VIAGG XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PARTITE_VIAGG')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_PARTITE_VIAGG WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_PARTITE_VIAGG
			(RETE, CODAGENTE, CODICEFISCALE, CODICECONFERIMENTO, DESCRPRODOTTO, IMPORTOVERSATO, DATAACQUISIZIONE, DATAINCASSO, DATAVALUTAFONDO, NOTA, ID_ELAB)
			SELECT RETE, CODAGENTE, CODICEFISCALE, CODICECONFERIMENTO, DESCRPRODOTTO, IMPORTOVERSATO, DATAACQUISIZIONE, DATAINCASSO, DATAVALUTAFONDO, NOTA, @ID_ELAB 
			FROM C6Staging.SPB_PARTITE_VIAGG
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PROF_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PROF_RISCHIO')
		BEGIN
			DELETE FROM C6Storico.ST_SPB_PROF_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_SPB_PROF_RISCHIO
			(CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, ID_ELAB)
			SELECT CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, @ID_ELAB 
			FROM C6Staging.SPB_PROF_RISCHIO
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX V_CLIENTI_CONTRSEI_CON_MIGRAZ XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'V_CLIENTI_CONTRSEI_CON_MIGRAZ')
		BEGIN
			DELETE FROM C6Storico.ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_V_CLIENTI_CONTRSEI_CON_MIGRAZ
			(CODICE_FISCALE, RETE_PB, CODICE_CONTRATTO, STATO_CONTRATTO_SEI, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, FLAG_CLIENTE_MIGRATO, DATA_ULTIMA_MIGRAZIONE, ID_ELAB)
			SELECT CODICE_FISCALE, RETE_PB, CODICE_CONTRATTO, STATO_CONTRATTO_SEI, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, FLAG_CLIENTE_MIGRATO, DATA_ULTIMA_MIGRAZIONE, @ID_ELAB 
			FROM C6Staging.V_CLIENTI_CONTRSEI_CON_MIGRAZ
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX VARIAZIONE_CONTRSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'VARIAZIONE_CONTRSEI')
		BEGIN
			DELETE FROM C6Storico.ST_VARIAZIONE_CONTRSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_VARIAZIONE_CONTRSEI
			(CODICE_CONTRATTO, CODICE_FISCALE, RETE_PB, PB, DATA_PERFEZIONAMENTO_BASE, DATA_SOTTOSCRIZIONE_BASE, DATA_CHIUSURA_BASE, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, PRESSO, CPP, FLAG_STAMPA_REPORT, FLAG_EMISSIONE_FATTURA, EMAIL, FREQUENZA_DIAGNOSI, FREQUENZA_MONITORAGGIO, DATA_PERFEZIONAMENTO_C6, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, ORDINE_DI_ELABORAZIONE_RIGA, ULTIMO_PROGRESSIVO_INVIO, ULTIMA_DATA_INVIO, ULTIMA_DATA_ELABORAZIONE, ID_ELAB)
			SELECT CODICE_CONTRATTO, CODICE_FISCALE, RETE_PB, PB, DATA_PERFEZIONAMENTO_BASE, DATA_SOTTOSCRIZIONE_BASE, DATA_CHIUSURA_BASE, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, PRESSO, CPP, FLAG_STAMPA_REPORT, FLAG_EMISSIONE_FATTURA, EMAIL, FREQUENZA_DIAGNOSI, FREQUENZA_MONITORAGGIO, DATA_PERFEZIONAMENTO_C6, DATA_SOTTOSCRIZIONE_C6, DATA_CHIUSURA_C6, ORDINE_DI_ELABORAZIONE_RIGA, ULTIMO_PROGRESSIVO_INVIO, ULTIMA_DATA_INVIO, ULTIMA_DATA_ELABORAZIONE, @ID_ELAB 
			FROM C6Staging.VARIAZIONE_CONTRSEI
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WANAB')
		BEGIN
			DELETE FROM C6Storico.ST_WANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_WANAB
			(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
			SELECT RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, @ID_ELAB 
			FROM C6Staging.WANAB
 		END
  
	--XXXXXXXXXXXXXXXXXXXXXXXX WRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WRENAB')
		BEGIN
			DELETE FROM C6Storico.ST_WRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_WRENAB
			(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
			SELECT RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, @ID_ELAB 
			FROM C6Staging.WRENAB
  		END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSCABP')
		BEGIN
			DELETE FROM C6Storico.ST_WSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
			INSERT INTO C6Storico.ST_WSCABP
			(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
			SELECT RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, @ID_ELAB 
			FROM C6Staging.WSCABP 
 		END
 
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

END

GO
/****** Object:  StoredProcedure [C6Staging].[SRV_SVUOTASTAGING]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6Staging].[SRV_SVUOTASTAGING]
AS
BEGIN
	SET NOCOUNT ON;

	TRUNCATE TABLE [C6Staging].[ACBDENOTH]
	
	TRUNCATE TABLE [C6Staging].[ACBDENTRY]
	
	TRUNCATE TABLE [C6Staging].[ADBKRELAT]
	
	TRUNCATE TABLE [C6Staging].[ADS4WS_PROMOTORI]
	
	TRUNCATE TABLE [C6Staging].[ALL_ASSET_CLASS_PER_PROMET]
	
	TRUNCATE TABLE [C6Staging].[ALL_CF_PB]
	
	TRUNCATE TABLE [C6Staging].[ALL_CF_STATO]
	
	TRUNCATE TABLE [C6Staging].[ALL_CONSUL_ASUL]
	
	TRUNCATE TABLE [C6Staging].[ALL_PATR_TERZI]
	
	TRUNCATE TABLE [C6Staging].[ALL_PATRBF]
	
	TRUNCATE TABLE [C6Staging].[ALL_POS_CONS_CAT]
	
	TRUNCATE TABLE [C6Staging].[ALL_PROPOSTA]
	
	TRUNCATE TABLE [C6Staging].[ASSETCLASS]
	
	TRUNCATE TABLE [C6Staging].[C_BO_453FB]
	
	TRUNCATE TABLE [C6Staging].[CATINAREA]
	
	TRUNCATE TABLE [C6Staging].[CATITEMREF]
	
	TRUNCATE TABLE [C6Staging].[COMPTYPE]
	
	TRUNCATE TABLE [C6Staging].[CONO]
	
	TRUNCATE TABLE [C6Staging].[CONSAREA]
	
	TRUNCATE TABLE [C6Staging].[CONSUL]
	
	TRUNCATE TABLE [C6Staging].[INDREND]
	
	TRUNCATE TABLE [C6Staging].[INSTRBDS]
	
	TRUNCATE TABLE [C6Staging].[MACROASSETCLASS]
	
	TRUNCATE TABLE [C6Staging].[NEEDAREA]
	
	TRUNCATE TABLE [C6Staging].[OTHINTRST]
	
	TRUNCATE TABLE [C6Staging].[PORTMOD]
	
	TRUNCATE TABLE [C6Staging].[POSITION]
	
	TRUNCATE TABLE [C6Staging].[PRCONSUL]
	
	TRUNCATE TABLE [C6Staging].[PROMETEIA_AGGR]
	
	TRUNCATE TABLE [C6Staging].[PROMETEIA_DETT]
	
	TRUNCATE TABLE [C6Staging].[QUANTIF]
	
	TRUNCATE TABLE [C6Staging].[S25_CLI_CLIENTE]
	
	TRUNCATE TABLE [C6Staging].[S4_S5_S13_TRAD_UNTIL_LIV3]
	
	TRUNCATE TABLE [C6Staging].[SPB_ASS_UNIT]
	
	TRUNCATE TABLE [C6Staging].[SPB_CLIENTI]
	
	TRUNCATE TABLE [C6Staging].[SPB_CONTR_SINTESI]
	
	TRUNCATE TABLE [C6Staging].[SPB_INDIRIZZI]
	
	TRUNCATE TABLE [C6Staging].[SPB_MIFID]
	
	TRUNCATE TABLE [C6Staging].[SPB_NAC]
	
	TRUNCATE TABLE [C6Staging].[SPB_PARTITE_VIAGG]
	
	TRUNCATE TABLE [C6Staging].[SPB_PROF_RISCHIO]
	
	TRUNCATE TABLE [C6Staging].[V_CLIENTI_CONTRSEI_CON_MIGRAZ]
	
	TRUNCATE TABLE [C6Staging].[VARIAZIONE_CONTRSEI]
	
	TRUNCATE TABLE [C6Staging].[WANAB]
	
	TRUNCATE TABLE [C6Staging].[WRENAB]
	
	TRUNCATE TABLE [C6Staging].[WSCABP]
	
END



GO
/****** Object:  StoredProcedure [C6Staging].[SRV_TABELLE_IN_STAGING]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6Staging].[SRV_TABELLE_IN_STAGING]
AS
BEGIN
	DECLARE @tabella AS VARCHAR(50) 
	SET @tabella = NULL

	SELECT TOP 1 @tabella = A.tabella
	FROM(
		SELECT tables.name tabella
		FROM sys.tables tables
		INNER JOIN sys.schemas schemas
			ON tables.schema_id = schemas.schema_id
		WHERE schemas.name = 'C6Staging'
			AND tables.name <> 'TabelleStoricizzate'
	) A
	WHERE A.tabella NOT IN (
		SELECT Nome 
		FROM C6Staging.TabelleStoricizzate
	)
	ORDER BY A.tabella

	-- inserisce dei NULL in TabelleStoricizzate!!!
	/*INSERT INTO [C6Staging].[TabelleStoricizzate]
           ([Nome])
	VALUES
           (@tabella)*/

	DECLARE @tabellaDaStoricizzare AS SMALLINT
	IF @tabella IS NOT NULL
		BEGIN
			INSERT INTO [C6Staging].[TabelleStoricizzate]
				   ([Nome], [Inizio])
			VALUES
				   (@tabella, GETDATE())
			EXEC C6Staging.SRV_STORICIZZAZIONE @tabella
			SET @tabellaDaStoricizzare = 1
		END
	ELSE
		SET @tabellaDaStoricizzare = 0

	SELECT @tabellaDaStoricizzare tabella, @tabella nome
	
END

GO
/****** Object:  StoredProcedure [C6Staging].[ST_INSERT_SCARTI_SIMPB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Staging].[ST_SELECT_FOR_ADS4WS] 1
           
CREATE procedure [C6Staging].[ST_INSERT_SCARTI_SIMPB]
	--@NomePacchetto AS VARCHAR(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_INSERT_SCARTI_SIMPB',
		GETDATE(),
		'Elaborazione giornaliera2'
	)
	
	TRUNCATE TABLE [C6Staging].[SPB_SCARTI]
	INSERT INTO [C6Staging].[SPB_SCARTI]
           ([Rete]
           ,[CodiceFiscale]
           ,[PacchettoSSIS]
           ,[ID_Elab])
			SELECT	[Rete]
					,[Cod_Fiscale]
					,'SPB_CONTRSINTESI' AS [PacchettoSSIS]
					,C6Mart.getIdElab()
			FROM  C6Mart.RP_VContrattiMigrati
			WHERE Cod_Fiscale NOT IN (SELECT CODICEFISCALE
										FROM C6Staging.SPB_CONTR_SINTESI)

	INSERT INTO [C6Staging].[SPB_SCARTI]
           ([Rete]
           ,[CodiceFiscale]
           ,[PacchettoSSIS]
           ,[ID_Elab])
			SELECT	[Rete]
					,[Cod_Fiscale]
					,'SPB_MIFID' AS [PacchettoSSIS]
					,C6Mart.getIdElab()
			FROM  C6Mart.RP_VContrattiMigrati
			WHERE Cod_Fiscale NOT IN (SELECT CODICEFISCALE
									 FROM C6Staging.SPB_MIFID)
			

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_INSERT_SCARTI_SIMPB' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_INSERT_SCARTI_SIMPB'
		)
END


GO
/****** Object:  StoredProcedure [C6Staging].[ST_SELECT_FOR_ADS4WS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Staging].[ST_SELECT_FOR_ADS4WS] 1
CREATE procedure [C6Staging].[ST_SELECT_FOR_ADS4WS]
	@Tipo AS INTEGER
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SELECT_FOR_ADS4WS',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	IF @Tipo = 1

	BEGIN
		-- ELIMINIAMO I CODICI FITTIZI
		SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM c6mart.vTuttiIContratti C6
		LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
		WHERE PF.RETE IS NULL
          AND C6.COD_AGENTE NOT IN ('009202')
        --AND C6.COD_AGENTE NOT IN ('003064','015115','015117','004038')
		
	END 

	ELSE

	BEGIN
		-- PRENDO I CODICI FITTIZI
		SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM c6mart.vTuttiIContratti C6
		INNER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
	END
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SELECT_FOR_ADS4WS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SELECT_FOR_ADS4WS'
		)
END








GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[agg_codana_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








--select * from c6martperiodico.gestione_pdf_ftp where ID_fk_zip=3302
--select * from c6martperiodico.gestione_zip_ftp where id=3302

CREATE procedure [C6StagingPeriodico].[agg_codana_tabellone]
	as
	begin
	if( (select count(*) from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER]) > 0) 
	begin  
		UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set codana=tab.CODANA,flag6kc=tab.FLAG6KC,flgorig=tab.FLGORIG,flgimm=tab.FLGIMM
		from [C6StagingPeriodico].[WANVIPS] tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on tab.rete+tab.CODFIS= a.chiave_acn
		where a.chiave_acn not like '%@%' and a.chiave_acn in (select rete+COD_FISCALE from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER])

		UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set codana=tab.CODANA,flag6kc=tab.FLAG6KC,flgorig=tab.FLGORIG,flgimm=tab.FLGIMM
		from [C6StagingPeriodico].[WANVIPS] tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on tab.rete+'FF@'+tab.CODMAN= a.chiave_acn
		where tab.codman <> '' and a.chiave_acn in (select rete+COD_FISCALE from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER])

--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--	set zip=zip.nomefile+'_LOTTO_'+rtrim(cast(fkidelaborazionezip as char))+'_PACK_'+rtrim(cast(id as char))+'.7z'
--from c6martperiodico.gestione_pdf_ftp pdf inner join c6martperiodico.gestione_zip_ftp zip on id_fk_zip=id
--inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
--on pdf.rete+pdf.codicefiscale=a.chiave_acn
--where a.chiave_acn in (select rete+COD_FISCALE from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER])

--if ((select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc) is NULL)
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null
--end
--else
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=(select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc)+1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null and lotto is null
--end

end
else 
begin
UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set codana=tab.CODANA,flag6kc=tab.FLAG6KC,flgorig=tab.FLGORIG,flgimm=tab.FLGIMM
		from [C6StagingPeriodico].[WANVIPS] tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on tab.rete+tab.CODFIS= a.chiave_acn
		where a.chiave_acn not like '%@%'

		UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set codana=tab.CODANA,flag6kc=tab.FLAG6KC,flgorig=tab.FLGORIG,flgimm=tab.FLGIMM
		from [C6StagingPeriodico].[WANVIPS] tab
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
		on tab.rete+'FF@'+tab.CODMAN= a.chiave_acn
		where tab.codman <> ''

--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--	set zip=zip.nomefile+'_LOTTO_'+rtrim(cast(fkidelaborazionezip as char))+'_PACK_'+rtrim(cast(id as char))+'.7z'
--from c6martperiodico.gestione_pdf_ftp pdf inner join c6martperiodico.gestione_zip_ftp zip on id_fk_zip=id
--inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
--on pdf.rete+pdf.codicefiscale=a.chiave_acn
--select * from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] where zip is not null
--
--if ((select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc) is NULL)
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null
--end
--else
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=(select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc)+1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null and lotto is null
--end
--drop table if exists #test
--create table #test (
--datainvio varchar(8),
--id int identity

--)


----select distinct SUBSTRING ( convert(varchar, DataInvio, 112) ,1 , 11) as DataInvio from  c6martperiodico.gestione_pdf_ftp where  DataInvio is not null order by DataInvio

--insert into #test 
--select distinct SUBSTRING ( convert(varchar, DataInvio, 112) ,1 , 11) as DataInvio from  c6martperiodico.gestione_pdf_ftp where  DataInvio is not null order by DataInvio

----select * from #test

--update C6MartPeriodico.tabellone 
--set lotto=t.id
--from C6MartPeriodico.tabellone a left join #test t on a.zip like '%'+t.datainvio+'%' 

--select * from C6MartPeriodico.tabellone where lotto='3'

--select a.rete,a.chiave_acn,t.id from C6MartPeriodico.tabellone a left join #test t on a.zip like '%'+t.datainvio+'%' 

--select distinct Rete,CodiceFiscale from c6martperiodico.gestione_pdf_ftp where DataInvio is not null


end	

truncate table C6MartPeriodico.APPREND_DTSX_Tabellone 

insert into C6MartPeriodico.APPREND_DTSX_Tabellone 
select * from C6MartPeriodico.vTabellone
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[agg_lotto_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--select * from c6martperiodico.gestione_pdf_ftp where ID_fk_zip=3302
--select * from c6martperiodico.gestione_zip_ftp where id=3302

CREATE procedure [C6StagingPeriodico].[agg_lotto_tabellone]
	as
	begin
	if( (select count(*) from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER]) > 0) 
	begin  

UPDATE [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
	set zip=zip.nomefile+'_LOTTO_'+rtrim(cast(fkidelaborazionezip as char))+'_PACK_'+rtrim(cast(id as char))+'.7z'
from c6martperiodico.gestione_pdf_ftp pdf inner join c6martperiodico.gestione_zip_ftp zip on id_fk_zip=id
inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
on pdf.rete+pdf.codicefiscale=a.chiave_acn
where a.chiave_acn in (select rete+COD_FISCALE from [C6StagingPeriodico].[APPO_CONTRATTI_LIMITER])

--if ((select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc) is NULL)
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null
--end
--else
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=(select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc)+1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null and lotto is null
--end

end
else 
begin


UPDATE [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
	set zip=zip.nomefile+'_LOTTO_'+rtrim(cast(fkidelaborazionezip as char))+'_PACK_'+rtrim(cast(id as char))+'.7z'
from c6martperiodico.gestione_pdf_ftp pdf inner join c6martperiodico.gestione_zip_ftp zip on id_fk_zip=id
inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a 
on pdf.rete+pdf.codicefiscale=a.chiave_acn
--select * from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] where zip is not null
--
--if ((select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc) is NULL)
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null
--end
--else
--begin
--update [C6StampeCentralizzate].[C6MartPeriodico].tabellone 
--set lotto=(select top 1 lotto from C6MartPeriodico.tabellone order by lotto desc)+1
--from [C6StampeCentralizzate].[C6MartPeriodico].tabellone t
--where t.zip is not null and lotto is null
--end



----select distinct SUBSTRING ( convert(varchar, DataInvio, 112) ,1 , 11) as DataInvio from  c6martperiodico.gestione_pdf_ftp where  DataInvio is not null order by DataInvio

--insert into #test 
--select distinct SUBSTRING ( convert(varchar, DataInvio, 112) ,1 , 11) as DataInvio from  c6martperiodico.gestione_pdf_ftp where  DataInvio is not null order by DataInvio

----select * from #test

--update C6MartPeriodico.tabellone 
--set lotto=t.id
--from C6MartPeriodico.tabellone a left join #test t on a.zip like '%'+t.datainvio+'%' 

----select * from C6MartPeriodico.tabellone where lotto='3'

----select a.rete,a.chiave_acn,t.id from C6MartPeriodico.tabellone a left join #test t on a.zip like '%'+t.datainvio+'%' 

----select distinct Rete,CodiceFiscale from c6martperiodico.gestione_pdf_ftp where DataInvio is not null


end	
drop table if exists #test
create table #test (
datainvio varchar(8),
id int identity

)
insert into #test 
select distinct SUBSTRING ( convert(varchar, DataInvio, 112) ,1 , 11) as DataInvio from  c6martperiodico.gestione_pdf_ftp where  DataInvio is not null order by DataInvio

--select * from #test

update C6MartPeriodico.tabellone 
set lotto=t.id
from C6MartPeriodico.tabellone a left join #test t on a.zip like '%'+t.datainvio+'%' 
end


truncate table C6MartPeriodico.APPREND_DTSX_Tabellone 

insert into C6MartPeriodico.APPREND_DTSX_Tabellone 
select * from C6MartPeriodico.vTabellone

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[agg_wh_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE   procedure [C6StagingPeriodico].[agg_wh_tabellone]
	as
	begin

	drop table if exists #appo
	drop table if exists #appo1
	
	SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc


	-- 16/7/2018
	into #appo
	-- fine 16/7/2018

    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then 'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
  
    and PATRBF.rete+ PATRBF.cod_fiscale in (select chiave_acn from c6martperiodico.tabellone)
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' WHEN PATRBF.RETE='S' then  'Patrimonio Sanpaolo Invest' WHEN PATRBF.RETE='W' then 'Patrimonio IW Private Inv.' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
       and terzi.rete+ terzi.cod_fiscale in (select chiave_acn from c6martperiodico.tabellone)
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
		  WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'W'  then 'Patrimonio IW Private Inv.'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
       and rete+cod_fiscale in (select chiave_acn from c6martperiodico.tabellone)
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
       and rete+ cod_fiscale in (select chiave_acn from c6martperiodico.tabellone)
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

	select a.RETE,a.COD_FISCALE,a.VARMAX,a.VAR,a.RISKCLASS,a.RISKCLASSMAX,	case 
	when var <= varmax then '1'
	when var > varmax then '0'
	else '-1' end as Rischio_Mercato,case
	--20180820 CR su Rischio Credito: quando non è stato possibile calcolare il rischio credito (quindi il valore di RISKCLASS restituito dalla PL_D2_S169RischiomercatoRischiocredito è NULL)
	-- l'indicatore di adeguatezza Rischio Credito è 1 (Adeguato)
	when RISKCLASS is null then '1'
	--20180820 FINE CR su Rischio Credito
	when RISKCLASS <= convert(int,RISKCLASSMAX) then '1'
	when RISKCLASS > convert(int,RISKCLASSMAX) then '0'
	else -1
	end as Rischio_Credito 
	into #appo1 
	from #appo a where RETE+COD_FISCALE in (select chiave_acn from C6MartPeriodico.tabellone) and ordine=1 order by COD_FISCALE 


	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set corfa_rfa=w.Patrimoniobancafideuramctv, Stato_Cliente= case when w.scaduto=0 then 'Attivo' when w.Scaduto=1 then 'Scaduto' when w.Scaduto=2 then 'Parziale' end 
	from wh.Maledetti w inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a on w.rete+w.CodiceFiscale=a.chiave_acn

	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set ade_rischio_credito=a.Rischio_Credito, ade_rischio_mercato= case when a.Rischio_Mercato=1 then 'S' else 'N' end  
	from #appo1 a inner join C6MartPeriodico.tabellone t on a.rete+a.COD_FISCALE=t.chiave_acn

		--ESG Rating 29/09/2022
		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] 
		set esg_e_perc=e.esg_e_perc,esg_s_perc=e.ESG_S_perc,esg_g_perc=e.ESG_G_perc
		from C6StagingPeriodico.ESG_Metriche_Cliente_IL e inner join C6MartPeriodico.tabellone t
		on e.Rete+e.CodiceFiscale=t.chiave_acn
		where e.CodiceFiscale<>''

		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] 
		set esg_e_perc=e.esg_e_perc,esg_s_perc=e.ESG_S_perc,esg_g_perc=e.ESG_G_perc
		from C6StagingPeriodico.ESG_Metriche_Cliente_IL e inner join C6MartPeriodico.tabellone t
		on e.Rete+e.piva+e.CodMan=t.chiave_cap
		where e.CodiceFiscale=''
		--fine ESG Rating

		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] 
		set var_portafoglio=ris.VAR_PERC_PTF
		from C6MartPeriodico.RISCHIO_AGGREGATO ris inner join C6MartPeriodico.tabellone t
		on ris.Rete+ris.COD_FISCALE=t.chiave_acn where COD_AGGREG = 'COMPLESSIVO'

		truncate table C6MartPeriodico.APPREND_DTSX_Tabellone 

insert into C6MartPeriodico.APPREND_DTSX_Tabellone 
select * from C6MartPeriodico.vTabellone


end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[agg_wseian2_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--select * from [C6StagingPeriodico].[WSEIAN2] where dttrim='20220531' order by 1 desc
--select * from [C6StagingPeriodico].[WSEIDC]
--select * from [C6StagingPeriodico].[WSEIPS]
--select * from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] where flgprof='s' and cfm_tipo_consul='retail'
CREATE   procedure [C6StagingPeriodico].[agg_wseian2_tabellone]
	as
	begin
	declare @data_ultimo_trimestre varchar(10)

	set @data_ultimo_trimestre= [C6MartPeriodico].[getTrimestre2](getdate(),0) 

	--print @data_ultimo_trimestre
	
	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set dtinval=try_CONVERT(date,cast(ws.dtinval as varchar) ,23),dtfinval=try_CONVERT(date,cast(ws.dtinval+30000 as varchar) ,23),
		classerc=ws.CLASSERC,codprofec=ws.COD_PROFEC,flagpg=ws.FLAGPG,clcompl=ws.CLCOMPL,
		flgconc=ws.FLGCONC,flagnqp=ws.FLAGNQP,flgprlrde=ws.FLGPRLRDE,flgprof=ws.FLGPROF,codprof=ws.CODPROF,
		concemi=ws.CONCEMI,freq=ws.FREQ,lliquid=ws.LLIQUID,ESG=ws.PREFSOST,Environmental=ws.FLAGAMB,Social=ws.FLAGSOC,Governance=ws.FLAGGOV,
		Riserva=ws.RISERVA,INVL_PERIOD=ws.INVL_PERIOD,ADEGCONC_VALUT=ws.ADEGCONC_VALUT,Coerenza=ws.COERENZA
		from [C6StagingPeriodico].[WSEIAN2] ws
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		on ws.Rete+ws.CodFis=a.chiave_acn
		where ws.codfis<> '' and ws.DTTRIM =@data_ultimo_trimestre

	
		
	UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set dtinval=try_CONVERT(date,cast(ws.dtinval as varchar) ,23),dtfinval=try_CONVERT(date,cast(ws.dtinval+30000 as varchar) ,23),
		classerc=ws.CLASSERC,codprofec=ws.COD_PROFEC,flagpg=ws.FLAGPG,clcompl=ws.CLCOMPL,
		flgconc=ws.FLGCONC,flagnqp=ws.FLAGNQP,flgprlrde=ws.FLGPRLRDE,flgprof=ws.FLGPROF,codprof=ws.CODPROF,
		concemi=ws.CONCEMI,freq=ws.FREQ,lliquid=ws.LLIQUID,ESG=ws.PREFSOST,Environmental=ws.FLAGAMB,Social=ws.FLAGSOC,Governance=ws.FLAGGOV,
				Riserva=ws.RISERVA,INVL_PERIOD=ws.INVL_PERIOD,ADEGCONC_VALUT=ws.ADEGCONC_VALUT,Coerenza=ws.COERENZA
		from [C6StagingPeriodico].[WSEIAN2] ws
		inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		on ws.Rete+'FF@'+ws.CODMAN=a.chiave_acn
		where ws.codman <> '' and ws.DTTRIM =@data_ultimo_trimestre
		
		--ws.DTTRIM in (select max(DTTRIM) from C6StagingPeriodico.WSEIAN2)

		--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		--set dtfinval=a.dtinval+30000 --aggiungo 3 anni
		--from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
		--where dtinval<>0

		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set wseidc_tipolett=d.TIPOLETT,wseidc_stato=d.STATO
		from C6StagingPeriodico.WSEIDC d inner join C6MartPeriodico.tabellone t
		on d.Rete+d.CodFis=t.chiave_acn
		where d.codfis<> '' and d.DTTRIM =@data_ultimo_trimestre

		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set wseidc_tipolett=d.TIPOLETT,wseidc_stato=d.stato
		from C6StagingPeriodico.WSEIDC d inner join C6MartPeriodico.tabellone t
		on d.Rete+'FF@'+d.CODMAN=t.chiave_acn
		where d.codman <> '' and d.DTTRIM =@data_ultimo_trimestre

		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set wseips_flag='S'
		from C6StagingPeriodico.WSEIPS d inner join C6MartPeriodico.tabellone t
		on d.Rete+d.CodFis=t.chiave_acn
		where d.codfis<> '' and d.DTTRIM =@data_ultimo_trimestre

		update [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
		set wseips_flag='S'
		from C6StagingPeriodico.WSEIPS d inner join C6MartPeriodico.tabellone t
		on d.Rete+'FF@'+d.CODMAN=t.chiave_acn
		where d.codman <> '' and d.DTTRIM =@data_ultimo_trimestre

	

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	--set corfa_rfa=w.Patrimoniobancafideuramctv
	--from wh.Maledetti w inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a on w.rete+w.CodiceContratto=a.rete_acn

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].tabellone
	--set cfm_tipo_consul=(case
	--						when ws.flgprof='S' Then 'PROFESSIONALE'
	--						when ws.flgprof='N' then 'RETAIL'
	--						end)
	--from [C6StagingPeriodico].[WSEIAN2] ws inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
	--	on ws.Rete+ws.CodFis=a.chiave_acn
	--	where ws.codfis<> '' 

	--select * from consuni_periodico.consulenzaunica.dbo.vinfocliente

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].tabellone
	--set cfm_tipo_consul=(case
	--						when ws.flgprof='S' Then 'PROFESSIONALE'
	--						when ws.flgprof='N' then 'RETAIL'
	--						end)
	--from [C6StagingPeriodico].[WSEIAN2] ws inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
	--	on ws.Rete+'FF@'+ws.CODMAN=a.chiave_acn
	--	where ws.codman <> '' and a.codman='' 

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	--set blacklist=tab.DescrErr
	--from [C6MartPeriodico].[ExcludedList] tab inner join
	--[C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
	--	on tab.Rete+tab.codicefiscale=a.chiave_acn

	--		select * from wh.maledetti where Patrimoniocomplessivototalectv<>Patrimoniobancafideuramctv
	--select c.RFA-w.Patrimoniobancafideuramctv,c.codicefiscale from wh.maledetti w 
	--inner join c6martperiodico.gestione_pdf_ftp c on w.rete+w.i_CodiceFiscale=c.rete+c.CodiceFiscale
	--where w.Patrimoniocomplessivototalectv<>c.RFA

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	--	set  wseidc_stato=wd.STATO,wseidc_tipolett=wd.TIPOLETT
	--	from [C6StagingPeriodico].[WSEIDC] wd
	--	inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
	--	on wd.Rete+wd.CodFis=a.chiave_acn	

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	--	set  wseidc_stato=wd.STATO,wseidc_tipolett=wd.TIPOLETT
	--	from [C6StagingPeriodico].[WSEIDC] wd
	--	inner join [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] as a
	--	on wd.Rete+'FF@'+wd.CODMAN=a.chiave_acn	

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	--	set  wseips_flag='S'
	--	where chiave_acn in (select rete+codfis from [C6StagingPeriodico].[WSEIPS])

	--UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	--	set  wseips_flag='S'
	--	where chiave_acn in (select RETE+'FF@'+CODMAN from [C6StagingPeriodico].[WSEIPS])

	truncate table C6MartPeriodico.APPREND_DTSX_Tabellone 

insert into C6MartPeriodico.APPREND_DTSX_Tabellone 
select * from C6MartPeriodico.vTabellone

end




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[AGGIORNA_DATAFINEVALIDITAPROFILO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Questa sp aggiorna la data fine validità del profilo del cliente aggiungendo tre anni alla data di inizio validità 
CREATE procedure [C6StagingPeriodico].[AGGIORNA_DATAFINEVALIDITAPROFILO]

AS
BEGIN

  update a set [DTFINVAL] = 
      case when [DTINVAL] = 0 then 0
      else CONVERT(VARCHAR(10),dateadd(year,3,convert(datetime,convert(varchar,DTINVAL))),112) end
      from
   
   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] a
 
 where dttrim =  c6martperiodico.getTrimestre2(getDate(),0)  

END 





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[AGGIORNA_TANAB_CTV]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Questa sp martella i clienti che risultano disallineati, query in cui ctv = 0
CREATE procedure [C6StagingPeriodico].[AGGIORNA_TANAB_CTV]

AS
BEGIN

    declare @dttrim varchar(10)
	set @dttrim = c6martperiodico.getTrimestre2(getDate(),0)
	update a set a.ctv = 0.00
		from c6stagingperiodico.tanab a
		inner join c6stagingperiodico.appo_contratti b
			on a.rete=b.rete and a.codfis=b.cod_fiscale
		where dtctv <> @dttrim
		  and dtctv <> '0'
		  and ctv <> 0
 
 
 

END 





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[AGGIORNA_WSEIAN_FLAGPERPROF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- Forzatura sulla WSEIAN per i clienti professionali: forzare a 'S' nella WSEIAN i campi CLCOMPL, FLGCONC
CREATE procedure [C6StagingPeriodico].[AGGIORNA_WSEIAN_FLAGPERPROF]

AS
BEGIN
print ('ok')

  --update a set CLCOMPL = 'S', FLGCONC = 'S'
  --FROM [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN2] a
  --where flgprof = 'S'
  --  and dttrim =  c6martperiodico.getTrimestre2(getDate(),0)  

END 





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[AggiornaContrattiPretrimestrale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[AggiornaContrattiPretrimestrale]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'AggiornaContrattiPretrimestrale',
		GETDATE(),
		'Elaborazione trimestrale'
	)

INSERT INTO C6StagingPeriodico.ContrattiPreTrimestrale
SELECT
    v.chiaveclientepb,   
    [Cod_Fiscale],
    [Cod_Mandato],	
	[PIva_Fiduciaria],
	[Cod_Agente],
	[Rete],
	[CodiceContratto],
	[FlagROL],
	[Indirizzo],
	[CAP],
	[Citta],
	[Provincia],
	[Nazione],
	[Presso],
	[Email],
	[Freq_Diagnosi],
	[FREQ_MONITORAGGIO],
	GENERAZIONEREPORT,
	DATA_INIZIOBASE,	
	DATA_FINEBASE,	
	DATA_PERF_BASE,	
	DATA_PERF,	
	DATA_INZIOAVANZATO,	
	DATA_FINEAVANZATO,	
	RIATTIVAZIONE,	
	m.TIP_CONTRATTO,	
	TIP_RIATTIVAZIONE,
	ClienteMIGRATO,	
	RISORSENA,	
	PROFILOATTIVO,
	NumSolleciti,	
	NumRevoche,	
	Data_ultimoSollecito,	
	Data_ultimaRevoca,	
	InvioBenvenuto	
FROM 
    [C6Mart].[vContratti] v
       INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] m
    ON v.chiaveclientepb = m.chiaveclientepb
WHERE rete+cod_fiscale+codicecontratto IN
(SELECT rete+codfis+codcontratto FROM ScartiQuadratura WHERE bloccato = 0 and gestito = 0)

UPDATE
	ScartiQuadratura
SET
	gestito = 1
WHERE
	bloccato = 0 and gestito = 0


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'AggiornaContrattiPretrimestrale' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'AggiornaContrattiPretrimestrale'
		)
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[CheckDisallineati]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[CheckDisallineati] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'CheckDisallineati',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	DECLARE @NumRec Int;
    Select @NumRec = count(*) from 
		consevo_periodico.ConsulenzaEvoluta.dbo.Pianificazione pian
	INNER JOIN 
	    consevo_periodico.ConsulenzaEvoluta.dbo.Progetto prg
			ON prg.chiaveConsulenza=pian.chiaveConsulenza
    INNER JOIN 
		consevo_periodico.ConsulenzaEvoluta.dbo.PosizioniPortafoglio ptf
			ON ptf.chiaveProgetto=prg.chiaveProgetto
	LEFT JOIN 
		consevo_periodico.ConsulenzaEvoluta.dbo.PosizioniMonitorate moni
			ON moni.chiaveposizioneptf=ptf.chiaveposizioneptf
	INNER JOIN 
		consevo_periodico.CatalogoProdotti.dbo.CatalogoProdotti cat
			ON cat.ChiaveProdotto=ptf.chiaveProdotto
	WHERE prg.flagAvviatoMonitoraggio=1
		AND ptf.dtFineValidita>GETDATE()
		AND (moni.dtFineValidita>GETDATE() or moni.dtFineValidita is null)
		AND moni.chiaveposizioneptf is null
	 if @NumRec > 0 
	   RAISERROR (N'Errore', -- Message text.
			   10, -- Severity,
			   1, -- State,
			   N'number', -- First argument.
			   5); -- Secon
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'Check',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'CheckDisallineati' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Proposta'
		)
	
end
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ClienteProdottiAssicurativiVita]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[ClienteProdottiAssicurativiVita]

@Rete as varchar(1),
@CodiceFiscale as varchar(16)

as

declare @tblFlagNota table
(
	FlagAssVita char(1)
	
)


DECLARE @conta INT

SELECT @conta = count(*)
from C6MartPeriodico.PATRIMONIO_BF bf
inner join C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
on bf.COD_PRODOTTO = kat.CatalogueID
where kat.Alberatura in (7,8,9)
	AND bf.cod_fiscale = @CodiceFiscale
	AND bf.rete = @Rete

if @conta >= 1
begin 
	insert into @tblFlagNota (FlagAssVita) Values ('S')
end
else
	insert into @tblFlagNota (FlagAssVita) Values ('N')

Select FlagAssVita from @tblFlagNota



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ClienteProdottiAssicurativiVita_Totali]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--Verifica tutti i clienti della APPO_CONTRATTI se hanno la nota fai
--per il singolo cliente [C6StagingPeriodico].[ClienteProdottiAssicurativiVita] 'F','BBNNLL48T52E730L'

CREATE procedure [C6StagingPeriodico].[ClienteProdottiAssicurativiVita_Totali]
as
drop table if exists #assicurativi
SELECT distinct rete,cod_fiscale,count(*) as conta
into #assicurativi
from C6MartPeriodico.PATRIMONIO_BF bf
inner join C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI KAT
on bf.COD_PRODOTTO = kat.CatalogueID
where kat.Alberatura in (7,8,9) and
	bf.rete+bf.cod_fiscale in (select rete+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI)
group by rete,COD_FISCALE

	select a.rete,a.COD_FISCALE,
	case when f.conta is null then 'NO' 
	else 'SI' end as ASSICURATIVI
	from C6stagingPeriodico.APPO_CONTRATTI a left join #assicurativi f on a.rete+a.COD_FISCALE=f.RETE+f.COD_FISCALE 

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ClienteProdottiFAI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[ClienteProdottiFAI]

@Rete as varchar(1),
@CodiceFiscale as varchar(16)

as

declare @tblFlagNota table
(
	FlagFAI char(1),
	DataFAI varchar(10)
)

		--DECLARE @dtrim VARCHAR(8)
		--set @dtrim = c6martperiodico.gettrimestre(getDate(),0)
		--print @dtrim

		Declare @dtrimFAI varchar(10)
		set @dtrimFAI =  Convert(varchar(10), Cast(c6martperiodico.getPreviousTrimestre(getDate(),0) as Datetime),103)
		print @dtrimFAI


DECLARE @conta INT

SELECT @conta = count(*)
FROM [C6MartPeriodico].[PATRIMONIO_BF]
WHERE rtrim(ltrim(cod_interno))  IN (
		'IA',
		'IP',
		'IC',
		'ID',
		'PE'
			)
	AND cod_fiscale = @CodiceFiscale
	AND rete = @Rete

if @conta >= 1
begin 
	insert into @tblFlagNota (FlagFAI,DataFAI) Values ('S',@dtrimFAI)
end
else
	insert into @tblFlagNota (FlagFAI,DataFAI) Values ('N',@dtrimFAI)

Select FlagFAI,DataFAI from @tblFlagNota



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ClienteProdottiFAI_Totali]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--Verifica tutti i clienti della APPO_CONTRATTI se hanno la nota fai
--per il singolo cliente [C6StagingPeriodico].[ClienteProdottiFAI] 'F','BBNNLL48T52E730L'

CREATE   procedure [C6StagingPeriodico].[ClienteProdottiFAI_Totali]
as
drop table if exists #fai
SELECT distinct rete,COD_FISCALE, count(*) as Conta
into #fai
FROM [C6MartPeriodico].[PATRIMONIO_BF]
WHERE rtrim(ltrim(cod_interno))  IN (
		'IA',
		'IP',
		'IC',
		'ID',
		'PE'
			)
	and rete+COD_FISCALE in (select rete+COD_FISCALE from C6StagingPeriodico.APPO_CONTRATTI)
	group by rete,COD_FISCALE

	select a.rete,a.COD_FISCALE,
	case when f.conta is null then 'NO' 
	else 'SI' end as FAI
	from C6stagingPeriodico.APPO_CONTRATTI a left join #fai f on a.rete+a.COD_FISCALE=f.RETE+f.COD_FISCALE 



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[CopiaTabelleDiReplica]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[CopiaTabelleDiReplica]

AS

set nocount on

 begin try

		insert into LOG_ESECUZIONE_periodico values (
				   'CopiaTabelleDiReplica',
				   GETDATE(),
				   null,
				   'Copia',
				   null,'Elaborazione trimestrale')

		declare @KO int
		set @KO = 0
		declare @err varchar(500)
		set @err = ''

		-- Modifica del 29/01/2019
			--declare @query nvarchar(max)
			--declare @today datetime
			--declare @sToday varchar(10)
		-- Fine modifica del 29/01/2019

		declare @res table (tablename varchar(100))
		--SET FMTONLY ON

		-- Modifica del 29/01/2019
				--set @today = getdate()

				--set @sToday = convert(varchar(4), datepart(yyyy, @today)) + right('0' + convert(varchar(2), datepart(mm, @today)), 2) + right('0' + convert(varchar(2), datepart(dd, @today)), 2)

				-------------------------------------- TANAB
				--set @query = 'select * into C6Stagingperiodico.TANAB_' + @sToday + '_preUpdate from C6Stagingperiodico.TANAB'
				--insert @res
				--exec sys.sp_executesql @query

				-------------------------------------- WSEIAN
				--set @query = 'select * into C6Stagingperiodico.WSEIAN_' + @sToday + '_preUpdate from C6Stagingperiodico.WSEIAN'
				--insert @res
				--exec sys.sp_executesql @query
		-- Fine modifica del 29/01/2019

		exec dbo.CreaTabellaBackUp 'TANAB', 'C6Stagingperiodico', 'preUpdate'
		exec dbo.CreaTabellaBackUp 'WSEIAN2', 'C6Stagingperiodico', 'preUpdate'

		-----------------------------------
		UPDATE
			LOG_ESECUZIONE_periodico
		SET
			Fine = GETDATE(),
			Tipo = 'INSERT',
			Righe = @@ROWCOUNT
		WHERE
			Nome = 'CopiaTabelleDiReplica' AND
			Inizio = (
				SELECT
					MAX(Inizio)
				FROM
					LOG_ESECUZIONE_periodico
				WHERE
					Nome = 'CopiaTabelleDiReplica'
			)


		end try

		begin catch
			set @KO = 1
			set @err = ERROR_MESSAGE()

			
	   
			 RAISERROR (50000,-1,-1, 'Lancio Trimestrale - Errore C6MartPeriodico.CopiaTabelleDiReplica');
		

			return
		end catch


		
	
	
    





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[CopiaTabelleDiReplica_20190129]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[CopiaTabelleDiReplica_20190129]

AS

set nocount on

 begin try

		insert into LOG_ESECUZIONE_periodico values (
				   'CopiaTabelleDiReplica',
				   GETDATE(),
				   null,
				   'Copia',
				   null,'Elaborazione trimestrale')

		declare @KO int
		set @KO = 0
		declare @err varchar(500)
		set @err = ''
		declare @query nvarchar(max)
		declare @today datetime
		declare @sToday varchar(10)

		declare @res table (tablename varchar(100))
		--SET FMTONLY ON

		set @today = getdate()

		set @sToday = convert(varchar(4), datepart(yyyy, @today)) + right('0' + convert(varchar(2), datepart(mm, @today)), 2) + right('0' + convert(varchar(2), datepart(dd, @today)), 2)

		------------------------------------ TANAB
		set @query = 'select * into C6Stagingperiodico.TANAB_' + @sToday + '_preUpdate from C6Stagingperiodico.TANAB'
		insert @res
		exec sys.sp_executesql @query

		------------------------------------ WSEIAN
		set @query = 'select * into C6Stagingperiodico.WSEIAN_' + @sToday + '_preUpdate from C6Stagingperiodico.WSEIAN'
		insert @res
		exec sys.sp_executesql @query



		-----------------------------------
		UPDATE
			LOG_ESECUZIONE_periodico
		SET
			Fine = GETDATE(),
			Tipo = 'INSERT',
			Righe = @@ROWCOUNT
		WHERE
			Nome = 'CopiaTabelleDiReplica' AND
			Inizio = (
				SELECT
					MAX(Inizio)
				FROM
					LOG_ESECUZIONE_periodico
				WHERE
					Nome = 'CopiaTabelleDiReplica'
			)


		end try

		begin catch
			set @KO = 1
			set @err = ERROR_MESSAGE()

			
	   
			 RAISERROR (50000,-1,-1, 'Lancio Trimestrale - Errore C6MartPeriodico.CopiaTabelleDiReplica');
		

			return
		end catch


		
	
	
    





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[EstrazioneProfiliInScadenza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--EXEC EstrazioneProfiliInScadenza 20110509
CREATE procedure [C6StagingPeriodico].[EstrazioneProfiliInScadenza]
	
as
BEGIN


	DECLARE @id_periodiodo as int
	select @id_periodiodo = max(id_periodo) from [10.10.32.84].SEIAlertDW.[dbo].[Vis_Mifid_Report]

	TRUNCATE TABLE C6STAGINGPERIODICO.MAIL_PROFILI_RISCHIO	

	INSERT INTO C6STAGINGPERIODICO.MAIL_PROFILI_RISCHIO 


	select 
	a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf, 
	inviobenvenuto as flag_invio_report, profiloAss As Profilo, 
	dtprofilo as dt_creazione_profilo
	from
	c6mart.contrattosei a
	left outer join
	[10.10.32.84].SEIAlertDW.[dbo].[Vis_Mifid_Report] b
	on 
	(case 
	 when len(CodMan) = 0
	 then   b.CodFiscale
	 else 'FF@'+ CodMan
	end) = a.cod_fiscale 
	and a.rete=b.rete
    and a.cod_agente = substring(b.codagente, 2, len(b.codagente)- 1)
	where 
	b.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	and a.data_fineavanzato is null

	--CONDIZIONE FILTRO PER I PROSSIMI 3 MESI
	--And datediff(dd,dtprofilo,dateadd(mm,3,getdate()))/365.25>3
	--And datediff(dd,dtprofilo,getdate())/365.25>3
--
--	union 
--
--	select 
--	a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf, 
--	inviobenvenuto as flag_invio_report, profilo, dtprofilo as dt_creazione_profilo
--	from
--	c6mart.contrattosei a
--	left outer join
--	[10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b
--	on 
--	(case 
--	 when len("codice mandato") = 0
--	 then  b."codice fiscale"
--	 else 'FF@'+"codice mandato"
--	end) = a.cod_fiscale 
--	and a.rete=b.rete
--	where 
--	b.id_periodo= @id_periodiodo
--	and a.data_fineavanzato is null
--
--	--CONDIZIONE FILTRO PER scaduti
--	And profiloscaduto='S'

--order by dt_creazione_profilo





end





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[get_testo_sezione_adeg_PG_Compl_Conc_CDTTRIM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--exec [C6StagingPeriodico].[get_testo_sezione_adeg_PG_Compl_Conc_CDTTRIM] 'F', 'MGNGPP55B25G224T'
CREATE procedure [C6StagingPeriodico].[get_testo_sezione_adeg_PG_Compl_Conc_CDTTRIM]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)
DECLARE @isPG integer
DECLARE @isPG_NQ char(1)
DECLARE @dtrim nvarchar(8)
set @dtrim = c6martperiodico.getTrimestre(getdate(), 0)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @isPG = FLAGPG from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 
	and DTTRIM=@dtrim

	if @isPG = 0
	BEGIN
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG]
		--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		WHERE codfis  = @CodiceFiscale and RETE = @Rete
		and DTTRIM=@dtrim
	END
	
	ELSE /* isPG = 1 */
	BEGIN
		select @isPG_NQ = 		
		   CASE 
				WHEN FLAGNQP IS NULL or FLAGNQP ='' THEN 'N'
				ELSE FLAGNQP
			END 
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codfis = @CodiceFiscale and RETE = @Rete 
		and DTTRIM=@dtrim

		if @isPG_NQ = 'S'
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@dtrim
		END

		ELSE  /* isPG_NQ = N */
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and adeg.[FLAGNQP]=@isPG_NQ
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@dtrim
			--and an.[FLAGNQP]='N' and coalesce(adeg.[FLGPRLRDE],'yn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		END
	END
	END

ELSE /* Mandatario - Fiduciaria */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	/* case PG = 0 forced, dont' considerate flags FLAGPG, FLAGNQP, FLGPRLRDE */
	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF and RETE = @Rete
	and DTTRIM=@dtrim
	END
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[immobiliare_tabellone]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









--select * from [C6StagingPeriodico].[WSEIAN2] where cod_profec is null
--select * from [C6StagingPeriodico].[WSEIDC]
--select * from [C6StagingPeriodico].[WSEIPS]
--select * from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] where flgprof='s' and cfm_tipo_consul='retail'
CREATE procedure [C6StagingPeriodico].[immobiliare_tabellone]
	as
	begin
		UPDATE [C6StampeCentralizzate].[C6MartPeriodico].[tabellone]
	set flgpe_perimetro_semestr=i.FLAG_IN_PERIMETRO,solo_rend_imm=isnull(i.RENDICONTO_IMM,'N'),anche_rend_sei=i.RENDICONTO_SEI
	from [C6StampeCentralizzate].[C6MartPeriodico].[tabellone] t inner join [C6MartPeriodicoImmobiliare].[W6IMM] i on i.RETE+i.CODFIS=t.chiave_acn

	truncate table C6MartPeriodico.APPREND_DTSX_Tabellone 

insert into C6MartPeriodico.APPREND_DTSX_Tabellone 
select * from C6MartPeriodico.vTabellone

end




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[Popola_Prodotti_Fuori_Adeguatezza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







-- [C6StagingPeriodico].[Popola_Prodotti_Fuori_Adeguatezza]
CREATE procedure [C6StagingPeriodico].[Popola_Prodotti_Fuori_Adeguatezza]
AS
BEGIN
   
  truncate table [C6StagingPeriodico].Prodotti_Fuori_Adeguatezza
  
  insert into [C6StagingPeriodico].Prodotti_Fuori_Adeguatezza

  select 
  cat.[CatalogueID],
  cat.[ChiaveProdotto],
  cat.[CodSottoprodotto],
  cat.[CodInterno],
  cat.[CodMaf],
  cat.[CodIsin],
  cat.[NomeProdotto],
  cat.[TipoProdotto]
  from  [C6StagingPeriodico].[RP_CatalogoProdotti] cat

  where  
   cat.suitability_perimeter='N' --prodotti fuori adeguatezza
  and cat.TipoProdotto<>'DT'

	



  --PRE_MUA
  --select 
  --cat.[CatalogueID],
  --cat.[ChiaveProdotto],
  --cat.[CodSottoprodotto],
  --cat.[CodInterno],
  --cat.[CodMaf],
  --cat.[CodIsin],
  --cat.[NomeProdotto],
  --cat.[TipoProdotto]
  --from [C6StagingPeriodico].WADPRNA  W
  --inner join  [C6StagingPeriodico].[RP_CatalogoProdotti] cat
  --on w.[CODPROD] = cat.[CodInterno]
  --where w.[DTFINVAL] = '99991231' -- prendo solo i prodotti validi
  --and isnull(w.SUBPROD,'') = '' --se il subprod non è valorizzato vado in join sul catalogo solo per codprod
	
  --union

  --select 
  --cat.[CatalogueID],
  --cat.[ChiaveProdotto],
  --cat.[CodSottoprodotto],
  --cat.[CodInterno],
  --cat.[CodMaf],
  --cat.[CodIsin],
  --cat.[NomeProdotto],
  --cat.[TipoProdotto]
  --from [C6StagingPeriodico].WADPRNA  W
  --inner join  [C6StagingPeriodico].[RP_CatalogoProdotti] cat
  --on w.[CODPROD] = cat.[CodInterno] and w.subprod = cat.[CodSottoprodotto]
  --where w.[DTFINVAL] = '99991231' -- prendo solo i prodotti validi
  --and isnull(w.SUBPROD,'') <> '' --se il subprod  è valorizzato vado in join sul catalogo anche per subprod
	





END








GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[PopolaW6TRCLIdavListaClientiTrimestrale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Questa procedura legge i campi della vista vListaTrimestrale e li inserisce nella tabella W6TRCLI settando i campi Nominativo_Agente e ROL a '',,>
-- =============================================
CREATE PROCEDURE [C6StagingPeriodico].[PopolaW6TRCLIdavListaClientiTrimestrale]

	-- Add the parameters for the stored procedure here
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	insert into [dbo].[W6TRCLI] ([Rete],[Codice_Agente],[Nominativo_ Agente],[CodiceFiscale],[CodiceContratto],[Freq_Monitoraggio],[Freq_ Diagnosi],[Data_Revoca],[TipoContratto],[TipoRiattivazione],[ROL],[ClienteDB])
		select  isnull([Rete],''),
				isnull([Codice Agente],''),
				'',
				isnull([Codice Fiscale],''),
				isnull([Codice Contratto],''),
				isnull([Freq Monitoraggio],''),
				isnull([Freq Diagnosi],''),
				isnull([Data Revoca],''),
				isnull([Tipo Contratto],''),
				isnull([Tipo Riattivazione],''),
				'',
				clienteDB
	from [C6StagingPeriodico].[vListaClientiTrimestrale];
END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[PopolaW6TRCLIdavListaClientiTrimestrale_anag_pb]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Questa SP popola la tabella W6TRCLI da una vista vListaClientiTrimestrale_anag_pb settando i campi uno a uno con il valore della vista o in mancanza '' invece di null ,,>
-- =============================================
CREATE PROCEDURE [C6StagingPeriodico].[PopolaW6TRCLIdavListaClientiTrimestrale_anag_pb] 
	-- Add the parameters for the stored procedure here
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
		insert into [dbo].[W6TRCLI] ([Rete],[Codice_Agente],[Nominativo_ Agente],[CodiceFiscale],[CodiceContratto],[Freq_Monitoraggio],[Freq_ Diagnosi],[Data_Revoca],[TipoContratto],[TipoRiattivazione],[ROL],[ClienteDB])
		select  isnull([Rete],''),
				isnull([Codice Agente],''),
				isnull([Nominativo],''),
				isnull([Codice Fiscale],''),
				isnull([Codice Contratto],''),
				isnull([Freq Monitoraggio],''),
				isnull([Freq Diagnosi],''),
				isnull([Data Revoca],0),
				isnull([Tipo Contratto],''),
				isnull([Tipo Riattivazione],''),
				isnull([ROL],''),
				clienteDB
		from [C6StagingPeriodico].[vListaClientiTrimestrale_anag_pb];

END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[Recupero_Trimestrale_Scarti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE   procedure [C6StagingPeriodico].[Recupero_Trimestrale_Scarti]
as

 drop table if exists c6stagingperiodico.BRS_AGGR_OUT_ALADDIN_appoggio

 --select * 
 --into c6stagingperiodico.BRS_AGGR_OUT_ALADDIN_appoggio
 --from c6stagingperiodico.BRS_AGGR_OUT_ALADDIN

 exec [dbo].[CreaTabellaBackUp] 'W6CLIREP','C6MartPeriodico'
 exec [dbo].[CreaTabellaBackUp] 'trimestrale_scarti','c6stagingperiodico'
  exec [dbo].[CreaTabellaBackUp] 'BRS_AGGR_OUT_ALADDIN','C6stagingPeriodico'
 exec [dbo].[CreaTabellaBackUp] 'ESG_Metriche_Cliente_IL','c6stagingperiodico'

 drop table if exists #temp
 drop table if exists c6stagingperiodico.BRS_AGGR_OUT_ALADDIN_appoggio

 --preleva tutti i cf e piva che NON hanno avuto problemi e li mette in BRS_AGGR_OUT_ALADDIN_appoggio
 select distinct * 
into c6stagingperiodico.BRS_AGGR_OUT_ALADDIN_appoggio
 from c6stagingperiodico.BRS_AGGR_OUT_ALADDIN 
 where Rete+CodiceFiscale+PIva+codman not in (select
Rete+codfis+PIva+codman from c6stagingperiodico.trimestrale_scarti)  
 --preleva tutti i cf e piva che  hanno avuto problemi e li mette in una tabella temporanea per poi metterli nella w6clirep
 select * 
 into #temp 
 from C6MartPeriodico.W6CLIREP where rete+codfis+piva+codman in (select
Rete+codfis+piva+codman from c6stagingperiodico.trimestrale_scarti) 
truncate table C6MartPeriodico.W6CLIREP

insert into C6MartPeriodico.W6CLIREP
select * from #temp


Truncate table c6stagingperiodico.trimestrale_scarti

--update C6MartPeriodico.tab_semaforo
--set inizio_milestone=inizio_lotto
--where id_milestone=5



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_QD_VAR_RISK_WEEK2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[REPTRIM_QD_VAR_RISK_WEEK2]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica QD_VAR_RISK_WEEK2'

TRUNCATE TABLE [C6StagingPeriodico].[QD_VAR_RISK_WEEK2]

INSERT INTO [C6StagingPeriodico].[QD_VAR_RISK_WEEK2]
           ([banca],
			[rete],
			[codfis],
			[piva],
			[codfid],
			[codman],
			[isp_total_risk],
			[flag_risk])
			SELECT      
			[banca],
			[rete],
			[codfis],
			[piva],
			[codfid],
			[codman],
			[isp_total_risk],
			[flag_risk]
  FROM FSEI0.FSEI0.[fsei0_pdc].[qd_var_risk_week]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica QD_VAR_RISK_WEEK2'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_TANAB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_TANAB]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TANAB'

TRUNCATE TABLE [C6StagingPeriodico].[TANAB]

INSERT INTO [C6StagingPeriodico].[TANAB]
           ([RETE]
           ,[CODAREA]
           ,[CODPROG]
           ,[CODFIS]
           ,[DTRIF]
           ,[DTFINE]
           ,[DTINI]
           ,[CTVINI]
           ,[DTRENDMAX]
           ,[RENDMAX]
           ,[DTRENDMIN]
           ,[RENDMIN]
           ,[DTCTV]
           ,[CTV]
           ,[RENDATT]
           ,[DTCTVMAX]
           ,[CTVMAX]
           ,[DTCTVMIN]
           ,[CTVMIN]
           ,[CVN]
           ,[CVN_IA]
           ,[CVN_IT]
           ,[APP_INI]
           ,[TOT_APP]
           ,[TOT_LIQ]
           ,[TOT_CED]
           ,[TOT_DIV]
           ,[DCD]
           ,[DCVN]
           ,[SCARTO]
           ,[NTOT_APP]
           ,[NTOT_LIQ]
           ,[RENDATTANN])

SELECT [RETE]
      ,[CODAREA]
      ,[CODPROG]
      ,[CODFIS]
      ,[DTRIF]
      ,[DTFINE]
      ,[DTINI]
      ,[CTVINI]
      ,[DTRENDMAX]
      ,[RENDMAX]
      ,[DTRENDMIN]
      ,[RENDMIN]
      ,[DTCTV]
      ,[CTV]
      ,[RENDATT]
      ,[DTCTVMAX]
      ,[CTVMAX]
      ,[DTCTVMIN]
      ,[CTVMIN]
      ,[CVN]
      ,[CVN_IA]
      ,[CVN_IT]
      ,[APP_INI]
      ,[TOT_APP]
      ,[TOT_LIQ]
      ,[TOT_CED]
      ,[TOT_DIV]
      ,[DCD]
      ,[DCVN]
      ,[SCARTO]
      ,[NTOT_APP]
      ,[NTOT_LIQ]
      ,[RENDATTANN]
  FROM FSEI0.FSEI0.[fsei0_pdc].[tanab]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TANAB'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_TCPTAB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_TCPTAB]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TCPTAB'

TRUNCATE TABLE [C6StagingPeriodico].[TCPTAB]

INSERT INTO [C6StagingPeriodico].[TCPTAB]
           ([RETE]
           ,[CODAREA]
           ,[CODPROG]
           ,[CODFIS]
           ,[DTRIF]
           ,[TIPPROD]
           ,[ISIN]
           ,[ID_WADEG]
           ,[MAF]
           ,[CODCONF]
           ,[SUBPROD]
           ,[CODPROD]
           ,[NUMPOL]
           ,[CONTO]
           ,[CUSTGAR]
           ,[RUBR]
           ,[CODABI]
           ,[TERMID]
           ,[ANNO]
           ,[PROG]
           ,[SPROG]
           ,[DTUSCITA]
           ,[DTSOTT]
           ,[CTVATT]
           ,[DTINGRESSO]
           ,[CTVINGRESSO]
           ,[DTTRIM]
           ,[RENDTRIM]
           ,[DTANNO]
           ,[RENDANNO]
           ,[DTINIZ]
           ,[RENDINIZ]
           ,[DTININAC]
           ,[RENDNAC]
           ,[CTVVP]
           ,[CVNTRIM]
           ,[CVNANNO]
           ,[CVNINIZ]
           ,[CVNNAC]
           ,[CODINT]
           ,[VALORE]
           ,[STLIQ]
           ,[DTVALORIZ])

SELECT RETE
      ,CODAREA
      ,CODPROG
      ,CODFIS
      ,DTRIF
      ,TIPPROD
      ,ISIN
      ,ID_WADEG
      ,MAF
      ,CODCONF
      ,SUBPROD
      ,CODPROD
      ,NUMPOL
      ,CONTO
      ,CUSTGAR
      ,RUBR
      ,CODABI
      ,TERMID
      ,ANNO
      ,PROG
      ,SPROG
      ,DTUSCITA
      ,DTSOTT
      ,CTVATT
      ,DTINGRESSO
      ,CTVINGRESSO
      ,DTTRIM
      ,RENDTRIM
      ,DTANNO
      ,RENDANNO
      ,DTINIZ
      ,RENDINIZ
      ,DTININAC
      ,RENDNAC
      ,CTVVP
      ,CVNTRIM
      ,CVNANNO
      ,CVNINIZ
      ,CVNNAC
      ,CODINT
      ,VALORE
      ,STLIQ
      ,DTVALORIZ
FROM OPENQUERY(FSEI0, 'SELECT RETE
      ,CODAREA
      ,CODPROG
      ,CODFIS
      ,DTRIF
      ,TIPPROD
      ,ISIN
      ,ID_WADEG
      ,MAF
      ,CODCONF
      ,SUBPROD
      ,CODPROD
      ,NUMPOL
      ,CONTO
      ,CUSTGAR
      ,RUBR
      ,CODABI
      ,TERMID
      ,ANNO
      ,PROG
      ,SPROG
      ,DTUSCITA
      ,DTSOTT
      ,CTVATT
      ,DTINGRESSO
      ,CTVINGRESSO
      ,DTTRIM
      ,RENDTRIM
      ,DTANNO
      ,RENDANNO
      ,DTINIZ
      ,RENDINIZ
      ,DTININAC
      ,RENDNAC
      ,CTVVP
      ,CVNTRIM
      ,CVNANNO
      ,CVNINIZ
      ,CVNNAC
      ,CODINT
      ,VALORE
      ,STLIQ
      ,DTVALORIZ
FROM fsei0_pdc.tcptab')

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TCPTAB'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_TRENAB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_TRENAB]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TRENAB'

TRUNCATE TABLE [C6StagingPeriodico].[TRENAB]

INSERT INTO [C6StagingPeriodico].[TRENAB]
           ([RETE]
           ,[CODAREA]
           ,[CODPROG]
           ,[CODFIS]
           ,[DTRIF]
           ,[DTVALORIZ]
           ,[CTV]
           ,[DTINIZ]
           ,[RENDINIZ]
           ,[DTTRIM]
           ,[RENDTRIM]
           ,[DTANNO]
           ,[RENDANNO]
           ,[CVN]
           ,[CVN_IA]
           ,[CVN_IT]
           ,[APP_INI]
           ,[TOT_APP]
           ,[TOT_LIQ]
           ,[TOT_CED]
           ,[TOT_DIV]
           ,[DCD]
           ,[DCVN]
           ,[SCARTO]
           ,[NTOT_APP]
           ,[NTOT_LIQ]
           ,[RENDATTANN])


SELECT [RETE]
      ,[CODAREA]
      ,[CODPROG]
      ,[CODFIS]
      ,[DTRIF]
      ,[DTVALORIZ]
      ,[CTV]
      ,[DTINIZ]
      ,[RENDINIZ]
      ,[DTTRIM]
      ,[RENDTRIM]
      ,[DTANNO]
      ,[RENDANNO]
      ,[CVN]
      ,[CVN_IA]
      ,[CVN_IT]
      ,[APP_INI]
      ,[TOT_APP]
      ,[TOT_LIQ]
      ,[TOT_CED]
      ,[TOT_DIV]
      ,[DCD]
      ,[DCVN]
      ,[SCARTO]
      ,[NTOT_APP]
      ,[NTOT_LIQ]
      ,[RENDATTANN]
FROM OPENQUERY(FSEI0, 'SELECT RETE
      ,CODAREA
      ,CODPROG
      ,CODFIS
      ,DTRIF
      ,DTVALORIZ
      ,CTV
      ,DTINIZ
      ,RENDINIZ
      ,DTTRIM
      ,RENDTRIM
      ,DTANNO
      ,RENDANNO
      ,CVN
      ,CVN_IA
      ,CVN_IT
      ,APP_INI
      ,TOT_APP
      ,TOT_LIQ
      ,TOT_CED
      ,TOT_DIV
      ,DCD
      ,DCVN
      ,SCARTO
      ,NTOT_APP
      ,NTOT_LIQ
      ,RENDATTANN
FROM fsei0_pdc.trenab')

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TRENAB'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_TSCABP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[REPTRIM_TSCABP]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TSCABP'

TRUNCATE TABLE [C6StagingPeriodico].[TSCABP]

INSERT INTO [C6StagingPeriodico].[TSCABP]
           ([RETE]
           ,[CODAREA]
           ,[CODPROG]
           ,[CODFIS]
           ,[DTRIF]
           ,[TIPPROD]
           ,[CODCONF]
           ,[SUBPROD]
           ,[CODPROD]
           ,[CONTO]
           ,[CUSTGAR]
           ,[RUBR]
           ,[CODABI]
           ,[TERMID]
           ,[ANNO]
           ,[PROG]
           ,[DTINGRESSO]
           ,[ISTITUTO]
           ,[TIPO_PRODOTT]
           ,[CONTO_OP]
           ,[STRUM_FIN]
           ,[ID_MOVIM]
           ,[TIPO_OP]
           ,[RESTART]
           ,[DT_ING_USC]
           ,[ING_USC]
           ,[COD_ERR]
           ,[DESCR_ERR]
           ,[DT_ELAB]
           ,[DT_INS]
           ,[PCT]
           ,[PROVENIENZA]
           ,[isin])

SELECT [RETE]
      ,[CODAREA]
      ,[CODPROG]
      ,[CODFIS]
      ,[DTRIF]
      ,[TIPPROD]
      ,[CODCONF]
      ,[SUBPROD]
      ,[CODPROD]
      ,[CONTO]
      ,[CUSTGAR]
      ,[RUBR]
      ,[CODABI]
      ,[TERMID]
      ,[ANNO]
      ,[PROG]
      ,[DTINGRESSO]
      ,[ISTITUTO]
      ,[TIPO_PRODOTT]
      ,[CONTO_OP]
      ,[STRUM_FIN]
      ,[ID_MOVIM]
      ,[TIPO_OP]
      ,[RESTART]
      ,[DT_ING_USC]
      ,[ING_USC]
      ,[COD_ERR]
      ,[DESCR_ERR]
      ,[DT_ELAB]
      ,[DT_INS]
      ,[PCT]
      ,[PROVENIENZA]
      ,[isin]
  FROM FSEI0.FSEI0.[fsei0_pdc].[tscabp]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica TSCABP'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_W6APAG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[REPTRIM_W6APAG]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6APAG'

TRUNCATE TABLE [C6StagingPeriodico].[W6APAG]

INSERT INTO [C6StagingPeriodico].[W6APAG]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[APPORTI]
           ,[PRELIEVI])

SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[APPORTI]
      ,[PRELIEVI]
  FROM FSEI0.FSEI0.[fsei0_pdc].[w6apag]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6APAG'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_W6APUT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_W6APUT]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6APUT'

TRUNCATE TABLE [C6StagingPeriodico].[W6APUT]


INSERT INTO [C6StagingPeriodico].[W6APUT]
           ([RETE]
           ,[DTTRIM]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[DTOPE]
           ,[DESPROD]
           ,[PROGMOV]
           ,[CODCAU]
           ,[CODSCAU]
           ,[DESCAU]
           ,[IMPORTO]
           ,[FIRMA])

SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[DTOPE]
      ,[DESPROD]
      ,[PROGMOV]
      ,[CODCAU]
      ,[CODSCAU]
      ,[DESCAU]
      ,[IMPORTO]
      ,[FIRMA]
  FROM FSEI0.FSEI0.[fsei0_pdc].[w6aput]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6APUT'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_W6CLIESG]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_W6CLIESG]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6CLIESG'

TRUNCATE TABLE [C6StagingPeriodico].[W6CLIESG]
INSERT INTO [C6StagingPeriodico].[W6CLIESG]
           ( [DTTRIM]
			,[RETE]
			,[CODFIS]
			,[CODMAN]
			,[U_PREFSOST]
			,[FLAGSFDR]
			,[FLAGTAXO]
			,[FLAGPAI]
			,[SFDR_PERC]
			,[TAXO_PERC]
			,[PAI_A01]
			,[PAI_A02]
			,[PAI_A03]
			,[PAI_A04]
			,[PAI_A05]
			,[PAI_A07]
			,[PAI_A08]
			,[PAI_S01]
			,[PAI_S02]
			,[PAI_NO_DETT]
			,[PERC1ESG]
			,[PERCAMB]
			,[PERCSOC]
			,[PERCGOV]
			,[PERCAMB_OK]
			,[PERCSOC_OK]
			,[PERCGOV_OK]
			,[SFDR_PERCT]
			,[SFDR_PERC_OK]
			,[TAXO_PERCT]
			,[TAXO_PERC_OK]
			,[PAIA_PERCT]
			,[PAIA_PERC_OK]
			,[PAIS_PERCT]
			,[PAIS_PERC_OK])
SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[U_PREFSOST]
      ,[FLAGSFDR]
      ,[FLAGTAXO]
      ,[FLAGPAI]
      ,[SFDR_PERC]
      ,[TAXO_PERC]
      ,[PAI_A01]
      ,[PAI_A02]
      ,[PAI_A03]
      ,[PAI_A04]
      ,[PAI_A05]
      ,[PAI_A07]
      ,[PAI_A08]
      ,[PAI_S01]
      ,[PAI_S02]
      ,[PAI_NO_DETT]
      ,[PERC1ESG]
      ,[PERCAMB]
      ,[PERCSOC]
      ,[PERCGOV]
      ,[PERCAMB_OK]
      ,[PERCSOC_OK]
      ,[PERCGOV_OK]
      ,[SFDR_PERCT]
      ,[SFDR_PERC_OK]
      ,[TAXO_PERCT]
      ,[TAXO_PERC_OK]
      ,[PAIA_PERCT]
      ,[PAIA_PERC_OK]
      ,[PAIS_PERCT]
      ,[PAIS_PERC_OK]
  FROM FSEI0.FSEI0.[fsei0_pdc].[w6cliesg]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6CLIESG'
  
END  
  
  
  

  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_W6CLIREP_B]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
  
  
CREATE     procedure [C6StagingPeriodico].[REPTRIM_W6CLIREP_B]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6CLIREP_B'

TRUNCATE TABLE [C6MartPeriodico].[W6CLIREP_B]


INSERT INTO [C6MartPeriodico].[W6CLIREP_B]
           ( [FLGCLI]
      ,[FLGBL]
      ,[TIPOELA]
      ,[DTTRIM]
      ,[rete]
      ,[codfis]
      ,[piva]
      ,[codman]
      ,[CODFID]
      ,[CODAGE]
      ,[CODABI]
      ,[termid]
      ,[anno]
      ,[prog]
      ,[quote]
      ,[CTV]
      ,[codconf]
      ,[rubr]
      ,[custgar]
      ,[cod_interno]
      ,[codana]
      ,[FLAGPCT]
      ,[codprod]
      ,[cod_sottoprodotto]
      ,[cod_isin]
      ,[codlinea]
      ,[tipoptf]
      ,[area]
      ,[progetto]
      ,[codprj]
      ,[chiave_prodotto_terzi]
      ,[assetterzi]
      ,[famprodt]
      ,[intermediario]
      ,[codiceadeguatezza]
      ,[cod_maf]
      ,[conto]
      ,[numpolizza]
      ,[position_id]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV])
SELECT 
    TRIM([FLGCLI]) AS FLGCLI,
    TRIM([FLGBL]) AS FLGBL,
    TRIM([TIPOELA]) AS TIPOELA,
    [DTTRIM] AS DTTRIM,
    TRIM([rete]) AS rete,
    TRIM([codfis]) AS codfis,
    TRIM([piva]) AS piva,
    TRIM([codman]) AS codman,
    TRIM([CODFID]) AS CODFID,
    TRIM([CODAGE]) AS CODAGE,
    TRIM([CODABI]) AS CODABI,
    TRIM([termid]) AS termid,
    [anno] AS anno,
    [prog] AS prog,
    [quote] AS quote,
    [CTV] AS CTV,
    TRIM([codconf]) AS codconf,
    TRIM([rubr]) AS rubr,
    TRIM([custgar]) AS custgar,
    TRIM([codint]) AS codint,
    TRIM([codana]) AS codana,
    TRIM([FLAGPCT]) AS FLAGPCT,
    TRIM([codprod]) AS codprod,
    TRIM([subprod]) AS subprod,
    TRIM([isin]) AS isin,
    TRIM([codlinea]) AS codlinea,
    TRIM([tipoptf]) AS tipoptf,
    TRIM([area]) AS area,
    TRIM([progetto]) AS progetto,
    TRIM([codprj]) AS codprj,
    TRIM([keyprd]) AS keyprd,
    TRIM([assettrz]) AS assettrz,
    TRIM([famprd]) AS famprd,
    TRIM([interm]) AS interm,
    TRIM([codade]) AS codade,
    TRIM([codmaf]) AS codmaf,
    TRIM([conto]) AS conto,
    TRIM([numpol]) AS numpol,
    TRIM([posid]) AS posid,
    TRIM([PREFSOST]) AS PREFSOST,
    TRIM([FLAGAMB]) AS FLAGAMB,
    TRIM([FLAGSOC]) AS FLAGSOC,
    TRIM([FLAGGOV]) AS FLAGGOV
FROM 
    FSEI0.FSEI0.[fsei0_pdc].[w6clirep]

	DECLARE @DtTrim varchar(9);

SET @DtTrim = dbo.VerificaFestivo((SELECT MAX(dttrim) FROM [C6MartPeriodico].[W6CLIREP_B]));

update [C6MartPeriodico].[W6CLIREP_B]
set DTTRIM=@DtTrim




  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica W6CLIREP_B'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WANVIPS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_WANVIPS]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WANVIPS'

TRUNCATE TABLE [C6StagingPeriodico].[WANVIPS]


INSERT INTO [C6StagingPeriodico].[WANVIPS]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODANA]
           ,[FLAG6KC]
           ,[CODMAN]
           ,[CODCONF]
           ,[FLGORIG]
           ,[FLGIMM])

SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODANA]
      ,[FLAG6KC]
      ,[CODMAN]
      ,[CODCONF]
      ,[FLGORIG]
      ,[FLGIMM]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wanvips]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WANVIPS'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIAD2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIAD2]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIAD2'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIAD2]


INSERT INTO [C6StagingPeriodico].[WSEIAD2]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[DESCPROD]
           ,[CTV]
           ,[PERCCTV]
           ,[COMPL])

SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[DESCPROD]
      ,[CTV]
      ,[PERCCTV]
      ,[COMPL]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseiad]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIAD2'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIAN2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIAN2]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIAN2'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIAN2]
INSERT INTO [C6StagingPeriodico].[WSEIAN2]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[NOME]
           ,[COGNOME]
           ,[DTNASCI]
           ,[INDIRIZZO]
           ,[CAP]
           ,[CITTA]
           ,[PROVINCIA]
           ,[NAZIONE]
           ,[CODPROF]
           ,[DTINVAL]
           ,[CODMAN]
           ,[CLASSERC]
           ,[COD_PROFEC]
           ,[FLAGPG]
           ,[CLCOMPL]
           ,[FLGCONC]
           ,[FLAGNQP]
           ,[FLGPRLRDE]
           ,[FLGPROF]
           ,[DTFINVAL]
           ,[CONCEMI]
           ,[FREQ]
           ,[LLIQUID]
           ,[PREFSOST]
           ,[FLAGAMB]
           ,[FLAGSOC]
           ,[FLAGGOV]
           ,[ADEGCONC_VALUT]
           ,[SOGLIAESG]
           ,[COERENZA]
           ,[RISERVA]
           ,[INVL_PERIOD]
           ,[MAXCOMPL]
           ,[NOCOMPL]
           ,[SPESA_FORZATA]
           ,[PERC_ILP]
           ,[IMP_RISERVA])
SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[NOME]
      ,[COGNOME]
      ,[DTNASCI]
      ,[INDIRIZZO]
      ,[CAP]
      ,[CITTA]
      ,[PROVINCIA]
      ,[NAZIONE]
      ,[CODPROF]
      ,[DTINVAL]
      ,[CODMAN]
      ,[CLASSERC]
      ,[CODPROFEC]
      ,[FLAGPG]
      ,[CLCOMPL]
      ,[FLGCONC]
      ,[FLAGNQP]
      ,[FLGPRLRDE]
      ,[FLGPROF]
      ,[DTFINVAL]
      ,[CONCEMI]
      ,[FREQ]
      ,[LLIQUID]
      ,[PREFSOST]
      ,[FLAGAMB]
      ,[FLAGSOC]
      ,[FLAGGOV]
      ,[ADEGCONC_VALUT]
      ,[SOGLIAESG]
      ,[COERENZA]
      ,[RISERVA]
      ,[INVL_PERIOD]
      ,[MAXCOMPL]
      ,[NOCOMPL]
      ,[SPESA_FORZATA]
      ,[PERC_ILP]
      ,[IMP_RISERVA]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseian]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIAN2'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIBO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIBO]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIBO'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIBO]

INSERT INTO [C6StagingPeriodico].[WSEIBO]
           ([RETE]
           ,[DTTRIM]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[CODPROD]
           ,[NUMPOL]
           ,[CTV]
           ,[BONUSM]
           ,[DTDECM]
           ,[BONUS5]
           ,[DTDEC5]
           ,[BONUS10]
           ,[DTDEC10])
SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[CODPROD]
      ,[NUMPOL]
      ,[CTV]
      ,[BONUSM]
      ,[DTDECM]
      ,[BONUS5]
      ,[DTDEC5]
      ,[BONUS10]
      ,[DTDEC10]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseibo]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIBO'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEICAP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEICAP]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICAP'

TRUNCATE TABLE [C6StagingPeriodico].[WSEICAP]


INSERT INTO [C6StagingPeriodico].[WSEICAP]
           ([DTTRIM]
           ,[DTRIFE]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[SUBPROD]
           ,[ISIN]
           ,[DTINIZ]
           ,[DTFINE]
           ,[CTV_COMMIT]
           ,[IMPVERS]
           ,[IMPRES]
           ,[DESCPROD]
           ,[SGR])

SELECT [DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[SUBPROD]
      ,[ISIN]
      ,[DTINIZ]
      ,[DTFINE]
      ,[CTV_COMMIT]
      ,[IMPVERS]
      ,[IMPRES]
      ,[DESCPROD]
      ,[SGR]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseicap]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICAP'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEICC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEICC]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICC'

TRUNCATE TABLE [C6StagingPeriodico].[WSEICC]


INSERT INTO [C6StagingPeriodico].[WSEICC]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONFC]
           ,[CODCONFPR])

SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONFC]
      ,[CODCONFPR]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseicc]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICC'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEICE2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEICE2]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICE2'

TRUNCATE TABLE [C6StagingPeriodico].[WSEICE2]


INSERT INTO [C6StagingPeriodico].[WSEICE2]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODEMI]
           ,[TOTCTV]
           ,[DESCEMI]
           ,[SOGLIACTV_CONC]
           ,[RATING]
           ,[CONC]
           ,[LIMITE_CONC]
           ,[FLGCONC])

SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODEMI]
      ,[TOTCTV]
      ,[DESCEMI]
      ,[SOGLIACTV_CONC]
      ,[RATING]
      ,[CONC]
      ,[LIMITE_CONC]
      ,[FLGCONC]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseice]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICE2'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEICS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEICS]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICS'

TRUNCATE TABLE [C6StagingPeriodico].[WSEICS]
INSERT INTO [C6StagingPeriodico].[wseics]
           ([DTTRIM]
           ,[DTRIFE]
           ,[RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[NUMPOL]
           ,[CONTO]
           ,[RUBR]
           ,[CUSTGAR]
           ,[TIPPROD]
           ,[CODINT]
           ,[CODPROD]
           ,[SUBPROD]
           ,[MAF]
           ,[CODABI]
           ,[PCTKEY]
           ,[DESTIT]
           ,[CTV]
           ,[PARTVIA]
           ,[PARTVIAAL]
           ,[DTSOTTOS]
           ,[RENDINIZ]
           ,[RENDANNO]
           ,[VALORE]
           ,[SUBSET]
           ,[CVN]
           ,[QUOTE]
           ,[CODMAN]
           ,[SALRISC]
           ,[ATTIVO]
		   ,[PREZZO]
		   ,[DIVISA]
		   ,[BASE_PREZZ])
SELECT [DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[CODFIS]
      ,[CODCONF]
      ,[NUMPOL]
      ,[CONTO]
      ,[RUBR]
      ,[CUSTGAR]
      ,[TIPPROD]
      ,[CODINT]
      ,[CODPROD]
      ,[SUBPROD]
      ,[MAF]
      ,[CODABI]
      ,[PCTKEY]
      ,[DESTIT]
      ,[CTV]
      ,[PARTVIA]
      ,[PARTVIAAL]
      ,[DTSOTTOS]
      ,[RENDINIZ]
      ,[RENDANNO]
      ,[VALORE]
      ,[SUBSET]
      ,[CVN]
      ,[QUOTE]
      ,[CODMAN]
      ,[SALRISC]
      ,[ATTIVO]
	  ,[PREZZO]
	  ,[DIVISA]
	  ,[BASE_PREZZ]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseics]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEICS'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIDC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE    procedure [C6StagingPeriodico].[REPTRIM_WSEIDC]    
AS   
BEGIN    
  
exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIDC'  
  
TRUNCATE TABLE [C6StagingPeriodico].[WSEIDC]  
  
INSERT INTO [C6StagingPeriodico].[WSEIDC]  
           ([RETE]  
           ,[DTTRIM]  
           ,[CODFIS]  
           ,[CODANA]  
           ,[CODMAN]  
           ,[CODAGE]  
           ,[INTEST]  
           ,[CODCONF]  
           ,[SUBPROD]  
           ,[DTLETT]  
           ,[SEX]  
           ,[INDIR]  
           ,[CAP]  
           ,[CITTA]  
           ,[PROV]  
           ,[NAZION]  
           ,[PRESSO]  
           ,[TIPCONTR]  
     ,[TEMPLATE]  
     ,[TIPOLETT]  
     )  
  
SELECT [RETE]  
      ,[DTTRIM]  
      ,[CODFIS]  
      ,[CODANA]  
      ,[CODMAN]  
      ,[CODAGE]  
      ,[INTEST]  
      ,[CODCONF]  
      ,[SUBPROD]  
      ,[DTLETT]  
      ,[SEX]  
      ,[INDIR]  
      ,[CAP]  
      ,[CITTA]  
      ,[PROV]  
      ,[NAZION]  
      ,[PRESSO]  
      ,[TIPCONTR]  
     ,[TEMPLATE]  
     ,[TIPOLETT]  
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseidc]  
  
  UNION  
  
  SELECT [RETE]  
      ,[DTTRIM]  
      ,[CODFIS]  
      ,[CODANA]  
      ,[CODMAN]  
      ,[CODAGE]  
      ,[INTEST]  
      ,[CODCONF]  
      ,[SUBPROD]  
      ,[DTLETT]  
      ,[SEX]  
      ,[INDIR]  
      ,[CAP]  
      ,[CITTA]  
      ,[PROV]  
      ,[NAZION]  
      ,[PRESSO]  
      ,[TIPCONTR]  
     ,[TEMPLATE]  
     ,[TIPOLETT]  
  FROM FSEI0.FSEI0.[fsei0_pdc].[w6dbdc]  
  
  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIDC'  
    
END    
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIFP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIFP]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIFP'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIFP]



INSERT INTO [C6StagingPeriodico].[WSEIFP]
           ([DTTRIM]
           ,[DTRIFE]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[CODPROD]
           ,[SUBPROD]
           ,[ISIN]
           ,[CTV]
           ,[PREZZO]
           ,[QUOTE]
           ,[PREZZOMAX]
           ,[DTPREZZOMAX]
           ,[PREZZOPROT]
           ,[CTRVIMPPROT])
SELECT [DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[CODPROD]
      ,[SUBPROD]
      ,[ISIN]
      ,[CTV]
      ,[PREZZO]
      ,[QUOTE]
      ,[PREZZOMAX]
      ,[DTPREZZOMAX]
      ,[PREZZOPROT]
      ,[CTRVIMPPROT]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseifp]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIFP'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIGP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIGP]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIGP'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIGP]

INSERT INTO [C6StagingPeriodico].[WSEIGP]
           ([RETE]
           ,[DTTRIM]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[SUBPROG]
           ,[AREAFIN]
           ,[DTRIFE]
           ,[ISIN]
           ,[MAF]
           ,[MERCATO]
           ,[CODLINEA]
           ,[CTV]
           ,[QUOTE]
           ,[FLAGTRIM]
           ,[ATTIVO]
           ,[PREZZOMAX]
           ,[DTPREZZOMAX]
           ,[PREZZOPROT]
           ,[CTRVIMPPROT]
           ,[PREZZO]
		   ,[DIVISA]
		   ,[BASE_PREZZ])
SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[SUBPROG]
      ,[AREAFIN]
      ,[DTRIFE]
      ,[ISIN]
      ,[MAF]
      ,[MERCATO]
      ,[CODLINEA]
      ,[CTV]
      ,[QUOTE]
      ,[FLAGTRIM]
      ,[ATTIVO]
      ,[PREZZOMAX]
      ,[DTPREZZOMAX]
      ,[PREZZOPROT]
      ,[CTRVIMPPROT]
      ,[PREZZO]
	  ,[DIVISA]
	  ,[BASE_PREZZ]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseigp]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIGP'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEILP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEILP]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEILP'

TRUNCATE TABLE [C6StagingPeriodico].[WSEILP]


INSERT INTO [C6StagingPeriodico].[WSEILP]
           ([DTTRIM]
           ,[DTRIFE]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[CODPROD]
           ,[CODLINEA]
           ,[CTV]
           ,[CTV_PROT]
           ,[CTVMON]
           ,[FLAGTRIM])
SELECT [DTTRIM]
      ,[DTRIFE]
      ,[RETE]
      ,[CODFIS]
      ,[CODMAN]
      ,[CODCONF]
      ,[CODPROD]
      ,[CODLINEA]
      ,[CTV]
      ,[CTVPROT]
      ,[CTVMON]
      ,[FLAGTRIM]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseilp]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEILP'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIMM_POS_SQL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE   procedure [C6StagingPeriodico].[REPTRIM_WSEIMM_POS_SQL]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIMM_POS_SQL'

truncate table [C6MartPeriodicoImmobiliare].[W6IMM]


INSERT INTO [C6MartPeriodicoImmobiliare].[W6IMM]
           ([RETE]
           ,[CODFIS]
           ,[CONTRATTO]
           ,[CONSULENZA]
           ,[SERVIZIO_AGGIUNTIVO]
           ,[STATO_ADD_IMMOBILIARE]
           ,[STATO_IMPORTAZIONE]
           ,[FLAG_IN_PERIMETRO]
           ,[RENDICONTO_SEI]
           ,[RENDICONTO_IMM])
SELECT  [RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[TIPCONS]
           ,[SERVAGG]
           ,[ADDIMM]
           ,[STAIMP]
           ,[FLAGPE]
           ,[RENDSEI]
           ,[RENDIMM]
  FROM  FSEI0.FSEI0.[fsei0_pdc].[w6imm]


  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIMM_POS_SQL'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIMM_SQL_POS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE   procedure [C6StagingPeriodico].[REPTRIM_WSEIMM_SQL_POS]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIMM_SQL_POS'

delete from FSEI0.FSEI0.[fsei0_pdc].[w6imm]


INSERT INTO FSEI0.FSEI0.[fsei0_pdc].[w6imm]
           ([RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[TIPCONS]
           ,[SERVAGG]
           ,[ADDIMM]
           ,[STAIMP]
           ,[FLAGPE]
           ,[RENDSEI]
           ,[RENDIMM])
SELECT  [RETE]
      ,[CODFIS]
      ,[CONTRATTO]
      ,[CONSULENZA]
      ,[SERVIZIO_AGGIUNTIVO]
      ,[STATO_ADD_IMMOBILIARE]
      ,[STATO_IMPORTAZIONE]
      ,[FLAG_IN_PERIMETRO]
      ,[RENDICONTO_SEI]
      ,[RENDICONTO_IMM]
  FROM [C6MartPeriodicoImmobiliare].[W6IMM]


  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIMM_SQL_POS'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIPR]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIPR]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIPR'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIPR]

INSERT INTO [C6StagingPeriodico].[WSEIPR]
           ([RETE]
           ,[DTTRIM]
           ,[CODFIS]
           ,[CODMAN]
           ,[FAMPROD]
           ,[CODPROD]
           ,[SUBPROD]
           ,[CODABI]
           ,[DTRIFE]
           ,[TIPMOV]
           ,[IMPORTO])
SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODMAN]
      ,[FAMPROD]
      ,[CODPROD]
      ,[SUBPROD]
      ,[CODABI]
      ,[DTRIFE]
      ,[TIPMOV]
      ,[IMPORTO]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseipr]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIPR'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIPS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIPS]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIPS'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIPS]

INSERT INTO [C6StagingPeriodico].[WSEIPS]
           ([RETE]
           ,[DTTRIM]
           ,[CODFIS]
           ,[CODANA]
           ,[CODMAN]
           ,[CODAGE]
           ,[INTEST]
           ,[CODCONF]
           ,[SUBPROD]
           ,[DTLETT]
           ,[SEX]
           ,[INDIR]
           ,[CAP]
           ,[CITTA]
           ,[PROV]
           ,[NAZION]
           ,[PRESSO]
           ,[TIPCONTR])

SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODANA]
      ,[CODMAN]
      ,[CODAGE]
      ,[INTEST]
      ,[CODCONF]
      ,[SUBPROD]
      ,[DTLETT]
      ,[SEX]
      ,[INDIR]
      ,[CAP]
      ,[CITTA]
      ,[PROV]
      ,[NAZION]
      ,[PRESSO]
      ,[TIPCONTR]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseips]

  UNION

  SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODANA]
      ,[CODMAN]
      ,[CODAGE]
      ,[INTEST]
      ,[CODCONF]
      ,[SUBPROD]
      ,[DTLETT]
      ,[SEX]
      ,[INDIR]
      ,[CAP]
      ,[CITTA]
      ,[PROV]
      ,[NAZION]
      ,[PRESSO]
      ,[TIPCONTR]
  FROM FSEI0.FSEI0.[fsei0_pdc].[w6dbps]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIPS'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIPV]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIPV]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIPV'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIPV]

INSERT INTO [C6StagingPeriodico].[WSEIPV]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[IMPVER]
           ,[DTRIFE]
           ,[SUBSET]
           ,[CODMAN]
		   ,[BASE_PREZZ])
SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODCONF]
      ,[IMPVER]
      ,[DTRIFE]
      ,[SUBSET]
      ,[CODMAN]
	  ,[BASE_PREZZ]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseipv]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIPV'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIRP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIRP]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIRP'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIRP]

INSERT INTO [C6StagingPeriodico].[WSEIRP]
           ([NOMETAB]
           ,[PROCEDURA]
           ,[TSP_AGGIOR])

SELECT [NOMETAB]
      ,[PROCEDURA]
      ,[TSP_AGGIOR]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseirp]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIRP'

  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIRPF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIRPF]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIRPF'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIRPF]
INSERT INTO [C6StagingPeriodico].[WSEIRPF]
           ( [dttrim]
      ,[rete]
      ,[codfis]
      ,[codman]
      ,[flgprof]
      ,[flgec]
      ,[data_ora_refresh]
      ,[data_ora_inse]
      ,[data_ora_aggi])
SELECT  [dttrim]
      ,[rete]
      ,[codfis]
      ,[codman]
      ,[flgprof]
      ,[flgec]
      ,[data_ora_refresh]
      ,[data_ora_inse]
      ,[data_ora_aggi]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseirpf]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIRPF'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEISC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEISC]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEISC'

TRUNCATE TABLE [C6StagingPeriodico].[WSEISC]

INSERT INTO [C6StagingPeriodico].[WSEISC]
           ([RETE]
           ,[DTTRIM]
           ,[CODFIS]
           ,[CODMAN]
           ,[FAMPROD]
           ,[CODPROD]
           ,[SUBPROD]
           ,[CODABI]
           ,[DTSCAD]
           ,[TIPMOV])
SELECT [RETE]
      ,[DTTRIM]
      ,[CODFIS]
      ,[CODMAN]
      ,[FAMPROD]
      ,[CODPROD]
      ,[SUBPROD]
      ,[CODABI]
      ,[DTSCAD]
      ,[TIPMOV]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseisc]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEISC'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[REPTRIM_WSEIUL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
  
  
  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[REPTRIM_WSEIUL]  
AS 
BEGIN  

exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIUL'

TRUNCATE TABLE [C6StagingPeriodico].[WSEIUL]

INSERT INTO [C6StagingPeriodico].[wseiul]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[CODINT]
           ,[SUBPROD]
           ,[CTV]
           ,[DTRIFE]
           ,[ISINFIT]
           ,[ISIN]
           ,[MAF]
           ,[SUBSET]
           ,[CODMAN]
           ,[PREZZOMAX]
           ,[DTPREZZOMAX]
           ,[PREZZOPROT]
           ,[CTRVIMPPROT]
           ,[PREZZO]
           ,[QUOTE]
		   ,[DIVISA]
		   ,[BASE_PREZZ])
SELECT [DTTRIM]
      ,[RETE]
      ,[CODFIS]
      ,[CODCONF]
      ,[CODINT]
      ,[SUBPROD]
      ,[CTV]
      ,[DTRIFE]
      ,[ISINFIT]
      ,[ISIN]
      ,[MAF]
      ,[SUBSET]
      ,[CODMAN]
      ,[PREZZOMAX]
      ,[DTPREZZOMAX]
      ,[PREZZOPROT]
      ,[CTRVIMPPROT]
      ,[PREZZO]
      ,[QUOTE]
	  ,[DIVISA]
	  ,[BASE_PREZZ]
  FROM FSEI0.FSEI0.[fsei0_pdc].[wseiul]

  exec [C6StagingPeriodico].[RP_W6LogBatch] 'Replica WSEIUL'
  
END  
  
  
  
  
  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_AGGIORNA_SPB_PROF_RISCHIO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodico].[RP_AGGIORNA_SPB_PROF_RISCHIO]

AS
BEGIN

update C6StagingPeriodico.SPB_PROF_RISCHIO
set VARTRIMESTRALE=d.varmax
from consuni.consulenzaunica.dbo.dprofilo d
inner join C6StagingPeriodico.SPB_PROF_RISCHIO s
on d.profilo=s.CODICEPROFILO



END 
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_clientiConMigrazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_clientiConMigrazione]
as
begin
truncate table [C6StagingPeriodico].[RP_V_clienti_contrsei_con_migraz]

INSERT INTO [C6StagingPeriodico].[RP_V_clienti_contrsei_con_migraz]
           ([chiaveClientePb]
           ,[rete]
           ,[cod_fiscale]
           ,[dtprimaMigrazione])
   
select 
	a.chiaveClientePb,
	b.rete,
	b.cod_fiscale,
	a.dtprimaMigrazione

from

C6StagingPeriodico.RP_MIGRAZ_PIANIFICAZIONE a
join
C6MartPeriodico.RP_vContrattiPerGenerazioneReport b
on a.chiaveClientePb = b.chiaveClientePb


end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_clientiConMigrazione_20170413_RM_nomeDB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_clientiConMigrazione_20170413_RM_nomeDB]
as
begin
truncate table [C6StagingPeriodico].[RP_V_clienti_contrsei_con_migraz]

INSERT INTO [C6StampeCentralizzate].[C6StagingPeriodico].[RP_V_clienti_contrsei_con_migraz]
           ([chiaveClientePb]
           ,[rete]
           ,[cod_fiscale]
           ,[dtprimaMigrazione])
   
select 
	a.chiaveClientePb,
	b.rete,
	b.cod_fiscale,
	a.dtprimaMigrazione

from

C6StagingPeriodico.RP_MIGRAZ_PIANIFICAZIONE a
join
C6MartPeriodico.RP_vContrattiPerGenerazioneReport b
on a.chiaveClientePb = b.chiaveClientePb


end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




  
CREATE procedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA]  
AS  
BEGIN  
  -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_CREA_POSITIONID_CONSULENZA',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
truncate table TAB1  
  
insert into TAB1  
SELECT distinct  
  isnull(TIPOPRODOTTO,'') TIPOPRODOTTO,  
  isnull(CODINTERNO,'') CODINTERNO,  
  isnull(CODMAF,'') CODMAF,  
--***INIZIO INTERVENTI OMNIA***    
--  CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--  CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,  
--inizio INTERVENTO 'RE' - 20161213     
  --CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'')  
		--inizio INTERVENTO 'RF/MP' - 20171204     
			--CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(CODISIN,'')   
			CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') THEN ISNULL(CODISIN,'')   
		--fine INTERVENTO 'RF/MP' - 20171204
    ELSE '' END AS CODISIN,  
--FINE INTERVENTO 'RE' - 20161213     
--FINE INTERVENTO MIGRAZIONE ASU3  
--***FINE INTERVENTI OMNIA***    
   isnull(CODSOTTOPRODOTTO,'') CODSOTTOPRODOTTO,  
  position_id  
--INTO TAB1  
FROM C6StagingPeriodico.RP_CONSULENZA   
  
UPDATE  TAB1  
 SET position_id =      
     --DBO.INFO_DAPRODOTTOCSACATALOGO (         
       C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPOPRODOTTO,   
      CODINTERNO,   
      CODMAF,      
      CODISIN,  
      CODSOTTOPRODOTTO  
    )   
   
DECLARE @CNTNULL as int  
SELECT @CNTNULL = COUNT(*) FROM TAB1 WHERE isnull(position_id,'') = ''  
  
--SET @CNTNULL = 0  
IF @CNTNULL = 0  
 UPDATE  C6StagingPeriodico.RP_CONSULENZA  
   SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (  
        c.TIPOPRODOTTO,   
        c.CODINTERNO,   
        c.CODMAF,  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--        '',   
--inizio INTERVENTO 'RE' - 20161213     
        --CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'')  
				--inizio INTERVENTO 'RF/MP' - 20171204       
				--CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(c.CODISIN,'')   
				CASE WHEN C.CODINTERNO in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') THEN ISNULL(c.CODISIN,'') 
				--fine INTERVENTO 'RF/MP' - 20171204    
--FINE INTERVENTO 'RE' - 20161213             
        ELSE '' END,  
--FINE INTERVENTO MIGRAZIONE ASU3     
        c.CODSOTTOPRODOTTO,   
        c.CODCONF,   
        c.NUMPOLIZZA,   
        c.CONTO,  
        c.RUBRICATO,   
        c.CUSTGAR,  
        c.TERMID,  
        cast(c.ANNO as decimal(3,0)),  
        cast(c.PROG as decimal(9,0))  
  )   
  FROM   C6StagingPeriodico.RP_CONSULENZA c  
   left join TAB1 t   
   ON  1=1
   -- FerAcu Ottimizzazione 20241018
     --AND isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')  
     --AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')  
     --AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')  
   AND t.TIPOPRODOTTO =isnull(c.TIPOPRODOTTO,'')  
   AND t.CODINTERNO=isnull(c.CODINTERNO,'')  
   AND t.CODMAF =isnull(c.CODMAF,'')  
--***INIZIO INTERVENTI OMNIA***    
--   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END   
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(c.CODISIN,'') ELSE '' END   
--inizio INTERVENTO 'RE' - 20161213      
		--inizio INTERVENTO 'RF/MP' - 20171204     
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE')   
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
		--fine INTERVENTO 'RF/MP' - 20171204   
--FINE INTERVENTO 'RE' - 20161213      
   THEN ISNULL(c.CODISIN,'')   
   ELSE '' END   
--FINE INTERVENTO MIGRAZIONE ASU3     
--***FINE INTERVENTI OMNIA***    
   --AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')  
   AND t.CodSottoprodotto =isnull(c.CODSOTTOPRODOTTO,'')  
  --WHERE c.position_id = '' and  t.position_id is not null  
    
      
DECLARE @CNT as int  
SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') <> ''  
  
-- Log esecuzione  
UPDATE  
 LOG_ESECUZIONE_PERIODICO  
SET  
 Fine = GETDATE(),  
 Tipo = 'UPDATE',  
 Righe = @CNT  
WHERE  
 Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND  
 Inizio = (  
  SELECT  
   MAX(Inizio)  
  FROM  
   LOG_ESECUZIONE_PERIODICO  
  WHERE  
   Nome = 'RP_CREA_POSITIONID_CONSULENZA'  
 )  
   
--drop table  TAB1  
  
IF @CNTNULL = 0  
 SELECT @CNTNULL = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''  
  
if @CNTNULL > 0  
  RAISERROR ('Scarti position_id null', 16, 1 )  
                  
  
END  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_20161213]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_20161213]
AS
BEGIN
		-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

truncate table TAB1

insert into TAB1
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
--***INIZIO INTERVENTI OMNIA***		
--		CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'') 
			 ELSE '' END AS CODISIN,
--FINE INTERVENTO MIGRAZIONE ASU3
--***FINE INTERVENTI OMNIA***		
		CODSOTTOPRODOTTO,
		position_id
--INTO TAB1
FROM C6StagingPeriodico.RP_CONSULENZA	

UPDATE  TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (       
				   C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
 
DECLARE @CNTNULL as int
SELECT @CNTNULL = COUNT(*) FROM TAB1 WHERE isnull(position_id,'') = ''

--SET @CNTNULL = 0
IF @CNTNULL = 0
	UPDATE 	C6StagingPeriodico.RP_CONSULENZA
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--								'', 
								CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'') 
								ELSE '' END,
--FINE INTERVENTO MIGRAZIONE ASU3			
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   C6StagingPeriodico.RP_CONSULENZA c
			left join TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
--***INIZIO INTERVENTI OMNIA***		
--			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
--INIZIO INTERVENTO MIGRAZIONE ASU3
--			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(c.CODISIN,'') ELSE '' END 
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB') 
			THEN ISNULL(c.CODISIN,'') 
			ELSE '' END 
--FINE INTERVENTO MIGRAZIONE ASU3			
--***FINE INTERVENTI OMNIA***		
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
  
    
DECLARE @CNT as int
SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') <> ''

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @CNT
WHERE
	Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'RP_CREA_POSITIONID_CONSULENZA'
	)
	
--drop table 	TAB1

IF @CNTNULL = 0
	SELECT @CNTNULL = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''

if @CNTNULL > 0
  RAISERROR ('Scarti position_id null', 16, 1 )
               	

END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_20171204_preRFMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
CREATE procedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_20171204_preRFMP]  
AS  
BEGIN  
  -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_CREA_POSITIONID_CONSULENZA',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
truncate table TAB1  
  
insert into TAB1  
SELECT distinct  
  TIPOPRODOTTO,  
  CODINTERNO,  
  CODMAF,  
--***INIZIO INTERVENTI OMNIA***    
--  CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--  CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,  
--inizio INTERVENTO 'RE' - 20161213     
  --CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'')   
    CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(CODISIN,'')   
    ELSE '' END AS CODISIN,  
--FINE INTERVENTO 'RE' - 20161213     
--FINE INTERVENTO MIGRAZIONE ASU3  
--***FINE INTERVENTI OMNIA***    
  CODSOTTOPRODOTTO,  
  position_id  
--INTO TAB1  
FROM C6StagingPeriodico.RP_CONSULENZA   
  
UPDATE  TAB1  
 SET position_id =      
     --DBO.INFO_DAPRODOTTOCSACATALOGO (         
       C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPOPRODOTTO,   
      CODINTERNO,   
      CODMAF,      
      CODISIN,  
      CODSOTTOPRODOTTO  
    )   
   
DECLARE @CNTNULL as int  
SELECT @CNTNULL = COUNT(*) FROM TAB1 WHERE isnull(position_id,'') = ''  
  
--SET @CNTNULL = 0  
IF @CNTNULL = 0  
 UPDATE  C6StagingPeriodico.RP_CONSULENZA  
   SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (  
        c.TIPOPRODOTTO,   
        c.CODINTERNO,   
        c.CODMAF,  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--        '',   
--inizio INTERVENTO 'RE' - 20161213     
        --CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'')   
        CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(c.CODISIN,'')   
--FINE INTERVENTO 'RE' - 20161213             
        ELSE '' END,  
--FINE INTERVENTO MIGRAZIONE ASU3     
        c.CODSOTTOPRODOTTO,   
        c.CODCONF,   
        c.NUMPOLIZZA,   
        c.CONTO,  
        c.RUBRICATO,   
        c.CUSTGAR,  
        c.TERMID,  
        cast(c.ANNO as decimal(3,0)),  
        cast(c.PROG as decimal(9,0))  
  )   
  FROM   C6StagingPeriodico.RP_CONSULENZA c  
   left join TAB1 t   
   ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')  
   AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')  
   AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')  
--***INIZIO INTERVENTI OMNIA***    
--   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END   
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(c.CODISIN,'') ELSE '' END   
--inizio INTERVENTO 'RE' - 20161213        
   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE')   
--FINE INTERVENTO 'RE' - 20161213      
   THEN ISNULL(c.CODISIN,'')   
   ELSE '' END   
--FINE INTERVENTO MIGRAZIONE ASU3     
--***FINE INTERVENTI OMNIA***    
   AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')  
  --WHERE c.position_id = '' and  t.position_id is not null  
    
      
DECLARE @CNT as int  
SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') <> ''  
  
-- Log esecuzione  
UPDATE  
 LOG_ESECUZIONE_PERIODICO  
SET  
 Fine = GETDATE(),  
 Tipo = 'UPDATE',  
 Righe = @CNT  
WHERE  
 Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND  
 Inizio = (  
  SELECT  
   MAX(Inizio)  
  FROM  
   LOG_ESECUZIONE_PERIODICO  
  WHERE  
   Nome = 'RP_CREA_POSITIONID_CONSULENZA'  
 )  
   
--drop table  TAB1  
  
IF @CNTNULL = 0  
 SELECT @CNTNULL = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''  
  
if @CNTNULL > 0  
  RAISERROR ('Scarti position_id null', 16, 1 )  
                  
  
END  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_20190725]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_20190725]  
AS  
BEGIN  
  -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_CREA_POSITIONID_CONSULENZA',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
truncate table TAB1  
  
insert into TAB1  
SELECT distinct  
  TIPOPRODOTTO,  
  CODINTERNO,  
  CODMAF,  
--***INIZIO INTERVENTI OMNIA***    
--  CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--  CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,  
--inizio INTERVENTO 'RE' - 20161213     
  --CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'')  
		--inizio INTERVENTO 'RF/MP' - 20171204     
			--CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(CODISIN,'')   
			CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE','RF') THEN ISNULL(CODISIN,'')   
		--fine INTERVENTO 'RF/MP' - 20171204
    ELSE '' END AS CODISIN,  
--FINE INTERVENTO 'RE' - 20161213     
--FINE INTERVENTO MIGRAZIONE ASU3  
--***FINE INTERVENTI OMNIA***    
  CODSOTTOPRODOTTO,  
  position_id  
--INTO TAB1  
FROM C6StagingPeriodico.RP_CONSULENZA   
  
UPDATE  TAB1  
 SET position_id =      
     --DBO.INFO_DAPRODOTTOCSACATALOGO (         
       C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPOPRODOTTO,   
      CODINTERNO,   
      CODMAF,      
      CODISIN,  
      CODSOTTOPRODOTTO  
    )   
   
DECLARE @CNTNULL as int  
SELECT @CNTNULL = COUNT(*) FROM TAB1 WHERE isnull(position_id,'') = ''  
  
--SET @CNTNULL = 0  
IF @CNTNULL = 0  
 UPDATE  C6StagingPeriodico.RP_CONSULENZA  
   SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (  
        c.TIPOPRODOTTO,   
        c.CODINTERNO,   
        c.CODMAF,  
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--        '',   
--inizio INTERVENTO 'RE' - 20161213     
        --CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'')  
				--inizio INTERVENTO 'RF/MP' - 20171204       
				--CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(c.CODISIN,'')   
				CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE','RF') THEN ISNULL(c.CODISIN,'') 
				--fine INTERVENTO 'RF/MP' - 20171204    
--FINE INTERVENTO 'RE' - 20161213             
        ELSE '' END,  
--FINE INTERVENTO MIGRAZIONE ASU3     
        c.CODSOTTOPRODOTTO,   
        c.CODCONF,   
        c.NUMPOLIZZA,   
        c.CONTO,  
        c.RUBRICATO,   
        c.CUSTGAR,  
        c.TERMID,  
        cast(c.ANNO as decimal(3,0)),  
        cast(c.PROG as decimal(9,0))  
  )   
  FROM   C6StagingPeriodico.RP_CONSULENZA c  
   left join TAB1 t   
   ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')  
   AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')  
   AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')  
--***INIZIO INTERVENTI OMNIA***    
--   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END   
--INIZIO INTERVENTO MIGRAZIONE ASU3  
--   AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(c.CODISIN,'') ELSE '' END   
--inizio INTERVENTO 'RE' - 20161213      
		--inizio INTERVENTO 'RF/MP' - 20171204     
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE')   
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE','RF')
		--fine INTERVENTO 'RF/MP' - 20171204   
--FINE INTERVENTO 'RE' - 20161213      
   THEN ISNULL(c.CODISIN,'')   
   ELSE '' END   
--FINE INTERVENTO MIGRAZIONE ASU3     
--***FINE INTERVENTI OMNIA***    
   AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')  
  --WHERE c.position_id = '' and  t.position_id is not null  
    
      
DECLARE @CNT as int  
SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') <> ''  
  
-- Log esecuzione  
UPDATE  
 LOG_ESECUZIONE_PERIODICO  
SET  
 Fine = GETDATE(),  
 Tipo = 'UPDATE',  
 Righe = @CNT  
WHERE  
 Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND  
 Inizio = (  
  SELECT  
   MAX(Inizio)  
  FROM  
   LOG_ESECUZIONE_PERIODICO  
  WHERE  
   Nome = 'RP_CREA_POSITIONID_CONSULENZA'  
 )  
   
--drop table  TAB1  
  
IF @CNTNULL = 0  
 SELECT @CNTNULL = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''  
  
if @CNTNULL > 0  
  RAISERROR ('Scarti position_id null', 16, 1 )  
                  
  
END  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_CREA_POSITIONID_CONSULENZA_pre_selective]
AS
BEGIN
		-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

truncate table TAB1

insert into TAB1
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
--***INIZIO INTERVENTI OMNIA***		
--		CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--inizio INTERVENTO 'RE' - 20161213			
		--CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'') 
			 CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(CODISIN,'') 
			 ELSE '' END AS CODISIN,
--FINE INTERVENTO 'RE' - 20161213			
--FINE INTERVENTO MIGRAZIONE ASU3
--***FINE INTERVENTI OMNIA***		
		CODSOTTOPRODOTTO,
		position_id
--INTO TAB1
FROM C6StagingPeriodico.RP_CONSULENZA	

UPDATE  TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (       
				   C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
 
DECLARE @CNTNULL as int
SELECT @CNTNULL = COUNT(*) FROM TAB1 WHERE isnull(position_id,'') = ''

--SET @CNTNULL = 0
IF @CNTNULL = 0
	UPDATE 	C6StagingPeriodico.RP_CONSULENZA
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--								'', 
--inizio INTERVENTO 'RE' - 20161213			
								--CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'') 
								CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE') THEN ISNULL(c.CODISIN,'') 
--FINE INTERVENTO 'RE' - 20161213											
								ELSE '' END,
--FINE INTERVENTO MIGRAZIONE ASU3			
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   C6StagingPeriodico.RP_CONSULENZA c
			left join TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
--***INIZIO INTERVENTI OMNIA***		
--			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
--INIZIO INTERVENTO MIGRAZIONE ASU3
--			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(c.CODISIN,'') ELSE '' END 
--inizio INTERVENTO 'RE' - 20161213						
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE') 
--FINE INTERVENTO 'RE' - 20161213				
			THEN ISNULL(c.CODISIN,'') 
			ELSE '' END 
--FINE INTERVENTO MIGRAZIONE ASU3			
--***FINE INTERVENTI OMNIA***		
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
  
    
DECLARE @CNT as int
SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') <> ''

-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @CNT
WHERE
	Nome = 'RP_CREA_POSITIONID_CONSULENZA_pre_selective' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'RP_CREA_POSITIONID_CONSULENZA_pre_selective'
	)
	
--drop table 	TAB1

IF @CNTNULL = 0
	SELECT @CNTNULL = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''

if @CNTNULL > 0
  RAISERROR ('Scarti position_id null', 16, 1 )
               	

END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
  
CREATE procedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza]  
   
as  
BEGIN  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_EstrazioneProfiliInScadenza',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 DECLARE @id_periodiodo as int  
 select @id_periodiodo = max(id_periodo) from [CONSUNI].SEIAlertDW.[dbo].[Vis_Mifid_Report]  
      
    --select * into #TempVisMifidReport from [CONSUNI].SEIAlertDW.[dbo].[Vis_Mifid_Report]

	select*
into #TempVisMifidReport
from openquery(CONSUNI,
'SELECT     
	Mifid.Id_Controllo, Mifid.Id_periodo, Mifid.Rete, 
	Mifid.CodAgente, Mifid.CodFiscale, Mifid.CodMan, 
	Cli.Cognome, Cli.Nome, Mifid.DtProfilo, 
	Mifid.ProfiloAss, Mifid.VarMin, Mifid.VarMax, Mifid.VAR_PTFBF, 
	--dbo.Calcola_ProfiloDaVar(Mifid.VAR_PTFBF) AS ProfiloPTF,
	Mifid.PrioritaAdeg, 
	Mifid.NumGPAdeguate, Mifid.NumGPNonAdeguate, Mifid.PrioritaProfilatura, 
	Mifid.RFA_BF, Mifid.CTV_BFCC, Mifid.RifQuest, Mifid.TpQuest, 
	Mifid.PrioritaAzione, Mifid.Codana, Mifid.Faif, Cli.Sesso, Mifid.ProdNoMifid, 
	Cli.FlagGp, Cli.DtFirmaConsulenza, Cli.DtUltimoMov, 
	Mifid.ProfiloCalc, 
	--Mifid.CodFid,
	Mifid.ProfiloScadenza, Mifid.NumGPRevocate, 
	mifid.dtfirmaconsulenzasei, mifid.tipoconsulenzasei,
	Mifid.grado_copertura, Mifid.CodProfiloRischioCredito, 
	Mifid.CodProfEC, Mifid.ClasseRischioCreditoPTF

	--into #TempVisMifidReport 

FROM         (SELECT     Profilo, Descrizione, DtInizioValidita, DtFineValidita, VarMin, VarMax, DescrizioneRid
                       FROM          SEIAlertFL.dbo.Profilo AS Profilo_1
                       WHERE      (YEAR(DtFineValidita) = 9999)) AS Profilo 
RIGHT OUTER JOIN ControlloData.dbo.FLSimPB_CodFiscaleProf AS Prof 
	ON Profilo.Profilo = Prof.ProfiloAss 
RIGHT OUTER JOIN SEIALERTDW.dbo.Fact_Mifid AS Mifid 
INNER JOIN  ControlloData.dbo.FLSimpb_Cliente AS Cli 
	ON Mifid.CodAgente = Cli.CodAgente 
	AND Mifid.CodFiscale = Cli.CodFiscale 
	AND Mifid.CodMan = Cli.CodMan or (Mifid.CodMan is null and Cli.CodMan is null)
	ON Prof.Rete = Cli.Rete
	AND Prof.codAgente = Cli.CodAgente					
	AND Prof.CodFiscale = Cli.CodFiscale  
	AND Prof.CodMan = Cli.CodMan or (Prof.CodMan is null and Cli.CodMan is null)
INNER JOIN SEIalertDW.dbo.ControlloDaElaborareSis co
	on Mifid.id_periodo = co.id_periodo 
	and co.id_controllo = 2')

      
      
 TRUNCATE TABLE C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO   
  
 INSERT INTO C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO   
  
  
 select   
 a.rete, cod_fiscale, codicecontratto, cod_agente, null as data_sott, data_perf,   
 b.inviobenvenuto as flag_invio_report, profiloAss As Profilo,   
 dtprofilo as dt_creazione_profilo      
 from  
    C6Mart.vcontratti a  
 inner join C6Mart.contrattosei_metadati b  
 on a.chiaveclientepb = b.chiaveclientepb  
 left outer join  
 --[MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report] c  
 #TempVisMifidReport c  
 on   
 (case   
  when len(CodMan) = 0  
  then   c.CodFiscale  
  else 'FF@'+ CodMan  
 end) = a.cod_fiscale   
 and a.rete=c.rete  
    and a.cod_agente = substring(c.codagente, 2, len(c.codagente)- 1)  
 where   
 c.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo  
 and a.data_fineavanzato > getDate()  
  
 --CONDIZIONE FILTRO PER I PROSSIMI 3 MESI  
 --And datediff(dd,dtprofilo,dateadd(mm,3,getdate()))/365.25>3  
 --And datediff(dd,dtprofilo,getdate())/365.25>3  
--  
-- union   
--  
-- select   
-- a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf,   
-- inviobenvenuto as flag_invio_report, profilo, dtprofilo as dt_creazione_profilo  
-- from  
-- c6mart.contrattosei a  
-- left outer join  
-- [10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b  
-- on   
-- (case   
--  when len("codice mandato") = 0  
--  then  b."codice fiscale"  
--  else 'FF@'+"codice mandato"  
-- end) = a.cod_fiscale   
-- and a.rete=b.rete  
-- where   
-- b.id_periodo= @id_periodiodo  
-- and a.data_fineavanzato is null  
--  
-- --CONDIZIONE FILTRO PER scaduti  
-- And profiloscaduto='S'  
  
--order by dt_creazione_profilo  
  
-- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_EstrazioneProfiliInScadenza' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_EstrazioneProfiliInScadenza'  
  )  
  
  
  
end  
  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_20161221]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_20161221]
	
as
BEGIN

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_EstrazioneProfiliInScadenza',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	DECLARE @id_periodiodo as int
	select @id_periodiodo = max(id_periodo) from [MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report]
    
    select * into #TempVisMifidReport from [MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report]
    
    
	TRUNCATE TABLE C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO	

	INSERT INTO C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO 


	select 
	a.rete, cod_fiscale, codicecontratto, cod_agente, null as data_sott, data_perf, 
	b.inviobenvenuto as flag_invio_report, profiloAss As Profilo, 
	dtprofilo as dt_creazione_profilo    
	from
    C6Mart.vcontratti a
	inner join C6Mart.contrattosei_metadati b
	on a.chiaveclientepb = b.chiaveclientepb
	left outer join
	--[MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report] c
	#TempVisMifidReport c
	on 
	(case 
	 when len(CodMan) = 0
	 then   c.CodFiscale
	 else 'FF@'+ CodMan
	end) = a.cod_fiscale 
	and a.rete=c.rete
    and a.cod_agente = substring(c.codagente, 2, len(c.codagente)- 1)
	where 
	c.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	and a.data_fineavanzato > getDate()

	--CONDIZIONE FILTRO PER I PROSSIMI 3 MESI
	--And datediff(dd,dtprofilo,dateadd(mm,3,getdate()))/365.25>3
	--And datediff(dd,dtprofilo,getdate())/365.25>3
--
--	union 
--
--	select 
--	a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf, 
--	inviobenvenuto as flag_invio_report, profilo, dtprofilo as dt_creazione_profilo
--	from
--	c6mart.contrattosei a
--	left outer join
--	[10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b
--	on 
--	(case 
--	 when len("codice mandato") = 0
--	 then  b."codice fiscale"
--	 else 'FF@'+"codice mandato"
--	end) = a.cod_fiscale 
--	and a.rete=b.rete
--	where 
--	b.id_periodo= @id_periodiodo
--	and a.data_fineavanzato is null
--
--	--CONDIZIONE FILTRO PER scaduti
--	And profiloscaduto='S'

--order by dt_creazione_profilo

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_EstrazioneProfiliInScadenza' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_EstrazioneProfiliInScadenza'
		)



end







GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_20180720]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
CREATE procedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_20180720]  
   
as  
BEGIN  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_EstrazioneProfiliInScadenza',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 DECLARE @id_periodiodo as int  
 select @id_periodiodo = max(id_periodo) from [CONSUNI].SEIAlertDW.[dbo].[Vis_Mifid_Report]  
      
    select * into #TempVisMifidReport from [CONSUNI].SEIAlertDW.[dbo].[Vis_Mifid_Report]  
      
      
 TRUNCATE TABLE C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO   
  
 INSERT INTO C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO   
  
  
 select   
 a.rete, cod_fiscale, codicecontratto, cod_agente, null as data_sott, data_perf,   
 b.inviobenvenuto as flag_invio_report, profiloAss As Profilo,   
 dtprofilo as dt_creazione_profilo      
 from  
    C6Mart.vcontratti a  
 inner join C6Mart.contrattosei_metadati b  
 on a.chiaveclientepb = b.chiaveclientepb  
 left outer join  
 --[MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report] c  
 #TempVisMifidReport c  
 on   
 (case   
  when len(CodMan) = 0  
  then   c.CodFiscale  
  else 'FF@'+ CodMan  
 end) = a.cod_fiscale   
 and a.rete=c.rete  
    and a.cod_agente = substring(c.codagente, 2, len(c.codagente)- 1)  
 where   
 c.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo  
 and a.data_fineavanzato > getDate()  
  
 --CONDIZIONE FILTRO PER I PROSSIMI 3 MESI  
 --And datediff(dd,dtprofilo,dateadd(mm,3,getdate()))/365.25>3  
 --And datediff(dd,dtprofilo,getdate())/365.25>3  
--  
-- union   
--  
-- select   
-- a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf,   
-- inviobenvenuto as flag_invio_report, profilo, dtprofilo as dt_creazione_profilo  
-- from  
-- c6mart.contrattosei a  
-- left outer join  
-- [10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b  
-- on   
-- (case   
--  when len("codice mandato") = 0  
--  then  b."codice fiscale"  
--  else 'FF@'+"codice mandato"  
-- end) = a.cod_fiscale   
-- and a.rete=b.rete  
-- where   
-- b.id_periodo= @id_periodiodo  
-- and a.data_fineavanzato is null  
--  
-- --CONDIZIONE FILTRO PER scaduti  
-- And profiloscaduto='S'  
  
--order by dt_creazione_profilo  
  
-- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_EstrazioneProfiliInScadenza' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_EstrazioneProfiliInScadenza'  
  )  
  
  
  
end  
  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_new]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_new]
	
as
BEGIN

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_EstrazioneProfiliInScadenza2',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	DECLARE @id_periodiodo as int
	declare @date as datetime;
	select @id_periodiodo = max(id_periodo) from [MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report]
    
    select * into #TempVisMifidReport from [MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report]
    
	TRUNCATE TABLE C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO_TEST 
   
	INSERT INTO C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO_TEST 


	select 
	a.rete, cod_fiscale, codicecontratto, cod_agente, null as data_sott, data_perf, 
	b.inviobenvenuto as flag_invio_report, profiloAss As Profilo, 
	dtprofilo as dt_creazione_profilo    
	from
    C6Mart.vcontratti a
	inner join C6Mart.contrattosei_metadati b
	on a.chiaveclientepb = b.chiaveclientepb
	left outer join
	#TempVisMifidReport c
	on 
	(case 
	 when len(CodMan) = 0
	 then   c.CodFiscale
	 else 'FF@'+ CodMan
	end) = a.cod_fiscale 
	and a.rete=c.rete
    and a.cod_agente = substring(c.codagente, 2, len(c.codagente)- 1)
	where 
	c.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	and a.data_fineavanzato > getDate()

	--CONDIZIONE FILTRO PER I PROSSIMI 3 MESI
	--And datediff(dd,dtprofilo,dateadd(mm,3,getdate()))/365.25>3
	--And datediff(dd,dtprofilo,getdate())/365.25>3
--
--	union 
--
--	select 
--	a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf, 
--	inviobenvenuto as flag_invio_report, profilo, dtprofilo as dt_creazione_profilo
--	from
--	c6mart.contrattosei a
--	left outer join
--	[10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b
--	on 
--	(case 
--	 when len("codice mandato") = 0
--	 then  b."codice fiscale"
--	 else 'FF@'+"codice mandato"
--	end) = a.cod_fiscale 
--	and a.rete=b.rete
--	where 
--	b.id_periodo= @id_periodiodo
--	and a.data_fineavanzato is null
--
--	--CONDIZIONE FILTRO PER scaduti
--	And profiloscaduto='S'

--order by dt_creazione_profilo

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_EstrazioneProfiliInScadenza2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_EstrazioneProfiliInScadenza'
		)



end






GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_EstrazioneProfiliInScadenza_pre_selective]
	
as
BEGIN

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_EstrazioneProfiliInScadenza_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	DECLARE @id_periodiodo as int
	select @id_periodiodo = max(id_periodo) from [CONSUNI].SEIAlertDW.[dbo].[Vis_Mifid_Report]
    
    select * into #TempVisMifidReport from [CONSUNI].SEIAlertDW.[dbo].[Vis_Mifid_Report]
    
    
	TRUNCATE TABLE C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO	

	INSERT INTO C6STAGINGPERIODICO.RP_MAIL_PROFILI_RISCHIO 


	select 
	a.rete, cod_fiscale, codicecontratto, cod_agente, null as data_sott, data_perf, 
	b.inviobenvenuto as flag_invio_report, profiloAss As Profilo, 
	dtprofilo as dt_creazione_profilo    
	from
    C6Mart.vcontratti a
	inner join C6Mart.contrattosei_metadati b
	on a.chiaveclientepb = b.chiaveclientepb
	left outer join
	--[MIFD_ADEGUATEZZA].SEIAlertDW.[dbo].[Vis_Mifid_Report] c
	#TempVisMifidReport c
	on 
	(case 
	 when len(CodMan) = 0
	 then   c.CodFiscale
	 else 'FF@'+ CodMan
	end) = a.cod_fiscale 
	and a.rete=c.rete
    and a.cod_agente = substring(c.codagente, 2, len(c.codagente)- 1)
	where 
	c.id_periodo= @id_periodiodo--- chiedi ad antonio il periodo
	and a.data_fineavanzato > getDate()

	--CONDIZIONE FILTRO PER I PROSSIMI 3 MESI
	--And datediff(dd,dtprofilo,dateadd(mm,3,getdate()))/365.25>3
	--And datediff(dd,dtprofilo,getdate())/365.25>3
--
--	union 
--
--	select 
--	a.rete, cod_fiscale, codicecontratto, cod_agente, data_sott, data_perf, 
--	inviobenvenuto as flag_invio_report, profilo, dtprofilo as dt_creazione_profilo
--	from
--	c6mart.contrattosei a
--	left outer join
--	[10.10.32.84].controllodata.dbo.clientiAdeguatezza_ALL b
--	on 
--	(case 
--	 when len("codice mandato") = 0
--	 then  b."codice fiscale"
--	 else 'FF@'+"codice mandato"
--	end) = a.cod_fiscale 
--	and a.rete=b.rete
--	where 
--	b.id_periodo= @id_periodiodo
--	and a.data_fineavanzato is null
--
--	--CONDIZIONE FILTRO PER scaduti
--	And profiloscaduto='S'

--order by dt_creazione_profilo

-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_EstrazioneProfiliInScadenza_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_EstrazioneProfiliInScadenza_pre_selective'
		)



end







GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_POPOLAMENTO_WSMOV_CONTRATTO_SCARICO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6StagingPeriodico].[RP_POPOLAMENTO_WSMOV_CONTRATTO_SCARICO] 

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


  
 --troncare la tabella esistente 
  
 truncate table [C6StagingPeriodico].WSMOV_CONTRATTO_SCARICO


 -- popolamento tabella 

 insert into [C6StagingPeriodico].WSMOV_CONTRATTO_SCARICO
 select 
	   [WSMOV_PRODOTTO]
      ,[WSMOV_OPERAZIONE]
      ,[WSMOV_FIRMA_DIGITALE]
      ,[WSMOV_CONTRATTO]
      ,[WSMOV_PROGRESSIVO]
      ,[WSMOV_DATA_ESEGUITO]
 from [SYSC].[ITIMISYSCDSN].[F].[WSMOV]
 where WSMOV_DATA_ESEGUITO >= '20150708'
 and wsmov_data_eseguito not like '99%'

  
	
END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Questa sp aggiorna il campo 'beneficio' della [PROMETEIA_AGGR] con il valore del nuovo indicatore dalla nuova tabella PROMETEIA_AGGR_IndDiv
CREATE procedure [C6StagingPeriodico].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE]

AS
BEGIN

-- ***********************************************   10/7/2018         **********************************************
--    BONIFICA DELLA TABELLA PER I VALORI NON CALCOLATI (Nan) TORNATI DAL SERVIZIO PER ALCUNI CF/PTF
--       NECESSARIA PER NON MANDARE IN ERRORE LA UPDATE

update a set indicatore = '0.0'
  FROM [C6StampeCentralizzate].[C6martPeriodico].[brsinddiv] a
  where 
  not indicatore like '%[0-9]%'



-- *********************************************  FINE BONIFICA ********************************************

	--aggiorna il beneficio per il COMPLESSIVO
--UPDATE aggr set aggr.beneficio = CAST(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) AS DECIMAL(12,3))
--con le replace sostituisco i caratteri speciali a fine testo che mandano in errore il cast quando l'indicatore è = 0.0 - CHAR(13) = cr, CHAR(10) = lf 
UPDATE aggr set aggr.beneficio =  CAST(inddiv.indicatore AS DECIMAL(12,3))
from  
[C6martPeriodico].[brsvarallaggr] aggr
inner join 
[C6martPeriodico].[brsinddiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale 
where aggr.portafoglio = 'COMPLESSIVO'

--aggiorna il beneficio per il COMPLESSIVO|BF
UPDATE aggr set aggr.beneficio = CAST(inddiv.indicatore AS DECIMAL(12,3))
from  
[C6martPeriodico].[brsvarallaggr] aggr
inner join 
[C6martPeriodico].[brsinddiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_BF' 
where aggr.portafoglio = 'COMPLESSIVO|BF'

--aggiorna il beneficio per il COMPLESSIVO|TERZI
UPDATE aggr set aggr.beneficio = CAST(inddiv.indicatore AS DECIMAL(12,3))
from  
[C6martPeriodico].[brsvarallaggr] aggr
inner join 
[C6martPeriodico].[brsinddiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_TERZI' 
where aggr.portafoglio = 'COMPLESSIVO|TERZI'




END 
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE_20180710]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- Questa sp aggiorna il campo 'beneficio' della [PROMETEIA_AGGR] con il valore del nuovo indicatore dalla nuova tabella PROMETEIA_AGGR_IndDiv
CREATE procedure [C6StagingPeriodico].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE_20180710]

AS
BEGIN


	--update 
	--[C6StagingPeriodico].[PROMETEIA_AGGR]
	--set Beneficio = b.indicatore
	--from [C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] b
	--where
	--([C6StagingPeriodico].[PROMETEIA_AGGR].rete = b.rete
	-- and [C6StagingPeriodico].[PROMETEIA_AGGR].CodiceFiscale = b.cod_fiscale)
	--and
	--[C6StagingPeriodico].[PROMETEIA_AGGR].Portafoglio = 'COMPLESSIVO|BF'


	--aggiorna il beneficio per il COMPLESSIVO
--UPDATE aggr set aggr.beneficio = CAST(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) AS DECIMAL(12,3))
--con le replace sostituisco i caratteri speciali a fine testo che mandano in errore il cast quando l'indicatore è = 0.0 - CHAR(13) = cr, CHAR(10) = lf 
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodico].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale 
where aggr.portafoglio = 'COMPLESSIVO'

--aggiorna il beneficio per il COMPLESSIVO|BF
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodico].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_BF' 
where aggr.portafoglio = 'COMPLESSIVO|BF'

--aggiorna il beneficio per il COMPLESSIVO|TERZI
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodico].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_TERZI' 
where aggr.portafoglio = 'COMPLESSIVO|TERZI'




END 
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE_preAladdin]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- Questa sp aggiorna il campo 'beneficio' della [PROMETEIA_AGGR] con il valore del nuovo indicatore dalla nuova tabella PROMETEIA_AGGR_IndDiv
CREATE procedure [C6StagingPeriodico].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE_preAladdin]

AS
BEGIN

-- ***********************************************   10/7/2018         **********************************************
--    BONIFICA DELLA TABELLA PER I VALORI NON CALCOLATI (Nan) TORNATI DAL SERVIZIO PER ALCUNI CF/PTF
--       NECESSARIA PER NON MANDARE IN ERRORE LA UPDATE

update a set indicatore = '0.0'
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] a
  where 
  not indicatore like '%[0-9]%'



-- *********************************************  FINE BONIFICA ********************************************

	--aggiorna il beneficio per il COMPLESSIVO
--UPDATE aggr set aggr.beneficio = CAST(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) AS DECIMAL(12,3))
--con le replace sostituisco i caratteri speciali a fine testo che mandano in errore il cast quando l'indicatore è = 0.0 - CHAR(13) = cr, CHAR(10) = lf 
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodico].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale 
where aggr.portafoglio = 'COMPLESSIVO'

--aggiorna il beneficio per il COMPLESSIVO|BF
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodico].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_BF' 
where aggr.portafoglio = 'COMPLESSIVO|BF'

--aggiorna il beneficio per il COMPLESSIVO|TERZI
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodico].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodico].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_TERZI' 
where aggr.portafoglio = 'COMPLESSIVO|TERZI'




END 
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_anagrafica_promotori]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_anagrafica_promotori] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_anagrafica_promotori',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_anagrafica_promotori  
  
 insert into C6StagingPeriodico.RP_anagrafica_promotori  
  
 --select * into C6StagingPeriodico.RP_anagrafica_promotori from [CONSEVO].ConsulenzaEvoluta.dbo.anagrafica_promotori  
 select * from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.anagrafica_promotori  
  
    -- UPDATE INSERITA IL 26/01/2016 PER RISOLVERE LA SEGNALAZIONE DI FOGA' (ID 152)  
    update C6StagingPeriodico.RP_anagrafica_promotori  
    set provincia = a.provincia,  
    telefono1 = a.telefono1,  
    indirizzo = a.indirizzo,   
    cap = a.cap,  
    prefisso = a.prefisso,  
    citta_nascita = a.citta_nascita,  
    citta = a.citta  
    from [CONSUNI].ConsulenzaUnica.dbo.anagrafica_promotori a  
    inner join  C6StagingPeriodico.RP_anagrafica_promotori b  
    on a.rete = b.rete and a.codage=b.codage  
    where a.stato = b.stato  
    -----------------------------------------------------------------------------------------------------------------  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_anagrafica_promotori' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_anagrafica_promotori'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_anagrafica_promotori_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_anagrafica_promotori_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_anagrafica_promotori_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_anagrafica_promotori

	insert into C6StagingPeriodico.RP_anagrafica_promotori

	--select * into C6StagingPeriodico.RP_anagrafica_promotori from [CONSEVO].ConsulenzaEvoluta.dbo.anagrafica_promotori
	select * from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.anagrafica_promotori

    -- UPDATE INSERITA IL 26/01/2016 PER RISOLVERE LA SEGNALAZIONE DI FOGA' (ID 152)
    update C6StagingPeriodico.RP_anagrafica_promotori
    set provincia = a.provincia,
    telefono1 = a.telefono1,
    indirizzo = a.indirizzo, 
    cap = a.cap,
    prefisso = a.prefisso,
    citta_nascita = a.citta_nascita,
    citta = a.citta
    from [CONSUNI].ConsulenzaUnica.dbo.anagrafica_promotori a
    inner join  C6StagingPeriodico.RP_anagrafica_promotori b
    on a.rete = b.rete and a.codage=b.codage
    where a.stato = b.stato
    -----------------------------------------------------------------------------------------------------------------

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_anagrafica_promotori_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_anagrafica_promotori_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AnAlberatura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_AnAlberatura]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_AnAlberatura',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_AnAlberatura  
  
 insert into C6StagingPeriodico.RP_AnAlberatura  
  
 --select * into C6StagingPeriodico.RP_AnAlberatura from [CONSEVO].CatalogoProdotti.dbo.AnAlberatura  
 select   
 [Alberatura]  
      ,[Livello1]  
      ,[Livello2]  
      ,[Livello3]  
      ,[Livello4]  
      ,[Livello5]  
   
  from [CONSUNI_PERIODICO].CatalogoProdotti.dbo.AnAlberatura  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_AnAlberatura' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_AnAlberatura'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AnAlberatura_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_AnAlberatura_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AnAlberatura_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_AnAlberatura

	insert into C6StagingPeriodico.RP_AnAlberatura

	--select * into C6StagingPeriodico.RP_AnAlberatura from [CONSEVO].CatalogoProdotti.dbo.AnAlberatura
	select 
	[Alberatura]
      ,[Livello1]
      ,[Livello2]
      ,[Livello3]
      ,[Livello4]
      ,[Livello5]
	
	 from [CONSUNI_PERIODICO].CatalogoProdotti.dbo.AnAlberatura
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AnAlberatura_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AnAlberatura_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AnEmittente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_AnEmittente] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_AnEmittente',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_AnEmittente  
  
 insert into C6StagingPeriodico.RP_AnEmittente (  
  [Emittente]  
      ,[Descrizione] )  
  
 select   
   
  [Emittente]  
     ,[Descrizione]  
    from [CONSUNI].CatalogoProdotti.dbo.AnEmittente  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_AnEmittente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_AnEmittente'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AnEmittente_originale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_AnEmittente_originale] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AnEmittente',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_AnEmittente

	insert into C6StagingPeriodico.RP_AnEmittente

	select *  from [CONSEVO_PERIODICO].CatalogoProdotti.dbo.AnEmittente
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AnEmittente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AnEmittente'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AnEmittente_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_AnEmittente_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AnEmittente_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_AnEmittente

	insert into C6StagingPeriodico.RP_AnEmittente (
	 [Emittente]
      ,[Descrizione] )

	select 
	
	 [Emittente]
     ,[Descrizione]
    from [CONSUNI].CatalogoProdotti.dbo.AnEmittente
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AnEmittente_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AnEmittente_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSUNI].consulenzaUnica.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim
  

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max


 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- fine modifica del 1/12/2016
and codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- fine modifica del 1/12/2016
and COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto



INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );

--aggiornamento 28/11/2022

update C6StagingPeriodico.APPO_CONTRATTI
set COD_MANDATO=''
where COD_MANDATO is null


update C6StagingPeriodico.APPO_CONTRATTI
set PIVA_FIDUCIARIA=''
where PIVA_FIDUCIARIA is null

--fine aggiornamento 28/11/2022


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzaUnicafl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI.20171120_New_en]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI.20171120_New_en]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSUNI].consulenzaUnica.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim

 

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max

---- 2017-11-20 inizio
---- gestire i clienti professionali a cui assegnato un nuovo contratto per i quali non è previsto l'invio della lettera di benvenuto
	UNION
  select a.* 
  --into #DFA2 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  left join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C where d.C is null
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max

  inner join C6StagingPeriodico.ClientIProfessionali cp
  on  a.rete=cp.rete and a.cod_fiscale=cp.codiceFiscale and a.codiceContratto=cp.codiceContratto
----verificare clienti profiessionali
----select * from #DFA1 
----where cod_fiscale in (
----'MGNGPP55B25G224T',
----'FF@5844',
----'BTTFST43C42B300A',
----'TMSRRT59R13L967T',
----'RSCFNC43M09A965T',
----'NDRMRA39D15C623K',
----'PDRPLA72H21C623T'
----)
--------------------------------------------------------------------------------------------------------------------------
---- 2017-11-21 fine

 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- fine modifica del 1/12/2016
and codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- fine modifica del 1/12/2016
and COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto



INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzaUnicafl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_20160902]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_20160902]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSEVO].consulenzaEvoluta.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim
  

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max


 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
AND codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
AND COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto



INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzabasefl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_20161205]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_20161205]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSUNI].consulenzaUnica.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim
  

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max


 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
--WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 1/12/2016
where codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
--WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 1/12/2016
where COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto



INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzaUnicafl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_20171120]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_20171120]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSUNI].consulenzaUnica.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim
  

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max


 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- fine modifica del 1/12/2016
and codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
-- modifica del 1/12/2016 - contratto non più esistente - query inutile
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- fine modifica del 1/12/2016
and COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto



INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzaUnicafl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_BKP20141204]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_BKP20141204]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSEVO].consulenzaEvoluta.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 INNER JOIN   
  (SELECT CODICEFISCALE   ,RETE ,MAX(DATAGENERAZIONE) AS DATAGENERAZIONE 
    FROM c6mart.gestione_PDF_ftp --54491
--INIZIO INTERVENTI MAU
--    WHERE  1=1     AND DATAGENERAZIONE < @dtpre  
    WHERE  1=1     AND DATAGENERAZIONE < @dttrim  
--INIZIO INTERVENTI MAU    
    GROUP BY CODICEFISCALE,RETE) PDF2
  ON PDF1.CODICEFISCALE=PDF2.CODICEFISCALE 
  AND PDF1.RETE=PDF2.RETE 
  AND PDF1.DATAGENERAZIONE=PDF2.DATAGENERAZIONE    
  WHERE 1=1
  

 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
AND codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
AND COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)




INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzabasefl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_LUCA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_LUCA]
AS

---- Log esecuzione
--	INSERT INTO LOG_ESECUZIONE
--		(Nome, Inizio, Nota)
--	VALUES (
--		'RP_ST_APPO_CONTRATTI',
--		GETDATE(),
--		'Elaborazione trimestrale'
--	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSEVO].consulenzaEvoluta.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim
  

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max
  
--  insert into #DFA1 
--  select a.*
--  from #DFA a
--  inner join (
--  select c.*,data_fineavanzato as data_max  
--  from #DFA c
  
--  inner join #pdf1 d
--  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
--  and c.codicecontratto
--  in 
--  (
-- '143422CO107'
--,'103587CO104'
--,'113740CO104'
--,'732251CO101'
--,'113741CO105'
--  )
--  ) b
--  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
--  and a.data_fineavanzato=data_max



 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

insert
INTO #CONGELATICHIUSI
select C.* 
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   '20151230') c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL
and p.c
  in 
  (
 '143422CO107'
,'103587CO104'
,'113740CO104'
,'732251CO101'
,'113741CO105'
--FCianfa 20151214: contratti inseriti manualmente perchè hanno cambiato codcontratto tra il 10/12/2015
,'016254CO105',
'058968CO101'
  )


TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
AND codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
AND COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto


---------------------------------------------------------------   *********** lucama
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
chiaveClientePB,	
cod_fiscale as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA_FIDUCIARIA as PIVA_FIDUCIARIA,	
COD_AGENTE	as COD_AGENTE,
RETE,
codiceContratto as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROVINCIA as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQ_DIAGNOSI	as FREQ_DIAGNOSI,
FREQ_MONITORAGGIO as FREQ_MONITORAGGIO,	
GENERAZIONEREPORT	as GENERAZIONEREPORT,
DATA_INIZIOBASE as DATA_INIZIOBASE,	
DATA_FINEBASE as DATA_FINEBASE,
DATA_PERF_BASE	as DATA_PERF_BASE,
DATA_PERF	 as DATA_PERF,	
DATA_INZIOAVANZATO	as DATA_INZIOAVANZATO,
DATA_FINEAVANZATO as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
  
  
  FROM [C6StampeCentralizzate].[C6StagingPeriodico].[ContrattiPreTrimestrale]
  where
  
  codicecontratto in
  (
  
 '624896CO807',
'370457CO211',
'431343CO205',
'370458CO212',
'397014CO209',
'437949CO207',
'368317CO203',
'407938CO200',
'376652CO205',
'416712CO212',
'387845CO205',
'393685CO208',
'409795CO211',
'617712CO812',
'617093CO804',
'598139CO804',
'615767CO804',
'394695CO204',
'614649CO804',
'532995CO803',
'045807CO210',
'555819CO812',
'588030CO809',
'310417CO205',
'315286CO212',
'601970CO800',
'396831CO208',
'415682CO209',
'591249CO804',
'591248CO803',
'402954CO208',
'628691CO806',
'615890CO810',
'106392CO202',
'625090CO806',
'379278CO205',
'378127CO211',
'380992CO203',
'572948CO807',
'270571CO204',
'590587CO805',
'112539CO200',
'398693CO211',
'020310CO206',
'400512CO210',
'395750CO206',
'416076CO200',
'415483CO205',
'398030CO211',
'395954CO202',
'404935CO200',
'373942CO212',
'397691CO210',
'613347CO802',
'416192CO212',
'402106CO205',
'609576CO801',
'409793CO209',
'613418CO808',
'621776CO807',
'383821CO211',
'622239CO802'

) 



---------------------------------------------------------------   *********** FINE lucama


INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	---- Log esecuzione
	--UPDATE
	--	LOG_ESECUZIONE
	--SET
	--	Fine = GETDATE(),
	--	Tipo = 'INSERT',
	--	Righe = @@ROWCOUNT
	--WHERE
	--	Nome = 'RP_ST_APPO_CONTRATTI' AND
	--	Inizio = (
	--		SELECT
	--			MAX(Inizio)
	--		FROM
	--			LOG_ESECUZIONE
	--		WHERE
	--			Nome = 'RP_ST_APPO_CONTRATTI'
	--	)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzabasefl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_OLD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_OLD]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)
SELECT C.COD_FISCALE, C.RETE 
INTO #CONTRATTI_DA_CONSIDERARE_ATTIVI
FROM 
   C6StagingPeriodico.ContrattiPreTrimestrale c 
INNER JOIN 
   C6Mart.Gestione_PDF_FTP g
ON 
   c.cod_fiscale = g.CodiceFiscale
AND
   c.rete = g.Rete
AND 
   g.NomeFile like '%' + c.codiceContratto + '%'
WHERE 
   ISNULL(Data_FineAvanzato, CAST('99991231' AS datetime)) > C6MartPeriodico.GetPreviousTrimestre(getdate(), 0)  /*Precedente Trimestrale*/
AND g.DataGenerazione < C6MartPeriodico.GetTrimestre2(getdate(),1)
AND c.InvioBenvenuto = 'S'
GROUP BY C.COD_FISCALE, C.RETE


SELECT * 
INTO #CONTRATTI_DA_CONSIDERARE
FROM #CONTRATTI_DA_CONSIDERARE_ATTIVI 
UNION 
SELECT case when len(c.CF) < 16 then 'FF@' + c.CF else c.CF END AS CF, C.RETE 
FROM 
   #CONTRATTI_DA_CONSIDERARE_ATTIVI a
RIGHT JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   C6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c
ON
    a.cod_fiscale = case when len(c.CF) < 16 then 'FF@' + c.CF else c.CF END
AND
   a.RETE = c.RETE
INNER JOIN 
   C6Mart.Gestione_PDF_FTP g
ON 
   case when len(c.CF) < 16 then 'FF@' + c.CF else c.CF end = g.CodiceFiscale
AND
   C.rete = g.Rete
AND 
   g.NomeFile like '%' + c.COD_CONF + '%'
WHERE 
   a.Rete is null  
   AND ISNULL(c.DATA_CHIUSURA_C6, CAST('99991231' AS datetime)) > C6MartPeriodico.GetPreviousTrimestre(getdate(), 0)  /*Precedente Trimestrale*/
AND g.DataGenerazione < C6MartPeriodico.GetTrimestre2(getdate(),1)
GROUP BY C.CF, C.RETE



TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
--INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI_TEST select * from C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    C.*
FROM 
   C6StagingPeriodico.ContrattiPreTrimestrale c 
INNER JOIN 
   #CONTRATTI_DA_CONSIDERARE D
ON
   C.RETE = D.RETE
AND 
   C.COD_FISCALE = D.COD_FISCALE
UNION
SELECT 
c.chiaveClientePB,	
case when len(c.CF) < 16 then 'FF@' + c.CF else c.CF END as COD_FISCALE,	
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
c.RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
c.INDIRIZZO,	
c.CAP,	
c.CITTA,
PROV as PROVINCIA,	
c.NAZIONE,	
null as PRESSO,
c.EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
null as TIP_CONTRATTO,	
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
C6StagingPeriodico.ContrattiPreTrimestrale t 
RIGHT JOIN 
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   t.RETE = c.RETE
AND 
   t.Cod_Fiscale = case when len(c.CF) < 16 then 'FF@' + c.CF else c.CF END
INNER JOIN 
   #CONTRATTI_DA_CONSIDERARE D
ON
   C.RETE = D.RETE
AND 
   case when len(c.CF) < 16 then 'FF@' + c.CF else c.CF END = D.COD_FISCALE
WHERE 
   t.rete is null

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		
		
		

--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzabasefl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_TEMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_APPO_CONTRATTI_TEMP]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

 declare @dtold datetime
 declare @dtpre datetime
 declare @dttrim  datetime
 
 
 set @dttrim = cast(c6martperiodico.getTrimestre2(getDate(), 1) as datetime)
 --INIZIO INTERVENTO MAU
 --set @dtpre = DATEADD(month, -1,@dttrim)
 --set @dtold = DATEADD(month, -3,@dttrim)
    set @dtold = DATEADD(month, -2,@dttrim)
 --FINE INTERVENTO MAU

 
 print @dttrim 
 print @dtpre 
 print @dtold
 

TRUNCATE TABLE ScartiQuadratura
 
 SELECT DISTINCT    
    CASE WHEN CF IS NULL THEN PIVA      
     WHEN CF IS NOT NULL AND PIVA IS NOT NULL THEN 'FF@'+CF
     ELSE CF
    END COD_FISCALE,
    RETE,
    CODICECONTRATTO,
    DATACHIUSURAAVANZATO AS DATA_FINEAVANZATO 
   INTO #DFA    
      FROM     
         [CONSEVO].consulenzaEvoluta.dbo.VCONTRATTIFINEAVANZATO
      
 --ESTRAIAMO TUTTI I CF CHE HANNO RICEVUTO IL REPORT DI BENVENUTO ENTRO L'ULTIMO GIORNO DEL MESE PRECEDENTE
 --AL MESE DI FINE TRIMESTRE (ES: PER IL 4° TRIMESTRE 01/10 - 31/12 REPORT DI BENVENUTO RICEVUTO ENTRO IL 30/11)  
 SELECT   
   PDF1.CODICEFISCALE AS CF,PDF1.RETE AS R,SUBSTRING(PDF1.NOMEFILE,0,12) AS C,PDF1.DATAGENERAZIONE AS D
   INTO #pdf1 
 FROM c6mart.gestione_PDF_ftp PDF1 
  WHERE 1=1
  AND DATAGENERAZIONE < @dttrim
  

  select a.* 
  into #DFA1 
  from #DFA a
  inner join (
  select c.*,max(data_fineavanzato) over (partition by rete,cod_fiscale) as data_max  
  from #DFA c
  inner join #pdf1 d
  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
  ) b
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
  and a.data_fineavanzato=data_max
  
--  insert into #DFA1 
--  select a.*
--  from #DFA a
--  inner join (
--  select c.*,data_fineavanzato as data_max  
--  from #DFA c
  
--  inner join #pdf1 d
--  on c.rete=d.R and c.cod_fiscale=d.CF and c.codicecontratto=d.C
--  and c.codicecontratto
--  in 
--  (
-- '143422CO107'
--,'103587CO104'
--,'113740CO104'
--,'732251CO101'
--,'113741CO105'
--  )
--  ) b
--  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale and a.data_fineavanzato=b.data_fineavanzato 
--  and a.data_fineavanzato=data_max



 --ESTRAIAMO TUTTI I CONTRATTI NON REVOCATI (DATA REVOCA IMPOSTATA CON DEFAULT 99990131) E QUELLI CHE 
 --SONO STATI REVOCATI DURANTE IL TRIMESTRE OGGETTO DI TRIMESTRALE
 --(ES: PER IL 4° TRIMESTRE 01/10 - 31/12 TUTTI I CONTRATTI CHE RISULTANO NON REVOCATI + QUELLI CHE SONO STATI 
 --REVOCATO DOPO IL 30/09)  
 SELECT  DISTINCT P.* 
  INTO #PDF 
  FROM #PDF1 P 
  INNER JOIN #DFA1  VC
    ON  P.CF = VC.COD_FISCALE AND P.R=VC.RETE AND P.C=VC.CODICECONTRATTO      
    WHERE DATA_FINEAVANZATO >= @dtold 
         

select C.* 
INTO #CONGELATI
from 
#PDF P
INNER JOIN
   C6StagingPeriodico.ContrattiPreTrimestrale c 
ON P.R =  C.RETE
AND P.CF = C.COD_FISCALE
AND P.C = C.CODICECONTRATTO



select C.* 
INTO #CONGELATICHIUSI
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   c6martperiodico.getTrimestre(getDAte(), 0)) c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL

insert
INTO #CONGELATICHIUSI
select C.* 
from 
#PDF P
INNER JOIN
   [C6StagingPeriodico].[GetContrattiChiusiFromSEI] (
   c6MartPeriodico.getPreviousTrimestre(getDate(), 0), 
   '20151230') c 
ON
   P.R = c.RETE
AND 
   p.CF = case when len(c.CF) < 16 then 'FF@' + c.CF 
               when c.CF is null then c.PIVA
			   else c.CF END
AND P.C = C.COD_CONF
LEFT JOIN #CONGELATI CONG
ON P.R =  CONG.RETE
AND P.CF = CONG.COD_FISCALE
AND P.C = CONG.CODICECONTRATTO
WHERE CONG.RETE IS NULL
and p.c
  in 
  (
 '143422CO107'
,'103587CO104'
,'113740CO104'
,'732251CO101'
,'113741CO105'
  )


TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI
SELECT 
    *
FROM 
   #CONGELATI
WHERE codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
AND codicecontratto not in
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)
UNION
SELECT 
chiaveClientePB,	
--case when len(CF) < 16 then 'FF@' + CF else CF END as COD_FISCALE,
case when len(CF) < 16 then 'FF@' + CF 
     when CF is null then PIVA
	 else CF END as COD_FISCALE,
NULL as COD_MANDATO,	 
PIVA as PIVA_FIDUCIARIA,	
PB	as COD_AGENTE,
RETE,
COD_CONF as codiceContratto,
NULL as flagRol,
INDIRIZZO,	
CAP,	
CITTA,
PROV as PROVINCIA,	
NAZIONE,	
null as PRESSO,
EMAIL,	
FREQUENZA_DIAGNOSI	as FREQ_DIAGNOSI,
FREQUENZA_MONITORAGGIO as FREQ_MONITORAGGIO,	
FLAG_STAMPA_REPORT	as GENERAZIONEREPORT,
DATA_SOTTOSCRIZIONE_CB as DATA_INIZIOBASE,	
DATA_CHIUSURA_CB as DATA_FINEBASE,
DATA_PERFEZIONAMENTO_CB	as DATA_PERF_BASE,
DATA_PERFEZIONAMENTO_C6	 as DATA_PERF,	
DATA_SOTTOSCRIZIONE_C6	as DATA_INZIOAVANZATO,
DATA_CHIUSURA_C6 as DATA_FINEAVANZATO,
null as RIATTIVAZIONE,	
--null as TIP_CONTRATTO,
case when TIPCONTRATTO is null then 0 
else 
(case when TIPCONTRATTO = 'A' then 1 
 else 2 end) end as TIP_CONTRATTO,		
null as TIP_RIATTIVAZIONE,	
'S' as ClienteMIGRATO,	
'N' as RISORSENA,	
1 as PROFILOATTIVO,	
0 as NumSolleciti,	
0 as NumRevoche,	
null as Data_ultimoSollecito,	
null as Data_ultimaRevoca,	
'S' as InvioBenvenuto
FROM 
#CONGELATICHIUSI
WHERE COD_CONF <> '390026CO101' and PB <> '015312' --MRRRRT78S30L219K cliente di prova
AND COD_CONF not in    -- FC 11122013 aggiornato campo codicecontratto INESISTENTE con COD_CONF
(
select codicecontratto from EsclusioneContrattiPerQuadratura
)


UPDATE C6StagingPERIODICO.APPO_CONTRATTI
	set  
		 indirizzo	       = a.indirizzo
		,cap		       = a.cap	
		,citta		       = a.citta
		,provincia	       = a.Provincia
		,nazione	       = a.Nazione
		,presso		       = a.Presso
		,Cod_Agente        = a.Cod_Agente
		,Freq_Diagnosi	   = a.Freq_Diagnosi
	    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto



INSERT INTO ScartiQuadratura
SELECT
	P.R
	,P.CF
	,P.C
	,1
	,0
FROM
	#PDF P
LEFT JOIN
 C6StagingPERIODICO.APPO_CONTRATTI AC
ON P.R =  AC.rete
AND P.CF = AC.COD_FISCALE
AND P.C = AC.codiceContratto
WHERE AC.RETE IS NULL
and p.c not in ( select codiceContratto from EsclusioneContrattiPerQuadratura )


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)
		

DROP TABLE #DFA		
DROP TABLE #DFA1		
DROP TABLE #pdf1
DROP TABLE #PDF
DROP TABLE #CONGELATI
DROP TABLE #CONGELATICHIUSI


	declare @iScarti INT

	SELECT @iscarti = count(*) FROM ScartiQuadratura 
				
	if @iScarti > 0
		RAISERROR ('Scarti Quadratura presenti (Verificare su tabella "ScartiQuadratura").', -- Message text.
               16, -- Severity.
               1 -- State.
               );


--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI_TEST
--select count(*) from C6StagingPERIODICO.APPO_CONTRATTI
--select count(*) from vcontrcong0913
--select v.* from #CONTRATTI_DA_CONSIDERARE t
--right join vcontrcong0913 v
--on t.rete= v.rete
--and t.cod_fiscale = v.cod_fiscale
--where t.rete is null

--select top 1 * from 
--[consevo].consulenzabasefl.dbo.cbs_AvanzatiChiusi c 
--where cf = '4200'

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Area]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Procedure
CREATE procedure [C6StagingPeriodico].[RP_ST_Area] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Area',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Area

	insert into C6StagingPeriodico.RP_Area (
	   [Area]
	  ,[chiaveConsulenza]
      ,[percArea]
      ,[coperturaArea]
      ,[ctvArea]
      ,[varArea]
	  )

	select 

	  -------------------------> modifica del 18/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
                     --, [Area]
           CASE 
              
                           WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
                           WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
                     else a.area
                     END AS [Area]
      -------------------------> FINE modifica del 13/1/2017 
	  ,[chiaveConsulenza]
      , null as  percArea
      ,dpos.Copertura as coperturaArea
      ,dpos.ctv as ctvArea
       ,null as varArea

	   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
	   on a.chiaveArea = prog.ChiaveArea
	   inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos
	   on pos.chiaveProgetto = prog.chiaveProgetto
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos
	   on pos.chiavePosizionePtf = dpos.chiavePosizionePtf
			--- Modifica del 18/1/2017 per reperire la descrizione del progetto per la case di cui sopra
			inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
			on propirMod.chiaveprogettomod = prog.chiaveprogettomod
		    group by area,chiaveconsulenza,dpos.copertura,dpos.ctv ,propirMod.nomeProgetto
			---------------------------------------------------------------------------------------------
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Area' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_Area'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Area_20170118]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Procedure
CREATE procedure [C6StagingPeriodico].[RP_ST_Area_20170118] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Area',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Area

	insert into C6StagingPeriodico.RP_Area (
	   [Area]
	  ,[chiaveConsulenza]
      ,[percArea]
      ,[coperturaArea]
      ,[ctvArea]
      ,[varArea]
	  )

	select 
	   [Area]
	  ,[chiaveConsulenza]
      , null as  percArea
      ,dpos.Copertura as coperturaArea
      ,dpos.ctv as ctvArea
       ,null as varArea

	   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
	   on a.chiaveArea = prog.ChiaveArea
	   inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos
	   on pos.chiaveProgetto = prog.chiaveProgetto
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos
	   on pos.chiavePosizionePtf = dpos.chiavePosizionePtf

	   group by area,chiaveconsulenza,dpos.copertura,dpos.ctv
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Area' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Area'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Area_20170320.OBS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Procedure  
CREATE procedure [C6StagingPeriodico].[RP_ST_Area_20170320.OBS] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Area',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Area  
  
 insert into C6StagingPeriodico.RP_Area (  
    [Area]  
   ,[chiaveConsulenza]  
      ,[percArea]  
      ,[coperturaArea]  
      ,[ctvArea]  
      ,[varArea]  
   )  
  
 select   
    [Area]  
   ,[chiaveConsulenza]  
      , null as  percArea  
      ,dpos.Copertura as coperturaArea  
      ,dpos.ctv as ctvArea  
       ,null as varArea  
  
    from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a  
    inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog  
    on a.chiaveArea = prog.ChiaveArea  
    inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos  
    on pos.chiaveProgetto = prog.chiaveProgetto  
    inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos  
    on pos.chiavePosizionePtf = dpos.chiavePosizionePtf  
  
    group by area,chiaveconsulenza,dpos.copertura,dpos.ctv  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Area' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_ST_Area'  
  )  
   
end  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Area_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Procedure
CREATE procedure [C6StagingPeriodico].[RP_ST_Area_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Area_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Area

	insert into C6StagingPeriodico.RP_Area (
	   [Area]
	  ,[chiaveConsulenza]
      ,[percArea]
      ,[coperturaArea]
      ,[ctvArea]
      ,[varArea]
	  )

	select 
	   [Area]
	  ,[chiaveConsulenza]
      , null as  percArea
      ,dpos.Copertura as coperturaArea
      ,dpos.ctv as ctvArea
       ,null as varArea

	   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
	   on a.chiaveArea = prog.ChiaveArea
	   inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos
	   on pos.chiaveProgetto = prog.chiaveProgetto
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos
	   on pos.chiavePosizionePtf = dpos.chiavePosizionePtf

	   group by area,chiaveconsulenza,dpos.copertura,dpos.ctv
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Area_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Area_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
CREATE procedure [C6StagingPeriodico].[RP_ST_AssetClass]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_AssetClass',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_AssetClass  
  
 insert into C6StagingPeriodico.RP_AssetClass  
 --select * into C6StagingPeriodico.RP_AssetClass from [CONSEVO].[CatalogoProdotti].dbo.AssetClass  
 -- 21/12/2016 mod puntamento  
    --select * from [CONSEVO].[CatalogoProdotti].dbo.AssetClass  
    select asset,madre,livello,descrizione,codicergb,isresidual from [CONSUNI].[CatalogoProdotti].dbo.AssetClass  
 -- 21/12/2016 FINE mod puntamento  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_AssetClass' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_AssetClass'  
  )  
   
end  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AssetClass_20161221]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_AssetClass_20161221]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AssetClass',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_AssetClass

	insert into C6StagingPeriodico.RP_AssetClass
	--select * into C6StagingPeriodico.RP_AssetClass from [CONSEVO].[CatalogoProdotti].dbo.AssetClass
	select * from [CONSEVO].[CatalogoProdotti].dbo.AssetClass
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AssetClass' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AssetClass'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_AssetClass_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_AssetClass_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_AssetClass_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_AssetClass

	insert into C6StagingPeriodico.RP_AssetClass
	--select * into C6StagingPeriodico.RP_AssetClass from [CONSEVO].[CatalogoProdotti].dbo.AssetClass
	-- 21/12/2016 mod puntamento
	   --select * from [CONSEVO].[CatalogoProdotti].dbo.AssetClass
	   select asset,madre,livello,descrizione,codicergb,isresidual from [CONSUNI].[CatalogoProdotti].dbo.AssetClass
	-- 21/12/2016 FINE mod puntamento
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_AssetClass_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_AssetClass_pre_selective'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_BonificaClientiDoppi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodico].[RP_ST_BonificaClientiDoppi]  
AS  
  
BEGIN  
  -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_BonificaClientiDoppi',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
  
-----------------------------------------------------------------
drop table if exists #doppiCF
drop table if exists #ClientiDoppiInAppoCF
drop table if exists #ClientiNONInAppoCF
drop table if exists #ClientiChiaveClienteGiustaCF
drop table if exists #ClientiChiaveClienteGiustaESbagliataCF
drop table if exists #ClientiChiaveSbagliataCF

drop table if exists #doppiPIVA
drop table if exists #ClientiDoppiInAppoPIVA
drop table if exists #ClientiNONInAppoPIVA
drop table if exists #ClientiChiaveClienteGiustaPIVA
drop table if exists #ClientiChiaveClienteGiustaESbagliataPIVA
drop table if exists #ClientiChiaveSbagliataPIVA



----Individuo i cf doppi
 select rete,codfis,count(*) as numero
 into #doppiCF
 FROM C6STAGINGPERIODICO.RP_InfoCliente
 where codfis is not null and codfis <> ''
  group by rete,codfis
 having count(*)>1


 --if

 select rete,COD_FISCALE
 into #ClientiDoppiInAppoCF
 from C6stagingPeriodico.APPO_CONTRATTI a 
 where a.rete+a.COD_FISCALE in (select rete+codfis from #doppiCF)

 select rete,codfis
 into #ClientiNONInAppoCF
 from #doppiCF where rete+codfis not in (select rete+cod_fiscale from #ClientiDoppiInAppoCF)

 delete from C6STAGINGPERIODICO.RP_InfoCliente where rete+codFis in (select rete+codfis from #ClientiNONInAppoCF)

 --else

 select distinct appo.rete,appo.COD_FISCALE,appo.chiaveclientepb
 into #ClientiChiaveClienteGiustaCF
 from C6STAGINGPERIODICO.RP_InfoCliente info inner join 
 C6StagingPeriodico.appo_contratti appo on info.rete = appo.rete and info.codfis=appo.cod_fiscale
where info.rete + info.codfis in (select rete+cod_fiscale from #ClientiDoppiInAppoCF)


select rete,codfis,chiaveClientePB
 into #ClientiChiaveClienteGiustaESbagliataCF
FROM C6STAGINGPERIODICO.RP_InfoCliente 
where rete+codfis in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaCF)

--select * from #ClientiChiaveClienteGiustaESbagliataCF order by codfis

select rete,codfis,chiaveclientePB
into #ClientiChiaveSbagliataCF
from #ClientiChiaveClienteGiustaESbagliataCF where
rete+codFis  in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaCF)
and chiaveClientePB not in (select chiaveClientePB from #ClientiChiaveClienteGiustaCF)

--create table #ClientiChiaveSbagliataCF(
--rete char(1),
--codfis varchar(16),
--chiaveClientePB int)

--insert into  #ClientiChiaveSbagliataCF 
--   SELECT * FROM #ClientiChiaveClienteGiustaESbagliataCF 
--    EXCEPT
--    SELECT * FROM #ClientiChiaveClienteGiustaCF

--	select * from #ClientiChiaveSbagliataCF

delete from C6STAGINGPERIODICO.RP_InfoCliente 
where rete+codfis+cast(chiaveClientePB as varchar)  in (select rete+codfis+cast(chiaveClientePB as varchar) from #ClientiChiaveSbagliataCF)

--select * from C6STAGINGPERIODICO.RP_InfoCliente 
--where rete+codfis+chiaveClientePB  in (select rete+codfis+chiaveClientePB from #ClientiChiaveClienteGiustaCF)


  
-----------------------------------------------------------------


--Individuo le PIVA doppie
 select rete,piva,count(*) as numero
 into #doppiPIVA
 FROM C6STAGINGPERIODICO.RP_InfoCliente
 where isnull(codman,'')= ''
 and piva is not null and piva <> ''
  group by rete,piva
 having count(*)>1

-- select * from #doppiPIVA where piva in (
-- 	'02477630582',
--'05267780962')

 --if

 select rete,COD_FISCALE
 into #ClientiDoppiInAppoPIVA
 from C6stagingPeriodico.APPO_CONTRATTI a 
 where a.rete+a.COD_FISCALE in (select rete+piva from #doppiPIVA)

 select rete,piva
 into #ClientiNONInAppoPIVA
 from #doppiPIVA where rete+piva not in (select rete+COD_FISCALE from #ClientiDoppiInAppoPIVA)

 delete from C6STAGINGPERIODICO.RP_InfoCliente where rete+pIva in (select rete+piva from #ClientiNONInAppoPIVA)

 --else

 select distinct appo.rete,appo.COD_FISCALE,appo.chiaveclientepb
 into #ClientiChiaveClienteGiustaPIVA
 from C6STAGINGPERIODICO.RP_InfoCliente info inner join 
 C6StagingPeriodico.appo_contratti appo on info.rete = appo.rete and info.piva=appo.cod_fiscale
where info.rete + info.piva in (select rete+cod_fiscale from #ClientiDoppiInAppoPIVA)


-- select * from #ClientiChiaveClienteGiustaPIVA where cod_fiscale in (
-- 	'02477630582',
--'05267780962')

select rete,piva,chiaveClientePB
 into #ClientiChiaveClienteGiustaESbagliataPIVA
FROM C6STAGINGPERIODICO.RP_InfoCliente 
where rete+piva in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaPIVA)


-- select * from #ClientiChiaveClienteGiustaESbagliataPIVA where piva in (
-- 	'02477630582',
--'05267780962')


select rete,piva,chiaveclientePB
into #ClientiChiaveSbagliataPIVA
from #ClientiChiaveClienteGiustaESbagliataPIVA where
rete+piva in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaPIVA)
and chiaveClientePB not in (select chiaveClientePB from #ClientiChiaveClienteGiustaPIVA)

--select * from #ClientiChiaveSbagliataPIVA

delete from C6STAGINGPERIODICO.RP_InfoCliente 
where rete+piva+cast(chiaveClientePB as varchar) in (select rete+piva+cast(chiaveClientePB as varchar) from #ClientiChiaveSbagliataPIVA)

 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_BonificaClientiDoppi' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_BonificaClientiDoppi'  
  )  








 
   
END  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
















CREATE    procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,[TIP_TASSO]
		   ,[TIP_EMITTENTE]
		   ,[Suitability_Perimeter]
		   )
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,case when codtassoobbligazioni = 1 then 'Fisso'
            when codtassoobbligazioni = 2 then 'Variabile'
			when codtassoobbligazioni = 3 then 'Altro'
			when codtassoobbligazioni = 0 then 'Zero Coupon'
			else NULL end
			,isnull([TipoObbligazione],'Altro')
		   ,[Suitability_Perimeter]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

 from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------


	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito

	update c6StagingPeriodico.RP_CatalogoProdotti
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	

	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	

	-- modifiche per III trimestrale 2017 - 25/09/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	-- per i 2cf: F/BNZNLM66D21Z312D,F/MNRDTL56S70F351T

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '03246250' 
	and visibilita = 0

	-- fine modifiche per III trimestrale 2017 - 25/09/2017 ----------------------------------------------------------------

	-- modifiche per III trimestrale 2017 - 27/10/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
		INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([CatalogueID],[ChiaveProdotto],[CodSottoprodotto],[CodInterno],[CodMaf],[CodAdeguatezza],[CodIsin],[TipoVersamento],[RischioPrSc],[StatoProdotto]
		   ,[TipoPolizza],[NomeProdotto],[Visibilita],[PrezzoInEuro],[Alberatura],[DtScadenza],[Categoria],[Istituto],[Piazza],[PrezzoInValuta],[PrezzoValuta]
		   ,[Codiceadb],[TipoProdotto],[RatingObbligazioni],[RischioMinimo],[CapRisparmio],[CapMinimo],[CapMinimoValuta],[CapMinSucc],[CapMinSuccValuta],[MinRispContr]
		   ,[MinRispContrValuta],[SuccRispContr],[SuccRispContrValuta],[MinComm],[MinCommValuta],[DelegaGestionale],[TipologiaPerPick],[RischioPrezzo],[RegimeFiscale]
		   ,[Quotato],[ClasseDiPrezzo],[Lineefinacc],[DurataContrattuale],[RiscFinFaseAcc],[OpzRendVital],[MetaA],[MetaB],[MetaC],[DtRifPrezzo],[CodTipoContratto],[PrezzoNetto]
		   ,[PrezzoNettoValuta],[DtPrezzoNetto],[CodBloomberg],[DenomUnitLink],[DtInizioValidita],[Negoziabilita],[TassoTecnico],[TassoTecnicoValuta],[CollSkandia]
		   ,[CodAssetSatellite],[Mercato],[AzOb],[Complessita],[Emittente],[GaranziaDemografica],[SocietaDiGestione],[IndPrz],[Differimento],[DtPrezzo],[TipoObbligazione]
		   ,[TaglioMinimo],[IsAttivoRc],[RischioCredito],[Copertura],[VarP],[Diversificazione],[FlagCoreSatellite],[PerimetroCoreSatellite],[FondoCore],[TIP_EMITTENTE],[TIP_TASSO])
			VALUES
           (null,303877,'GS','RB',null,null,'LU0433182507',null,null,1,null,'First Eagle Amundi International IHE EUR',1,null,98,null,null,null,null,null,null,null,'ASU1'
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null)

		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatalogoProdotti a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0433182507'


			INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([CatalogueID],[ChiaveProdotto],[CodSottoprodotto],[CodInterno],[CodMaf],[CodAdeguatezza],[CodIsin],[TipoVersamento],[RischioPrSc],[StatoProdotto]
		   ,[TipoPolizza],[NomeProdotto],[Visibilita],[PrezzoInEuro],[Alberatura],[DtScadenza],[Categoria],[Istituto],[Piazza],[PrezzoInValuta],[PrezzoValuta]
		   ,[Codiceadb],[TipoProdotto],[RatingObbligazioni],[RischioMinimo],[CapRisparmio],[CapMinimo],[CapMinimoValuta],[CapMinSucc],[CapMinSuccValuta],[MinRispContr]
		   ,[MinRispContrValuta],[SuccRispContr],[SuccRispContrValuta],[MinComm],[MinCommValuta],[DelegaGestionale],[TipologiaPerPick],[RischioPrezzo],[RegimeFiscale]
		   ,[Quotato],[ClasseDiPrezzo],[Lineefinacc],[DurataContrattuale],[RiscFinFaseAcc],[OpzRendVital],[MetaA],[MetaB],[MetaC],[DtRifPrezzo],[CodTipoContratto],[PrezzoNetto]
		   ,[PrezzoNettoValuta],[DtPrezzoNetto],[CodBloomberg],[DenomUnitLink],[DtInizioValidita],[Negoziabilita],[TassoTecnico],[TassoTecnicoValuta],[CollSkandia]
		   ,[CodAssetSatellite],[Mercato],[AzOb],[Complessita],[Emittente],[GaranziaDemografica],[SocietaDiGestione],[IndPrz],[Differimento],[DtPrezzo],[TipoObbligazione]
		   ,[TaglioMinimo],[IsAttivoRc],[RischioCredito],[Copertura],[VarP],[Diversificazione],[FlagCoreSatellite],[PerimetroCoreSatellite],[FondoCore],[TIP_EMITTENTE],[TIP_TASSO])
			VALUES
           (null,303879,'GS','RB',null,null,'LU0782316961',null,null,1,null,'JPM Global Income C Cap EUR',1,null,98,null,null,null,null,null,null,null,'ASU1'
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null)

		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatalogoProdotti a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0782316961'

			-- fine modifiche per III trimestrale 2017 - 27/10/2017 ----------------------------------------------------------------


			---------------------------------------  modifiche per IV trimestrale 2017 - 17/1/2018  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U

			update C6StagingPeriodico.RP_CatalogoProdotti
			set visibilita = 1
			where codinterno = '04969190' and
			codisin = 'IT0004969199'

			---------------------------------------- fine modifiche per IV trimestrale 2017 - 17/1/2018

			---- modifiche per I trimestrale 2018 - Aprile 2018 - errore scarto cf CVTGNN61T64G535D
			update C6StagingPeriodico.RP_CatalogoProdotti
			set codsottoprodotto = 'HL02'
			where ChiaveProdotto = 314880
			----- fine modifiche per I trimestrale 2018 - Aprile 2018 - errore scarto cf CVTGNN61T64G535D

				---------------------------------------  modifiche per trimestrale 2017 - 31/10/2023  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U

			update C6StagingPeriodico.RP_CatalogoProdotti
			set visibilita = 1
			where ChiaveProdotto='233943'



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end












GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20160505]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20160505]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSEVO].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20160506_LM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20160506_LM]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSEVO].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		insert into C6StagingPeriodico.RP_CatalogoProdotti
		values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ /*261831*/ 9276460 /*9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
		9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
		500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
		'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
		null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)
		
		
		

		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170120]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170120]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		insert into C6StagingPeriodico.RP_CatalogoProdotti
		values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
		9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
		500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
		'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
		null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)
		
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170616_Vis1]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170616_Vis1]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end






GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170720]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170720]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end







GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170925]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO







CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20170925]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------


	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito

	update c6StagingPeriodico.RP_CatalogoProdotti
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	

	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end









GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20171026]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20171026]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------


	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito

	update c6StagingPeriodico.RP_CatalogoProdotti
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	

	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	

	-- modifiche per III trimestrale 2017 - 25/09/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	-- per i 2cf: F/BNZNLM66D21Z312D,F/MNRDTL56S70F351T

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '03246250' 
	and visibilita = 0

	-- fine modifiche per III trimestrale 2017 - 25/09/2017 ----------------------------------------------------------------






	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end










GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20180117]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_20180117]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodico.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------


	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito

	update c6StagingPeriodico.RP_CatalogoProdotti
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	

	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	

	-- modifiche per III trimestrale 2017 - 25/09/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	-- per i 2cf: F/BNZNLM66D21Z312D,F/MNRDTL56S70F351T

	update c6StagingPeriodico.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '03246250' 
	and visibilita = 0

	-- fine modifiche per III trimestrale 2017 - 25/09/2017 ----------------------------------------------------------------

	-- modifiche per III trimestrale 2017 - 27/10/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
		INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([CatalogueID],[ChiaveProdotto],[CodSottoprodotto],[CodInterno],[CodMaf],[CodAdeguatezza],[CodIsin],[TipoVersamento],[RischioPrSc],[StatoProdotto]
		   ,[TipoPolizza],[NomeProdotto],[Visibilita],[PrezzoInEuro],[Alberatura],[DtScadenza],[Categoria],[Istituto],[Piazza],[PrezzoInValuta],[PrezzoValuta]
		   ,[Codiceadb],[TipoProdotto],[RatingObbligazioni],[RischioMinimo],[CapRisparmio],[CapMinimo],[CapMinimoValuta],[CapMinSucc],[CapMinSuccValuta],[MinRispContr]
		   ,[MinRispContrValuta],[SuccRispContr],[SuccRispContrValuta],[MinComm],[MinCommValuta],[DelegaGestionale],[TipologiaPerPick],[RischioPrezzo],[RegimeFiscale]
		   ,[Quotato],[ClasseDiPrezzo],[Lineefinacc],[DurataContrattuale],[RiscFinFaseAcc],[OpzRendVital],[MetaA],[MetaB],[MetaC],[DtRifPrezzo],[CodTipoContratto],[PrezzoNetto]
		   ,[PrezzoNettoValuta],[DtPrezzoNetto],[CodBloomberg],[DenomUnitLink],[DtInizioValidita],[Negoziabilita],[TassoTecnico],[TassoTecnicoValuta],[CollSkandia]
		   ,[CodAssetSatellite],[Mercato],[AzOb],[Complessita],[Emittente],[GaranziaDemografica],[SocietaDiGestione],[IndPrz],[Differimento],[DtPrezzo],[TipoObbligazione]
		   ,[TaglioMinimo],[IsAttivoRc],[RischioCredito],[Copertura],[VarP],[Diversificazione],[FlagCoreSatellite],[PerimetroCoreSatellite],[FondoCore],[TIP_EMITTENTE],[TIP_TASSO])
			VALUES
           (null,303877,'GS','RB',null,null,'LU0433182507',null,null,1,null,'First Eagle Amundi International IHE EUR',1,null,98,null,null,null,null,null,null,null,'ASU1'
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null)

		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatalogoProdotti a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0433182507'


			INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([CatalogueID],[ChiaveProdotto],[CodSottoprodotto],[CodInterno],[CodMaf],[CodAdeguatezza],[CodIsin],[TipoVersamento],[RischioPrSc],[StatoProdotto]
		   ,[TipoPolizza],[NomeProdotto],[Visibilita],[PrezzoInEuro],[Alberatura],[DtScadenza],[Categoria],[Istituto],[Piazza],[PrezzoInValuta],[PrezzoValuta]
		   ,[Codiceadb],[TipoProdotto],[RatingObbligazioni],[RischioMinimo],[CapRisparmio],[CapMinimo],[CapMinimoValuta],[CapMinSucc],[CapMinSuccValuta],[MinRispContr]
		   ,[MinRispContrValuta],[SuccRispContr],[SuccRispContrValuta],[MinComm],[MinCommValuta],[DelegaGestionale],[TipologiaPerPick],[RischioPrezzo],[RegimeFiscale]
		   ,[Quotato],[ClasseDiPrezzo],[Lineefinacc],[DurataContrattuale],[RiscFinFaseAcc],[OpzRendVital],[MetaA],[MetaB],[MetaC],[DtRifPrezzo],[CodTipoContratto],[PrezzoNetto]
		   ,[PrezzoNettoValuta],[DtPrezzoNetto],[CodBloomberg],[DenomUnitLink],[DtInizioValidita],[Negoziabilita],[TassoTecnico],[TassoTecnicoValuta],[CollSkandia]
		   ,[CodAssetSatellite],[Mercato],[AzOb],[Complessita],[Emittente],[GaranziaDemografica],[SocietaDiGestione],[IndPrz],[Differimento],[DtPrezzo],[TipoObbligazione]
		   ,[TaglioMinimo],[IsAttivoRc],[RischioCredito],[Copertura],[VarP],[Diversificazione],[FlagCoreSatellite],[PerimetroCoreSatellite],[FondoCore],[TIP_EMITTENTE],[TIP_TASSO])
			VALUES
           (null,303879,'GS','RB',null,null,'LU0782316961',null,null,1,null,'JPM Global Income C Cap EUR',1,null,98,null,null,null,null,null,null,null,'ASU1'
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null)

		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatalogoProdotti a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0782316961'

			-- fine modifiche per III trimestrale 2017 - 27/10/2017 ----------------------------------------------------------------



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end











GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_CatalogoProdotti_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodico].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodico].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		insert into C6StagingPeriodico.RP_CatalogoProdotti
		values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
		9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
		500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
		'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
		null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)
		
				
		update C6StagingPeriodico.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CatDivPtf]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_ST_CatDivPtf]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatDivPtf',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatDivPtf
	truncate table C6StagingPeriodico.RP_CatDivPtf

INSERT INTO [C6StagingPeriodico].[RP_CatDivPtf]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
		   ,[Credito]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,[TIP_TASSO]
		   ,[Suitability_Perimeter]
		   )
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
		   ,[Credito]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
		   ,case when codtassoobbligazioni = 1 then 'Fisso'
            when codtassoobbligazioni = 2 then 'Variabile'
			else NULL end
		   ,[Suitability_Perimeter]
	--into [C6StagingPeriodico].[RP_CatDivPtf]

	from CONSUNI.CatalogoProdotti.dbo.VDivPtfConCatalogo

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodico.RP_CatDivPtf
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodico.RP_CatDivPtf
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodico.RP_CatDivPtf
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodico.RP_CatDivPtf
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        

		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodico.RP_CatDivPtf
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodico.RP_CatDivPtf
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodico.RP_CatDivPtf
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update c6StagingPeriodico.RP_CatDivPtf
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update c6StagingPeriodico.RP_CatDivPtf
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------


	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito

	update c6StagingPeriodico.RP_CatDivPtf
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	

	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	

	-- modifiche per III trimestrale 2017 - 25/09/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	-- per i 2cf: F/BNZNLM66D21Z312D,F/MNRDTL56S70F351T

	update c6StagingPeriodico.RP_CatDivPtf
	set visibilita=1
	WHERE CODINTERNO = '03246250' 
	and visibilita = 0

	-- fine modifiche per III trimestrale 2017 - 25/09/2017 ----------------------------------------------------------------

	-- modifiche per III trimestrale 2017 - 27/10/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	
		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatDivPtf a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0433182507'



		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodico.RP_CatDivPtf a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0782316961'

			-- fine modifiche per III trimestrale 2017 - 27/10/2017 ----------------------------------------------------------------


			---------------------------------------  modifiche per IV trimestrale 2017 - 17/1/2018  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U

			update C6StagingPeriodico.RP_CatDivPtf
			set visibilita = 1
			where codinterno = '04969190' and
			codisin = 'IT0004969199'

			---------------------------------------- fine modifiche per IV trimestrale 2017 - 17/1/2018

			---- modifiche per I trimestrale 2018 - Aprile 2018 - errore scarto cf CVTGNN61T64G535D
			update C6StagingPeriodico.RP_CatDivPtf
			set codsottoprodotto = 'HL02'
			where ChiaveProdotto = 314880
			----- fine modifiche per I trimestrale 2018 - Aprile 2018 - errore scarto cf CVTGNN61T64G535D

				---------------------------------------  modifiche per trimestrale 2017 - 31/10/2023  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U

			update C6StagingPeriodico.RP_CatDivPtf
			set visibilita = 1
			where ChiaveProdotto='233943'

			-- FIX 20250318 PER LINEE GP Ego Personal
			UPDATE C6StagingPeriodico.RP_CatDivPtf
			SET RischioCredito='3'
			where NomeProdotto like '%gp ego personal%'
			and Lineefinacc = 'pers'




	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatDivPtf' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_CatDivPtf'
		)
	
end












GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CATINAREA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
CREATE procedure [C6StagingPeriodico].[RP_ST_CATINAREA] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CATINAREA',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_CATINAREA  
  
 insert into C6StagingPeriodico.RP_CATINAREA  
 select * from CONSUNI.[CatalogoProdotti].dbo.CATINAREA  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CATINAREA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CATINAREA'  
  )  
   
end  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CATINAREA_20161222]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_CATINAREA_20161222] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CATINAREA',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_CATINAREA

	insert into C6StagingPeriodico.RP_CATINAREA
	select * from [CONSEVO].[CatalogoProdotti].dbo.CATINAREA
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CATINAREA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CATINAREA'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CATINAREA_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_CATINAREA_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CATINAREA_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_CATINAREA

	insert into C6StagingPeriodico.RP_CATINAREA
	select * from CONSUNI.[CatalogoProdotti].dbo.CATINAREA
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CATINAREA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CATINAREA_pre_selective'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ChiaviMonitoraggio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_ChiaviMonitoraggio]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_ChiaviMonitoraggio',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 truncate table C6StagingPeriodico.[RP_ChiaviMonitoraggio]   
INSERT INTO [C6StagingPeriodico].[RP_ChiaviMonitoraggio]  
           (  
             [IdMonitoraggio],  
          [ChiaveProgetto],  
    [DtCreazione],  
    [stato],  
    [dtFineMonitoraggio],  
    [flagVisualizzaStor]  
            )  
    select *  
      
 from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ChiaviMonitoraggio   
    --filtro per non prendere le righe duplicate  
    WHERE stato = 1  
   
    -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_ChiaviMonitoraggio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_ChiaviMonitoraggio'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ChiaviMonitoraggio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_ChiaviMonitoraggio_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ChiaviMonitoraggio_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	truncate table C6StagingPeriodico.[RP_ChiaviMonitoraggio] 
INSERT INTO [C6StagingPeriodico].[RP_ChiaviMonitoraggio]
           (
             [IdMonitoraggio],
	         [ChiaveProgetto],
			 [DtCreazione],
			 [stato],
			 [dtFineMonitoraggio],
			 [flagVisualizzaStor]
            )
   	select *
   	
	from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ChiaviMonitoraggio 
    --filtro per non prendere le righe duplicate
    WHERE stato = 1
	
    -- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ChiaviMonitoraggio_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ChiaviMonitoraggio_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Cliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Cliente]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Cliente',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Cliente  
  
 insert into C6StagingPeriodico.RP_Cliente  
    
  select   
    cli.chiaveCliente  
      ,codFis  
      ,pIva  
      ,codMan  
      ,nome  
      ,SUBSTRING(cognome, 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH  
      ,tipologia  --CHIEDERE AD ALESSIA  SU CLIENTEPB  
      ,dtNascita  
      ,indirizzo  
      ,numCivico  
      ,c.NomeComune as citta   
      ,cap  
      ,n.descrizioneNazione as nazione  
      ,idQuestionario  
      ,null--,dtQuestionario  
      ,null -- ,dtScadQuest  
      ,profilo  
      ,cli.frequenza  
      ,rendicSemestrale  
      ,codStatoCivile  
      ,genere as sesso  
      ,codTitoloStudio  
      ,flagCanOnLine  
      ,numFigli  
      ,codProvNasc  
      ,codComNasc  
      ,codNazNasc  
      ,fonte  
      ,pinCode  
      ,cli.cittadinanza  
      ,null as provincia    
   
 from [CONSUNI_PERIODICO].consulenzaUnica.dbo.Cliente cli  
  LEFT JOIN [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ClientePB clipb  
      on clipb.chiavecliente = cli.chiavecliente  
   left join [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.DComune c  
   on c.codcomune = cli.codcomRes  
   left join [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.Dnazione n  
   on n.codNazione = cli.CodNazRes   
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Cliente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Cliente'  
  )  
   
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Cliente_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Cliente_pre_selective]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Cliente_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Cliente

	insert into C6StagingPeriodico.RP_Cliente
	 
	 select 
	   cli.chiaveCliente
      ,codFis
      ,pIva
      ,codMan
      ,nome
      ,SUBSTRING(cognome, 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH
      ,tipologia  --CHIEDERE AD ALESSIA  SU CLIENTEPB
      ,dtNascita
      ,indirizzo
      ,numCivico
      ,c.NomeComune as citta	
      ,cap
      ,n.descrizioneNazione as nazione
      ,idQuestionario
      ,null--,dtQuestionario
      ,null -- ,dtScadQuest
      ,profilo
      ,cli.frequenza
      ,rendicSemestrale
      ,codStatoCivile
      ,genere as sesso
      ,codTitoloStudio
      ,flagCanOnLine
      ,numFigli
      ,codProvNasc
      ,codComNasc
      ,codNazNasc
      ,fonte
      ,pinCode
      ,cli.cittadinanza
      ,null as provincia  
	
	from [CONSUNI_PERIODICO].consulenzaUnica.dbo.Cliente cli
	 LEFT JOIN [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ClientePB clipb
      on clipb.chiavecliente = cli.chiavecliente
	  left join [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.DComune c
	  on c.codcomune = cli.codcomRes
	  left join [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.Dnazione n
	  on n.codNazione = cli.CodNazRes 


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Cliente_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Cliente_pre_selective'
		)
	
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ClientePB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_ClientePB]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_ClientePB',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_ClientePB  
  
 insert into C6StagingPeriodico.RP_ClientePB  
  
 select   
 chiaveClientePB,  
 chiaveCliente,  
 chiavePB,  
 idQuestionario,  
 profilo,  
 frequenza,  
 null,  
 null,  
 tipologia,  
 null   
   
 from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ClientePB  
  
  
  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_ClientePB' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_ClientePB'  
  )  
   
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ClientePB_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_ClientePB_pre_selective]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ClientePB_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_ClientePB

	insert into C6StagingPeriodico.RP_ClientePB

	select 
	chiaveClientePB,
	chiaveCliente,
	chiavePB,
	idQuestionario,
	profilo,
	frequenza,
	null,
	null,
	tipologia,
	null 
	
	from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ClientePB




	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ClientePB_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ClientePB_pre_selective'
		)
	
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Cono]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Cono] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Cono',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_CONO 

	insert into C6StagingPeriodico.RP_CONO 

	select
	prog.chiaveprogetto,
	dtriferimento,
	a.chiaveConsulenza,
	--a.Area,
 -------------------------> modifica del 18/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
                     --, [Area]
           CASE 
              
                           WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
                           WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
                     else a.area
                     END AS [Area],
      -------------------------> FINE modifica del 13/1/2017 
	quantileSup,
	quantileInf,
	quantileInter
	
	
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Cono c
	inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.progetto prog
	on c.chiaveprogetto = prog.chiaveprogetto
	inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a 
	on prog.chiaveArea = a.ChiaveArea
			--- Modifica del 18/1/2017 per reperire la descrizione del progetto per la case di cui sopra
			inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
			on propirMod.chiaveprogettomod = prog.chiaveprogettomod
			--------------------------------------------------------------------------------------------

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Cono' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_Cono'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Cono_20170118]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Cono_20170118] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Cono',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_CONO 

	insert into C6StagingPeriodico.RP_CONO 

	select
	prog.chiaveprogetto,
	dtriferimento,
	a.chiaveConsulenza,
	a.Area,
	quantileSup,
	quantileInf,
	quantileInter
	
	
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Cono c
	inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.progetto prog
	on c.chiaveprogetto = prog.chiaveprogetto
	inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a 
	on prog.chiaveArea = a.ChiaveArea

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Cono' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Cono'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Cono_20170320_OBS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Cono_20170320_OBS] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Cono',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_CONO   
  
 insert into C6StagingPeriodico.RP_CONO   
  
 select  
 prog.chiaveprogetto,  
 dtriferimento,  
 a.chiaveConsulenza,  
 a.Area,  
 quantileSup,  
 quantileInf,  
 quantileInter  
   
   
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Cono c  
 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.progetto prog  
 on c.chiaveprogetto = prog.chiaveprogetto  
 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a   
 on prog.chiaveArea = a.ChiaveArea  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Cono' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_ST_Cono'  
  )  
   
end  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Cono_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Cono_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Cono_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_CONO 

	insert into C6StagingPeriodico.RP_CONO 

	select
	prog.chiaveprogetto,
	dtriferimento,
	a.chiaveConsulenza,
	a.Area,
	quantileSup,
	quantileInf,
	quantileInter
	
	
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Cono c
	inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.progetto prog
	on c.chiaveprogetto = prog.chiaveprogetto
	inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a 
	on prog.chiaveArea = a.ChiaveArea

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Cono_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Cono_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CONSULENZA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
CREATE   procedure [C6StagingPeriodico].[RP_ST_CONSULENZA]  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CONSULENZA',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  

  exec [dbo].[CreaTabellaBackUp] 'RP_CONSULENZA','C6StagingPeriodico'
   
TRUNCATE TABLE C6StagingPeriodico.[RP_CONSULENZA]  
  
SELECT   
 contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,contr.rete  
 ,contr.cod_fiscale  
 ,pirmod.nomeProgetto  
 ,pro.chiaveProgetto  
 ,pro.area  
 ,pro.tipoProgetto  
 ,catprod.azob as StrType  
 ,catprod.Complessita  
 ,emit.Descrizione AS DescrizioneEmittente  
 ,PosPor.conto  
 ,PosPor.rubricato  
 ,PosPor.codConf  
 ,PosPor.numPolizza  
 ,PosPor.custGar  
 ,catprod.TipoProdotto  
 ,catprod.CodSottoprodotto  
 ,catprod.CodInterno  
 ,catprod.CodMaf  
 ,catprod.CodIsin    
 ,POSITION_ID = ''  
    ,termId   
 ,anno   
 ,prog  
 ,pro.chiavePtfMod
    ,orizzonteTemporale   
 INTO #ConsulenzaPianificazione  
FROM  
  C6StagingPeriodico.RP_Pianificazione AS pian  
 INNER JOIN C6StagingPeriodico.RP_Progetto AS pro  
  ON pian.chiaveConsulenza = pro.chiaveConsulenza  
 INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello pirmod  
  ON pro.chiaveprogettoMod=pirmod.chiaveprogettomod  
 INNER JOIN C6StagingPeriodico.RP_PosizioniPortafoglio AS pospor  
  ON pro.chiaveProgetto = pospor.chiaveProgetto  
 INNER JOIN C6StagingPeriodico.RP_DettaglioPosizionePortafoglio AS dettposport  
  ON pospor.chiavePosizionePtf = dettposport.chiavePosizionePtf  
 INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti AS catprod  
  ON pospor.chiaveProdotto = catprod.ChiaveProdotto  
 LEFT JOIN C6StagingPeriodico.RP_AnEmittente emit  
         ON catprod.emittente=emit.emittente  
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr  
  ON pian.chiaveClientePB = contr.chiaveClientePB  
   
    
 WHERE     
 pospor.dtFineValidita > getdate()  
 AND pro.dtfinevalidita='99991231'  
 AND pirmod.dtfinevalidita='99991231'  
 --AND INVIOBENVENUTO = 'N'  
   
   
--ricerco dati da Migrazione  
SELECT  
 contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,contr.rete  
 ,contr.cod_fiscale  
 ,pirmod.nomeProgetto  
 --,mig.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,promig.chiaveProgetto  
 ,promig.area  
 ,promig.tipoProgetto  
 ,catprod.azob as StrType  
 ,catprod.Complessita  
 ,emit.Descrizione AS DescrizioneEmittente  
 ,MigPos.conto  
 ,MigPos.rubricato  
 ,MigPos.codConf  
 ,MigPos.numPolizza  
 ,MigPos.custGar  
 ,catprod.TipoProdotto  
 ,catprod.CodSottoprodotto  
 ,catprod.CodInterno  
 ,catprod.CodMaf  
 ,catprod.CodIsin  
 ,POSITION_ID = ''    
 ,migpos.termId   
 ,migpos.anno   
 ,migpos.prog   
 ,null as orizzonteTemporale  
  ,promig.chiavePtfMod
INTO #ConsulenzaMigrazione  
FROM  
 C6StagingPeriodico.RP_Migraz_Pianificazione AS mig  
 INNER JOIN C6StagingPeriodico.RP_Migraz_Progetto AS promig  
  ON mig.chiaveconsulenza = promig.chiaveconsulenza  
 INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello pirmod  
  ON promig.chiaveprogettoMod=pirmod.chiaveprogettomod  
 INNER JOIN C6StagingPeriodico.RP_Migraz_Posizioni AS migpos  
  ON promig.chiaveprogetto = migpos.chiaveprogetto  
 INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti AS catprod  
  ON migpos.chiaveProdotto = catprod.ChiaveProdotto  
 LEFT JOIN C6StagingPeriodico.RP_AnEmittente emit  
  ON catprod.emittente=emit.emittente  
 INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr  
  ON mig.chiaveClientePB = contr.chiaveClientePB   
 LEFT JOIN #ConsulenzaPianificazione tc  
  ON mig.chiaveClientePB = tc.chiaveClientePB  
 WHERE  
  pirmod.dtfinevalidita='99991231'  
 AND migpos.dtFineValidita > getdate()  
 AND tc.chiaveClientePB IS NULL   
 --AND INVIOBENVENUTO = 'N'  
  
   
INSERT INTO C6StagingPeriodico.RP_Consulenza    
 SELECT * FROM #ConsulenzaPianificazione  
 UNION   
 SELECT * FROM #ConsulenzaMigrazione  

  
  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CONSULENZA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CONSULENZA'  
  )  
    
      
   
  
  
END  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CONSULENZA_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_CONSULENZA_pre_selective]
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CONSULENZA_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	
TRUNCATE TABLE C6StagingPeriodico.[RP_CONSULENZA]

SELECT 
	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pirmod.nomeProgetto
	,pro.chiaveProgetto
	,pro.area
	,pro.tipoProgetto
	,catprod.azob as StrType
	,catprod.Complessita
	,emit.Descrizione AS DescrizioneEmittente
	,PosPor.conto
	,PosPor.rubricato
	,PosPor.codConf
	,PosPor.numPolizza
	,PosPor.custGar
	,catprod.TipoProdotto
	,catprod.CodSottoprodotto
	,catprod.CodInterno
	,catprod.CodMaf
	,catprod.CodIsin	 
	,POSITION_ID = ''
    ,termId 
	,anno 
	,prog
    ,orizzonteTemporale 
	INTO #ConsulenzaPianificazione
FROM
		C6StagingPeriodico.RP_Pianificazione AS pian
	INNER JOIN C6StagingPeriodico.RP_Progetto AS pro
		ON pian.chiaveConsulenza = pro.chiaveConsulenza
	INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello pirmod
		ON pro.chiaveprogettoMod=pirmod.chiaveprogettomod
	INNER JOIN C6StagingPeriodico.RP_PosizioniPortafoglio AS pospor
		ON pro.chiaveProgetto = pospor.chiaveProgetto
	INNER JOIN C6StagingPeriodico.RP_DettaglioPosizionePortafoglio AS dettposport
		ON pospor.chiavePosizionePtf = dettposport.chiavePosizionePtf
	INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti AS catprod
		ON pospor.chiaveProdotto = catprod.ChiaveProdotto
	LEFT JOIN C6StagingPeriodico.RP_AnEmittente emit
         ON catprod.emittente=emit.emittente
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
		ON pian.chiaveClientePB = contr.chiaveClientePB
	
		
	WHERE		 
	pospor.dtFineValidita > getdate()
	AND pro.dtfinevalidita='99991231'
	AND pirmod.dtfinevalidita='99991231'
	--AND INVIOBENVENUTO = 'N'
 
	
--ricerco dati da Migrazione
SELECT
	contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pirmod.nomeProgetto
	--,mig.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,promig.chiaveProgetto
	,promig.area
	,promig.tipoProgetto
	,catprod.azob as StrType
	,catprod.Complessita
	,emit.Descrizione AS DescrizioneEmittente
	,MigPos.conto
	,MigPos.rubricato
	,MigPos.codConf
	,MigPos.numPolizza
	,MigPos.custGar
	,catprod.TipoProdotto
	,catprod.CodSottoprodotto
	,catprod.CodInterno
	,catprod.CodMaf
	,catprod.CodIsin
	,POSITION_ID = ''  
	,migpos.termId 
	,migpos.anno 
	,migpos.prog 
	,null as orizzonteTemporale
INTO #ConsulenzaMigrazione
FROM
	C6StagingPeriodico.RP_Migraz_Pianificazione AS mig
	INNER JOIN C6StagingPeriodico.RP_Migraz_Progetto AS promig
		ON mig.chiaveconsulenza = promig.chiaveconsulenza
	INNER JOIN C6StagingPeriodico.RP_ProgettiPiramideModello pirmod
		ON promig.chiaveprogettoMod=pirmod.chiaveprogettomod
	INNER JOIN C6StagingPeriodico.RP_Migraz_Posizioni AS migpos
		ON promig.chiaveprogetto = migpos.chiaveprogetto
	INNER JOIN C6StagingPeriodico.RP_CatalogoProdotti AS catprod
		ON migpos.chiaveProdotto = catprod.ChiaveProdotto
	LEFT JOIN C6StagingPeriodico.RP_AnEmittente emit
		ON catprod.emittente=emit.emittente
	INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
		ON mig.chiaveClientePB = contr.chiaveClientePB	
	LEFT JOIN #ConsulenzaPianificazione tc
		ON mig.chiaveClientePB = tc.chiaveClientePB
	WHERE
	 pirmod.dtfinevalidita='99991231'
	AND migpos.dtFineValidita > getdate()
	AND tc.chiaveClientePB IS NULL	
	--AND INVIOBENVENUTO = 'N'

	
INSERT INTO C6StagingPeriodico.RP_Consulenza  
	SELECT * FROM #ConsulenzaPianificazione
	UNION 
	SELECT * FROM #ConsulenzaMigrazione


	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CONSULENZA_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CONSULENZA_pre_selective'
		)
		
    
	


END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CONTRATTIPRETRIMESTRALE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_CONTRATTIPRETRIMESTRALE]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CONTRATTIPRETRIMESTRALE',
		GETDATE(),
		'Elaborazione trimestrale'
	)

TRUNCATE TABLE EsclusioneContrattiPerQuadratura
TRUNCATE TABLE C6StagingPeriodico.ContrattiPreTrimestrale
INSERT INTO C6StagingPeriodico.ContrattiPreTrimestrale

SELECT  
    v.chiaveclientepb,   
    [Cod_Fiscale],
    [Cod_Mandato],	
	[PIva_Fiduciaria],
	[Cod_Agente],
	[Rete],
	[CodiceContratto],
	[FlagROL],
	[Indirizzo],
	[CAP],
	[Citta],
	[Provincia],
	[Nazione],
	[Presso],
	[Email],
	NULL AS Freq_Diagnosi, -- Il diagnosi non esiste più per il Pricing 
	[FREQ_MONITORAGGIO],
	GENERAZIONEREPORT,
	DATA_INIZIOBASE,	
	DATA_FINEBASE,	
	DATA_PERF_BASE,	
	DATA_PERF,	
	DATA_INZIOAVANZATO,	
	DATA_FINEAVANZATO,	
	RIATTIVAZIONE,	
	CASE WHEN m.TIP_CONTRATTO=3 THEN 3 ELSE 2 END AS TIP_CONTRATTO,-- Tutti i report di MOnitoraggio sostituiti con il Monitoraggio Private
	TIP_RIATTIVAZIONE,
	ClienteMIGRATO,	
	RISORSENA,	
	PROFILOATTIVO,
	NumSolleciti,	
	NumRevoche,	
	Data_ultimoSollecito,	
	Data_ultimaRevoca,	
	InvioBenvenuto	
FROM 
    [C6Mart].[vContratti] v
       INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] m
    ON v.chiaveclientepb = m.chiaveclientepb
-- Modifica del 1/12/2016 - non esiste più il contratto di quel pb. Lasciare la where causa uno scarto nella generazione della appo_contratti
-- modifica del 5/12/2016 - segnalata squadratura con capgemini: quindi sembra un agente fittizio; ripristino
WHERE
	codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
-- fine modifica del 5/12/2016
-- Fine Modifica del 1/12/2016    

--aggiornamento 28/11/2022

update C6StagingPeriodico.ContrattiPreTrimestrale
set COD_MANDATO=''
where COD_MANDATO is null

--fine aggiornamento 28/11/2022

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CONTRATTIPRETRIMESTRALE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CONTRATTIPRETRIMESTRALE'
		)


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CONTRATTIPRETRIMESTRALEFINETRIMESTRE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_CONTRATTIPRETRIMESTRALEFINETRIMESTRE]
AS

-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CONTRATTIPRETRIMESTRALEFINETRIMESTRE',
		GETDATE(),
		'Elaborazione trimestrale'
	)

--TRUNCATE TABLE EsclusioneContrattiPerQuadratura
TRUNCATE TABLE C6StagingPeriodico.ContrattiPreTrimestraleFineTrimestre
INSERT INTO C6StagingPeriodico.ContrattiPreTrimestraleFineTrimestre

SELECT  
    v.chiaveclientepb,   
    [Cod_Fiscale],
    [Cod_Mandato],	
	[PIva_Fiduciaria],
	[Cod_Agente],
	[Rete],
	[CodiceContratto],
	[FlagROL],
	[Indirizzo],
	[CAP],
	[Citta],
	[Provincia],
	[Nazione],
	[Presso],
	[Email],
	[Freq_Diagnosi],
	[FREQ_MONITORAGGIO],
	GENERAZIONEREPORT,
	DATA_INIZIOBASE,	
	DATA_FINEBASE,	
	DATA_PERF_BASE,	
	DATA_PERF,	
	DATA_INZIOAVANZATO,	
	DATA_FINEAVANZATO,	
	RIATTIVAZIONE,	
	m.TIP_CONTRATTO,	
	TIP_RIATTIVAZIONE,
	ClienteMIGRATO,	
	RISORSENA,	
	PROFILOATTIVO,
	NumSolleciti,	
	NumRevoche,	
	Data_ultimoSollecito,	
	Data_ultimaRevoca,	
	InvioBenvenuto	
FROM 
    [C6Mart].[vContratti] v
       INNER JOIN [C6Mart].[CONTRATTOSEI_METADATI] m
    ON v.chiaveclientepb = m.chiaveclientepb
WHERE
	codicecontratto <> '390026CO101' and cod_agente <> '015312' --MRRRRT78S30L219K cliente di prova
    

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CONTRATTIPRETRIMESTRALE' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CONTRATTIPRETRIMESTRALE'
		)

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--  
--select * from c6stagingperiodico.spb_contr_sintesi  
--where positionId is null  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
 --********************************************************************************************  
--select * from c6stagingperiodico.rp_catalogoprodotti  
  
-- FC 05052014  
-- Interventi :  
    -- Eliminata ( commentata ) where condition spb.positionid is null  
    -- Eliminato ( commentato ) ciclo While @Visible   
  
update C6StagingPeriodico.SPB_CONTR_SINTESI  
set positionid = null  
  
 declare @visible int   
 set @visible = 1  
-- while @visible >= 0  
--  begin  
  
   update C6StagingPeriodico.SPB_CONTR_SINTESI  
   set positionid = catalogueid   
   FROM   
   C6StagingPeriodico.SPB_CONTR_SINTESI SPB inner join   
   (  
   select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = @visible  
   )CAT  
   on    
   --caso 1  
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')  
--inizio intervento MIGRAZIONE ASU3   
--inizio INTERVENTO 'RE' - 20161213     
   --and spb.CODINT not in ('RS','RB','RM','RV')  
			--inizio INTERVENTO 'RF/MP' - 20171204
				--and spb.CODINT not in ('RS','RB','RM','RV','RE')  
				and spb.CODINT not in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
				--fine INTERVENTO 'RF/MP' - 20171204
--fine INTERVENTO 'RE' - 20161213     
  
--fine intervento MIGRAZIONE ASU3        
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))  
--inizio intervento MIGRAZIONE ASU3     
   or  
   --caso 1a  
--inizio INTERVENTO 'RE' - 20161213     
   --(spb.CODINT in ('RS','RB','RM','RV')  
		--inizio INTERVENTO 'RF/MP' - 20171204     
			-- (spb.CODINT in ('RS','RB','RM','RV','RE')  +
			(spb.CODINT in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
			--fine INTERVENTO 'RF/MP' - 20171204
--FINE INTERVENTO 'RE' - 20161213     
     
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))   
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--fine intervento MIGRAZIONE ASU3           
   or   
   --else caso 1b   
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and cat.TIPOPRODOTTO = SPB.TipProd   
   )  
   or  
   --caso 2  
--   (SPB.TipProd in ('ASU2')  
   (SPB.TipProd in ('ASU2','GP')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
   )  
   or  
   --caso 3  
   (SPB.TipProd in ('DT','ASD')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   )  
   or  
   --caso 4  
   (SPB.TipProd in ('GES')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')   
   and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')  
   )  
--   --caso 5  
--   or  
--   (SPB.isin = 'EURO00000009'  
--   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
--   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
--   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--   )  
              
  
--   where spb.positionid is null  
--   set @visible = @visible - 1  
--  end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_1'  
  )  
    --********************************************************************************************  
  
    -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 -- drop table #TAB1  
 SELECT distinct  
  TIPPROD,  
  CODINT,  
  MAF,  
  CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,  
  SUBPROD,  
  POSITIONID,  
  RETE,  
  codfis  
 INTO #TAB1    
 FROM C6StagingPeriodico.SPB_CONTR_SINTESI where POSITIONID IS NULL   
  
 UPDATE  #TAB1  
  SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPPROD,   
      CODINT,   
      MAF,      
      CODISIN,  
      SUBPROD  
      )     
         
       
 UPDATE  C6StagingPeriodico.SPB_CONTR_SINTESI  
   SET POSITIONID = t.POSITIONID   
  FROM   C6StagingPeriodico.SPB_CONTR_SINTESI c  
   inner join #TAB1 t   
   ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')  
   AND isnull(t.CODINT,'')=isnull(c.CODINT,'')  
   AND isnull(t.MAF,'')=isnull(c.MAF,'')  
   AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END      
   AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')  
       
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_2'  
  )  
 --**********************************************************************************************  
      -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
      UPDATE  C6StagingPeriodico.SPB_CONTR_SINTESI  
   SET POSITIONID = POSITIONID + dbo.Crea_positionID  
             (  
             TIPPROD,   
             CODINT,   
             MAF,   
             '',   
             SUBPROD,   
             CODCONF, -- VERIFICARNE LA CORRETTEZZA  
             trim(NUMPOL),
--			 case when codint='IE' then ltrim(NUMPOL) else NUMPOL end,   
             CONTO,  
             RUBR,   
             CUSTGAR,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
             END  
             )  
           WHERE POSITIONID IS NOT NULL  
  
    
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
   SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL'   
   FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''  
   GROUP BY RETE, codfis  
         
 --SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''  
 --IF @CNTNULL > 0  
 -- RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )  
-- UPDATE      
--  C6StagingPeriodico.SPB_CONTR_SINTESI  
-- SET         
--  POSITIONID =   
----  CASE   
----   WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI  
----   ELSE   
--             [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    --V ISIN per ASU2  
--    CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END,   
--    SUBPROD  
--    )   
--  --END  
--        +   
--   dbo.Crea_positionID  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    '',   
--    SUBPROD,   
--    CODCONF, -- VERIFICARNE LA CORRETTEZZA  
--    NUMPOL,   
--    CONTO,  
--                RUBR,   
--    CUSTGAR,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
--    END  
--    )  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_3'  
  )  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_20161213]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--
--select * from c6stagingperiodico.spb_contr_sintesi
--where positionId is null

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
CREATE procedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_20161213]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	--********************************************************************************************
--select * from c6stagingperiodico.rp_catalogoprodotti

-- FC 05052014
-- Interventi :
				-- Eliminata ( commentata ) where condition spb.positionid is null
				-- Eliminato ( commentato ) ciclo While @Visible 

update C6StagingPeriodico.SPB_CONTR_SINTESI
set positionid = null

	declare @visible int 
	set @visible = 1
--	while @visible >= 0
--		begin

			update C6StagingPeriodico.SPB_CONTR_SINTESI
			set positionid = catalogueid 
			FROM 
			C6StagingPeriodico.SPB_CONTR_SINTESI SPB inner join 
			(
			select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = @visible
			)CAT
			on  
			--caso 1
			(SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
--inizio intervento MIGRAZIONE ASU3			
			and spb.CODINT not in ('RS','RB','RM','RV')
--fine intervento MIGRAZIONE ASU3						
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))
--inizio intervento MIGRAZIONE ASU3			
			or
			--caso 1a
			(spb.CODINT in ('RS','RB','RM','RV')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))	
			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
--fine intervento MIGRAZIONE ASU3									
			or 
			--else caso 1b 
			(SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
			and cat.TIPOPRODOTTO = SPB.TipProd 
			)
			or
			--caso 2
--			(SPB.TipProd in ('ASU2')
			(SPB.TipProd in ('ASU2','GP')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
			)
			or
			--caso 3
			(SPB.TipProd in ('DT','ASD')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			)
			or
			--caso 4
			(SPB.TipProd in ('GES')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'') 
			and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')
			)
--			--caso 5
--			or
--			(SPB.isin = 'EURO00000009'
--			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
--			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
--			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
--			)
            

--			where spb.positionid is null
--			set @visible = @visible - 1
--		end

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_1'
		)
    --********************************************************************************************

    -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	-- drop table #TAB1
	SELECT distinct
		TIPPROD,
		CODINT,
		MAF,
		CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,
		SUBPROD,
		POSITIONID,
		RETE,
		codfis
	INTO #TAB1	 
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI where POSITIONID IS NULL	

	UPDATE  #TAB1
		SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPPROD, 
						CODINT, 
						MAF, 			
						CODISIN,
						SUBPROD
						)   
					  
					
	UPDATE 	C6StagingPeriodico.SPB_CONTR_SINTESI
			SET POSITIONID = t.POSITIONID 
	 FROM   C6StagingPeriodico.SPB_CONTR_SINTESI c
			inner join #TAB1 t 
			ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')
			AND isnull(t.CODINT,'')=isnull(c.CODINT,'')
			AND isnull(t.MAF,'')=isnull(c.MAF,'')
			AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END			 
			AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')
     
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_2'
		)
	--**********************************************************************************************
      -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
      UPDATE 	C6StagingPeriodico.SPB_CONTR_SINTESI
			SET POSITIONID = POSITIONID + dbo.Crea_positionID
													(
													TIPPROD, 
													CODINT, 
													MAF, 
													'', 
													SUBPROD, 
													CODCONF, -- VERIFICARNE LA CORRETTEZZA
													NUMPOL, 
													CONTO,
													RUBR, 
													CUSTGAR, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
													END, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
													END, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
													END
													)
           WHERE POSITIONID IS NOT NULL

		
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
			SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL' 
			FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''
			GROUP BY RETE, codfis
							
	--SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''
	--IF @CNTNULL > 0
	--	RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )
--	UPDATE    
--		C6StagingPeriodico.SPB_CONTR_SINTESI
--	SET       
--		POSITIONID = 
----		CASE 
----			WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI
----			ELSE 
--             [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo
--				(
--				TIPPROD, 
--				CODINT, 
--				MAF, 
--				--V ISIN per ASU2
--				CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END, 
--				SUBPROD
--				) 
--		--END
--        + 
--			dbo.Crea_positionID
--				(
--				TIPPROD, 
--				CODINT, 
--				MAF, 
--				'', 
--				SUBPROD, 
--				CODCONF, -- VERIFICARNE LA CORRETTEZZA
--				NUMPOL, 
--				CONTO,
--                RUBR, 
--				CUSTGAR, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
--				END, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
--				END, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
--				END
--				)

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_3'
		)

END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_20171204_preRFMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
  
--  
--select * from c6stagingperiodico.spb_contr_sintesi  
--where positionId is null  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_20171204_preRFMP]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
 --********************************************************************************************  
--select * from c6stagingperiodico.rp_catalogoprodotti  
  
-- FC 05052014  
-- Interventi :  
    -- Eliminata ( commentata ) where condition spb.positionid is null  
    -- Eliminato ( commentato ) ciclo While @Visible   
  
update C6StagingPeriodico.SPB_CONTR_SINTESI  
set positionid = null  
  
 declare @visible int   
 set @visible = 1  
-- while @visible >= 0  
--  begin  
  
   update C6StagingPeriodico.SPB_CONTR_SINTESI  
   set positionid = catalogueid   
   FROM   
   C6StagingPeriodico.SPB_CONTR_SINTESI SPB inner join   
   (  
   select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = @visible  
   )CAT  
   on    
   --caso 1  
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')  
--inizio intervento MIGRAZIONE ASU3   
--inizio INTERVENTO 'RE' - 20161213     
   --and spb.CODINT not in ('RS','RB','RM','RV')  
   and spb.CODINT not in ('RS','RB','RM','RV','RE')  
--fine INTERVENTO 'RE' - 20161213     
  
--fine intervento MIGRAZIONE ASU3        
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))  
--inizio intervento MIGRAZIONE ASU3     
   or  
   --caso 1a  
--inizio INTERVENTO 'RE' - 20161213     
   --(spb.CODINT in ('RS','RB','RM','RV')  
   (spb.CODINT in ('RS','RB','RM','RV','RE')  
--FINE INTERVENTO 'RE' - 20161213     
     
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))   
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--fine intervento MIGRAZIONE ASU3           
   or   
   --else caso 1b   
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and cat.TIPOPRODOTTO = SPB.TipProd   
   )  
   or  
   --caso 2  
--   (SPB.TipProd in ('ASU2')  
   (SPB.TipProd in ('ASU2','GP')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
   )  
   or  
   --caso 3  
   (SPB.TipProd in ('DT','ASD')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   )  
   or  
   --caso 4  
   (SPB.TipProd in ('GES')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')   
   and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')  
   )  
--   --caso 5  
--   or  
--   (SPB.isin = 'EURO00000009'  
--   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
--   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
--   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--   )  
              
  
--   where spb.positionid is null  
--   set @visible = @visible - 1  
--  end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_1'  
  )  
    --********************************************************************************************  
  
    -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 -- drop table #TAB1  
 SELECT distinct  
  TIPPROD,  
  CODINT,  
  MAF,  
  CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,  
  SUBPROD,  
  POSITIONID,  
  RETE,  
  codfis  
 INTO #TAB1    
 FROM C6StagingPeriodico.SPB_CONTR_SINTESI where POSITIONID IS NULL   
  
 UPDATE  #TAB1  
  SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPPROD,   
      CODINT,   
      MAF,      
      CODISIN,  
      SUBPROD  
      )     
         
       
 UPDATE  C6StagingPeriodico.SPB_CONTR_SINTESI  
   SET POSITIONID = t.POSITIONID   
  FROM   C6StagingPeriodico.SPB_CONTR_SINTESI c  
   inner join #TAB1 t   
   ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')  
   AND isnull(t.CODINT,'')=isnull(c.CODINT,'')  
   AND isnull(t.MAF,'')=isnull(c.MAF,'')  
   AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END      
   AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')  
       
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_2'  
  )  
 --**********************************************************************************************  
      -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
      UPDATE  C6StagingPeriodico.SPB_CONTR_SINTESI  
   SET POSITIONID = POSITIONID + dbo.Crea_positionID  
             (  
             TIPPROD,   
             CODINT,   
             MAF,   
             '',   
             SUBPROD,   
             CODCONF, -- VERIFICARNE LA CORRETTEZZA  
             NUMPOL,   
             CONTO,  
             RUBR,   
             CUSTGAR,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
             END  
             )  
           WHERE POSITIONID IS NOT NULL  
  
    
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
   SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL'   
   FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''  
   GROUP BY RETE, codfis  
         
 --SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''  
 --IF @CNTNULL > 0  
 -- RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )  
-- UPDATE      
--  C6StagingPeriodico.SPB_CONTR_SINTESI  
-- SET         
--  POSITIONID =   
----  CASE   
----   WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI  
----   ELSE   
--             [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    --V ISIN per ASU2  
--    CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END,   
--    SUBPROD  
--    )   
--  --END  
--        +   
--   dbo.Crea_positionID  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    '',   
--    SUBPROD,   
--    CODCONF, -- VERIFICARNE LA CORRETTEZZA  
--    NUMPOL,   
--    CONTO,  
--                RUBR,   
--    CUSTGAR,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
--    END  
--    )  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_3'  
  )  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_20190725]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
  
  
--  
--select * from c6stagingperiodico.spb_contr_sintesi  
--where positionId is null  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_20190725]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_1',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
 --********************************************************************************************  
--select * from c6stagingperiodico.rp_catalogoprodotti  
  
-- FC 05052014  
-- Interventi :  
    -- Eliminata ( commentata ) where condition spb.positionid is null  
    -- Eliminato ( commentato ) ciclo While @Visible   
  
update C6StagingPeriodico.SPB_CONTR_SINTESI  
set positionid = null  
  
 declare @visible int   
 set @visible = 1  
-- while @visible >= 0  
--  begin  
  
   update C6StagingPeriodico.SPB_CONTR_SINTESI  
   set positionid = catalogueid   
   FROM   
   C6StagingPeriodico.SPB_CONTR_SINTESI SPB inner join   
   (  
   select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = @visible  
   )CAT  
   on    
   --caso 1  
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')  
--inizio intervento MIGRAZIONE ASU3   
--inizio INTERVENTO 'RE' - 20161213     
   --and spb.CODINT not in ('RS','RB','RM','RV')  
			--inizio INTERVENTO 'RF/MP' - 20171204
				--and spb.CODINT not in ('RS','RB','RM','RV','RE')  
				and spb.CODINT not in ('RS','RB','RM','RV','RE','RF')  
				--fine INTERVENTO 'RF/MP' - 20171204
--fine INTERVENTO 'RE' - 20161213     
  
--fine intervento MIGRAZIONE ASU3        
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))  
--inizio intervento MIGRAZIONE ASU3     
   or  
   --caso 1a  
--inizio INTERVENTO 'RE' - 20161213     
   --(spb.CODINT in ('RS','RB','RM','RV')  
		--inizio INTERVENTO 'RF/MP' - 20171204     
			-- (spb.CODINT in ('RS','RB','RM','RV','RE')  +
			(spb.CODINT in ('RS','RB','RM','RV','RE','RF')  
			--fine INTERVENTO 'RF/MP' - 20171204
--FINE INTERVENTO 'RE' - 20161213     
     
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))   
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--fine intervento MIGRAZIONE ASU3           
   or   
   --else caso 1b   
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and cat.TIPOPRODOTTO = SPB.TipProd   
   )  
   or  
   --caso 2  
--   (SPB.TipProd in ('ASU2')  
   (SPB.TipProd in ('ASU2','GP')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
   )  
   or  
   --caso 3  
   (SPB.TipProd in ('DT','ASD')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   )  
   or  
   --caso 4  
   (SPB.TipProd in ('GES')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')   
   and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')  
   )  
--   --caso 5  
--   or  
--   (SPB.isin = 'EURO00000009'  
--   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
--   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
--   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--   )  
              
  
--   where spb.positionid is null  
--   set @visible = @visible - 1  
--  end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_1'  
  )  
    --********************************************************************************************  
  
    -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_2',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
 -- drop table #TAB1  
 SELECT distinct  
  TIPPROD,  
  CODINT,  
  MAF,  
  CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,  
  SUBPROD,  
  POSITIONID,  
  RETE,  
  codfis  
 INTO #TAB1    
 FROM C6StagingPeriodico.SPB_CONTR_SINTESI where POSITIONID IS NULL   
  
 UPDATE  #TAB1  
  SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPPROD,   
      CODINT,   
      MAF,      
      CODISIN,  
      SUBPROD  
      )     
         
       
 UPDATE  C6StagingPeriodico.SPB_CONTR_SINTESI  
   SET POSITIONID = t.POSITIONID   
  FROM   C6StagingPeriodico.SPB_CONTR_SINTESI c  
   inner join #TAB1 t   
   ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')  
   AND isnull(t.CODINT,'')=isnull(c.CODINT,'')  
   AND isnull(t.MAF,'')=isnull(c.MAF,'')  
   AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END      
   AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')  
       
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_2'  
  )  
 --**********************************************************************************************  
      -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_3',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
      UPDATE  C6StagingPeriodico.SPB_CONTR_SINTESI  
   SET POSITIONID = POSITIONID + dbo.Crea_positionID  
             (  
             TIPPROD,   
             CODINT,   
             MAF,   
             '',   
             SUBPROD,   
             CODCONF, -- VERIFICARNE LA CORRETTEZZA  
             NUMPOL,   
             CONTO,  
             RUBR,   
             CUSTGAR,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
             END  
             )  
           WHERE POSITIONID IS NOT NULL  
  
    
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
   SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL'   
   FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''  
   GROUP BY RETE, codfis  
         
 --SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''  
 --IF @CNTNULL > 0  
 -- RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )  
-- UPDATE      
--  C6StagingPeriodico.SPB_CONTR_SINTESI  
-- SET         
--  POSITIONID =   
----  CASE   
----   WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI  
----   ELSE   
--             [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    --V ISIN per ASU2  
--    CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END,   
--    SUBPROD  
--    )   
--  --END  
--        +   
--   dbo.Crea_positionID  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    '',   
--    SUBPROD,   
--    CODCONF, -- VERIFICARNE LA CORRETTEZZA  
--    NUMPOL,   
--    CONTO,  
--                RUBR,   
--    CUSTGAR,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
--    END  
--    )  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_3'  
  )  
  
END  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--
--select * from c6stagingperiodico.spb_contr_sintesi
--where positionId is null

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_BK_eligoTitoli]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	--********************************************************************************************
--select * from c6stagingperiodico.rp_catalogoprodotti

-- FC 05052014
-- Interventi :
				-- Eliminata ( commentata ) where condition spb.positionid is null
				-- Eliminato ( commentato ) ciclo While @Visible 

update C6StagingPeriodico.SPB_CONTR_SINTESI
set positionid = null

	declare @visible int 
	set @visible = 1
--	while @visible >= 0
--		begin

			update C6StagingPeriodico.SPB_CONTR_SINTESI
			set positionid = catalogueid 
			FROM 
			C6StagingPeriodico.SPB_CONTR_SINTESI SPB inner join 
			(
			select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = @visible
			)CAT
			on  
			--caso 1
			(SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))
			or 
			--else caso 1 
			(SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
			and cat.TIPOPRODOTTO = SPB.TipProd 
			)
			or
			--caso 2
--			(SPB.TipProd in ('ASU2')
			(SPB.TipProd in ('ASU2','GP')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
			)
			or
			--caso 3
			(SPB.TipProd in ('DT','ASD')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			)
			or
			--caso 4
			(SPB.TipProd in ('GES')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'') 
			and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')
			)
--			--caso 5
--			or
--			(SPB.isin = 'EURO00000009'
--			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
--			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
--			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
--			)
            

--			where spb.positionid is null
--			set @visible = @visible - 1
--		end

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_1'
		)
    --********************************************************************************************

    -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	-- drop table #TAB1
	SELECT distinct
		TIPPROD,
		CODINT,
		MAF,
		CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,
		SUBPROD,
		POSITIONID,
		RETE,
		codfis
	INTO #TAB1	 
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI where POSITIONID IS NULL	

	UPDATE  #TAB1
		SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPPROD, 
						CODINT, 
						MAF, 			
						CODISIN,
						SUBPROD
						)   
					  
					
	UPDATE 	C6StagingPeriodico.SPB_CONTR_SINTESI
			SET POSITIONID = t.POSITIONID 
	 FROM   C6StagingPeriodico.SPB_CONTR_SINTESI c
			inner join #TAB1 t 
			ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')
			AND isnull(t.CODINT,'')=isnull(c.CODINT,'')
			AND isnull(t.MAF,'')=isnull(c.MAF,'')
			AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END			 
			AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')
     
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_2'
		)
	--**********************************************************************************************
      -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
      UPDATE 	C6StagingPeriodico.SPB_CONTR_SINTESI
			SET POSITIONID = POSITIONID + dbo.Crea_positionID
													(
													TIPPROD, 
													CODINT, 
													MAF, 
													'', 
													SUBPROD, 
													CODCONF, -- VERIFICARNE LA CORRETTEZZA
													NUMPOL, 
													CONTO,
													RUBR, 
													CUSTGAR, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
													END, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
													END, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
													END
													)
           WHERE POSITIONID IS NOT NULL

		
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
			SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL' 
			FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''
			GROUP BY RETE, codfis
							
	--SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''
	--IF @CNTNULL > 0
	--	RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )
--	UPDATE    
--		C6StagingPeriodico.SPB_CONTR_SINTESI
--	SET       
--		POSITIONID = 
----		CASE 
----			WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI
----			ELSE 
--             [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo
--				(
--				TIPPROD, 
--				CODINT, 
--				MAF, 
--				--V ISIN per ASU2
--				CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END, 
--				SUBPROD
--				) 
--		--END
--        + 
--			dbo.Crea_positionID
--				(
--				TIPPROD, 
--				CODINT, 
--				MAF, 
--				'', 
--				SUBPROD, 
--				CODCONF, -- VERIFICARNE LA CORRETTEZZA
--				NUMPOL, 
--				CONTO,
--                RUBR, 
--				CUSTGAR, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
--				END, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
--				END, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
--				END
--				)

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_3'
		)

END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--
--select * from c6stagingperiodico.spb_contr_sintesi
--where positionId is null

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
CREATE procedure [C6StagingPeriodico].[RP_ST_CREA_POSITIONID_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_pre_selective_1',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
	--********************************************************************************************
--select * from c6stagingperiodico.rp_catalogoprodotti

-- FC 05052014
-- Interventi :
				-- Eliminata ( commentata ) where condition spb.positionid is null
				-- Eliminato ( commentato ) ciclo While @Visible 

update C6StagingPeriodico.SPB_CONTR_SINTESI
set positionid = null

	declare @visible int 
	set @visible = 1
--	while @visible >= 0
--		begin

			update C6StagingPeriodico.SPB_CONTR_SINTESI
			set positionid = catalogueid 
			FROM 
			C6StagingPeriodico.SPB_CONTR_SINTESI SPB inner join 
			(
			select * from c6stagingperiodico.rp_catalogoprodotti where visibilita = @visible
			)CAT
			on  
			--caso 1
			(SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
--inizio intervento MIGRAZIONE ASU3	
--inizio INTERVENTO 'RE' - 20161213			
			--and spb.CODINT not in ('RS','RB','RM','RV')
			and spb.CODINT not in ('RS','RB','RM','RV','RE')
--fine INTERVENTO 'RE' - 20161213			

--fine intervento MIGRAZIONE ASU3						
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))
--inizio intervento MIGRAZIONE ASU3			
			or
			--caso 1a
--inizio INTERVENTO 'RE' - 20161213			
			--(spb.CODINT in ('RS','RB','RM','RV')
			(spb.CODINT in ('RS','RB','RM','RV','RE')
--FINE INTERVENTO 'RE' - 20161213			
			
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))	
			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
--fine intervento MIGRAZIONE ASU3									
			or 
			--else caso 1b 
			(SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')
			and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
			and cat.TIPOPRODOTTO = SPB.TipProd 
			)
			or
			--caso 2
--			(SPB.TipProd in ('ASU2')
			(SPB.TipProd in ('ASU2','GP')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
			)
			or
			--caso 3
			(SPB.TipProd in ('DT','ASD')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
			)
			or
			--caso 4
			(SPB.TipProd in ('GES')
			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'') 
			and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')
			)
--			--caso 5
--			or
--			(SPB.isin = 'EURO00000009'
--			and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')
--			and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')
--			and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end
--			)
            

--			where spb.positionid is null
--			set @visible = @visible - 1
--		end

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_pre_selective_1' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_pre_selective_1'
		)
    --********************************************************************************************

    -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_pre_selective_2',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	-- drop table #TAB1
	SELECT distinct
		TIPPROD,
		CODINT,
		MAF,
		CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,
		SUBPROD,
		POSITIONID,
		RETE,
		codfis
	INTO #TAB1	 
	FROM C6StagingPeriodico.SPB_CONTR_SINTESI where POSITIONID IS NULL	

	UPDATE  #TAB1
		SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPPROD, 
						CODINT, 
						MAF, 			
						CODISIN,
						SUBPROD
						)   
					  
					
	UPDATE 	C6StagingPeriodico.SPB_CONTR_SINTESI
			SET POSITIONID = t.POSITIONID 
	 FROM   C6StagingPeriodico.SPB_CONTR_SINTESI c
			inner join #TAB1 t 
			ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')
			AND isnull(t.CODINT,'')=isnull(c.CODINT,'')
			AND isnull(t.MAF,'')=isnull(c.MAF,'')
			AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END			 
			AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')
     
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_pre_selective_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_pre_selective_2'
		)
	--**********************************************************************************************
      -- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CREA_POSITIONID_pre_selective_3',
		GETDATE(),
		'Elaborazione trimestrale'
	)
      UPDATE 	C6StagingPeriodico.SPB_CONTR_SINTESI
			SET POSITIONID = POSITIONID + dbo.Crea_positionID
													(
													TIPPROD, 
													CODINT, 
													MAF, 
													'', 
													SUBPROD, 
													CODCONF, -- VERIFICARNE LA CORRETTEZZA
													NUMPOL, 
													CONTO,
													RUBR, 
													CUSTGAR, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
													END, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
													END, 
													CASE
														WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
														ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
													END
													)
           WHERE POSITIONID IS NOT NULL

		
    INSERT INTO C6MARTPERIODICO.TEST_QUALITY
			SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL' 
			FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''
			GROUP BY RETE, codfis
							
	--SELECT @CNT = COUNT(*) FROM C6StagingPeriodico.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''
	--IF @CNTNULL > 0
	--	RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )
--	UPDATE    
--		C6StagingPeriodico.SPB_CONTR_SINTESI
--	SET       
--		POSITIONID = 
----		CASE 
----			WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI
----			ELSE 
--             [C6StagingPeriodico].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo
--				(
--				TIPPROD, 
--				CODINT, 
--				MAF, 
--				--V ISIN per ASU2
--				CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END, 
--				SUBPROD
--				) 
--		--END
--        + 
--			dbo.Crea_positionID
--				(
--				TIPPROD, 
--				CODINT, 
--				MAF, 
--				'', 
--				SUBPROD, 
--				CODCONF, -- VERIFICARNE LA CORRETTEZZA
--				NUMPOL, 
--				CONTO,
--                RUBR, 
--				CUSTGAR, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
--				END, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
--				END, 
--				CASE
--					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
--					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
--				END
--				)

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CREA_POSITIONID_pre_selective_3' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_CREA_POSITIONID_pre_selective_3'
		)

END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettaglioOperazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_DettaglioOperazione] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettaglioOperazione',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettaglioOperazione  
 --drop table C6StagingPeriodico.RP_DettaglioOperazione  
 insert into C6StagingPeriodico.RP_DettaglioOperazione  
  
  
 select   
 chiaveProposta,codTipoOperazione,chiavePosizionePtf,chiavePosizionePro,chiaveContratto,ctv,ptfIniziale,quantitaNominale,ctvNonRappresentabile,investi,disinvesti,rischioCredito,rischioMercato,copertura,percOperazione,gestPO,relOperazione,opEseguita,posRiallocata,nomeProgettoProp,areaProp,isAttivoRC  
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioOperazione  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettaglioOperazione' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettaglioOperazione'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettaglioOperazione_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_DettaglioOperazione_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettaglioOperazione_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_DettaglioOperazione
	--drop table C6StagingPeriodico.RP_DettaglioOperazione
	insert into C6StagingPeriodico.RP_DettaglioOperazione


	select 
	chiaveProposta,codTipoOperazione,chiavePosizionePtf,chiavePosizionePro,chiaveContratto,ctv,ptfIniziale,quantitaNominale,ctvNonRappresentabile,investi,disinvesti,rischioCredito,rischioMercato,copertura,percOperazione,gestPO,relOperazione,opEseguita,posRiallocata,nomeProgettoProp,areaProp,isAttivoRC
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioOperazione
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettaglioOperazione_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettaglioOperazione_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettaglioPosizionePortafoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_DettaglioPosizionePortafoglio] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettaglioPosizionePortafoglio',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettaglioPosizionePortafoglio  
  
 insert into C6StagingPeriodico.RP_DettaglioPosizionePortafoglio (  
   
  [chiavePosizionePtf]  
    ,[ctv]  
    ,[rischioCredito]  
    ,[rischioMercato]  
       ,[copertura]  
    ,[isAttivoRC]  
       ,[ctvNonAllocabile]  
       ,[quantitaNominale]  
       ,[partitaViaggiante]  
    ,[ctvOut]  
       ,[ctvIni]  
       ,[dtSaldo]  
 )  
 select   
    [chiavePosizionePtf],  
 [ctv],  
 null as [rischioCredito],   --- Da verificare  
 null as [rischioMercato],  
 [copertura],  
 null as [isAttivoRC],  --- Da verificare  
 [ctvNonAllocabile],  
 [quantitaNominale],  
 [partitaViaggiante],  
 [ctvOut],  
 [ctvIni],  
 [dtSaldo]  
  from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettaglioPosizionePortafoglio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettaglioPosizionePortafoglio'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettaglioPosizionePortafoglio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_DettaglioPosizionePortafoglio_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettaglioPosizionePortafoglio_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_DettaglioPosizionePortafoglio

	insert into C6StagingPeriodico.RP_DettaglioPosizionePortafoglio (
	
	 [chiavePosizionePtf]
	   ,[ctv]
	   ,[rischioCredito]
	   ,[rischioMercato]
       ,[copertura]
	   ,[isAttivoRC]
       ,[ctvNonAllocabile]
       ,[quantitaNominale]
       ,[partitaViaggiante]
	   ,[ctvOut]
       ,[ctvIni]
       ,[dtSaldo]
	)
	select 
    [chiavePosizionePtf],
	[ctv],
	null as [rischioCredito],   --- Da verificare
	null as [rischioMercato],
	[copertura],
	null as [isAttivoRC],		--- Da verificare
	[ctvNonAllocabile],
	[quantitaNominale],
	[partitaViaggiante],
	[ctvOut],
	[ctvIni],
	[dtSaldo]
  from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettaglioPosizionePortafoglio_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettaglioPosizionePortafoglio_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettAltriProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_DettAltriProdotti] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettAltriProdotti',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettAltriProdotti  
  
 insert into C6StagingPeriodico.RP_DettAltriProdotti  
   
   
 /* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.  
    select * from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettAltriProdotti  
 */  
 select  [chiaveProdottoTerzi],  
 [idTipoExtra],  
 [descrizione],  
 NULL,  
 [valoreStimato],  
 NULL,  
 NULL,  
 NULL,  
 [flagAssicurativo],  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL  
   
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettAltriProdotti   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettAltriProdotti' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettAltriProdotti'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettAltriProdotti_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_DettAltriProdotti_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettAltriProdotti_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_DettAltriProdotti

	insert into C6StagingPeriodico.RP_DettAltriProdotti
	
	
	/* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.
    select * from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettAltriProdotti
	*/
	select  [chiaveProdottoTerzi],
	[idTipoExtra],
	[descrizione],
	NULL,
	[valoreStimato],
	NULL,
	NULL,
	NULL,
	[flagAssicurativo],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL
	
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettAltriProdotti 
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettAltriProdotti_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettAltriProdotti_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettImmobiliare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_DettImmobiliare] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettImmobiliare',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettImmobiliare  
  
 insert into C6StagingPeriodico.RP_DettImmobiliare  
   
 /* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati.   
 Sostituzione del campo valore immobile con valoreimmobiletotale per l'evolutiva patrimonio immobiliare.  
 select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettImmobiliare*/  
  
 select  
 [chiaveProdottoTerzi],  
 [descrizione],  
 [codProvincia],  
 [provincia],  
 [codComune],  
 [comune],  
 [codZona],  
 [zona],  
 [superficie],  
 NULL,  
 NULL,  
 NULL,  
 --[valoreImmobile],  
 [valoreImmobileTotale],  
 NULL,  
 [renditaAnnua],  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 [codTipologia],  
 [tipologia]   
  
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettImmobiliare  
   
   
   
   
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettImmobiliare' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettImmobiliare'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettImmobiliare_20190205_ProQuota]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_DettImmobiliare_20190205_ProQuota] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettImmobiliare',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettImmobiliare_20190205_ProQuota
  
 insert into C6StagingPeriodico.RP_DettImmobiliare_20190205_ProQuota
   
 /* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati.   
 Sostituzione del campo valore immobile con valoreimmobiletotale per l'evolutiva patrimonio immobiliare.  
 select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettImmobiliare*/  
  
 select  
	[chiaveProdottoTerzi],  
	[descrizione],  
	[codProvincia],  
	[provincia],  
	[codComune],  
	[comune],  
	[codZona],  
	[zona],  
	[superficie],  
	NULL,  
	NULL,  
	NULL,  
	--[valoreImmobile],  
	[valoreImmobileTotale],  
	NULL,  
	[renditaAnnua],  
	NULL,  
	NULL,  
	NULL,  
	NULL,  
	NULL,  
	[codTipologia],  
	[tipologia]
	-- modifica del 05/02/2019 per il ProQuota
	,[valoreImmobile],
	[TipologiaDiritto],
	[QuotaProprieta]
	-- fine modifica del 05/02/2019 per il ProQuota
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettImmobiliare  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettImmobiliare' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettImmobiliare'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettImmobiliare_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_DettImmobiliare_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettImmobiliare_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_DettImmobiliare

	insert into C6StagingPeriodico.RP_DettImmobiliare
	
	/* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati. 
	Sostituzione del campo valore immobile con valoreimmobiletotale per l'evolutiva patrimonio immobiliare.
	select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettImmobiliare*/

	select
	[chiaveProdottoTerzi],
	[descrizione],
	[codProvincia],
	[provincia],
	[codComune],
	[comune],
	[codZona],
	[zona],
	[superficie],
	NULL,
	NULL,
	NULL,
	--[valoreImmobile],
	[valoreImmobileTotale],
	NULL,
	[renditaAnnua],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	[codTipologia],
	[tipologia] 

	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettImmobiliare
	
	
	
	
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettImmobiliare_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettImmobiliare_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettPatrAziendale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_DettPatrAziendale] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettPatrAziendale',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettPatrAziendale  
  
 insert into C6StagingPeriodico.RP_DettPatrAziendale  
   
   
   
/* 20/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.  
select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettPatrAziendale */  
 select [chiaveProdottoTerzi],  
 NULL,  
 [denominazione],  
 [codTipoCompagnia],  
 [patrimonio],  
 NULL,  
 NULL,  
 NULL,  
 [idTipoAzienda],  
 NULL,  
 NULL,  
 [numQuote],  
 [valoreStimato],  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL  
   
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettPatrAziendale  
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettPatrAziendale' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettPatrAziendale'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettPatrAziendale_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_DettPatrAziendale_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettPatrAziendale_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_DettPatrAziendale

	insert into C6StagingPeriodico.RP_DettPatrAziendale
	
	
	
/* 20/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.
select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettPatrAziendale */
	select [chiaveProdottoTerzi],
	NULL,
	[denominazione],
	[codTipoCompagnia],
	[patrimonio],
	NULL,
	NULL,
	NULL,
	[idTipoAzienda],
	NULL,
	NULL,
	[numQuote],
	[valoreStimato],
	NULL,
	NULL,
	NULL,
	NULL,
	NULL,
	NULL
	
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettPatrAziendale
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettPatrAziendale_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettPatrAziendale_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettProdottiTerzi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_DettProdottiTerzi] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettProdottiTerzi',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_DettProdottiTerzi  
  
--drop table C6StagingPeriodico.RP_DettProdottiTerzi  
--select * into C6StagingPeriodico.RP_DettProdottiTerzi from [CONSEVO].[consulenzaEvoluta].dbo.DettProdottiTerzi  
   
 insert into C6StagingPeriodico.RP_DettProdottiTerzi  
 select   
chiaveProdottoTerzi,  
idIntermediario,  
alberatura,  
nomeIntermediario,  
dtInizioInvest,  
totVersato,  
totPrelevato,  
valutaTotPrelevato,  
chiaveProdotto,  
numQuote,  
divQuoteProd,  
dtSottoscrizione,  
valutaPremioVers,  
tipoPolizza,  
tipoVersamento,  
tipoFormaPensionistica,  
capitaleInvestito,  
valutaCapInvestito,  
contoPrincipale,  
addebitoUtenze,  
accreditoStipPens,  
cartaCredito,  
addebitoMutuo,  
isin,  
lineaFinanziaria,  
fabbisognoPrev,  
dtDecorrenza,  
modalitaUso,  
ctvUltimaPrestNota,  
dtUltimaPrestNota,  
flgPrestazioneScad,  
dtTermineVers,  
dtUltimoPremioNoto,  
nomeCompagnia,  
valutaCtvUltPrestNota  
from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettProdottiTerzi  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettProdottiTerzi' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_DettProdottiTerzi'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DettProdottiTerzi_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_DettProdottiTerzi_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_DettProdottiTerzi_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_DettProdottiTerzi

--drop table C6StagingPeriodico.RP_DettProdottiTerzi
--select * into C6StagingPeriodico.RP_DettProdottiTerzi from [CONSEVO].[consulenzaEvoluta].dbo.DettProdottiTerzi
	
	insert into C6StagingPeriodico.RP_DettProdottiTerzi
	select 
chiaveProdottoTerzi,
idIntermediario,
alberatura,
nomeIntermediario,
dtInizioInvest,
totVersato,
totPrelevato,
valutaTotPrelevato,
chiaveProdotto,
numQuote,
divQuoteProd,
dtSottoscrizione,
valutaPremioVers,
tipoPolizza,
tipoVersamento,
tipoFormaPensionistica,
capitaleInvestito,
valutaCapInvestito,
contoPrincipale,
addebitoUtenze,
accreditoStipPens,
cartaCredito,
addebitoMutuo,
isin,
lineaFinanziaria,
fabbisognoPrev,
dtDecorrenza,
modalitaUso,
ctvUltimaPrestNota,
dtUltimaPrestNota,
flgPrestazioneScad,
dtTermineVers,
dtUltimoPremioNoto,
nomeCompagnia,
valutaCtvUltPrestNota
from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettProdottiTerzi

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_DettProdottiTerzi_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_DettProdottiTerzi_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DistribuzionePtfModello_Tattici_AssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




create    procedure [C6StagingPeriodico].[RP_ST_DistribuzionePtfModello_Tattici_AssetClass] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DistribuzionePtfModello_Tattici',
		GETDATE(),
		'Elaborazione periodica'
	)
	--drop table c6staging.RP_Progetto
	truncate table [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass]

	SELECT [chiavePtfMod], Asset, SUM([percentuale]) AS Totale_Percentuale
into #asset_no_desc
FROM CONSUNI.ConsulenzaUnica.dbo.[DistribuzionePtfModello_Tattici] ptf
GROUP BY [chiavePtfMod],asset
order by chiaveptfmod

	insert into [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_AssetClass] (
	   [chiavePtfMod]
	   ,ordinamento
      ,[asset]
	  ,[descrizione]
      ,[percentuale] )

	  select de.[chiavePtfMod],rep.ordinamento_asset,de.[Asset],ass.descrizione,de.Totale_Percentuale
	  from #asset_no_desc de
	  left join [CONSUNI].[CatalogoProdotti].dbo.AssetClass  ass
	  on de.Asset=ass.asset
	  left join  [CONSUNI].[consulenzaUnica].dbo.REP_ASSET_1_E_2_ORDINATE   rep
	  on de.asset=rep.codice_asset_class_ingresso

	
	
	
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DistribuzionePtfModello_Tattici' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DistribuzionePtfModello_Tattici'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_DistribuzionePtfModello_Tattici_MacroAssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






create   procedure [C6StagingPeriodico].[RP_ST_DistribuzionePtfModello_Tattici_MacroAssetClass] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DistribuzionePtfModello_Tattici',
		GETDATE(),
		'Elaborazione periodica'
	)
	--drop table c6staging.RP_Progetto
	truncate table [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_MacroAssetClass]


SELECT [chiavePtfMod], SUBSTRING([asset], 1, 2) AS MacroAsset, SUM([percentuale]) AS Totale_Percentuale
into #asset_no_desc
FROM CONSUNI.ConsulenzaUnica.dbo.[DistribuzionePtfModello_Tattici] ptf
GROUP BY [chiavePtfMod], SUBSTRING([asset], 1, 2)
order by chiaveptfmod

	insert into [C6StagingPeriodico].[RP_DistribuzionePtfModello_Tattici_MacroAssetClass] (
	   [chiavePtfMod]
	   ,ordinamento
      ,[asset]
	  ,[descrizione]
      ,[percentuale] )

	  select de.[chiavePtfMod],rep.ordinamento_asset,de.[MacroAsset],ass.descrizione,de.Totale_Percentuale
	  from #asset_no_desc de
	  left join [CONSUNI].[CatalogoProdotti].dbo.AssetClass  ass
	  on de.MacroAsset=ass.asset
	  left join  [CONSUNI].[consulenzaUnica].dbo.REP_ASSET_1_E_2_ORDINATE   rep
	  on de.macroasset=rep.codice_asset_class_ingresso




	
	
	
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DistribuzionePtfModello_Tattici' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DistribuzionePtfModello_Tattici'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_GradoParentela]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_GradoParentela]  
as  
  
begin  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_GradoParentela',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_GradoParentela  
  
 insert into C6StagingPeriodico.RP_GradoParentela  
 --select * into C6StagingPeriodico.RP_GradoParentela from [CONSEVO].[consulenzaUnica].dbo.GradoParentela  
 select * from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.GradoParentela  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_GradoParentela' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_GradoParentela'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_GradoParentela_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_GradoParentela_pre_selective]
as

begin

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_GradoParentela_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_GradoParentela

	insert into C6StagingPeriodico.RP_GradoParentela
	--select * into C6StagingPeriodico.RP_GradoParentela from [CONSEVO].[consulenzaUnica].dbo.GradoParentela
	select * from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.GradoParentela
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_GradoParentela_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_GradoParentela_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_InfoCliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_ST_InfoCliente]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_InfoCliente',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_InfoCliente  
  
 insert into C6StagingPeriodico.RP_InfoCliente  
 --select * into C6StagingPeriodico.RP_Cliente from [CONSEVO].consulenzaUnica.dbo.Cliente  
 select   
 [chiaveClientePB]  
      ,[chiaveCliente]  
      ,[codFis]  
      ,[pIva]  
      ,[codMan]  
      ,[NomeCliente]  
      --,[CognomeCliente]  
      ,SUBSTRING([CognomeCliente], 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH per errore staging_f1_main in data 08/07/2015  
      ,[tipologia]  
      ,[dtScadQuest]  
      ,[profilo]  
      ,[dtQuestionario]  
      ,[frequenza]  
      ,[Agente]  
      ,[NomePb]  
      ,[CognomePb]  
      ,[StatoPb]  
      ,[rete]  
      ,[codiceContratto]  
      ,[StatoContratto]  
      ,[dtFirmaBase]  
      ,[dtEndBase]  
      ,[dtFirmaSei]  
      ,[dtEndSei]  
      ,[rendicSemestrale]  
      ,[dtNascita]  
      ,[sesso]  
      ,[TipContratto]  
      ,[ModPagamento]  
      ,[chiavePB]  
      ,[flagrol]  
       from [CONSUNI_PERIODICO].consulenzaUnica.dbo.vInfoCliente  
    --EN20160428: clienti di tipologia catastali non sono presenti sul sistema  
    --            sistema SEI e quindi da escludere ma quelli con tipologia NULL  
    --            son da includere. (senza modifica per FF@9133 non viene caricata l'anagrafica)    
       --where tipologia != 'c'  
    where ISNULL(tipologia,'') != 'c'  
	and codiceContratto is not null
	----------- Modifica del 15/9/2017 per escluedere i seguenti cf doppi senza toccare il db del congelato
		--chiaveClientePB(giusta)		COD_FISCALE			COD_MANDATO	PIVA_FIDUCIARIA	COD_AGENTE	rete	codiceContratto
		--615359						BRDRRT69R21L378Q								005861		S		503566CO806
		--1667717						CSTPLA70M67F952U								006473		S		621961CO810
		--674782						CHRGLL44C55Z112E	NULL						006302		S		696334CO810
	---- da escludere perché doppi sulla cliente
		--chiaveClientePB		chiaveCliente	codFis
		--1830328				1648328			BRDRRT69R21L378Q
		--1830432				1452802			CSTPLA70M67F952U	NULL	NULL	PAOLA
		--1818279				1636055			CHRGLL44C55Z112E	NULL			GISELA ELISABETH WILHELMI
	--EN20171031 -- ricodifica da cf CHRGSL44C55Z112M in CHRGLL44C55Z112E effettuqto con successo e l'esclusione eliminata
	--and [chiaveClientePB] not in (1830328,1830432,1818279)
	and [chiaveClientePB] not in (1830328,1830432)

	----------- FINE Modifica del 15/9/2017 
	-----------Modifica del 03/05/2023 rimossa chiaveclientepb nella condizione 'not in' (1381534)
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_InfoCliente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_InfoCliente'  
  )  
   
END  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_InfoCliente_20160428]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_InfoCliente_20160428]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_InfoCliente',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_InfoCliente

	insert into C6StagingPeriodico.RP_InfoCliente
	--select * into C6StagingPeriodico.RP_Cliente from [CONSEVO].ConsulenzaBase.dbo.Cliente
	select 
	[chiaveClientePB]
      ,[chiaveCliente]
      ,[codFis]
      ,[pIva]
      ,[codMan]
      ,[NomeCliente]
      --,[CognomeCliente]
      ,SUBSTRING([CognomeCliente], 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH per errore staging_f1_main in data 08/07/2015
      ,[tipologia]
      ,[dtScadQuest]
      ,[profilo]
      ,[dtQuestionario]
      ,[frequenza]
      ,[Agente]
      ,[NomePb]
      ,[CognomePb]
      ,[StatoPb]
      ,[rete]
      ,[codiceContratto]
      ,[StatoContratto]
      ,[dtFirmaBase]
      ,[dtEndBase]
      ,[dtFirmaSei]
      ,[dtEndSei]
      ,[rendicSemestrale]
      ,[dtNascita]
      ,[sesso]
      ,[TipContratto]
      ,[ModPagamento]
      ,[chiavePB]
      ,[flagrol]
       from [CONSEVO_PERIODICO].ConsulenzaBase.dbo.vInfoCliente
       where tipologia != 'c'
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_InfoCliente' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_InfoCliente'
		)
	
END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_InfoCliente_20170915]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_InfoCliente_20170915]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_InfoCliente',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_InfoCliente  
  
 insert into C6StagingPeriodico.RP_InfoCliente  
 --select * into C6StagingPeriodico.RP_Cliente from [CONSEVO].consulenzaUnica.dbo.Cliente  
 select   
 [chiaveClientePB]  
      ,[chiaveCliente]  
      ,[codFis]  
      ,[pIva]  
      ,[codMan]  
      ,[NomeCliente]  
      --,[CognomeCliente]  
      ,SUBSTRING([CognomeCliente], 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH per errore staging_f1_main in data 08/07/2015  
      ,[tipologia]  
      ,[dtScadQuest]  
      ,[profilo]  
      ,[dtQuestionario]  
      ,[frequenza]  
      ,[Agente]  
      ,[NomePb]  
      ,[CognomePb]  
      ,[StatoPb]  
      ,[rete]  
      ,[codiceContratto]  
      ,[StatoContratto]  
      ,[dtFirmaBase]  
      ,[dtEndBase]  
      ,[dtFirmaSei]  
      ,[dtEndSei]  
      ,[rendicSemestrale]  
      ,[dtNascita]  
      ,[sesso]  
      ,[TipContratto]  
      ,[ModPagamento]  
      ,[chiavePB]  
      ,[flagrol]  
       from [CONSUNI_PERIODICO].consulenzaUnica.dbo.vInfoCliente  
    --EN20160428: clienti di tipologia catastali non sono presenti sul sistema  
    --            sistema SEI e quindi da escludere ma quelli con tipologia NULL  
    --            son da includere. (senza modifica per FF@9133 non viene caricata l'anagrafica)    
       --where tipologia != 'c'  
    where ISNULL(tipologia,'') != 'c'  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_InfoCliente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_InfoCliente'  
  )  
   
END  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_InfoCliente_20171031]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_InfoCliente_20171031]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_InfoCliente',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_InfoCliente  
  
 insert into C6StagingPeriodico.RP_InfoCliente  
 --select * into C6StagingPeriodico.RP_Cliente from [CONSEVO].consulenzaUnica.dbo.Cliente  
 select   
 [chiaveClientePB]  
      ,[chiaveCliente]  
      ,[codFis]  
      ,[pIva]  
      ,[codMan]  
      ,[NomeCliente]  
      --,[CognomeCliente]  
      ,SUBSTRING([CognomeCliente], 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH per errore staging_f1_main in data 08/07/2015  
      ,[tipologia]  
      ,[dtScadQuest]  
      ,[profilo]  
      ,[dtQuestionario]  
      ,[frequenza]  
      ,[Agente]  
      ,[NomePb]  
      ,[CognomePb]  
      ,[StatoPb]  
      ,[rete]  
      ,[codiceContratto]  
      ,[StatoContratto]  
      ,[dtFirmaBase]  
      ,[dtEndBase]  
      ,[dtFirmaSei]  
      ,[dtEndSei]  
      ,[rendicSemestrale]  
      ,[dtNascita]  
      ,[sesso]  
      ,[TipContratto]  
      ,[ModPagamento]  
      ,[chiavePB]  
      ,[flagrol]  
       from [CONSUNI_PERIODICO].consulenzaUnica.dbo.vInfoCliente  
    --EN20160428: clienti di tipologia catastali non sono presenti sul sistema  
    --            sistema SEI e quindi da escludere ma quelli con tipologia NULL  
    --            son da includere. (senza modifica per FF@9133 non viene caricata l'anagrafica)    
       --where tipologia != 'c'  
    where ISNULL(tipologia,'') != 'c'  

	----------- Modifica del 15/9/2017 per escluedere i seguenti cf doppi senza toccare il db del congelato
		--chiaveClientePB(giusta)		COD_FISCALE			COD_MANDATO	PIVA_FIDUCIARIA	COD_AGENTE	rete	codiceContratto
		--615359						BRDRRT69R21L378Q								005861		S		503566CO806
		--1667717						CSTPLA70M67F952U								006473		S		621961CO810
		--674782						CHRGLL44C55Z112E	NULL						006302		S		696334CO810
	---- da escludere perché doppi sulla cliente
		--chiaveClientePB		chiaveCliente	codFis
		--1830328				1648328			BRDRRT69R21L378Q
		--1830432				1452802			CSTPLA70M67F952U	NULL	NULL	PAOLA
		--1818279				1636055			CHRGLL44C55Z112E	NULL			GISELA ELISABETH WILHELMI

	and [chiaveClientePB] not in (1830328,1830432,1818279)

	----------- FINE Modifica del 15/9/2017 
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_InfoCliente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_InfoCliente'  
  )  
   
END  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_InfoCliente_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_InfoCliente_pre_selective]
AS

BEGIN

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_InfoCliente_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_InfoCliente

	insert into C6StagingPeriodico.RP_InfoCliente
	--select * into C6StagingPeriodico.RP_Cliente from [CONSEVO].consulenzaUnica.dbo.Cliente
	select 
	[chiaveClientePB]
      ,[chiaveCliente]
      ,[codFis]
      ,[pIva]
      ,[codMan]
      ,[NomeCliente]
      --,[CognomeCliente]
      ,SUBSTRING([CognomeCliente], 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH per errore staging_f1_main in data 08/07/2015
      ,[tipologia]
      ,[dtScadQuest]
      ,[profilo]
      ,[dtQuestionario]
      ,[frequenza]
      ,[Agente]
      ,[NomePb]
      ,[CognomePb]
      ,[StatoPb]
      ,[rete]
      ,[codiceContratto]
      ,[StatoContratto]
      ,[dtFirmaBase]
      ,[dtEndBase]
      ,[dtFirmaSei]
      ,[dtEndSei]
      ,[rendicSemestrale]
      ,[dtNascita]
      ,[sesso]
      ,[TipContratto]
      ,[ModPagamento]
      ,[chiavePB]
      ,[flagrol]
       from [CONSUNI_PERIODICO].consulenzaUnica.dbo.vInfoCliente
	   --EN20160428: clienti di tipologia catastali non sono presenti sul sistema
	   --            sistema SEI e quindi da escludere ma quelli con tipologia NULL
	   --            son da includere. (senza modifica per FF@9133 non viene caricata l'anagrafica)  
       --where tipologia != 'c'
	   where ISNULL(tipologia,'') != 'c'
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_InfoCliente_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_InfoCliente_pre_selective'
		)
	
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Mappatura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
CREATE procedure [C6StagingPeriodico].[RP_ST_Mappatura] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Mappatura',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Mappatura  
  
 insert into C6StagingPeriodico.RP_Mappatura  
  
 select *  from [CONSUNI].CatalogoProdotti.dbo.Mappatura  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Mappatura' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Mappatura'  
  )  
   
end  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Mappatura_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Mappatura_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Mappatura_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Mappatura

	insert into C6StagingPeriodico.RP_Mappatura

	select *  from [CONSUNI].CatalogoProdotti.dbo.Mappatura
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Mappatura_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Mappatura_pre_selective'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_MappaturaPT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_MappaturaPT] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_MappaturaPT',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_MappaturaPT  
  
 insert into C6StagingPeriodico.RP_MappaturaPT  
 --select * into C6StagingPeriodico.RP_MappaturaPT from [CONSEVO].[consulenzaUnica].dbo.MappaturaPT  
 select * from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.MappaturaPT  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_MappaturaPT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_MappaturaPT'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_MappaturaPT_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_MappaturaPT_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_MappaturaPT_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_MappaturaPT

	insert into C6StagingPeriodico.RP_MappaturaPT
	--select * into C6StagingPeriodico.RP_MappaturaPT from [CONSEVO].[consulenzaUnica].dbo.MappaturaPT
	select * from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.MappaturaPT
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_MappaturaPT_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_MappaturaPT_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Area]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Area] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Area',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table  C6StagingPeriodico.RP_Migraz_Area

	insert into C6StagingPeriodico.RP_Migraz_Area (
	   [Area]
	  ,[chiaveConsulenza]
      ,[percArea]
      ,[ctvArea]
      ,[varArea]
	  )

	select 
	   --[Area]
	    -------------------------> modifica del 18/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
           CASE 
                           WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
                           WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
                     else a.area
                     END AS [Area]
      -------------------------> FINE modifica del 13/1/2017 
	  ,[chiaveConsulenza]
      , null as  percArea
      ,dpos.ctv as ctvArea
       ,null as varArea

	   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
	   on a.chiaveArea = prog.ChiaveArea
	   inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos
	   on pos.chiaveProgetto = prog.chiaveProgetto
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos
	   on pos.chiavePosizionePtf = dpos.chiavePosizionePtf

			--- Modifica del 18/1/2017 per reperire la descrizione del progetto per la case di cui sopra
			inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
			on propirMod.chiaveprogettomod = prog.chiaveprogettomod
		    group by area,chiaveconsulenza,dpos.ctv ,propirMod.nomeProgetto
		   --group by area,chiaveconsulenza,dpos.ctv
		   ---------------------------------------------------------------------------------------------



--	select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.Migraz_Area
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Area' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_Migraz_Area'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Area_20170118]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Area_20170118] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Area',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table  C6StagingPeriodico.RP_Migraz_Area

	insert into C6StagingPeriodico.RP_Migraz_Area (
	   [Area]
	  ,[chiaveConsulenza]
      ,[percArea]
      ,[ctvArea]
      ,[varArea]
	  )

	select 
	   [Area]
	  ,[chiaveConsulenza]
      , null as  percArea
      ,dpos.ctv as ctvArea
       ,null as varArea

	   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
	   on a.chiaveArea = prog.ChiaveArea
	   inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos
	   on pos.chiaveProgetto = prog.chiaveProgetto
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos
	   on pos.chiavePosizionePtf = dpos.chiavePosizionePtf

	   group by area,chiaveconsulenza,dpos.ctv



--	select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.Migraz_Area
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Area' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Area'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Area_20170320_OBS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Area_20170320_OBS] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Area',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table  C6StagingPeriodico.RP_Migraz_Area  
  
 insert into C6StagingPeriodico.RP_Migraz_Area (  
    [Area]  
   ,[chiaveConsulenza]  
      ,[percArea]  
      ,[ctvArea]  
      ,[varArea]  
   )  
  
 select   
    [Area]  
   ,[chiaveConsulenza]  
      , null as  percArea  
      ,dpos.ctv as ctvArea  
       ,null as varArea  
  
    from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a  
    inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog  
    on a.chiaveArea = prog.ChiaveArea  
    inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos  
    on pos.chiaveProgetto = prog.chiaveProgetto  
    inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos  
    on pos.chiavePosizionePtf = dpos.chiavePosizionePtf  
  
    group by area,chiaveconsulenza,dpos.ctv  
  
  
  
-- select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.Migraz_Area  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Area' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'RP_ST_Migraz_Area'  
  )  
   
end  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Area_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Area_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Area_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table  C6StagingPeriodico.RP_Migraz_Area

	insert into C6StagingPeriodico.RP_Migraz_Area (
	   [Area]
	  ,[chiaveConsulenza]
      ,[percArea]
      ,[ctvArea]
      ,[varArea]
	  )

	select 
	   [Area]
	  ,[chiaveConsulenza]
      , null as  percArea
      ,dpos.ctv as ctvArea
       ,null as varArea

	   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
	   on a.chiaveArea = prog.ChiaveArea
	   inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio pos
	   on pos.chiaveProgetto = prog.chiaveProgetto
	   inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio dpos
	   on pos.chiavePosizionePtf = dpos.chiavePosizionePtf

	   group by area,chiaveconsulenza,dpos.ctv



--	select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.Migraz_Area
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Area_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Area_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Pianificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Pianificazione]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Pianificazione',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table  C6StagingPeriodico.RP_Migraz_Pianificazione  
  
 insert into C6StagingPeriodico.RP_Migraz_Pianificazione (  
  chiaveConsulenza  
  ,chiaveClientePB  
  ,dtUltimoAggiornamento  
  ,risorseFinanziarieBF  
  ,risorseFinanziarieTerzi  
  ,contoCorrente  
  ,rischioCredito  
  ,rischioMercato  
  ,diversificazione  
  ,copertura  
  ,isAttivoRC  
  ,partiteViaggianti  
  ,dtPrimaMigrazione  
  ,token  
  ,lineaself  
 )  
     SELECT  
  chiaveConsulenza  
  ,pian.chiaveClientePB  
  ,pian.dtAggiornamento  
  ,null as risorseFinanziarieBF  
  ,null as risorseFinanziarieTerzi  
  ,null as contoCorrente  
  ,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')  
   or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato  
  ,null as rischioCredito  
  ,coperturaRFA as diversificazione  
  ,coperturaRisAll as copertura  
  ,null as isAttivoRC  
  ,partiteViaggianti  
  ,dtPrimaMigrazione  
  ,tok.value as Token  
  ,null AS lineaself  
  
FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.Pianificazione pian  
left join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.token tok  
on pian.chiaveToken = tok.chiavetoken  
inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.eventiCliente ev  
on ev.chiaveclientePb = pian.chiaveclientepb  
where ev.flagPianificazione = 0  
   
  
   
  
/*  POPOLO RISORSE FINANZIARIE BF   */  
  
  
SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB  
into #APPO  
    from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a  
 on a.chiaveconsulenza = pian.chiaveconsulenza  
 inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog  
 on a.chiaveArea = prog.chiavearea  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod  
 on propirMod.chiaveprogettomod = prog.chiaveprogettomod  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor  
 on pospor.chiaveprogetto = prog.chiaveprogetto  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett  
 on dett.chiaveposizioneptf = pospor.chiaveposizioneptf  
 group by pian.chiaveclientePB  
   
  
 UPDATE  C6StagingPeriodico.RP_Pianificazione  
 SET risorseFinanziarieBF = a.RisorseFinanziareBF  
    from #APPO a  
 inner join C6StagingPeriodico.RP_Pianificazione rpPian  
 on rpPian.chiaveclientePB = a.chiaveClientePB  
  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Pianificazione' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Migraz_Pianificazione'  
  )  
   
end  
  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Pianificazione_OLD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Pianificazione_OLD]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Pianificazione',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Migraz_Pianificazione

	insert into C6StagingPeriodico.RP_Migraz_Pianificazione
	SELECT
		chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,token
		,lineaself
		--,null AS lineaself
	FROM [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.Migraz_Pianificazione
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Pianificazione' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Pianificazione'
		)
	
end
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Pianificazione_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Pianificazione_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Pianificazione_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table  C6StagingPeriodico.RP_Migraz_Pianificazione

	insert into C6StagingPeriodico.RP_Migraz_Pianificazione (
		chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,token
		,lineaself
	)
	    SELECT
		chiaveConsulenza
		,pian.chiaveClientePB
		,pian.dtAggiornamento
		,null as risorseFinanziarieBF
		,null as risorseFinanziarieTerzi
		,null as contoCorrente
		,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
			or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
		,null as rischioCredito
		,coperturaRFA as diversificazione
		,coperturaRisAll as copertura
		,null as isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,tok.value as Token
		,null AS lineaself

FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.Pianificazione pian
left join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.token tok
on pian.chiaveToken = tok.chiavetoken
inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
where ev.flagPianificazione = 0
	

	

/*  POPOLO RISORSE FINANZIARIE BF   */


SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	

	UPDATE  C6StagingPeriodico.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodico.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB






	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Pianificazione_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Pianificazione_pre_selective'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Posizioni]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Posizioni] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Posizioni',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Migraz_Posizioni  
  
 insert into C6StagingPeriodico.RP_Migraz_Posizioni  
SELECT   
      ptf.[chiavePosizioneptf]  
      ,[chiaveProgetto]  
      ,[chiaveProdotto]  
      ,ptf.[dtInizioValidita]  
      ,'99991231' as dtFineValidita  
      ,[conto]  
      ,[rubricato]  
      ,[codConf]  
      ,[numPolizza]  
      ,[custGar]  
      ,[codAbi]  
      ,[termId]  
      ,[anno]  
      ,[prog]  
      ,null as Ctv  
  FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PosizioniPortafoglio ptf  
  
   
 select sum(ctv) as Ctv,chiaveprodotto,pospor.chiaveposizionePtf,pospor.chiaveprogetto,codconf  
 into #appo  
 from [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PosizioniPortafoglio pospor  
 inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.dettaglioPosizionePortafoglio dett  
 on pospor.chiavePosizionePtf = dett.chiaveposizionePtf  
 inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog  
 on prog.chiaveprogetto = pospor.chiaveprogetto  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a  
 on a.chiaveArea = prog.chiavearea  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian  
 on a.chiaveconsulenza = pian.chiaveconsulenza  
  
 group by pospor.chiavePosizionePtf,pospor.chiaveprogetto,pospor.chiaveprodotto,codconf  
  
  
   
 UPDATE C6StagingPeriodico.RP_Migraz_Posizioni  
 SET Ctv = a.Ctv  
    from #APPO a  
 inner join C6StagingPeriodico.RP_Migraz_Posizioni migraz  
 on migraz.chiavePosizione = a.chiavePosizionePtf  
 and migraz.chiaveprogetto = a.chiaveProgetto  
 and migraz.chiaveprodotto = a.chiaveprodotto  
 and migraz.codconf    = a.codconf  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Posizioni' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Migraz_Posizioni'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Posizioni_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Posizioni_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Posizioni_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Migraz_Posizioni

	insert into C6StagingPeriodico.RP_Migraz_Posizioni
SELECT 
      ptf.[chiavePosizioneptf]
      ,[chiaveProgetto]
      ,[chiaveProdotto]
      ,ptf.[dtInizioValidita]
      ,'99991231' as dtFineValidita
      ,[conto]
      ,[rubricato]
      ,[codConf]
      ,[numPolizza]
      ,[custGar]
      ,[codAbi]
      ,[termId]
      ,[anno]
      ,[prog]
      ,null as Ctv
  FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PosizioniPortafoglio ptf

 
 select sum(ctv) as Ctv,chiaveprodotto,pospor.chiaveposizionePtf,pospor.chiaveprogetto,codconf
 into #appo
 from [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PosizioniPortafoglio pospor
 inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.dettaglioPosizionePortafoglio dett
 on pospor.chiavePosizionePtf = dett.chiaveposizionePtf
 inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
 on prog.chiaveprogetto = pospor.chiaveprogetto
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
 on a.chiaveArea = prog.chiavearea
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian
 on a.chiaveconsulenza = pian.chiaveconsulenza

 group by pospor.chiavePosizionePtf,pospor.chiaveprogetto,pospor.chiaveprodotto,codconf


 
	UPDATE C6StagingPeriodico.RP_Migraz_Posizioni
	SET Ctv = a.Ctv
    from #APPO a
	inner join C6StagingPeriodico.RP_Migraz_Posizioni migraz
	on migraz.chiavePosizione = a.chiavePosizionePtf
	and migraz.chiaveprogetto = a.chiaveProgetto
	and migraz.chiaveprodotto = a.chiaveprodotto
	and migraz.codconf		  = a.codconf





	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Posizioni_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Posizioni_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE   procedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Progetto',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Migraz_Progetto

	insert into C6StagingPeriodico.RP_Migraz_Progetto(
	chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,varProgetto
      ,coperturaProgetto
      ,ctvProgetto
      ,chiaveProgettoMod
	  ,chiavePtfMod
	  )

	
	select 
	prog.chiaveProgetto
      -------------------------> modifica del 18/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 18/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NUOVO 16/09
      ,null as dtCreazione
      ,null as varProgetto
      ,coperturaProgetto
      ,null as ctvProgetto
      ,propirMod.chiaveProgettoMod
	  ,prog.chiaveptfmod

	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Progetto' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Migraz_Progetto'  
  )  
   
end  
  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto_20170113]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto_20170113] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Progetto',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Migraz_Progetto

	insert into C6StagingPeriodico.RP_Migraz_Progetto(
	chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,varProgetto
      ,coperturaProgetto
      ,ctvProgetto
      ,chiaveProgettoMod )

	
	select 
	prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto -- NUOVO 16/09
      ,null as dtCreazione
      ,null as varProgetto
      ,coperturaProgetto
      ,null as ctvProgetto
      ,propirMod.chiaveProgettoMod

	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf


	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Progetto'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto_20170118]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto_20170118] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Progetto',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Migraz_Progetto

	insert into C6StagingPeriodico.RP_Migraz_Progetto(
	chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,varProgetto
      ,coperturaProgetto
      ,ctvProgetto
      ,chiaveProgettoMod )

	
	select 
	prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto -- NUOVO 16/09
      ,null as dtCreazione
      ,null as varProgetto
      ,coperturaProgetto
      ,null as ctvProgetto
      ,propirMod.chiaveProgettoMod

	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf


	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Progetto'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Migraz_Progetto_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Migraz_Progetto_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Migraz_Progetto

	insert into C6StagingPeriodico.RP_Migraz_Progetto(
	chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,varProgetto
      ,coperturaProgetto
      ,ctvProgetto
      ,chiaveProgettoMod )

	
	select 
	prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto -- NUOVO 16/09
      ,null as dtCreazione
      ,null as varProgetto
      ,coperturaProgetto
      ,null as ctvProgetto
      ,propirMod.chiaveProgettoMod

	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf


	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Migraz_Progetto_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Migraz_Progetto_pre_selective'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_MonitoraggioStorico]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_MonitoraggioStorico]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_MonitoraggioStorico',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 truncate table C6StagingPeriodico.RP_MonitoraggioStorico  
 INSERT INTO [C6StagingPeriodico].[RP_MonitoraggioStorico]  
    SELECT  
  idMonitoraggio,   
  chiaveClientePB,   
  dtAvvio,  
  ctvExt,  
  ctvInv,  
  ctvRis,  
  ctvLiq,  
  ctvPre,  
  ctvNa,  
  ctvCC,  
  partiteViaggianti,  
  [var],  
  copertura,  
  rischioCredito,  
  codiceProfilo,  
  stato,  
  dtSalvataggio,  
  classe_rischio_max,  
  var_max_profilo,  
  ctvself
  --null AS ctvself 
  -- MIOFOGLIO 1/3/2019 ex 20181206
  , ctvSelfFoglio AS CTVSelfFoglio
  -- fine MIOFOGLIO 1/3/2019 ex 20181206
 FROM [CONSUNI_PERIODICO].consulenzaUnica.dbo.MonitoraggioStorico  
   
    -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_MonitoraggioStorico' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_MonitoraggioStorico'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_MonitoraggioStorico_20181214_PreMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_MonitoraggioStorico_20181214_PreMioFoglio]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_MonitoraggioStorico',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 truncate table C6StagingPeriodico.RP_MonitoraggioStorico  
 INSERT INTO [C6StagingPeriodico].[RP_MonitoraggioStorico]  
    SELECT  
  idMonitoraggio,   
  chiaveClientePB,   
  dtAvvio,  
  ctvExt,  
  ctvInv,  
  ctvRis,  
  ctvLiq,  
  ctvPre,  
  ctvNa,  
  ctvCC,  
  partiteViaggianti,  
  [var],  
  copertura,  
  rischioCredito,  
  codiceProfilo,  
  stato,  
  dtSalvataggio,  
  classe_rischio_max,  
  var_max_profilo,  
  ctvself  
  --null AS ctvself  
 FROM [CONSUNI_PERIODICO].consulenzaUnica.dbo.MonitoraggioStorico  
   
    -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_MonitoraggioStorico' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_MonitoraggioStorico'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_MonitoraggioStorico_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_MonitoraggioStorico_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_MonitoraggioStorico_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	truncate table C6StagingPeriodico.RP_MonitoraggioStorico
	INSERT INTO [C6StagingPeriodico].[RP_MonitoraggioStorico]
   	SELECT
		idMonitoraggio,	
		chiaveClientePB,	
		dtAvvio,
		ctvExt,
		ctvInv,
		ctvRis,
		ctvLiq,
		ctvPre,
		ctvNa,
		ctvCC,
		partiteViaggianti,
		[var],
		copertura,
		rischioCredito,
		codiceProfilo,
		stato,
		dtSalvataggio,
		classe_rischio_max,
		var_max_profilo,
		ctvself
		--null AS ctvself
	FROM [CONSUNI_PERIODICO].consulenzaUnica.dbo.MonitoraggioStorico
	
    -- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_MonitoraggioStorico_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_MonitoraggioStorico_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_NeedArea]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
CREATE procedure [C6StagingPeriodico].[RP_ST_NeedArea] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_NeedArea',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_NeedArea  
  
 insert into C6StagingPeriodico.RP_NeedArea  
 /* 20161222 */  
 --select * from [CONSEVO].[CatalogoProdotti].dbo.NeedArea  
 select * from [CONSUNI].[CatalogoProdotti].dbo.NeedArea  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_NeedArea' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_NeedArea'  
  )  
   
end  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_NeedArea_20161222]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_NeedArea_20161222] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_NeedArea',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_NeedArea

	insert into C6StagingPeriodico.RP_NeedArea
	select * from [CONSEVO].[CatalogoProdotti].dbo.NeedArea
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_NeedArea' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_NeedArea'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_NeedArea_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_NeedArea_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_NeedArea_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_NeedArea

	insert into C6StagingPeriodico.RP_NeedArea
	/* 20161222 */
	--select * from [CONSEVO].[CatalogoProdotti].dbo.NeedArea
	select * from [CONSUNI].[CatalogoProdotti].dbo.NeedArea
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_NeedArea_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_NeedArea_pre_selective'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_NobPrez]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE   procedure [C6StagingPeriodico].[RP_ST_NobPrez] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_NobPrez',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_NobPrez 
  
 insert into C6StagingPeriodico.RP_NobPrez (  
 [CHIAVECLIENTEPB]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[CODCONF_ES]
           ,[DTINI]
           ,[DTFIN]
		   ,DT_AGGIORNAMENTO   )  
  
 select   
   
[CHIAVECLIENTEPB]
           ,[RETE]
           ,[CODFIS]
           ,[CODMAN]
           ,[CODCONF]
           ,[CODCONF_ES]
           ,[DTINI]
           ,[DTFIN]
		   ,DT_AGGIORNAMENTO  
		
    from [CONSUNI].[ConsulenzaUnica].[dbo].[PRAM_NOBPREZ]
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_NobPrez' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_NobPrez'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Parentela]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Parentela]  
as  
  
begin  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Parentela',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Parentela  
  
 --insert into C6StagingPeriodico.RP_Parentela  
   
 --select   
 --chiaveClientePB1,  
 --chiaveClientePB2,  
 --idParentela     ,  
 --dtMatrimonio    ,  
 --aCarico         ,  
 --dtCensimento    ,  
 --dtFine             
 --   from   [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Parentela  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Parentela' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Parentela'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Parentela_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Parentela_pre_selective]
as

begin

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Parentela_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Parentela

	--insert into C6StagingPeriodico.RP_Parentela
	
	--select 
	--chiaveClientePB1,
	--chiaveClientePB2,
	--idParentela     ,
	--dtMatrimonio    ,
	--aCarico         ,
	--dtCensimento    ,
	--dtFine           
 --   from 	 [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Parentela
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Parentela_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Parentela_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PatrimonioTerzi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_PatrimonioTerzi] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PatrimonioTerzi',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_PatrimonioTerzi  
  
  
/*  20/05/2015FCianfa e LM: aggiunta della where condition e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.  
*/  
 insert into C6StagingPeriodico.RP_PatrimonioTerzi  
 SELECT [chiaveProdottoTerzi]  
      ,[chiaveClientePB]  
      ,[idTipoProdotto]  
      ,[nomeProdotto]  
      ,NULL  
      ,[valutaCtv]  
      ,[ctv]  
      ,NULL  
      ,[dataCtv]  
      ,[prezzoMedioCarico]  
      ,[tipoProd]  
      ,[dtFine]  
      ,[divisa]  
      ,[ultimoPrezzo]  
        
     
   FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].[dbo].[PatrimonioTerzi]  
   where dtFineValidita >getdate()   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PatrimonioTerzi' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_PatrimonioTerzi'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PatrimonioTerzi_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_PatrimonioTerzi_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PatrimonioTerzi_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_PatrimonioTerzi


/*  20/05/2015FCianfa e LM: aggiunta della where condition e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.
*/
	insert into C6StagingPeriodico.RP_PatrimonioTerzi
	SELECT [chiaveProdottoTerzi]
      ,[chiaveClientePB]
      ,[idTipoProdotto]
      ,[nomeProdotto]
      ,NULL
      ,[valutaCtv]
      ,[ctv]
      ,NULL
      ,[dataCtv]
      ,[prezzoMedioCarico]
      ,[tipoProd]
      ,[dtFine]
      ,[divisa]
      ,[ultimoPrezzo]
      
   
   FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].[dbo].[PatrimonioTerzi]
   where dtFineValidita >getdate() 
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PatrimonioTerzi_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PatrimonioTerzi_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Pianificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Pianificazione]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Pianificazione',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Pianificazione

	insert into C6StagingPeriodico.RP_Pianificazione (

	chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,token
		,varRisorseAllocate
		,coperturaRisorseAllocate
		,lineaself
		)
		

	SELECT
		chiaveConsulenza
		,pian.chiaveClientePB
		,pian.dtAggiornamento as dtUltimoAggiornamento
		,Null as risorseFinanziarieBF
		,Null as risorseFinanziarieTerzi
		,Null as contoCorrente
		,null as rischioCredito
		,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
			or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
				 --rischioCreditoDecodificatoRFA as rischioCredito
		,coperturaRFA as diversificazione
		,coperturaRisAll as copertura
		,null as isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,tok.value as Token
		,null as varRisorseAllocate
		,coperturaRisorseAllocate
		,null AS lineaself
FROM [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian
--------------------- modifica del 13/1/2017 (inner join cambiata con left)
left join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.token tok
--------------------- fine modifica del 13/1/2017 (inner join cambiata con left)
on pian.chiaveToken = tok.chiavetoken
inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
--------------------- modifica del 13/1/2017 (flag pianificazione non più gestito; tutti pianificati)
--where ev.flagPianificazione = 1
--------------------- fine modifica del 13/1/2017


/*  POPOLO RISORSE FINANZIARIE BF   */


SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	

	UPDATE  C6StagingPeriodico.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodico.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB

	
   
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Pianificazione' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Pianificazione'  
  )  
   
end  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Pianificazione_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Pianificazione_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Pianificazione_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Pianificazione

	insert into C6StagingPeriodico.RP_Pianificazione (

	chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,token
		,varRisorseAllocate
		,coperturaRisorseAllocate
		,lineaself
		)
		

	SELECT
		chiaveConsulenza
		,pian.chiaveClientePB
		,pian.dtAggiornamento as dtUltimoAggiornamento
		,Null as risorseFinanziarieBF
		,Null as risorseFinanziarieTerzi
		,Null as contoCorrente
		,null as rischioCredito
		,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
			or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
				 --rischioCreditoDecodificatoRFA as rischioCredito
		,coperturaRFA as diversificazione
		,coperturaRisAll as copertura
		,null as isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,tok.value as Token
		,null as varRisorseAllocate
		,coperturaRisorseAllocate
		,null AS lineaself
FROM [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian
inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.token tok
on pian.chiaveToken = tok.chiavetoken
inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
where ev.flagPianificazione = 1


/*  POPOLO RISORSE FINANZIARIE BF   */


SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	

	UPDATE  C6StagingPeriodico.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodico.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB

	

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Pianificazione_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Pianificazione_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PosizioniPortafoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_PosizioniPortafoglio] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PosizioniPortafoglio',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_PosizioniPortafoglio  
  
 insert into C6StagingPeriodico.RP_PosizioniPortafoglio  
  
 select   
chiavePosizionePtf,  
chiaveProgetto,  
dtInizioValidita,  
'99991231' as[dtFineValidita],  
chiaveProdotto,  
conto,  
rubricato,  
codConf,  
numPolizza,  
custGar,  
codAbi,  
termId,  
anno,  
prog  
  from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PosizioniPortafoglio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_PosizioniPortafoglio'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PosizioniPortafoglio_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_PosizioniPortafoglio_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PosizioniPortafoglio_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_PosizioniPortafoglio

	insert into C6StagingPeriodico.RP_PosizioniPortafoglio

	select 
chiavePosizionePtf,
chiaveProgetto,
dtInizioValidita,
'99991231' as[dtFineValidita],
chiaveProdotto,
conto,
rubricato,
codConf,
numPolizza,
custGar,
codAbi,
termId,
anno,
prog
  from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PosizioniPortafoglio_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PosizioniPortafoglio_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PosizioniProposta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_PosizioniProposta] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PosizioniProposta',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_PosizioniProposta  
  
 insert into C6StagingPeriodico.RP_PosizioniProposta  
  
 select chiavePosizionePro,  
   chiaveProgetto,  
   chiaveProdotto,  
   conto,  
   rubricato,  
   codConf,  
   numPolizza,  
   custGar,  
   codAbi,  
   termId,  
   anno,  
   prog  
   from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniProposta  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PosizioniProposta' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_PosizioniProposta'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PosizioniProposta_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_PosizioniProposta_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PosizioniProposta_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_PosizioniProposta

	insert into C6StagingPeriodico.RP_PosizioniProposta

	select chiavePosizionePro,
			chiaveProgetto,
			chiaveProdotto,
			conto,
			rubricato,
			codConf,
			numPolizza,
			custGar,
			codAbi,
			termId,
			anno,
			prog
			from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniProposta

	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PosizioniProposta_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PosizioniProposta_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PROGETTICLIENTE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
CREATE procedure [C6StagingPeriodico].[RP_ST_PROGETTICLIENTE]  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PROGETTICLIENTE',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
   
TRUNCATE TABLE C6StagingPeriodico.[RP_PROGETTICLIENTE]  
  
SELECT   
  contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,contr.rete  
 ,contr.cod_fiscale  
 ,pro.chiaveProgetto  
 ,pro.area  
 ,pro.tipoProgetto  
      
INTO #ProgettiPianificazione  
FROM  
  C6StagingPeriodico.RP_Pianificazione AS pian  
 INNER JOIN C6StagingPeriodico.RP_Progetto AS pro  
 ON pian.chiaveconsulenza = pro.chiaveconsulenza  
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr  
 ON pian.chiaveClientePB = contr.chiaveClientePB  
 WHERE     
  (pro.dtfinevalidita='99991231' or pro.dtfinevalidita is null)  
  
   
   
--ricerco dati da Migrazione  
SELECT  
  contr.chiaveClientePB   
 ,contr.rete  
 ,contr.cod_fiscale  
 ,promig.chiaveProgetto  
 ,promig.area  
 ,promig.tipoProgetto  
  
INTO #ProgettiMigrazione  
FROM  
 C6StagingPeriodico.RP_Migraz_Pianificazione AS mig  
 INNER JOIN C6StagingPeriodico.RP_Migraz_Progetto AS promig  
  ON mig.chiaveconsulenza = promig.chiaveconsulenza  
 LEFT JOIN #ProgettiPianificazione tc  
  ON mig.chiaveClientePB = tc.chiaveClientePB  
   INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr  
  ON mig.chiaveClientePB = contr.chiaveClientePB  
 WHERE  
  tc.chiaveClientePB IS NULL   
   
INSERT INTO C6StagingPeriodico.RP_PROGETTICLIENTE   
 SELECT * FROM #ProgettiPianificazione  
 UNION   
 SELECT * FROM #ProgettiMigrazione  
  
  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PROGETTICLIENTE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_PROGETTICLIENTE'  
  )  
    
      
   
  
  
END  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PROGETTICLIENTE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_ST_PROGETTICLIENTE_pre_selective]
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PROGETTICLIENTE_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	
TRUNCATE TABLE C6StagingPeriodico.[RP_PROGETTICLIENTE]

SELECT 
	 contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pro.chiaveProgetto
	,pro.area
	,pro.tipoProgetto
    
INTO #ProgettiPianificazione
FROM
		C6StagingPeriodico.RP_Pianificazione AS pian
	INNER JOIN C6StagingPeriodico.RP_Progetto AS pro
	ON pian.chiaveconsulenza = pro.chiaveconsulenza
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
	ON pian.chiaveClientePB = contr.chiaveClientePB
	WHERE		 
	 (pro.dtfinevalidita='99991231' or pro.dtfinevalidita is null)

 
	
--ricerco dati da Migrazione
SELECT
	 contr.chiaveClientePB 
	,contr.rete
	,contr.cod_fiscale
	,promig.chiaveProgetto
	,promig.area
	,promig.tipoProgetto

INTO #ProgettiMigrazione
FROM
	C6StagingPeriodico.RP_Migraz_Pianificazione AS mig
	INNER JOIN C6StagingPeriodico.RP_Migraz_Progetto AS promig
		ON mig.chiaveconsulenza = promig.chiaveconsulenza
	LEFT JOIN #ProgettiPianificazione tc
		ON mig.chiaveClientePB = tc.chiaveClientePB
			INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
		ON mig.chiaveClientePB = contr.chiaveClientePB
	WHERE
	 tc.chiaveClientePB IS NULL	
	
INSERT INTO C6StagingPeriodico.RP_PROGETTICLIENTE 
	SELECT * FROM #ProgettiPianificazione
	UNION 
	SELECT * FROM #ProgettiMigrazione


	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PROGETTICLIENTE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PROGETTICLIENTE_pre_selective'
		)
		
    
	


END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PROGETTICLIENTE_TEST_FC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodico].[RP_ST_PROGETTICLIENTE_TEST_FC]
AS
BEGIN
	-- riportare le logiche nelle rispettive sp di PL
	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()
	SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()


	


SELECT 
	 contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza
	,contr.rete
	,contr.cod_fiscale
	,pro.chiaveProgetto
	,pro.area
	,pro.tipoProgetto
    
INTO #ProgettiPianificazione
FROM
		C6StagingPeriodico.RP_Pianificazione AS pian
	INNER JOIN C6StagingPeriodico.RP_Progetto AS pro
	ON pian.chiaveconsulenza = pro.chiaveconsulenza
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
	ON pian.chiaveClientePB = contr.chiaveClientePB
	WHERE		 
	 (pro.dtfinevalidita='99991231' or pro.dtfinevalidita is null)

 
	
--ricerco dati da Migrazione
SELECT
	 contr.chiaveClientePB 
	,contr.rete
	,contr.cod_fiscale
	,promig.chiaveProgetto
	,promig.area
	,promig.tipoProgetto

INTO #ProgettiMigrazione
FROM
	C6StagingPeriodico.RP_Migraz_Pianificazione AS mig
	INNER JOIN C6StagingPeriodico.RP_Migraz_Progetto AS promig
		ON mig.chiaveconsulenza = promig.chiaveconsulenza
	LEFT JOIN #ProgettiPianificazione tc
		ON mig.chiaveClientePB = tc.chiaveClientePB
			INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr
		ON mig.chiaveClientePB = contr.chiaveClientePB
	WHERE
	 tc.chiaveClientePB IS NULL	
	
insert into C6StagingPeriodico.RP_PROGETTICLIENTE_TEST_FC
	SELECT * FROM #ProgettiPianificazione
	UNION 
	SELECT * FROM #ProgettiMigrazione


	
    
	


END





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	
	INSERT INTO C6MARTPERIODICO.TEST_QUALITY	
	SELECT DISTINCT	 
	 d.rete,	
	case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
		 when (isnull(codfis,'') <> '') then codfis 	
		 else c.piva
	end as Cod_fiscale,   
    'SCARTO PER PIRAMIDE MODELLO tipoprogetto > 1' AS MOTIVO	 
	FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
		ON b.chiaveClientePB = a.chiaveClientePB 
		AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
		ON b.chiaveCliente = c.chiaveCliente 
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
		ON b.chiavePB = d.chiavePB
	WHERE
		A.chiaveclientepb in ( 
		select distinct chiaveclientepb 
		FROM 
		(
		--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
		--[CONSUNI_PERIODICO].[consulenzaEvoluta].dbo.ProgettiPiramideModello
		--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
		--group by chiaveclientepb,area,tipoprogetto
		--having COUNT(*)<>1 
		    SELECT chiaveclientepb,area,COUNT(*) as c 
			FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
			inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
			on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
			inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
			on progmod.chiaveAreaMod = areamod.chiaveAreaMod
			where  area <> 'na' 
			group by chiaveclientepb,area
			having COUNT(*)<>1

		) t
	)  
	
	--drop table C6StagingPeriodico.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodico.RP_ProgettiPiramideModello




	insert into C6StagingPeriodico.RP_ProgettiPiramideModello

select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
       -------------------------> modifica del 18/1/2017 per correggere le anomalie dovute al nome area 'pre1'e 'pre2' 
      --,am.area
				,CASE
				WHEN pirMod.nomeProgetto = 'Previdenza Essenziale' and am.area = 'Pre' THEN 'Pre1'
				WHEN pirMod.nomeProgetto = 'Previdenza Secondaria' and am.area = 'Pre' THEN 'Pre2'
				ELSE AM.AREA
				END AS area
      -------------------------> fine modifica del 18/1/2017   
      ,percentualeProgetto
      ,null as tipoProgetto
	  /* 20161215 imposta per area previdenza il nome progetto a Default */
      --,nomeProgetto
	  ,case when am.area = 'Pre' 
	     then 'Default' 
	     else nomeProgetto 
	   end AS nomeProgetto
	   /* 20161215 fine */
      ,isnull(orizzontetemporale,0) durata      
	  --,[durata]
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
      
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 left join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.portafogliomodello pormod --modifica inserita il 29/04 per orizzontetemporale non congruente con la PUC online
		 on prog.chiaveptfmod=pormod.chiaveptfmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
	
    --update C6StagingPeriodico.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello'
		)
	
end




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_20170118]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_20170118] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	
	INSERT INTO C6MARTPERIODICO.TEST_QUALITY	
	SELECT DISTINCT	 
	 d.rete,	
	case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
		 when (isnull(codfis,'') <> '') then codfis 	
		 else c.piva
	end as Cod_fiscale,   
    'SCARTO PER PIRAMIDE MODELLO tipoprogetto > 1' AS MOTIVO	 
	FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
		ON b.chiaveClientePB = a.chiaveClientePB 
		AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
		ON b.chiaveCliente = c.chiaveCliente 
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
		ON b.chiavePB = d.chiavePB
	WHERE
		A.chiaveclientepb in ( 
		select distinct chiaveclientepb 
		FROM 
		(
		--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
		--[CONSUNI_PERIODICO].[consulenzaEvoluta].dbo.ProgettiPiramideModello
		--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
		--group by chiaveclientepb,area,tipoprogetto
		--having COUNT(*)<>1 
		    SELECT chiaveclientepb,area,COUNT(*) as c 
			FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
			inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
			on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
			inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
			on progmod.chiaveAreaMod = areamod.chiaveAreaMod
			where  area <> 'na' 
			group by chiaveclientepb,area
			having COUNT(*)<>1

		) t
	)  
	
	--drop table C6StagingPeriodico.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodico.RP_ProgettiPiramideModello




	insert into C6StagingPeriodico.RP_ProgettiPiramideModello

select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
      ,am.area
      ,percentualeProgetto
      ,null as tipoProgetto
	  /* 20161215 imposta per area previdenza il nome progetto a Default */
      --,nomeProgetto
	  ,case when am.area = 'Pre' 
	     then 'Default' 
	     else nomeProgetto 
	   end AS nomeProgetto
	   /* 20161215 fine */
      ,[durata]
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
      
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
	
    --update C6StagingPeriodico.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_20171106]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_20171106] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	
	INSERT INTO C6MARTPERIODICO.TEST_QUALITY	
	SELECT DISTINCT	 
	 d.rete,	
	case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
		 when (isnull(codfis,'') <> '') then codfis 	
		 else c.piva
	end as Cod_fiscale,   
    'SCARTO PER PIRAMIDE MODELLO tipoprogetto > 1' AS MOTIVO	 
	FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
		ON b.chiaveClientePB = a.chiaveClientePB 
		AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
		ON b.chiaveCliente = c.chiaveCliente 
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
		ON b.chiavePB = d.chiavePB
	WHERE
		A.chiaveclientepb in ( 
		select distinct chiaveclientepb 
		FROM 
		(
		--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
		--[CONSUNI_PERIODICO].[consulenzaEvoluta].dbo.ProgettiPiramideModello
		--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
		--group by chiaveclientepb,area,tipoprogetto
		--having COUNT(*)<>1 
		    SELECT chiaveclientepb,area,COUNT(*) as c 
			FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
			inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
			on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
			inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
			on progmod.chiaveAreaMod = areamod.chiaveAreaMod
			where  area <> 'na' 
			group by chiaveclientepb,area
			having COUNT(*)<>1

		) t
	)  
	
	--drop table C6StagingPeriodico.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodico.RP_ProgettiPiramideModello




	insert into C6StagingPeriodico.RP_ProgettiPiramideModello

select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
       -------------------------> modifica del 18/1/2017 per correggere le anomalie dovute al nome area 'pre1'e 'pre2' 
      --,am.area
				,CASE
				WHEN pirMod.nomeProgetto = 'Previdenza Essenziale' and am.area = 'Pre' THEN 'Pre1'
				WHEN pirMod.nomeProgetto = 'Previdenza Secondaria' and am.area = 'Pre' THEN 'Pre2'
				ELSE AM.AREA
				END AS area
      -------------------------> fine modifica del 18/1/2017   
      ,percentualeProgetto
      ,null as tipoProgetto
	  /* 20161215 imposta per area previdenza il nome progetto a Default */
      --,nomeProgetto
	  ,case when am.area = 'Pre' 
	     then 'Default' 
	     else nomeProgetto 
	   end AS nomeProgetto
	   /* 20161215 fine */
      ,[durata]
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
      
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
	
    --update C6StagingPeriodico.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello'
		)
	
end




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_ProgettiPiramideModello_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	
	INSERT INTO C6MARTPERIODICO.TEST_QUALITY	
	SELECT DISTINCT	 
	 d.rete,	
	case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
		 when (isnull(codfis,'') <> '') then codfis 	
		 else c.piva
	end as Cod_fiscale,   
    'SCARTO PER PIRAMIDE MODELLO tipoprogetto > 1' AS MOTIVO	 
	FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
		ON b.chiaveClientePB = a.chiaveClientePB 
		AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
		ON b.chiaveCliente = c.chiaveCliente 
	JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
		ON b.chiavePB = d.chiavePB
	WHERE
		A.chiaveclientepb in ( 
		select distinct chiaveclientepb 
		FROM 
		(
		--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
		--[CONSUNI_PERIODICO].[consulenzaEvoluta].dbo.ProgettiPiramideModello
		--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
		--group by chiaveclientepb,area,tipoprogetto
		--having COUNT(*)<>1 
		    SELECT chiaveclientepb,area,COUNT(*) as c 
			FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
			inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
			on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
			inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
			on progmod.chiaveAreaMod = areamod.chiaveAreaMod
			where  area <> 'na' 
			group by chiaveclientepb,area
			having COUNT(*)<>1

		) t
	)  
	
	--drop table C6StagingPeriodico.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodico.RP_ProgettiPiramideModello




	insert into C6StagingPeriodico.RP_ProgettiPiramideModello

select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
      ,am.area
      ,percentualeProgetto
      ,null as tipoProgetto
	  /* 20161215 imposta per area previdenza il nome progetto a Default */
      --,nomeProgetto
	  ,case when am.area = 'Pre' 
	     then 'Default' 
	     else nomeProgetto 
	   end AS nomeProgetto
	   /* 20161215 fine */
      ,[durata]
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
      
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
	
    --update C6StagingPeriodico.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello_pre_selective'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto] as  
  
BEGIN   
  
	-- Log esecuzione  
	INSERT INTO LOG_ESECUZIONE_PERIODICO  
	(Nome, Inizio, Nota)  
	VALUES (  
	'RP_ST_Progetto',  
	GETDATE(),  
	'Elaborazione Trimestrale'  
	)  
 
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
	  /* 20170117 durata > 9 anni */
      ,SUBSTRING (propirMod.durata,1,2) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset

    ------------------> MODIFICA DEL 17/1/2017 -- SI DEVE PUNTARE AL CONGELATO E NON ALL'ONLINE
		--from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
		--inner join CONSUNI.ConsulenzaUnica.dbo.area a
		--on a.chiaveArea = prog.chiavearea 
		--inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
		--on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	------------------> fine MODIFICA DEL 17/1/2017

	-- Log esecuzione
	UPDATE
	LOG_ESECUZIONE_PERIODICO
	SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
	WHERE
	Nome = 'RP_ST_Progetto' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE_PERIODICO
		WHERE
			Nome = 'RP_ST_Progetto'
	)

	-- Log esecuzione  
	INSERT INTO LOG_ESECUZIONE_PERIODICO  
	(Nome, Inizio, Nota)  
	VALUES (  
	'RP_ST_Progetto_2',  
	GETDATE(),  
	'Elaborazione Trimestrale'  
	)  

	------------------> MODIFICA DEL 06/11/2017 -- inzio -- durata progetto da PortafoglioModello.orizzontetemporale
	select prog.chiaveprogettomod , pm.orizzonteTemporale
	into #temp_orizzonteTemporale_ok
	from C6StagingPeriodico.RP_Progetto prog
	inner join [consuni_periodico].consulenzaunica.[dbo].PortafoglioModello pm
	on prog.chiaveptfMod=pm.chiaveptfMod
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod 
	--where prog.orizzontetemporale<>pm.orizzonteTemporale

	update C6StagingPeriodico.RP_Progetto
	set RP_Progetto.orizzonteTemporale=ok.orizzonteTemporale
	from #temp_orizzonteTemporale_ok ok 
	where RP_Progetto.chiaveprogettoMod=ok.chiaveprogettoMod
	------------------> MODIFICA DEL 06/11/2017 -- fine
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_Progetto_2'
		)
	
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto.new]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto.new] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Progetto',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 --drop table C6StagingPeriodico.RP_Progetto  
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto

	  /*  durata progetto da PortafoglioModello.orizzontetemporale
	  /* 20170117 durata > 9 anni */
      ,SUBSTRING (propirMod.durata,1,2) as orizzonteTemporale
	  */
	  ,orizzontetemporale

      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,prog.chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset

    ------------------> MODIFICA DEL 17/1/2017 -- SI DEVE PUNTARE AL CONGELATO E NON ALL'ONLINE
		--from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
		--inner join CONSUNI.ConsulenzaUnica.dbo.area a
		--on a.chiaveArea = prog.chiavearea 
		--inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
		--on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
    ------------------> MODIFICA DEL 06/11/2017 -- inzio -- durata progetto da PortafoglioModello.orizzontetemporale
	inner join [consuni_periodico].consulenzaunica.[dbo].PortafoglioModello pm
	on prog.chiaveptfMod=pm.chiaveptfMod
	------------------> MODIFICA DEL 06/11/2017 -- fine
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	------------------> fine MODIFICA DEL 17/1/2017
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end

  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_20170113]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_20170113] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	--drop table C6StagingPeriodico.RP_Progetto
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
      ,SUBSTRING (propirMod.durata,1,1) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset
	
	from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_20170116]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_20170116] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	--drop table C6StagingPeriodico.RP_Progetto
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
      ,SUBSTRING (propirMod.durata,1,1) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset
	
	from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_20170117]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_20170117] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	--drop table C6StagingPeriodico.RP_Progetto
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
      ,SUBSTRING (propirMod.durata,1,1) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset
	
	from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_20170117_2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_20170117_2] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	--drop table C6StagingPeriodico.RP_Progetto
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
      ,SUBSTRING (propirMod.durata,1,2) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset

    ------------------> MODIFICA DEL 17/1/2017 -- SI DEVE PUNTARE AL CONGELATO E NON ALL'ONLINE
		--from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
		--inner join CONSUNI.ConsulenzaUnica.dbo.area a
		--on a.chiaveArea = prog.chiavearea 
		--inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
		--on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	------------------> fine MODIFICA DEL 17/1/2017
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_20170419]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_20170419] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Progetto',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 --drop table C6StagingPeriodico.RP_Progetto  
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
	  /* 20170117 durata > 9 anni */
      ,SUBSTRING (propirMod.durata,1,2) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset

    ------------------> MODIFICA DEL 17/1/2017 -- SI DEVE PUNTARE AL CONGELATO E NON ALL'ONLINE
		--from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
		--inner join CONSUNI.ConsulenzaUnica.dbo.area a
		--on a.chiaveArea = prog.chiavearea 
		--inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
		--on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	------------------> fine MODIFICA DEL 17/1/2017
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end

  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_20171106]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_20171106] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Progetto',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 --drop table C6StagingPeriodico.RP_Progetto  
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
	  /* 20170117 durata > 9 anni */
      ,SUBSTRING (propirMod.durata,1,2) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset

    ------------------> MODIFICA DEL 17/1/2017 -- SI DEVE PUNTARE AL CONGELATO E NON ALL'ONLINE
		--from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
		--inner join CONSUNI.ConsulenzaUnica.dbo.area a
		--on a.chiaveArea = prog.chiavearea 
		--inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
		--on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	------------------> fine MODIFICA DEL 17/1/2017
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
end

  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Progetto_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	--drop table C6StagingPeriodico.RP_Progetto
	truncate table C6StagingPeriodico.RP_Progetto

	insert into C6StagingPeriodico.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
      ,a.area
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
      ,SUBSTRING (propirMod.durata,1,1) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset
	
	from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Progetto_Robo]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE    procedure [C6StagingPeriodico].[RP_ST_Progetto_Robo] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Progetto_Robo',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	--drop table c6staging.RP_Progetto
	truncate table c6stagingperiodico.RP_Progetto_Robo

	insert into C6StagingPeriodico.RP_Progetto_Robo (
	  [chiaveProgetto]
      ,[flagUtilizzoLiquidita]
      ,[Iban_codiceContrattoCC]
      ,[ctvSogliaCC]
      ,[minimoMantenimentoSuCC]
      ,[listTagFondiDaUtilizzare]
      ,[percentualeFogli]
      ,[percentualeFondi]
      ,[chiaveclientepb]
      ,[dt_inserimento]
      ,[dt_aggiornamento]
      ,[FlagCsv]
	  ,[ChiavePtfMod]
      ,[isProgettoRobo]  )

		select  
	
	   robo.[chiaveProgetto]
      ,robo.[flagUtilizzoLiquidita]
      ,robo.[Iban_codiceContrattoCC]
      ,robo.[ctvSogliaCC]
      ,robo.[minimoMantenimentoSuCC]
      ,robo.[listTagFondiDaUtilizzare]
      ,robo.[percentualeFogli]
      ,robo.[percentualeFondi]
      ,robo.[chiaveclientepb]
      ,robo.[dt_inserimento]
      ,robo.[dt_aggiornamento]
      ,robo.[FlagCsv]
	  ,p.chiaveptfmod
	  ,'S'

	
	from CONSUNI.ConsulenzaUnica.dbo.[Robo_ProgettoRobo] robo
	inner join CONSUNI.ConsulenzaUnica.dbo.[Progetto] p on p.chiaveProgetto=robo.chiaveProgetto
	
	
	
	
	
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto_Robo' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Progetto_Robo'
		)
	
end



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PromotoreBancario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_PromotoreBancario]   
  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PromotoreBancario',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
truncate table C6StagingPeriodico.RP_PromotoreBancario  
  
insert into C6StagingPeriodico.RP_PromotoreBancario  
(  
chiavePB  
,codage  
,nome  
,cognome  
,[status]  
,livello  
,rete  
,indirizzo  
,numCivico  
,citta  
,prov  
,cap  
,nazione  
,ptel  
,tel  
,tipologia  
,grado  
,codManager   
)  
 select    
  chiavePB  
  ,codage  
  ,nome  
  ,cognome  
  ,[status]  
  ,livello  
  ,rete  
  ,indirizzo  
  ,numCivico  
  ,citta  
  ,prov  
  ,cap  
  ,nazione  
  ,ptel  
  ,tel  
  ,tipologia  
  ,grado  
  ,null --codManager   
 from [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PromotoreBancario  
   
  
  
 ---- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PromotoreBancario' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_PromotoreBancario'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_PromotoreBancario_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_PromotoreBancario_pre_selective] 

as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_PromotoreBancario_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

truncate table C6StagingPeriodico.RP_PromotoreBancario

insert into C6StagingPeriodico.RP_PromotoreBancario
(
chiavePB
,codage
,nome
,cognome
,[status]
,livello
,rete
,indirizzo
,numCivico
,citta
,prov
,cap
,nazione
,ptel
,tel
,tipologia
,grado
,codManager 
)
	select  
		chiavePB
		,codage
		,nome
		,cognome
		,[status]
		,livello
		,rete
		,indirizzo
		,numCivico
		,citta
		,prov
		,cap
		,nazione
		,ptel
		,tel
		,tipologia
		,grado
		,null --codManager 
	from [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PromotoreBancario
	


	---- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_PromotoreBancario_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_PromotoreBancario_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Proposta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_Proposta]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Proposta',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_Proposta  
  
 INSERT INTO C6StagingPeriodico.RP_Proposta  
 SELECT  
  chiaveProposta  
  ,chiaveConsulenza  
  ,[status]  
  ,chiaveClientePB  
  ,nomeProposta  
  ,dtProposta  
  ,dtValidazione  
  ,dtUltimoAgg  
  ,dtScadenza  
  ,risorseFinanziarieBF  
  ,risorseFinanziarieBT  
  ,contoCorrente  
  ,rischioCredito  
  ,rischioMercato  
  ,adeguatezza  
  ,discesaRegime  
  ,diversificazione  
  ,copertura  
  ,codValidazione  
  ,urlValidazione  
  ,urlSimulazione  
  ,urlReport  
  ,apporti  
  ,prelievi  
  ,flgScadenza  
  ,flgInadRischioCredito  
  ,flgInadRischioMercato  
  ,flgInadComplessita  
  ,flgInadFrequenza  
  ,flgInadConcentrazione  
  ,flgInadLiquidita  
  ,isAttivoRC  
  ,token  
  ,flagNuovoFlusso  
  ,lineaself  
  --,null AS lineaself  
 FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.Proposta  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Proposta' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_Proposta'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_Proposta_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_Proposta_pre_selective]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_Proposta_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_Proposta

	INSERT INTO C6StagingPeriodico.RP_Proposta
	SELECT
		chiaveProposta
		,chiaveConsulenza
		,[status]
		,chiaveClientePB
		,nomeProposta
		,dtProposta
		,dtValidazione
		,dtUltimoAgg
		,dtScadenza
		,risorseFinanziarieBF
		,risorseFinanziarieBT
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,adeguatezza
		,discesaRegime
		,diversificazione
		,copertura
		,codValidazione
		,urlValidazione
		,urlSimulazione
		,urlReport
		,apporti
		,prelievi
		,flgScadenza
		,flgInadRischioCredito
		,flgInadRischioMercato
		,flgInadComplessita
		,flgInadFrequenza
		,flgInadConcentrazione
		,flgInadLiquidita
		,isAttivoRC
		,token
		,flagNuovoFlusso
		,lineaself
		--,null AS lineaself
	FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.Proposta
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Proposta_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_Proposta_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
  
 truncate table C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI  
  
 insert into C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI  
  
-- 2015/03/17 FCianfa inserimento cast per problemi di lettura dati  
  
 SELECT DT1.ChiaveProdotto, DT1.Divisa, cast(DT1.Peso as numeric(18,7))  
    FROM [CONSUNI_PERIODICO].[consulenzaUnicaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI DT1   
       INNER JOIN  
          (SELECT chiaveProdotto, divisa, MAX(dtRiferimento) AS MAXDATE   
           FROM [CONSUNI_PERIODICO].[consulenzaUnicaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI   
           GROUP BY chiaveProdotto, divisa) DT2  
       ON DT1.chiaveProdotto = DT2.chiaveProdotto  
      AND DT1.DIVISA= DT2.DIVISA  
      AND DT1.dtRiferimento = DT2.MAXDATE  
    ORDER BY DT1.CHIAVEPRODOTTO, dt1.divisa  
   
 /*pk 20160506  
 insert into C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI   
select 9276460, divisa, peso   
from C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI   
where ChiaveProdotto = 261831   
pk 20160506*/  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_20160506_Pk]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodico].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_20160506_Pk] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI

	insert into C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI

-- 2015/03/17 FCianfa inserimento cast per problemi di lettura dati

	SELECT DT1.ChiaveProdotto, DT1.Divisa, cast(DT1.Peso as numeric(18,7))
    FROM [CONSEVO_PERIODICO].[consulenzaEvolutaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI DT1 
       INNER JOIN
          (SELECT chiaveProdotto, divisa, MAX(dtRiferimento) AS MAXDATE 
           FROM [CONSEVO_PERIODICO].[consulenzaEvolutaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI 
           GROUP BY chiaveProdotto, divisa) DT2
       ON DT1.chiaveProdotto = DT2.chiaveProdotto
      AND DT1.DIVISA= DT2.DIVISA
      AND DT1.dtRiferimento = DT2.MAXDATE
    ORDER BY DT1.CHIAVEPRODOTTO, dt1.divisa
	
	/*pk 20160506*/
	insert into C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI 
select 9276460, divisa, peso 
from C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI 
where ChiaveProdotto = 261831 
/*pk 20160506*/

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI'
		)
	
end


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)

	truncate table C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI

	insert into C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI

-- 2015/03/17 FCianfa inserimento cast per problemi di lettura dati

	SELECT DT1.ChiaveProdotto, DT1.Divisa, cast(DT1.Peso as numeric(18,7))
    FROM [CONSUNI_PERIODICO].[consulenzaUnicaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI DT1 
       INNER JOIN
          (SELECT chiaveProdotto, divisa, MAX(dtRiferimento) AS MAXDATE 
           FROM [CONSUNI_PERIODICO].[consulenzaUnicaFL].dbo.RDR_VALUTE_DB_DTGIORNALIERI 
           GROUP BY chiaveProdotto, divisa) DT2
       ON DT1.chiaveProdotto = DT2.chiaveProdotto
      AND DT1.DIVISA= DT2.DIVISA
      AND DT1.dtRiferimento = DT2.MAXDATE
    ORDER BY DT1.CHIAVEPRODOTTO, dt1.divisa
	
	/*pk 20160506
	insert into C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI 
select 9276460, divisa, peso 
from C6StagingPeriodico.RP_RDR_VALUTE_DB_DTGIORNALIERI 
where ChiaveProdotto = 261831 
pk 20160506*/

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_RDR_VALUTE_DB_DTGIORNALIERI_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_REP_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_REP_ASSET_1_E_2_ORDINATE] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_REP_ASSET_1_E_2_ORDINATE',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
    --drop table C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE  
 truncate table C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE  
  
 insert into C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE  
  
 select *    
 --into C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE  
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.REP_ASSET_1_E_2_ORDINATE  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_REP_ASSET_1_E_2_ORDINATE_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_REP_ASSET_1_E_2_ORDINATE_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_REP_ASSET_1_E_2_ORDINATE_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
    --drop table C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE
	truncate table C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE

	insert into C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE

	select *  
	--into C6StagingPeriodico.RP_REP_ASSET_1_E_2_ORDINATE
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.REP_ASSET_1_E_2_ORDINATE
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_REP_S80_EVOL_STAMPA_C6]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodico].[RP_ST_REP_S80_EVOL_STAMPA_C6]  
  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_REP_S80_EVOL_STAMPA_C6',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 truncate table C6StagingPeriodico.[RP_REP_S80_EVOL_STAMPA_C6]  
  
 INSERT INTO [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]  
 SELECT  
  chiaveclientepb,  
  area,  
  ORDINE,  
  FASE,  
  DATA_FASE,  
  CONTROVALORE,  
  RISORSEALLOCATE,  
  RISORSENONALLOCATE,  
  CONTOCORRENTE,  
  INVESTIMENTIINCORSO,  
  VAR_PERC_PTF,  
  MAX_VAR,  
  COPERTURA,  
  PROFILO,  
  AGENTE,  
  CRISK,  
  CRISKMAX,  
  lineaself,
  --null AS lineaself  
  -- Modifica del 1/3/2019 ex 11/1/2019 - Nuovo campo che deve tornare dalla puc e relativo al nuovo prodotto mio foglio per la corretta gestione della evoluzione del controvalore
     -- fino alla modifica della PUC forziamo il ritorno a 0
 lineaSelfFoglio 
  -- fine modifica del 1/3/2019 ex 11/1/2019

 FROM [CONSUNI_PERIODICO].[consulenzaUnica].dbo.REP_S80_EVOL_STAMPA_C6  
   
   
 -- MODIFICA "TEMP" per GESTIONE CLASSE DI RISCHIO.  
 -- Vedi FoglioInterventi codice 1  
 -- Fc 14/01/2014   
 -- In Fase di Caricamento della tabella  C6STAGINGPERIODICO.S80_EVOL_STAMPA_C6 il valore del   
 -- Campo CRISK deve essere codificato a NULL se = a 5   
   
    -- FC START  
 update [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]  
 set CRISK = Null  
 where crisk = 5;  
 -- FC END  
   
   
    -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_REP_S80_EVOL_STAMPA_C6' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_REP_S80_EVOL_STAMPA_C6'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_REP_S80_EVOL_STAMPA_C6_20190111_preMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_REP_S80_EVOL_STAMPA_C6_20190111_preMioFoglio]  
  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_REP_S80_EVOL_STAMPA_C6',  
  GETDATE(),  
  'Elaborazione Trimestrale'  
 )  
 truncate table C6StagingPeriodico.[RP_REP_S80_EVOL_STAMPA_C6]  
  
 INSERT INTO [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]  
 SELECT  
  chiaveclientepb,  
  area,  
  ORDINE,  
  FASE,  
  DATA_FASE,  
  CONTROVALORE,  
  RISORSEALLOCATE,  
  RISORSENONALLOCATE,  
  CONTOCORRENTE,  
  INVESTIMENTIINCORSO,  
  VAR_PERC_PTF,  
  MAX_VAR,  
  COPERTURA,  
  PROFILO,  
  AGENTE,  
  CRISK,  
  CRISKMAX,  
  lineaself  
  --null AS lineaself  
 FROM [CONSUNI_PERIODICO].[consulenzaUnica].dbo.REP_S80_EVOL_STAMPA_C6  
   
   
 -- MODIFICA "TEMP" per GESTIONE CLASSE DI RISCHIO.  
 -- Vedi FoglioInterventi codice 1  
 -- Fc 14/01/2014   
 -- In Fase di Caricamento della tabella  C6STAGINGPERIODICO.S80_EVOL_STAMPA_C6 il valore del   
 -- Campo CRISK deve essere codificato a NULL se = a 5   
   
    -- FC START  
 update [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]  
 set CRISK = Null  
 where crisk = 5;  
 -- FC END  
   
   
    -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_REP_S80_EVOL_STAMPA_C6' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_REP_S80_EVOL_STAMPA_C6'  
  )  
  
END  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_REP_S80_EVOL_STAMPA_C6_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_REP_S80_EVOL_STAMPA_C6_pre_selective]

as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_REP_S80_EVOL_STAMPA_C6_pre_selective',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
	truncate table C6StagingPeriodico.[RP_REP_S80_EVOL_STAMPA_C6]

	INSERT INTO [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]
	SELECT
		chiaveclientepb,
		area,
		ORDINE,
		FASE,
		DATA_FASE,
		CONTROVALORE,
		RISORSEALLOCATE,
		RISORSENONALLOCATE,
		CONTOCORRENTE,
		INVESTIMENTIINCORSO,
		VAR_PERC_PTF,
		MAX_VAR,
		COPERTURA,
		PROFILO,
		AGENTE,
		CRISK,
		CRISKMAX,
		lineaself
		--null AS lineaself
	FROM [CONSUNI_PERIODICO].[consulenzaUnica].dbo.REP_S80_EVOL_STAMPA_C6
	
	
	-- MODIFICA "TEMP" per GESTIONE CLASSE DI RISCHIO.
	-- Vedi FoglioInterventi codice 1
	-- Fc 14/01/2014 
	-- In Fase di Caricamento della tabella  C6STAGINGPERIODICO.S80_EVOL_STAMPA_C6 il valore del 
	-- Campo CRISK deve essere codificato a NULL se = a 5 
	
    -- FC START
	update [C6StagingPeriodico].[RP_REP_S80_EVOL_STAMPA_C6]
	set CRISK = Null
	where crisk = 5;
	-- FC END
	
	
    -- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_REP_S80_EVOL_STAMPA_C6_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_REP_S80_EVOL_STAMPA_C6_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3',  
  GETDATE(),  
  'Elaborazione Trimestale'  
 )  
  
 truncate table C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3  
  
 insert into C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3  
  
 select * from [CONSUNI_PERIODICO].[consulenzaUnica].[dbo].[REP_S4_S5_S13_TRAD_UNTIL_LIV3]  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3'  
  )  
   
end  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3_pre_selective] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3_pre_selective',
		GETDATE(),
		'Elaborazione Trimestale'
	)

	truncate table C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3

	insert into C6StagingPeriodico.RP_S4_S5_S13_TRAD_UNTIL_LIV3

	select * from [CONSUNI_PERIODICO].[consulenzaUnica].[dbo].[REP_S4_S5_S13_TRAD_UNTIL_LIV3]
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3_pre_selective'
		)
	
end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- Aggiunta GESTIONE Fogli V301 (Colaneri, 31/01/2019)
-- =============================================  
--select count(*) from c6stagingperiodico.spb_contr_sintesi  
CREATE  procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  

 exec [dbo].[CreaTabellaBackUp] 'SPB_CONTR_SINTESI','C6StagingPeriodico'

  
 TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN]
	 ,[DIVISA]
	 ,[BASE_PREZZ])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
	,[DIVISA]
	,[BASE_PREZZ]
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')

  -- Modifica del 31/01/2019 AC
  -- dalla WSEICS va esclusa anche la riga che riguarda il prodotto V301 (assimilato a L191 e L192). Questo tipo di prodotti viene caricato, come dettaglio, dalla WSEIGP (vedi ultime select)
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192', 'V301','V302','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') --aggiunto v302 16-05-2022 --aggiunto da 3A a 9M 25/07/2022
  -- Fine modifica del 31/01/2019 AC

--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM') 
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
			--AND CODINT NOT IN ('RS','RB','RV','RM','RE')
			  AND CODINT NOT IN ('RS','RB','RV','RM','RE','RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M','IC')--aggiunto XP  --aggiunto 3A a 9M 25/07/2022
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
	,UL.[DIVISA]
	,UL.[BASE_PREZZ]
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,UL.ISINFIT AS ISIN  
	,UL.[DIVISA]
	,UL.[BASE_PREZZ]
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
		  --AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
		  AND UL.CODINT IN ('RS','RB','RV','RM','RE','RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')--aggiunto 3A a 9M 25/07/2022
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
	,UL.[DIVISA]
	,UL.[BASE_PREZZ]
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
 ,DIVISA
 ,BASE_PREZZ
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
  ,GP.[DIVISA]
  ,GP.[BASE_PREZZ]
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
 ,DIVISA
 ,BASE_PREZZ
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
 ,DIVISA
 ,BASE_PREZZ
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
  ,DIVISA
 ,BASE_PREZZ
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self

-- Modifica del 31/01/2019 AC prodotti MioFoglio
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
 ,DIVISA
 ,BASE_PREZZ
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
  ,GP.[DIVISA]
  ,GP.[BASE_PREZZ]
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('V301','V302')) AS CS  --aggiunto v302 16-05-2022
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
 ,DIVISA
 ,BASE_PREZZ
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
 ,DIVISA
 ,BASE_PREZZ
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
  ,DIVISA
 ,BASE_PREZZ
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('V301','V302')  --aggiunto v302 16/05/2022
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
-- Fine Modifica del 31/01/2019

--DELETE temporanea per S&M del 11-Mar-2020
delete from [C6StagingPeriodico].[SPB_CONTR_SINTESI]
where codconf='71946795210' and codfis='VNZFLV60B48F205H'and codint='09506140'
--END DELETE
  
--inizio inserimento su testquality emanuele  
--insert into c6martperiodico.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20161213]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select count(*) from c6stagingperiodico.spb_contr_sintesi
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20161213]
AS
BEGIN
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SPB_CONTR_SINTESI',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione
-- Sostituzione in tutte le where condition  	
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )

	Declare @dtTrime as decimal;
	
	Declare @dtTrimePrec as decimal;

	set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))
	
	set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))

	TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]

	INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]
			   ([POSITIONID]
			  ,[DTTRIM]
			  ,[DTRIFE]
			  ,[RETE]
			  ,[CODFIS]
			  ,[CODCONF]
			  ,[NUMPOL]
			  ,[CONTO]
			  ,[RUBR]
			  ,[CUSTGAR]
			  ,[TIPPROD]
			  ,[CODINT]
			  ,[CODPROD]
			  ,[SUBPROD]
			  ,[MAF]
			  ,[CODABI]
			  ,[PCTKEY]
			  ,[DESTIT]
			  ,[CTV]
			  ,[PARTVIA]
			  ,[PARTVIAAL]
			  ,[DTSOTTOS]
			  ,[RENDINIZ]
			  ,[RENDANNO]
			  ,[VALORE]
			  ,[SUBSET]
			  ,[CVN]
			  ,[SALRISC]
			  ,[ISIN])

	SELECT 
		   NULL AS [POSITIONID]
	      ,[DTTRIM]
		  ,[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CODMAN ='' THEN CODFIS
		ELSE 'FF@'+CODMAN
		    END AS CODFIS
		  ,[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,[TIPPROD]
		  ,[CODINT]
		  ,[CODPROD]
		  ,[SUBPROD]
		  ,[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN 
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6
--INNER JOIN
--			[C6Mart].[CONTRATTOSEI] AS C6
ON
			CS.RETE = C6.RETE AND
-- TRINGALI 19022010
	(case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))
	  WHERE [DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS LI RECUPERO DALLA WSEIUL
	  --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')
		--modifica Emanuele 20131112
		AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')
--INIZIO INTERVENTO MIGRAZIONE ASU3		
		AND CODINT NOT IN ('RS','RB','RV','RM')
--FINE INTERVENTO MIGRAZIONE ASU3		

AND C6.UltimoAperto = 1

--trimestrale Aprile 2013
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'
		
UNION ALL


	

SELECT 
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'
			end as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')
AND C6.UltimoAperto = 1


--INIZIO INTERVENTO MIGRAZIONE ASU3			  
UNION ALL
	
SELECT 
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,'ASU1' AS TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE 
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
  		  ,UL.ISINFIT AS ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.CODINT = UL.CODINT
		AND CS.SUBPROD = UL.SUBPROD		
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
		AND UL.CODINT IN ('RS','RB','RV','RM')
AND C6.UltimoAperto = 1
--FINE INTERVENTO MIGRAZIONE ASU3	


	 UNION ALL
	  --INSERIRE VAR5..15
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per
	  -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga
	  -- unica e devono essere classificati come ASU1
	  SELECT 
		DISTINCT
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  'ASU1' as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,'NA' as MAF--UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime ) AS CS 
--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] = @dtTrime
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND	(
				CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI') 
				OR 
				(CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7')) 
				--OR
				--(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))
			)
AND C6.UltimoAperto = 1		   

--inizio intervento per Omnia linea Self

UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,sum(CTV) as CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,sum(VALORE) as VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	SELECT
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'
		else RUBR end as RUBR
		,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'
		else CUSTGAR end as custgar
		,'GP' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF --UL.MAF
		,CODABI
		,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'
		else PCTKEY end as pctkey
		,DESTIT
		,GP.CTV as CTV
--INIZIO LAST INTERVENTO OMNIA		
--		,PARTVIA
--		,PARTVIAAL
		,0.00 AS PARTVIA
		,0 AS PARTVIAAL
--FINE LAST INTERVENTO OMNIA		
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,GP.CTV AS VALORE
		,'' AS SUBSET --?
		,CVN
		,SALRISC
		,GP.ISIN
	FROM (select * from C6StagingPeriodico.WSEICS 
	WHERE DTTRIM = @dtTrime
	and   subprod in ('L191', 'L192')) AS CS
	join
	(SELECT
			Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
		FROM
			C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

		  JOIN C6STAGINGPERIODICO.WSEIGP AS GP
			ON	CS.CODCONF = GP.CODCONF
			AND	CS.DTTRIM = GP.DTTRIM
			AND CS.SUBPROD = GP.CODLINEA
		  WHERE CS.DTTRIM =@dtTrime
	AND C6.UltimoAperto = 1
--inizio esclusione isin a null emanuele
	and GP.ISIN is not null
--fine esclusione isin a null emanuele
	) a
	
GROUP BY
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,SUBSET
	,CVN
	,SALRISC
	,ISIN

--INIZIO LAST INTERVENTO OMNIA		
UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	SELECT distinct
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,RUBR
		,CUSTGAR
		,'GE' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF 
		,CODABI
		,PCTKEY
		,DESTIT
		,0.00 AS CTV
		,PARTVIA
		,PARTVIAAL
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,0.00 AS VALORE
		,'' AS SUBSET 
		,0.00 as CVN
		,SALRISC
		,'NA' as ISIN
	FROM (select * from C6StagingPeriodico.WSEICS 
	WHERE DTTRIM = @dtTrime
	and   subprod in ('L191', 'L192')
	and   partvia <> 0.00) AS CS 
	join
	(SELECT
			Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
		FROM
			C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
	AND C6.UltimoAperto = 1) a
--FINE LAST INTERVENTO OMNIA		
	
--fine intervento per Omnia linea Self


--inizio inserimento su testquality emanuele
--insert into c6martperiodico.test_quality
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null
--fine inserimento su testquality emanuele

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SPB_CONTR_SINTESI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SPB_CONTR_SINTESI'
		)
END






GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20170407.SAVE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
--select count(*) from c6stagingperiodico.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20170407.SAVE]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  
  
 TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')  
--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM')  
  AND CODINT NOT IN ('RS','RB','RV','RM','RE')  
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
      ,UL.ISINFIT AS ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
  AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self  
  
  
--inizio inserimento su testquality emanuele  
--insert into c6martperiodico.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20171204_preRFMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
  
  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
--select count(*) from c6stagingperiodico.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20171204_preRFMP]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  
  
 TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')  
--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM')  
  AND CODINT NOT IN ('RS','RB','RV','RM','RE')  
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
      ,UL.ISINFIT AS ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
  AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self  
  
  
--inizio inserimento su testquality emanuele  
--insert into c6martperiodico.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20190204_preMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
  
  
  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
--select count(*) from c6stagingperiodico.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20190204_preMioFoglio]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  
  
 TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')  
--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM') 
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
			--AND CODINT NOT IN ('RS','RB','RV','RM','RE')
			  AND CODINT NOT IN ('RS','RB','RV','RM','RE','RF')
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
      ,UL.ISINFIT AS ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
		  --AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
		  AND UL.CODINT IN ('RS','RB','RV','RM','RE','RF')
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self  
  
  
--inizio inserimento su testquality emanuele  
--insert into c6martperiodico.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20190725]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- Aggiunta GESTIONE Fogli V301 (Colaneri, 31/01/2019)
-- =============================================  
--select count(*) from c6stagingperiodico.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_20190725]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  
  
 TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')

  -- Modifica del 31/01/2019 AC
  -- dalla WSEICS va esclusa anche la riga che riguarda il prodotto V301 (assimilato a L191 e L192). Questo tipo di prodotti viene caricato, come dettaglio, dalla WSEIGP (vedi ultime select)
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192', 'V301')
  -- Fine modifica del 31/01/2019 AC

--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM') 
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
			--AND CODINT NOT IN ('RS','RB','RV','RM','RE')
			  AND CODINT NOT IN ('RS','RB','RV','RM','RE','RF')
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
      ,UL.ISINFIT AS ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
		  --AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
		  AND UL.CODINT IN ('RS','RB','RV','RM','RE','RF')
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self

-- Modifica del 31/01/2019 AC prodotti MioFoglio
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('V301')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('V301')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
-- Fine Modifica del 31/01/2019
  
  
--inizio inserimento su testquality emanuele  
--insert into c6martperiodico.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_BK_eligoTitoli]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select count(*) from c6stagingperiodico.spb_contr_sintesi
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_BK_eligoTitoli]
AS
BEGIN
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SPB_CONTR_SINTESI',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione
-- Sostituzione in tutte le where condition  	
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )

	Declare @dtTrime as decimal;
	
	Declare @dtTrimePrec as decimal;

	set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))
	
	set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))

	TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]

	INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]
			   ([POSITIONID]
			  ,[DTTRIM]
			  ,[DTRIFE]
			  ,[RETE]
			  ,[CODFIS]
			  ,[CODCONF]
			  ,[NUMPOL]
			  ,[CONTO]
			  ,[RUBR]
			  ,[CUSTGAR]
			  ,[TIPPROD]
			  ,[CODINT]
			  ,[CODPROD]
			  ,[SUBPROD]
			  ,[MAF]
			  ,[CODABI]
			  ,[PCTKEY]
			  ,[DESTIT]
			  ,[CTV]
			  ,[PARTVIA]
			  ,[PARTVIAAL]
			  ,[DTSOTTOS]
			  ,[RENDINIZ]
			  ,[RENDANNO]
			  ,[VALORE]
			  ,[SUBSET]
			  ,[CVN]
			  ,[SALRISC]
			  ,[ISIN])

	SELECT 
		   NULL AS [POSITIONID]
	      ,[DTTRIM]
		  ,[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CODMAN ='' THEN CODFIS
		ELSE 'FF@'+CODMAN
		    END AS CODFIS
		  ,[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,[TIPPROD]
		  ,[CODINT]
		  ,[CODPROD]
		  ,[SUBPROD]
		  ,[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN 
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6
--INNER JOIN
--			[C6Mart].[CONTRATTOSEI] AS C6
ON
			CS.RETE = C6.RETE AND
-- TRINGALI 19022010
	(case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))
	  WHERE [DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS LI RECUPERO DALLA WSEIUL
	  --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')
		--modifica Emanuele 20131112
		AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191')

AND C6.UltimoAperto = 1

--trimestrale Aprile 2013
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'
		
UNION ALL


	

SELECT 
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'
			end as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')
AND C6.UltimoAperto = 1

	 UNION ALL
	  --INSERIRE VAR5..15
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per
	  -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga
	  -- unica e devono essere classificati come ASU1
	  SELECT 
		DISTINCT
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  'ASU1' as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,'NA' as MAF--UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime ) AS CS 
--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] = @dtTrime
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND	(
				CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI') 
				OR 
				(CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7')) 
				--OR
				--(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))
			)
AND C6.UltimoAperto = 1		   

--inizio intervento per Omnia linea Self

UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,sum(CTV) as CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,sum(VALORE) as VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	SELECT
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,case when (GP.ISIN = 'EURO00000009' and rubr =' ') then '000'
		else RUBR end as RUBR
		,case when (GP.ISIN = 'EURO00000009' and rubr =' ') then '0'
		else CUSTGAR end as custgar
		,'GP' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF --UL.MAF
		,CODABI
		,case when (GP.ISIN = 'EURO00000009' and rubr =' ') then '0'
		else PCTKEY end as pctkey
		,DESTIT
		,GP.CTV as CTV
--INIZIO LAST INTERVENTO OMNIA		
--		,PARTVIA
--		,PARTVIAAL
		,0.00 AS PARTVIA
		,0 AS PARTVIAAL
--FINE LAST INTERVENTO OMNIA		
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,GP.CTV AS VALORE
		,'' AS SUBSET --?
		,CVN
		,SALRISC
		,GP.ISIN
	FROM (select * from C6StagingPeriodico.WSEICS 
	WHERE DTTRIM = @dtTrime
	and   subprod = 'L191') AS CS
	join
	(SELECT
			Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
		FROM
			C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

		  JOIN C6STAGINGPERIODICO.WSEIGP AS GP
			ON	CS.CODCONF = GP.CODCONF
			AND	CS.DTTRIM = GP.DTTRIM
		  WHERE CS.DTTRIM =@dtTrime
	AND C6.UltimoAperto = 1
--inizio esclusione isin a null emanuele
	and GP.ISIN is not null
--fine esclusione isin a null emanuele
	) a
	
GROUP BY
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,SUBSET
	,CVN
	,SALRISC
	,ISIN

--INIZIO LAST INTERVENTO OMNIA		
UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	SELECT distinct
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,RUBR
		,CUSTGAR
		,'GE' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF 
		,CODABI
		,PCTKEY
		,DESTIT
		,0.00 AS CTV
		,PARTVIA
		,PARTVIAAL
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,0.00 AS VALORE
		,'' AS SUBSET 
		,0.00 as CVN
		,SALRISC
		,'NA' as ISIN
	FROM (select * from C6StagingPeriodico.WSEICS 
	WHERE DTTRIM = @dtTrime
	and   subprod = 'L191'
	and   partvia <> 0.00) AS CS 
	join
	(SELECT
			Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
		FROM
			C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
	AND C6.UltimoAperto = 1) a
--FINE LAST INTERVENTO OMNIA		
	
--fine intervento per Omnia linea Self


--inizio inserimento su testquality emanuele
--insert into c6martperiodico.test_quality
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null
--fine inserimento su testquality emanuele

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SPB_CONTR_SINTESI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SPB_CONTR_SINTESI'
		)
END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)
-- =============================================
--select count(*) from c6stagingperiodico.spb_contr_sintesi
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI_pre_selective]
AS
BEGIN
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SPB_CONTR_SINTESI',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione
-- Sostituzione in tutte le where condition  	
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )

	Declare @dtTrime as decimal;
	
	Declare @dtTrimePrec as decimal;

	set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))
	
	set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))

	TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]

	INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]
			   ([POSITIONID]
			  ,[DTTRIM]
			  ,[DTRIFE]
			  ,[RETE]
			  ,[CODFIS]
			  ,[CODCONF]
			  ,[NUMPOL]
			  ,[CONTO]
			  ,[RUBR]
			  ,[CUSTGAR]
			  ,[TIPPROD]
			  ,[CODINT]
			  ,[CODPROD]
			  ,[SUBPROD]
			  ,[MAF]
			  ,[CODABI]
			  ,[PCTKEY]
			  ,[DESTIT]
			  ,[CTV]
			  ,[PARTVIA]
			  ,[PARTVIAAL]
			  ,[DTSOTTOS]
			  ,[RENDINIZ]
			  ,[RENDANNO]
			  ,[VALORE]
			  ,[SUBSET]
			  ,[CVN]
			  ,[SALRISC]
			  ,[ISIN])

	SELECT 
		   NULL AS [POSITIONID]
	      ,[DTTRIM]
		  ,[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CODMAN ='' THEN CODFIS
		ELSE 'FF@'+CODMAN
		    END AS CODFIS
		  ,[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,[TIPPROD]
		  ,[CODINT]
		  ,[CODPROD]
		  ,[SUBPROD]
		  ,[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN 
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6
--INNER JOIN
--			[C6Mart].[CONTRATTOSEI] AS C6
ON
			CS.RETE = C6.RETE AND
-- TRINGALI 19022010
	(case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))
	  WHERE [DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS LI RECUPERO DALLA WSEIUL
	  --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')
		--modifica Emanuele 20131112
		AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')
--INIZIO INTERVENTO MIGRAZIONE ASU3	
--INIZIO INTERVENTO 'RE' - 20161213	
		--AND CODINT NOT IN ('RS','RB','RV','RM')
		AND CODINT NOT IN ('RS','RB','RV','RM','RE')
--FINE INTERVENTO 'RE' - 20161213		
--FINE INTERVENTO MIGRAZIONE ASU3		

AND C6.UltimoAperto = 1

--trimestrale Aprile 2013
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'
		
UNION ALL


	

SELECT 
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'
			end as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')
AND C6.UltimoAperto = 1


--INIZIO INTERVENTO MIGRAZIONE ASU3			  
UNION ALL
	
SELECT 
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,'ASU1' AS TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE 
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
  		  ,UL.ISINFIT AS ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime) AS CS 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM 
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.CODINT = UL.CODINT
		AND CS.SUBPROD = UL.SUBPROD		
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] =@dtTrime
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
--INIZIO INTERVENTO 'RE' - 20161213	
		--AND UL.CODINT IN ('RS','RB','RV','RM')
		AND UL.CODINT IN ('RS','RB','RV','RM','RE')
--FINE INTERVENTO 'RE' - 20161213			
AND C6.UltimoAperto = 1
--FINE INTERVENTO MIGRAZIONE ASU3	


	 UNION ALL
	  --INSERIRE VAR5..15
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per
	  -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga
	  -- unica e devono essere classificati come ASU1
	  SELECT 
		DISTINCT
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  'ASU1' as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,'NA' as MAF--UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN
	  FROM (select * from [C6StagingPeriodico].[WSEICS] 
where [DTTRIM] = @dtTrime ) AS CS 
--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] = @dtTrime
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND	(
				CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI') 
				OR 
				(CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7')) 
				--OR
				--(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))
			)
AND C6.UltimoAperto = 1		   

--inizio intervento per Omnia linea Self

UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,sum(CTV) as CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,sum(VALORE) as VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	SELECT
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'
		else RUBR end as RUBR
		,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'
		else CUSTGAR end as custgar
		,'GP' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF --UL.MAF
		,CODABI
		,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'
		else PCTKEY end as pctkey
		,DESTIT
		,GP.CTV as CTV
--INIZIO LAST INTERVENTO OMNIA		
--		,PARTVIA
--		,PARTVIAAL
		,0.00 AS PARTVIA
		,0 AS PARTVIAAL
--FINE LAST INTERVENTO OMNIA		
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,GP.CTV AS VALORE
		,'' AS SUBSET --?
		,CVN
		,SALRISC
		,GP.ISIN
	FROM (select * from C6StagingPeriodico.WSEICS 
	WHERE DTTRIM = @dtTrime
	and   subprod in ('L191', 'L192')) AS CS
	join
	(SELECT
			Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
		FROM
			C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

		  JOIN C6STAGINGPERIODICO.WSEIGP AS GP
			ON	CS.CODCONF = GP.CODCONF
			AND	CS.DTTRIM = GP.DTTRIM
			AND CS.SUBPROD = GP.CODLINEA
		  WHERE CS.DTTRIM =@dtTrime
	AND C6.UltimoAperto = 1
--inizio esclusione isin a null emanuele
	and GP.ISIN is not null
--fine esclusione isin a null emanuele
	) a
	
GROUP BY
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,SUBSET
	,CVN
	,SALRISC
	,ISIN

--INIZIO LAST INTERVENTO OMNIA		
UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	SELECT distinct
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,RUBR
		,CUSTGAR
		,'GE' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF 
		,CODABI
		,PCTKEY
		,DESTIT
		,0.00 AS CTV
		,PARTVIA
		,PARTVIAAL
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,0.00 AS VALORE
		,'' AS SUBSET 
		,0.00 as CVN
		,SALRISC
		,'NA' as ISIN
	FROM (select * from C6StagingPeriodico.WSEICS 
	WHERE DTTRIM = @dtTrime
	and   subprod in ('L191', 'L192')
	and   partvia <> 0.00) AS CS 
	join
	(SELECT
			Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
		FROM
			C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6

			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
	AND C6.UltimoAperto = 1) a
--FINE LAST INTERVENTO OMNIA		
	
--fine intervento per Omnia linea Self


--inizio inserimento su testquality emanuele
--insert into c6martperiodico.test_quality
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null
--fine inserimento su testquality emanuele

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SPB_CONTR_SINTESI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SPB_CONTR_SINTESI'
		)
END






GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
--select count(*) from c6stagingperiodico.spb_contr_sintesi2
CREATE procedure [C6StagingPeriodico].[RP_ST_SPB_CONTR_SINTESI2]
AS
BEGIN
	 

	--TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI2]

	--INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI2]
	--		   ([POSITIONID]
	--		  ,[DTTRIM]
	--		  ,[DTRIFE]
	--		  ,[RETE]
	--		  ,[CODFIS]
	--		  ,[CODCONF]
	--		  ,[NUMPOL]
	--		  ,[CONTO]
	--		  ,[RUBR]
	--		  ,[CUSTGAR]
	--		  ,[TIPPROD]
	--		  ,[CODINT]
	--		  ,[CODPROD]
	--		  ,[SUBPROD]
	--		  ,[MAF]
	--		  ,[CODABI]
	--		  ,[PCTKEY]
	--		  ,[DESTIT]
	--		  ,[CTV]
	--		  ,[PARTVIA]
	--		  ,[PARTVIAAL]
	--		  ,[DTSOTTOS]
	--		  ,[RENDINIZ]
	--		  ,[RENDANNO]
	--		  ,[VALORE]
	--		  ,[SUBSET]
	--		  ,[CVN]
	--		  ,[SALRISC]
	--		  ,[ISIN])

	SELECT 
		   NULL AS [POSITIONID]
	      ,[DTTRIM]
		  ,[DTRIFE]
          ,[CS].[RETE]
		  ,C6.cod_fiscale AS CODFIS
		  ,[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000' else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0' else CUSTGAR end as custgar
		  ,[TIPPROD]
		  ,[CODINT]
		  ,[CODPROD]
		  ,[SUBPROD]
		  ,[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0' else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN 
    INTO #CS_MENO_K_L191
	FROM C6StagingPeriodico.WSEICS CS
	JOIN C6StagingPeriodico.appo_contratti C6
	ON (case when cs.codman <> '' then 'FF@'+ cs.codman else cs.codfis end) = C6.COd_fiscale
	AND CS.RETE = C6.RETE  
	AND CS.SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191')
	AND CS.DTTRIM = c6martperiodico.gettrimestre2(getdate(),0)


	SELECT
		  NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
          ,[CS].[RETE]
		  ,C6.cod_fiscale AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000' else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0' else CUSTGAR end as custgar
		  ,CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2' end as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0' else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE 
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN
	  INTO #UL_1
	  FROM C6StagingPeriodico.WSEICS CS 
	  join C6StagingPeriodico.appo_contratti C6
  		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
		AND CS.[DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)
	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE   
	      CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')

	 
	  SELECT 
		DISTINCT
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
          ,[CS].[RETE]
		  ,C6.COd_fiscale AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000' else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0' else CUSTGAR end as custgar
		  ,'ASU1' as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,'NA' as MAF
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0' else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN
	  INTO #UL_2	  
	  FROM C6StagingPeriodico.WSEICS CS 
	  join C6StagingPeriodico.appo_contratti C6
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
		AND CS.DTTRIM = c6martperiodico.gettrimestre2(getdate(),0)
	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE 
          (
			CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI') 
			OR 
			(CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7')) 
		   )
  






	   

--inizio intervento per Omnia linea Self

UNION ALL

SELECT
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,sum(CTV) as CTV
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,sum(VALORE) as VALORE
	,SUBSET
	,CVN
	,SALRISC
	,ISIN
FROM
	(
	
	
	
	
	
	SELECT
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,CASE WHEN CS.CODMAN ='' THEN CS.CODFIS ELSE 'FF@'+CS.CODMAN END AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,case when (GP.ISIN = 'EURO00000009' and rubr =' ') then '000' else RUBR end as RUBR
		,case when (GP.ISIN = 'EURO00000009' and rubr =' ') then '0' else CUSTGAR end as custgar
		,'GP' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF  
		,CODABI
		,case when (GP.ISIN = 'EURO00000009' and rubr =' ') then '0' else PCTKEY end as pctkey
		,DESTIT
		,GP.CTV as CTV
		,0.00 AS PARTVIA
		,0 AS PARTVIAAL
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,GP.CTV AS VALORE
		,'' AS SUBSET  
		,CVN
		,SALRISC
		,GP.ISIN
	FROM C6StagingPeriodico.WSEICS CS
	join C6StagingPeriodico.appo_contratto C6
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
        and cs.DTTRIM = c6martperiodico.gettrimestre2(getdate(),0)
		and   cs.subprod = 'L191'
	JOIN C6STAGINGPERIODICO.WSEIGP GP
		ON	CS.CODCONF = GP.CODCONF
		AND	CS.DTTRIM = GP.DTTRIM
 		and GP.ISIN is not null
 




	) a
	
GROUP BY
	POSITIONID
	,DTTRIM
	,DTRIFE
	,RETE
	,CODFIS
	,CODCONF
	,NUMPOL
	,CONTO
	,RUBR
	,custgar
	,TIPPROD
	,CODINT
	,CODPROD
	,SUBPROD
	,MAF
	,CODABI
	,pctkey
	,DESTIT
	,PARTVIA
	,PARTVIAAL
	,DTSOTTOS
	,RENDINIZ
	,RENDANNO
	,SUBSET
	,CVN
	,SALRISC
	,ISIN


  
	
	
	SELECT DISTINCT 
		NULL AS POSITIONID
		,CS.DTTRIM
		,CS.DTRIFE
		,CS.RETE
		,C6.COD_FISCALE AS CODFIS
		,CS.CODCONF
		,NUMPOL
		,CONTO
		,RUBR
		,CUSTGAR
		,'GE' as TIPPROD
		,CODINT
		,CODPROD
		,SUBPROD
		,'NA' as MAF 
		,CODABI
		,PCTKEY
		,DESTIT
		,0.00 AS CTV
		,PARTVIA
		,PARTVIAAL
		,DTSOTTOS
		,RENDINIZ
		,RENDANNO
		,0.00 AS VALORE
		,'' AS SUBSET 
		,0.00 as CVN
		,SALRISC
		,'NA' as ISIN
	INTO #L191
	FROM  C6StagingPeriodico.WSEICS CS 
	join  C6StagingPeriodico.appo_contratti C6
			ON CS.RETE = C6.RETE 
			AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
			AND CS.DTTRIM = c6martperiodico.gettrimestre2(getdate(),0)
			and CS.subprod = 'L191'
			and CS.partvia <> 0.00
			
 		
	
 


 
END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_TB_ESG_ANAG_STRUM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








CREATE procedure [C6StagingPeriodico].[RP_ST_TB_ESG_ANAG_STRUM]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_TB_ESG_ANAG_STRUM',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_TB_ESG_ANAG_STRUM

INSERT INTO [C6StagingPeriodico].[RP_TB_ESG_ANAG_STRUM]
           ( [ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
      ,[TrendESGRating_val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
      ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
	  ,[PAI_LAB_A_Settore_Immobiliare]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE])
   	select  [ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
      ,[TrendESGRating_val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
      ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_A_Settore_Immobiliare]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE]
	from [CONSUNI].CatalogoProdotti.dbo.TB_ESG_ANAG_STRUM
	--from [COLL].CatalogoProdotti.dbo.TB_ESG_ANAG_STRUM


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_TB_ESG_ANAG_STRUM' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_TB_ESG_ANAG_STRUM'
		)
	
end












GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_TB_ESG_ANAG_STRUM_bkp_Pre_ESG4]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodico].[RP_ST_TB_ESG_ANAG_STRUM_bkp_Pre_ESG4]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_TB_ESG_ANAG_STRUM',
		GETDATE(),
		'Elaborazione Trimestrale'
	)
--drop table C6StagingPeriodico.RP_CatalogoProdotti
	truncate table C6StagingPeriodico.RP_TB_ESG_ANAG_STRUM

INSERT INTO [C6StagingPeriodico].[RP_TB_ESG_ANAG_STRUM]
           ( [ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
      ,[TrendESGRating_val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
      ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE])
   	select  [ChiaveProdotto]
      ,[CodSottoprodotto]
      ,[CodInterno]
      ,[CodMaf]
      ,[CodAdeguatezza]
      ,[CodIsin]
      ,[ESG_E]
      ,[ESG_S]
      ,[ESG_G]
      ,[CatSFDR]
      ,[ESGRating]
      ,[TrendESGRating]
      ,[TrendESGRating_val]
      ,[dtInserimento]
      ,[dtAggiornamento]
      ,[UserIns]
      ,[CLIENT_ID]
      ,[C_TIPO_STRUMENTO]
      ,[LABEL_Green_Bond]
      ,[LABEL_Social_Bond]
      ,[LABEL_Sustainability_Bond]
      ,[LABEL_Transition_Bond]
      ,[LABEL_Sust_linked_bond]
      ,[LABEL_EU_GREEN_BOND_STANDARD]
      ,[SDG_06_NET_ALIGNMENT_SCORE]
      ,[SDG_07_NET_ALIGNMENT_SCORE]
      ,[SDG_12_NET_ALIGNMENT_SCORE]
      ,[SDG_13_NET_ALIGNMENT_SCORE]
      ,[SDG_14_NET_ALIGNMENT_SCORE]
      ,[SDG_15_NET_ALIGNMENT_SCORE]
      ,[SDG_01_NET_ALIGNMENT_SCORE]
      ,[SDG_02_NET_ALIGNMENT_SCORE]
      ,[SDG_03_NET_ALIGNMENT_SCORE]
      ,[SDG_04_NET_ALIGNMENT_SCORE]
      ,[SDG_05_NET_ALIGNMENT_SCORE]
      ,[SDG_08_NET_ALIGNMENT_SCORE]
      ,[SDG_09_NET_ALIGNMENT_SCORE]
      ,[SDG_10_NET_ALIGNMENT_SCORE]
      ,[SDG_11_NET_ALIGNMENT_SCORE]
      ,[SDG_16_NET_ALIGNMENT_SCORE]
      ,[SDG_17_NET_ALIGNMENT_SCORE]
      ,[PERC_INVESTIMENTO_TAXONOMY]
      ,[PERC_INVESTIMENTO_SFDR]
      ,[PERC_INVEST_OTHER_E_NO_TAX]
      ,[PERC_INVEST_SFDR_MIN_SUST_E]
      ,[PERC_INVEST_SFDR_MIN_SUST_S]
      ,[PAI_LAB_A_Emissioni_Gas_Serra]
      ,[PAI_LAB_A_Biodiversita]
      ,[PAI_LAB_A_Acqua]
      ,[PAI_LAB_A_Rifiuti]
      ,[PAI_LAB_A_Gov_Ambientale]
      ,[PAI_LAB_A_Comb_Fossili]
      ,[PAI_LAB_A_Eff_energetica]
      ,[PAI_LAB_S_Questioni_Soc_Dip]
      ,[PAI_LAB_S_Gov_Sociali]
      ,[U_INFO_ESG]
      ,[AGGREG_PAI_LAB_A]
      ,[AGGREG_PAI_LAB_S]
      ,[AGGREG_BOND]
      ,[REF_DATE]
	from [CONSUNI].CatalogoProdotti.dbo.TB_ESG_ANAG_STRUM


	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_TB_ESG_ANAG_STRUM' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = 'RP_ST_TB_ESG_ANAG_STRUM'
		)
	
end












GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_ST_vNewPositionProposta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_ST_vNewPositionProposta]
as
begin

truncate table [C6StagingPeriodico].[RP_vNewPositionProposta]

insert into [C6StagingPeriodico].[RP_vNewPositionProposta]

select 
	pro.chiaveClientePB,
	ope.nomeProgettoProp,
	ope.areaProp,
	pospro.chiaveProgetto,
	cat.codSottoprodotto,
	cat.codInterno,
	cat.codMaf,
	cat.codIsin,
	cat.tipoProdotto,
    null as positionIdProposta
from 
	C6StagingPeriodico.RP_Proposta pro,
	C6StagingPeriodico.RP_DettaglioOperazione ope, 
	C6StagingPeriodico.RP_PosizioniProposta pospro,
	C6StagingPeriodico.RP_catalogoprodotti cat
where 
	pro.chiaveproposta=ope.chiaveproposta
	and ope.chiaveposizionepro=pospro.chiaveposizionepro
	and pospro.chiaveprodotto=cat.chiaveprodotto
	and ope.chiaveposizioneptf=0--ISANEWPOSITION = 1
	and ope.posriallocata=0--RICONCILIATA = 0
	and pro.status in ('PE','ES')--STATO_PROPOSTA in ('InEsecuzione', 'ParzialmenteEseguita')

end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_UPDATE_APPO_CONTRATTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[RP_UPDATE_APPO_CONTRATTI]
AS

begin



-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_APPO_CONTRATTI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI_BACKUP
INSERT INTO C6StagingPERIODICO.APPO_CONTRATTI_BACKUP
SELECT *  FROM C6StagingPERIODICO.APPO_CONTRATTI
----TRUNCATE TABLE C6StagingPERIODICO.APPO_CONTRATTI
--UPDATE C6StagingPERIODICO.APPO_CONTRATTI
--SET codiceContratto = v.codiceContratto,
--TIP_CONTRATTO = 2
--FROM
--    C6StagingPERIODICO.APPO_CONTRATTI c
--    INNER JOIN 
--    [C6Mart].[vContratti] v
---- dbo.vcontrattiCong011013 v
--    ON c.chiaveclientepb = v.chiaveclientepb
--WHERE 
--    c.codiceContratto <> v.codiceContratto
--AND c.TIP_CONTRATTO <> v.TIP_CONTRATTO
--AND v.TIP_CONTRATTO = 2

declare @firstDayMonthPreTrimestrale datetime
declare @lastDayMonthPreTrimestralePiuUno datetime

set @firstDayMonthPreTrimestrale = c6martperiodico.getTrimestre(getDate(), 1)
set @lastDayMonthPreTrimestralePiuUno = dateadd(day,1,c6martperiodico.getTrimestre(getDate(), 0))

--set @firstDayMonthPreTrimestrale = '20131201'
--set @lastDayMonthPreTrimestralePiuUno = '20140101'

UPDATE  C6StagingPERIODICO.APPO_CONTRATTI  
SET codiceContratto = CNTPRI.C,
    TIP_CONTRATTO = 2
   ,freq_diagnosi = null
   ,data_iniziobase = CNTPRI.data_iniziobase
   ,data_finebase = CNTPRI.data_finebase	
   ,data_perf = CNTPRI.data_perf
   ,data_perf_base = CNTPRI.data_perf_base
   ,DATA_INZIOAVANZATO = CNTPRI.DATA_INZIOAVANZATO
   ,data_fineavanzato = CNTPRI.data_fineavanzato
FROM  
  (SELECT TT.CF,TT.R,TT.C, VC.TIP_CONTRATTO
   ,vc.data_iniziobase
   ,vc.data_finebase
   ,vc.data_perf
   ,vc.data_perf_base
   ,VC.DATA_INZIOAVANZATO
   ,vc.data_fineavanzato
   FROM C6MART.VCONTRATTI VC INNER JOIN 
  (SELECT   
    PDF1.CODICEFISCALE AS CF,
    PDF1.RETE AS R,
    SUBSTRING(PDF1.NOMEFILE,0,12) AS C,
    PDF1.DATAGENERAZIONE AS D
    FROM c6mart.gestione_PDF_ftp PDF1 INNER JOIN   
   (SELECT 
    CODICEFISCALE,
    RETE,
    MAX(DATAGENERAZIONE) AS DATAGENERAZIONE 
     FROM c6mart.gestione_PDF_ftp  
     WHERE  1=1 AND DATAGENERAZIONE >= @firstDayMonthPreTrimestrale  and  DATAGENERAZIONE < @lastDayMonthPreTrimestralePiuUno
     GROUP BY CODICEFISCALE,RETE) PDF2
   ON PDF1.CODICEFISCALE=PDF2.CODICEFISCALE 
   AND PDF1.RETE=PDF2.RETE 
   AND PDF1.DATAGENERAZIONE=PDF2.DATAGENERAZIONE    
   WHERE 1=1     
      ) TT 
   ON TT.CF = VC.COD_FISCALE AND TT.R = VC.RETE
   WHERE TIP_CONTRATTO = 2  
  ) CNTPRI 
  inner join C6StagingPERIODICO.APPO_CONTRATTI t
   on t.cod_fiscale = CNTPRI.CF AND t.Rete = CNTPRI.R
  where t.tip_contratto <> CNTPRI.tip_contratto and CNTPRI.tip_contratto = 2
  
  
  
UPDATE C6StagingPERIODICO.APPO_CONTRATTI
set  
	 indirizzo	       = a.indirizzo
	,cap		       = a.cap	
	,citta		       = a.citta
	,provincia	       = a.Provincia
	,nazione	       = a.Nazione
	,presso		       = a.Presso
	,Cod_Agente        = a.Cod_Agente
	,Freq_Diagnosi	   = a.Freq_Diagnosi
    ,FREQ_MONITORAGGIO = a.FREQ_MONITORAGGIO
    ,data_fineavanzato = a.data_fineavanzato
from c6mart.vcontratti a
inner join C6StagingPERIODICO.APPO_CONTRATTI b
on a.codicecontratto = b.codicecontratto

--aggiornamento 28/11/2022

update C6StagingPeriodico.APPO_CONTRATTI
set COD_MANDATO=''
where COD_MANDATO is null


update C6StagingPeriodico.APPO_CONTRATTI
set PIVA_FIDUCIARIA=''
where PIVA_FIDUCIARIA is null

--fine aggiornamento 28/11/2022
  
     
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_APPO_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_ST_APPO_CONTRATTI'
		)



end

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_UPDATE_COMPLESSITA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
CREATE procedure [C6StagingPeriodico].[RP_UPDATE_COMPLESSITA]  
  
as  
begin   
/********************FOGLIO 1 UNIT LINKED************************************************************/  
--begin transaction  
  
UPDATE C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
SET COMPLESSITA=1  
--UPDATE  c6martperiodico.patrimonio_bf  
--SET COMPLEX = 1  
WHERE  
--COD_INTERNO IN  
CodInterno IN  
(  
'18',  
'19',  
'29',  
'35',  
'37',  
'38',  
'48',  
'49',  
'60',  
'BT',  
'ES',  
'FR',  
'FS',  
'FT',  
'FU',  
--'GP',  
'KP',  
'OA',  
'PO',  
'PY',  
'SB',  
--'PR',  
--'PX',  
'SE',  
'SF',  
--'SI',  
'ST',  
'SU',  
'K1',  
'K2',  
'K3',  
'K4',  
'K5',  
'K6',  
'K7')  
  
  
/**************************FOGLIO 1 UNIT LINKED*******************INSERITA LA CONDIZIONE PER I SOTTOPRODOTTI DA ESCLUDERE ********************************/  
SELECT * FROM C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
UPDATE C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
SET COMPLESSITA=2  
--UPDATE  c6martperiodico.patrimonio_bf  
--SET COMPLEX=2  
WHERE  
--COD_INTERNO IN  
CodInterno IN  
(  
'S1',  
'S2',  
'S3',  
'S4',  
'S5',  
'S6',  
'S7',  
'S8'  
)  
and   
--cod_sottoprodotto not in   
CodSottoprodotto not in   
('20001','20002','20005','20008')  
  
  
  
update C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
set complessita = 1  
--UPDATE c6martperiodico.patrimonio_bf  
--set complex = 1  
where   
--cod_interno in   
CodInterno in   
('S1','S2','S4','S5','S8')  
--and cod_sottoprodotto in   
and CodSottoprodotto in   
('20001','20002','20005','20008')  
  
  
/******************************FOGLIO 1 UNIT LINKED**********************************************************/  
UPDATE C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
--UPDATE c6martperiodico.patrimonio_bf  
--SET COMPLEX=1  
SET COMPLESSITA = 1  
WHERE  
--COD_INTERNO IN   
CodInterno IN   
(  
'A7',  
'A8')  
  
/**************************************FOGLIO 2 FONDI*************************************************/  
  
UPDATE C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
--UPDATE c6martperiodico.patrimonio_bf  
--SET COMPLEX=1  
SET COMPLESSITA = 1  
WHERE  
CodSottoprodotto IN   
(  
 '7149S'  
,'7145S'  
,'9968S'  
)  
  
  
/************************************FOGLIO 2 FONDI****************************************************/  
  
  
UPDATE C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
--UPDATE c6martperiodico.patrimonio_bf  
--SET COMPLEX=1  
SET COMPLESSITA = 1  
WHERE  
--COD_SOTTOPRODOTTO = '7146S'  
CodSottoprodotto = '7146S'  
  
  
/***********************************FOGLIO 3 CERTIFICATES************GIOVANNI HA DETTO CHE VANNO UPDATATI A 1 *****************************************/  
  
UPDATE C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI  
--UPDATE c6martperiodico.patrimonio_bf  
--SET COMPLEX=1  
SET COMPLESSITA = 1  
WHERE   
--COD_ISIN IN  
CodIsin IN  
(  
 'DE000A0LJ552'  
,'DE000A0MG8R0'  
,'IT0004189368'  
,'GB00B1WVWP64'  
,'GB00B1Y3ZZ16'  
,'XS0354254111'  
,'GB00B2QM7Y61'  
,'XS0235278982'  
,'XS0179585186'  
)  
AND  
CodInterno IN  
(  
 '00101740'  
,'09139480'  
,'09161420'  
,'00830060'  
,'09205930'  
,'00168130'  
,'08525040'  
,'08556110'  
,'09201230'  
)  
  
  
  
  
  
  
--update c6martperiodico.patrimonio_bf   
--set complex = 1  
--  
--where cod_prodotto in(  
--  
--  
--  
--select cod_prodotto  
--from   
--c6martperiodico.anag_prodotti b  
--where cod_isin in (  
-- 'DE000A0LJ552'  
--,'DE000A0MG8R0'  
--,'IT0004189368'  
--,'GB00B1WVWP64'  
--,'GB00B1Y3ZZ16'  
--,'XS0354254111'  
--,'GB00B2QM7Y61'  
--,'XS0235278982'  
--,'XS0179585186'  
--)  
--AND  
--COD_INTERNO IN  
--(  
-- '00101740'  
--,'09139480'  
--,'09161420'  
--,'00830060'  
--,'09205930'  
--,'00168130'  
--,'08525040'  
--,'08556110'  
--,'09201230'  
--))  
--  
--commit  
end  
  
  
--exec c6martperiodico.dm_complessita  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_UPDATE_COMPLESSITA_20161213]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [C6StagingPeriodico].[RP_UPDATE_COMPLESSITA_20161213]

as
begin 
/********************FOGLIO 1 UNIT LINKED************************************************************/
--begin transaction

UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
SET COMPLESSITA=1
--UPDATE  c6martperiodico.patrimonio_bf
--SET COMPLEX = 1
WHERE
--COD_INTERNO IN
CodInterno IN
(
'18',
'19',
'29',
'35',
'37',
'38',
'48',
'49',
'60',
'BT',
'ES',
'FR',
'FS',
'FT',
'FU',
--'GP',
'KP',
'OA',
'PO',
'PY',
'SB',
--'PR',
--'PX',
'SE',
'SF',
--'SI',
'ST',
'SU',
'K1',
'K2',
'K3',
'K4',
'K5',
'K6',
'K7')


/**************************FOGLIO 1 UNIT LINKED*******************INSERITA LA CONDIZIONE PER I SOTTOPRODOTTI DA ESCLUDERE ********************************/
SELECT * FROM [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
SET COMPLESSITA=2
--UPDATE  c6martperiodico.patrimonio_bf
--SET COMPLEX=2
WHERE
--COD_INTERNO IN
CodInterno IN
(
'S1',
'S2',
'S3',
'S4',
'S5',
'S6',
'S7',
'S8'
)
and 
--cod_sottoprodotto not in 
CodSottoprodotto not in 
('20001','20002','20005','20008')



update C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
set complessita = 1
--UPDATE c6martperiodico.patrimonio_bf
--set complex = 1
where 
--cod_interno in 
CodInterno in 
('S1','S2','S4','S5','S8')
--and cod_sottoprodotto in 
and CodSottoprodotto in 
('20001','20002','20005','20008')


/******************************FOGLIO 1 UNIT LINKED**********************************************************/
UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE
--COD_INTERNO IN 
CodInterno IN 
(
'A7',
'A8')

/**************************************FOGLIO 2 FONDI*************************************************/

UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE
CodSottoprodotto IN 
(
 '7149S'
,'7145S'
,'9968S'
)


/************************************FOGLIO 2 FONDI****************************************************/


UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE
--COD_SOTTOPRODOTTO = '7146S'
CodSottoprodotto = '7146S'


/***********************************FOGLIO 3 CERTIFICATES************GIOVANNI HA DETTO CHE VANNO UPDATATI A 1 *****************************************/

UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE 
--COD_ISIN IN
CodIsin IN
(
 'DE000A0LJ552'
,'DE000A0MG8R0'
,'IT0004189368'
,'GB00B1WVWP64'
,'GB00B1Y3ZZ16'
,'XS0354254111'
,'GB00B2QM7Y61'
,'XS0235278982'
,'XS0179585186'
)
AND
CodInterno IN
(
 '00101740'
,'09139480'
,'09161420'
,'00830060'
,'09205930'
,'00168130'
,'08525040'
,'08556110'
,'09201230'
)






--update c6martperiodico.patrimonio_bf 
--set complex = 1
--
--where cod_prodotto in(
--
--
--
--select cod_prodotto
--from 
--c6martperiodico.anag_prodotti b
--where cod_isin in (
-- 'DE000A0LJ552'
--,'DE000A0MG8R0'
--,'IT0004189368'
--,'GB00B1WVWP64'
--,'GB00B1Y3ZZ16'
--,'XS0354254111'
--,'GB00B2QM7Y61'
--,'XS0235278982'
--,'XS0179585186'
--)
--AND
--COD_INTERNO IN
--(
-- '00101740'
--,'09139480'
--,'09161420'
--,'00830060'
--,'09205930'
--,'00168130'
--,'08525040'
--,'08556110'
--,'09201230'
--))
--
--commit
end


--exec c6martperiodico.dm_complessita

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_UPDATE_COMPLESSITA_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[RP_UPDATE_COMPLESSITA_pre_selective]

as
begin 
/********************FOGLIO 1 UNIT LINKED************************************************************/
--begin transaction

UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
SET COMPLESSITA=1
--UPDATE  c6martperiodico.patrimonio_bf
--SET COMPLEX = 1
WHERE
--COD_INTERNO IN
CodInterno IN
(
'18',
'19',
'29',
'35',
'37',
'38',
'48',
'49',
'60',
'BT',
'ES',
'FR',
'FS',
'FT',
'FU',
--'GP',
'KP',
'OA',
'PO',
'PY',
'SB',
--'PR',
--'PX',
'SE',
'SF',
--'SI',
'ST',
'SU',
'K1',
'K2',
'K3',
'K4',
'K5',
'K6',
'K7')


/**************************FOGLIO 1 UNIT LINKED*******************INSERITA LA CONDIZIONE PER I SOTTOPRODOTTI DA ESCLUDERE ********************************/
SELECT * FROM [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
SET COMPLESSITA=2
--UPDATE  c6martperiodico.patrimonio_bf
--SET COMPLEX=2
WHERE
--COD_INTERNO IN
CodInterno IN
(
'S1',
'S2',
'S3',
'S4',
'S5',
'S6',
'S7',
'S8'
)
and 
--cod_sottoprodotto not in 
CodSottoprodotto not in 
('20001','20002','20005','20008')



update C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
set complessita = 1
--UPDATE c6martperiodico.patrimonio_bf
--set complex = 1
where 
--cod_interno in 
CodInterno in 
('S1','S2','S4','S5','S8')
--and cod_sottoprodotto in 
and CodSottoprodotto in 
('20001','20002','20005','20008')


/******************************FOGLIO 1 UNIT LINKED**********************************************************/
UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE
--COD_INTERNO IN 
CodInterno IN 
(
'A7',
'A8')

/**************************************FOGLIO 2 FONDI*************************************************/

UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE
CodSottoprodotto IN 
(
 '7149S'
,'7145S'
,'9968S'
)


/************************************FOGLIO 2 FONDI****************************************************/


UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE
--COD_SOTTOPRODOTTO = '7146S'
CodSottoprodotto = '7146S'


/***********************************FOGLIO 3 CERTIFICATES************GIOVANNI HA DETTO CHE VANNO UPDATATI A 1 *****************************************/

UPDATE [C6StampeCentralizzate].C6STAGINGPERIODICO.RP_CATALOGOPRODOTTI
--UPDATE c6martperiodico.patrimonio_bf
--SET COMPLEX=1
SET COMPLESSITA = 1
WHERE 
--COD_ISIN IN
CodIsin IN
(
 'DE000A0LJ552'
,'DE000A0MG8R0'
,'IT0004189368'
,'GB00B1WVWP64'
,'GB00B1Y3ZZ16'
,'XS0354254111'
,'GB00B2QM7Y61'
,'XS0235278982'
,'XS0179585186'
)
AND
CodInterno IN
(
 '00101740'
,'09139480'
,'09161420'
,'00830060'
,'09205930'
,'00168130'
,'08525040'
,'08556110'
,'09201230'
)






--update c6martperiodico.patrimonio_bf 
--set complex = 1
--
--where cod_prodotto in(
--
--
--
--select cod_prodotto
--from 
--c6martperiodico.anag_prodotti b
--where cod_isin in (
-- 'DE000A0LJ552'
--,'DE000A0MG8R0'
--,'IT0004189368'
--,'GB00B1WVWP64'
--,'GB00B1Y3ZZ16'
--,'XS0354254111'
--,'GB00B2QM7Y61'
--,'XS0235278982'
--,'XS0179585186'
--)
--AND
--COD_INTERNO IN
--(
-- '00101740'
--,'09139480'
--,'09161420'
--,'00830060'
--,'09205930'
--,'00168130'
--,'08525040'
--,'08556110'
--,'09201230'
--))
--
--commit
end


--exec c6martperiodico.dm_complessita
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_UPDATE_RP_CATALOGOPRODOTTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_UPDATE_RP_CATALOGOPRODOTTI] as  
begin  
  
  
  
 update c6stagingperiodico.RP_CATALOGOPRODOTTI  
 set   
  tip_Emittente = B.tipoemittente,  
  tip_Tasso = B.tipoTasso  
 from  
  c6stagingperiodico.RP_CATALOGOPRODOTTI A  
 join  
  c6stagingperiodico.decodEmittente B  
 ON  
  A.CODISIN = B.ISIN  
  
END  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_UPDATE_RP_CATALOGOPRODOTTI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[RP_UPDATE_RP_CATALOGOPRODOTTI_pre_selective] as
begin



	update c6stagingperiodico.RP_CATALOGOPRODOTTI
	set 
		tip_Emittente = B.tipoemittente,
		tip_Tasso = B.tipoTasso
	from
		c6stagingperiodico.RP_CATALOGOPRODOTTI A
	join
		c6stagingperiodico.decodEmittente B
	ON
		A.CODISIN = B.ISIN

END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[RP_W6LogBatch]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [C6StagingPeriodico].[RP_W6LogBatch]
    @BatchName NVARCHAR(100)
AS
BEGIN
    DECLARE @BatchID INT;

    -- Trova l'ultimo batch in esecuzione con lo stesso nome
    SELECT TOP 1 @BatchID = BatchID
    FROM C6StagingPeriodico.W6LogBatch
    WHERE BatchName = @BatchName AND EndDate IS NULL
    ORDER BY BatchID DESC;

    IF @BatchID IS NOT NULL
    BEGIN
        -- È la fine del batch
        -- Aggiorna la data di fine, lo status e calcola il delta in minuti
        UPDATE C6StagingPeriodico.W6LogBatch
        SET EndDate = GETDATE(),
            Status = 'OK',
            DeltaMinutes = DATEDIFF(MINUTE, StartDate, GETDATE())
        WHERE BatchID = @BatchID;
        
        -- Output o messaggio di conferma per la fine del batch
        SELECT 'Log entry updated for BatchID ' + CAST(@BatchID AS NVARCHAR(20)) + '.' +
               ' Batch "' + @BatchName + '" ended.';
    END
    ELSE
    BEGIN
        -- È l'inizio del batch
        -- Inserisci i dati relativi al log nella tabella C6StagingPeriodico.W6LogBatch
        INSERT INTO C6StagingPeriodico.W6LogBatch (BatchName, Status, StartDate)
        VALUES (@BatchName, 'In esecuzione', GETDATE());

        -- Ottieni l'ID del batch appena inserito
        SET @BatchID = SCOPE_IDENTITY();
        
        -- Output o messaggio di conferma per l'inizio del batch
        SELECT 'Log entry added for BatchID ' + CAST(@BatchID AS NVARCHAR(20)) + '.' +
               ' Batch "' + @BatchName + '" started.';
    END
END;
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[sp_quadratura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [C6StagingPeriodico].[sp_quadratura]
	-- Add the parameters for the stored procedure here
AS
BEGIN
DROP TABLE if exists #excel
DROP TABLE if exists #txt
drop table if exists #differenze
drop table if exists [C6MartPeriodico].[anag_prelievi_excel_txt_differenze]

SELECT substring(cf,17,1)+ltrim(rtrim(substring(cf,1,16)))+substring(cf,18,4)+substring(cf,23,2)+substring(cf,26,2) as cf
into #txt
  FROM [C6MartPeriodico].[anag_prelievi_txt]

  select rete+ltrim(rtrim(codfis))+dtavmon as cf2 
into #excel 
from [C6MartPeriodico].[anag_prelievi_excel]



select * 
into #differenze
from(
select cf from #txt
except
select cf2 from #excel
) t





select cf as CodiceFiscale
into [C6MartPeriodico].[anag_prelievi_excel_txt_differenze]
from #differenze
where cf not like '%00000000000%'

select * from [C6MartPeriodico].[anag_prelievi_excel_txt_differenze]

END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_CREA_QUERY_STORICO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 marzo 2009
-- Description:	SP FAKE per popolare le tabelle host del SIMPB in modo da avere qualche dato in più
--				quando si eseguono le SP del Presentation Layer
-- =============================================
CREATE procedure [C6StagingPeriodico].[SRV_CREA_QUERY_STORICO]
AS
BEGIN

	DECLARE @SCHEMA AS VARCHAR(50)
	DECLARE @SCHEMASTORICO AS VARCHAR(50)
	DECLARE @TABLE AS VARCHAR(50)
	DECLARE @CAMPI VARCHAR(MAX)
	DECLARE @CONDITION AS VARCHAR(50)

	SET @SCHEMA = 'C6StagingPeriodico'
	SET @SCHEMASTORICO = 'C6StoricoPeriodico'

	DECLARE tabelle CURSOR FOR

	SELECT UPPER(TABLE_NAME)
	FROM INFORMATION_SCHEMA.TABLES
	WHERE TABLE_TYPE = 'BASE TABLE'
		AND TABLE_SCHEMA = @SCHEMA 
	ORDER BY TABLE_SCHEMA, TABLE_NAME

	OPEN tabelle

	FETCH NEXT FROM tabelle
	INTO @TABLE

	WHILE @@FETCH_STATUS = 0
	BEGIN

		SET @CAMPI = ''
		SELECT @CAMPI = @CAMPI + ', ' + COLUMN_NAME 
		FROM INFORMATION_SCHEMA.COLUMNS
		WHERE TABLE_NAME = @TABLE
			AND TABLE_SCHEMA = @SCHEMA 

		SET @CAMPI = RIGHT(@CAMPI, LEN(@CAMPI) -2 ) 
		SET @CONDITION = ' WHERE ID_ELAB = @ID_ELAB'

		IF CHARINDEX('ID_ELAB', @CAMPI) = 0 -- CAMPO ID_ELAB NON PRESENTE
		BEGIN 
			SET @CAMPI = @CAMPI + ', @ID_ELAB'
			SET @CONDITION = ''
		END

		PRINT	'	--XXXXXXXXXXXXXXXXXXXXXXXX ' + @TABLE + ' XXXXXXXXXXXXXXXXXXXXXXXX--'
		PRINT	'	IF(@NomeTabella IS NULL OR @NomeTabella = ''' + @TABLE + ''')'
		PRINT	'	BEGIN'
		PRINT	'		DELETE FROM ' + @SCHEMASTORICO + '.ST_' + @TABLE + ' WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB'
		PRINT	'		INSERT INTO ' + @SCHEMASTORICO + '.ST_' + @TABLE 
		PRINT	'		(' + REPLACE(@CAMPI,'@','') + ')'
		PRINT	'		SELECT '
		PRINT	'		 ' + @CAMPI
		PRINT	'		FROM ' + @SCHEMA + '.' + @TABLE + @CONDITION
		PRINT	'	END'
		PRINT	''

		FETCH NEXT FROM tabelle
		INTO @TABLE

	END

	CLOSE tabelle
	DEALLOCATE tabelle

END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_PopolaTabelleSIMPB_TEMP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  Paolo Giovanetti  
-- Create date: 17 marzo 2009  
-- Description: SP FAKE per popolare le tabelle host del SIMPB in modo da avere qualche dato in più  
--    quando si eseguono le SP del Presentation Layer  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[SRV_PopolaTabelleSIMPB_TEMP]  
AS  
BEGIN  
  
 -- [C6StagingPeriodico].[WSEIAN] --  
 TRUNCATE TABLE [C6StagingPeriodico].[WSEIAN2]  
 INSERT INTO [C6StagingPeriodico].[WSEIAN2]  
           ([DTTRIM]  
           ,[RETE]  
           ,[CODFIS]  
           ,[NOME]  
           ,[COGNOME]  
           ,[DTNASCI]  
           ,[INDIRIZZO]  
           ,[CAP]  
           ,[CITTA]  
           ,[PROVINCIA]  
           ,[NAZIONE]  
           ,[CODPROF])  
 SELECT   
   CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )  
  ,CL.[CODICERETE]  
  ,CL.[CODICEFISCALE]  
  ,CL.[NOME]  
  ,CL.[COGNOME]  
  ,CAST ( CONVERT( VARCHAR, CL.[DATADINASCITA], 112) AS DECIMAL(9,0) ) AS [DATADINASCITA]  
  ,IND.[INDIRIZZO]  
  ,IND.[CAP]  
  ,IND.[CITTA]  
  ,IND.[PROVINCIA]  
  ,IND.[NAZIONE]  
  ,NULL AS [CODICEPROFILOASSEGNATO]  
 FROM   
  [C6Staging].[SPB_CLIENTI] AS CL  
 INNER JOIN   
  [C6Staging].[SPB_INDIRIZZI] AS IND  
  ON   
   CL.CODICERETE = IND.RETE   
   AND CL.CODICEFISCALE = IND.CODICEFISCALE  
  
  
 -- [C6StagingPeriodico].[WSEICS] --  
 TRUNCATE TABLE [C6StagingPeriodico].[WSEICS]  
 INSERT INTO [C6StagingPeriodico].[WSEICS]  
           ([DTTRIM]  
           ,[DTRIFE]  
           ,[RETE]  
           ,[CODFIS]  
           ,[CODCONF]  
           ,[NUMPOL]  
           ,[CONTO]  
           ,[RUBR]  
           ,[CUSTGAR]  
           ,[TIPPROD]  
           ,[CODINT]  
           ,[CODPROD]  
           ,[SUBPROD]  
           ,[MAF]  
           ,[CODABI]  
           ,[PCTKEY]  
           ,[DESTIT]  
           ,[CTV]  
           ,[PARTVIA]  
           ,[PARTVIAAL]  
           ,[DTSOTTOS]  
           ,[RENDINIZ]  
           ,[RENDANNO]  
           ,[VALORE]  
           ,[SUBSET]  
           ,[CVN])  
 SELECT   
   CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )  
  ,CAST ( CONVERT( VARCHAR, [DATADIRIFERIMENTO], 112) AS DECIMAL(9,0) ) AS [DATASALDO]  
  ,[RETE]  
  ,[CODICEFISCALE]  
  ,[CODICECONTRATTO]  
  ,[NUMEROPOLIZZA]  
  ,[CONTO]  
  ,[RUBRICATO]  
  ,[CUSTODIAGARANZIA]  
  ,[TIPOPRODOTTO]  
  ,[CODICEINTERNO]  
  ,NULL AS [CODICEPRODOTTO]  
  ,[CODICESOTTOPRODOTTO]  
  ,[CODICEMAF]  
  ,'CODABI' AS [CODABI]  
  ,[PCTKEY]  
  ,[PCTDESCRIZIONTETITOLOCOLLEGATO]  
  ,[CTV]  
  ,[PARTVIA]  
  ,CAST ( CONVERT( VARCHAR, [PARTVIAAL], 112) AS DECIMAL(9,0) ) AS [PARTVIAAL]  
  ,CAST ( CONVERT( VARCHAR, [DATAINIZIORENDIMENTO], 112) AS DECIMAL(9,0) ) AS [DATAINIZIORENDIMENTO]  
  ,[RENDIMENTODASOTTOSCRIZIONE]  
  ,[RENDIMENTODAINIZIOANNO]  
  ,[VALORE]  
     ,NULL AS [SUBSET]  
  ,[CVN]  
 FROM   
  [C6Staging].[SPB_CONTR_SINTESI] CS  
  
  
 -- [C6StagingPeriodico].[WSEIPV] --  
 TRUNCATE TABLE [C6StagingPeriodico].[WSEIPV]  
 INSERT INTO [C6StagingPeriodico].[WSEIPV]  
           ([DTTRIM]  
           ,[RETE]  
           ,[CODFIS]  
           ,[CODCONF]  
           ,[IMPVER]  
           ,[DTRIFE]  
           ,[SUBSET])  
 SELECT   
  CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )  
  ,C6.[RETE]  
  ,C6.[COD_FISCALE]  
  ,C6.[CODICECONTRATTO]  
  ,[IMPORTOVERSATO]  
  ,CAST ( CONVERT( VARCHAR, [DATAACQUISIZIONE], 112) AS DECIMAL(9,0) ) AS [DATAACQUISIZIONE]  
  ,LEFT([NOTA],10)  
 FROM   
  [C6Staging].[SPB_PARTITE_VIAGG] PV  
 INNER JOIN C6Mart.CONTRATTOSEI C6  
  ON   
   C6.RETE = PV.RETE  
   AND C6.COD_FISCALE = PV.CODICEFISCALE  
       
 -- [C6StagingPeriodico].[WSEIUL] --  
 TRUNCATE TABLE [C6StagingPeriodico].[WSEIUL]  
 INSERT INTO [C6StagingPeriodico].[WSEIUL]  
           ([DTTRIM]  
           ,[RETE]  
           ,[CODFIS]  
           ,[CODCONF]  
           ,[CODINT]  
           ,[SUBPROD]  
           ,[CTV]  
           ,[DTRIFE]  
           ,[ISINFIT]  
           ,[ISIN]  
           ,[MAF]  
           ,[SUBSET])  
 SELECT  
   CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )  
  ,C6.[RETE]  
  ,C6.[COD_FISCALE]  
  ,C6.[CODICECONTRATTO]  
  ,AU.[CODICEINTERNO]  
  ,AU.[CODICESOTTOPRODOTTO]  
  ,AU.[CONTROVALORE]  
  ,CAST ( CONVERT( VARCHAR,  AU.[DATADIRIFERIMENTO], 112) AS DECIMAL(9,0) ) AS [DATASALDO]  
  ,AU.[ISINFITTIZIO]  
  ,AU.[CODICEISINSOTTOSTANTE]  
  ,AU.[CODICEMAFSOTTOSTANTE]  
  ,NULL AS [SUBSET]  
 FROM   
  [C6Staging].[SPB_ASS_UNIT] AS AU  
 INNER JOIN C6Mart.CONTRATTOSEI C6  
  ON   
   C6.CODICECONTRATTO = AU.CODICECONTRATTO  
  
  
END  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_PopolaTabelleSIMPB_TEMP_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 17 marzo 2009
-- Description:	SP FAKE per popolare le tabelle host del SIMPB in modo da avere qualche dato in più
--				quando si eseguono le SP del Presentation Layer
-- =============================================
CREATE procedure [C6StagingPeriodico].[SRV_PopolaTabelleSIMPB_TEMP_pre_selective]
AS
BEGIN

	-- [C6StagingPeriodico].[WSEIAN] --
	TRUNCATE TABLE [C6StagingPeriodico].[WSEIAN2]
	INSERT INTO [C6StagingPeriodico].[WSEIAN2]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[NOME]
           ,[COGNOME]
           ,[DTNASCI]
           ,[INDIRIZZO]
           ,[CAP]
           ,[CITTA]
           ,[PROVINCIA]
           ,[NAZIONE]
           ,[CODPROF])
	SELECT 
		 CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )
		,CL.[CODICERETE]
		,CL.[CODICEFISCALE]
		,CL.[NOME]
		,CL.[COGNOME]
		,CAST ( CONVERT( VARCHAR, CL.[DATADINASCITA], 112) AS DECIMAL(9,0) ) AS [DATADINASCITA]
		,IND.[INDIRIZZO]
		,IND.[CAP]
		,IND.[CITTA]
		,IND.[PROVINCIA]
		,IND.[NAZIONE]
		,NULL AS [CODICEPROFILOASSEGNATO]
	FROM 
		[C6Staging].[SPB_CLIENTI] AS CL
	INNER JOIN 
		[C6Staging].[SPB_INDIRIZZI] AS IND
		ON 
			CL.CODICERETE = IND.RETE 
			AND CL.CODICEFISCALE = IND.CODICEFISCALE


	-- [C6StagingPeriodico].[WSEICS] --
	TRUNCATE TABLE [C6StagingPeriodico].[WSEICS]
	INSERT INTO [C6StagingPeriodico].[WSEICS]
           ([DTTRIM]
           ,[DTRIFE]
           ,[RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[NUMPOL]
           ,[CONTO]
           ,[RUBR]
           ,[CUSTGAR]
           ,[TIPPROD]
           ,[CODINT]
           ,[CODPROD]
           ,[SUBPROD]
           ,[MAF]
           ,[CODABI]
           ,[PCTKEY]
           ,[DESTIT]
           ,[CTV]
           ,[PARTVIA]
           ,[PARTVIAAL]
           ,[DTSOTTOS]
           ,[RENDINIZ]
           ,[RENDANNO]
           ,[VALORE]
           ,[SUBSET]
           ,[CVN])
	SELECT 
		 CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )
		,CAST ( CONVERT( VARCHAR, [DATADIRIFERIMENTO], 112) AS DECIMAL(9,0) ) AS [DATASALDO]
		,[RETE]
		,[CODICEFISCALE]
		,[CODICECONTRATTO]
		,[NUMEROPOLIZZA]
		,[CONTO]
		,[RUBRICATO]
		,[CUSTODIAGARANZIA]
		,[TIPOPRODOTTO]
		,[CODICEINTERNO]
		,NULL AS [CODICEPRODOTTO]
		,[CODICESOTTOPRODOTTO]
		,[CODICEMAF]
		,'CODABI' AS [CODABI]
		,[PCTKEY]
		,[PCTDESCRIZIONTETITOLOCOLLEGATO]
		,[CTV]
		,[PARTVIA]
		,CAST ( CONVERT( VARCHAR, [PARTVIAAL], 112) AS DECIMAL(9,0) ) AS [PARTVIAAL]
		,CAST ( CONVERT( VARCHAR, [DATAINIZIORENDIMENTO], 112) AS DECIMAL(9,0) ) AS [DATAINIZIORENDIMENTO]
		,[RENDIMENTODASOTTOSCRIZIONE]
		,[RENDIMENTODAINIZIOANNO]
		,[VALORE]
	    ,NULL AS [SUBSET]
		,[CVN]
	FROM 
		[C6Staging].[SPB_CONTR_SINTESI] CS


	-- [C6StagingPeriodico].[WSEIPV] --
	TRUNCATE TABLE [C6StagingPeriodico].[WSEIPV]
	INSERT INTO [C6StagingPeriodico].[WSEIPV]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[IMPVER]
           ,[DTRIFE]
           ,[SUBSET])
	SELECT 
		CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )
		,C6.[RETE]
		,C6.[COD_FISCALE]
		,C6.[CODICECONTRATTO]
		,[IMPORTOVERSATO]
		,CAST ( CONVERT( VARCHAR, [DATAACQUISIZIONE], 112) AS DECIMAL(9,0) ) AS [DATAACQUISIZIONE]
		,LEFT([NOTA],10)
	FROM 
		[C6Staging].[SPB_PARTITE_VIAGG] PV
	INNER JOIN C6Mart.CONTRATTOSEI C6
		ON 
			C6.RETE = PV.RETE
			AND C6.COD_FISCALE = PV.CODICEFISCALE
	    
	-- [C6StagingPeriodico].[WSEIUL] --
	TRUNCATE TABLE [C6StagingPeriodico].[WSEIUL]
	INSERT INTO [C6StagingPeriodico].[WSEIUL]
           ([DTTRIM]
           ,[RETE]
           ,[CODFIS]
           ,[CODCONF]
           ,[CODINT]
           ,[SUBPROD]
           ,[CTV]
           ,[DTRIFE]
           ,[ISINFIT]
           ,[ISIN]
           ,[MAF]
           ,[SUBSET])
	SELECT
		 CAST ( CONVERT( VARCHAR, GETDATE(), 112) AS DECIMAL(9,0) )
		,C6.[RETE]
		,C6.[COD_FISCALE]
		,C6.[CODICECONTRATTO]
		,AU.[CODICEINTERNO]
		,AU.[CODICESOTTOPRODOTTO]
		,AU.[CONTROVALORE]
		,CAST ( CONVERT( VARCHAR,  AU.[DATADIRIFERIMENTO], 112) AS DECIMAL(9,0) ) AS [DATASALDO]
		,AU.[ISINFITTIZIO]
		,AU.[CODICEISINSOTTOSTANTE]
		,AU.[CODICEMAFSOTTOSTANTE]
		,NULL AS [SUBSET]
	FROM 
		[C6Staging].[SPB_ASS_UNIT] AS AU
	INNER JOIN C6Mart.CONTRATTOSEI C6
		ON 
			C6.CODICECONTRATTO = AU.CODICECONTRATTO


END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_STORICIZZAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		paolo giovanetti
-- Create date: 6 marzo 2009
-- Description:	storicizzazione STAGING
-- =============================================
CREATE procedure [C6StagingPeriodico].[SRV_STORICIZZAZIONE]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico espresso in giorni

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MartPeriodico.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENOTH XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENOTH')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ACBDENOTH WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ACBDENOTH
		(OID$, VERSION$, BDPERCENTAGE, BDBETA, F_OID$_PASSE_CDF1A, F_PFINANCIAL_815C0, ID_ELAB)
		SELECT 
		 ACBDENOTH.OID$, ACBDENOTH.VERSION$, ACBDENOTH.BDPERCENTAGE, ACBDENOTH.BDBETA, ACBDENOTH.F_OID$_PASSE_CDF1A, ACBDENOTH.F_PFINANCIAL_815C0, @ID_ELAB
		FROM C6StagingPeriodico.ACBDENOTH
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ACBDENOTH
			ON ACBDENOTH.OID$ = ST_ACBDENOTH.OID$
		WHERE ST_ACBDENOTH.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENTRY XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENTRY')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ACBDENTRY WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ACBDENTRY
		(OID$, VERSION$, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID$_PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, ID_ELAB)
		SELECT 
		 ACBDENTRY.OID$, ACBDENTRY.VERSION$, ACBDENTRY.F_PINDEXBREA_08079, ACBDENTRY.F_PINSTRUMEN_FBCDE, ACBDENTRY.BDPERCENTAGE, ACBDENTRY.BDBETA, ACBDENTRY.F_OID$_PASSE_B8A1E, ACBDENTRY.F_PFINANCIAL_65EBB, ACBDENTRY.F_PFINANCIAL_C2FD3, @ID_ELAB
		FROM C6StagingPeriodico.ACBDENTRY
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ACBDENTRY
			ON ACBDENTRY.OID$ = ST_ACBDENTRY.OID$
		WHERE ST_ACBDENTRY.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADBKBASE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADBKBASE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ADBKBASE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ADBKBASE
		(OID$, VERSION$, ADBKID, INSTID, C_ADBKBASE_L_69013, TYPE$_ADBKST_AC419, C_CLIENTNAME_1A67C, C_CLIENTNAME_1E844, F_OID$_PERSO_06FCB, C_CLIENTNAME_8B1DB, C_CLIENTNAME_B4F69, C_CLIENTNAME_EA63A, C_ADBKBASE_D_C669E, C_ADBKBASE_L_1DD83, C_ADBKBASE_L_F8E21, C_ADBKBASE_L_2805C, C_ADBKBASE_T_C94F1, F_OID$_PROFI_98D05, F_OID$_TAXRE_4AC4C, C_CURRENCYSY_36ED7, F_OID$_REFER_66AC8, C_ADBKBASE_M_AE5A8, C_ADBKBASE_A_36B89, C_CURRENCYSY_0483B, C_VALUE_506AF, F_OID$_SOURC_E66C5, F_OID$_QUALI_027C5, F_OID$_BLOCK_A4386, F_OID$_SOURC_3AA10, TYPE$_ADBKTY_20093, F_PCUSTOMGRO_9BC08, F_PENTITY_AD_29FE1, ID_ELAB)
		SELECT 
		 ADBKBASE.OID$, ADBKBASE.VERSION$, ADBKBASE.ADBKID, ADBKBASE.INSTID, ADBKBASE.C_ADBKBASE_L_69013, ADBKBASE.TYPE$_ADBKST_AC419, ADBKBASE.C_CLIENTNAME_1A67C, ADBKBASE.C_CLIENTNAME_1E844, ADBKBASE.F_OID$_PERSO_06FCB, ADBKBASE.C_CLIENTNAME_8B1DB, ADBKBASE.C_CLIENTNAME_B4F69, ADBKBASE.C_CLIENTNAME_EA63A, ADBKBASE.C_ADBKBASE_D_C669E, ADBKBASE.C_ADBKBASE_L_1DD83, ADBKBASE.C_ADBKBASE_L_F8E21, ADBKBASE.C_ADBKBASE_L_2805C, ADBKBASE.C_ADBKBASE_T_C94F1, ADBKBASE.F_OID$_PROFI_98D05, ADBKBASE.F_OID$_TAXRE_4AC4C, ADBKBASE.C_CURRENCYSY_36ED7, ADBKBASE.F_OID$_REFER_66AC8, ADBKBASE.C_ADBKBASE_M_AE5A8, ADBKBASE.C_ADBKBASE_A_36B89, ADBKBASE.C_CURRENCYSY_0483B, ADBKBASE.C_VALUE_506AF, ADBKBASE.F_OID$_SOURC_E66C5, ADBKBASE.F_OID$_QUALI_027C5, ADBKBASE.F_OID$_BLOCK_A4386, ADBKBASE.F_OID$_SOURC_3AA10, ADBKBASE.TYPE$_ADBKTY_20093, ADBKBASE.F_PCUSTOMGRO_9BC08, ADBKBASE.F_PENTITY_AD_29FE1, @ID_ELAB
		FROM C6StagingPeriodico.ADBKBASE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ADBKBASE
			ON ADBKBASE.OID$ = ST_ADBKBASE.OID$
		WHERE ST_ADBKBASE.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADS4WS_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
--	BEGIN
--		DELETE FROM C6StoricoPeriodico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6StoricoPeriodico.ST_ADS4WS_PROMOTORI
--		(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, Telefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
--		SELECT 
--		 ADS4WS_PROMOTORI.Rete, ADS4WS_PROMOTORI.Codice, ADS4WS_PROMOTORI.Cognome, ADS4WS_PROMOTORI.Nome, ADS4WS_PROMOTORI.Prefisso, ADS4WS_PROMOTORI.Firma, ADS4WS_PROMOTORI.DataInizioCollaborazione, ADS4WS_PROMOTORI.DataFineCollaborazione, ADS4WS_PROMOTORI.DataUltimaAggiornamento, ADS4WS_PROMOTORI.CAP, ADS4WS_PROMOTORI.Citta, ADS4WS_PROMOTORI.CittaNascita, ADS4WS_PROMOTORI.DataNascita, ADS4WS_PROMOTORI.Indirizzo, ADS4WS_PROMOTORI.Provincia, ADS4WS_PROMOTORI.Telefono, ADS4WS_PROMOTORI.TelefonoAgenzia1, ADS4WS_PROMOTORI.TelefonoAgenzia2, @ID_ELAB
--		FROM C6StagingPeriodico.ADS4WS_PROMOTORI
--		LEFT OUTER JOIN C6StoricoPeriodico.ST_ADS4WS_PROMOTORI
--			ON ADS4WS_PROMOTORI.Firma = ST_ADS4WS_PROMOTORI.Firma
--		WHERE ST_ADS4WS_PROMOTORI.Firma IS NULL
--	END
-- 

--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
--		BEGIN
--			DELETE FROM C6Storicoperiodico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--			INSERT INTO C6Storicoperiodico.ST_ADS4WS_PROMOTORI
--			(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, PrefissoTelefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
--			SELECT Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, PrefissoTelefono, TelefonoAgenzia1, TelefonoAgenzia2, @ID_ELAB 
--			FROM C6Staging.ADS4WS_PROMOTORI
-- 		END
-- 
	--XXXXXXXXXXXXXXXXXXXXXXXX AGENTBASE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AGENTBASE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_AGENTBASE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_AGENTBASE
		(OID$, VERSION$, AGENTBASEID, INSTID, TYPE$_AGENTT_4FF1A, AGENTBASESTATUS, CATEGORY, ROLE, COUNTRY, REGION, TAXPAYERID, C_AGENTNAME__D3943, C_AGENTNAME__B1EC3, F_OID$_PERSO_762E5, C_AGENTNAME__ABD50, C_AGENTNAME__7D056, C_AGENTNAME__722CD, LOGINID, ICEPATH, F_PAGENTBASE_7B96C, F_OID$_AGENT_DB156, F_PENTITY_AG_79C9C, ID_ELAB)
		SELECT 
		 AGENTBASE.OID$, AGENTBASE.VERSION$, AGENTBASE.AGENTBASEID, AGENTBASE.INSTID, AGENTBASE.TYPE$_AGENTT_4FF1A, AGENTBASE.AGENTBASESTATUS, AGENTBASE.CATEGORY, AGENTBASE.ROLE, AGENTBASE.COUNTRY, AGENTBASE.REGION, AGENTBASE.TAXPAYERID, AGENTBASE.C_AGENTNAME__D3943, AGENTBASE.C_AGENTNAME__B1EC3, AGENTBASE.F_OID$_PERSO_762E5, AGENTBASE.C_AGENTNAME__ABD50, AGENTBASE.C_AGENTNAME__7D056, AGENTBASE.C_AGENTNAME__722CD, AGENTBASE.LOGINID, AGENTBASE.ICEPATH, AGENTBASE.F_PAGENTBASE_7B96C, AGENTBASE.F_OID$_AGENT_DB156, AGENTBASE.F_PENTITY_AG_79C9C, @ID_ELAB
		FROM C6StagingPeriodico.AGENTBASE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_AGENTBASE
			ON AGENTBASE.OID$ = ST_AGENTBASE.OID$
		WHERE ST_AGENTBASE.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_ASSET_CLASS_PER_PROMET XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_ASSET_CLASS_PER_PROMET')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET
		(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
		SELECT 
		 ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO, ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN, ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF, ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA, @ID_ELAB
		FROM C6StagingPeriodico.ALL_ASSET_CLASS_PER_PROMET
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET
			ON ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO
			AND ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN
			AND ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF
			AND ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA
		WHERE ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_PB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CF_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CF_PB
		(ID_CLI, NOME, COGNOME, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, CODICEFISCALE, ID_ELAB)
		SELECT 
		 ALL_CF_PB.ID_CLI, ALL_CF_PB.NOME, ALL_CF_PB.COGNOME, ALL_CF_PB.TIPO, ALL_CF_PB.AGENTE, ALL_CF_PB.CHIAVE_PB, ALL_CF_PB.CHIAVE_CLIENTE, ALL_CF_PB.NOME_CLIENTE, ALL_CF_PB.COGNOME_CLIENTE, ALL_CF_PB.CODICE_FISCALE, ALL_CF_PB.TIPO_CLIENTE, ALL_CF_PB.RETE_PB, ALL_CF_PB.CODICE_PB, ALL_CF_PB.DATA_NASCITA, ALL_CF_PB.MARITALSTATUS, ALL_CF_PB.CODICEFISCALE, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CF_PB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_CF_PB
			ON ALL_CF_PB.ID_CLI = ST_ALL_CF_PB.ID_CLI
		WHERE ST_ALL_CF_PB.ID_CLI IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_STATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_STATO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CF_STATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CF_STATO
		(CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, ID_ELAB)
		SELECT 
		 ALL_CF_STATO.CF_CLIENTE, ALL_CF_STATO.RETE, ALL_CF_STATO.STATO_CONSULENZA, ALL_CF_STATO.TOTALE_RIGHE, ALL_CF_STATO.TOTALE_STATI, ALL_CF_STATO.FLAG_UTILIZZO_STATO, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CF_STATO
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_CF_STATO
			ON ALL_CF_STATO.CF_CLIENTE = ST_ALL_CF_STATO.CF_CLIENTE
			AND ALL_CF_STATO.RETE = ST_ALL_CF_STATO.RETE
		WHERE ST_ALL_CF_STATO.CF_CLIENTE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CONSUL_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CONSUL_ASUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CONSUL_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CONSUL_ASUL
		(CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, ID_ELAB)
		SELECT 
		 ALL_CONSUL_ASUL.CODICE_FISCALE, ALL_CONSUL_ASUL.RETE, ALL_CONSUL_ASUL.NEED_AREA_ABBR_DI_AREA, ALL_CONSUL_ASUL.NEED_AREA_ESTESA_DI_AREA, ALL_CONSUL_ASUL.AREASORTORDER, ALL_CONSUL_ASUL.NOME_PROGETTO, ALL_CONSUL_ASUL.CATALOGUENAME, ALL_CONSUL_ASUL.TIPO_PROGETTO, ALL_CONSUL_ASUL.CONTRATTO, ALL_CONSUL_ASUL.OID_DI_CATITEMREF, ALL_CONSUL_ASUL.CONTROVALORE, ALL_CONSUL_ASUL.CONTROV_IN_POS_DEL_PRODOTTO, ALL_CONSUL_ASUL.STRINGONA_POS, ALL_CONSUL_ASUL.CODICEINTERNO, ALL_CONSUL_ASUL.SOTTOPRODOTTO, ALL_CONSUL_ASUL.CONTROVALORE_ASUL, ALL_CONSUL_ASUL.ID_MONITORAGGIO, ALL_CONSUL_ASUL.CATEGORIA, ALL_CONSUL_ASUL.NUOVO_OID_CAT_PER_ASSET, ALL_CONSUL_ASUL.CATEGORIA_2, ALL_CONSUL_ASUL.COLO_JOIN, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CONSUL_ASUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_CONSUL_ASUL
			ON ALL_CONSUL_ASUL.CODICE_FISCALE = ST_ALL_CONSUL_ASUL.CODICE_FISCALE
			AND ALL_CONSUL_ASUL.RETE = ST_ALL_CONSUL_ASUL.RETE
			AND ALL_CONSUL_ASUL.COLO_JOIN = ST_ALL_CONSUL_ASUL.COLO_JOIN
		WHERE ST_ALL_CONSUL_ASUL.CODICE_FISCALE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATR_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATR_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_PATR_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_PATR_TERZI
		(CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CAPITALE_INVESTITO, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATE_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, TIPO_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797A, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESCR, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, ID_ELAB)
		SELECT 
		 ALL_PATR_TERZI.CHIAVE_PER_CLIENTE, ALL_PATR_TERZI.CODICE_FISCALE, ALL_PATR_TERZI.RETE_PB, ALL_PATR_TERZI.CAPITALE_INVESTITO, ALL_PATR_TERZI.CHIAVE_FNC, ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO, ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.PREMIO_VERSAMENTO, ALL_PATR_TERZI.C_VALUE_582FF, ALL_PATR_TERZI.AMMONTARE_VERSAMENTO, ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA, ALL_PATR_TERZI.DATA_INIZIO_INV, ALL_PATR_TERZI.PATRIMONIO_TERZI, ALL_PATR_TERZI.NOME_ISTITUTO, ALL_PATR_TERZI.CHIAVE_THR, ALL_PATR_TERZI.ASSETID, ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO, ALL_PATR_TERZI.NOMEPRODOTTO, ALL_PATR_TERZI.NOME_ISTITUTO_2, ALL_PATR_TERZI.INTERMEDIARIO, ALL_PATR_TERZI.DATA_SCADENZA, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ, ALL_PATR_TERZI.BALANCEDATE_DI_THR, ALL_PATR_TERZI.CHIAVE_PR_31921, ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE, ALL_PATR_TERZI.LOCALITA, ALL_PATR_TERZI.AFFITTOPERCEPITO, ALL_PATR_TERZI.CHIAVE_F87B4, ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4, ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4, ALL_PATR_TERZI.ISCOVER, ALL_PATR_TERZI.TIPO_ISCOVER, ALL_PATR_TERZI.CHIAVE_E6F18, ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18, ALL_PATR_TERZI.DENOMINAZIONE, ALL_PATR_TERZI.NUMEROQUOTE, ALL_PATR_TERZI.COMPANYTYPE, ALL_PATR_TERZI.CHIAVE_COMP, ALL_PATR_TERZI.COMPANYNAME, ALL_PATR_TERZI.CHIAVE_BT_49D5B, ALL_PATR_TERZI.TIPO_BT_49D5B, ALL_PATR_TERZI.CHIAVE_BT_55768, ALL_PATR_TERZI.TIPO_BT_55768, ALL_PATR_TERZI.CHIAVE_BT_B70F0, ALL_PATR_TERZI.TIPO_BT_B70F0, ALL_PATR_TERZI.CHIAVE_BT_6797A, ALL_PATR_TERZI.TIPO_BT_6797A, ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797A, ALL_PATR_TERZI.CHIAVE_BT_97BEE, ALL_PATR_TERZI.TIPO_BT_97BEE, ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE, ALL_PATR_TERZI.CHIAVE_RDESCR, ALL_PATR_TERZI.TIPO_RDESCR, ALL_PATR_TERZI.DESCRIZIONE_RDESCR, ALL_PATR_TERZI.TIPOLOGIA_RDESCR, @ID_ELAB
		FROM C6StagingPeriodico.ALL_PATR_TERZI
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_PATR_TERZI
			ON ALL_PATR_TERZI.CHIAVE_THR = ST_ALL_PATR_TERZI.CHIAVE_THR
		WHERE ST_ALL_PATR_TERZI.CHIAVE_THR IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_POS_CONS_CAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_POS_CONS_CAT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_POS_CONS_CAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_POS_CONS_CAT
		(CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, C_CTVNEEDARE_EA4FB, PK_PRC, TIPO_PROGETTO, ID_MONITORAGGIO, NOME_PROGETTO, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_INVESTIMEN_60625, CONTROVALORE_PER_INV, PERCENTUALE_MODELLO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, ID_ELAB)
		SELECT 
		 ALL_POS_CONS_CAT.CODICE_FISCALE, ALL_POS_CONS_CAT.RETE, ALL_POS_CONS_CAT.STATO_CONSULENZA, ALL_POS_CONS_CAT.DATA_STATO_CONSULENZA, ALL_POS_CONS_CAT.PK_ALTERNATIVA_CONS, ALL_POS_CONS_CAT.DATA_MIGRAZIONE_CONS, ALL_POS_CONS_CAT.PK_AREA, ALL_POS_CONS_CAT.NEED_AREA_ABBR_DI_AREA, ALL_POS_CONS_CAT.NEED_AREA_ESTESA_DI_AREA, ALL_POS_CONS_CAT.C_PERCENTAGE_86095, ALL_POS_CONS_CAT.C_CTVNEEDARE_EA4FB, ALL_POS_CONS_CAT.PK_PRC, ALL_POS_CONS_CAT.TIPO_PROGETTO, ALL_POS_CONS_CAT.ID_MONITORAGGIO, ALL_POS_CONS_CAT.NOME_PROGETTO, ALL_POS_CONS_CAT.C_PROJECTCTV_39520, ALL_POS_CONS_CAT.C_PROJECTOUT_9CFB8, ALL_POS_CONS_CAT.C_RISORSELIQ_DF807, ALL_POS_CONS_CAT.C_INVESTIMEN_60625, ALL_POS_CONS_CAT.CONTROVALORE_PER_INV, ALL_POS_CONS_CAT.PERCENTUALE_MODELLO, ALL_POS_CONS_CAT.C_PERCENTUAL_12346, ALL_POS_CONS_CAT.DATA_ORDINAMENTO_INV, ALL_POS_CONS_CAT.CONTRATTO, ALL_POS_CONS_CAT.OID_DI_CATITEMREF, ALL_POS_CONS_CAT.C_OUTCTV_B4FB8, ALL_POS_CONS_CAT.CONTROVALORE, ALL_POS_CONS_CAT.CONTROV_IN_POS_DEL_PRODOTTO, ALL_POS_CONS_CAT.STRINGONA_POS, ALL_POS_CONS_CAT.CONTO, ALL_POS_CONS_CAT.RUBRICATO, ALL_POS_CONS_CAT.CUSTGAR, ALL_POS_CONS_CAT.NUMPOL, ALL_POS_CONS_CAT.TERMID, ALL_POS_CONS_CAT.ANNO, ALL_POS_CONS_CAT.PROG, ALL_POS_CONS_CAT.NOME_PRODOTTO, ALL_POS_CONS_CAT.NEED_AREA_ABBREVIATA_DI_POS, ALL_POS_CONS_CAT.NEED_AREA_ESTESA_DI_POS, ALL_POS_CONS_CAT.CHIAVE_CATITEMREF, ALL_POS_CONS_CAT.CATALOGUENAME, ALL_POS_CONS_CAT.COD_ISIN, ALL_POS_CONS_CAT.COD_MAF, ALL_POS_CONS_CAT.COD_INTERNO, ALL_POS_CONS_CAT.COD_SOTTOPRODOTTO, ALL_POS_CONS_CAT.COD_ADEGUATEZZA, ALL_POS_CONS_CAT.ALBERATURA, ALL_POS_CONS_CAT.TIPOPRODOTTO, ALL_POS_CONS_CAT.ISNEGOTIABLE, ALL_POS_CONS_CAT.MAINASSETCLASS, ALL_POS_CONS_CAT.AREASORTORDER, ALL_POS_CONS_CAT.ORIGINE_FILE_CATALOGO, ALL_POS_CONS_CAT.FLAG_PRESENZA_MAPPATURA, ALL_POS_CONS_CAT.RAGGRUPPAMEN_NOME_PROGET, @ID_ELAB
		FROM C6StagingPeriodico.ALL_POS_CONS_CAT
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_POS_CONS_CAT
			ON ALL_POS_CONS_CAT.CODICE_FISCALE = ST_ALL_POS_CONS_CAT.CODICE_FISCALE
			AND ALL_POS_CONS_CAT.RETE = ST_ALL_POS_CONS_CAT.RETE
			AND ALL_POS_CONS_CAT.PK_ALTERNATIVA_CONS = ST_ALL_POS_CONS_CAT.PK_ALTERNATIVA_CONS
			AND ALL_POS_CONS_CAT.STRINGONA_POS = ST_ALL_POS_CONS_CAT.STRINGONA_POS
		WHERE ST_ALL_POS_CONS_CAT.CODICE_FISCALE IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PROPOSTA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PROPOSTA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_PROPOSTA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_PROPOSTA
		(AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, ID_ELAB)
		SELECT 
		 ALL_PROPOSTA.AGENTE, ALL_PROPOSTA.RETE, ALL_PROPOSTA.NOME_CLIENTE, ALL_PROPOSTA.COGNOME_CLIENTE, ALL_PROPOSTA.CODICEFISCALE, ALL_PROPOSTA.CHIAVE_PROPOSTA, ALL_PROPOSTA.NOME_PROPOSTA, ALL_PROPOSTA.STATO_PROPOSTA, ALL_PROPOSTA.DATA_CREAZIONE_PROPOSTA, ALL_PROPOSTA.DATA_SCADENZA_PROPOSTA, ALL_PROPOSTA.NEED_BREVE, ALL_PROPOSTA.NEED_ESTESA, ALL_PROPOSTA.ORDINE_NEED, ALL_PROPOSTA.CONTROVALORE_TOT_PER_NEED, ALL_PROPOSTA.PERC_PER_NEED, ALL_PROPOSTA.NOME_PROGETTO, ALL_PROPOSTA.CONTROV_CONSULENZA, ALL_PROPOSTA.CONTROV_PROPOSTA, ALL_PROPOSTA.CONTROV_DA_DEFINIRE_LIQ, ALL_PROPOSTA.ISANEWPOSITION, ALL_PROPOSTA.STRINGONA_CLONEPOS, ALL_PROPOSTA.NOME_PRODOTTO_CLONEPOS, ALL_PROPOSTA.INVESTI, ALL_PROPOSTA.DISINVESTI, ALL_PROPOSTA.PTF_INIZ, ALL_PROPOSTA.CTVOPERAZIONE, ALL_PROPOSTA.CONTRACTCODE, ALL_PROPOSTA.POLIZZADECIMAL, ALL_PROPOSTA.CONTO, ALL_PROPOSTA.RUBRICATO, ALL_PROPOSTA.PR_COD_ISIN, ALL_PROPOSTA.PR_COD_MAF, ALL_PROPOSTA.PR_COD_INTERNO, ALL_PROPOSTA.PR_COD_SOTTOPRODOTTO, ALL_PROPOSTA.PR_COD_ADEGUATEZZA, ALL_PROPOSTA.NOME_PRODOTTO_CATALOGO, ALL_PROPOSTA.TIPOPRODOTTO, ALL_PROPOSTA.CHIAVE_CATITEMREF, ALL_PROPOSTA.CHIAVE_PER_LA_CONSULENZA, ALL_PROPOSTA.RICONCILIATA, ALL_PROPOSTA.FLAG_PROPOSTA_PER_PROGETTO, ALL_PROPOSTA.FLAG_PROPOSTA_PER_AREA, ALL_PROPOSTA.FLAG_SALVATAGGIO_MANUALE, ALL_PROPOSTA.RAGGRUPPAMENTO_PROGETTO, @ID_ELAB
		FROM C6StagingPeriodico.ALL_PROPOSTA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_PROPOSTA
			ON ALL_PROPOSTA.CHIAVE_PROPOSTA = ST_ALL_PROPOSTA.CHIAVE_PROPOSTA
			AND ALL_PROPOSTA.STRINGONA_CLONEPOS = ST_ALL_PROPOSTA.STRINGONA_CLONEPOS
		WHERE ST_ALL_PROPOSTA.CHIAVE_PROPOSTA IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREEDIBISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREEDIBISOGNO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_AREEDIBISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_AREEDIBISOGNO
		(AREAID, AREANAME, AREASORTORDER, ID_ELAB)
		SELECT 
		 AREEDIBISOGNO.AREAID, AREEDIBISOGNO.AREANAME, AREEDIBISOGNO.AREASORTORDER, @ID_ELAB
		FROM C6StagingPeriodico.AREEDIBISOGNO
		LEFT OUTER JOIN C6StoricoPeriodico.ST_AREEDIBISOGNO
			ON AREEDIBISOGNO.AREAID = ST_AREEDIBISOGNO.AREAID
		WHERE ST_AREEDIBISOGNO.AREAID IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_1_E_2_ORDINATE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_1_E_2_ORDINATE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE
		(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ASSETCLASSNAME, ORDINAMENTO_ASSET, ID_ELAB)
		SELECT 
		 ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO, ASSET_1_E_2_ORDINATE.CODICE_ISIN, ASSET_1_E_2_ORDINATE.CODICE_MAF, ASSET_1_E_2_ORDINATE.CODICE_ADEGUATEZZA, ASSET_1_E_2_ORDINATE.ASSETCLASSNAME, ASSET_1_E_2_ORDINATE.ORDINAMENTO_ASSET, @ID_ELAB
		FROM C6StagingPeriodico.ASSET_1_E_2_ORDINATE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE
			ON ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO = ST_ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO
			AND ASSET_1_E_2_ORDINATE.CODICE_ISIN = ST_ASSET_1_E_2_ORDINATE.CODICE_ISIN
			AND ASSET_1_E_2_ORDINATE.CODICE_MAF = ST_ASSET_1_E_2_ORDINATE.CODICE_MAF
			AND ASSET_1_E_2_ORDINATE.CODICE_ADEGUATEZZA = ST_ASSET_1_E_2_ORDINATE.CODICE_ADEGUATEZZA
		WHERE ST_ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ASSETCLASS
		(OID$, VERSION$, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID$_ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ORDINE, ID_ELAB)
		SELECT 
		 ASSETCLASS.OID$, ASSETCLASS.VERSION$, ASSETCLASS.ASSETCLASSID, ASSETCLASS.ASSETCLASSNAME, ASSETCLASS.ASSETCLASSDESCR, ASSETCLASS.ASSETCLASSLEV, ASSETCLASS.ISRESIDUAL, ASSETCLASS.F_PASSETCLAS_2FB94, ASSETCLASS.F_OID$_ASSET_B965C, ASSETCLASS.CODICE_ISIN, ASSETCLASS.CODICE_MAF, ASSETCLASS.CODICE_ADEGUATEZZA, ASSETCLASS.ORDINE, @ID_ELAB
		FROM C6StagingPeriodico.ASSETCLASS
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ASSETCLASS
			ON ASSETCLASS.OID$ = ST_ASSETCLASS.OID$
		WHERE ST_ASSETCLASS.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX C_BO_453FB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'C_BO_453FB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_C_BO_453FB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_C_BO_453FB
		(OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, ID_ELAB)
		SELECT 
		 C_BO_453FB.OID$, C_BO_453FB.C_VALUE_7BD3C, C_BO_453FB.C_DESCRIZION_93ABE, C_BO_453FB.PK_PRC, @ID_ELAB
		FROM C6StagingPeriodico.C_BO_453FB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_C_BO_453FB
			ON C_BO_453FB.OID$ = ST_C_BO_453FB.OID$
		WHERE ST_C_BO_453FB.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATINAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATINAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CATINAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CATINAREA
		(OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, ID_ELAB)
		SELECT 
		 CATINAREA.OID$, CATINAREA.VERSION$, CATINAREA.C_ISMAINNEED_9C780, CATINAREA.NEEDAREAVALUE, CATINAREA.F_OID$_NEEDA_2C362, CATINAREA.F_PCATALOGUE_5D024, @ID_ELAB
		FROM C6StagingPeriodico.CATINAREA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CATINAREA
			ON CATINAREA.OID$ = ST_CATINAREA.OID$
		WHERE ST_CATINAREA.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATITEMREF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATITEMREF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CATITEMREF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CATITEMREF
		(OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, ID_ELAB)
		SELECT 
		 CATITEMREF.OID$, CATITEMREF.VERSION$, CATITEMREF.PRODUCTCURRENCY, CATITEMREF.PRODUCTCOUNTRY, CATITEMREF.PRODUCTREGION, CATITEMREF.CATALOGUEID, CATITEMREF.COD_ISIN, CATITEMREF.COD_ADEGUATEZZA, CATITEMREF.COD_MAF, CATITEMREF.COD_INTERNO, CATITEMREF.COD_SOTTOPRODOTTO, CATITEMREF.TYPE$_BCATAL_FC317, CATITEMREF.CATEGORY, CATITEMREF.INSTITUTIONS, CATITEMREF.COUNTRY, CATITEMREF.PIAZZA, CATITEMREF.ULTIMOPRZCURR, CATITEMREF.ULTIMOPRZ, CATITEMREF.CAPITALERISPARMIO, CATITEMREF.LMINCAPCONTRCURR, CATITEMREF.LMINCAPCONTR, CATITEMREF.LSUCCAPCONTRCURR, CATITEMREF.LSUCCAPCONTR, CATITEMREF.LMINRISPCONTRCURR, CATITEMREF.LMINRISPCONTR, CATITEMREF.LSUCRISPCONTRCURR, CATITEMREF.LSUCRISPCONTR, CATITEMREF.LMINCOMMCURR, CATITEMREF.LMINCOMM, CATITEMREF.DELEGAGESTIONALE, CATITEMREF.TIPOLOGIAPERPICK, CATITEMREF.EXPIRATIONDATE, CATITEMREF.RISKPRICE, CATITEMREF.FISCALREGIMENT, CATITEMREF.QUOTATO, CATITEMREF.CLASSEDIPREZZO, CATITEMREF.BONDRATING, CATITEMREF.BONDDURATION, CATITEMREF.TEMPMIN, CATITEMREF.TEMPMAX, CATITEMREF.PRIPRODCOM, CATITEMREF.MAINASSETCLASS, CATITEMREF.MACROACOBPERC, CATITEMREF.MACROACALPERC, CATITEMREF.MACROACAZPERC, CATITEMREF.MACROACMNPERC, CATITEMREF.LINEEFINACC, CATITEMREF.TIPOVERS, CATITEMREF.TIPOPOLIZRAM1, CATITEMREF.DURATACONTR, CATITEMREF.GARDEMO, CATITEMREF.RISKPRESSCAD, CATITEMREF.LIVFLUTDUR, CATITEMREF.OPZRENDVIT, CATITEMREF.METAA, CATITEMREF.METAB, CATITEMREF.METAC, CATITEMREF.RATOBBLIG, CATITEMREF.ULTIMOPREZZOCURR, CATITEMREF.ULTIMOPREZZO, CATITEMREF.DATARIFPREZZO, CATITEMREF.CODICEADB, CATITEMREF.AGGIORNFEED, CATITEMREF.DISTRPROV, CATITEMREF.CODTIPOCONTR, CATITEMREF.ULTPRZSECCURR, CATITEMREF.ULTPRZSEC, CATITEMREF.DATAULTPRZSEC, CATITEMREF.CODBLOOMBERG, CATITEMREF.DENOMUNITLNK, CATITEMREF.TIPOPRODOTTO, CATITEMREF.GENERICDATA, CATITEMREF.GENERICCURCURR, CATITEMREF.GENERICCUR, CATITEMREF.GENERICSTRING1, CATITEMREF.GENERICSTRING2, CATITEMREF.CATALOGUENAME, CATITEMREF.EFFECTIVEFROM, CATITEMREF.EFFECTIVETO, CATITEMREF.PRODUCTSTATUS, CATITEMREF.ISVISIBLE, CATITEMREF.ISNEGOTIABLE, CATITEMREF.BRIEFDESCRIPTION, CATITEMREF.F_OID$_VAR_CDDF8, CATITEMREF.RISKPROFOFSUITCLS, CATITEMREF.OPINION, CATITEMREF.OPINIONDATE, CATITEMREF.F_OID$_CATAL_B3E14, CATITEMREF.F_OID$_PCATE_F3BF6, CATITEMREF.F_OID$_MAINA_76C35, CATITEMREF.F_OID$_INSTR_B5526, CATITEMREF.F_OID$_MAINS_5FCE5, CATITEMREF.F_OID$_MAINR_08A23, CATITEMREF.F_OID$_PRISK_AAC57, CATITEMREF.F_OID$_PRODU_F8FBB, CATITEMREF.F_OID$_MARKE_F3D2D, CATITEMREF.COLL_SKANDIA, CATITEMREF.CODASSETSAT, @ID_ELAB
		FROM C6StagingPeriodico.CATITEMREF
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CATITEMREF
			ON CATITEMREF.OID$ = ST_CATITEMREF.OID$
		WHERE ST_CATITEMREF.OID$ IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CLIENTI_CON_RNA XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CLIENTI_CON_RNA')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ST_CLIENTI_CON_RNA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ST_CLIENTI_CON_RNA
	--           ([Rete]
	--           ,[CodicePB]
	--           ,[CodiceFiscale]
	--           ,[Percentuale]
	--           ,[DataCalcolo]
	--		   ,ID_ELAB)
	--		SELECT [Rete]
	--           ,[CodicePB]
	--           ,[CodiceFiscale]
	--           ,[Percentuale]
	--           ,[DataCalcolo]
	--		   ,@ID_ELAB ID_ELAB
	--		FROM C6StagingPeriodico.CLIENTI_CON_RNA
	--	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CONO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONO
		(OID$, VERSION$, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, ID_ELAB)
		SELECT 
		 CONO.OID$, CONO.VERSION$, CONO.C_DATA_FD2A6, CONO.C_QUANTILE5_BF710, CONO.C_QUANTILE95_0D6CE, CONO.F_PPROJECT_P_46507, CONO.C_QUANTILE50_C47E0, @ID_ELAB
		FROM C6StagingPeriodico.CONO
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CONO
			ON CONO.OID$ = ST_CONO.OID$
		WHERE ST_CONO.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONSAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONSAREA
		(OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, ID_ELAB)
		SELECT 
		 CONSAREA.OID$, CONSAREA.VERSION$, CONSAREA.F_PCONSULENZ_7FBE3, CONSAREA.C_CONSULENZA_A58F3, CONSAREA.C_CONSULENZA_E94E3, CONSAREA.C_NEEDAREA_V_46360, CONSAREA.C_NEEDAREA_D_911D8, CONSAREA.C_CTVNEEDARE_EA4FB, CONSAREA.C_PERCENTAGE_86095, CONSAREA.C_OUTCTV_A27B5, CONSAREA.C_PATRIMONIO_F4B8E, CONSAREA.C_INVESTIMEN_AC24C, CONSAREA.C_CONSULENZA_0C219, CONSAREA.C_CONSULENZA_1C9D3, @ID_ELAB
		FROM C6StagingPeriodico.CONSAREA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CONSAREA
			ON CONSAREA.OID$ = ST_CONSAREA.OID$
		WHERE ST_CONSAREA.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONSUL
		(OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, ID_ELAB)
		SELECT 
		 CONSUL.OID$, CONSUL.VERSION$, CONSUL.C_CONSULENZA_EBDBE, CONSUL.ADBKID, CONSUL.INSTID, CONSUL.TYPE$_TIPOCO_1EA7C, CONSUL.C_CONTROVALO_C57EE, CONSUL.C_PATRIMONIO_0BF30, CONSUL.C_ALTROPATRI_E90EF, CONSUL.C_ALTRO_5AD86, CONSUL.C_DATAINIZIO_35C15, CONSUL.C_RISORSENON_A04BD, CONSUL.C_INVESTIMEN_C4514, CONSUL.C_INVESTIMEN_36DE3, CONSUL.C_IDQUESTION_5549B, CONSUL.C_DATAQUESTI_5069A, CONSUL.C_VARCONSOB_28C92, CONSUL.C_VALORIALLI_0CA23, CONSUL.C_DATAPIRAMI_661DA, CONSUL.C_DATACONSVE_D3DE3, CONSUL.C_DATACONSOR_EA88E, CONSUL.C_PROFILOCON_81F5D, CONSUL.C_DATAMIGRAZ_BF705, CONSUL.C_SALVADANAI_B156A, CONSUL.C_CONSULENZA_2C1E1, CONSUL.C_DATACONSVE_66B66, CONSUL.C_DATACAMBIO_79509, @ID_ELAB
		FROM C6StagingPeriodico.CONSUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CONSUL
			ON CONSUL.OID$ = ST_CONSUL.OID$
		WHERE ST_CONSUL.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INDREND XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INDREND')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_INDREND WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_INDREND
		(OID$, VERSION$, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, ID_ELAB)
		SELECT 
		 INDREND.OID$, INDREND.VERSION$, INDREND.C_VAR_A94EA, INDREND.C_TEMPOINVES_CE300, INDREND.C_COPERTURA_94818, INDREND.C_PERDITAMAX_F5B51, @ID_ELAB
		FROM C6StagingPeriodico.INDREND
		LEFT OUTER JOIN C6StoricoPeriodico.ST_INDREND
			ON INDREND.OID$ = ST_INDREND.OID$
		WHERE ST_INDREND.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INSTRBDS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INSTRBDS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_INSTRBDS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_INSTRBDS
		(OID$, VERSION$, BDISIN, BDMAF, F_OID$_PCATA_5DDA6, PROVENIENZA, ID_ELAB)
		SELECT 
		 INSTRBDS.OID$, INSTRBDS.VERSION$, INSTRBDS.BDISIN, INSTRBDS.BDMAF, INSTRBDS.F_OID$_PCATA_5DDA6, INSTRBDS.PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.INSTRBDS
		LEFT OUTER JOIN C6StoricoPeriodico.ST_INSTRBDS
			ON INSTRBDS.OID$ = ST_INSTRBDS.OID$
		WHERE ST_INSTRBDS.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NEEDAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NEEDAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_NEEDAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_NEEDAREA
		(OID$, VERSION$, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, ID_ELAB)
		SELECT 
		 NEEDAREA.OID$, NEEDAREA.VERSION$, NEEDAREA.AREAID, NEEDAREA.AREANAME, NEEDAREA.EFFECTIVEFROM, NEEDAREA.EFFECTIVETO, NEEDAREA.BRIEFDESCRIPTION, NEEDAREA.F_PNEEDAREA__742D7, NEEDAREA.AREASORTORDER, @ID_ELAB
		FROM C6StagingPeriodico.NEEDAREA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_NEEDAREA
			ON NEEDAREA.OID$ = ST_NEEDAREA.OID$
		WHERE ST_NEEDAREA.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NOME_PROGETTO_BOZZA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NOME_PROGETTO_BOZZA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA
		(ADBKID, INSTID, NUOVO_NOME_PROGETTO, C_PROJECTIDR_51E22, NEEDAREA, ID_ELAB)
		SELECT 
		 NOME_PROGETTO_BOZZA.ADBKID, NOME_PROGETTO_BOZZA.INSTID, NOME_PROGETTO_BOZZA.NUOVO_NOME_PROGETTO, NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22, NOME_PROGETTO_BOZZA.NEEDAREA, @ID_ELAB
		FROM C6StagingPeriodico.NOME_PROGETTO_BOZZA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA
			ON NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22 = ST_NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22
		WHERE ST_NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX OTHINTRST XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'OTHINTRST')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_OTHINTRST WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_OTHINTRST
		(OID$, VERSION$, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, ID_ELAB)
		SELECT 
		 OTHINTRST.OID$, OTHINTRST.VERSION$, OTHINTRST.INTERESTDESC, OTHINTRST.INTERESTCUR, OTHINTRST.INTERESTAMT, OTHINTRST.F_PQUANTIFIC_76FF6, @ID_ELAB
		FROM C6StagingPeriodico.OTHINTRST
		LEFT OUTER JOIN C6StoricoPeriodico.ST_OTHINTRST
			ON OTHINTRST.OID$ = ST_OTHINTRST.OID$
		WHERE ST_OTHINTRST.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PHOTO_DATA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PHOTO_DATA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PHOTO_DATA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PHOTO_DATA
		(OID_, VERSION_, ADBKID, INSTID, C_DATAREQ_EB2B5, TYPE__TYPE_7CAB6, TYPE__STATUS_1E30E, C_DATASALVAT_D40E3, C_CTVINV_990D8, C_CTVRIS_43FEA, C_CTVLIQ_54D1B, C_CTVPRE_A0E49, C_CTVEXT_34DCC, C_CTVCC_E242D, C_CTVNA_473EA, C_VAR_16494, C_COPVAR_5C6E5, ID_ELAB)
		SELECT 
		 PHOTO_DATA.OID_, PHOTO_DATA.VERSION_, PHOTO_DATA.ADBKID, PHOTO_DATA.INSTID, PHOTO_DATA.C_DATAREQ_EB2B5, PHOTO_DATA.TYPE__TYPE_7CAB6, PHOTO_DATA.TYPE__STATUS_1E30E, PHOTO_DATA.C_DATASALVAT_D40E3, PHOTO_DATA.C_CTVINV_990D8, PHOTO_DATA.C_CTVRIS_43FEA, PHOTO_DATA.C_CTVLIQ_54D1B, PHOTO_DATA.C_CTVPRE_A0E49, PHOTO_DATA.C_CTVEXT_34DCC, PHOTO_DATA.C_CTVCC_E242D, PHOTO_DATA.C_CTVNA_473EA, PHOTO_DATA.C_VAR_16494, PHOTO_DATA.C_COPVAR_5C6E5, @ID_ELAB
		FROM C6StagingPeriodico.PHOTO_DATA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_PHOTO_DATA
			ON PHOTO_DATA.OID_ = ST_PHOTO_DATA.OID_
		WHERE ST_PHOTO_DATA.OID_ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PORTMOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PORTMOD')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PORTMOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PORTMOD
		(OID$, VERSION$, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, ID_ELAB)
		SELECT 
		 PORTMOD.OID$, PORTMOD.VERSION$, PORTMOD.F_PPROJECT_P_EE748, PORTMOD.C_ASSET_CD02D, PORTMOD.C_PERCENTUAL_143B7, @ID_ELAB
		FROM C6StagingPeriodico.PORTMOD
		LEFT OUTER JOIN C6StoricoPeriodico.ST_PORTMOD
			ON PORTMOD.OID$ = ST_PORTMOD.OID$
		WHERE ST_PORTMOD.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX POSITION XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'POSITION')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_POSITION WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_POSITION
		(OID$, VERSION$, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE$_CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID$_POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, ID_ELAB)
		SELECT 
		 POSITION.OID$, POSITION.VERSION$, POSITION.F_PCONSULENZ_56F23, POSITION.POSITIONID, POSITION.CONSULENZAID, POSITION.TYPE$_CATALO_35E2A, POSITION.POSITIONNAME, POSITION.CONTROVALORE, POSITION.C_OUTCTV_B4FB8, POSITION.C_NEEDAREASE_3D485, POSITION.C_NEEDAREASE_30873, POSITION.CATALOGUEITEMID, POSITION.F_OID$_POSIT_00526, POSITION.F_PPROJECT_P_B5629, POSITION.CTVINIZIALE, @ID_ELAB
		FROM C6StagingPeriodico.POSITION
		LEFT OUTER JOIN C6StoricoPeriodico.ST_POSITION
			ON POSITION.OID$ = ST_POSITION.OID$
		WHERE ST_POSITION.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PRCONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PRCONSUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PRCONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PRCONSUL
		(OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, ID_ELAB)
		SELECT 
		 PRCONSUL.OID$, PRCONSUL.VERSION$, PRCONSUL.F_PCONSULENZ_B69E4, PRCONSUL.C_PROJECTID_9894C, PRCONSUL.C_CONSULENZA_CB331, PRCONSUL.C_CONSULENZA_A7FC6, PRCONSUL.NEEDAREAID, PRCONSUL.TYPE$_PROJEC_14674, PRCONSUL.C_PROJECTNAM_11D1A, PRCONSUL.C_PROJECTCTV_39520, PRCONSUL.C_PROJECTOUT_9CFB8, PRCONSUL.C_RISORSELIQ_DF807, PRCONSUL.C_CREATIONDA_732BD, PRCONSUL.C_LASTMODIFI_3BF4A, PRCONSUL.C_INVESTIMEN_60625, PRCONSUL.F_OID$_FREQU_A5FAB, PRCONSUL.C_IMPORTOPER_7A987, PRCONSUL.F_OID$_RISKP_9CF4A, PRCONSUL.F_OID$_ORIZZ_4A868, PRCONSUL.C_PERDITAAVV_D414B, PRCONSUL.C_PERDITAMAX_55078, PRCONSUL.C_GUADAGNOAV_2BD07, PRCONSUL.C_GUADAGNOMA_D14C4, PRCONSUL.C_RISERVENON_CCD2D, PRCONSUL.C_RISERVEMON_5E189, PRCONSUL.C_RISERVEOBB_121FA, PRCONSUL.C_RISERVEAZI_175C0, PRCONSUL.C_CONSULENZA_ACEEE, PRCONSUL.C_PROJECTIDM_1AF31, PRCONSUL.C_PROJECTIDR_51E22, PRCONSUL.C_DATAULTIMO_FFA71, PRCONSUL.C_PERDITAMAX_BEABF, PRCONSUL.C_PERDITAMAX_AAB4C, PRCONSUL.C_GUADAGNOMA_43151, PRCONSUL.C_GUADAGNOMA_0F76F, PRCONSUL.F_OID$_PROJE_CD4BB, PRCONSUL.C_NOTE_B4B97, PRCONSUL.C_PERCENTUAL_69019, PRCONSUL.C_PERCENTUAL_12346, PRCONSUL.F_OID$_RISKS_A3B54, PRCONSUL.C_ORDERTIMES_80019, @ID_ELAB
		FROM C6StagingPeriodico.PRCONSUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_PRCONSUL
			ON PRCONSUL.OID$ = ST_PRCONSUL.OID$
		WHERE ST_PRCONSUL.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_AGGR XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_AGGR')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PROMETEIA_AGGR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PROMETEIA_AGGR
		(Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, ID_ELAB)
		SELECT 
		 PROMETEIA_AGGR.Rete, PROMETEIA_AGGR.CodiceFiscale, PROMETEIA_AGGR.Portafoglio, PROMETEIA_AGGR.VaRAssolutoDiPortafoglio, PROMETEIA_AGGR.VaRPercentuialeDiPortafoglio, PROMETEIA_AGGR.CVaRAssolutoDiPortafoglio, PROMETEIA_AGGR.CVaRPercentualeDiPortafoglio, PROMETEIA_AGGR.RisksizeDiPortafoglio, PROMETEIA_AGGR.McVar, PROMETEIA_AGGR.McVarP, PROMETEIA_AGGR.Beneficio, PROMETEIA_AGGR.Copertura, PROMETEIA_AGGR.Totale, @ID_ELAB
		FROM C6StagingPeriodico.PROMETEIA_AGGR
		LEFT OUTER JOIN C6StoricoPeriodico.PROMETEIA_AGGR
			ON PROMETEIA_AGGR.Rete = ST_PROMETEIA_AGGR.Rete
			AND PROMETEIA_AGGR.CodiceFiscale = ST_PROMETEIA_AGGR.CodiceFiscale
			AND PROMETEIA_AGGR.Portafoglio = ST_PROMETEIA_AGGR.Portafoglio
		WHERE ST_PROMETEIA_AGGR.Rete IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX QUANTIF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'QUANTIF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_QUANTIF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_QUANTIF
		(OID$, VERSION$, UPDATEDATE, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONCUR, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID$_ADDRE_81D21, ID_ELAB)
		SELECT 
		 QUANTIF.OID$, QUANTIF.VERSION$, QUANTIF.UPDATEDATE, QUANTIF.EXPNEEDSCUR, QUANTIF.EXPNEEDSAMT, QUANTIF.GROSSINPRIMCUR, QUANTIF.GROSSINPRIMAMT, QUANTIF.GROSSINSECCUR, QUANTIF.GROSSINSECAMT, QUANTIF.RETIREMENTYEARS, QUANTIF.STATEPENSIONCUR, QUANTIF.STATEPENSIONAMT, QUANTIF.PRIVATEPENSIONCUR, QUANTIF.PRIVATEPENSIONAMT, QUANTIF.LIFEINTERESTCUR, QUANTIF.LIFEINTERESTAMT, QUANTIF.C_FINANCIALI_8D659, QUANTIF.C_FINANCIALI_91C75, QUANTIF.INSINTERESTCUR, QUANTIF.INSINTERESTAMT, QUANTIF.INVINTERESTCUR, QUANTIF.INVINTERESTAMT, QUANTIF.REINTERESTCUR, QUANTIF.REINTERESTAMT, QUANTIF.PRIMARYGAPCUR, QUANTIF.PRIMARYGAPAMT, QUANTIF.SECONDARYGAPCUR, QUANTIF.SECONDARYGAPAMT, QUANTIF.TOCONSUMPTIONETM, QUANTIF.TOINTERESTETM, QUANTIF.LOCKPERCFRSTBRNC, QUANTIF.PRFCONSUMPTIONS, QUANTIF.PRFGROSSAMOUNT, QUANTIF.PRFPERCFRSTBRNC, QUANTIF.PRFADDRETIREMENT, QUANTIF.PRFLIFEINTEREST, QUANTIF.PRFINTERFRSTBRNC, QUANTIF.PRFINTERUNIT, QUANTIF.F_OID$_ADDRE_81D21, @ID_ELAB
		FROM C6StagingPeriodico.QUANTIF
		LEFT OUTER JOIN C6StoricoPeriodico.ST_QUANTIF
			ON QUANTIF.OID$ = ST_QUANTIF.OID$
		WHERE ST_QUANTIF.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RMADBKROLE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RMADBKROLE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_RMADBKROLE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_RMADBKROLE
		(OID$, VERSION$, F_PADDRESSBO_22C0C, RMGROUPROLE, F_OID$_RM_4A3B4, ID_ELAB)
		SELECT 
		 RMADBKROLE.OID$, RMADBKROLE.VERSION$, RMADBKROLE.F_PADDRESSBO_22C0C, RMADBKROLE.RMGROUPROLE, RMADBKROLE.F_OID$_RM_4A3B4, @ID_ELAB
		FROM C6StagingPeriodico.RMADBKROLE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_RMADBKROLE
			ON RMADBKROLE.OID$ = ST_RMADBKROLE.OID$
		WHERE ST_RMADBKROLE.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S4_S5_S13_TRAD_UNTIL_LIV3 XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S4_S5_S13_TRAD_UNTIL_LIV3')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3 WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
		(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, ID_ELAB)
		SELECT 
		 S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3, S4_S5_S13_TRAD_UNTIL_LIV3.ORDINAMENTO_GERARCHIA_2, @ID_ELAB
		FROM C6StagingPeriodico.S4_S5_S13_TRAD_UNTIL_LIV3
		LEFT OUTER JOIN C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
			ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ST_S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE
		WHERE ST_S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CONTR_SINTESI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CONTR_SINTESI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_CONTR_SINTESI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_CONTR_SINTESI
		(POSITIONID, DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, ID_ELAB)
		SELECT 
		 SPB_CONTR_SINTESI.POSITIONID, SPB_CONTR_SINTESI.DTTRIM, SPB_CONTR_SINTESI.DTRIFE, SPB_CONTR_SINTESI.RETE, SPB_CONTR_SINTESI.CODFIS, SPB_CONTR_SINTESI.CODCONF, SPB_CONTR_SINTESI.NUMPOL, SPB_CONTR_SINTESI.CONTO, SPB_CONTR_SINTESI.RUBR, SPB_CONTR_SINTESI.CUSTGAR, SPB_CONTR_SINTESI.TIPPROD, SPB_CONTR_SINTESI.CODINT, SPB_CONTR_SINTESI.CODPROD, SPB_CONTR_SINTESI.SUBPROD, SPB_CONTR_SINTESI.MAF, SPB_CONTR_SINTESI.CODABI, SPB_CONTR_SINTESI.PCTKEY, SPB_CONTR_SINTESI.DESTIT, SPB_CONTR_SINTESI.CTV, SPB_CONTR_SINTESI.PARTVIA, SPB_CONTR_SINTESI.PARTVIAAL, SPB_CONTR_SINTESI.DTSOTTOS, SPB_CONTR_SINTESI.RENDINIZ, SPB_CONTR_SINTESI.RENDANNO, SPB_CONTR_SINTESI.VALORE, SPB_CONTR_SINTESI.SUBSET, SPB_CONTR_SINTESI.CVN, SPB_CONTR_SINTESI.QUOTE, @ID_ELAB
		FROM C6StagingPeriodico.SPB_CONTR_SINTESI
		LEFT OUTER JOIN C6StoricoPeriodico.ST_SPB_CONTR_SINTESI
			ON SPB_CONTR_SINTESI.DTTRIM = ST_SPB_CONTR_SINTESI.DTTRIM
			AND SPB_CONTR_SINTESI.DTRIFE = ST_SPB_CONTR_SINTESI.DTRIFE
			AND SPB_CONTR_SINTESI.RETE = ST_SPB_CONTR_SINTESI.RETE
			AND SPB_CONTR_SINTESI.CODFIS = ST_SPB_CONTR_SINTESI.CODFIS
			AND SPB_CONTR_SINTESI.CODCONF = ST_SPB_CONTR_SINTESI.CODCONF
			AND SPB_CONTR_SINTESI.CONTO = ST_SPB_CONTR_SINTESI.CONTO
			AND SPB_CONTR_SINTESI.RUBR = ST_SPB_CONTR_SINTESI.RUBR
			AND SPB_CONTR_SINTESI.CUSTGAR = ST_SPB_CONTR_SINTESI.CUSTGAR
			AND SPB_CONTR_SINTESI.TIPPROD = ST_SPB_CONTR_SINTESI.TIPPROD
			AND SPB_CONTR_SINTESI.CODINT = ST_SPB_CONTR_SINTESI.CODINT
			AND SPB_CONTR_SINTESI.SUBPROD = ST_SPB_CONTR_SINTESI.SUBPROD
			AND SPB_CONTR_SINTESI.CODABI = ST_SPB_CONTR_SINTESI.CODABI
			AND SPB_CONTR_SINTESI.PCTKEY = ST_SPB_CONTR_SINTESI.PCTKEY
		WHERE ST_SPB_CONTR_SINTESI.DTTRIM IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_MIFID')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_MIFID
		(RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, ID_ELAB)
		SELECT 
		 SPB_MIFID.RETE, SPB_MIFID.CODAGENTE, SPB_MIFID.CODICEFISCALE, SPB_MIFID.ACCETTACOMPILAZIONE, SPB_MIFID.CODICEPROFILOASSEGNATO, SPB_MIFID.CODICEPROFILOCALCOLATO, SPB_MIFID.CODICEQUESTIONARIO, SPB_MIFID.DATAFINEVALIDITA, SPB_MIFID.DATAINIZIOVALIDITA, SPB_MIFID.CODICEAGENTE, SPB_MIFID.CODICEAGENTERESPONSABILE, SPB_MIFID.CODICEAGENTEREALE, SPB_MIFID.TIPOQUESTIONARIO, SPB_MIFID.STATUS, @ID_ELAB
		FROM C6StagingPeriodico.SPB_MIFID
		LEFT OUTER JOIN C6StoricoPeriodico.ST_SPB_MIFID
			ON SPB_MIFID.RETE = ST_SPB_MIFID.RETE
			AND SPB_MIFID.CODICEFISCALE = ST_SPB_MIFID.CODICEFISCALE
		WHERE ST_SPB_MIFID.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PROF_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PROF_RISCHIO')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ST_SPB_PROF_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ST_SPB_PROF_RISCHIO
	--		(CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, ID_ELAB)
	--		SELECT 
	--		 CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, @ID_ELAB
	--		FROM C6StagingPeriodico.SPB_PROF_RISCHIO
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TABELLESTORICIZZATE XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TABELLESTORICIZZATE')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ST_TABELLESTORICIZZATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ST_TABELLESTORICIZZATE
	--		(Nome, Inizio, Fine, Durata, Vecchia_Durata, Storicizzata, ID_ELAB)
	--		SELECT 
	--		 Nome, Inizio, Fine, Durata, Vecchia_Durata, Storicizzata, @ID_ELAB
	--		FROM C6StagingPeriodico.TABELLESTORICIZZATE
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TANAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TANAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, ID_ELAB)
		SELECT 
		 TANAB.RETE, TANAB.CODAREA, TANAB.CODPROG, TANAB.CODFIS, TANAB.DTRIF, TANAB.DTFINE, TANAB.DTINI, TANAB.CTVINI, TANAB.DTRENDMAX, TANAB.RENDMAX, TANAB.DTRENDMIN, TANAB.RENDMIN, TANAB.DTCTV, TANAB.CTV, TANAB.RENDATT, TANAB.DTCTVMAX, TANAB.CTVMAX, TANAB.DTCTVMIN, TANAB.CTVMIN, TANAB.CVN, TANAB.CVN_IA, TANAB.CVN_IT, TANAB.APP_INI, TANAB.TOT_APP, TANAB.TOT_LIQ, TANAB.TOT_CED, TANAB.TOT_DIV, TANAB.DCD, TANAB.DCVN, TANAB.SCARTO, TANAB.NTOT_APP, TANAB.NTOT_LIQ, TANAB.RENDATTANN, @ID_ELAB
		FROM C6StagingPeriodico.TANAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_TANAB
			ON TANAB.RETE = ST_TANAB.RETE
			AND TANAB.CODAREA = ST_TANAB.CODAREA
			AND TANAB.CODPROG = ST_TANAB.CODPROG
			AND TANAB.CODFIS = ST_TANAB.CODFIS
			AND TANAB.DTRIF = ST_TANAB.DTRIF
		WHERE ST_TANAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TCPTAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TCPTAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TCPTAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TCPTAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, STLIQ, DTVALORIZ, ID_ELAB)
		SELECT 
		 TCPTAB.RETE, TCPTAB.CODAREA, TCPTAB.CODPROG, TCPTAB.CODFIS, TCPTAB.DTRIF, TCPTAB.TIPPROD, TCPTAB.ISIN, TCPTAB.ID_WADEG, TCPTAB.MAF, TCPTAB.CODCONF, TCPTAB.SUBPROD, TCPTAB.CODPROD, TCPTAB.NUMPOL, TCPTAB.CONTO, TCPTAB.CUSTGAR, TCPTAB.RUBR, TCPTAB.CODABI, TCPTAB.TERMID, TCPTAB.ANNO, TCPTAB.PROG, TCPTAB.SPROG, TCPTAB.DTUSCITA, TCPTAB.DTSOTT, TCPTAB.CTVATT, TCPTAB.DTINGRESSO, TCPTAB.CTVINGRESSO, TCPTAB.DTTRIM, TCPTAB.RENDTRIM, TCPTAB.DTANNO, TCPTAB.RENDANNO, TCPTAB.DTINIZ, TCPTAB.RENDINIZ, TCPTAB.DTININAC, TCPTAB.RENDNAC, TCPTAB.CTVVP, TCPTAB.CVNTRIM, TCPTAB.CVNANNO, TCPTAB.CVNINIZ, TCPTAB.CVNNAC, TCPTAB.CODINT, TCPTAB.VALORE, TCPTAB.STLIQ, TCPTAB.DTVALORIZ, @ID_ELAB
		FROM C6StagingPeriodico.TCPTAB
		INNER JOIN C6StoricoPeriodico.ST_TCPTAB
			ON TCPTAB.RETE = ST_TCPTAB.RETE
			AND TCPTAB.CODAREA = ST_TCPTAB.CODAREA
			AND TCPTAB.CODPROG = ST_TCPTAB.CODPROG
			AND TCPTAB.CODFIS = ST_TCPTAB.CODFIS
			AND TCPTAB.DTRIF = ST_TCPTAB.DTRIF
			AND TCPTAB.TIPPROD = ST_TCPTAB.TIPPROD
			AND TCPTAB.ISIN = ST_TCPTAB.ISIN
			AND TCPTAB.MAF = ST_TCPTAB.MAF
			AND TCPTAB.CODCONF = ST_TCPTAB.CODCONF
			AND TCPTAB.SUBPROD = ST_TCPTAB.SUBPROD
			AND TCPTAB.CODPROD = ST_TCPTAB.CODPROD
			AND TCPTAB.NUMPOL = ST_TCPTAB.NUMPOL
			AND TCPTAB.CONTO = ST_TCPTAB.CONTO
			AND TCPTAB.CUSTGAR = ST_TCPTAB.CUSTGAR
			AND TCPTAB.RUBR = ST_TCPTAB.RUBR
			AND TCPTAB.CODABI = ST_TCPTAB.CODABI
			AND TCPTAB.TERMID = ST_TCPTAB.TERMID
			AND TCPTAB.ANNO = ST_TCPTAB.ANNO
			AND TCPTAB.PROG = ST_TCPTAB.PROG
			AND TCPTAB.SPROG = ST_TCPTAB.SPROG
			AND TCPTAB.DTINGRESSO = ST_TCPTAB.DTINGRESSO
		WHERE ST_TCPTAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TRENAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TRENAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, ID_ELAB)
		SELECT 
		 TRENAB.RETE, TRENAB.CODAREA, TRENAB.CODPROG, TRENAB.CODFIS, TRENAB.DTRIF, TRENAB.DTVALORIZ, TRENAB.CTV, TRENAB.DTINIZ, TRENAB.RENDINIZ, TRENAB.DTTRIM, TRENAB.RENDTRIM, TRENAB.DTANNO, TRENAB.RENDANNO, TRENAB.CVN, TRENAB.CVN_IA, TRENAB.CVN_IT, TRENAB.APP_INI, TRENAB.TOT_APP, TRENAB.TOT_LIQ, TRENAB.TOT_CED, TRENAB.TOT_DIV, TRENAB.DCD, TRENAB.DCVN, TRENAB.SCARTO, TRENAB.NTOT_APP, TRENAB.NTOT_LIQ, TRENAB.RENDATTANN, @ID_ELAB
		FROM C6StagingPeriodico.TRENAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_TRENAB
			ON TRENAB.RETE = ST_TRENAB.RETE
			AND TRENAB.CODAREA = ST_TRENAB.CODAREA
			AND TRENAB.CODPROG = ST_TRENAB.CODPROG
			AND TRENAB.CODFIS = ST_TRENAB.CODFIS
			AND TRENAB.DTRIF = ST_TRENAB.DTRIF
			AND TRENAB.DTVALORIZ = ST_TRENAB.DTVALORIZ
		WHERE ST_TRENAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TSCABP')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TSCABP
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
		SELECT 
		 TSCABP.RETE, TSCABP.CODAREA, TSCABP.CODPROG, TSCABP.CODFIS, TSCABP.DTRIF, TSCABP.TIPPROD, TSCABP.CODCONF, TSCABP.SUBPROD, TSCABP.CODPROD, TSCABP.CONTO, TSCABP.CUSTGAR, TSCABP.RUBR, TSCABP.CODABI, TSCABP.TERMID, TSCABP.ANNO, TSCABP.PROG, TSCABP.DTINGRESSO, TSCABP.ISTITUTO, TSCABP.TIPO_PRODOTT, TSCABP.CONTO_OP, TSCABP.STRUM_FIN, TSCABP.ID_MOVIM, TSCABP.TIPO_OP, TSCABP.RESTART, TSCABP.DT_ING_USC, TSCABP.ING_USC, TSCABP.COD_ERR, TSCABP.DESCR_ERR, TSCABP.DT_ELAB, TSCABP.DT_INS, TSCABP.PCT, TSCABP.PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.TSCABP
		LEFT OUTER JOIN C6StoricoPeriodico.ST_TSCABP
			ON TSCABP.RETE = ST_TSCABP.RETE
			AND TSCABP.CODAREA = ST_TSCABP.CODAREA
			AND TSCABP.CODPROG = ST_TSCABP.CODPROG
			AND TSCABP.CODFIS = ST_TSCABP.CODFIS
		WHERE ST_TSCABP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WANAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WANAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
		SELECT 
		 WANAB.RETE, WANAB.CODAREA, WANAB.CODPROG, WANAB.CODFIS, WANAB.DTRIF, WANAB.DTFINE, WANAB.DTINI, WANAB.CTVINI, WANAB.DTRENDMAX, WANAB.RENDMAX, WANAB.DTRENDMIN, WANAB.RENDMIN, WANAB.DTCTV, WANAB.CTV, WANAB.RENDATT, WANAB.DTCTVMAX, WANAB.CTVMAX, WANAB.DTCTVMIN, WANAB.CTVMIN, WANAB.CVN, WANAB.CVN_IA, WANAB.CVN_IT, WANAB.APP_INI, WANAB.TOT_APP, WANAB.TOT_LIQ, WANAB.TOT_CED, WANAB.TOT_DIV, WANAB.DCD, WANAB.DCVN, WANAB.SCARTO, WANAB.NTOT_APP, WANAB.NTOT_LIQ, @ID_ELAB
		FROM C6StagingPeriodico.WANAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WANAB
			ON WANAB.RETE = ST_WANAB.RETE
			AND WANAB.CODAREA = ST_WANAB.CODAREA
			AND WANAB.CODPROG = ST_WANAB.CODPROG
			AND WANAB.CODFIS = ST_WANAB.CODFIS
			AND WANAB.DTRIF = ST_WANAB.DTRIF
		WHERE ST_WANAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WCPTAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WCPTAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WCPTAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WCPTAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, ID_ELAB)
		SELECT 
		 WCPTAB.RETE, WCPTAB.CODAREA, WCPTAB.CODPROG, WCPTAB.CODFIS, WCPTAB.DTRIF, WCPTAB.TIPPROD, WCPTAB.ISIN, WCPTAB.ID_WADEG, WCPTAB.MAF, WCPTAB.CODCONF, WCPTAB.SUBPROD, WCPTAB.CODPROD, WCPTAB.NUMPOL, WCPTAB.CONTO, WCPTAB.CUSTGAR, WCPTAB.RUBR, WCPTAB.CODABI, WCPTAB.TERMID, WCPTAB.ANNO, WCPTAB.PROG, WCPTAB.SPROG, WCPTAB.DTUSCITA, WCPTAB.DTSOTT, WCPTAB.CTVATT, WCPTAB.DTINGRESSO, WCPTAB.CTVINGRESSO, WCPTAB.DTTRIM, WCPTAB.RENDTRIM, WCPTAB.DTANNO, WCPTAB.RENDANNO, WCPTAB.DTINIZ, WCPTAB.RENDINIZ, WCPTAB.DTININAC, WCPTAB.RENDNAC, WCPTAB.CTVVP, WCPTAB.CVNTRIM, WCPTAB.CVNANNO, WCPTAB.CVNINIZ, WCPTAB.CVNNAC, WCPTAB.CODINT, WCPTAB.VALORE, @ID_ELAB
		FROM C6StagingPeriodico.WCPTAB
		INNER JOIN C6StoricoPeriodico.ST_WCPTAB
			ON WCPTAB.RETE = ST_WCPTAB.RETE
			AND WCPTAB.CODAREA = ST_WCPTAB.CODAREA
			AND WCPTAB.CODPROG = ST_WCPTAB.CODPROG
			AND WCPTAB.CODFIS = ST_WCPTAB.CODFIS
			AND WCPTAB.DTRIF = ST_WCPTAB.DTRIF
			AND WCPTAB.TIPPROD = ST_WCPTAB.TIPPROD
			AND WCPTAB.ISIN = ST_WCPTAB.ISIN
			AND WCPTAB.MAF = ST_WCPTAB.MAF
			AND WCPTAB.CODCONF = ST_WCPTAB.CODCONF
			AND WCPTAB.SUBPROD = ST_WCPTAB.SUBPROD
			AND WCPTAB.CODPROD = ST_WCPTAB.CODPROD
			AND WCPTAB.NUMPOL = ST_WCPTAB.NUMPOL
			AND WCPTAB.CONTO = ST_WCPTAB.CONTO
			AND WCPTAB.CUSTGAR = ST_WCPTAB.CUSTGAR
			AND WCPTAB.RUBR = ST_WCPTAB.RUBR
			AND WCPTAB.CODABI = ST_WCPTAB.CODABI
			AND WCPTAB.TERMID = ST_WCPTAB.TERMID
			AND WCPTAB.ANNO = ST_WCPTAB.ANNO
			AND WCPTAB.PROG = ST_WCPTAB.PROG
			AND WCPTAB.SPROG = ST_WCPTAB.SPROG
			AND WCPTAB.DTINGRESSO = ST_WCPTAB.DTINGRESSO
		WHERE ST_WCPTAB.RETE IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX WMANDATI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WMANDATI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WMANDATI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WMANDATI
		(PIVA, CODMAND, CODBREVE, ID_ELAB)
		SELECT
		 WMANDATI.PIVA, WMANDATI.CODMAND, WMANDATI.CODBREVE, @ID_ELAB
		FROM C6StagingPeriodico.WMANDATI
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WMANDATI
			ON WMANDATI.CODMAND = ST_WMANDATI.CODMAND
		WHERE ST_WMANDATI.CODMAND IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WRENAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WRENAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
		SELECT 
		 WRENAB.RETE, WRENAB.CODAREA, WRENAB.CODPROG, WRENAB.CODFIS, WRENAB.DTRIF, WRENAB.DTVALORIZ, WRENAB.CTV, WRENAB.DTINIZ, WRENAB.RENDINIZ, WRENAB.DTTRIM, WRENAB.RENDTRIM, WRENAB.DTANNO, WRENAB.RENDANNO, WRENAB.CVN, WRENAB.CVN_IA, WRENAB.CVN_IT, WRENAB.APP_INI, WRENAB.TOT_APP, WRENAB.TOT_LIQ, WRENAB.TOT_CED, WRENAB.TOT_DIV, WRENAB.DCD, WRENAB.DCVN, WRENAB.SCARTO, WRENAB.NTOT_APP, WRENAB.NTOT_LIQ, @ID_ELAB
		FROM C6StagingPeriodico.WRENAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WRENAB
			ON WRENAB.RETE = ST_WRENAB.RETE
			AND WRENAB.CODAREA = ST_WRENAB.CODAREA
			AND WRENAB.CODPROG = ST_WRENAB.CODPROG
			AND WRENAB.CODFIS = ST_WRENAB.CODFIS
			AND WRENAB.DTRIF = ST_WRENAB.DTRIF
			AND WRENAB.DTVALORIZ = ST_WRENAB.DTVALORIZ
		WHERE ST_WRENAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSCABP')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSCABP
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
		SELECT 
		 WSCABP.RETE, WSCABP.CODAREA, WSCABP.CODPROG, WSCABP.CODFIS, WSCABP.DTRIF, WSCABP.TIPPROD, WSCABP.CODCONF, WSCABP.SUBPROD, WSCABP.CODPROD, WSCABP.CONTO, WSCABP.CUSTGAR, WSCABP.RUBR, WSCABP.CODABI, WSCABP.TERMID, WSCABP.ANNO, WSCABP.PROG, WSCABP.DTINGRESSO, WSCABP.ISTITUTO, WSCABP.TIPO_PRODOTT, WSCABP.CONTO_OP, WSCABP.STRUM_FIN, WSCABP.ID_MOVIM, WSCABP.TIPO_OP, WSCABP.RESTART, WSCABP.DT_ING_USC, WSCABP.ING_USC, WSCABP.COD_ERR, WSCABP.DESCR_ERR, WSCABP.DT_ELAB, WSCABP.DT_INS, WSCABP.PCT, WSCABP.PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.WSCABP
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSCABP
			ON WSCABP.RETE = ST_WSCABP.RETE
			AND WSCABP.CODAREA = ST_WSCABP.CODAREA
			AND WSCABP.CODPROG = ST_WSCABP.CODPROG
			AND WSCABP.CODFIS = ST_WSCABP.CODFIS
		WHERE ST_WSCABP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIAN XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIAN')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIAN WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIAN
		(DTTRIM, RETE, CODFIS, NOME, COGNOME, DTNASCI, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, CODPROF, ID_ELAB)
		SELECT 
		 WSEIAN.DTTRIM, WSEIAN.RETE, WSEIAN.CODFIS, WSEIAN.NOME, WSEIAN.COGNOME, WSEIAN.DTNASCI, WSEIAN.INDIRIZZO, WSEIAN.CAP, WSEIAN.CITTA, WSEIAN.PROVINCIA, WSEIAN.NAZIONE, WSEIAN.CODPROF, @ID_ELAB
		FROM C6StagingPeriodico.WSEIAN2 WSEIAN
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEIAN
			ON WSEIAN.DTTRIM = ST_WSEIAN.DTTRIM
			AND WSEIAN.RETE = ST_WSEIAN.RETE
			AND WSEIAN.CODFIS = ST_WSEIAN.CODFIS
		WHERE ST_WSEIAN.DTTRIM IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEICS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEICS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEICS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEICS
		(DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, ID_ELAB)
		SELECT 
		 WSEICS.DTTRIM, WSEICS.DTRIFE, WSEICS.RETE, WSEICS.CODFIS, WSEICS.CODCONF, WSEICS.NUMPOL, WSEICS.CONTO, WSEICS.RUBR, WSEICS.CUSTGAR, WSEICS.TIPPROD, WSEICS.CODINT, WSEICS.CODPROD, WSEICS.SUBPROD, WSEICS.MAF, WSEICS.CODABI, WSEICS.PCTKEY, WSEICS.DESTIT, WSEICS.CTV, WSEICS.PARTVIA, WSEICS.PARTVIAAL, WSEICS.DTSOTTOS, WSEICS.RENDINIZ, WSEICS.RENDANNO, WSEICS.VALORE, WSEICS.SUBSET, WSEICS.CVN, WSEICS.QUOTE, @ID_ELAB
		FROM C6StagingPeriodico.WSEICS
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEICS
			ON WSEICS.DTTRIM = ST_WSEICS.DTTRIM
			AND WSEICS.DTRIFE = ST_WSEICS.DTRIFE
			AND WSEICS.RETE = ST_WSEICS.RETE
			AND WSEICS.CODFIS = ST_WSEICS.CODFIS
			AND WSEICS.CODCONF = ST_WSEICS.CODCONF
			AND WSEICS.CONTO = ST_WSEICS.CONTO
			AND WSEICS.RUBR = ST_WSEICS.RUBR
			AND WSEICS.CUSTGAR = ST_WSEICS.CUSTGAR
			AND WSEICS.TIPPROD = ST_WSEICS.TIPPROD
			AND WSEICS.CODINT = ST_WSEICS.CODINT
			AND WSEICS.SUBPROD = ST_WSEICS.SUBPROD
			AND WSEICS.CODABI = ST_WSEICS.CODABI
			AND WSEICS.PCTKEY = ST_WSEICS.PCTKEY
		WHERE ST_WSEICS.DTTRIM IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIPV XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIPV')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIPV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIPV
		(DTTRIM, RETE, CODFIS, CODCONF, IMPVER, DTRIFE, SUBSET, ID_ELAB)
		SELECT 
		 WSEIPV.DTTRIM, WSEIPV.RETE, WSEIPV.CODFIS, WSEIPV.CODCONF, WSEIPV.IMPVER, WSEIPV.DTRIFE, WSEIPV.SUBSET, @ID_ELAB
		FROM C6StagingPeriodico.WSEIPV
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEIPV
			ON WSEIPV.RETE = ST_WSEIPV.RETE
			AND WSEIPV.CODFIS = ST_WSEIPV.CODFIS
			AND WSEIPV.CODCONF = ST_WSEIPV.CODCONF
			AND WSEIPV.DTRIFE = ST_WSEIPV.DTRIFE
		WHERE ST_WSEIPV.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIUL
		(DTTRIM, RETE, CODFIS, CODCONF, CODINT, SUBPROD, CTV, DTRIFE, ISINFIT, ISIN, MAF, SUBSET, ID_ELAB)
		SELECT 
		 WSEIUL.DTTRIM, WSEIUL.RETE, WSEIUL.CODFIS, WSEIUL.CODCONF, WSEIUL.CODINT, WSEIUL.SUBPROD, WSEIUL.CTV, WSEIUL.DTRIFE, WSEIUL.ISINFIT, WSEIUL.ISIN, WSEIUL.MAF, WSEIUL.SUBSET, @ID_ELAB
		FROM C6StagingPeriodico.WSEIUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEIUL
			ON WSEIUL.RETE = ST_WSEIUL.RETE
			AND WSEIUL.CODCONF = ST_WSEIUL.CODCONF
			AND WSEIUL.CODINT = ST_WSEIUL.CODINT
			AND WSEIUL.SUBPROD = ST_WSEIUL.SUBPROD
			AND WSEIUL.DTRIFE = ST_WSEIUL.DTRIFE
		WHERE ST_WSEIUL.RETE IS NULL
	END
 

	-- XX -- XX -- XX AGGIORNAMENTO DATI C6StagingPeriodico.TabelleStoricizzate XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6StagingPeriodico.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END

END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_STORICIZZAZIONE_OLD]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		paolo giovanetti
-- Create date: 6 marzo 2009
-- Description:	storicizzazione STAGING
-- =============================================
CREATE PROCEDURE [C6StagingPeriodico].[SRV_STORICIZZAZIONE_OLD]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico espresso in giorni

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MartPeriodico.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENOTH XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENOTH')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ACBDENOTH WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ACBDENOTH
		(OID$, VERSION$, BDPERCENTAGE, BDBETA, F_OID$_PASSE_CDF1A, F_PFINANCIAL_815C0, ID_ELAB)
		SELECT 
		 OID$, VERSION$, BDPERCENTAGE, BDBETA, F_OID$_PASSE_CDF1A, F_PFINANCIAL_815C0, @ID_ELAB
		FROM C6StagingPeriodico.ACBDENOTH
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENTRY XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENTRY')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ACBDENTRY WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ACBDENTRY
		(OID$, VERSION$, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID$_PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, ID_ELAB)
		SELECT 
		 OID$, VERSION$, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID$_PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, @ID_ELAB
		FROM C6StagingPeriodico.ACBDENTRY
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADBKBASE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADBKBASE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ADBKBASE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ADBKBASE
		(OID$, VERSION$, ADBKID, INSTID, C_ADBKBASE_L_69013, TYPE$_ADBKST_AC419, C_CLIENTNAME_1A67C, C_CLIENTNAME_1E844, F_OID$_PERSO_06FCB, C_CLIENTNAME_8B1DB, C_CLIENTNAME_B4F69, C_CLIENTNAME_EA63A, C_ADBKBASE_D_C669E, C_ADBKBASE_L_1DD83, C_ADBKBASE_L_F8E21, C_ADBKBASE_L_2805C, C_ADBKBASE_T_C94F1, F_OID$_PROFI_98D05, F_OID$_TAXRE_4AC4C, C_CURRENCYSY_36ED7, F_OID$_REFER_66AC8, C_ADBKBASE_M_AE5A8, C_ADBKBASE_A_36B89, C_CURRENCYSY_0483B, C_VALUE_506AF, F_OID$_SOURC_E66C5, F_OID$_QUALI_027C5, F_OID$_BLOCK_A4386, F_OID$_SOURC_3AA10, TYPE$_ADBKTY_20093, F_PCUSTOMGRO_9BC08, F_PENTITY_AD_29FE1, ID_ELAB)
		SELECT 
		 OID$, VERSION$, ADBKID, INSTID, C_ADBKBASE_L_69013, TYPE$_ADBKST_AC419, C_CLIENTNAME_1A67C, C_CLIENTNAME_1E844, F_OID$_PERSO_06FCB, C_CLIENTNAME_8B1DB, C_CLIENTNAME_B4F69, C_CLIENTNAME_EA63A, C_ADBKBASE_D_C669E, C_ADBKBASE_L_1DD83, C_ADBKBASE_L_F8E21, C_ADBKBASE_L_2805C, C_ADBKBASE_T_C94F1, F_OID$_PROFI_98D05, F_OID$_TAXRE_4AC4C, C_CURRENCYSY_36ED7, F_OID$_REFER_66AC8, C_ADBKBASE_M_AE5A8, C_ADBKBASE_A_36B89, C_CURRENCYSY_0483B, C_VALUE_506AF, F_OID$_SOURC_E66C5, F_OID$_QUALI_027C5, F_OID$_BLOCK_A4386, F_OID$_SOURC_3AA10, TYPE$_ADBKTY_20093, F_PCUSTOMGRO_9BC08, F_PENTITY_AD_29FE1, @ID_ELAB
		FROM C6StagingPeriodico.ADBKBASE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADS4WS_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ADS4WS_PROMOTORI
		(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, Telefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
		SELECT 
		 Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, Telefono, TelefonoAgenzia1, TelefonoAgenzia2, @ID_ELAB
		FROM C6StagingPeriodico.ADS4WS_PROMOTORI
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AGENTBASE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AGENTBASE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_AGENTBASE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_AGENTBASE
		(OID$, VERSION$, AGENTBASEID, INSTID, TYPE$_AGENTT_4FF1A, AGENTBASESTATUS, CATEGORY, ROLE, COUNTRY, REGION, TAXPAYERID, C_AGENTNAME__D3943, C_AGENTNAME__B1EC3, F_OID$_PERSO_762E5, C_AGENTNAME__ABD50, C_AGENTNAME__7D056, C_AGENTNAME__722CD, LOGINID, ICEPATH, F_PAGENTBASE_7B96C, F_OID$_AGENT_DB156, F_PENTITY_AG_79C9C, ID_ELAB)
		SELECT 
		 OID$, VERSION$, AGENTBASEID, INSTID, TYPE$_AGENTT_4FF1A, AGENTBASESTATUS, CATEGORY, ROLE, COUNTRY, REGION, TAXPAYERID, C_AGENTNAME__D3943, C_AGENTNAME__B1EC3, F_OID$_PERSO_762E5, C_AGENTNAME__ABD50, C_AGENTNAME__7D056, C_AGENTNAME__722CD, LOGINID, ICEPATH, F_PAGENTBASE_7B96C, F_OID$_AGENT_DB156, F_PENTITY_AG_79C9C, @ID_ELAB
		FROM C6StagingPeriodico.AGENTBASE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_ASSET_CLASS_PER_PROMET XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_ASSET_CLASS_PER_PROMET')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET
		(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
		SELECT 
		 CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, @ID_ELAB
		FROM C6StagingPeriodico.ALL_ASSET_CLASS_PER_PROMET
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_PB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CF_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CF_PB
		(ID_CLI, NOME, COGNOME, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, CODICEFISCALE, ID_ELAB)
		SELECT 
		 ID_CLI, NOME, COGNOME, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, CODICEFISCALE, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CF_PB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_STATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_STATO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CF_STATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CF_STATO
		(CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, ID_ELAB)
		SELECT 
		 CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CF_STATO
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CONSUL_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CONSUL_ASUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CONSUL_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CONSUL_ASUL
		(CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, ID_ELAB)
		SELECT 
		 CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CONSUL_ASUL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATR_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATR_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_PATR_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_PATR_TERZI
		(CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CAPITALE_INVESTITO, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATE_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, TIPO_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797A, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESCR, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, ID_ELAB)
		SELECT 
		 CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CAPITALE_INVESTITO, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATE_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, TIPO_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797A, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESCR, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, @ID_ELAB
		FROM C6StagingPeriodico.ALL_PATR_TERZI
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_POS_CONS_CAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_POS_CONS_CAT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_POS_CONS_CAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_POS_CONS_CAT
		(CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, C_CTVNEEDARE_EA4FB, PK_PRC, TIPO_PROGETTO, ID_MONITORAGGIO, NOME_PROGETTO, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_INVESTIMEN_60625, CONTROVALORE_PER_INV, PERCENTUALE_MODELLO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, ID_ELAB)
		SELECT 
		 CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, C_CTVNEEDARE_EA4FB, PK_PRC, TIPO_PROGETTO, ID_MONITORAGGIO, NOME_PROGETTO, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_INVESTIMEN_60625, CONTROVALORE_PER_INV, PERCENTUALE_MODELLO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, @ID_ELAB
		FROM C6StagingPeriodico.ALL_POS_CONS_CAT
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PROPOSTA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PROPOSTA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_PROPOSTA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_PROPOSTA
		(AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, ID_ELAB)
		SELECT 
		 AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, @ID_ELAB
		FROM C6StagingPeriodico.ALL_PROPOSTA
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREEDIBISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREEDIBISOGNO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_AREEDIBISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_AREEDIBISOGNO
		(AREAID, AREANAME, AREASORTORDER, ID_ELAB)
		SELECT 
		 AREAID, AREANAME, AREASORTORDER, @ID_ELAB
		FROM C6StagingPeriodico.AREEDIBISOGNO
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_1_E_2_ORDINATE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_1_E_2_ORDINATE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE
		(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ASSETCLASSNAME, ORDINAMENTO_ASSET, ID_ELAB)
		SELECT 
		 CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ASSETCLASSNAME, ORDINAMENTO_ASSET, @ID_ELAB
		FROM C6StagingPeriodico.ASSET_1_E_2_ORDINATE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ASSETCLASS
		(OID$, VERSION$, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID$_ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ORDINE, ID_ELAB)
		SELECT 
		 OID$, VERSION$, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID$_ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ORDINE, @ID_ELAB
		FROM C6StagingPeriodico.ASSETCLASS
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX C_BO_453FB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'C_BO_453FB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_C_BO_453FB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_C_BO_453FB
		(OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, ID_ELAB)
		SELECT 
		 OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, @ID_ELAB
		FROM C6StagingPeriodico.C_BO_453FB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATINAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATINAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CATINAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CATINAREA
		(OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, ID_ELAB)
		SELECT 
		 OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, @ID_ELAB
		FROM C6StagingPeriodico.CATINAREA
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATITEMREF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATITEMREF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CATITEMREF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CATITEMREF
		(OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, ID_ELAB)
		SELECT 
		 OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, @ID_ELAB
		FROM C6StagingPeriodico.CATITEMREF
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CLIENTI_CON_RNA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CLIENTI_CON_RNA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CLIENTI_CON_RNA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CLIENTI_CON_RNA
           ([Rete]
           ,[CodicePB]
           ,[CodiceFiscale]
           ,[Percentuale]
           ,[DataCalcolo]
		   ,ID_ELAB)
		SELECT [Rete]
           ,[CodicePB]
           ,[CodiceFiscale]
           ,[Percentuale]
           ,[DataCalcolo]
		   ,@ID_ELAB ID_ELAB
		FROM C6StagingPeriodico.CLIENTI_CON_RNA
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CONO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONO
		(OID$, VERSION$, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, ID_ELAB)
		SELECT 
		 OID$, VERSION$, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, @ID_ELAB
		FROM C6StagingPeriodico.CONO
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONSAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONSAREA
		(OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, ID_ELAB)
		SELECT 
		 OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, @ID_ELAB
		FROM C6StagingPeriodico.CONSAREA
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONSUL
		(OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, ID_ELAB)
		SELECT 
		 OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, @ID_ELAB
		FROM C6StagingPeriodico.CONSUL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INDREND XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INDREND')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_INDREND WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_INDREND
		(OID$, VERSION$, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, ID_ELAB)
		SELECT 
		 OID$, VERSION$, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, @ID_ELAB
		FROM C6StagingPeriodico.INDREND
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INSTRBDS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INSTRBDS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_INSTRBDS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_INSTRBDS
		(OID$, VERSION$, BDISIN, BDMAF, F_OID$_PCATA_5DDA6, PROVENIENZA, ID_ELAB)
		SELECT 
		 OID$, VERSION$, BDISIN, BDMAF, F_OID$_PCATA_5DDA6, PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.INSTRBDS
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NEEDAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NEEDAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_NEEDAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_NEEDAREA
		(OID$, VERSION$, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, ID_ELAB)
		SELECT 
		 OID$, VERSION$, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, @ID_ELAB
		FROM C6StagingPeriodico.NEEDAREA
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NOME_PROGETTO_BOZZA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NOME_PROGETTO_BOZZA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA
		(ADBKID, INSTID, NUOVO_NOME_PROGETTO, C_PROJECTIDR_51E22, NEEDAREA, ID_ELAB)
		SELECT 
		 ADBKID, INSTID, NUOVO_NOME_PROGETTO, C_PROJECTIDR_51E22, NEEDAREA, @ID_ELAB
		FROM C6StagingPeriodico.NOME_PROGETTO_BOZZA
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX OTHINTRST XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'OTHINTRST')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_OTHINTRST WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_OTHINTRST
		(OID$, VERSION$, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, ID_ELAB)
		SELECT 
		 OID$, VERSION$, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, @ID_ELAB
		FROM C6StagingPeriodico.OTHINTRST
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PHOTO_DATA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PHOTO_DATA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PHOTO_DATA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PHOTO_DATA
		(OID_, VERSION_, ADBKID, INSTID, C_DATAREQ_EB2B5, TYPE__TYPE_7CAB6, TYPE__STATUS_1E30E, C_DATASALVAT_D40E3, C_CTVINV_990D8, C_CTVRIS_43FEA, C_CTVLIQ_54D1B, C_CTVPRE_A0E49, C_CTVEXT_34DCC, C_CTVCC_E242D, C_CTVNA_473EA, C_VAR_16494, C_COPVAR_5C6E5, ID_ELAB)
		SELECT 
		 OID_, VERSION_, ADBKID, INSTID, C_DATAREQ_EB2B5, TYPE__TYPE_7CAB6, TYPE__STATUS_1E30E, C_DATASALVAT_D40E3, C_CTVINV_990D8, C_CTVRIS_43FEA, C_CTVLIQ_54D1B, C_CTVPRE_A0E49, C_CTVEXT_34DCC, C_CTVCC_E242D, C_CTVNA_473EA, C_VAR_16494, C_COPVAR_5C6E5, @ID_ELAB
		FROM C6StagingPeriodico.PHOTO_DATA
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PORTMOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PORTMOD')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PORTMOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PORTMOD
		(OID$, VERSION$, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, ID_ELAB)
		SELECT 
		 OID$, VERSION$, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, @ID_ELAB
		FROM C6StagingPeriodico.PORTMOD
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX POSITION XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'POSITION')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_POSITION WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_POSITION
		(OID$, VERSION$, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE$_CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID$_POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, ID_ELAB)
		SELECT 
		 OID$, VERSION$, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE$_CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID$_POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, @ID_ELAB
		FROM C6StagingPeriodico.POSITION
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PRCONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PRCONSUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PRCONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PRCONSUL
		(OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, ID_ELAB)
		SELECT 
		 OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, @ID_ELAB
		FROM C6StagingPeriodico.PRCONSUL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_AGGR XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_AGGR')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PROMETEIA_AGGR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PROMETEIA_AGGR
		(Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, ID_ELAB)
		SELECT 
		 Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, @ID_ELAB
		FROM C6StagingPeriodico.PROMETEIA_AGGR
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX QUANTIF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'QUANTIF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_QUANTIF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_QUANTIF
		(OID$, VERSION$, UPDATEDATE, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONCUR, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID$_ADDRE_81D21, ID_ELAB)
		SELECT 
		 OID$, VERSION$, UPDATEDATE, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONCUR, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID$_ADDRE_81D21, @ID_ELAB
		FROM C6StagingPeriodico.QUANTIF
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RMADBKROLE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RMADBKROLE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_RMADBKROLE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_RMADBKROLE
		(OID$, VERSION$, F_PADDRESSBO_22C0C, RMGROUPROLE, F_OID$_RM_4A3B4, ID_ELAB)
		SELECT 
		 OID$, VERSION$, F_PADDRESSBO_22C0C, RMGROUPROLE, F_OID$_RM_4A3B4, @ID_ELAB
		FROM C6StagingPeriodico.RMADBKROLE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S4_S5_S13_TRAD_UNTIL_LIV3 XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S4_S5_S13_TRAD_UNTIL_LIV3')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3 WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
		(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, ID_ELAB)
		SELECT 
		 DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, @ID_ELAB
		FROM C6StagingPeriodico.S4_S5_S13_TRAD_UNTIL_LIV3
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CONTR_SINTESI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CONTR_SINTESI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_CONTR_SINTESI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_CONTR_SINTESI
		(POSITIONID, DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, ID_ELAB)
		SELECT 
		 POSITIONID, DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, @ID_ELAB
		FROM C6StagingPeriodico.SPB_CONTR_SINTESI
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_MIFID')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_MIFID
		(RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, ID_ELAB)
		SELECT 
		 RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, @ID_ELAB
		FROM C6StagingPeriodico.SPB_MIFID
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PROF_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PROF_RISCHIO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_PROF_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_PROF_RISCHIO
		(CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, ID_ELAB)
		SELECT 
		 CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, @ID_ELAB
		FROM C6StagingPeriodico.SPB_PROF_RISCHIO
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TABELLESTORICIZZATE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TABELLESTORICIZZATE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TABELLESTORICIZZATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TABELLESTORICIZZATE
		(Nome, Inizio, Fine, Durata, Vecchia_Durata, Storicizzata, ID_ELAB)
		SELECT 
		 Nome, Inizio, Fine, Durata, Vecchia_Durata, Storicizzata, @ID_ELAB
		FROM C6StagingPeriodico.TABELLESTORICIZZATE
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TANAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TANAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, @ID_ELAB
		FROM C6StagingPeriodico.TANAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TCPTAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TCPTAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TCPTAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TCPTAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, STLIQ, DTVALORIZ, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, STLIQ, DTVALORIZ, @ID_ELAB
		FROM C6StagingPeriodico.TCPTAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TRENAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TRENAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, @ID_ELAB
		FROM C6StagingPeriodico.TRENAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TSCABP')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TSCABP
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.TSCABP
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WANAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WANAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, @ID_ELAB
		FROM C6StagingPeriodico.WANAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WCPTAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WCPTAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WCPTAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WCPTAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, @ID_ELAB
		FROM C6StagingPeriodico.WCPTAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WRENAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WRENAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, @ID_ELAB
		FROM C6StagingPeriodico.WRENAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSCABP')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSCABP
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
		SELECT 
		 RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.WSCABP
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIAN XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIAN')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIAN WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIAN
		(DTTRIM, RETE, CODFIS, NOME, COGNOME, DTNASCI, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, CODPROF, ID_ELAB)
		SELECT 
		 DTTRIM, RETE, CODFIS, NOME, COGNOME, DTNASCI, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, CODPROF, @ID_ELAB
		FROM C6StagingPeriodico.WSEIAN
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEICS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEICS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEICS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEICS
		(DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, ID_ELAB)
		SELECT 
		 DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, @ID_ELAB
		FROM C6StagingPeriodico.WSEICS
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIPV XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIPV')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIPV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIPV
		(DTTRIM, RETE, CODFIS, CODCONF, IMPVER, DTRIFE, SUBSET, ID_ELAB)
		SELECT 
		 DTTRIM, RETE, CODFIS, CODCONF, IMPVER, DTRIFE, SUBSET, @ID_ELAB
		FROM C6StagingPeriodico.WSEIPV
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIUL
		(DTTRIM, RETE, CODFIS, CODCONF, CODINT, SUBPROD, CTV, DTRIFE, ISINFIT, ISIN, MAF, SUBSET, ID_ELAB)
		SELECT 
		 DTTRIM, RETE, CODFIS, CODCONF, CODINT, SUBPROD, CTV, DTRIFE, ISINFIT, ISIN, MAF, SUBSET, @ID_ELAB
		FROM C6StagingPeriodico.WSEIUL
	END
 

	-- XX -- XX -- XX AGGIORNAMENTO DATI C6StagingPeriodico.TabelleStoricizzate XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6StagingPeriodico.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END

END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_STORICIZZAZIONE_preAladdin]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		paolo giovanetti
-- Create date: 6 marzo 2009
-- Description:	storicizzazione STAGING
-- =============================================
CREATE procedure [C6StagingPeriodico].[SRV_STORICIZZAZIONE_preAladdin]
	@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	DECLARE @ID_ELAB INT			-- Elaborazione da storicizzare
	DECLARE @MIN_ID_ELAB AS INT		-- Elaborazione vecchia da eliminare dallo storico
	DECLARE @TempoStoricoC6 AS INT	-- Numero di giorni di vita dello storico espresso in giorni

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MartPeriodico.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MartPeriodico.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENOTH XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENOTH')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ACBDENOTH WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ACBDENOTH
		(OID$, VERSION$, BDPERCENTAGE, BDBETA, F_OID$_PASSE_CDF1A, F_PFINANCIAL_815C0, ID_ELAB)
		SELECT 
		 ACBDENOTH.OID$, ACBDENOTH.VERSION$, ACBDENOTH.BDPERCENTAGE, ACBDENOTH.BDBETA, ACBDENOTH.F_OID$_PASSE_CDF1A, ACBDENOTH.F_PFINANCIAL_815C0, @ID_ELAB
		FROM C6StagingPeriodico.ACBDENOTH
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ACBDENOTH
			ON ACBDENOTH.OID$ = ST_ACBDENOTH.OID$
		WHERE ST_ACBDENOTH.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ACBDENTRY XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ACBDENTRY')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ACBDENTRY WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ACBDENTRY
		(OID$, VERSION$, F_PINDEXBREA_08079, F_PINSTRUMEN_FBCDE, BDPERCENTAGE, BDBETA, F_OID$_PASSE_B8A1E, F_PFINANCIAL_65EBB, F_PFINANCIAL_C2FD3, ID_ELAB)
		SELECT 
		 ACBDENTRY.OID$, ACBDENTRY.VERSION$, ACBDENTRY.F_PINDEXBREA_08079, ACBDENTRY.F_PINSTRUMEN_FBCDE, ACBDENTRY.BDPERCENTAGE, ACBDENTRY.BDBETA, ACBDENTRY.F_OID$_PASSE_B8A1E, ACBDENTRY.F_PFINANCIAL_65EBB, ACBDENTRY.F_PFINANCIAL_C2FD3, @ID_ELAB
		FROM C6StagingPeriodico.ACBDENTRY
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ACBDENTRY
			ON ACBDENTRY.OID$ = ST_ACBDENTRY.OID$
		WHERE ST_ACBDENTRY.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADBKBASE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADBKBASE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ADBKBASE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ADBKBASE
		(OID$, VERSION$, ADBKID, INSTID, C_ADBKBASE_L_69013, TYPE$_ADBKST_AC419, C_CLIENTNAME_1A67C, C_CLIENTNAME_1E844, F_OID$_PERSO_06FCB, C_CLIENTNAME_8B1DB, C_CLIENTNAME_B4F69, C_CLIENTNAME_EA63A, C_ADBKBASE_D_C669E, C_ADBKBASE_L_1DD83, C_ADBKBASE_L_F8E21, C_ADBKBASE_L_2805C, C_ADBKBASE_T_C94F1, F_OID$_PROFI_98D05, F_OID$_TAXRE_4AC4C, C_CURRENCYSY_36ED7, F_OID$_REFER_66AC8, C_ADBKBASE_M_AE5A8, C_ADBKBASE_A_36B89, C_CURRENCYSY_0483B, C_VALUE_506AF, F_OID$_SOURC_E66C5, F_OID$_QUALI_027C5, F_OID$_BLOCK_A4386, F_OID$_SOURC_3AA10, TYPE$_ADBKTY_20093, F_PCUSTOMGRO_9BC08, F_PENTITY_AD_29FE1, ID_ELAB)
		SELECT 
		 ADBKBASE.OID$, ADBKBASE.VERSION$, ADBKBASE.ADBKID, ADBKBASE.INSTID, ADBKBASE.C_ADBKBASE_L_69013, ADBKBASE.TYPE$_ADBKST_AC419, ADBKBASE.C_CLIENTNAME_1A67C, ADBKBASE.C_CLIENTNAME_1E844, ADBKBASE.F_OID$_PERSO_06FCB, ADBKBASE.C_CLIENTNAME_8B1DB, ADBKBASE.C_CLIENTNAME_B4F69, ADBKBASE.C_CLIENTNAME_EA63A, ADBKBASE.C_ADBKBASE_D_C669E, ADBKBASE.C_ADBKBASE_L_1DD83, ADBKBASE.C_ADBKBASE_L_F8E21, ADBKBASE.C_ADBKBASE_L_2805C, ADBKBASE.C_ADBKBASE_T_C94F1, ADBKBASE.F_OID$_PROFI_98D05, ADBKBASE.F_OID$_TAXRE_4AC4C, ADBKBASE.C_CURRENCYSY_36ED7, ADBKBASE.F_OID$_REFER_66AC8, ADBKBASE.C_ADBKBASE_M_AE5A8, ADBKBASE.C_ADBKBASE_A_36B89, ADBKBASE.C_CURRENCYSY_0483B, ADBKBASE.C_VALUE_506AF, ADBKBASE.F_OID$_SOURC_E66C5, ADBKBASE.F_OID$_QUALI_027C5, ADBKBASE.F_OID$_BLOCK_A4386, ADBKBASE.F_OID$_SOURC_3AA10, ADBKBASE.TYPE$_ADBKTY_20093, ADBKBASE.F_PCUSTOMGRO_9BC08, ADBKBASE.F_PENTITY_AD_29FE1, @ID_ELAB
		FROM C6StagingPeriodico.ADBKBASE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ADBKBASE
			ON ADBKBASE.OID$ = ST_ADBKBASE.OID$
		WHERE ST_ADBKBASE.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ADS4WS_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
--	BEGIN
--		DELETE FROM C6StoricoPeriodico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6StoricoPeriodico.ST_ADS4WS_PROMOTORI
--		(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, Telefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
--		SELECT 
--		 ADS4WS_PROMOTORI.Rete, ADS4WS_PROMOTORI.Codice, ADS4WS_PROMOTORI.Cognome, ADS4WS_PROMOTORI.Nome, ADS4WS_PROMOTORI.Prefisso, ADS4WS_PROMOTORI.Firma, ADS4WS_PROMOTORI.DataInizioCollaborazione, ADS4WS_PROMOTORI.DataFineCollaborazione, ADS4WS_PROMOTORI.DataUltimaAggiornamento, ADS4WS_PROMOTORI.CAP, ADS4WS_PROMOTORI.Citta, ADS4WS_PROMOTORI.CittaNascita, ADS4WS_PROMOTORI.DataNascita, ADS4WS_PROMOTORI.Indirizzo, ADS4WS_PROMOTORI.Provincia, ADS4WS_PROMOTORI.Telefono, ADS4WS_PROMOTORI.TelefonoAgenzia1, ADS4WS_PROMOTORI.TelefonoAgenzia2, @ID_ELAB
--		FROM C6StagingPeriodico.ADS4WS_PROMOTORI
--		LEFT OUTER JOIN C6StoricoPeriodico.ST_ADS4WS_PROMOTORI
--			ON ADS4WS_PROMOTORI.Firma = ST_ADS4WS_PROMOTORI.Firma
--		WHERE ST_ADS4WS_PROMOTORI.Firma IS NULL
--	END
-- 

--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ADS4WS_PROMOTORI')
--		BEGIN
--			DELETE FROM C6Storicoperiodico.ST_ADS4WS_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--			INSERT INTO C6Storicoperiodico.ST_ADS4WS_PROMOTORI
--			(Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, PrefissoTelefono, TelefonoAgenzia1, TelefonoAgenzia2, ID_ELAB)
--			SELECT Rete, Codice, Cognome, Nome, Prefisso, Firma, DataInizioCollaborazione, DataFineCollaborazione, DataUltimaAggiornamento, CAP, Citta, CittaNascita, DataNascita, Indirizzo, Provincia, PrefissoTelefono, TelefonoAgenzia1, TelefonoAgenzia2, @ID_ELAB 
--			FROM C6Staging.ADS4WS_PROMOTORI
-- 		END
-- 
	--XXXXXXXXXXXXXXXXXXXXXXXX AGENTBASE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AGENTBASE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_AGENTBASE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_AGENTBASE
		(OID$, VERSION$, AGENTBASEID, INSTID, TYPE$_AGENTT_4FF1A, AGENTBASESTATUS, CATEGORY, ROLE, COUNTRY, REGION, TAXPAYERID, C_AGENTNAME__D3943, C_AGENTNAME__B1EC3, F_OID$_PERSO_762E5, C_AGENTNAME__ABD50, C_AGENTNAME__7D056, C_AGENTNAME__722CD, LOGINID, ICEPATH, F_PAGENTBASE_7B96C, F_OID$_AGENT_DB156, F_PENTITY_AG_79C9C, ID_ELAB)
		SELECT 
		 AGENTBASE.OID$, AGENTBASE.VERSION$, AGENTBASE.AGENTBASEID, AGENTBASE.INSTID, AGENTBASE.TYPE$_AGENTT_4FF1A, AGENTBASE.AGENTBASESTATUS, AGENTBASE.CATEGORY, AGENTBASE.ROLE, AGENTBASE.COUNTRY, AGENTBASE.REGION, AGENTBASE.TAXPAYERID, AGENTBASE.C_AGENTNAME__D3943, AGENTBASE.C_AGENTNAME__B1EC3, AGENTBASE.F_OID$_PERSO_762E5, AGENTBASE.C_AGENTNAME__ABD50, AGENTBASE.C_AGENTNAME__7D056, AGENTBASE.C_AGENTNAME__722CD, AGENTBASE.LOGINID, AGENTBASE.ICEPATH, AGENTBASE.F_PAGENTBASE_7B96C, AGENTBASE.F_OID$_AGENT_DB156, AGENTBASE.F_PENTITY_AG_79C9C, @ID_ELAB
		FROM C6StagingPeriodico.AGENTBASE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_AGENTBASE
			ON AGENTBASE.OID$ = ST_AGENTBASE.OID$
		WHERE ST_AGENTBASE.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_ASSET_CLASS_PER_PROMET XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_ASSET_CLASS_PER_PROMET')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET
		(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ID_ELAB)
		SELECT 
		 ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO, ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN, ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF, ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA, @ID_ELAB
		FROM C6StagingPeriodico.ALL_ASSET_CLASS_PER_PROMET
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_ASSET_CLASS_PER_PROMET
			ON ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO
			AND ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ISIN
			AND ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_MAF
			AND ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA = ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ADEGUATEZZA
		WHERE ST_ALL_ASSET_CLASS_PER_PROMET.CODICE_ASSET_CLASS_INGRESSO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_PB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CF_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CF_PB
		(ID_CLI, NOME, COGNOME, TIPO, AGENTE, CHIAVE_PB, CHIAVE_CLIENTE, NOME_CLIENTE, COGNOME_CLIENTE, CODICE_FISCALE, TIPO_CLIENTE, RETE_PB, CODICE_PB, DATA_NASCITA, MARITALSTATUS, CODICEFISCALE, ID_ELAB)
		SELECT 
		 ALL_CF_PB.ID_CLI, ALL_CF_PB.NOME, ALL_CF_PB.COGNOME, ALL_CF_PB.TIPO, ALL_CF_PB.AGENTE, ALL_CF_PB.CHIAVE_PB, ALL_CF_PB.CHIAVE_CLIENTE, ALL_CF_PB.NOME_CLIENTE, ALL_CF_PB.COGNOME_CLIENTE, ALL_CF_PB.CODICE_FISCALE, ALL_CF_PB.TIPO_CLIENTE, ALL_CF_PB.RETE_PB, ALL_CF_PB.CODICE_PB, ALL_CF_PB.DATA_NASCITA, ALL_CF_PB.MARITALSTATUS, ALL_CF_PB.CODICEFISCALE, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CF_PB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_CF_PB
			ON ALL_CF_PB.ID_CLI = ST_ALL_CF_PB.ID_CLI
		WHERE ST_ALL_CF_PB.ID_CLI IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CF_STATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CF_STATO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CF_STATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CF_STATO
		(CF_CLIENTE, RETE, STATO_CONSULENZA, TOTALE_RIGHE, TOTALE_STATI, FLAG_UTILIZZO_STATO, ID_ELAB)
		SELECT 
		 ALL_CF_STATO.CF_CLIENTE, ALL_CF_STATO.RETE, ALL_CF_STATO.STATO_CONSULENZA, ALL_CF_STATO.TOTALE_RIGHE, ALL_CF_STATO.TOTALE_STATI, ALL_CF_STATO.FLAG_UTILIZZO_STATO, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CF_STATO
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_CF_STATO
			ON ALL_CF_STATO.CF_CLIENTE = ST_ALL_CF_STATO.CF_CLIENTE
			AND ALL_CF_STATO.RETE = ST_ALL_CF_STATO.RETE
		WHERE ST_ALL_CF_STATO.CF_CLIENTE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_CONSUL_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_CONSUL_ASUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_CONSUL_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_CONSUL_ASUL
		(CODICE_FISCALE, RETE, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, AREASORTORDER, NOME_PROGETTO, CATALOGUENAME, TIPO_PROGETTO, CONTRATTO, OID_DI_CATITEMREF, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CODICEINTERNO, SOTTOPRODOTTO, CONTROVALORE_ASUL, ID_MONITORAGGIO, CATEGORIA, NUOVO_OID_CAT_PER_ASSET, CATEGORIA_2, COLO_JOIN, ID_ELAB)
		SELECT 
		 ALL_CONSUL_ASUL.CODICE_FISCALE, ALL_CONSUL_ASUL.RETE, ALL_CONSUL_ASUL.NEED_AREA_ABBR_DI_AREA, ALL_CONSUL_ASUL.NEED_AREA_ESTESA_DI_AREA, ALL_CONSUL_ASUL.AREASORTORDER, ALL_CONSUL_ASUL.NOME_PROGETTO, ALL_CONSUL_ASUL.CATALOGUENAME, ALL_CONSUL_ASUL.TIPO_PROGETTO, ALL_CONSUL_ASUL.CONTRATTO, ALL_CONSUL_ASUL.OID_DI_CATITEMREF, ALL_CONSUL_ASUL.CONTROVALORE, ALL_CONSUL_ASUL.CONTROV_IN_POS_DEL_PRODOTTO, ALL_CONSUL_ASUL.STRINGONA_POS, ALL_CONSUL_ASUL.CODICEINTERNO, ALL_CONSUL_ASUL.SOTTOPRODOTTO, ALL_CONSUL_ASUL.CONTROVALORE_ASUL, ALL_CONSUL_ASUL.ID_MONITORAGGIO, ALL_CONSUL_ASUL.CATEGORIA, ALL_CONSUL_ASUL.NUOVO_OID_CAT_PER_ASSET, ALL_CONSUL_ASUL.CATEGORIA_2, ALL_CONSUL_ASUL.COLO_JOIN, @ID_ELAB
		FROM C6StagingPeriodico.ALL_CONSUL_ASUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_CONSUL_ASUL
			ON ALL_CONSUL_ASUL.CODICE_FISCALE = ST_ALL_CONSUL_ASUL.CODICE_FISCALE
			AND ALL_CONSUL_ASUL.RETE = ST_ALL_CONSUL_ASUL.RETE
			AND ALL_CONSUL_ASUL.COLO_JOIN = ST_ALL_CONSUL_ASUL.COLO_JOIN
		WHERE ST_ALL_CONSUL_ASUL.CODICE_FISCALE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PATR_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PATR_TERZI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_PATR_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_PATR_TERZI
		(CHIAVE_PER_CLIENTE, CODICE_FISCALE, RETE_PB, CAPITALE_INVESTITO, CHIAVE_FNC, PRODOTTO_IN_CATALOGO, DATA_SOTTOSCRIZIONE, PREMIO_VERSAMENTO, C_VALUE_582FF, AMMONTARE_VERSAMENTO, DESCRIZIONE_ALBERATURA, DATA_INIZIO_INV, PATRIMONIO_TERZI, NOME_ISTITUTO, CHIAVE_THR, ASSETID, DESCRIZIONE_PRODOTTO, NOMEPRODOTTO, NOME_ISTITUTO_2, INTERMEDIARIO, DATA_SCADENZA, DATA2_UTILIZ_X_SOTTOSCRIZ, BALANCEDATE_DI_THR, CHIAVE_PR_31921, PATRIMONIO_IMMOBILIARE, LOCALITA, AFFITTOPERCEPITO, CHIAVE_F87B4, PATRIMONIO_ALTRO_PN_F87B4, DENOMINAZIONE_PN_F87B4, ISCOVER, TIPO_ISCOVER, CHIAVE_E6F18, PATRIMONIO_ALTRO_PB_E6F18, DENOMINAZIONE, NUMEROQUOTE, COMPANYTYPE, CHIAVE_COMP, COMPANYNAME, CHIAVE_BT_49D5B, TIPO_BT_49D5B, CHIAVE_BT_55768, TIPO_BT_55768, CHIAVE_BT_B70F0, TIPO_BT_B70F0, CHIAVE_BT_6797A, TIPO_BT_6797A, TIPO_VERSAMENTO_BT_6797A, CHIAVE_BT_97BEE, TIPO_BT_97BEE, TIPO_POLIZZA_BT_97BEE, CHIAVE_RDESCR, TIPO_RDESCR, DESCRIZIONE_RDESCR, TIPOLOGIA_RDESCR, ID_ELAB)
		SELECT 
		 ALL_PATR_TERZI.CHIAVE_PER_CLIENTE, ALL_PATR_TERZI.CODICE_FISCALE, ALL_PATR_TERZI.RETE_PB, ALL_PATR_TERZI.CAPITALE_INVESTITO, ALL_PATR_TERZI.CHIAVE_FNC, ALL_PATR_TERZI.PRODOTTO_IN_CATALOGO, ALL_PATR_TERZI.DATA_SOTTOSCRIZIONE, ALL_PATR_TERZI.PREMIO_VERSAMENTO, ALL_PATR_TERZI.C_VALUE_582FF, ALL_PATR_TERZI.AMMONTARE_VERSAMENTO, ALL_PATR_TERZI.DESCRIZIONE_ALBERATURA, ALL_PATR_TERZI.DATA_INIZIO_INV, ALL_PATR_TERZI.PATRIMONIO_TERZI, ALL_PATR_TERZI.NOME_ISTITUTO, ALL_PATR_TERZI.CHIAVE_THR, ALL_PATR_TERZI.ASSETID, ALL_PATR_TERZI.DESCRIZIONE_PRODOTTO, ALL_PATR_TERZI.NOMEPRODOTTO, ALL_PATR_TERZI.NOME_ISTITUTO_2, ALL_PATR_TERZI.INTERMEDIARIO, ALL_PATR_TERZI.DATA_SCADENZA, ALL_PATR_TERZI.DATA2_UTILIZ_X_SOTTOSCRIZ, ALL_PATR_TERZI.BALANCEDATE_DI_THR, ALL_PATR_TERZI.CHIAVE_PR_31921, ALL_PATR_TERZI.PATRIMONIO_IMMOBILIARE, ALL_PATR_TERZI.LOCALITA, ALL_PATR_TERZI.AFFITTOPERCEPITO, ALL_PATR_TERZI.CHIAVE_F87B4, ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4, ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4, ALL_PATR_TERZI.ISCOVER, ALL_PATR_TERZI.TIPO_ISCOVER, ALL_PATR_TERZI.CHIAVE_E6F18, ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18, ALL_PATR_TERZI.DENOMINAZIONE, ALL_PATR_TERZI.NUMEROQUOTE, ALL_PATR_TERZI.COMPANYTYPE, ALL_PATR_TERZI.CHIAVE_COMP, ALL_PATR_TERZI.COMPANYNAME, ALL_PATR_TERZI.CHIAVE_BT_49D5B, ALL_PATR_TERZI.TIPO_BT_49D5B, ALL_PATR_TERZI.CHIAVE_BT_55768, ALL_PATR_TERZI.TIPO_BT_55768, ALL_PATR_TERZI.CHIAVE_BT_B70F0, ALL_PATR_TERZI.TIPO_BT_B70F0, ALL_PATR_TERZI.CHIAVE_BT_6797A, ALL_PATR_TERZI.TIPO_BT_6797A, ALL_PATR_TERZI.TIPO_VERSAMENTO_BT_6797A, ALL_PATR_TERZI.CHIAVE_BT_97BEE, ALL_PATR_TERZI.TIPO_BT_97BEE, ALL_PATR_TERZI.TIPO_POLIZZA_BT_97BEE, ALL_PATR_TERZI.CHIAVE_RDESCR, ALL_PATR_TERZI.TIPO_RDESCR, ALL_PATR_TERZI.DESCRIZIONE_RDESCR, ALL_PATR_TERZI.TIPOLOGIA_RDESCR, @ID_ELAB
		FROM C6StagingPeriodico.ALL_PATR_TERZI
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_PATR_TERZI
			ON ALL_PATR_TERZI.CHIAVE_THR = ST_ALL_PATR_TERZI.CHIAVE_THR
		WHERE ST_ALL_PATR_TERZI.CHIAVE_THR IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_POS_CONS_CAT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_POS_CONS_CAT')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_POS_CONS_CAT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_POS_CONS_CAT
		(CODICE_FISCALE, RETE, STATO_CONSULENZA, DATA_STATO_CONSULENZA, PK_ALTERNATIVA_CONS, DATA_MIGRAZIONE_CONS, PK_AREA, NEED_AREA_ABBR_DI_AREA, NEED_AREA_ESTESA_DI_AREA, C_PERCENTAGE_86095, C_CTVNEEDARE_EA4FB, PK_PRC, TIPO_PROGETTO, ID_MONITORAGGIO, NOME_PROGETTO, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_INVESTIMEN_60625, CONTROVALORE_PER_INV, PERCENTUALE_MODELLO, C_PERCENTUAL_12346, DATA_ORDINAMENTO_INV, CONTRATTO, OID_DI_CATITEMREF, C_OUTCTV_B4FB8, CONTROVALORE, CONTROV_IN_POS_DEL_PRODOTTO, STRINGONA_POS, CONTO, RUBRICATO, CUSTGAR, NUMPOL, TERMID, ANNO, PROG, NOME_PRODOTTO, NEED_AREA_ABBREVIATA_DI_POS, NEED_AREA_ESTESA_DI_POS, CHIAVE_CATITEMREF, CATALOGUENAME, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, COD_ADEGUATEZZA, ALBERATURA, TIPOPRODOTTO, ISNEGOTIABLE, MAINASSETCLASS, AREASORTORDER, ORIGINE_FILE_CATALOGO, FLAG_PRESENZA_MAPPATURA, RAGGRUPPAMEN_NOME_PROGET, ID_ELAB)
		SELECT 
		 ALL_POS_CONS_CAT.CODICE_FISCALE, ALL_POS_CONS_CAT.RETE, ALL_POS_CONS_CAT.STATO_CONSULENZA, ALL_POS_CONS_CAT.DATA_STATO_CONSULENZA, ALL_POS_CONS_CAT.PK_ALTERNATIVA_CONS, ALL_POS_CONS_CAT.DATA_MIGRAZIONE_CONS, ALL_POS_CONS_CAT.PK_AREA, ALL_POS_CONS_CAT.NEED_AREA_ABBR_DI_AREA, ALL_POS_CONS_CAT.NEED_AREA_ESTESA_DI_AREA, ALL_POS_CONS_CAT.C_PERCENTAGE_86095, ALL_POS_CONS_CAT.C_CTVNEEDARE_EA4FB, ALL_POS_CONS_CAT.PK_PRC, ALL_POS_CONS_CAT.TIPO_PROGETTO, ALL_POS_CONS_CAT.ID_MONITORAGGIO, ALL_POS_CONS_CAT.NOME_PROGETTO, ALL_POS_CONS_CAT.C_PROJECTCTV_39520, ALL_POS_CONS_CAT.C_PROJECTOUT_9CFB8, ALL_POS_CONS_CAT.C_RISORSELIQ_DF807, ALL_POS_CONS_CAT.C_INVESTIMEN_60625, ALL_POS_CONS_CAT.CONTROVALORE_PER_INV, ALL_POS_CONS_CAT.PERCENTUALE_MODELLO, ALL_POS_CONS_CAT.C_PERCENTUAL_12346, ALL_POS_CONS_CAT.DATA_ORDINAMENTO_INV, ALL_POS_CONS_CAT.CONTRATTO, ALL_POS_CONS_CAT.OID_DI_CATITEMREF, ALL_POS_CONS_CAT.C_OUTCTV_B4FB8, ALL_POS_CONS_CAT.CONTROVALORE, ALL_POS_CONS_CAT.CONTROV_IN_POS_DEL_PRODOTTO, ALL_POS_CONS_CAT.STRINGONA_POS, ALL_POS_CONS_CAT.CONTO, ALL_POS_CONS_CAT.RUBRICATO, ALL_POS_CONS_CAT.CUSTGAR, ALL_POS_CONS_CAT.NUMPOL, ALL_POS_CONS_CAT.TERMID, ALL_POS_CONS_CAT.ANNO, ALL_POS_CONS_CAT.PROG, ALL_POS_CONS_CAT.NOME_PRODOTTO, ALL_POS_CONS_CAT.NEED_AREA_ABBREVIATA_DI_POS, ALL_POS_CONS_CAT.NEED_AREA_ESTESA_DI_POS, ALL_POS_CONS_CAT.CHIAVE_CATITEMREF, ALL_POS_CONS_CAT.CATALOGUENAME, ALL_POS_CONS_CAT.COD_ISIN, ALL_POS_CONS_CAT.COD_MAF, ALL_POS_CONS_CAT.COD_INTERNO, ALL_POS_CONS_CAT.COD_SOTTOPRODOTTO, ALL_POS_CONS_CAT.COD_ADEGUATEZZA, ALL_POS_CONS_CAT.ALBERATURA, ALL_POS_CONS_CAT.TIPOPRODOTTO, ALL_POS_CONS_CAT.ISNEGOTIABLE, ALL_POS_CONS_CAT.MAINASSETCLASS, ALL_POS_CONS_CAT.AREASORTORDER, ALL_POS_CONS_CAT.ORIGINE_FILE_CATALOGO, ALL_POS_CONS_CAT.FLAG_PRESENZA_MAPPATURA, ALL_POS_CONS_CAT.RAGGRUPPAMEN_NOME_PROGET, @ID_ELAB
		FROM C6StagingPeriodico.ALL_POS_CONS_CAT
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_POS_CONS_CAT
			ON ALL_POS_CONS_CAT.CODICE_FISCALE = ST_ALL_POS_CONS_CAT.CODICE_FISCALE
			AND ALL_POS_CONS_CAT.RETE = ST_ALL_POS_CONS_CAT.RETE
			AND ALL_POS_CONS_CAT.PK_ALTERNATIVA_CONS = ST_ALL_POS_CONS_CAT.PK_ALTERNATIVA_CONS
			AND ALL_POS_CONS_CAT.STRINGONA_POS = ST_ALL_POS_CONS_CAT.STRINGONA_POS
		WHERE ST_ALL_POS_CONS_CAT.CODICE_FISCALE IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX ALL_PROPOSTA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ALL_PROPOSTA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ALL_PROPOSTA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ALL_PROPOSTA
		(AGENTE, RETE, NOME_CLIENTE, COGNOME_CLIENTE, CODICEFISCALE, CHIAVE_PROPOSTA, NOME_PROPOSTA, STATO_PROPOSTA, DATA_CREAZIONE_PROPOSTA, DATA_SCADENZA_PROPOSTA, NEED_BREVE, NEED_ESTESA, ORDINE_NEED, CONTROVALORE_TOT_PER_NEED, PERC_PER_NEED, NOME_PROGETTO, CONTROV_CONSULENZA, CONTROV_PROPOSTA, CONTROV_DA_DEFINIRE_LIQ, ISANEWPOSITION, STRINGONA_CLONEPOS, NOME_PRODOTTO_CLONEPOS, INVESTI, DISINVESTI, PTF_INIZ, CTVOPERAZIONE, CONTRACTCODE, POLIZZADECIMAL, CONTO, RUBRICATO, PR_COD_ISIN, PR_COD_MAF, PR_COD_INTERNO, PR_COD_SOTTOPRODOTTO, PR_COD_ADEGUATEZZA, NOME_PRODOTTO_CATALOGO, TIPOPRODOTTO, CHIAVE_CATITEMREF, CHIAVE_PER_LA_CONSULENZA, RICONCILIATA, FLAG_PROPOSTA_PER_PROGETTO, FLAG_PROPOSTA_PER_AREA, FLAG_SALVATAGGIO_MANUALE, RAGGRUPPAMENTO_PROGETTO, ID_ELAB)
		SELECT 
		 ALL_PROPOSTA.AGENTE, ALL_PROPOSTA.RETE, ALL_PROPOSTA.NOME_CLIENTE, ALL_PROPOSTA.COGNOME_CLIENTE, ALL_PROPOSTA.CODICEFISCALE, ALL_PROPOSTA.CHIAVE_PROPOSTA, ALL_PROPOSTA.NOME_PROPOSTA, ALL_PROPOSTA.STATO_PROPOSTA, ALL_PROPOSTA.DATA_CREAZIONE_PROPOSTA, ALL_PROPOSTA.DATA_SCADENZA_PROPOSTA, ALL_PROPOSTA.NEED_BREVE, ALL_PROPOSTA.NEED_ESTESA, ALL_PROPOSTA.ORDINE_NEED, ALL_PROPOSTA.CONTROVALORE_TOT_PER_NEED, ALL_PROPOSTA.PERC_PER_NEED, ALL_PROPOSTA.NOME_PROGETTO, ALL_PROPOSTA.CONTROV_CONSULENZA, ALL_PROPOSTA.CONTROV_PROPOSTA, ALL_PROPOSTA.CONTROV_DA_DEFINIRE_LIQ, ALL_PROPOSTA.ISANEWPOSITION, ALL_PROPOSTA.STRINGONA_CLONEPOS, ALL_PROPOSTA.NOME_PRODOTTO_CLONEPOS, ALL_PROPOSTA.INVESTI, ALL_PROPOSTA.DISINVESTI, ALL_PROPOSTA.PTF_INIZ, ALL_PROPOSTA.CTVOPERAZIONE, ALL_PROPOSTA.CONTRACTCODE, ALL_PROPOSTA.POLIZZADECIMAL, ALL_PROPOSTA.CONTO, ALL_PROPOSTA.RUBRICATO, ALL_PROPOSTA.PR_COD_ISIN, ALL_PROPOSTA.PR_COD_MAF, ALL_PROPOSTA.PR_COD_INTERNO, ALL_PROPOSTA.PR_COD_SOTTOPRODOTTO, ALL_PROPOSTA.PR_COD_ADEGUATEZZA, ALL_PROPOSTA.NOME_PRODOTTO_CATALOGO, ALL_PROPOSTA.TIPOPRODOTTO, ALL_PROPOSTA.CHIAVE_CATITEMREF, ALL_PROPOSTA.CHIAVE_PER_LA_CONSULENZA, ALL_PROPOSTA.RICONCILIATA, ALL_PROPOSTA.FLAG_PROPOSTA_PER_PROGETTO, ALL_PROPOSTA.FLAG_PROPOSTA_PER_AREA, ALL_PROPOSTA.FLAG_SALVATAGGIO_MANUALE, ALL_PROPOSTA.RAGGRUPPAMENTO_PROGETTO, @ID_ELAB
		FROM C6StagingPeriodico.ALL_PROPOSTA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ALL_PROPOSTA
			ON ALL_PROPOSTA.CHIAVE_PROPOSTA = ST_ALL_PROPOSTA.CHIAVE_PROPOSTA
			AND ALL_PROPOSTA.STRINGONA_CLONEPOS = ST_ALL_PROPOSTA.STRINGONA_CLONEPOS
		WHERE ST_ALL_PROPOSTA.CHIAVE_PROPOSTA IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX AREEDIBISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREEDIBISOGNO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_AREEDIBISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_AREEDIBISOGNO
		(AREAID, AREANAME, AREASORTORDER, ID_ELAB)
		SELECT 
		 AREEDIBISOGNO.AREAID, AREEDIBISOGNO.AREANAME, AREEDIBISOGNO.AREASORTORDER, @ID_ELAB
		FROM C6StagingPeriodico.AREEDIBISOGNO
		LEFT OUTER JOIN C6StoricoPeriodico.ST_AREEDIBISOGNO
			ON AREEDIBISOGNO.AREAID = ST_AREEDIBISOGNO.AREAID
		WHERE ST_AREEDIBISOGNO.AREAID IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_1_E_2_ORDINATE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_1_E_2_ORDINATE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE
		(CODICE_ASSET_CLASS_INGRESSO, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ASSETCLASSNAME, ORDINAMENTO_ASSET, ID_ELAB)
		SELECT 
		 ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO, ASSET_1_E_2_ORDINATE.CODICE_ISIN, ASSET_1_E_2_ORDINATE.CODICE_MAF, ASSET_1_E_2_ORDINATE.CODICE_ADEGUATEZZA, ASSET_1_E_2_ORDINATE.ASSETCLASSNAME, ASSET_1_E_2_ORDINATE.ORDINAMENTO_ASSET, @ID_ELAB
		FROM C6StagingPeriodico.ASSET_1_E_2_ORDINATE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ASSET_1_E_2_ORDINATE
			ON ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO = ST_ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO
			AND ASSET_1_E_2_ORDINATE.CODICE_ISIN = ST_ASSET_1_E_2_ORDINATE.CODICE_ISIN
			AND ASSET_1_E_2_ORDINATE.CODICE_MAF = ST_ASSET_1_E_2_ORDINATE.CODICE_MAF
			AND ASSET_1_E_2_ORDINATE.CODICE_ADEGUATEZZA = ST_ASSET_1_E_2_ORDINATE.CODICE_ADEGUATEZZA
		WHERE ST_ASSET_1_E_2_ORDINATE.CODICE_ASSET_CLASS_INGRESSO IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_ASSETCLASS
		(OID$, VERSION$, ASSETCLASSID, ASSETCLASSNAME, ASSETCLASSDESCR, ASSETCLASSLEV, ISRESIDUAL, F_PASSETCLAS_2FB94, F_OID$_ASSET_B965C, CODICE_ISIN, CODICE_MAF, CODICE_ADEGUATEZZA, ORDINE, ID_ELAB)
		SELECT 
		 ASSETCLASS.OID$, ASSETCLASS.VERSION$, ASSETCLASS.ASSETCLASSID, ASSETCLASS.ASSETCLASSNAME, ASSETCLASS.ASSETCLASSDESCR, ASSETCLASS.ASSETCLASSLEV, ASSETCLASS.ISRESIDUAL, ASSETCLASS.F_PASSETCLAS_2FB94, ASSETCLASS.F_OID$_ASSET_B965C, ASSETCLASS.CODICE_ISIN, ASSETCLASS.CODICE_MAF, ASSETCLASS.CODICE_ADEGUATEZZA, ASSETCLASS.ORDINE, @ID_ELAB
		FROM C6StagingPeriodico.ASSETCLASS
		LEFT OUTER JOIN C6StoricoPeriodico.ST_ASSETCLASS
			ON ASSETCLASS.OID$ = ST_ASSETCLASS.OID$
		WHERE ST_ASSETCLASS.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX C_BO_453FB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'C_BO_453FB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_C_BO_453FB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_C_BO_453FB
		(OID$, C_VALUE_7BD3C, C_DESCRIZION_93ABE, PK_PRC, ID_ELAB)
		SELECT 
		 C_BO_453FB.OID$, C_BO_453FB.C_VALUE_7BD3C, C_BO_453FB.C_DESCRIZION_93ABE, C_BO_453FB.PK_PRC, @ID_ELAB
		FROM C6StagingPeriodico.C_BO_453FB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_C_BO_453FB
			ON C_BO_453FB.OID$ = ST_C_BO_453FB.OID$
		WHERE ST_C_BO_453FB.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATINAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATINAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CATINAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CATINAREA
		(OID$, VERSION$, C_ISMAINNEED_9C780, NEEDAREAVALUE, F_OID$_NEEDA_2C362, F_PCATALOGUE_5D024, ID_ELAB)
		SELECT 
		 CATINAREA.OID$, CATINAREA.VERSION$, CATINAREA.C_ISMAINNEED_9C780, CATINAREA.NEEDAREAVALUE, CATINAREA.F_OID$_NEEDA_2C362, CATINAREA.F_PCATALOGUE_5D024, @ID_ELAB
		FROM C6StagingPeriodico.CATINAREA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CATINAREA
			ON CATINAREA.OID$ = ST_CATINAREA.OID$
		WHERE ST_CATINAREA.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CATITEMREF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATITEMREF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CATITEMREF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CATITEMREF
		(OID$, VERSION$, PRODUCTCURRENCY, PRODUCTCOUNTRY, PRODUCTREGION, CATALOGUEID, COD_ISIN, COD_ADEGUATEZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TYPE$_BCATAL_FC317, CATEGORY, INSTITUTIONS, COUNTRY, PIAZZA, ULTIMOPRZCURR, ULTIMOPRZ, CAPITALERISPARMIO, LMINCAPCONTRCURR, LMINCAPCONTR, LSUCCAPCONTRCURR, LSUCCAPCONTR, LMINRISPCONTRCURR, LMINRISPCONTR, LSUCRISPCONTRCURR, LSUCRISPCONTR, LMINCOMMCURR, LMINCOMM, DELEGAGESTIONALE, TIPOLOGIAPERPICK, EXPIRATIONDATE, RISKPRICE, FISCALREGIMENT, QUOTATO, CLASSEDIPREZZO, BONDRATING, BONDDURATION, TEMPMIN, TEMPMAX, PRIPRODCOM, MAINASSETCLASS, MACROACOBPERC, MACROACALPERC, MACROACAZPERC, MACROACMNPERC, LINEEFINACC, TIPOVERS, TIPOPOLIZRAM1, DURATACONTR, GARDEMO, RISKPRESSCAD, LIVFLUTDUR, OPZRENDVIT, METAA, METAB, METAC, RATOBBLIG, ULTIMOPREZZOCURR, ULTIMOPREZZO, DATARIFPREZZO, CODICEADB, AGGIORNFEED, DISTRPROV, CODTIPOCONTR, ULTPRZSECCURR, ULTPRZSEC, DATAULTPRZSEC, CODBLOOMBERG, DENOMUNITLNK, TIPOPRODOTTO, GENERICDATA, GENERICCURCURR, GENERICCUR, GENERICSTRING1, GENERICSTRING2, CATALOGUENAME, EFFECTIVEFROM, EFFECTIVETO, PRODUCTSTATUS, ISVISIBLE, ISNEGOTIABLE, BRIEFDESCRIPTION, F_OID$_VAR_CDDF8, RISKPROFOFSUITCLS, OPINION, OPINIONDATE, F_OID$_CATAL_B3E14, F_OID$_PCATE_F3BF6, F_OID$_MAINA_76C35, F_OID$_INSTR_B5526, F_OID$_MAINS_5FCE5, F_OID$_MAINR_08A23, F_OID$_PRISK_AAC57, F_OID$_PRODU_F8FBB, F_OID$_MARKE_F3D2D, COLL_SKANDIA, CODASSETSAT, ID_ELAB)
		SELECT 
		 CATITEMREF.OID$, CATITEMREF.VERSION$, CATITEMREF.PRODUCTCURRENCY, CATITEMREF.PRODUCTCOUNTRY, CATITEMREF.PRODUCTREGION, CATITEMREF.CATALOGUEID, CATITEMREF.COD_ISIN, CATITEMREF.COD_ADEGUATEZZA, CATITEMREF.COD_MAF, CATITEMREF.COD_INTERNO, CATITEMREF.COD_SOTTOPRODOTTO, CATITEMREF.TYPE$_BCATAL_FC317, CATITEMREF.CATEGORY, CATITEMREF.INSTITUTIONS, CATITEMREF.COUNTRY, CATITEMREF.PIAZZA, CATITEMREF.ULTIMOPRZCURR, CATITEMREF.ULTIMOPRZ, CATITEMREF.CAPITALERISPARMIO, CATITEMREF.LMINCAPCONTRCURR, CATITEMREF.LMINCAPCONTR, CATITEMREF.LSUCCAPCONTRCURR, CATITEMREF.LSUCCAPCONTR, CATITEMREF.LMINRISPCONTRCURR, CATITEMREF.LMINRISPCONTR, CATITEMREF.LSUCRISPCONTRCURR, CATITEMREF.LSUCRISPCONTR, CATITEMREF.LMINCOMMCURR, CATITEMREF.LMINCOMM, CATITEMREF.DELEGAGESTIONALE, CATITEMREF.TIPOLOGIAPERPICK, CATITEMREF.EXPIRATIONDATE, CATITEMREF.RISKPRICE, CATITEMREF.FISCALREGIMENT, CATITEMREF.QUOTATO, CATITEMREF.CLASSEDIPREZZO, CATITEMREF.BONDRATING, CATITEMREF.BONDDURATION, CATITEMREF.TEMPMIN, CATITEMREF.TEMPMAX, CATITEMREF.PRIPRODCOM, CATITEMREF.MAINASSETCLASS, CATITEMREF.MACROACOBPERC, CATITEMREF.MACROACALPERC, CATITEMREF.MACROACAZPERC, CATITEMREF.MACROACMNPERC, CATITEMREF.LINEEFINACC, CATITEMREF.TIPOVERS, CATITEMREF.TIPOPOLIZRAM1, CATITEMREF.DURATACONTR, CATITEMREF.GARDEMO, CATITEMREF.RISKPRESSCAD, CATITEMREF.LIVFLUTDUR, CATITEMREF.OPZRENDVIT, CATITEMREF.METAA, CATITEMREF.METAB, CATITEMREF.METAC, CATITEMREF.RATOBBLIG, CATITEMREF.ULTIMOPREZZOCURR, CATITEMREF.ULTIMOPREZZO, CATITEMREF.DATARIFPREZZO, CATITEMREF.CODICEADB, CATITEMREF.AGGIORNFEED, CATITEMREF.DISTRPROV, CATITEMREF.CODTIPOCONTR, CATITEMREF.ULTPRZSECCURR, CATITEMREF.ULTPRZSEC, CATITEMREF.DATAULTPRZSEC, CATITEMREF.CODBLOOMBERG, CATITEMREF.DENOMUNITLNK, CATITEMREF.TIPOPRODOTTO, CATITEMREF.GENERICDATA, CATITEMREF.GENERICCURCURR, CATITEMREF.GENERICCUR, CATITEMREF.GENERICSTRING1, CATITEMREF.GENERICSTRING2, CATITEMREF.CATALOGUENAME, CATITEMREF.EFFECTIVEFROM, CATITEMREF.EFFECTIVETO, CATITEMREF.PRODUCTSTATUS, CATITEMREF.ISVISIBLE, CATITEMREF.ISNEGOTIABLE, CATITEMREF.BRIEFDESCRIPTION, CATITEMREF.F_OID$_VAR_CDDF8, CATITEMREF.RISKPROFOFSUITCLS, CATITEMREF.OPINION, CATITEMREF.OPINIONDATE, CATITEMREF.F_OID$_CATAL_B3E14, CATITEMREF.F_OID$_PCATE_F3BF6, CATITEMREF.F_OID$_MAINA_76C35, CATITEMREF.F_OID$_INSTR_B5526, CATITEMREF.F_OID$_MAINS_5FCE5, CATITEMREF.F_OID$_MAINR_08A23, CATITEMREF.F_OID$_PRISK_AAC57, CATITEMREF.F_OID$_PRODU_F8FBB, CATITEMREF.F_OID$_MARKE_F3D2D, CATITEMREF.COLL_SKANDIA, CATITEMREF.CODASSETSAT, @ID_ELAB
		FROM C6StagingPeriodico.CATITEMREF
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CATITEMREF
			ON CATITEMREF.OID$ = ST_CATITEMREF.OID$
		WHERE ST_CATITEMREF.OID$ IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CLIENTI_CON_RNA XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CLIENTI_CON_RNA')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ST_CLIENTI_CON_RNA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ST_CLIENTI_CON_RNA
	--           ([Rete]
	--           ,[CodicePB]
	--           ,[CodiceFiscale]
	--           ,[Percentuale]
	--           ,[DataCalcolo]
	--		   ,ID_ELAB)
	--		SELECT [Rete]
	--           ,[CodicePB]
	--           ,[CodiceFiscale]
	--           ,[Percentuale]
	--           ,[DataCalcolo]
	--		   ,@ID_ELAB ID_ELAB
	--		FROM C6StagingPeriodico.CLIENTI_CON_RNA
	--	END

	--XXXXXXXXXXXXXXXXXXXXXXXX CONO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONO')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONO
		(OID$, VERSION$, C_DATA_FD2A6, C_QUANTILE5_BF710, C_QUANTILE95_0D6CE, F_PPROJECT_P_46507, C_QUANTILE50_C47E0, ID_ELAB)
		SELECT 
		 CONO.OID$, CONO.VERSION$, CONO.C_DATA_FD2A6, CONO.C_QUANTILE5_BF710, CONO.C_QUANTILE95_0D6CE, CONO.F_PPROJECT_P_46507, CONO.C_QUANTILE50_C47E0, @ID_ELAB
		FROM C6StagingPeriodico.CONO
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CONO
			ON CONO.OID$ = ST_CONO.OID$
		WHERE ST_CONO.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONSAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONSAREA
		(OID$, VERSION$, F_PCONSULENZ_7FBE3, C_CONSULENZA_A58F3, C_CONSULENZA_E94E3, C_NEEDAREA_V_46360, C_NEEDAREA_D_911D8, C_CTVNEEDARE_EA4FB, C_PERCENTAGE_86095, C_OUTCTV_A27B5, C_PATRIMONIO_F4B8E, C_INVESTIMEN_AC24C, C_CONSULENZA_0C219, C_CONSULENZA_1C9D3, ID_ELAB)
		SELECT 
		 CONSAREA.OID$, CONSAREA.VERSION$, CONSAREA.F_PCONSULENZ_7FBE3, CONSAREA.C_CONSULENZA_A58F3, CONSAREA.C_CONSULENZA_E94E3, CONSAREA.C_NEEDAREA_V_46360, CONSAREA.C_NEEDAREA_D_911D8, CONSAREA.C_CTVNEEDARE_EA4FB, CONSAREA.C_PERCENTAGE_86095, CONSAREA.C_OUTCTV_A27B5, CONSAREA.C_PATRIMONIO_F4B8E, CONSAREA.C_INVESTIMEN_AC24C, CONSAREA.C_CONSULENZA_0C219, CONSAREA.C_CONSULENZA_1C9D3, @ID_ELAB
		FROM C6StagingPeriodico.CONSAREA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CONSAREA
			ON CONSAREA.OID$ = ST_CONSAREA.OID$
		WHERE ST_CONSAREA.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX CONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONSUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_CONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_CONSUL
		(OID$, VERSION$, C_CONSULENZA_EBDBE, ADBKID, INSTID, TYPE$_TIPOCO_1EA7C, C_CONTROVALO_C57EE, C_PATRIMONIO_0BF30, C_ALTROPATRI_E90EF, C_ALTRO_5AD86, C_DATAINIZIO_35C15, C_RISORSENON_A04BD, C_INVESTIMEN_C4514, C_INVESTIMEN_36DE3, C_IDQUESTION_5549B, C_DATAQUESTI_5069A, C_VARCONSOB_28C92, C_VALORIALLI_0CA23, C_DATAPIRAMI_661DA, C_DATACONSVE_D3DE3, C_DATACONSOR_EA88E, C_PROFILOCON_81F5D, C_DATAMIGRAZ_BF705, C_SALVADANAI_B156A, C_CONSULENZA_2C1E1, C_DATACONSVE_66B66, C_DATACAMBIO_79509, ID_ELAB)
		SELECT 
		 CONSUL.OID$, CONSUL.VERSION$, CONSUL.C_CONSULENZA_EBDBE, CONSUL.ADBKID, CONSUL.INSTID, CONSUL.TYPE$_TIPOCO_1EA7C, CONSUL.C_CONTROVALO_C57EE, CONSUL.C_PATRIMONIO_0BF30, CONSUL.C_ALTROPATRI_E90EF, CONSUL.C_ALTRO_5AD86, CONSUL.C_DATAINIZIO_35C15, CONSUL.C_RISORSENON_A04BD, CONSUL.C_INVESTIMEN_C4514, CONSUL.C_INVESTIMEN_36DE3, CONSUL.C_IDQUESTION_5549B, CONSUL.C_DATAQUESTI_5069A, CONSUL.C_VARCONSOB_28C92, CONSUL.C_VALORIALLI_0CA23, CONSUL.C_DATAPIRAMI_661DA, CONSUL.C_DATACONSVE_D3DE3, CONSUL.C_DATACONSOR_EA88E, CONSUL.C_PROFILOCON_81F5D, CONSUL.C_DATAMIGRAZ_BF705, CONSUL.C_SALVADANAI_B156A, CONSUL.C_CONSULENZA_2C1E1, CONSUL.C_DATACONSVE_66B66, CONSUL.C_DATACAMBIO_79509, @ID_ELAB
		FROM C6StagingPeriodico.CONSUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_CONSUL
			ON CONSUL.OID$ = ST_CONSUL.OID$
		WHERE ST_CONSUL.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INDREND XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INDREND')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_INDREND WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_INDREND
		(OID$, VERSION$, C_VAR_A94EA, C_TEMPOINVES_CE300, C_COPERTURA_94818, C_PERDITAMAX_F5B51, ID_ELAB)
		SELECT 
		 INDREND.OID$, INDREND.VERSION$, INDREND.C_VAR_A94EA, INDREND.C_TEMPOINVES_CE300, INDREND.C_COPERTURA_94818, INDREND.C_PERDITAMAX_F5B51, @ID_ELAB
		FROM C6StagingPeriodico.INDREND
		LEFT OUTER JOIN C6StoricoPeriodico.ST_INDREND
			ON INDREND.OID$ = ST_INDREND.OID$
		WHERE ST_INDREND.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX INSTRBDS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'INSTRBDS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_INSTRBDS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_INSTRBDS
		(OID$, VERSION$, BDISIN, BDMAF, F_OID$_PCATA_5DDA6, PROVENIENZA, ID_ELAB)
		SELECT 
		 INSTRBDS.OID$, INSTRBDS.VERSION$, INSTRBDS.BDISIN, INSTRBDS.BDMAF, INSTRBDS.F_OID$_PCATA_5DDA6, INSTRBDS.PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.INSTRBDS
		LEFT OUTER JOIN C6StoricoPeriodico.ST_INSTRBDS
			ON INSTRBDS.OID$ = ST_INSTRBDS.OID$
		WHERE ST_INSTRBDS.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NEEDAREA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NEEDAREA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_NEEDAREA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_NEEDAREA
		(OID$, VERSION$, AREAID, AREANAME, EFFECTIVEFROM, EFFECTIVETO, BRIEFDESCRIPTION, F_PNEEDAREA__742D7, AREASORTORDER, ID_ELAB)
		SELECT 
		 NEEDAREA.OID$, NEEDAREA.VERSION$, NEEDAREA.AREAID, NEEDAREA.AREANAME, NEEDAREA.EFFECTIVEFROM, NEEDAREA.EFFECTIVETO, NEEDAREA.BRIEFDESCRIPTION, NEEDAREA.F_PNEEDAREA__742D7, NEEDAREA.AREASORTORDER, @ID_ELAB
		FROM C6StagingPeriodico.NEEDAREA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_NEEDAREA
			ON NEEDAREA.OID$ = ST_NEEDAREA.OID$
		WHERE ST_NEEDAREA.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX NOME_PROGETTO_BOZZA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'NOME_PROGETTO_BOZZA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA
		(ADBKID, INSTID, NUOVO_NOME_PROGETTO, C_PROJECTIDR_51E22, NEEDAREA, ID_ELAB)
		SELECT 
		 NOME_PROGETTO_BOZZA.ADBKID, NOME_PROGETTO_BOZZA.INSTID, NOME_PROGETTO_BOZZA.NUOVO_NOME_PROGETTO, NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22, NOME_PROGETTO_BOZZA.NEEDAREA, @ID_ELAB
		FROM C6StagingPeriodico.NOME_PROGETTO_BOZZA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_NOME_PROGETTO_BOZZA
			ON NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22 = ST_NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22
		WHERE ST_NOME_PROGETTO_BOZZA.C_PROJECTIDR_51E22 IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX OTHINTRST XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'OTHINTRST')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_OTHINTRST WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_OTHINTRST
		(OID$, VERSION$, INTERESTDESC, INTERESTCUR, INTERESTAMT, F_PQUANTIFIC_76FF6, ID_ELAB)
		SELECT 
		 OTHINTRST.OID$, OTHINTRST.VERSION$, OTHINTRST.INTERESTDESC, OTHINTRST.INTERESTCUR, OTHINTRST.INTERESTAMT, OTHINTRST.F_PQUANTIFIC_76FF6, @ID_ELAB
		FROM C6StagingPeriodico.OTHINTRST
		LEFT OUTER JOIN C6StoricoPeriodico.ST_OTHINTRST
			ON OTHINTRST.OID$ = ST_OTHINTRST.OID$
		WHERE ST_OTHINTRST.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PHOTO_DATA XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PHOTO_DATA')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PHOTO_DATA WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PHOTO_DATA
		(OID_, VERSION_, ADBKID, INSTID, C_DATAREQ_EB2B5, TYPE__TYPE_7CAB6, TYPE__STATUS_1E30E, C_DATASALVAT_D40E3, C_CTVINV_990D8, C_CTVRIS_43FEA, C_CTVLIQ_54D1B, C_CTVPRE_A0E49, C_CTVEXT_34DCC, C_CTVCC_E242D, C_CTVNA_473EA, C_VAR_16494, C_COPVAR_5C6E5, ID_ELAB)
		SELECT 
		 PHOTO_DATA.OID_, PHOTO_DATA.VERSION_, PHOTO_DATA.ADBKID, PHOTO_DATA.INSTID, PHOTO_DATA.C_DATAREQ_EB2B5, PHOTO_DATA.TYPE__TYPE_7CAB6, PHOTO_DATA.TYPE__STATUS_1E30E, PHOTO_DATA.C_DATASALVAT_D40E3, PHOTO_DATA.C_CTVINV_990D8, PHOTO_DATA.C_CTVRIS_43FEA, PHOTO_DATA.C_CTVLIQ_54D1B, PHOTO_DATA.C_CTVPRE_A0E49, PHOTO_DATA.C_CTVEXT_34DCC, PHOTO_DATA.C_CTVCC_E242D, PHOTO_DATA.C_CTVNA_473EA, PHOTO_DATA.C_VAR_16494, PHOTO_DATA.C_COPVAR_5C6E5, @ID_ELAB
		FROM C6StagingPeriodico.PHOTO_DATA
		LEFT OUTER JOIN C6StoricoPeriodico.ST_PHOTO_DATA
			ON PHOTO_DATA.OID_ = ST_PHOTO_DATA.OID_
		WHERE ST_PHOTO_DATA.OID_ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PORTMOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PORTMOD')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PORTMOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PORTMOD
		(OID$, VERSION$, F_PPROJECT_P_EE748, C_ASSET_CD02D, C_PERCENTUAL_143B7, ID_ELAB)
		SELECT 
		 PORTMOD.OID$, PORTMOD.VERSION$, PORTMOD.F_PPROJECT_P_EE748, PORTMOD.C_ASSET_CD02D, PORTMOD.C_PERCENTUAL_143B7, @ID_ELAB
		FROM C6StagingPeriodico.PORTMOD
		LEFT OUTER JOIN C6StoricoPeriodico.ST_PORTMOD
			ON PORTMOD.OID$ = ST_PORTMOD.OID$
		WHERE ST_PORTMOD.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX POSITION XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'POSITION')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_POSITION WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_POSITION
		(OID$, VERSION$, F_PCONSULENZ_56F23, POSITIONID, CONSULENZAID, TYPE$_CATALO_35E2A, POSITIONNAME, CONTROVALORE, C_OUTCTV_B4FB8, C_NEEDAREASE_3D485, C_NEEDAREASE_30873, CATALOGUEITEMID, F_OID$_POSIT_00526, F_PPROJECT_P_B5629, CTVINIZIALE, ID_ELAB)
		SELECT 
		 POSITION.OID$, POSITION.VERSION$, POSITION.F_PCONSULENZ_56F23, POSITION.POSITIONID, POSITION.CONSULENZAID, POSITION.TYPE$_CATALO_35E2A, POSITION.POSITIONNAME, POSITION.CONTROVALORE, POSITION.C_OUTCTV_B4FB8, POSITION.C_NEEDAREASE_3D485, POSITION.C_NEEDAREASE_30873, POSITION.CATALOGUEITEMID, POSITION.F_OID$_POSIT_00526, POSITION.F_PPROJECT_P_B5629, POSITION.CTVINIZIALE, @ID_ELAB
		FROM C6StagingPeriodico.POSITION
		LEFT OUTER JOIN C6StoricoPeriodico.ST_POSITION
			ON POSITION.OID$ = ST_POSITION.OID$
		WHERE ST_POSITION.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PRCONSUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PRCONSUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PRCONSUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PRCONSUL
		(OID$, VERSION$, F_PCONSULENZ_B69E4, C_PROJECTID_9894C, C_CONSULENZA_CB331, C_CONSULENZA_A7FC6, NEEDAREAID, TYPE$_PROJEC_14674, C_PROJECTNAM_11D1A, C_PROJECTCTV_39520, C_PROJECTOUT_9CFB8, C_RISORSELIQ_DF807, C_CREATIONDA_732BD, C_LASTMODIFI_3BF4A, C_INVESTIMEN_60625, F_OID$_FREQU_A5FAB, C_IMPORTOPER_7A987, F_OID$_RISKP_9CF4A, F_OID$_ORIZZ_4A868, C_PERDITAAVV_D414B, C_PERDITAMAX_55078, C_GUADAGNOAV_2BD07, C_GUADAGNOMA_D14C4, C_RISERVENON_CCD2D, C_RISERVEMON_5E189, C_RISERVEOBB_121FA, C_RISERVEAZI_175C0, C_CONSULENZA_ACEEE, C_PROJECTIDM_1AF31, C_PROJECTIDR_51E22, C_DATAULTIMO_FFA71, C_PERDITAMAX_BEABF, C_PERDITAMAX_AAB4C, C_GUADAGNOMA_43151, C_GUADAGNOMA_0F76F, F_OID$_PROJE_CD4BB, C_NOTE_B4B97, C_PERCENTUAL_69019, C_PERCENTUAL_12346, F_OID$_RISKS_A3B54, C_ORDERTIMES_80019, ID_ELAB)
		SELECT 
		 PRCONSUL.OID$, PRCONSUL.VERSION$, PRCONSUL.F_PCONSULENZ_B69E4, PRCONSUL.C_PROJECTID_9894C, PRCONSUL.C_CONSULENZA_CB331, PRCONSUL.C_CONSULENZA_A7FC6, PRCONSUL.NEEDAREAID, PRCONSUL.TYPE$_PROJEC_14674, PRCONSUL.C_PROJECTNAM_11D1A, PRCONSUL.C_PROJECTCTV_39520, PRCONSUL.C_PROJECTOUT_9CFB8, PRCONSUL.C_RISORSELIQ_DF807, PRCONSUL.C_CREATIONDA_732BD, PRCONSUL.C_LASTMODIFI_3BF4A, PRCONSUL.C_INVESTIMEN_60625, PRCONSUL.F_OID$_FREQU_A5FAB, PRCONSUL.C_IMPORTOPER_7A987, PRCONSUL.F_OID$_RISKP_9CF4A, PRCONSUL.F_OID$_ORIZZ_4A868, PRCONSUL.C_PERDITAAVV_D414B, PRCONSUL.C_PERDITAMAX_55078, PRCONSUL.C_GUADAGNOAV_2BD07, PRCONSUL.C_GUADAGNOMA_D14C4, PRCONSUL.C_RISERVENON_CCD2D, PRCONSUL.C_RISERVEMON_5E189, PRCONSUL.C_RISERVEOBB_121FA, PRCONSUL.C_RISERVEAZI_175C0, PRCONSUL.C_CONSULENZA_ACEEE, PRCONSUL.C_PROJECTIDM_1AF31, PRCONSUL.C_PROJECTIDR_51E22, PRCONSUL.C_DATAULTIMO_FFA71, PRCONSUL.C_PERDITAMAX_BEABF, PRCONSUL.C_PERDITAMAX_AAB4C, PRCONSUL.C_GUADAGNOMA_43151, PRCONSUL.C_GUADAGNOMA_0F76F, PRCONSUL.F_OID$_PROJE_CD4BB, PRCONSUL.C_NOTE_B4B97, PRCONSUL.C_PERCENTUAL_69019, PRCONSUL.C_PERCENTUAL_12346, PRCONSUL.F_OID$_RISKS_A3B54, PRCONSUL.C_ORDERTIMES_80019, @ID_ELAB
		FROM C6StagingPeriodico.PRCONSUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_PRCONSUL
			ON PRCONSUL.OID$ = ST_PRCONSUL.OID$
		WHERE ST_PRCONSUL.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX PROMETEIA_AGGR XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PROMETEIA_AGGR')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_PROMETEIA_AGGR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_PROMETEIA_AGGR
		(Rete, CodiceFiscale, Portafoglio, VaRAssolutoDiPortafoglio, VaRPercentuialeDiPortafoglio, CVaRAssolutoDiPortafoglio, CVaRPercentualeDiPortafoglio, RisksizeDiPortafoglio, McVar, McVarP, Beneficio, Copertura, Totale, ID_ELAB)
		SELECT 
		 PROMETEIA_AGGR.Rete, PROMETEIA_AGGR.CodiceFiscale, PROMETEIA_AGGR.Portafoglio, PROMETEIA_AGGR.VaRAssolutoDiPortafoglio, PROMETEIA_AGGR.VaRPercentuialeDiPortafoglio, PROMETEIA_AGGR.CVaRAssolutoDiPortafoglio, PROMETEIA_AGGR.CVaRPercentualeDiPortafoglio, PROMETEIA_AGGR.RisksizeDiPortafoglio, PROMETEIA_AGGR.McVar, PROMETEIA_AGGR.McVarP, PROMETEIA_AGGR.Beneficio, PROMETEIA_AGGR.Copertura, PROMETEIA_AGGR.Totale, @ID_ELAB
		FROM C6StagingPeriodico.PROMETEIA_AGGR
		LEFT OUTER JOIN C6StoricoPeriodico.PROMETEIA_AGGR
			ON PROMETEIA_AGGR.Rete = ST_PROMETEIA_AGGR.Rete
			AND PROMETEIA_AGGR.CodiceFiscale = ST_PROMETEIA_AGGR.CodiceFiscale
			AND PROMETEIA_AGGR.Portafoglio = ST_PROMETEIA_AGGR.Portafoglio
		WHERE ST_PROMETEIA_AGGR.Rete IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX QUANTIF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'QUANTIF')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_QUANTIF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_QUANTIF
		(OID$, VERSION$, UPDATEDATE, EXPNEEDSCUR, EXPNEEDSAMT, GROSSINPRIMCUR, GROSSINPRIMAMT, GROSSINSECCUR, GROSSINSECAMT, RETIREMENTYEARS, STATEPENSIONCUR, STATEPENSIONAMT, PRIVATEPENSIONCUR, PRIVATEPENSIONAMT, LIFEINTERESTCUR, LIFEINTERESTAMT, C_FINANCIALI_8D659, C_FINANCIALI_91C75, INSINTERESTCUR, INSINTERESTAMT, INVINTERESTCUR, INVINTERESTAMT, REINTERESTCUR, REINTERESTAMT, PRIMARYGAPCUR, PRIMARYGAPAMT, SECONDARYGAPCUR, SECONDARYGAPAMT, TOCONSUMPTIONETM, TOINTERESTETM, LOCKPERCFRSTBRNC, PRFCONSUMPTIONS, PRFGROSSAMOUNT, PRFPERCFRSTBRNC, PRFADDRETIREMENT, PRFLIFEINTEREST, PRFINTERFRSTBRNC, PRFINTERUNIT, F_OID$_ADDRE_81D21, ID_ELAB)
		SELECT 
		 QUANTIF.OID$, QUANTIF.VERSION$, QUANTIF.UPDATEDATE, QUANTIF.EXPNEEDSCUR, QUANTIF.EXPNEEDSAMT, QUANTIF.GROSSINPRIMCUR, QUANTIF.GROSSINPRIMAMT, QUANTIF.GROSSINSECCUR, QUANTIF.GROSSINSECAMT, QUANTIF.RETIREMENTYEARS, QUANTIF.STATEPENSIONCUR, QUANTIF.STATEPENSIONAMT, QUANTIF.PRIVATEPENSIONCUR, QUANTIF.PRIVATEPENSIONAMT, QUANTIF.LIFEINTERESTCUR, QUANTIF.LIFEINTERESTAMT, QUANTIF.C_FINANCIALI_8D659, QUANTIF.C_FINANCIALI_91C75, QUANTIF.INSINTERESTCUR, QUANTIF.INSINTERESTAMT, QUANTIF.INVINTERESTCUR, QUANTIF.INVINTERESTAMT, QUANTIF.REINTERESTCUR, QUANTIF.REINTERESTAMT, QUANTIF.PRIMARYGAPCUR, QUANTIF.PRIMARYGAPAMT, QUANTIF.SECONDARYGAPCUR, QUANTIF.SECONDARYGAPAMT, QUANTIF.TOCONSUMPTIONETM, QUANTIF.TOINTERESTETM, QUANTIF.LOCKPERCFRSTBRNC, QUANTIF.PRFCONSUMPTIONS, QUANTIF.PRFGROSSAMOUNT, QUANTIF.PRFPERCFRSTBRNC, QUANTIF.PRFADDRETIREMENT, QUANTIF.PRFLIFEINTEREST, QUANTIF.PRFINTERFRSTBRNC, QUANTIF.PRFINTERUNIT, QUANTIF.F_OID$_ADDRE_81D21, @ID_ELAB
		FROM C6StagingPeriodico.QUANTIF
		LEFT OUTER JOIN C6StoricoPeriodico.ST_QUANTIF
			ON QUANTIF.OID$ = ST_QUANTIF.OID$
		WHERE ST_QUANTIF.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX RMADBKROLE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RMADBKROLE')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_RMADBKROLE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_RMADBKROLE
		(OID$, VERSION$, F_PADDRESSBO_22C0C, RMGROUPROLE, F_OID$_RM_4A3B4, ID_ELAB)
		SELECT 
		 RMADBKROLE.OID$, RMADBKROLE.VERSION$, RMADBKROLE.F_PADDRESSBO_22C0C, RMADBKROLE.RMGROUPROLE, RMADBKROLE.F_OID$_RM_4A3B4, @ID_ELAB
		FROM C6StagingPeriodico.RMADBKROLE
		LEFT OUTER JOIN C6StoricoPeriodico.ST_RMADBKROLE
			ON RMADBKROLE.OID$ = ST_RMADBKROLE.OID$
		WHERE ST_RMADBKROLE.OID$ IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX S4_S5_S13_TRAD_UNTIL_LIV3 XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'S4_S5_S13_TRAD_UNTIL_LIV3')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3 WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
		(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ORDINAMENTO_GERARCHIA_2, ID_ELAB)
		SELECT 
		 S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_1, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_2, S4_S5_S13_TRAD_UNTIL_LIV3.ALBERO_GERARCHIA_3, S4_S5_S13_TRAD_UNTIL_LIV3.ORDINAMENTO_GERARCHIA_2, @ID_ELAB
		FROM C6StagingPeriodico.S4_S5_S13_TRAD_UNTIL_LIV3
		LEFT OUTER JOIN C6StoricoPeriodico.ST_S4_S5_S13_TRAD_UNTIL_LIV3
			ON S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE = ST_S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE
		WHERE ST_S4_S5_S13_TRAD_UNTIL_LIV3.DESCRIZIONE_ORIGINALE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_CONTR_SINTESI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_CONTR_SINTESI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_CONTR_SINTESI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_CONTR_SINTESI
		(POSITIONID, DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, ID_ELAB)
		SELECT 
		 SPB_CONTR_SINTESI.POSITIONID, SPB_CONTR_SINTESI.DTTRIM, SPB_CONTR_SINTESI.DTRIFE, SPB_CONTR_SINTESI.RETE, SPB_CONTR_SINTESI.CODFIS, SPB_CONTR_SINTESI.CODCONF, SPB_CONTR_SINTESI.NUMPOL, SPB_CONTR_SINTESI.CONTO, SPB_CONTR_SINTESI.RUBR, SPB_CONTR_SINTESI.CUSTGAR, SPB_CONTR_SINTESI.TIPPROD, SPB_CONTR_SINTESI.CODINT, SPB_CONTR_SINTESI.CODPROD, SPB_CONTR_SINTESI.SUBPROD, SPB_CONTR_SINTESI.MAF, SPB_CONTR_SINTESI.CODABI, SPB_CONTR_SINTESI.PCTKEY, SPB_CONTR_SINTESI.DESTIT, SPB_CONTR_SINTESI.CTV, SPB_CONTR_SINTESI.PARTVIA, SPB_CONTR_SINTESI.PARTVIAAL, SPB_CONTR_SINTESI.DTSOTTOS, SPB_CONTR_SINTESI.RENDINIZ, SPB_CONTR_SINTESI.RENDANNO, SPB_CONTR_SINTESI.VALORE, SPB_CONTR_SINTESI.SUBSET, SPB_CONTR_SINTESI.CVN, SPB_CONTR_SINTESI.QUOTE, @ID_ELAB
		FROM C6StagingPeriodico.SPB_CONTR_SINTESI
		LEFT OUTER JOIN C6StoricoPeriodico.ST_SPB_CONTR_SINTESI
			ON SPB_CONTR_SINTESI.DTTRIM = ST_SPB_CONTR_SINTESI.DTTRIM
			AND SPB_CONTR_SINTESI.DTRIFE = ST_SPB_CONTR_SINTESI.DTRIFE
			AND SPB_CONTR_SINTESI.RETE = ST_SPB_CONTR_SINTESI.RETE
			AND SPB_CONTR_SINTESI.CODFIS = ST_SPB_CONTR_SINTESI.CODFIS
			AND SPB_CONTR_SINTESI.CODCONF = ST_SPB_CONTR_SINTESI.CODCONF
			AND SPB_CONTR_SINTESI.CONTO = ST_SPB_CONTR_SINTESI.CONTO
			AND SPB_CONTR_SINTESI.RUBR = ST_SPB_CONTR_SINTESI.RUBR
			AND SPB_CONTR_SINTESI.CUSTGAR = ST_SPB_CONTR_SINTESI.CUSTGAR
			AND SPB_CONTR_SINTESI.TIPPROD = ST_SPB_CONTR_SINTESI.TIPPROD
			AND SPB_CONTR_SINTESI.CODINT = ST_SPB_CONTR_SINTESI.CODINT
			AND SPB_CONTR_SINTESI.SUBPROD = ST_SPB_CONTR_SINTESI.SUBPROD
			AND SPB_CONTR_SINTESI.CODABI = ST_SPB_CONTR_SINTESI.CODABI
			AND SPB_CONTR_SINTESI.PCTKEY = ST_SPB_CONTR_SINTESI.PCTKEY
		WHERE ST_SPB_CONTR_SINTESI.DTTRIM IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_MIFID')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_SPB_MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_SPB_MIFID
		(RETE, CODAGENTE, CODICEFISCALE, ACCETTACOMPILAZIONE, CODICEPROFILOASSEGNATO, CODICEPROFILOCALCOLATO, CODICEQUESTIONARIO, DATAFINEVALIDITA, DATAINIZIOVALIDITA, CODICEAGENTE, CODICEAGENTERESPONSABILE, CODICEAGENTEREALE, TIPOQUESTIONARIO, STATUS, ID_ELAB)
		SELECT 
		 SPB_MIFID.RETE, SPB_MIFID.CODAGENTE, SPB_MIFID.CODICEFISCALE, SPB_MIFID.ACCETTACOMPILAZIONE, SPB_MIFID.CODICEPROFILOASSEGNATO, SPB_MIFID.CODICEPROFILOCALCOLATO, SPB_MIFID.CODICEQUESTIONARIO, SPB_MIFID.DATAFINEVALIDITA, SPB_MIFID.DATAINIZIOVALIDITA, SPB_MIFID.CODICEAGENTE, SPB_MIFID.CODICEAGENTERESPONSABILE, SPB_MIFID.CODICEAGENTEREALE, SPB_MIFID.TIPOQUESTIONARIO, SPB_MIFID.STATUS, @ID_ELAB
		FROM C6StagingPeriodico.SPB_MIFID
		LEFT OUTER JOIN C6StoricoPeriodico.ST_SPB_MIFID
			ON SPB_MIFID.RETE = ST_SPB_MIFID.RETE
			AND SPB_MIFID.CODICEFISCALE = ST_SPB_MIFID.CODICEFISCALE
		WHERE ST_SPB_MIFID.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX SPB_PROF_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'SPB_PROF_RISCHIO')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ST_SPB_PROF_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ST_SPB_PROF_RISCHIO
	--		(CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, ID_ELAB)
	--		SELECT 
	--		 CODICEPROFILO, DESCRIZIONEPROFILO, DESCRIZIONEPROFILOESTESA, PERCENTUALEASSETAZIONARIO, PERCENTUALEASSETOBBLIGAZIONARIO, PERCENTUALEASSETMONETARIO, VOLATILITADA, VOLATILITAA, RENDIMENTOATTESO, VARTRIMESTRALE, @ID_ELAB
	--		FROM C6StagingPeriodico.SPB_PROF_RISCHIO
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TABELLESTORICIZZATE XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TABELLESTORICIZZATE')
	--	BEGIN
	--		DELETE FROM C6StoricoPeriodico.ST_TABELLESTORICIZZATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6StoricoPeriodico.ST_TABELLESTORICIZZATE
	--		(Nome, Inizio, Fine, Durata, Vecchia_Durata, Storicizzata, ID_ELAB)
	--		SELECT 
	--		 Nome, Inizio, Fine, Durata, Vecchia_Durata, Storicizzata, @ID_ELAB
	--		FROM C6StagingPeriodico.TABELLESTORICIZZATE
	--	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TANAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TANAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, ID_ELAB)
		SELECT 
		 TANAB.RETE, TANAB.CODAREA, TANAB.CODPROG, TANAB.CODFIS, TANAB.DTRIF, TANAB.DTFINE, TANAB.DTINI, TANAB.CTVINI, TANAB.DTRENDMAX, TANAB.RENDMAX, TANAB.DTRENDMIN, TANAB.RENDMIN, TANAB.DTCTV, TANAB.CTV, TANAB.RENDATT, TANAB.DTCTVMAX, TANAB.CTVMAX, TANAB.DTCTVMIN, TANAB.CTVMIN, TANAB.CVN, TANAB.CVN_IA, TANAB.CVN_IT, TANAB.APP_INI, TANAB.TOT_APP, TANAB.TOT_LIQ, TANAB.TOT_CED, TANAB.TOT_DIV, TANAB.DCD, TANAB.DCVN, TANAB.SCARTO, TANAB.NTOT_APP, TANAB.NTOT_LIQ, TANAB.RENDATTANN, @ID_ELAB
		FROM C6StagingPeriodico.TANAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_TANAB
			ON TANAB.RETE = ST_TANAB.RETE
			AND TANAB.CODAREA = ST_TANAB.CODAREA
			AND TANAB.CODPROG = ST_TANAB.CODPROG
			AND TANAB.CODFIS = ST_TANAB.CODFIS
			AND TANAB.DTRIF = ST_TANAB.DTRIF
		WHERE ST_TANAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TCPTAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TCPTAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TCPTAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TCPTAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, STLIQ, DTVALORIZ, ID_ELAB)
		SELECT 
		 TCPTAB.RETE, TCPTAB.CODAREA, TCPTAB.CODPROG, TCPTAB.CODFIS, TCPTAB.DTRIF, TCPTAB.TIPPROD, TCPTAB.ISIN, TCPTAB.ID_WADEG, TCPTAB.MAF, TCPTAB.CODCONF, TCPTAB.SUBPROD, TCPTAB.CODPROD, TCPTAB.NUMPOL, TCPTAB.CONTO, TCPTAB.CUSTGAR, TCPTAB.RUBR, TCPTAB.CODABI, TCPTAB.TERMID, TCPTAB.ANNO, TCPTAB.PROG, TCPTAB.SPROG, TCPTAB.DTUSCITA, TCPTAB.DTSOTT, TCPTAB.CTVATT, TCPTAB.DTINGRESSO, TCPTAB.CTVINGRESSO, TCPTAB.DTTRIM, TCPTAB.RENDTRIM, TCPTAB.DTANNO, TCPTAB.RENDANNO, TCPTAB.DTINIZ, TCPTAB.RENDINIZ, TCPTAB.DTININAC, TCPTAB.RENDNAC, TCPTAB.CTVVP, TCPTAB.CVNTRIM, TCPTAB.CVNANNO, TCPTAB.CVNINIZ, TCPTAB.CVNNAC, TCPTAB.CODINT, TCPTAB.VALORE, TCPTAB.STLIQ, TCPTAB.DTVALORIZ, @ID_ELAB
		FROM C6StagingPeriodico.TCPTAB
		INNER JOIN C6StoricoPeriodico.ST_TCPTAB
			ON TCPTAB.RETE = ST_TCPTAB.RETE
			AND TCPTAB.CODAREA = ST_TCPTAB.CODAREA
			AND TCPTAB.CODPROG = ST_TCPTAB.CODPROG
			AND TCPTAB.CODFIS = ST_TCPTAB.CODFIS
			AND TCPTAB.DTRIF = ST_TCPTAB.DTRIF
			AND TCPTAB.TIPPROD = ST_TCPTAB.TIPPROD
			AND TCPTAB.ISIN = ST_TCPTAB.ISIN
			AND TCPTAB.MAF = ST_TCPTAB.MAF
			AND TCPTAB.CODCONF = ST_TCPTAB.CODCONF
			AND TCPTAB.SUBPROD = ST_TCPTAB.SUBPROD
			AND TCPTAB.CODPROD = ST_TCPTAB.CODPROD
			AND TCPTAB.NUMPOL = ST_TCPTAB.NUMPOL
			AND TCPTAB.CONTO = ST_TCPTAB.CONTO
			AND TCPTAB.CUSTGAR = ST_TCPTAB.CUSTGAR
			AND TCPTAB.RUBR = ST_TCPTAB.RUBR
			AND TCPTAB.CODABI = ST_TCPTAB.CODABI
			AND TCPTAB.TERMID = ST_TCPTAB.TERMID
			AND TCPTAB.ANNO = ST_TCPTAB.ANNO
			AND TCPTAB.PROG = ST_TCPTAB.PROG
			AND TCPTAB.SPROG = ST_TCPTAB.SPROG
			AND TCPTAB.DTINGRESSO = ST_TCPTAB.DTINGRESSO
		WHERE ST_TCPTAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TRENAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TRENAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, RENDATTANN, ID_ELAB)
		SELECT 
		 TRENAB.RETE, TRENAB.CODAREA, TRENAB.CODPROG, TRENAB.CODFIS, TRENAB.DTRIF, TRENAB.DTVALORIZ, TRENAB.CTV, TRENAB.DTINIZ, TRENAB.RENDINIZ, TRENAB.DTTRIM, TRENAB.RENDTRIM, TRENAB.DTANNO, TRENAB.RENDANNO, TRENAB.CVN, TRENAB.CVN_IA, TRENAB.CVN_IT, TRENAB.APP_INI, TRENAB.TOT_APP, TRENAB.TOT_LIQ, TRENAB.TOT_CED, TRENAB.TOT_DIV, TRENAB.DCD, TRENAB.DCVN, TRENAB.SCARTO, TRENAB.NTOT_APP, TRENAB.NTOT_LIQ, TRENAB.RENDATTANN, @ID_ELAB
		FROM C6StagingPeriodico.TRENAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_TRENAB
			ON TRENAB.RETE = ST_TRENAB.RETE
			AND TRENAB.CODAREA = ST_TRENAB.CODAREA
			AND TRENAB.CODPROG = ST_TRENAB.CODPROG
			AND TRENAB.CODFIS = ST_TRENAB.CODFIS
			AND TRENAB.DTRIF = ST_TRENAB.DTRIF
			AND TRENAB.DTVALORIZ = ST_TRENAB.DTVALORIZ
		WHERE ST_TRENAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX TSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'TSCABP')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_TSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_TSCABP
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
		SELECT 
		 TSCABP.RETE, TSCABP.CODAREA, TSCABP.CODPROG, TSCABP.CODFIS, TSCABP.DTRIF, TSCABP.TIPPROD, TSCABP.CODCONF, TSCABP.SUBPROD, TSCABP.CODPROD, TSCABP.CONTO, TSCABP.CUSTGAR, TSCABP.RUBR, TSCABP.CODABI, TSCABP.TERMID, TSCABP.ANNO, TSCABP.PROG, TSCABP.DTINGRESSO, TSCABP.ISTITUTO, TSCABP.TIPO_PRODOTT, TSCABP.CONTO_OP, TSCABP.STRUM_FIN, TSCABP.ID_MOVIM, TSCABP.TIPO_OP, TSCABP.RESTART, TSCABP.DT_ING_USC, TSCABP.ING_USC, TSCABP.COD_ERR, TSCABP.DESCR_ERR, TSCABP.DT_ELAB, TSCABP.DT_INS, TSCABP.PCT, TSCABP.PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.TSCABP
		LEFT OUTER JOIN C6StoricoPeriodico.ST_TSCABP
			ON TSCABP.RETE = ST_TSCABP.RETE
			AND TSCABP.CODAREA = ST_TSCABP.CODAREA
			AND TSCABP.CODPROG = ST_TSCABP.CODPROG
			AND TSCABP.CODFIS = ST_TSCABP.CODFIS
		WHERE ST_TSCABP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WANAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WANAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WANAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WANAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTFINE, DTINI, CTVINI, DTRENDMAX, RENDMAX, DTRENDMIN, RENDMIN, DTCTV, CTV, RENDATT, DTCTVMAX, CTVMAX, DTCTVMIN, CTVMIN, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
		SELECT 
		 WANAB.RETE, WANAB.CODAREA, WANAB.CODPROG, WANAB.CODFIS, WANAB.DTRIF, WANAB.DTFINE, WANAB.DTINI, WANAB.CTVINI, WANAB.DTRENDMAX, WANAB.RENDMAX, WANAB.DTRENDMIN, WANAB.RENDMIN, WANAB.DTCTV, WANAB.CTV, WANAB.RENDATT, WANAB.DTCTVMAX, WANAB.CTVMAX, WANAB.DTCTVMIN, WANAB.CTVMIN, WANAB.CVN, WANAB.CVN_IA, WANAB.CVN_IT, WANAB.APP_INI, WANAB.TOT_APP, WANAB.TOT_LIQ, WANAB.TOT_CED, WANAB.TOT_DIV, WANAB.DCD, WANAB.DCVN, WANAB.SCARTO, WANAB.NTOT_APP, WANAB.NTOT_LIQ, @ID_ELAB
		FROM C6StagingPeriodico.WANAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WANAB
			ON WANAB.RETE = ST_WANAB.RETE
			AND WANAB.CODAREA = ST_WANAB.CODAREA
			AND WANAB.CODPROG = ST_WANAB.CODPROG
			AND WANAB.CODFIS = ST_WANAB.CODFIS
			AND WANAB.DTRIF = ST_WANAB.DTRIF
		WHERE ST_WANAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WCPTAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WCPTAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WCPTAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WCPTAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, ISIN, ID_WADEG, MAF, CODCONF, SUBPROD, CODPROD, NUMPOL, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, SPROG, DTUSCITA, DTSOTT, CTVATT, DTINGRESSO, CTVINGRESSO, DTTRIM, RENDTRIM, DTANNO, RENDANNO, DTINIZ, RENDINIZ, DTININAC, RENDNAC, CTVVP, CVNTRIM, CVNANNO, CVNINIZ, CVNNAC, CODINT, VALORE, ID_ELAB)
		SELECT 
		 WCPTAB.RETE, WCPTAB.CODAREA, WCPTAB.CODPROG, WCPTAB.CODFIS, WCPTAB.DTRIF, WCPTAB.TIPPROD, WCPTAB.ISIN, WCPTAB.ID_WADEG, WCPTAB.MAF, WCPTAB.CODCONF, WCPTAB.SUBPROD, WCPTAB.CODPROD, WCPTAB.NUMPOL, WCPTAB.CONTO, WCPTAB.CUSTGAR, WCPTAB.RUBR, WCPTAB.CODABI, WCPTAB.TERMID, WCPTAB.ANNO, WCPTAB.PROG, WCPTAB.SPROG, WCPTAB.DTUSCITA, WCPTAB.DTSOTT, WCPTAB.CTVATT, WCPTAB.DTINGRESSO, WCPTAB.CTVINGRESSO, WCPTAB.DTTRIM, WCPTAB.RENDTRIM, WCPTAB.DTANNO, WCPTAB.RENDANNO, WCPTAB.DTINIZ, WCPTAB.RENDINIZ, WCPTAB.DTININAC, WCPTAB.RENDNAC, WCPTAB.CTVVP, WCPTAB.CVNTRIM, WCPTAB.CVNANNO, WCPTAB.CVNINIZ, WCPTAB.CVNNAC, WCPTAB.CODINT, WCPTAB.VALORE, @ID_ELAB
		FROM C6StagingPeriodico.WCPTAB
		INNER JOIN C6StoricoPeriodico.ST_WCPTAB
			ON WCPTAB.RETE = ST_WCPTAB.RETE
			AND WCPTAB.CODAREA = ST_WCPTAB.CODAREA
			AND WCPTAB.CODPROG = ST_WCPTAB.CODPROG
			AND WCPTAB.CODFIS = ST_WCPTAB.CODFIS
			AND WCPTAB.DTRIF = ST_WCPTAB.DTRIF
			AND WCPTAB.TIPPROD = ST_WCPTAB.TIPPROD
			AND WCPTAB.ISIN = ST_WCPTAB.ISIN
			AND WCPTAB.MAF = ST_WCPTAB.MAF
			AND WCPTAB.CODCONF = ST_WCPTAB.CODCONF
			AND WCPTAB.SUBPROD = ST_WCPTAB.SUBPROD
			AND WCPTAB.CODPROD = ST_WCPTAB.CODPROD
			AND WCPTAB.NUMPOL = ST_WCPTAB.NUMPOL
			AND WCPTAB.CONTO = ST_WCPTAB.CONTO
			AND WCPTAB.CUSTGAR = ST_WCPTAB.CUSTGAR
			AND WCPTAB.RUBR = ST_WCPTAB.RUBR
			AND WCPTAB.CODABI = ST_WCPTAB.CODABI
			AND WCPTAB.TERMID = ST_WCPTAB.TERMID
			AND WCPTAB.ANNO = ST_WCPTAB.ANNO
			AND WCPTAB.PROG = ST_WCPTAB.PROG
			AND WCPTAB.SPROG = ST_WCPTAB.SPROG
			AND WCPTAB.DTINGRESSO = ST_WCPTAB.DTINGRESSO
		WHERE ST_WCPTAB.RETE IS NULL
	END

	--XXXXXXXXXXXXXXXXXXXXXXXX WMANDATI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WMANDATI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WMANDATI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WMANDATI
		(PIVA, CODMAND, CODBREVE, ID_ELAB)
		SELECT
		 WMANDATI.PIVA, WMANDATI.CODMAND, WMANDATI.CODBREVE, @ID_ELAB
		FROM C6StagingPeriodico.WMANDATI
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WMANDATI
			ON WMANDATI.CODMAND = ST_WMANDATI.CODMAND
		WHERE ST_WMANDATI.CODMAND IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WRENAB XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WRENAB')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WRENAB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WRENAB
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, DTVALORIZ, CTV, DTINIZ, RENDINIZ, DTTRIM, RENDTRIM, DTANNO, RENDANNO, CVN, CVN_IA, CVN_IT, APP_INI, TOT_APP, TOT_LIQ, TOT_CED, TOT_DIV, DCD, DCVN, SCARTO, NTOT_APP, NTOT_LIQ, ID_ELAB)
		SELECT 
		 WRENAB.RETE, WRENAB.CODAREA, WRENAB.CODPROG, WRENAB.CODFIS, WRENAB.DTRIF, WRENAB.DTVALORIZ, WRENAB.CTV, WRENAB.DTINIZ, WRENAB.RENDINIZ, WRENAB.DTTRIM, WRENAB.RENDTRIM, WRENAB.DTANNO, WRENAB.RENDANNO, WRENAB.CVN, WRENAB.CVN_IA, WRENAB.CVN_IT, WRENAB.APP_INI, WRENAB.TOT_APP, WRENAB.TOT_LIQ, WRENAB.TOT_CED, WRENAB.TOT_DIV, WRENAB.DCD, WRENAB.DCVN, WRENAB.SCARTO, WRENAB.NTOT_APP, WRENAB.NTOT_LIQ, @ID_ELAB
		FROM C6StagingPeriodico.WRENAB
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WRENAB
			ON WRENAB.RETE = ST_WRENAB.RETE
			AND WRENAB.CODAREA = ST_WRENAB.CODAREA
			AND WRENAB.CODPROG = ST_WRENAB.CODPROG
			AND WRENAB.CODFIS = ST_WRENAB.CODFIS
			AND WRENAB.DTRIF = ST_WRENAB.DTRIF
			AND WRENAB.DTVALORIZ = ST_WRENAB.DTVALORIZ
		WHERE ST_WRENAB.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSCABP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSCABP')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSCABP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSCABP
		(RETE, CODAREA, CODPROG, CODFIS, DTRIF, TIPPROD, CODCONF, SUBPROD, CODPROD, CONTO, CUSTGAR, RUBR, CODABI, TERMID, ANNO, PROG, DTINGRESSO, ISTITUTO, TIPO_PRODOTT, CONTO_OP, STRUM_FIN, ID_MOVIM, TIPO_OP, RESTART, DT_ING_USC, ING_USC, COD_ERR, DESCR_ERR, DT_ELAB, DT_INS, PCT, PROVENIENZA, ID_ELAB)
		SELECT 
		 WSCABP.RETE, WSCABP.CODAREA, WSCABP.CODPROG, WSCABP.CODFIS, WSCABP.DTRIF, WSCABP.TIPPROD, WSCABP.CODCONF, WSCABP.SUBPROD, WSCABP.CODPROD, WSCABP.CONTO, WSCABP.CUSTGAR, WSCABP.RUBR, WSCABP.CODABI, WSCABP.TERMID, WSCABP.ANNO, WSCABP.PROG, WSCABP.DTINGRESSO, WSCABP.ISTITUTO, WSCABP.TIPO_PRODOTT, WSCABP.CONTO_OP, WSCABP.STRUM_FIN, WSCABP.ID_MOVIM, WSCABP.TIPO_OP, WSCABP.RESTART, WSCABP.DT_ING_USC, WSCABP.ING_USC, WSCABP.COD_ERR, WSCABP.DESCR_ERR, WSCABP.DT_ELAB, WSCABP.DT_INS, WSCABP.PCT, WSCABP.PROVENIENZA, @ID_ELAB
		FROM C6StagingPeriodico.WSCABP
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSCABP
			ON WSCABP.RETE = ST_WSCABP.RETE
			AND WSCABP.CODAREA = ST_WSCABP.CODAREA
			AND WSCABP.CODPROG = ST_WSCABP.CODPROG
			AND WSCABP.CODFIS = ST_WSCABP.CODFIS
		WHERE ST_WSCABP.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIAN XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIAN')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIAN WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIAN
		(DTTRIM, RETE, CODFIS, NOME, COGNOME, DTNASCI, INDIRIZZO, CAP, CITTA, PROVINCIA, NAZIONE, CODPROF, ID_ELAB)
		SELECT 
		 WSEIAN.DTTRIM, WSEIAN.RETE, WSEIAN.CODFIS, WSEIAN.NOME, WSEIAN.COGNOME, WSEIAN.DTNASCI, WSEIAN.INDIRIZZO, WSEIAN.CAP, WSEIAN.CITTA, WSEIAN.PROVINCIA, WSEIAN.NAZIONE, WSEIAN.CODPROF, @ID_ELAB
		FROM C6StagingPeriodico.WSEIAN
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEIAN
			ON WSEIAN.DTTRIM = ST_WSEIAN.DTTRIM
			AND WSEIAN.RETE = ST_WSEIAN.RETE
			AND WSEIAN.CODFIS = ST_WSEIAN.CODFIS
		WHERE ST_WSEIAN.DTTRIM IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEICS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEICS')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEICS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEICS
		(DTTRIM, DTRIFE, RETE, CODFIS, CODCONF, NUMPOL, CONTO, RUBR, CUSTGAR, TIPPROD, CODINT, CODPROD, SUBPROD, MAF, CODABI, PCTKEY, DESTIT, CTV, PARTVIA, PARTVIAAL, DTSOTTOS, RENDINIZ, RENDANNO, VALORE, SUBSET, CVN, QUOTE, ID_ELAB)
		SELECT 
		 WSEICS.DTTRIM, WSEICS.DTRIFE, WSEICS.RETE, WSEICS.CODFIS, WSEICS.CODCONF, WSEICS.NUMPOL, WSEICS.CONTO, WSEICS.RUBR, WSEICS.CUSTGAR, WSEICS.TIPPROD, WSEICS.CODINT, WSEICS.CODPROD, WSEICS.SUBPROD, WSEICS.MAF, WSEICS.CODABI, WSEICS.PCTKEY, WSEICS.DESTIT, WSEICS.CTV, WSEICS.PARTVIA, WSEICS.PARTVIAAL, WSEICS.DTSOTTOS, WSEICS.RENDINIZ, WSEICS.RENDANNO, WSEICS.VALORE, WSEICS.SUBSET, WSEICS.CVN, WSEICS.QUOTE, @ID_ELAB
		FROM C6StagingPeriodico.WSEICS
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEICS
			ON WSEICS.DTTRIM = ST_WSEICS.DTTRIM
			AND WSEICS.DTRIFE = ST_WSEICS.DTRIFE
			AND WSEICS.RETE = ST_WSEICS.RETE
			AND WSEICS.CODFIS = ST_WSEICS.CODFIS
			AND WSEICS.CODCONF = ST_WSEICS.CODCONF
			AND WSEICS.CONTO = ST_WSEICS.CONTO
			AND WSEICS.RUBR = ST_WSEICS.RUBR
			AND WSEICS.CUSTGAR = ST_WSEICS.CUSTGAR
			AND WSEICS.TIPPROD = ST_WSEICS.TIPPROD
			AND WSEICS.CODINT = ST_WSEICS.CODINT
			AND WSEICS.SUBPROD = ST_WSEICS.SUBPROD
			AND WSEICS.CODABI = ST_WSEICS.CODABI
			AND WSEICS.PCTKEY = ST_WSEICS.PCTKEY
		WHERE ST_WSEICS.DTTRIM IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIPV XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIPV')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIPV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIPV
		(DTTRIM, RETE, CODFIS, CODCONF, IMPVER, DTRIFE, SUBSET, ID_ELAB)
		SELECT 
		 WSEIPV.DTTRIM, WSEIPV.RETE, WSEIPV.CODFIS, WSEIPV.CODCONF, WSEIPV.IMPVER, WSEIPV.DTRIFE, WSEIPV.SUBSET, @ID_ELAB
		FROM C6StagingPeriodico.WSEIPV
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEIPV
			ON WSEIPV.RETE = ST_WSEIPV.RETE
			AND WSEIPV.CODFIS = ST_WSEIPV.CODFIS
			AND WSEIPV.CODCONF = ST_WSEIPV.CODCONF
			AND WSEIPV.DTRIFE = ST_WSEIPV.DTRIFE
		WHERE ST_WSEIPV.RETE IS NULL
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX WSEIUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'WSEIUL')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ST_WSEIUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.ST_WSEIUL
		(DTTRIM, RETE, CODFIS, CODCONF, CODINT, SUBPROD, CTV, DTRIFE, ISINFIT, ISIN, MAF, SUBSET, ID_ELAB)
		SELECT 
		 WSEIUL.DTTRIM, WSEIUL.RETE, WSEIUL.CODFIS, WSEIUL.CODCONF, WSEIUL.CODINT, WSEIUL.SUBPROD, WSEIUL.CTV, WSEIUL.DTRIFE, WSEIUL.ISINFIT, WSEIUL.ISIN, WSEIUL.MAF, WSEIUL.SUBSET, @ID_ELAB
		FROM C6StagingPeriodico.WSEIUL
		LEFT OUTER JOIN C6StoricoPeriodico.ST_WSEIUL
			ON WSEIUL.RETE = ST_WSEIUL.RETE
			AND WSEIUL.CODCONF = ST_WSEIUL.CODCONF
			AND WSEIUL.CODINT = ST_WSEIUL.CODINT
			AND WSEIUL.SUBPROD = ST_WSEIUL.SUBPROD
			AND WSEIUL.DTRIFE = ST_WSEIUL.DTRIFE
		WHERE ST_WSEIUL.RETE IS NULL
	END
 

	-- XX -- XX -- XX AGGIORNAMENTO DATI C6StagingPeriodico.TabelleStoricizzate XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6StagingPeriodico.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END

END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_TABELLE_IN_STAGING]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[SRV_TABELLE_IN_STAGING]  
AS  
BEGIN  
DECLARE @tabella AS VARCHAR(50)   
 SET @tabella = NULL  
  
 SELECT TOP 1 @tabella = A.tabella  
 FROM(  
  SELECT tables.name tabella  
  FROM sys.tables tables  
  INNER JOIN sys.schemas schemas  
   ON tables.schema_id = schemas.schema_id  
  WHERE schemas.name = 'C6StagingPeriodico'  
   AND tables.name NOT IN ('TabelleStoricizzate','WSEIAN','WSEICS','WSEIPV','WSEIUL','CONGELAMENTO_SEI','PROMETEIA_AGGR')  
 ) A  
 WHERE A.tabella NOT IN (  
  SELECT Nome   
  FROM C6StagingPeriodico.TabelleStoricizzate  
 )  
 ORDER BY A.tabella  
  
 -- inserisce dei NULL in TabelleStoricizzate!!!  
 /*INSERT INTO [C6StagingPeriodico].[TabelleStoricizzate]  
           ([Nome])  
 VALUES  
           (@tabella)*/  
  
 DECLARE @tabellaStagingDaStoricizzare AS SMALLINT  
 IF @tabella IS NOT NULL  
  BEGIN  
   INSERT INTO [C6StagingPeriodico].[TabelleStoricizzate]  
       ([Nome])  
   VALUES  
       (@tabella)  
   EXEC [C6StagingPeriodico].[SRV_STORICIZZAZIONE] @tabella  
   SET @tabellaStagingDaStoricizzare = 1  
  END  
 ELSE  
  SET @tabellaStagingDaStoricizzare = 0  
  
 SELECT @tabellaStagingDaStoricizzare tabella, @tabella nome  
-- DECLARE @tabella AS VARCHAR(50)   
-- SET @tabella = NULL  
--  
-- -- AGGIORNAMENTO TABELLA C6StagingPeriodico.TabelleStoricizzate:  
-- --> CANCELLO LE VECCHIE  
-- DELETE C6StagingPeriodico.TabelleStoricizzate   
-- FROM sys.tables tables  
-- INNER JOIN sys.schemas schemas  
--  ON tables.schema_id = schemas.schema_id  
-- RIGHT JOIN C6StagingPeriodico.TabelleStoricizzate   
--  ON tables.name = TabelleStoricizzate.NOME  
-- WHERE schemas.name = 'C6StagingPeriodico'  
--  AND tables.name IS NULL  
--   
-- --> INSERISCO LE NUOVE TABELLE  
-- INSERT INTO C6StagingPeriodico.TabelleStoricizzate (NOME, STORICIZZATA)  
-- SELECT tables.name, 0  
-- FROM sys.tables tables  
-- INNER JOIN sys.schemas schemas  
--  ON tables.schema_id = schemas.schema_id  
-- LEFT JOIN C6StagingPeriodico.TabelleStoricizzate   
--  ON tables.name = TabelleStoricizzate.NOME  
-- WHERE schemas.name = 'C6StagingPeriodico'  
--  AND TabelleStoricizzate.NOME IS NULL  
-- -- FINE AGGIORNAMENTO TABELLA  
--  
-- -- SELEZIONE TABELLA  
-- SELECT TOP 1 @tabella = NOME  
-- FROM C6StagingPeriodico.TabelleStoricizzate  
-- WHERE STORICIZZATA = 0  
-- ORDER BY DURATA DESC  
--  
-- -- MARCATURA TABELLA SELEZIONATA  
-- UPDATE C6StagingPeriodico.TabelleStoricizzate  
-- SET   
--  STORICIZZATA = 1,  
--  VECCHIA_DURATA = DURATA,  
--  INIZIO = GETDATE()  
-- WHERE NOME = @tabella  
--  
---- select @tabella  
---- return   
--  
-- DECLARE @tabellaDaStoricizzare AS SMALLINT  
--  
-- IF @tabella IS NOT NULL  
-- BEGIN  
--  --EXEC C6StagingPeriodico.SRV_STORICIZZAZIONE @tabella  
--  SET @tabellaDaStoricizzare = 1  
-- END  
-- ELSE  
--  SET @tabellaDaStoricizzare = 0  
--  
-- SELECT @tabellaDaStoricizzare tabella , @tabella nome  
   
END  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[SRV_TABELLE_IN_STAGING_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[SRV_TABELLE_IN_STAGING_pre_selective]
AS
BEGIN
DECLARE @tabella AS VARCHAR(50) 
	SET @tabella = NULL

	SELECT TOP 1 @tabella = A.tabella
	FROM(
		SELECT tables.name tabella
		FROM sys.tables tables
		INNER JOIN sys.schemas schemas
			ON tables.schema_id = schemas.schema_id
		WHERE schemas.name = 'C6StagingPeriodico'
			AND tables.name NOT IN ('TabelleStoricizzate','WSEIAN','WSEICS','WSEIPV','WSEIUL','CONGELAMENTO_SEI','PROMETEIA_AGGR')
	) A
	WHERE A.tabella NOT IN (
		SELECT Nome 
		FROM C6StagingPeriodico.TabelleStoricizzate
	)
	ORDER BY A.tabella

	-- inserisce dei NULL in TabelleStoricizzate!!!
	/*INSERT INTO [C6StagingPeriodico].[TabelleStoricizzate]
           ([Nome])
	VALUES
           (@tabella)*/

	DECLARE @tabellaStagingDaStoricizzare AS SMALLINT
	IF @tabella IS NOT NULL
		BEGIN
			INSERT INTO [C6StagingPeriodico].[TabelleStoricizzate]
				   ([Nome])
			VALUES
				   (@tabella)
			EXEC [C6StagingPeriodico].[SRV_STORICIZZAZIONE] @tabella
			SET @tabellaStagingDaStoricizzare = 1
		END
	ELSE
		SET @tabellaStagingDaStoricizzare = 0

	SELECT @tabellaStagingDaStoricizzare tabella, @tabella nome
--	DECLARE @tabella AS VARCHAR(50) 
--	SET @tabella = NULL
--
--	-- AGGIORNAMENTO TABELLA C6StagingPeriodico.TabelleStoricizzate:
--	--> CANCELLO LE VECCHIE
--	DELETE C6StagingPeriodico.TabelleStoricizzate 
--	FROM sys.tables tables
--	INNER JOIN sys.schemas schemas
--		ON tables.schema_id = schemas.schema_id
--	RIGHT JOIN C6StagingPeriodico.TabelleStoricizzate 
--		ON tables.name = TabelleStoricizzate.NOME
--	WHERE schemas.name = 'C6StagingPeriodico'
--		AND tables.name IS NULL
--	
--	--> INSERISCO LE NUOVE TABELLE
--	INSERT INTO C6StagingPeriodico.TabelleStoricizzate (NOME, STORICIZZATA)
--	SELECT tables.name, 0
--	FROM sys.tables tables
--	INNER JOIN sys.schemas schemas
--		ON tables.schema_id = schemas.schema_id
--	LEFT JOIN C6StagingPeriodico.TabelleStoricizzate 
--		ON tables.name = TabelleStoricizzate.NOME
--	WHERE schemas.name = 'C6StagingPeriodico'
--		AND TabelleStoricizzate.NOME IS NULL
--	-- FINE AGGIORNAMENTO TABELLA
--
--	-- SELEZIONE TABELLA
--	SELECT TOP 1 @tabella = NOME
--	FROM C6StagingPeriodico.TabelleStoricizzate
--	WHERE STORICIZZATA = 0
--	ORDER BY DURATA DESC
--
--	-- MARCATURA TABELLA SELEZIONATA
--	UPDATE C6StagingPeriodico.TabelleStoricizzate
--	SET 
--		STORICIZZATA = 1,
--		VECCHIA_DURATA = DURATA,
--		INIZIO = GETDATE()
--	WHERE NOME = @tabella
--
----	select @tabella
----	return 
--
--	DECLARE @tabellaDaStoricizzare AS SMALLINT
--
--	IF @tabella IS NOT NULL
--	BEGIN
--		--EXEC C6StagingPeriodico.SRV_STORICIZZAZIONE @tabella
--		SET @tabellaDaStoricizzare = 1
--	END
--	ELSE
--		SET @tabellaDaStoricizzare = 0
--
--	SELECT @tabellaDaStoricizzare tabella , @tabella nome
	
END
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_CREA_POSITIONID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
--  
--select * from c6stagingperiodico.spb_contr_sintesi  
--where positionId is null  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[ST_CREA_POSITIONID]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_CREA_POSITIONID',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 UPDATE      
  C6StagingPeriodico.SPB_CONTR_SINTESI  
 SET         
  POSITIONID =   
--  CASE   
--   WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI  
--   ELSE   
             [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo  
    (  
    TIPPROD,   
    CODINT,   
    MAF,   
    --V ISIN per ASU2  
    CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END,   
    SUBPROD  
    )   
  --END  
        +   
   dbo.Crea_positionID  
    (  
    TIPPROD,   
    CODINT,   
    MAF,   
    '',   
    SUBPROD,   
    CODCONF, -- VERIFICARNE LA CORRETTEZZA  
    NUMPOL,   
    CONTO,  
                RUBR,   
    CUSTGAR,   
    CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
    END,   
    CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
    END,   
    CASE  
     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
    END  
    )  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_CREA_POSITIONID' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE  
   WHERE  
    Nome = 'ST_CREA_POSITIONID'  
  )  
  
END  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_CREA_POSITIONID_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--
--select * from c6stagingperiodico.spb_contr_sintesi
--where positionId is null

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6StagingPeriodico].[ST_CREA_POSITIONID_pre_selective]
AS
BEGIN

	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_CREA_POSITIONID_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	UPDATE    
		C6StagingPeriodico.SPB_CONTR_SINTESI
	SET       
		POSITIONID = 
--		CASE 
--			WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI
--			ELSE 
             [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo
				(
				TIPPROD, 
				CODINT, 
				MAF, 
				--V ISIN per ASU2
				CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END, 
				SUBPROD
				) 
		--END
        + 
			dbo.Crea_positionID
				(
				TIPPROD, 
				CODINT, 
				MAF, 
				'', 
				SUBPROD, 
				CODCONF, -- VERIFICARNE LA CORRETTEZZA
				NUMPOL, 
				CONTO,
                RUBR, 
				CUSTGAR, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
				END
				)

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_CREA_POSITIONID_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_CREA_POSITIONID_pre_selective'
		)

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_DATA_CONGELAMENTO_SEI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[ST_DATA_CONGELAMENTO_SEI]   
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
-- FC 11/07/2014   
-- Cmbiata valorizzazione della data congelamento  
-- deve essere sempre uguale all'effettivo congelamento ( ultimo gg trimestre )  
  
 --IF NOT EXISTS (  
  --SELECT  
  -- DATA_CONGELAMENTO  
  --FROM  
  -- C6StagingPeriodico.CONGELAMENTO_SEI  
 --)  
 -- INSERT INTO  
 --  C6StagingPeriodico.CONGELAMENTO_SEI  
 -- VALUES (  
 --  GETDATE()  
 -- )  
   
   
     truncate table C6StagingPeriodico.CONGELAMENTO_SEI  
       
       
  INSERT INTO  
   C6StagingPeriodico.CONGELAMENTO_SEI  
  VALUES (  
   C6MartPeriodico.getTrimestre(getdate(),0)  
  )  
   
END  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_DATA_CONGELAMENTO_SEI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6StagingPeriodico].[ST_DATA_CONGELAMENTO_SEI_pre_selective] 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

-- FC 11/07/2014 
-- Cmbiata valorizzazione della data congelamento
-- deve essere sempre uguale all'effettivo congelamento ( ultimo gg trimestre )

	--IF NOT EXISTS (
		--SELECT
		--	DATA_CONGELAMENTO
		--FROM
		--	C6StagingPeriodico.CONGELAMENTO_SEI
	--)
	--	INSERT INTO
	--		C6StagingPeriodico.CONGELAMENTO_SEI
	--	VALUES (
	--		GETDATE()
	--	)
	
	
     truncate table C6StagingPeriodico.CONGELAMENTO_SEI
     
     
		INSERT INTO
			C6StagingPeriodico.CONGELAMENTO_SEI
		VALUES (
			C6MartPeriodico.getTrimestre(getdate(),0)
		)
	
END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SELECT_FOR_ADS4WS]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6StagingPeriodico].[ST_SELECT_FOR_ADS4WS] 1
CREATE procedure [C6StagingPeriodico].[ST_SELECT_FOR_ADS4WS]
	@Tipo AS INTEGER
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SELECT_FOR_ADS4WS',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	IF @Tipo = 1

	BEGIN
		-- ELIMINIAMO I CODICI FITTIZI
		SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport C6
		LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
		WHERE PF.RETE IS NULL
		-- Porcata per risolvere il problema del promotore non associato --vecchia trimestrale '008636','013917',
		AND C6.COD_AGENTE NOT IN ('006003','012192') --,'014504','008392','005087')    -- --('008636','013917','010790','012192','014597','004038')
	END 

	ELSE

	BEGIN
		-- PRENDO I CODICI FITTIZI
		SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM C6MartPeriodico.RP_vContrattiPerGenerazioneReport C6
		INNER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
	END
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SELECT_FOR_ADS4WS' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SELECT_FOR_ADS4WS'
		)
END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SELECT_FOR_ADS4WS_EMAIL]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--[C6Staging].[ST_SELECT_FOR_ADS4WS] 1
CREATE procedure [C6StagingPeriodico].[ST_SELECT_FOR_ADS4WS_EMAIL]
	@Tipo AS INTEGER
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SELECT_FOR_ADS4WS_EMAIL',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	IF @Tipo = 1

	BEGIN
		-- ELIMINIAMO I CODICI FITTIZI
		SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM C6MartPeriodico.vContrattiPerGenerazioneReportEmail C6
		LEFT JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
		WHERE PF.RETE IS NULL
	END 

	ELSE

	BEGIN
		-- PRENDO I CODICI FITTIZI
		SELECT DISTINCT 
			C6.RETE,
			C6.COD_AGENTE AS AGENTE,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END AS PREFISSO,
			CASE C6.RETE 
				WHEN 'F' THEN 'R' 
				ELSE 'P' 
			END + C6.COD_AGENTE AS FIRMA
		FROM C6MartPeriodico.vContrattiPerGenerazioneReportEmail C6
		INNER JOIN C6MART.CODICI_PROMOTORI_FITTIZI PF
			ON (C6.COD_AGENTE BETWEEN PF.CODICEDA AND PF.CODICEA)
			AND C6.RETE = PF.RETE
	END
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'SELECT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SELECT_FOR_ADS4WS_EMAIL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SELECT_FOR_ADS4WS_EMAIL'
		)
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
--select count(*) from c6stagingperiodico.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodico].[ST_SPB_CONTR_SINTESI]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
 TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM [C6StagingPeriodico].[WSEICS] AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
  C6Mart.CONTRATTOSEI) C6  
  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM [C6StagingPeriodico].[WSEICS] AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
  C6Mart.CONTRATTOSEI) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM [C6StagingPeriodico].[WSEICS] AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
  C6Mart.CONTRATTOSEI) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SPB_CONTR_SINTESI_asu2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6StagingPeriodico].[ST_SPB_CONTR_SINTESI_asu2]
AS
BEGIN
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SPB_CONTR_SINTESI',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]

	INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]
			   ([POSITIONID]
			  ,[DTTRIM]
			  ,[DTRIFE]
			  ,[RETE]
			  ,[CODFIS]
			  ,[CODCONF]
			  ,[NUMPOL]
			  ,[CONTO]
			  ,[RUBR]
			  ,[CUSTGAR]
			  ,[TIPPROD]
			  ,[CODINT]
			  ,[CODPROD]
			  ,[SUBPROD]
			  ,[MAF]
			  ,[CODABI]
			  ,[PCTKEY]
			  ,[DESTIT]
			  ,[CTV]
			  ,[PARTVIA]
			  ,[PARTVIAAL]
			  ,[DTSOTTOS]
			  ,[RENDINIZ]
			  ,[RENDANNO]
			  ,[VALORE]
			  ,[SUBSET]
			  ,[CVN]
			  ,[SALRISC])

	SELECT 
		   NULL AS [POSITIONID]
	      ,[DTTRIM]
		  ,[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CODMAN ='' THEN CODFIS
		ELSE 'FF@'+CODMAN
		    END AS CODFIS
		  ,[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,[TIPPROD]
		  ,[CODINT]
		  ,[CODPROD]
		  ,[SUBPROD]
		  ,[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
	  FROM [C6StagingPeriodico].[WSEICS] AS CS INNER JOIN
			[C6Mart].[CONTRATTOSEI] AS C6 ON
			CS.RETE = C6.RETE AND
-- TRINGALI 19022010
	(case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))
	  WHERE [DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)
--V Bisogna inserire una funzione che calcoli il trimestre precedente getPreviousTrim()
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > 
		--select c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       '20110331'


		-- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SPB_CONTR_SINTESI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SPB_CONTR_SINTESI'
		)
END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SPB_CONTR_SINTESI_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--select count(*) from c6stagingperiodico.spb_contr_sintesi
CREATE procedure [C6StagingPeriodico].[ST_SPB_CONTR_SINTESI_pre_selective]
AS
BEGIN
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_SPB_CONTR_SINTESI_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

	TRUNCATE TABLE [C6StagingPeriodico].[SPB_CONTR_SINTESI]

	INSERT INTO [C6StagingPeriodico].[SPB_CONTR_SINTESI]
			   ([POSITIONID]
			  ,[DTTRIM]
			  ,[DTRIFE]
			  ,[RETE]
			  ,[CODFIS]
			  ,[CODCONF]
			  ,[NUMPOL]
			  ,[CONTO]
			  ,[RUBR]
			  ,[CUSTGAR]
			  ,[TIPPROD]
			  ,[CODINT]
			  ,[CODPROD]
			  ,[SUBPROD]
			  ,[MAF]
			  ,[CODABI]
			  ,[PCTKEY]
			  ,[DESTIT]
			  ,[CTV]
			  ,[PARTVIA]
			  ,[PARTVIAAL]
			  ,[DTSOTTOS]
			  ,[RENDINIZ]
			  ,[RENDANNO]
			  ,[VALORE]
			  ,[SUBSET]
			  ,[CVN]
			  ,[SALRISC]
			  ,[ISIN])

	SELECT 
		   NULL AS [POSITIONID]
	      ,[DTTRIM]
		  ,[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CODMAN ='' THEN CODFIS
		ELSE 'FF@'+CODMAN
		    END AS CODFIS
		  ,[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar
		  ,[TIPPROD]
		  ,[CODINT]
		  ,[CODPROD]
		  ,[SUBPROD]
		  ,[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN 
	  FROM [C6StagingPeriodico].[WSEICS] AS CS
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
		C6Mart.CONTRATTOSEI) C6

--INNER JOIN
--			[C6Mart].[CONTRATTOSEI] AS C6
ON
			CS.RETE = C6.RETE AND
-- TRINGALI 19022010
	(case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))
	  WHERE [DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS LI RECUPERO DALLA WSEIUL
	  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')

AND C6.UltimoAperto = 1

--trimestrale Aprile 2013
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'
		
UNION ALL


	

SELECT 
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'
			end as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,UL.[CTV]
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN
	  FROM [C6StagingPeriodico].[WSEICS] AS CS 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
		C6Mart.CONTRATTOSEI) C6

--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')
AND C6.UltimoAperto = 1

	 UNION ALL
	  --INSERIRE VAR5..15
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per
	  -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga
	  -- unica e devono essere classificati come ASU1
	  SELECT 
		DISTINCT
		   NULL AS [POSITIONID]
	      ,CS.[DTTRIM]
		  ,CS.[DTRIFE]
           ,[CS].[RETE]
		   ,CASE
		WHEN CS.CODMAN ='' THEN CS.CODFIS
		ELSE 'FF@'+CS.CODMAN
		    END AS CODFIS
		  ,CS.[CODCONF]
		  ,[NUMPOL]
		  ,[CONTO]
		  ,case when (tipprod = 'CC' and rubr =' ') then '000'
			else RUBR end as RUBR
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else CUSTGAR end as custgar

		  ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'
		  'ASU1' as TIPPROD
		  ,UL.[CODINT]
		  ,[CODPROD]
		  ,UL.[SUBPROD]
		  ,'NA' as MAF--UL.[MAF]
		  ,[CODABI]
		  ,case when (tipprod = 'CC' and rubr =' ') then '0'
			else PCTKEY end as pctkey
		  ,[DESTIT]
		  ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV
		  ,[PARTVIA]
		  ,[PARTVIAAL]
		  ,[DTSOTTOS]
		  ,[RENDINIZ]
		  ,[RENDANNO]
		  ,[VALORE]
		  ,UL.[SUBSET]
		  ,[CVN]
		  ,[SALRISC]
		  ,'NA' as ISIN
	  FROM [C6StagingPeriodico].[WSEICS] AS CS 
--	  JOIN [C6Mart].[CONTRATTOSEI] AS C6 
join
(SELECT
		Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto
	FROM
		C6Mart.CONTRATTOSEI) C6

		ON CS.RETE = C6.RETE 
		AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale

	  JOIN C6STAGINGPERIODICO.WSEIUL AS UL
		ON	CS.CODCONF = UL.CODCONF
		AND	CS.DTTRIM = UL.DTTRIM
	  WHERE CS.[DTTRIM] = c6martperiodico.gettrimestre2(getdate(),0)
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)

	  --V I KE, KS,KW LI RECUPERO DALLA WSEIUL
	  AND	(
				CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI') 
				OR 
				(CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7')) 
				--OR
				--(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))
			)
AND C6.UltimoAperto = 1		   



	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_SPB_CONTR_SINTESI_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_SPB_CONTR_SINTESI_pre_selective'
		)
END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SVUOTASIMPB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6StagingPeriodico].[ST_SVUOTASIMPB]  
AS  
BEGIN  
 -- SET NOCOUNT ON added to prevent extra result sets from  
 -- interfering with SELECT statements.  
 SET NOCOUNT ON;  
  
 TRUNCATE TABLE C6StagingPeriodico.WSEIAN  
  
 TRUNCATE TABLE C6StagingPeriodico.WSEICS  
  
 TRUNCATE TABLE C6StagingPeriodico.WSEILG  
  
 TRUNCATE TABLE C6StagingPeriodico.WSEIPV  
  
 TRUNCATE TABLE C6StagingPeriodico.WSEIUL  
  
END  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[ST_SVUOTASIMPB_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6StagingPeriodico].[ST_SVUOTASIMPB_pre_selective]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	TRUNCATE TABLE C6StagingPeriodico.WSEIAN

	TRUNCATE TABLE C6StagingPeriodico.WSEICS

	TRUNCATE TABLE C6StagingPeriodico.WSEILG

	TRUNCATE TABLE C6StagingPeriodico.WSEIPV

	TRUNCATE TABLE C6StagingPeriodico.WSEIUL

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg] 'f', 'BLDMRA59E22G999d', '2015-06-01'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16),
	@DTTRIM datetime = null
	
AS
BEGIN

DECLARE @d nvarchar(8)
set @d = cast(year(@DTTRIM) as nvarchar(4)) + RIGHT('0'+cast(month(@DTTRIM) as nvarchar(2)), 2)
 + RIGHT('0'+cast(day(@DTTRIM) as nvarchar(2)),2)

print @d 

if @DTTRIM is null

begin

if @CodiceFiscale not like 'FF@%' BEGIN

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis = @CodiceFiscale and RETE = @Rete 

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@d

END
ELSE

BEGIN

DECLARE @CF as nvarchar(max)
set @CF = replace(@CodiceFiscale, 'FF@', '')

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codman = @CF

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE  codman = @CF 
and DTTRIM=@d

END

end 
else
begin

if @CodiceFiscale not like 'FF@%' BEGIN



SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@DTTRIM

END
ELSE

BEGIN

DECLARE @CFF as nvarchar(max)
set @CFF = replace(@CodiceFiscale, 'FF@', '')

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE  codman = @CFF 
and DTTRIM=@DTTRIM

END


end






END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_PROFESS_CURR_DTTRIM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_PROFESS_CURR_DTTRIM] 'F', 'MGNGPP55B25G224T'
CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_PROFESS_CURR_DTTRIM]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)
DECLARE @isPG integer
DECLARE @isPG_NQ char(1)
DECLARE @dtrim nvarchar(8)
set @dtrim = c6martperiodico.getTrimestre(getdate(), 0)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @isPG = FLAGPG from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 
	and DTTRIM=@dtrim

	if @isPG = 0
	BEGIN
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG]
		--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		WHERE codfis  = @CodiceFiscale and RETE = @Rete
		and DTTRIM=@dtrim
	END
	
	ELSE /* isPG = 1 */
	BEGIN
		select @isPG_NQ = 		
		   CASE 
				WHEN FLAGNQP IS NULL or FLAGNQP ='' THEN 'N'
				ELSE FLAGNQP
			END 
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codfis = @CodiceFiscale and RETE = @Rete 
		and DTTRIM=@dtrim

		if @isPG_NQ = 'S'
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@dtrim
		END

		ELSE  /* isPG_NQ = N */
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and adeg.[FLAGNQP]=@isPG_NQ
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@dtrim
			--and an.[FLAGNQP]='N' and coalesce(adeg.[FLGPRLRDE],'yn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		END
	END
	END

ELSE /* Mandatario - Fiduciaria */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	/* case PG = 0 forced, dont' considerate flags FLAGPG, FLAGNQP, FLGPRLRDE */
	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF and RETE = @Rete
	and DTTRIM=@dtrim
	END
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_PROFESS_CURR_DTTRIM_EN]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_PROFESS_CURR_DTTRIM_EN] 'F', 'MGNGPP55B25G224T'
CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_PROFESS_CURR_DTTRIM_EN]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)
DECLARE @isPG integer
DECLARE @isPG_NQ char(1)
DECLARE @dtrim nvarchar(8)
set @dtrim = c6martperiodico.getPreviousTrimestre(getdate(), 0) --c6martperiodico.getTrimestre(getdate(), 0)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @isPG = FLAGPG from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 
	and DTTRIM=@dtrim

	if @isPG = 0
	BEGIN
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG]
		--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		WHERE codfis  = @CodiceFiscale and RETE = @Rete
		and DTTRIM=@dtrim
	END
	
	ELSE /* isPG = 1 */
	BEGIN
		select @isPG_NQ = 		
		   CASE 
				WHEN FLAGNQP IS NULL or FLAGNQP ='' THEN 'N'
				ELSE FLAGNQP
			END 
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codfis = @CodiceFiscale and RETE = @Rete 
		and DTTRIM=@dtrim

		if @isPG_NQ = 'S'
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@dtrim
		END

		ELSE  /* isPG_NQ = N */
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and adeg.[FLAGNQP]=@isPG_NQ
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@dtrim
			--and an.[FLAGNQP]='N' and coalesce(adeg.[FLGPRLRDE],'yn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		END
	END
	END

ELSE /* Mandatario - Fiduciaria */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	/* case PG = 0 forced, dont' considerate flags FLAGPG, FLAGNQP, FLGPRLRDE */
	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF and RETE = @Rete
	and DTTRIM=@dtrim
	END
END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '97080600154'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'SGHDMN66M07G920Z'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '00118220524'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'ZZLLNI57B06D245V'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '96711600013'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '01689841003'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'FF@1214'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'FF@10005'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '97080600154'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', '00489340455'
CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)
DECLARE @isPG integer
DECLARE @isPG_NQ char(1)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 

	select @isPG = FLAGPG from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 
	and DTTRIM=@d

	if @isPG = 0
	BEGIN
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG]
		--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		WHERE codfis  = @CodiceFiscale and RETE = @Rete
		and DTTRIM=@d
	END
	
	ELSE /* isPG = 1 */
	BEGIN
		select @isPG_NQ = 		
		   CASE 
				WHEN FLAGNQP IS NULL or FLAGNQP ='' THEN 'N'
				ELSE FLAGNQP
			END 
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codfis = @CodiceFiscale and RETE = @Rete 
		and DTTRIM=@d

		if @isPG_NQ = 'S'
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@d
		END

		ELSE  /* isPG_NQ = N */
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and adeg.[FLAGNQP]=@isPG_NQ
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@d
			--and an.[FLAGNQP]='N' and coalesce(adeg.[FLGPRLRDE],'yn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		END
	END
	END

ELSE /* Mandatario - Fiduciaria */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman = @CF

	/* case PG = 0 forced, dont' considerate flags FLAGPG, FLAGNQP, FLGPRLRDE */
	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF and RETE = @Rete
	and DTTRIM=@d
	END
END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF.obs]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '97080600154'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'SGHDMN66M07G920Z'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '00118220524'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'ZZLLNI57B06D245V'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'LTTGRG68T04I324Z'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF.obs]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codfis  = @CodiceFiscale and RETE = @Rete
	    and DTTRIM=@d
		and an.[FLAGPG]=0 
	or (
	    an.[FLAGPG]=1 and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		)
	END
ELSE /* Mandatario */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman = @CF

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE] 
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF 
	    and DTTRIM=@d
		and an.[FLAGPG]=0 
	or (
	    an.[FLAGPG]=1 and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		)
	END

END





GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF.rigen.20170620]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '97080600154'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'SGHDMN66M07G920Z'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '00118220524'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'ZZLLNI57B06D245V'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '96711600013'
--[C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '01689841003'
CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF.rigen.20170620]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)
DECLARE @isPG integer
DECLARE @isPG_NQ char(1)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 

	select @isPG = FLAGPG from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 
	and DTTRIM=@d

	if @isPG = 0
	BEGIN
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG]
		--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		WHERE codfis  = @CodiceFiscale and RETE = @Rete
		and DTTRIM=@d
	END
	ELSE /* isPG = 1 */
	BEGIN
		select @isPG_NQ = 		
		   CASE 
				WHEN FLAGNQP IS NULL or FLAGNQP ='' THEN 'N'
				ELSE FLAGNQP
			END 
		from [C6StagingPeriodico].[WSEIAN2]
		WHERE codfis = @CodiceFiscale and RETE = @Rete 
		and DTTRIM=@d

		if @isPG_NQ = 'S'
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@d
		END
		ELSE  /* isPG_NQ = N */
		BEGIN
			SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
			[C6StagingPeriodico].[WSEIAN2] an
			INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
			ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
			and an.[FLAGPG]=adeg.[FLAGPG] and adeg.[FLAGNQP]=@isPG_NQ
			WHERE codfis  = @CodiceFiscale and RETE = @Rete
			and DTTRIM=@d
			--and an.[FLAGNQP]='N' and coalesce(adeg.[FLGPRLRDE],'yn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		END
	END
	END
ELSE /* Mandatario */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman = @CF

	select @isPG = FLAGPG from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman = @CF and RETE = @Rete
	and DTTRIM=@d

	if @isPG = 0
	BEGIN
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG]
		--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
		WHERE  codman = @CF and RETE = @Rete
		and DTTRIM=@d
	END
	ELSE

		/* isPG_NQ = N MANCA !!! */
		SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
		[C6StagingPeriodico].[WSEIAN2] an
		INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
		ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
		and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] 
		WHERE  codman = @CF and RETE = @Rete
		and DTTRIM=@d
	    and an.[FLAGNQP]='S' and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	or (
	    an.[FLAGNQP]='N' and coalesce(adeg.[FLGPRLRDE],'yn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		)
	END

END












GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF_20170620]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '97080600154'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'SGHDMN66M07G920Z'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '00118220524'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'ZZLLNI57B06D245V'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'LTTGRG68T04I324Z'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF_20170620]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @d = max(DTTRIM) from 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codfis = @CodiceFiscale and RETE = @Rete 

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codfis  = @CodiceFiscale and RETE = @Rete
	and DTTRIM=@d
	END
ELSE /* Mandatario */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	select @d = max(DTTRIM) from 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codman = @CF

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE] 
	and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF 
	and DTTRIM=@d
	END

END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF_20170620_consegnato]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '01634240160'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'SGHDMN66M07G920Z'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', '00118220524'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'F', 'ZZLLNI57B06D245V'
--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF] 'S', 'LTTGRG68T04I324Z'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF_20170620_consegnato]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

DECLARE @d nvarchar(8)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codfis = @CodiceFiscale and RETE = @Rete 

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	and an.[FLAGPG]=adeg.[FLAGPG]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codfis  = @CodiceFiscale and RETE = @Rete
	    and DTTRIM=@d
and	(	 an.[FLAGPG]=0 
	or (
	    an.[FLAGPG]=1 and an.[FLAGNQP]=adeg.[FLAGNQP] and coalesce(adeg.[FLGPRLRDE],'sn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		)
		)
	END
ELSE /* Mandatario */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	select @d = max(DTTRIM) from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman = @CF

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE] 
	and an.[FLAGPG]=adeg.[FLAGPG]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF 
	    and DTTRIM=@d
		and an.[FLAGPG]=0 
	or (
	    an.[FLAGPG]=1 and an.[FLAGNQP]=adeg.[FLAGNQP] and coalesce(adeg.[FLGPRLRDE],'sn')  like '%' + coalesce(an.[FLGPRLRDE],'') + '%'
		)
	END

END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF_trim]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_PG_QPROF_trim]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN


DECLARE @d nvarchar(8)
declare @da datetime
set @d = c6martperiodico.getTrimestre(getdate(), 0)

if @CodiceFiscale not like 'FF@%' 
	BEGIN
	--select @d = max(DTTRIM) from 
	--[C6StagingPeriodico].[WSEIAN] an
	--INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	--ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	--WHERE codfis = @CodiceFiscale and RETE = @Rete 

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	and an.[FLAGPG]=adeg.[FLAGPG] and an.[FLAGNQP]=adeg.[FLAGNQP] and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE codfis  = @CodiceFiscale and RETE = @Rete
	and DTTRIM=@d
	END
ELSE /* Mandatario */
	BEGIN
	DECLARE @CF as nvarchar(max)
	set @CF = replace(@CodiceFiscale, 'FF@', '')

	--select @d = max(DTTRIM) from 
	--[C6StagingPeriodico].[WSEIAN] an
	--INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	--ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
	--and adeg.[FLAGPG]=0 and adeg.[FLAGNQP]='N' and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	--WHERE codman = @CF and RETE = @Rete

	SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
	[C6StagingPeriodico].[WSEIAN2] an
	INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA_PG_QPROF] adeg
	ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE] 
	and adeg.[FLAGPG]=0 and adeg.[FLAGNQP]='N' and isNULL(an.[FLGPRLRDE],'')=isNULL(adeg.[FLGPRLRDE],'') 
	WHERE  codman = @CF and RETE = @Rete
	and DTTRIM=@d
	END

END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_V.1.0]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg] 'f', 'BLDMRA59E22G999d', '2015-06-01'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_V.1.0]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16),
	@DTTRIM datetime = null
	
AS
BEGIN

DECLARE @d nvarchar(8)
set @d = cast(year(@DTTRIM) as nvarchar(4)) + RIGHT('0'+cast(month(@DTTRIM) as nvarchar(2)), 2)
 + RIGHT('0'+cast(day(@DTTRIM) as nvarchar(2)),2)

print @d 

if @DTTRIM is null

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis = @CodiceFiscale and RETE = @Rete


SELECT top(1) [TESTO_NOTA] FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@d

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_V.2.0]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg] 'f', 'BLDMRA59E22G999d', '2015-06-01'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_V.2.0]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16),
	@DTTRIM datetime = null
	
AS
BEGIN

DECLARE @d nvarchar(8)
set @d = cast(year(@DTTRIM) as nvarchar(4)) + RIGHT('0'+cast(month(@DTTRIM) as nvarchar(2)), 2)
 + RIGHT('0'+cast(day(@DTTRIM) as nvarchar(2)),2)

print @d 

if @DTTRIM is null

begin

if @CodiceFiscale not like 'FF@%' BEGIN

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis = @CodiceFiscale and RETE = @Rete 

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@d

END
ELSE

BEGIN

DECLARE @CF as nvarchar(max)
set @CF = replace(@CodiceFiscale, 'FF@', '')

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codman = @CF

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE  codman = @CF 
and DTTRIM=@d

END

end 
else
begin

if @CodiceFiscale not like 'FF@%' BEGIN



SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@DTTRIM

END
ELSE

BEGIN

DECLARE @CFF as nvarchar(max)
set @CFF = replace(@CodiceFiscale, 'FF@', '')

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE  codman = @CFF 
and DTTRIM=@DTTRIM

END


end






END


GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_V.3.0]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



--exec [C6StagingPeriodico].[test_compl_testo_sezione_adeg] 'f', 'BLDMRA59E22G999d', '2015-06-01'

CREATE procedure [C6StagingPeriodico].[test_compl_testo_sezione_adeg_V.3.0]
	@Rete nvarchar(1),
	@CodiceFiscale varchar(16),
	@DTTRIM datetime = null
	
AS
BEGIN

DECLARE @d nvarchar(8)
set @d = cast(year(@DTTRIM) as nvarchar(4)) + RIGHT('0'+cast(month(@DTTRIM) as nvarchar(2)), 2)
 + RIGHT('0'+cast(day(@DTTRIM) as nvarchar(2)),2)

print @d 

if @DTTRIM is null

begin

if left(@CodiceFiscale,3) <> 'FF@' BEGIN

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis = @CodiceFiscale and RETE = @Rete 

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@d

END
ELSE

BEGIN

DECLARE @CF as nvarchar(max)
set @CF = replace(@CodiceFiscale, 'FF@', '')

select @d = max(DTTRIM) from 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codman = @CF

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE  codman = @CF 
and DTTRIM=@d

END

end 
else
begin

if left(@CodiceFiscale,3) <> 'FF@' BEGIN

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE codfis  = @CodiceFiscale and RETE = @Rete
and DTTRIM=@DTTRIM

END
ELSE

BEGIN

DECLARE @CFF as nvarchar(max)
set @CFF = replace(@CodiceFiscale, 'FF@', '')

SELECT top(1) ISNULL([TESTO_NOTA],'aa') as testo_nova FROM 
[C6StagingPeriodico].[WSEIAN2] 
INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA]
ON [CLCOMPL]=[COMPLESSITA] and [FLGCONC]=[CONCENTRAZIONE]
WHERE  codman = @CFF 
and DTTRIM=@DTTRIM

END


end






END



GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[UPDATE_CATITEMREF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[UPDATE_CATITEMREF] as  
begin  
  
  
  
 update c6stagingperiodico.catitemref  
 set   
  tip_Emittente = B.tipoemittente,  
  tip_Tasso = B.tipoTasso  
 from  
  c6stagingperiodico.catitemref A  
 join  
  c6stagingperiodico.decodEmittente B  
 ON  
  A.COD_ISIN = B.ISIN  
  
END  
  
  
  
  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[UPDATE_CATITEMREF_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[UPDATE_CATITEMREF_pre_selective] as
begin



	update c6stagingperiodico.catitemref
	set 
		tip_Emittente = B.tipoemittente,
		tip_Tasso = B.tipoTasso
	from
		c6stagingperiodico.catitemref A
	join
		c6stagingperiodico.decodEmittente B
	ON
		A.COD_ISIN = B.ISIN

END




GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[UPDATE_COMPLESSITA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  
  
  
  
CREATE procedure [C6StagingPeriodico].[UPDATE_COMPLESSITA]  
  
as  
begin   
/********************FOGLIO 1 UNIT LINKED************************************************************/  
--begin transaction  
UPDATE [C6StagingPeriodico].[CATITEMREF]  
--UPDATE  c6martperiodico.patrimonio_bf  
SET COMPLEX=1  
WHERE  
COD_INTERNO IN  
(  
'18',  
'19',  
'29',  
'35',  
'37',  
'38',  
'48',  
'49',  
'60',  
'BT',  
'ES',  
'FR',  
'FS',  
'FT',  
'FU',  
--'GP',  
'KP',  
'OA',  
'PO',  
'PY',  
'SB',  
--'PR',  
--'PX',  
'SE',  
'SF',  
--'SI',  
'ST',  
'SU',  
'K1',  
'K2',  
'K3',  
'K4',  
'K5',  
'K6',  
'K7')  
  
  
/**************************FOGLIO 1 UNIT LINKED*******************INSERITA LA CONDIZIONE PER I SOTTOPRODOTTI DA ESCLUDERE ********************************/  
  
UPDATE [C6StagingPeriodico].[CATITEMREF]  
--UPDATE  c6martperiodico.patrimonio_bf  
SET COMPLEX=2  
WHERE  
COD_INTERNO IN  
(  
'S1',  
'S2',  
'S3',  
'S4',  
'S5',  
'S6',  
'S7',  
'S8'  
)  
and cod_sottoprodotto not in ('20001','20002','20005','20008')  
  
  
  
update c6stagingperiodico.catitemref  
--UPDATE c6martperiodico.patrimonio_bf  
set complex = 1  
where cod_interno in ('S1','S2','S4','S5','S8')  
and cod_sottoprodotto in ('20001','20002','20005','20008')  
  
  
/******************************FOGLIO 1 UNIT LINKED**********************************************************/  
  
UPDATE [C6StagingPeriodico].[CATITEMREF]  
--UPDATE c6martperiodico.patrimonio_bf  
SET COMPLEX=1  
WHERE  
COD_INTERNO IN   
(  
'A7',  
'A8')  
  
/**************************************FOGLIO 2 FONDI*************************************************/  
  
UPDATE [C6StagingPeriodico].[CATITEMREF]  
--UPDATE c6martperiodico.patrimonio_bf  
SET COMPLEX=1  
WHERE  
COD_SOTTOPRODOTTO IN   
(  
 '7149S'  
,'7145S'  
,'9968S'  
)  
  
  
/************************************FOGLIO 2 FONDI****************************************************/  
  
  
UPDATE [C6StagingPeriodico].[CATITEMREF]  
--UPDATE c6martperiodico.patrimonio_bf  
SET COMPLEX=1  
WHERE  
COD_SOTTOPRODOTTO = '7146S'  
  
  
/***********************************FOGLIO 3 CERTIFICATES************GIOVANNI HA DETTO CHE VANNO UPDATATI A 1 *****************************************/  
  
UPDATE [C6StagingPeriodico].[CATITEMREF]  
--UPDATE c6martperiodico.patrimonio_bf  
SET COMPLEX=1  
WHERE   
COD_ISIN IN  
(  
 'DE000A0LJ552'  
,'DE000A0MG8R0'  
,'IT0004189368'  
,'GB00B1WVWP64'  
,'GB00B1Y3ZZ16'  
,'XS0354254111'  
,'GB00B2QM7Y61'  
,'XS0235278982'  
,'XS0179585186'  
)  
AND  
COD_INTERNO IN  
(  
 '00101740'  
,'09139480'  
,'09161420'  
,'00830060'  
,'09205930'  
,'00168130'  
,'08525040'  
,'08556110'  
,'09201230'  
)  
  
  
  
  
  
  
--update c6martperiodico.patrimonio_bf   
--set complex = 1  
--  
--where cod_prodotto in(  
--  
--  
--  
--select cod_prodotto  
--from   
--c6martperiodico.anag_prodotti b  
--where cod_isin in (  
-- 'DE000A0LJ552'  
--,'DE000A0MG8R0'  
--,'IT0004189368'  
--,'GB00B1WVWP64'  
--,'GB00B1Y3ZZ16'  
--,'XS0354254111'  
--,'GB00B2QM7Y61'  
--,'XS0235278982'  
--,'XS0179585186'  
--)  
--AND  
--COD_INTERNO IN  
--(  
-- '00101740'  
--,'09139480'  
--,'09161420'  
--,'00830060'  
--,'09205930'  
--,'00168130'  
--,'08525040'  
--,'08556110'  
--,'09201230'  
--))  
--  
--commit  
end  
  
  
--exec c6martperiodico.dm_complessita  
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[UPDATE_COMPLESSITA_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodico].[UPDATE_COMPLESSITA_pre_selective]

as
begin 
/********************FOGLIO 1 UNIT LINKED************************************************************/
--begin transaction
UPDATE [C6StampeCentralizzate].[C6StagingPeriodico].[CATITEMREF]
--UPDATE  c6martperiodico.patrimonio_bf
SET COMPLEX=1
WHERE
COD_INTERNO IN
(
'18',
'19',
'29',
'35',
'37',
'38',
'48',
'49',
'60',
'BT',
'ES',
'FR',
'FS',
'FT',
'FU',
--'GP',
'KP',
'OA',
'PO',
'PY',
'SB',
--'PR',
--'PX',
'SE',
'SF',
--'SI',
'ST',
'SU',
'K1',
'K2',
'K3',
'K4',
'K5',
'K6',
'K7')


/**************************FOGLIO 1 UNIT LINKED*******************INSERITA LA CONDIZIONE PER I SOTTOPRODOTTI DA ESCLUDERE ********************************/

UPDATE [C6StampeCentralizzate].[C6StagingPeriodico].[CATITEMREF]
--UPDATE  c6martperiodico.patrimonio_bf
SET COMPLEX=2
WHERE
COD_INTERNO IN
(
'S1',
'S2',
'S3',
'S4',
'S5',
'S6',
'S7',
'S8'
)
and cod_sottoprodotto not in ('20001','20002','20005','20008')



update c6stagingperiodico.catitemref
--UPDATE c6martperiodico.patrimonio_bf
set complex = 1
where cod_interno in ('S1','S2','S4','S5','S8')
and cod_sottoprodotto in ('20001','20002','20005','20008')


/******************************FOGLIO 1 UNIT LINKED**********************************************************/

UPDATE [C6StampeCentralizzate].[C6StagingPeriodico].[CATITEMREF]
--UPDATE c6martperiodico.patrimonio_bf
SET COMPLEX=1
WHERE
COD_INTERNO IN 
(
'A7',
'A8')

/**************************************FOGLIO 2 FONDI*************************************************/

UPDATE [C6StampeCentralizzate].[C6StagingPeriodico].[CATITEMREF]
--UPDATE c6martperiodico.patrimonio_bf
SET COMPLEX=1
WHERE
COD_SOTTOPRODOTTO IN 
(
 '7149S'
,'7145S'
,'9968S'
)


/************************************FOGLIO 2 FONDI****************************************************/


UPDATE [C6StampeCentralizzate].[C6StagingPeriodico].[CATITEMREF]
--UPDATE c6martperiodico.patrimonio_bf
SET COMPLEX=1
WHERE
COD_SOTTOPRODOTTO = '7146S'


/***********************************FOGLIO 3 CERTIFICATES************GIOVANNI HA DETTO CHE VANNO UPDATATI A 1 *****************************************/

UPDATE [C6StampeCentralizzate].[C6StagingPeriodico].[CATITEMREF]
--UPDATE c6martperiodico.patrimonio_bf
SET COMPLEX=1
WHERE 
COD_ISIN IN
(
 'DE000A0LJ552'
,'DE000A0MG8R0'
,'IT0004189368'
,'GB00B1WVWP64'
,'GB00B1Y3ZZ16'
,'XS0354254111'
,'GB00B2QM7Y61'
,'XS0235278982'
,'XS0179585186'
)
AND
COD_INTERNO IN
(
 '00101740'
,'09139480'
,'09161420'
,'00830060'
,'09205930'
,'00168130'
,'08525040'
,'08556110'
,'09201230'
)






--update c6martperiodico.patrimonio_bf 
--set complex = 1
--
--where cod_prodotto in(
--
--
--
--select cod_prodotto
--from 
--c6martperiodico.anag_prodotti b
--where cod_isin in (
-- 'DE000A0LJ552'
--,'DE000A0MG8R0'
--,'IT0004189368'
--,'GB00B1WVWP64'
--,'GB00B1Y3ZZ16'
--,'XS0354254111'
--,'GB00B2QM7Y61'
--,'XS0235278982'
--,'XS0179585186'
--)
--AND
--COD_INTERNO IN
--(
-- '00101740'
--,'09139480'
--,'09161420'
--,'00830060'
--,'09205930'
--,'00168130'
--,'08525040'
--,'08556110'
--,'09201230'
--))
--
--commit
end


--exec c6martperiodico.dm_complessita
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[UTIL_popolaPromotoriDaGiornaliero]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [C6StagingPeriodico].[UTIL_popolaPromotoriDaGiornaliero]
as
begin

--V
--Recupera le info dallo scarico del giornaliero, bisognerebbe rifare il pacchetto.....
truncate table C6StagingPeriodico.ADS4WS_PROMOTORI

insert into C6StagingPeriodico.ADS4WS_PROMOTORI
select * from C6Staging.ADS4WS_PROMOTORI

end
GO
/****** Object:  StoredProcedure [C6StagingPeriodico].[zzzRP_CREA_POSITIONID_CONSULENZA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- AUTHOR:		<VALERIO COLAIANNI,ANDREA NOBILI>
-- alter DATE:  10/05/2010
-- Description:	<Description,,>
-- =============================================


CREATE procedure [C6StagingPeriodico].[zzzRP_CREA_POSITIONID_CONSULENZA]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA',
		GETDATE(),
		'Elaborazione giornaliera'
	)
--select top 1 * from C6StagingPeriodico.consulenza
	
	UPDATE    
C6StagingPeriodico.RP_CONSULENZA

	SET       
		POSITION_ID = 
             [C6StagingPeriodico].[RP_INFO_DAPRODOTTOCSACATALOGO] --DBO.INFO_DAPRODOTTOCSACATALOGO
				(
				TIPOPRODOTTO, 
				CODINTERNO, 
				CODMAF, 
				--V ISIN per ASU2
				--controllare se gli ASU2 vengono gestiti bene
				CASE
					WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'')
					ELSE ''
				END,
				CODSOTTOPRODOTTO
				) 
		--END
       + 
			DBO.CREA_POSITIONID
				(
				TIPOPRODOTTO, 
				CODINTERNO, 
				CODMAF, 
				'', 
				CODSOTTOPRODOTTO, 
				CODCONF, -- VERIFICARNE LA CORRETTEZZA
				NUMPOLIZZA, 
				CONTO,
                RUBRICATO, 
				CUSTGAR,
				TERMID,
				cast(ANNO as decimal(3,0)),
				cast(PROG as decimal(9,0))
				--'',0,0
				/* decommentare dopo che nello ci da le regole per la ricostruzione del pctkey => anno + prog + termid
				, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
				END
				
*/
			)
		
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_CREA_POSITIONID_CONSULENZA'
		)

END

GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[Popola_APPO_CONTRATTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
    
CREATE procedure [C6StagingPeriodicoImmobiliare].[Popola_APPO_CONTRATTI]                                                                              
AS                                                                                                                                                
BEGIN                                                                                                                                             
   
   
 truncate table  C6StagingPeriodicoImmobiliare.APPO_CONTRATTI                                                             
                                                                                                                                        
 insert into  C6StagingPeriodicoImmobiliare.APPO_CONTRATTI   
 select * from  C6StagingPeriodico.APPO_CONTRATTI                                                                                                                     
                                                                            
                                                                                                                                          
                                                                                                                                    
                                                                                                                                                  
END                                                                                                                                               


GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_CREA_POSITIONID_CONSULENZA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_CREA_POSITIONID_CONSULENZA]  
AS  
BEGIN  
  -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_immobiliare 
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_CREA_POSITIONID_CONSULENZA',  
  GETDATE(),  
  'Elaborazione Trimestrale Immobiliare'  
 )  
  
truncate table TAB1  
  
insert into TAB1  
SELECT distinct  
  TIPOPRODOTTO,  
  CODINTERNO,  
  CODMAF,  
			CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB','RE','RF','IE') THEN ISNULL(CODISIN,'')   
    ELSE '' END AS CODISIN,  
  CODSOTTOPRODOTTO,  
  position_id  
--INTO TAB1  
FROM C6StagingPeriodicoImmobiliare.RP_CONSULENZA   
  
UPDATE  TAB1  
 SET position_id =      
       C6STAGINGPERIODICOIMMOBILIARE.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPOPRODOTTO,   
      CODINTERNO,   
      CODMAF,      
      CODISIN,  
      CODSOTTOPRODOTTO  
    )   
   
DECLARE @CNTNULL as int  
SELECT @CNTNULL = COUNT(*) FROM TAB1 WHERE isnull(position_id,'') = ''  
  
--SET @CNTNULL = 0  
IF @CNTNULL = 0  
 UPDATE  C6StagingPeriodicoImmobiliare.RP_CONSULENZA  
   SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (  
        c.TIPOPRODOTTO,   
        c.CODINTERNO,   
        c.CODMAF,  
				CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB','RE','RF','IE') THEN ISNULL(c.CODISIN,'') 
        ELSE '' END,  
        c.CODSOTTOPRODOTTO,   
        c.CODCONF,   
        c.NUMPOLIZZA,   
        c.CONTO,  
        c.RUBRICATO,   
        c.CUSTGAR,  
        c.TERMID,  
        cast(c.ANNO as decimal(3,0)),  
        cast(c.PROG as decimal(9,0))  
  )   
  FROM   C6StagingPeriodicoImmobiliare.RP_CONSULENZA c  
   left join TAB1 t   
   ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')  
   AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')  
   AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')  
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB','RE','RF','IE')
   THEN ISNULL(c.CODISIN,'')   
   ELSE '' END   
   AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')  
  --WHERE c.position_id = '' and  t.position_id is not null  
    
      
DECLARE @CNT as int  
SELECT @CNT = COUNT(*) FROM C6StagingPeriodicoImmobiliare.RP_CONSULENZA WHERE isnull(position_id,'') <> ''  
  
-- Log esecuzione  
UPDATE  
 LOG_ESECUZIONE_PERIODICO_IMMOBILIARE 
SET  
 Fine = GETDATE(),  
 Tipo = 'UPDATE',  
 Righe = @CNT  
WHERE  
 Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND  
 Inizio = (  
  SELECT  
   MAX(Inizio)  
  FROM  
   LOG_ESECUZIONE_PERIODICO_IMMOBILIARE 
  WHERE  
   Nome = 'RP_CREA_POSITIONID_CONSULENZA'  
 )  
   
--drop table  TAB1  
  
IF @CNTNULL = 0  
 SELECT @CNTNULL = COUNT(*) FROM C6StagingPeriodico.RP_CONSULENZA WHERE isnull(position_id,'') = ''  
  
if @CNTNULL > 0  
  RAISERROR ('Scarti position_id null', 16, 1 )  
                  
  
END  
  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- Questa sp aggiorna il campo 'beneficio' della [PROMETEIA_AGGR] con il valore del nuovo indicatore dalla nuova tabella PROMETEIA_AGGR_IndDiv
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_PROM_AGGIORNA_INDICATORE_DIVERSIFICAZIONE]

AS
BEGIN

-- ***********************************************   10/7/2018         **********************************************
--    BONIFICA DELLA TABELLA PER I VALORI NON CALCOLATI (Nan) TORNATI DAL SERVIZIO PER ALCUNI CF/PTF
--       NECESSARIA PER NON MANDARE IN ERRORE LA UPDATE

update a set indicatore = '0.0'
  FROM [C6StampeCentralizzate].[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR_IndDiv] a
  where 
  not indicatore like '%[0-9]%'



-- *********************************************  FINE BONIFICA ********************************************

	--aggiorna il beneficio per il COMPLESSIVO
--UPDATE aggr set aggr.beneficio = CAST(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) AS DECIMAL(12,3))
--con le replace sostituisco i caratteri speciali a fine testo che mandano in errore il cast quando l'indicatore è = 0.0 - CHAR(13) = cr, CHAR(10) = lf 
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale 
where aggr.portafoglio = 'COMPLESSIVO'

--aggiorna il beneficio per il COMPLESSIVO|BF
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_BF' 
where aggr.portafoglio = 'COMPLESSIVO|BF'

--aggiorna il beneficio per il COMPLESSIVO|TERZI
UPDATE aggr set aggr.beneficio =  CAST(replace(replace(LEFT(inddiv.indicatore, CHARINDEX('.', inddiv.indicatore) - 1) + '.' + SUBSTRING(inddiv.indicatore,(CHARINDEX('.',inddiv.indicatore)+1),3) , CHAR(13), '0'), CHAR(10), '0')
AS DECIMAL(12,3))
from  
[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR] aggr
inner join 
[C6StagingPeriodicoImmobiliare].[PROMETEIA_AGGR_IndDiv] inddiv
on inddiv.rete = aggr.rete and inddiv.cod_fiscale = aggr.codicefiscale+'_TERZI' 
where aggr.portafoglio = 'COMPLESSIVO|TERZI'




END 
GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_AnAlberatura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_AnAlberatura]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_AnAlberatura',  
  GETDATE(),  
  'Elaborazione Trimestrale Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_AnAlberatura  
  
 insert into C6StagingPeriodicoImmobiliare.RP_AnAlberatura  
  
 --select * into C6StagingPeriodicoImmobiliare.RP_AnAlberatura from [CONSEVO].CatalogoProdotti.dbo.AnAlberatura  
 select   
 [Alberatura]  
      ,[Livello1]  
      ,[Livello2]  
      ,[Livello3]  
      ,[Livello4]  
      ,[Livello5]  
   
  from [CONSUNI_PERIODICO].CatalogoProdotti.dbo.AnAlberatura  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_AnAlberatura' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_AnAlberatura'  
  )  
   
end  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_AnEmittente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_AnEmittente] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_AnEmittente',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_AnEmittente  
  
 insert into C6StagingPeriodicoImmobiliare.RP_AnEmittente (  
  [Emittente]  
      ,[Descrizione] )  
  
 select   
   
  [Emittente]  
     ,[Descrizione]  
    from [CONSUNI].CatalogoProdotti.dbo.AnEmittente  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_AnEmittente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_AnEmittente'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_AssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_AssetClass]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_AssetClass',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_AssetClass  
  
 insert into C6StagingPeriodicoImmobiliare.RP_AssetClass  
 --select * into C6StagingPeriodicoImmobiliare.RP_AssetClass from [CONSEVO].[CatalogoProdotti].dbo.AssetClass  
 -- 21/12/2016 mod puntamento  
    --select * from [CONSEVO].[CatalogoProdotti].dbo.AssetClass  
    select asset,madre,livello,descrizione,codicergb,isresidual from [CONSUNI].[CatalogoProdotti].dbo.AssetClass  
 -- 21/12/2016 FINE mod puntamento  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_AssetClass' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_AssetClass'  
  )  
   
end  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_BonificaClientiDoppi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_BonificaClientiDoppi]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_BonificaClientiDoppi',  
  GETDATE(),  
  'Elaborazione Trimestrale Immobiliare'  
 )  
  
  

-----------------------------------------------------------------
drop table if exists #doppiCF
drop table if exists #ClientiDoppiInAppoCF
drop table if exists #ClientiNONInAppoCF
drop table if exists #ClientiChiaveClienteGiustaCF
drop table if exists #ClientiChiaveClienteGiustaESbagliataCF
drop table if exists #ClientiChiaveSbagliataCF

drop table if exists #doppiPIVA
drop table if exists #ClientiDoppiInAppoPIVA
drop table if exists #ClientiNONInAppoPIVA
drop table if exists #ClientiChiaveClienteGiustaPIVA
drop table if exists #ClientiChiaveClienteGiustaESbagliataPIVA
drop table if exists #ClientiChiaveSbagliataPIVA



----Individuo i cf doppi
 select rete,codfis,count(*) as numero
 into #doppiCF
 FROM C6StagingPeriodicoImmobiliare.RP_InfoCliente
 where codfis is not null and codfis <> ''
  group by rete,codfis
 having count(*)>1


 --if

 select rete,COD_FISCALE
 into #ClientiDoppiInAppoCF
 from C6StagingPeriodicoImmobiliare.APPO_CONTRATTI a 
 where a.rete+a.COD_FISCALE in (select rete+codfis from #doppiCF)

 select rete,codfis
 into #ClientiNONInAppoCF
 from #doppiCF where rete+codfis not in (select rete+cod_fiscale from #ClientiDoppiInAppoCF)

 delete from C6StagingPeriodicoImmobiliare.RP_InfoCliente where rete+codFis in (select rete+codfis from #ClientiNONInAppoCF)

 --else

 select distinct appo.rete,appo.COD_FISCALE,appo.chiaveclientepb
 into #ClientiChiaveClienteGiustaCF
 from C6StagingPeriodicoImmobiliare.RP_InfoCliente info inner join 
 C6StagingPeriodicoImmobiliare.appo_contratti appo on info.rete = appo.rete and info.codfis=appo.cod_fiscale
where info.rete + info.codfis in (select rete+cod_fiscale from #ClientiDoppiInAppoCF)


select rete,codfis,chiaveClientePB
 into #ClientiChiaveClienteGiustaESbagliataCF
FROM C6StagingPeriodicoImmobiliare.RP_InfoCliente 
where rete+codfis in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaCF)

--select * from #ClientiChiaveClienteGiustaESbagliataCF order by codfis

select rete,codfis,chiaveclientePB
into #ClientiChiaveSbagliataCF
from #ClientiChiaveClienteGiustaESbagliataCF where
rete+codFis  in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaCF)
and chiaveClientePB not in (select chiaveClientePB from #ClientiChiaveClienteGiustaCF)

--create table #ClientiChiaveSbagliataCF(
--rete char(1),
--codfis varchar(16),
--chiaveClientePB int)

--insert into  #ClientiChiaveSbagliataCF 
--   SELECT * FROM #ClientiChiaveClienteGiustaESbagliataCF 
--    EXCEPT
--    SELECT * FROM #ClientiChiaveClienteGiustaCF

--	select * from #ClientiChiaveSbagliataCF

delete from C6StagingPeriodicoImmobiliare.RP_InfoCliente 
where rete+codfis+cast(chiaveClientePB as varchar)  in (select rete+codfis+cast(chiaveClientePB as varchar) from #ClientiChiaveSbagliataCF)

--select * from C6StagingPeriodicoImmobiliare.RP_InfoCliente 
--where rete+codfis+chiaveClientePB  in (select rete+codfis+chiaveClientePB from #ClientiChiaveClienteGiustaCF)


  
-----------------------------------------------------------------


--Individuo le PIVA doppie
 select rete,piva,count(*) as numero
 into #doppiPIVA
 FROM C6StagingPeriodicoImmobiliare.RP_InfoCliente
 where isnull(codman,'')= ''
 and piva is not null and piva <> ''
  group by rete,piva
 having count(*)>1

-- select * from #doppiPIVA where piva in (
-- 	'02477630582',
--'05267780962')

 --if

 select rete,COD_FISCALE
 into #ClientiDoppiInAppoPIVA
 from C6StagingPeriodicoImmobiliare.APPO_CONTRATTI a 
 where a.rete+a.COD_FISCALE in (select rete+piva from #doppiPIVA)

 select rete,piva
 into #ClientiNONInAppoPIVA
 from #doppiPIVA where rete+piva not in (select rete+COD_FISCALE from #ClientiDoppiInAppoPIVA)

 delete from C6StagingPeriodicoImmobiliare.RP_InfoCliente where rete+pIva in (select rete+piva from #ClientiNONInAppoPIVA)

 --else

 select distinct appo.rete,appo.COD_FISCALE,appo.chiaveclientepb
 into #ClientiChiaveClienteGiustaPIVA
 from C6StagingPeriodicoImmobiliare.RP_InfoCliente info inner join 
 C6StagingPeriodicoImmobiliare.appo_contratti appo on info.rete = appo.rete and info.piva=appo.cod_fiscale
where info.rete + info.piva in (select rete+cod_fiscale from #ClientiDoppiInAppoPIVA)


-- select * from #ClientiChiaveClienteGiustaPIVA where cod_fiscale in (
-- 	'02477630582',
--'05267780962')

select rete,piva,chiaveClientePB
 into #ClientiChiaveClienteGiustaESbagliataPIVA
FROM C6StagingPeriodicoImmobiliare.RP_InfoCliente 
where rete+piva in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaPIVA)


-- select * from #ClientiChiaveClienteGiustaESbagliataPIVA where piva in (
-- 	'02477630582',
--'05267780962')


select rete,piva,chiaveclientePB
into #ClientiChiaveSbagliataPIVA
from #ClientiChiaveClienteGiustaESbagliataPIVA where
rete+piva in (select rete+cod_fiscale from #ClientiChiaveClienteGiustaPIVA)
and chiaveClientePB not in (select chiaveClientePB from #ClientiChiaveClienteGiustaPIVA)

--select * from #ClientiChiaveSbagliataPIVA

delete from C6StagingPeriodicoImmobiliare.RP_InfoCliente 
where rete+piva+cast(chiaveClientePB as varchar) in (select rete+piva+cast(chiaveClientePB as varchar) from #ClientiChiaveSbagliataPIVA)



   
 -------------------------------------------------- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_BonificaClientiDoppi' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_ST_BonificaClientiDoppi'  
  )  
   
END  
  


GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_CatalogoProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_CatalogoProdotti]
as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_CatalogoProdotti',
		GETDATE(),
		'Staging Immobiliare'
	)
--drop table C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	truncate table C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti

INSERT INTO [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
           ([ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
           ,[TipoProdotto]
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore])
   	select  [ChiaveProdotto]
           ,[CodSottoprodotto]
           ,[CodInterno]
           ,[CodMaf]
           ,[CodAdeguatezza]
           ,[CodIsin]
           ,[TipoVersamento]
           ,[RischioPrSc]
           ,[StatoProdotto]
           ,[TipoPolizza]
           ,[NomeProdotto]
           ,[Visibilita]
           ,[PrezzoInEuro]
           ,[Alberatura]
           ,[DtScadenza]
           ,[Categoria]
           ,[Istituto]
           ,[Piazza]
           ,[PrezzoInValuta]
           ,[PrezzoValuta]
           ,[Codiceadb]
-- INIZIO INTERVENTO MIGRAZIONE ASU3
--           ,[TipoProdotto]
		   ,CASE WHEN [TipoProdotto] = 'ASU3' then 'ASU1' else [TipoProdotto] END as TipoProdotto
-- FINE INTERVENTO MIGRAZIONE ASU3		   
           ,[RatingObbligazioni]
           ,[RischioMinimo]
           ,[CapRisparmio]
           ,[CapMinimo]
           ,[CapMinimoValuta]
           ,[CapMinSucc]
           ,[CapMinSuccValuta]
           ,[MinRispContr]
           ,[MinRispContrValuta]
           ,[SuccRispContr]
           ,[SuccRispContrValuta]
           ,[MinComm]
           ,[MinCommValuta]
           ,[DelegaGestionale]
           ,[TipologiaPerPick]
           ,[RischioPrezzo]
           ,[RegimeFiscale]
           ,[Quotato]
           ,[ClasseDiPrezzo]
           ,[Lineefinacc]
           ,[DurataContrattuale]
           ,[RiscFinFaseAcc]
           ,[OpzRendVital]
           ,[MetaA]
           ,[MetaB]
           ,[MetaC]
           ,[DtRifPrezzo]
           ,[CodTipoContratto]
           ,[PrezzoNetto]
           ,[PrezzoNettoValuta]
           ,[DtPrezzoNetto]
           ,[CodBloomberg]
           ,[DenomUnitLink]
           ,[DtInizioValidita]
           ,[Negoziabilita]
           ,[TassoTecnico]
           ,[TassoTecnicoValuta]
           ,[CollSkandia]
           ,[CodAssetSatellite]
           ,[Mercato]
           ,[AzOb]
           ,[Complessita]
           ,[Emittente]
           ,[GaranziaDemografica]
           ,[SocietaDiGestione]
           ,[IndPrz]
           ,[Differimento]
           ,[DtPrezzo]
           ,[TipoObbligazione]
           ,[TaglioMinimo]
           ,[IsAttivoRc]
           ,[RischioCredito]
           ,[Copertura]
           ,[VarP]
           ,[Diversificazione]
           ,[FlagCoreSatellite]
           ,[PerimetroCoreSatellite]
           ,[FondoCore]
	--into [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]

	from [CONSUNI].CatalogoProdotti.dbo.CatalogoProdotti

	
	
--UPDATE dei codici MAF Valide solo per la trimestrale di gennaio 2014
--utilizzate per martellare un errore sul catalogo in linea

	--UPDATE C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	--SET codmaf = '1407435'
	--where codmaf = '1406533'
	
	--UPDATE C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	--SET codmaf = '1308841'
	--where codmaf = '1396234'	
	
	
	-- Ricreo il catalogueID come era nel SEI vecchio in quanto mi serve per ricreare il position id
	/*
	Catalogueid =
		decode(codice_isin,null,'############', rpad(codice_isin,12,' ')) || 
		decode(codice_maf,null,'###############', rpad(codice_maf,15,' ')) ||
		decode(codice_interno,null,'###############', rpad(codice_interno,15,' ')) || decode(codice_sottoprodotto,null,'###############', rpad(codice_sottoprodotto,15,' '))
	*/

	UPDATE C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	SET CATALOGUEID = 
		CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
		CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
		CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
		CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
	
	
	-- modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 ----------------------------------------- 
	
		-- 2/2/2017 ----> insert non più valida - commentata

				--insert into C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
				--values ('RS_FVI11    1415480        RS             FP             ',/*pk*/ 261831 /* 9276460 9+max([CodSottoprodotto])=9276460 pk 20160506*/,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				--9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				--500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				--'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				--null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 2/2/2017 ----> fine

		-- 3/5/2017 ----> 
		        
				
				insert into C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
				values ('RS_FVI11    1415480        RS             FP             ',294126,'FP','RS','1415480','RS_FVI11','RS_FVI11',null,null,1,null,'FVI MS - Core Beta 30 classe K',1,10.95600,
				9,'9999-12-31 00:00:00.000',1,1,null,10.92800,'EUR','FVCOR30','ASU1',null,null,null,500.00000,'EUR',
				500.00000,'EUR',0,'EUR',0,'EUR',500.00000,'EUR',null,3,null,null,null,'K',null,null,null,1,null,null,null,
				'2016-05-02 00:00:00.000',null,null,null,null,null,null,null,0,null,null,null,null,null,null,1,
				null,null,9,null,null,null,null,null,null,null,null,null,null,1,2,1,null,null)



		-- 3/5/2017 ----> fine
				
		update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
		set visibilita = 1
		where codinterno = '04806890' and
		codisin = 'IT0004806896'
	
	-- fine modifiche estemporanee per 1 trimestrale 2016 - 5/5/2016 - lotto 2 --------------------------------------
	
	
	
	-- modifiche per IV trimestrale 2016 - 20/01/2017 per far caricare nella dettaglioAsul i prodotti dei cf: ------------
	--               CRSLRN54D28C847X,MLSVNC68S45D612E,GMBDNC71D15H501H,FRRLGU70D13F257S
   
	 --  update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = 's3' and codsottoprodotto in ('AZI73','OBE73')
		

		--update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
		--set visibilita = 1
		--where codinterno = '80' and codsottoprodotto in ('STR55','STR70')

	-- fine modifiche per IV trimestrale 2016 - 20/01/2017 ----------------------------------------------------------------

	-- modifiche per II trimestrale 2017 - 16/06/2017 rimediare alla segnalazione Descrizione Prodotto su Catalogo Prodotti Null+Emittente null
	-- esempio cf: F BFCVTR55C30H536X (x descr null) e RSOMRT65B41A145N (emittente null)

	update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '04917940' and codisin = 'IT0004917941'
	and visibilita = 0

	update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '08662950' and codisin = 'XS0501195480'  
	and visibilita = 0

	-- fine modifiche per II trimestrale 2017 - 16/06/2017 ----------------------------------------------------------------


	-- modifiche per II trimestrale 2017 - 20/07/2017 rimediare alla mancanza dell'Emittente per il prodotto censito

	update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	set emittente='0000000055840'
	WHERE  catalogueid = 'IT0005218380###############09358630       ###############'
	

	-- fine modifiche per II trimestrale 2017 - 20/07/2017 ----------------------------------------------------------------
	

	-- modifiche per III trimestrale 2017 - 25/09/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
	-- per i 2cf: F/BNZNLM66D21Z312D,F/MNRDTL56S70F351T

	update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
	set visibilita=1
	WHERE CODINTERNO = '03246250' 
	and visibilita = 0

	-- fine modifiche per III trimestrale 2017 - 25/09/2017 ----------------------------------------------------------------

	-- modifiche per III trimestrale 2017 - 27/10/2017 rimediare alla segnalazione 'Tabella Scadenze : Descrizione Prodotto su Catalogo Prodotti Null'
		INSERT INTO [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
           ([CatalogueID],[ChiaveProdotto],[CodSottoprodotto],[CodInterno],[CodMaf],[CodAdeguatezza],[CodIsin],[TipoVersamento],[RischioPrSc],[StatoProdotto]
		   ,[TipoPolizza],[NomeProdotto],[Visibilita],[PrezzoInEuro],[Alberatura],[DtScadenza],[Categoria],[Istituto],[Piazza],[PrezzoInValuta],[PrezzoValuta]
		   ,[Codiceadb],[TipoProdotto],[RatingObbligazioni],[RischioMinimo],[CapRisparmio],[CapMinimo],[CapMinimoValuta],[CapMinSucc],[CapMinSuccValuta],[MinRispContr]
		   ,[MinRispContrValuta],[SuccRispContr],[SuccRispContrValuta],[MinComm],[MinCommValuta],[DelegaGestionale],[TipologiaPerPick],[RischioPrezzo],[RegimeFiscale]
		   ,[Quotato],[ClasseDiPrezzo],[Lineefinacc],[DurataContrattuale],[RiscFinFaseAcc],[OpzRendVital],[MetaA],[MetaB],[MetaC],[DtRifPrezzo],[CodTipoContratto],[PrezzoNetto]
		   ,[PrezzoNettoValuta],[DtPrezzoNetto],[CodBloomberg],[DenomUnitLink],[DtInizioValidita],[Negoziabilita],[TassoTecnico],[TassoTecnicoValuta],[CollSkandia]
		   ,[CodAssetSatellite],[Mercato],[AzOb],[Complessita],[Emittente],[GaranziaDemografica],[SocietaDiGestione],[IndPrz],[Differimento],[DtPrezzo],[TipoObbligazione]
		   ,[TaglioMinimo],[IsAttivoRc],[RischioCredito],[Copertura],[VarP],[Diversificazione],[FlagCoreSatellite],[PerimetroCoreSatellite],[FondoCore],[TIP_EMITTENTE],[TIP_TASSO])
			VALUES
           (null,303877,'GS','RB',null,null,'LU0433182507',null,null,1,null,'First Eagle Amundi International IHE EUR',1,null,98,null,null,null,null,null,null,null,'ASU1'
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null)

		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0433182507'


			INSERT INTO [C6StagingPeriodicoImmobiliare].[RP_CatalogoProdotti]
           ([CatalogueID],[ChiaveProdotto],[CodSottoprodotto],[CodInterno],[CodMaf],[CodAdeguatezza],[CodIsin],[TipoVersamento],[RischioPrSc],[StatoProdotto]
		   ,[TipoPolizza],[NomeProdotto],[Visibilita],[PrezzoInEuro],[Alberatura],[DtScadenza],[Categoria],[Istituto],[Piazza],[PrezzoInValuta],[PrezzoValuta]
		   ,[Codiceadb],[TipoProdotto],[RatingObbligazioni],[RischioMinimo],[CapRisparmio],[CapMinimo],[CapMinimoValuta],[CapMinSucc],[CapMinSuccValuta],[MinRispContr]
		   ,[MinRispContrValuta],[SuccRispContr],[SuccRispContrValuta],[MinComm],[MinCommValuta],[DelegaGestionale],[TipologiaPerPick],[RischioPrezzo],[RegimeFiscale]
		   ,[Quotato],[ClasseDiPrezzo],[Lineefinacc],[DurataContrattuale],[RiscFinFaseAcc],[OpzRendVital],[MetaA],[MetaB],[MetaC],[DtRifPrezzo],[CodTipoContratto],[PrezzoNetto]
		   ,[PrezzoNettoValuta],[DtPrezzoNetto],[CodBloomberg],[DenomUnitLink],[DtInizioValidita],[Negoziabilita],[TassoTecnico],[TassoTecnicoValuta],[CollSkandia]
		   ,[CodAssetSatellite],[Mercato],[AzOb],[Complessita],[Emittente],[GaranziaDemografica],[SocietaDiGestione],[IndPrz],[Differimento],[DtPrezzo],[TipoObbligazione]
		   ,[TaglioMinimo],[IsAttivoRc],[RischioCredito],[Copertura],[VarP],[Diversificazione],[FlagCoreSatellite],[PerimetroCoreSatellite],[FondoCore],[TIP_EMITTENTE],[TIP_TASSO])
			VALUES
           (null,303879,'GS','RB',null,null,'LU0782316961',null,null,1,null,'JPM Global Income C Cap EUR',1,null,98,null,null,null,null,null,null,null,'ASU1'
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null
		   ,null,null,null)

		   UPDATE a
				SET CATALOGUEID = 
				CASE WHEN codisin = '$' or codisin is null then '############' else CONVERT(char(12),codisin) END +
				CASE WHEN codmaf = '$' or codmaf is null then '###############' else CONVERT(char(15),codmaf) END  +
				CASE WHEN codinterno = '$' or codinterno is null then '###############' else CONVERT(char(15),codinterno) END +
				CASE WHEN codsottoprodotto = '$' or codsottoprodotto is null then '###############' else CONVERT(char(15),codsottoprodotto) END
			from C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti a
			where codinterno = 'RB' and codsottoprodotto = 'GS' AND CODMAF is null and codIsin = 'LU0782316961'

			-- fine modifiche per III trimestrale 2017 - 27/10/2017 ----------------------------------------------------------------


			---------------------------------------  modifiche per IV trimestrale 2017 - 17/1/2018  rimediare alla segnalazione
			-- 'Scrittura Tabella PROVENTI : Errata Valorizzazione a NULL del campo Descrizione Prodotto'
			-- per il cf: F/RGGVLR38S61H501U

			update C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti
			set visibilita = 1
			where codinterno = '04969190' and
			codisin = 'IT0004969199'

			---------------------------------------- fine modifiche per IV trimestrale 2017 - 17/1/2018

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_CatalogoProdotti' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_ST_CatalogoProdotti'
		)
	
end













GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_ChiaviMonitoraggio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_ChiaviMonitoraggio]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_ChiaviMonitoraggio',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
 truncate table C6StagingPeriodicoImmobiliare.[RP_ChiaviMonitoraggio]   
INSERT INTO [C6StagingPeriodicoImmobiliare].[RP_ChiaviMonitoraggio]  
           (  
             [IdMonitoraggio],  
          [ChiaveProgetto],  
    [DtCreazione],  
    [stato],  
    [dtFineMonitoraggio],  
    [flagVisualizzaStor]  
            )  
    select *  
      
 from [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.ChiaviMonitoraggio   
    --filtro per non prendere le righe duplicate  
    WHERE stato = 1  
   
    -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_ChiaviMonitoraggio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_ChiaviMonitoraggio'  
  )  
  
END  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_CONSULENZA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_CONSULENZA]  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CONSULENZA',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
   
TRUNCATE TABLE C6StagingPeriodicoImmobiliare.[RP_CONSULENZA]  
  
SELECT   
 contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,contr.rete  
 ,contr.cod_fiscale  
 ,pirmod.nomeProgetto  
 ,pro.chiaveProgetto  
 ,pro.area  
 ,pro.tipoProgetto  
 ,catprod.azob as StrType  
 ,catprod.Complessita  
 ,emit.Descrizione AS DescrizioneEmittente  
 ,PosPor.conto  
 ,PosPor.rubricato  
 ,PosPor.codConf  
 ,PosPor.numPolizza  
 ,PosPor.custGar  
 ,catprod.TipoProdotto  
 ,catprod.CodSottoprodotto  
 ,catprod.CodInterno  
 ,catprod.CodMaf  
 ,catprod.CodIsin    
 ,POSITION_ID = ''  
    ,termId   
 ,anno   
 ,prog  
    ,orizzonteTemporale   
 INTO #ConsulenzaPianificazione  
FROM  
  C6StagingPeriodicoImmobiliare.RP_Pianificazione AS pian  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_Progetto AS pro  
  ON pian.chiaveConsulenza = pro.chiaveConsulenza  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello pirmod  
  ON pro.chiaveprogettoMod=pirmod.chiaveprogettomod  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_PosizioniPortafoglio AS pospor  
  ON pro.chiaveProgetto = pospor.chiaveProgetto  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_DettaglioPosizionePortafoglio AS dettposport  
  ON pospor.chiavePosizionePtf = dettposport.chiavePosizionePtf  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti AS catprod  
  ON pospor.chiaveProdotto = catprod.ChiaveProdotto  
 LEFT JOIN C6StagingPeriodicoImmobiliare.RP_AnEmittente emit  
         ON catprod.emittente=emit.emittente  
    INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport contr  
  ON pian.chiaveClientePB = contr.chiaveClientePB  
   
    
 WHERE     
 pospor.dtFineValidita > getdate()  
 AND pro.dtfinevalidita='99991231'  
 AND pirmod.dtfinevalidita='99991231'  
 --AND INVIOBENVENUTO = 'N'  
   
   
--ricerco dati da Migrazione  
SELECT  
 contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,contr.rete  
 ,contr.cod_fiscale  
 ,pirmod.nomeProgetto  
 --,mig.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,promig.chiaveProgetto  
 ,promig.area  
 ,promig.tipoProgetto  
 ,catprod.azob as StrType  
 ,catprod.Complessita  
 ,emit.Descrizione AS DescrizioneEmittente  
 ,MigPos.conto  
 ,MigPos.rubricato  
 ,MigPos.codConf  
 ,MigPos.numPolizza  
 ,MigPos.custGar  
 ,catprod.TipoProdotto  
 ,catprod.CodSottoprodotto  
 ,catprod.CodInterno  
 ,catprod.CodMaf  
 ,catprod.CodIsin  
 ,POSITION_ID = ''    
 ,migpos.termId   
 ,migpos.anno   
 ,migpos.prog   
 ,null as orizzonteTemporale  
INTO #ConsulenzaMigrazione  
FROM  
 C6StagingPeriodicoImmobiliare.RP_Migraz_Pianificazione AS mig  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_Migraz_Progetto AS promig  
  ON mig.chiaveconsulenza = promig.chiaveconsulenza  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello pirmod  
  ON promig.chiaveprogettoMod=pirmod.chiaveprogettomod  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_Migraz_Posizioni AS migpos  
  ON promig.chiaveprogetto = migpos.chiaveprogetto  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_CatalogoProdotti AS catprod  
  ON migpos.chiaveProdotto = catprod.ChiaveProdotto  
 LEFT JOIN C6StagingPeriodicoImmobiliare.RP_AnEmittente emit  
  ON catprod.emittente=emit.emittente  
 INNER JOIN C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport contr  
  ON mig.chiaveClientePB = contr.chiaveClientePB   
 LEFT JOIN #ConsulenzaPianificazione tc  
  ON mig.chiaveClientePB = tc.chiaveClientePB  
 WHERE  
  pirmod.dtfinevalidita='99991231'  
 AND migpos.dtFineValidita > getdate()  
 AND tc.chiaveClientePB IS NULL   
 --AND INVIOBENVENUTO = 'N'  
  
   
INSERT INTO C6StagingPeriodicoImmobiliare.RP_Consulenza    
 SELECT * FROM #ConsulenzaPianificazione  
 UNION   
 SELECT * FROM #ConsulenzaMigrazione  
  
  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CONSULENZA' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_CONSULENZA'  
  )  
    
      
   
  
  
END  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_CREA_POSITIONID]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






  
--  
--select * from C6StagingPeriodicoImmobiliare.spb_contr_sintesi  
--where positionId is null  
  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_CREA_POSITIONID]  
AS  
BEGIN  
  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_1',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
   
 --********************************************************************************************  
--select * from C6StagingPeriodicoImmobiliare.rp_catalogoprodotti  
  
-- FC 05052014  
-- Interventi :  
    -- Eliminata ( commentata ) where condition spb.positionid is null  
    -- Eliminato ( commentato ) ciclo While @Visible   
  
update C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI  
set positionid = null  
  
 declare @visible int   
 set @visible = 1  
-- while @visible >= 0  
--  begin  
  
   update C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI  
   set positionid = catalogueid   
   FROM   
   C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI SPB inner join   
   (  
   select * from C6StagingPeriodicoImmobiliare.rp_catalogoprodotti where visibilita = @visible  
   )CAT  
   on    
   --caso 1  
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod not in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')  
--inizio intervento MIGRAZIONE ASU3   
--inizio INTERVENTO 'RE' - 20161213     
   --and spb.CODINT not in ('RS','RB','RM','RV')  
			--inizio INTERVENTO 'RF/MP' - 20171204
				--and spb.CODINT not in ('RS','RB','RM','RV','RE')  
				and spb.CODINT not in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M')
				--fine INTERVENTO 'RF/MP' - 20171204
--fine INTERVENTO 'RE' - 20161213     
  
--fine intervento MIGRAZIONE ASU3        
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))  
--inizio intervento MIGRAZIONE ASU3     
   or  
   --caso 1a  
--inizio INTERVENTO 'RE' - 20161213     
   --(spb.CODINT in ('RS','RB','RM','RV')  
		--inizio INTERVENTO 'RF/MP' - 20171204     
			-- (spb.CODINT in ('RS','RB','RM','RV','RE')  +
			(spb.CODINT in ('RS','RB','RM','RV','RE', 'RF','IE','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') 
			--fine INTERVENTO 'RF/MP' - 20171204
--FINE INTERVENTO 'RE' - 20161213     
     
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,''))   
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--fine intervento MIGRAZIONE ASU3           
   or   
   --else caso 1b   
   (SPB.TipProd in ('FI', 'GE', 'ASUL', 'ASU1', 'ASVI', 'ASCM', 'AC','CC')  
   and SPB.subprod in ('LIQUI', 'VAR5', 'VAR10', 'VAR15', 'L191', 'L192','V301','V302')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and cat.TIPOPRODOTTO = SPB.TipProd   
   )  
   or  
   --caso 2  
--   (SPB.TipProd in ('ASU2')  
   (SPB.TipProd in ('ASU2','GP')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
   )  
   or  
   --caso 3  
   (SPB.TipProd in ('DT','ASD')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
   )  
   or  
   --caso 4  
   (SPB.TipProd in ('GES')  
   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')   
   and isnull(cat.CODMAF,'') = isnull(spb.MAF,'')  
   )  
--   --caso 5  
--   or  
--   (SPB.isin = 'EURO00000009'  
--   and isnull(cat.CODINTERNO,'') = isnull(spb.CODINT,'')  
--   and isnull(cat.CODSOTTOPRODOTTO,'') = isnull(spb.SUBPROD,'')  
--   and isnull(cat.codisin,'')  = case when isnull(spb.ISIN,'') = 'NA' then '' else isnull(spb.ISIN,'') end  
--   )  
              
  
--   where spb.positionid is null  
--   set @visible = @visible - 1  
--  end  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_1' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_1'  
  )  
    --********************************************************************************************  
  
    -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_2',  
  GETDATE(),  
  'Staging  Immobiliare'  
 )  
 -- drop table #TAB1  
 SELECT distinct  
  TIPPROD,  
  CODINT,  
  MAF,  
  CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END AS CODISIN,  
  SUBPROD,  
  POSITIONID,  
  RETE,  
  codfis  
 INTO #TAB1    
 FROM C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI where POSITIONID IS NULL   
  
 UPDATE  #TAB1  
  SET POSITIONID = C6STAGINGPERIODICO.RP_INFO_DAPRODOTTOCSACATALOGO (  
      TIPPROD,   
      CODINT,   
      MAF,      
      CODISIN,  
      SUBPROD  
      )     
         
       
 UPDATE  C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI  
   SET POSITIONID = t.POSITIONID   
  FROM   C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI c  
   inner join #TAB1 t   
   ON  isnull(t.TIPPROD,'')=isnull(c.TIPPROD,'')  
   AND isnull(t.CODINT,'')=isnull(c.CODINT,'')  
   AND isnull(t.MAF,'')=isnull(c.MAF,'')  
   AND t.CODISIN = CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END      
   AND isnull(t.SUBPROD,'')=isnull(c.SUBPROD,'')  
       
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_2' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_2'  
  )  
 --**********************************************************************************************  
      -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_CREA_POSITIONID_3',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
      UPDATE  C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI  
   SET POSITIONID = POSITIONID + dbo.Crea_positionID  
             (  
             TIPPROD,   
             CODINT,   
             MAF,   
             '',   
             SUBPROD,   
             CODCONF, -- VERIFICARNE LA CORRETTEZZA  
             NUMPOL,   
             CONTO,  
             RUBR,   
             CUSTGAR,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
             END,   
             CASE  
              WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
              ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
             END  
             )  
           WHERE POSITIONID IS NOT NULL  
  
    
   -- INSERT INTO C6MARTPERIODICO.TEST_QUALITY  
   --SELECT RETE, codfis, 'SPB_CONTR_SINTESI.POSITIONID IS NULL'   
   --FROM C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI WHERE ISNULL(POSITIONID,'') =''  
   --GROUP BY RETE, codfis  
         
 --SELECT @CNT = COUNT(*) FROM C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI WHERE isnull(POSITIONID,'') = ''  
 --IF @CNTNULL > 0  
 -- RAISERROR ('SPB_CONTR_SINTESI.POSITIONID IS NULL', 16, 1 )  
-- UPDATE      
--  C6StagingPeriodicoImmobiliare.SPB_CONTR_SINTESI  
-- SET         
--  POSITIONID =   
----  CASE   
----   WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI  
----   ELSE   
--             [C6StagingPeriodicoImmobiliare].[RP_Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    --V ISIN per ASU2  
--    CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END,   
--    SUBPROD  
--    )   
--  --END  
--        +   
--   dbo.Crea_positionID  
--    (  
--    TIPPROD,   
--    CODINT,   
--    MAF,   
--    '',   
--    SUBPROD,   
--    CODCONF, -- VERIFICARNE LA CORRETTEZZA  
--    NUMPOL,   
--    CONTO,  
--                RUBR,   
--    CUSTGAR,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))  
--    END,   
--    CASE  
--     WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0  
--     ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))  
--    END  
--    )  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'UPDATE',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_CREA_POSITIONID_3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_CREA_POSITIONID_3'  
  )  
  
END  
  
  
  
  





GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettaglioPosizionePortafoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettaglioPosizionePortafoglio] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettaglioPosizionePortafoglio',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_DettaglioPosizionePortafoglio  
  
 insert into C6StagingPeriodicoImmobiliare.RP_DettaglioPosizionePortafoglio (  
   
  [chiavePosizionePtf]  
    ,[ctv]  
    ,[rischioCredito]  
    ,[rischioMercato]  
       ,[copertura]  
    ,[isAttivoRC]  
       ,[ctvNonAllocabile]  
       ,[quantitaNominale]  
       ,[partitaViaggiante]  
    ,[ctvOut]  
       ,[ctvIni]  
       ,[dtSaldo]  
 )  
 select   
    [chiavePosizionePtf],  
 [ctv],  
 null as [rischioCredito],   --- Da verificare  
 null as [rischioMercato],  
 [copertura],  
 null as [isAttivoRC],  --- Da verificare  
 [ctvNonAllocabile],  
 [quantitaNominale],  
 [partitaViaggiante],  
 [ctvOut],  
 [ctvIni],  
 [dtSaldo]  
  from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettaglioPosizionePortafoglio  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettaglioPosizionePortafoglio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_DettaglioPosizionePortafoglio'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettAltriProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettAltriProdotti] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettAltriProdotti',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_DettAltriProdotti  
  
 insert into C6StagingPeriodicoImmobiliare.RP_DettAltriProdotti  
   
   
 /* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.  
    select * from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettAltriProdotti  
 */  
 select  [chiaveProdottoTerzi],  
 [idTipoExtra],  
 [descrizione],  
 NULL,  
 [valoreStimato],  
 NULL,  
 NULL,  
 NULL,  
 [flagAssicurativo],  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL  
   
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettAltriProdotti   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettAltriProdotti' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_DettAltriProdotti'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettImmobiliare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettImmobiliare] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettImmobiliare',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_DettImmobiliare  
  
 insert into C6StagingPeriodicoImmobiliare.RP_DettImmobiliare  
   
 /* 21/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati.   
 Sostituzione del campo valore immobile con valoreimmobiletotale per l'evolutiva patrimonio immobiliare.  
 select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettImmobiliare*/  
  
 select  
 [chiaveProdottoTerzi],  
 [descrizione],  
 [codProvincia],  
 [provincia],  
 [codComune],  
 [comune],  
 [codZona],  
 [zona],  
 [superficie],  
 NULL,  
 NULL,  
 NULL,  
 --[valoreImmobile],  
 [valoreImmobileTotale],  
 NULL,  
 [renditaAnnua],  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 [codTipologia],  
 [tipologia]   
  
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettImmobiliare  
   
   
   
   
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettImmobiliare' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_DettImmobiliare'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettPatrAziendale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettPatrAziendale] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettPatrAziendale',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_DettPatrAziendale  
  
 insert into C6StagingPeriodicoImmobiliare.RP_DettPatrAziendale  
   
   
   
/* 20/05/2015FCianfa e LM: sostituzione della select * con la select puntuale e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.  
select *  from [CONSEVO_PERIODICO].[consulenzaEvoluta].dbo.DettPatrAziendale */  
 select [chiaveProdottoTerzi],  
 NULL,  
 [denominazione],  
 [codTipoCompagnia],  
 [patrimonio],  
 NULL,  
 NULL,  
 NULL,  
 [idTipoAzienda],  
 NULL,  
 NULL,  
 [numQuote],  
 [valoreStimato],  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL,  
 NULL  
   
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettPatrAziendale  
   
   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettPatrAziendale' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_DettPatrAziendale'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettProdottiTerzi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_DettProdottiTerzi] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_DettProdottiTerzi',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi  
  
--drop table C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi  
--select * into C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi from [CONSEVO].[consulenzaEvoluta].dbo.DettProdottiTerzi  
   
 insert into C6StagingPeriodicoImmobiliare.RP_DettProdottiTerzi  
 select   
chiaveProdottoTerzi,  
idIntermediario,  
alberatura,  
nomeIntermediario,  
dtInizioInvest,  
totVersato,  
totPrelevato,  
valutaTotPrelevato,  
chiaveProdotto,  
numQuote,  
divQuoteProd,  
dtSottoscrizione,  
valutaPremioVers,  
tipoPolizza,  
tipoVersamento,  
tipoFormaPensionistica,  
capitaleInvestito,  
valutaCapInvestito,  
contoPrincipale,  
addebitoUtenze,  
accreditoStipPens,  
cartaCredito,  
addebitoMutuo,  
isin,  
lineaFinanziaria,  
fabbisognoPrev,  
dtDecorrenza,  
modalitaUso,  
ctvUltimaPrestNota,  
dtUltimaPrestNota,  
flgPrestazioneScad,  
dtTermineVers,  
dtUltimoPremioNoto,  
nomeCompagnia,  
valutaCtvUltPrestNota  
from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.DettProdottiTerzi  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_DettProdottiTerzi' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_DettProdottiTerzi'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_InfoCliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_InfoCliente]  
AS  
  
BEGIN  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_InfoCliente',  
  GETDATE(),  
  'Elaborazione Trimestrale Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_InfoCliente  
  
 insert into C6StagingPeriodicoImmobiliare.RP_InfoCliente  
 --select * into C6StagingPeriodicoImmobiliare.RP_Cliente from [CONSEVO].consulenzaUnica.dbo.Cliente  
 select   
 [chiaveClientePB]  
      ,[chiaveCliente]  
      ,[codFis]  
      ,[pIva]  
      ,[codMan]  
      ,[NomeCliente]  
      --,[CognomeCliente]  
      ,SUBSTRING([CognomeCliente], 1, 50) -- TOPPA INSERITA PERCHé MODIFCA NON COMUNICATA A REPORTISTA BATCH per errore staging_f1_main in data 08/07/2015  
      ,[tipologia]  
      ,[dtScadQuest]  
      ,[profilo]  
      ,[dtQuestionario]  
      ,[frequenza]  
      ,[Agente]  
      ,[NomePb]  
      ,[CognomePb]  
      ,[StatoPb]  
      ,[rete]  
      ,[codiceContratto]  
      ,[StatoContratto]  
      ,[dtFirmaBase]  
      ,[dtEndBase]  
      ,[dtFirmaSei]  
      ,[dtEndSei]  
      ,[rendicSemestrale]  
      ,[dtNascita]  
      ,[sesso]  
      ,[TipContratto]  
      ,[ModPagamento]  
      ,[chiavePB]  
      ,[flagrol]  
       from [CONSUNI_PERIODICO].consulenzaUnica.dbo.vInfoCliente  
    --EN20160428: clienti di tipologia catastali non sono presenti sul sistema  
    --            sistema SEI e quindi da escludere ma quelli con tipologia NULL  
    --            son da includere. (senza modifica per FF@9133 non viene caricata l'anagrafica)    
       --where tipologia != 'c'  
    where ISNULL(tipologia,'') != 'c'  

	----------- Modifica del 15/9/2017 per escluedere i seguenti cf doppi senza toccare il db del congelato
		--chiaveClientePB(giusta)		COD_FISCALE			COD_MANDATO	PIVA_FIDUCIARIA	COD_AGENTE	rete	codiceContratto
		--615359						BRDRRT69R21L378Q								005861		S		503566CO806
		--1667717						CSTPLA70M67F952U								006473		S		621961CO810
		--674782						CHRGLL44C55Z112E	NULL						006302		S		696334CO810
	---- da escludere perché doppi sulla cliente
		--chiaveClientePB		chiaveCliente	codFis
		--1830328				1648328			BRDRRT69R21L378Q
		--1830432				1452802			CSTPLA70M67F952U	NULL	NULL	PAOLA
		--1818279				1636055			CHRGLL44C55Z112E	NULL			GISELA ELISABETH WILHELMI
	--EN20171031 -- ricodifica da cf CHRGSL44C55Z112M in CHRGLL44C55Z112E effettuqto con successo e l'esclusione eliminata
	--and [chiaveClientePB] not in (1830328,1830432,1818279)
	and [chiaveClientePB] not in (1830328,1830432)

	----------- FINE Modifica del 15/9/2017 
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_InfoCliente' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_InfoCliente'  
  )  
   
END  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_Mappatura]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_Mappatura] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Mappatura',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_Mappatura  
  
 insert into C6StagingPeriodicoImmobiliare.RP_Mappatura  
  
 select *  from [CONSUNI].CatalogoProdotti.dbo.Mappatura  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Mappatura' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_Mappatura'  
  )  
   
end  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_MappaturaPT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_MappaturaPT] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_MappaturaPT',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_MappaturaPT  
  
 insert into C6StagingPeriodicoImmobiliare.RP_MappaturaPT  
 --select * into C6StagingPeriodicoImmobiliare.RP_MappaturaPT from [CONSEVO].[consulenzaUnica].dbo.MappaturaPT  
 select * from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.MappaturaPT  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_MappaturaPT' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_MappaturaPT'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_Migraz_Pianificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_Migraz_Pianificazione]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Pianificazione',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table  C6StagingPeriodicoImmobiliare.RP_Migraz_Pianificazione  
  
 insert into C6StagingPeriodicoImmobiliare.RP_Migraz_Pianificazione (  
  chiaveConsulenza  
  ,chiaveClientePB  
  ,dtUltimoAggiornamento  
  ,risorseFinanziarieBF  
  ,risorseFinanziarieTerzi  
  ,contoCorrente  
  ,rischioCredito  
  ,rischioMercato  
  ,diversificazione  
  ,copertura  
  ,isAttivoRC  
  ,partiteViaggianti  
  ,dtPrimaMigrazione  
  ,token  
  ,lineaself  
 )  
     SELECT  
  chiaveConsulenza  
  ,pian.chiaveClientePB  
  ,pian.dtAggiornamento  
  ,null as risorseFinanziarieBF  
  ,null as risorseFinanziarieTerzi  
  ,null as contoCorrente  
  ,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')  
   or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato  
  ,null as rischioCredito  
  ,coperturaRFA as diversificazione  
  ,coperturaRisAll as copertura  
  ,null as isAttivoRC  
  ,partiteViaggianti  
  ,dtPrimaMigrazione  
  ,tok.value as Token  
  ,null AS lineaself  
  
FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.Pianificazione pian  
left join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.token tok  
on pian.chiaveToken = tok.chiavetoken  
inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.eventiCliente ev  
on ev.chiaveclientePb = pian.chiaveclientepb  
where ev.flagPianificazione = 0  
   
  
   
  
/*  POPOLO RISORSE FINANZIARIE BF   */  
  
  
SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB  
into #APPO  
    from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a  
 on a.chiaveconsulenza = pian.chiaveconsulenza  
 inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog  
 on a.chiaveArea = prog.chiavearea  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod  
 on propirMod.chiaveprogettomod = prog.chiaveprogettomod  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor  
 on pospor.chiaveprogetto = prog.chiaveprogetto  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett  
 on dett.chiaveposizioneptf = pospor.chiaveposizioneptf  
 group by pian.chiaveclientePB  
   
  
 UPDATE  C6StagingPeriodicoImmobiliare.RP_Pianificazione  
 SET risorseFinanziarieBF = a.RisorseFinanziareBF  
    from #APPO a  
 inner join C6StagingPeriodicoImmobiliare.RP_Pianificazione rpPian  
 on rpPian.chiaveclientePB = a.chiaveClientePB  
  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Pianificazione' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_Migraz_Pianificazione'  
  )  
   
end  
  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_Migraz_Posizioni]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_Migraz_Posizioni] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Posizioni',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_Migraz_Posizioni  
  
 insert into C6StagingPeriodicoImmobiliare.RP_Migraz_Posizioni  
SELECT   
      ptf.[chiavePosizioneptf]  
      ,[chiaveProgetto]  
      ,[chiaveProdotto]  
      ,ptf.[dtInizioValidita]  
      ,'99991231' as dtFineValidita  
      ,[conto]  
      ,[rubricato]  
      ,[codConf]  
      ,[numPolizza]  
      ,[custGar]  
      ,[codAbi]  
      ,[termId]  
      ,[anno]  
      ,[prog]  
      ,null as Ctv  
  FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PosizioniPortafoglio ptf  
  
   
 select sum(ctv) as Ctv,chiaveprodotto,pospor.chiaveposizionePtf,pospor.chiaveprogetto,codconf  
 into #appo  
 from [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.PosizioniPortafoglio pospor  
 inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.dettaglioPosizionePortafoglio dett  
 on pospor.chiavePosizionePtf = dett.chiaveposizionePtf  
 inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog  
 on prog.chiaveprogetto = pospor.chiaveprogetto  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a  
 on a.chiaveArea = prog.chiavearea  
 inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian  
 on a.chiaveconsulenza = pian.chiaveconsulenza  
  
 group by pospor.chiavePosizionePtf,pospor.chiaveprogetto,pospor.chiaveprodotto,codconf  
  
  
   
 UPDATE C6StagingPeriodicoImmobiliare.RP_Migraz_Posizioni  
 SET Ctv = a.Ctv  
    from #APPO a  
 inner join C6StagingPeriodicoImmobiliare.RP_Migraz_Posizioni migraz  
 on migraz.chiavePosizione = a.chiavePosizionePtf  
 and migraz.chiaveprogetto = a.chiaveProgetto  
 and migraz.chiaveprodotto = a.chiaveprodotto  
 and migraz.codconf    = a.codconf  
  
  
  
  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Posizioni' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_Migraz_Posizioni'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_Migraz_Progetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_Migraz_Progetto] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Migraz_Progetto',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_Migraz_Progetto

	insert into C6StagingPeriodicoImmobiliare.RP_Migraz_Progetto(
	chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,varProgetto
      ,coperturaProgetto
      ,ctvProgetto
      ,chiaveProgettoMod )

	
	select 
	prog.chiaveProgetto
      -------------------------> modifica del 18/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 18/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NUOVO 16/09
      ,null as dtCreazione
      ,null as varProgetto
      ,coperturaProgetto
      ,null as ctvProgetto
      ,propirMod.chiaveProgettoMod

	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
  
  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Migraz_Progetto' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_Migraz_Progetto'  
  )  
   
end  
  
  
  





GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_NeedArea]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_NeedArea] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_NeedArea',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_NeedArea  
  
 insert into C6StagingPeriodicoImmobiliare.RP_NeedArea  
 /* 20161222 */  
 --select * from [CONSEVO].[CatalogoProdotti].dbo.NeedArea  
 select * from [CONSUNI].[CatalogoProdotti].dbo.NeedArea  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_NeedArea' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_NeedArea'  
  )  
   
end  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_PatrimonioTerzi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_PatrimonioTerzi] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PatrimonioTerzi',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi  
  
  
/*  20/05/2015FCianfa e LM: aggiunta della where condition e valorizzazione a NULL di campi non più utilizzati per l'evolutiva patrimonio immobiliare.  
*/  
 insert into C6StagingPeriodicoImmobiliare.RP_PatrimonioTerzi  
 SELECT [chiaveProdottoTerzi]  
      ,[chiaveClientePB]  
      ,[idTipoProdotto]  
      ,[nomeProdotto]  
      ,NULL  
      ,[valutaCtv]  
      ,[ctv]  
      ,NULL  
      ,[dataCtv]  
      ,[prezzoMedioCarico]  
      ,[tipoProd]  
      ,[dtFine]  
      ,[divisa]  
      ,[ultimoPrezzo]  
        
     
   FROM [CONSUNI_PERIODICO].[ConsulenzaUnica].[dbo].[PatrimonioTerzi]  
   where dtFineValidita >getdate()   
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PatrimonioTerzi' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_PatrimonioTerzi'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_Pianificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_Pianificazione]  
as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_Pianificazione',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_Pianificazione

	insert into C6StagingPeriodicoImmobiliare.RP_Pianificazione (

	chiaveConsulenza
		,chiaveClientePB
		,dtUltimoAggiornamento
		,risorseFinanziarieBF
		,risorseFinanziarieTerzi
		,contoCorrente
		,rischioCredito
		,rischioMercato
		,diversificazione
		,copertura
		,isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,token
		,varRisorseAllocate
		,coperturaRisorseAllocate
		,lineaself
		)
		

	SELECT
		chiaveConsulenza
		,pian.chiaveClientePB
		,pian.dtAggiornamento as dtUltimoAggiornamento
		,Null as risorseFinanziarieBF
		,Null as risorseFinanziarieTerzi
		,Null as contoCorrente
		,null as rischioCredito
		,case when (rischioCreditoDecodificatoRisAll like '%n.a.%') or (rischioCreditoDecodificatoRisAll like '%n.c.%')
			or (rischioCreditoDecodificatoRisAll like '%classe%') then null else rischioCreditoDecodificatoRisAll end as rischioMercato
				 --rischioCreditoDecodificatoRFA as rischioCredito
		,coperturaRFA as diversificazione
		,coperturaRisAll as copertura
		,null as isAttivoRC
		,partiteViaggianti
		,dtPrimaMigrazione
		,dtPianificazioneOrizzontale
		,dtPianificazioneVerticale
		,tok.value as Token
		,null as varRisorseAllocate
		,coperturaRisorseAllocate
		,null AS lineaself
FROM [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian
--------------------- modifica del 13/1/2017 (inner join cambiata con left)
left join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.token tok
--------------------- fine modifica del 13/1/2017 (inner join cambiata con left)
on pian.chiaveToken = tok.chiavetoken
inner join [CONSUNI_PERIODICO].[ConsulenzaUnica].dbo.eventiCliente ev
on ev.chiaveclientePb = pian.chiaveclientepb
--------------------- modifica del 13/1/2017 (flag pianificazione non più gestito; tutti pianificati)
--where ev.flagPianificazione = 1
--------------------- fine modifica del 13/1/2017


/*  POPOLO RISORSE FINANZIARIE BF   */


SELECT SUM(dett.ctv) as RisorseFinanziareBF,pian.chiaveclientePB
into #APPO
    from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Pianificazione pian
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveconsulenza = pian.chiaveconsulenza
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	on a.chiaveArea = prog.chiavearea
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.PosizioniPortafoglio pospor
	on pospor.chiaveprogetto = prog.chiaveprogetto
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.DettaglioPosizionePortafoglio dett
	on dett.chiaveposizioneptf = pospor.chiaveposizioneptf
	group by pian.chiaveclientePB
	

	UPDATE  C6StagingPeriodicoImmobiliare.RP_Pianificazione
	SET risorseFinanziarieBF = a.RisorseFinanziareBF
    from #APPO a
	inner join C6StagingPeriodicoImmobiliare.RP_Pianificazione rpPian
	on rpPian.chiaveclientePB = a.chiaveClientePB

	
   
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_Pianificazione' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_Pianificazione'  
  )  
   
end  
  




GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_PosizioniPortafoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_PosizioniPortafoglio] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PosizioniPortafoglio',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_PosizioniPortafoglio  
  
 insert into C6StagingPeriodicoImmobiliare.RP_PosizioniPortafoglio  
  
 select   
chiavePosizionePtf,  
chiaveProgetto,  
dtInizioValidita,  
'99991231' as[dtFineValidita],  
chiaveProdotto,  
conto,  
rubricato,  
codConf,  
numPolizza,  
custGar,  
codAbi,  
termId,  
anno,  
prog  
  from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.PosizioniPortafoglio  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PosizioniPortafoglio' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_PosizioniPortafoglio'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_PROGETTICLIENTE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_PROGETTICLIENTE]  
AS  
BEGIN  
 -- riportare le logiche nelle rispettive sp di PL  
 SET NOCOUNT ON;  
  
 DECLARE @ID_ELAB INT  
 DECLARE @TIPO_ELAB VARCHAR(1)  
  
 SET @ID_ELAB = C6MartPeriodico.GETIDELAB()  
 SET @TIPO_ELAB = C6MartPeriodico.GETTIPOELAB()  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_PROGETTICLIENTE',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
   
TRUNCATE TABLE C6StagingPeriodicoImmobiliare.[RP_PROGETTICLIENTE]  
  
SELECT   
  contr.chiaveClientePB --V usata per il join con la contratto_sei metadati per fare il filtro nella consulenza  
 ,contr.rete  
 ,contr.cod_fiscale  
 ,pro.chiaveProgetto  
 ,pro.area  
 ,pro.tipoProgetto  
      
INTO #ProgettiPianificazione  
FROM  
  C6StagingPeriodicoImmobiliare.RP_Pianificazione AS pian  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_Progetto AS pro  
 ON pian.chiaveconsulenza = pro.chiaveconsulenza  
    INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr  
 ON pian.chiaveClientePB = contr.chiaveClientePB  
 WHERE     
  (pro.dtfinevalidita='99991231' or pro.dtfinevalidita is null)  
  
   
   
--ricerco dati da Migrazione  
SELECT  
  contr.chiaveClientePB   
 ,contr.rete  
 ,contr.cod_fiscale  
 ,promig.chiaveProgetto  
 ,promig.area  
 ,promig.tipoProgetto  
  
INTO #ProgettiMigrazione  
FROM  
 C6StagingPeriodicoImmobiliare.RP_Migraz_Pianificazione AS mig  
 INNER JOIN C6StagingPeriodicoImmobiliare.RP_Migraz_Progetto AS promig  
  ON mig.chiaveconsulenza = promig.chiaveconsulenza  
 LEFT JOIN #ProgettiPianificazione tc  
  ON mig.chiaveClientePB = tc.chiaveClientePB  
   INNER JOIN C6MartPeriodico.RP_vContrattiPerGenerazioneReport contr  
  ON mig.chiaveClientePB = contr.chiaveClientePB  
 WHERE  
  tc.chiaveClientePB IS NULL   
   
INSERT INTO C6StagingPeriodicoImmobiliare.RP_PROGETTICLIENTE   
 SELECT * FROM #ProgettiPianificazione  
 UNION   
 SELECT * FROM #ProgettiMigrazione  
  
  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_PROGETTICLIENTE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_PROGETTICLIENTE'  
  )  
    
      
   
  
  
END  
  
  
  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_ProgettiPiramideModello]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_ProgettiPiramideModello] as

begin 

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_ST_ProgettiPiramideModello',
		GETDATE(),
		'Staging IMMOBILIARE'
	)
	
	--INSERT INTO C6MARTPERIODICO.TEST_QUALITY	
	--SELECT DISTINCT	 
	-- d.rete,	
	--case when(isnull(ltrim(rtrim(codman)),'') <> '') then 'FF@'+codman
	--	 when (isnull(codfis,'') <> '') then codfis 	
	--	 else c.piva
	--end as Cod_fiscale,   
 --   'SCARTO PER PIRAMIDE MODELLO tipoprogetto > 1' AS MOTIVO	 
	--FROM [CONSUNI_PERIODICO].[consulenzaunica].dbo.Contratto a
	--JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.ClientePB b 
	--	ON b.chiaveClientePB = a.chiaveClientePB 
	--	AND a.status in ('SEI','AVANZATOBASE','REVOCASEI')
	--JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.Cliente c 
	--	ON b.chiaveCliente = c.chiaveCliente 
	--JOIN [CONSUNI_PERIODICO].[consulenzaunica].dbo.PromotoreBancario d 
	--	ON b.chiavePB = d.chiavePB
	--WHERE
	--	A.chiaveclientepb in ( 
	--	select distinct chiaveclientepb 
	--	FROM 
	--	(
	--	--SELECT chiaveclientepb,area,tipoprogetto,COUNT(*) as c FROM   
	--	--[CONSUNI_PERIODICO].[consulenzaEvoluta].dbo.ProgettiPiramideModello
	--	--where tipoprogetto =0 and area <> 'na' and isnull(dtFineValidita,'99991231')>GETDATE()
	--	--group by chiaveclientepb,area,tipoprogetto
	--	--having COUNT(*)<>1 
	--	    SELECT chiaveclientepb,area,COUNT(*) as c 
	--		FROM [CONSUNI_PERIODICO].consulenzaunica.dbo.piramidemodello pirmod
	--		inner join [CONSUNI_PERIODICO].consulenzaunica.dbo.areamodello areamod
	--		on pirmod.chiavePiramideMod = areamod.chiaveAreaMod
	--		inner join [CONSUNI_PERIODICO].[consulenzaunica].dbo.ProgettiPiramideModello progmod
	--		on progmod.chiaveAreaMod = areamod.chiaveAreaMod
	--		where  area <> 'na' 
	--		group by chiaveclientepb,area
	--		having COUNT(*)<>1

	--	) t
	--)  
	
	--drop table C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello
	truncate table C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello




	insert into C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello

select  
	   prog.chiaveProgettoMod
      ,pian.chiaveClientePB
       -------------------------> modifica del 18/1/2017 per correggere le anomalie dovute al nome area 'pre1'e 'pre2' 
      --,am.area
				,CASE
				WHEN pirMod.nomeProgetto = 'Previdenza Essenziale' and am.area = 'Pre' THEN 'Pre1'
				WHEN pirMod.nomeProgetto = 'Previdenza Secondaria' and am.area = 'Pre' THEN 'Pre2'
				ELSE AM.AREA
				END AS area
      -------------------------> fine modifica del 18/1/2017   
      ,percentualeProgetto
      ,null as tipoProgetto
	  /* 20161215 imposta per area previdenza il nome progetto a Default */
      --,nomeProgetto
	  ,case when am.area = 'Pre' 
	     then 'Default' 
	     else nomeProgetto 
	   end AS nomeProgetto
	   /* 20161215 fine */
      ,[durata]
      ,[note]
      ,'99991231' as dtFineValidita
      ,null as [dtCreazione]
      
	from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.ProgettiPiramideModello pirmod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Progetto prog
		 on prog.chiaveprogettoMod = pirmod.chiaveProgettoMod
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.AreaModello am
		 on am.chiaveAreaMod = pirmod.ChiaveAreaMod
		 inner join  [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Area a
		 on a.chiaveArea = prog.chiaveArea
		 inner join [CONSUNI_PERIODICO].[consulenzaUnica].dbo.Pianificazione pian 
		 on pian.chiaveconsulenza = a.chiaveconsulenza
	
    --update C6StagingPeriodicoImmobiliare.RP_ProgettiPiramideModello set nomeProgetto = null where tipoprogetto = 0

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_ProgettiPiramideModello' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_ST_ProgettiPiramideModello'
		)
	
end






GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_Progetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_Progetto] as  
  
BEGIN   
  
	-- Log esecuzione  
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
	(Nome, Inizio, Nota)  
	VALUES (  
	'RP_ST_Progetto',  
	GETDATE(),  
	'Staging Immobiliare'  
	)  
 
	truncate table C6StagingPeriodicoImmobiliare.RP_Progetto

	insert into C6StagingPeriodicoImmobiliare.RP_Progetto 
	(
	   chiaveProgetto
      ,area
      ,chiaveConsulenza
      ,tipoProgetto
      ,dtCreazione
      ,dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,varProgetto
      ,coperturaProgetto
      ,profiloProgetto
      ,orizzonteTemporale
      ,ctvProgetto
      ,chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset  )

	select  
	   prog.chiaveProgetto
	  -------------------------> modifica del 13/1/2017 per gestire l'accorpamento (sulla nuova CU) dell'area previdenza, non più distinta tra pre1 e pre2
			--,a.area
	    ,CASE 
			-------------------------> modifica del 16/1/2017 per correggere le anomalie dovute al nome progetto 'previdenza' sulle aree inv
			--WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' THEN 'Pre1'
			--WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' THEN 'Pre2'
				WHEN propirMod.nomeProgetto = 'Previdenza Essenziale' and a.area = 'Pre' THEN 'Pre1'
				WHEN propirMod.nomeProgetto = 'Previdenza Secondaria' and a.area = 'Pre' THEN 'Pre2'
			-------------------------> fine modifica del 16/1/2017
			else a.area END AS area
      -------------------------> FINE modifica del 13/1/2017 
      ,chiaveConsulenza
      ,null as tipoProgetto -- NULL 16/09
      ,propirMod.dtInizioValidita as dtCreazione
      ,prog.dtaggiornamento as  dtUltimaModifica
      ,capLiquidoEntrata
      ,capLiquidoUscita
      ,varPianificato
      ,Null as varProgetto
      ,coperturaProgetto
      ,null as profiloProgetto
	  /* 20170117 durata > 9 anni */
      ,SUBSTRING (propirMod.durata,1,2) as orizzonteTemporale
      ,null as ctvProgetto  
      ,propirMod.chiaveProgettoMod
      ,flagAvviatoMonitoraggio
      ,null as percProgetto
      ,ctvPianificato
      ,chiavePtfMod
      ,'99991231' as dtFineValidita
      ,flagCambioParametri
      ,flagPianificazione
      ,dtReset

    ------------------> MODIFICA DEL 17/1/2017 -- SI DEVE PUNTARE AL CONGELATO E NON ALL'ONLINE
		--from CONSUNI.ConsulenzaUnica.dbo.Progetto prog
		--inner join CONSUNI.ConsulenzaUnica.dbo.area a
		--on a.chiaveArea = prog.chiavearea 
		--inner join  CONSUNI.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
		--on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	from CONSUNI_PERIODICO.ConsulenzaUnica.dbo.Progetto prog
	inner join CONSUNI_PERIODICO.ConsulenzaUnica.dbo.area a
	on a.chiaveArea = prog.chiavearea 
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod
	------------------> fine MODIFICA DEL 17/1/2017

	-- Log esecuzione
	UPDATE
	LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
	Fine = GETDATE(),
	Tipo = 'INSERT',
	Righe = @@ROWCOUNT
	WHERE
	Nome = 'RP_ST_Progetto' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
		WHERE
			Nome = 'RP_ST_Progetto'
	)

	-- Log esecuzione  
	INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
	(Nome, Inizio, Nota)  
	VALUES (  
	'RP_ST_Progetto_2',  
	GETDATE(),  
	'Staging Immobiliare'  
	)  

	------------------> MODIFICA DEL 06/11/2017 -- inzio -- durata progetto da PortafoglioModello.orizzontetemporale
	select prog.chiaveprogettomod , pm.orizzonteTemporale
	into #temp_orizzonteTemporale_ok
	from C6StagingPeriodicoImmobiliare.RP_Progetto prog
	inner join [consuni_periodico].consulenzaunica.[dbo].PortafoglioModello pm
	on prog.chiaveptfMod=pm.chiaveptfMod
	inner join  CONSUNI_PERIODICO.ConsulenzaUnica.dbo.ProgettiPiramideModello propirMod
	on propirMod.chiaveprogettomod = prog.chiaveprogettomod 
	--where prog.orizzontetemporale<>pm.orizzonteTemporale

	update C6StagingPeriodicoImmobiliare.RP_Progetto
	set RP_Progetto.orizzonteTemporale=ok.orizzonteTemporale
	from #temp_orizzonteTemporale_ok ok 
	where RP_Progetto.chiaveprogettoMod=ok.chiaveprogettoMod
	------------------> MODIFICA DEL 06/11/2017 -- fine
	
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_ST_Progetto_2' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = 'RP_ST_Progetto'
		)
	
END



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_REP_ASSET_1_E_2_ORDINATE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_REP_ASSET_1_E_2_ORDINATE] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_REP_ASSET_1_E_2_ORDINATE',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
    --drop table C6StagingPeriodicoImmobiliare.RP_REP_ASSET_1_E_2_ORDINATE  
 truncate table C6StagingPeriodicoImmobiliare.RP_REP_ASSET_1_E_2_ORDINATE  
  
 insert into C6StagingPeriodicoImmobiliare.RP_REP_ASSET_1_E_2_ORDINATE  
  
 select *    
 --into C6StagingPeriodicoImmobiliare.RP_REP_ASSET_1_E_2_ORDINATE  
 from [CONSUNI_PERIODICO].[consulenzaUnica].dbo.REP_ASSET_1_E_2_ORDINATE  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_REP_ASSET_1_E_2_ORDINATE'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3] as  
  
begin   
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
  
 truncate table C6StagingPeriodicoImmobiliare.RP_S4_S5_S13_TRAD_UNTIL_LIV3  
  
 insert into C6StagingPeriodicoImmobiliare.RP_S4_S5_S13_TRAD_UNTIL_LIV3  
  
 select * from [CONSUNI_PERIODICO].[consulenzaUnica].[dbo].[REP_S4_S5_S13_TRAD_UNTIL_LIV3]  
   
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'RP_ST_S4_S5_S13_TRAD_UNTIL_LIV3'  
  )  
   
end  
  



GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_SPB_CONTR_SINTESI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- Aggiunta GESTIONE Fogli V301 (Colaneri, 31/01/2019)
-- =============================================  
--select count(*) from C6StagingPeriodicoImmobiliare.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_SPB_CONTR_SINTESI]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Mart Immobiliare'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = c6martperiodico.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  
  
 TRUNCATE TABLE [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')

  -- Modifica del 31/01/2019 AC
  -- dalla WSEICS va esclusa anche la riga che riguarda il prodotto V301 (assimilato a L191 e L192). Questo tipo di prodotti viene caricato, come dettaglio, dalla WSEIGP (vedi ultime select)
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192', 'V301','V302','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') --aggiunto v302 16-05-2022 --aggiunto 3L 25/07/2022
  -- Fine modifica del 31/01/2019 AC

--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM') 
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
			--AND CODINT NOT IN ('RS','RB','RV','RM','RE')
			  AND CODINT NOT IN ('RS','RB','RV','RM','RE','RF','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') --aggiunto 3L 25/07/2022
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
      ,UL.ISINFIT AS ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
		  --AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
		  AND UL.CODINT IN ('RS','RB','RV','RM','RE','RF','XP','3A', '3L'
,'1M','2M','3M','4M','5M','6M','7M','8M','9M') --aggiunto 3L 25/07/2022
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self

-- Modifica del 31/01/2019 AC prodotti MioFoglio
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('V301','V302')) AS CS  --aggiunto v302 16-05-2022
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('V301','V302') --aggiunto v302 16-05-2022 
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodico.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
-- Fine Modifica del 31/01/2019
  
  
--inizio inserimento su testquality emanuele  
--insert into c6martperiodico.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  






GO
/****** Object:  StoredProcedure [C6StagingPeriodicoImmobiliare].[RP_ST_SPB_CONTR_SINTESI_20190204_preMioFoglio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



  
-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- Aggiunta GESTIONE EligoTitoli L192 (FCianfa, 26/11/2014)  
-- =============================================  
--select count(*) from C6StagingPeriodicoImmobiliare.spb_contr_sintesi  
CREATE procedure [C6StagingPeriodicoImmobiliare].[RP_ST_SPB_CONTR_SINTESI_20190204_preMioFoglio]  
AS  
BEGIN  
 SET NOCOUNT ON;  
  
 -- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
  (Nome, Inizio, Nota)  
 VALUES (  
  'ST_SPB_CONTR_SINTESI',  
  GETDATE(),  
  'Staging Immobiliare'  
 )  
   
-- FC 18/03/2014 Ottimizzazione tempi di esecuzione  
-- Sostituzione in tutte le where condition     
-- condizione DTTRIM = C6MartPeriodicoImmobiliare.gettrimestre2(getdate()  
-- con set @dtTrime=convert(decimal,C6MartPeriodicoImmobiliare.gettrimestre2(getdate(),0))  
-- condizione DTTRIM = @dtTrime (set @dtTrime=convert(decimal,C6MartPeriodicoImmobiliare.gettrimestre2(getdate(),0))  )  
  
 Declare @dtTrime as decimal;  
   
 Declare @dtTrimePrec as decimal;  
  
 set @dtTrime=convert(decimal,c6martperiodico.gettrimestre2(getdate(),0))  
   
 set @dtTrimePrec=convert(decimal,c6martperiodico.getprevioustrimestre(getdate(),0))  
  
 TRUNCATE TABLE [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]  
  
 INSERT INTO [C6StagingPeriodicoImmobiliare].[SPB_CONTR_SINTESI]  
      ([POSITIONID]  
     ,[DTTRIM]  
     ,[DTRIFE]  
     ,[RETE]  
     ,[CODFIS]  
     ,[CODCONF]  
     ,[NUMPOL]  
     ,[CONTO]  
     ,[RUBR]  
     ,[CUSTGAR]  
     ,[TIPPROD]  
     ,[CODINT]  
     ,[CODPROD]  
     ,[SUBPROD]  
     ,[MAF]  
     ,[CODABI]  
     ,[PCTKEY]  
     ,[DESTIT]  
     ,[CTV]  
     ,[PARTVIA]  
     ,[PARTVIAAL]  
     ,[DTSOTTOS]  
     ,[RENDINIZ]  
     ,[RENDANNO]  
     ,[VALORE]  
     ,[SUBSET]  
     ,[CVN]  
     ,[SALRISC]  
     ,[ISIN])  
  
 SELECT   
     NULL AS [POSITIONID]  
       ,[DTTRIM]  
    ,[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CODMAN ='' THEN CODFIS  
  ELSE 'FF@'+CODMAN  
      END AS CODFIS  
    ,[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,[TIPPROD]  
    ,[CODINT]  
    ,[CODPROD]  
    ,[SUBPROD]  
    ,[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN   
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS  
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
--INNER JOIN  
--   [C6Mart].[CONTRATTOSEI] AS C6  
ON  
   CS.RETE = C6.RETE AND  
-- TRINGALI 19022010  
 (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
--      LEFT JOIN C6StagingPeriodico.WMANDATI AS MANDATI  
--      ON cs.codman = ltrim(rtrim(MANDATI.CODMAND))  
   WHERE [DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112) --c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS LI RECUPERO DALLA WSEIUL  
   --AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7')  
  --modifica Emanuele 20131112  
  AND SUBPROD NOT IN ('KE','KS','KW','K1','K2','K3','K4','K5','K6','K7', 'L191', 'L192')  
--INIZIO INTERVENTO MIGRAZIONE ASU3   
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND CODINT NOT IN ('RS','RB','RV','RM') 
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
			--AND CODINT NOT IN ('RS','RB','RV','RM','RE')
			  AND CODINT NOT IN ('RS','RB','RV','RM','RE','RF')
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213    
--FINE INTERVENTO MIGRAZIONE ASU3    
  
AND C6.UltimoAperto = 1  
  
--trimestrale Aprile 2013  
--and c6.rete+c6.COD_FIScale+c6.codicecontratto <> 'FRMNCRD39R25F943Z007608CO205'  
    
UNION ALL  
  
  
   
  
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    CASE WHEN UL.ISIN IS NULL OR UL.SUBPROD = 'CL05' THEN 'ASU1' ELSE 'ASU2'  
   end as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE --V Anomalia trimestrale ottobre 2011, il valore diventa il ctv nominale e deve essere uguale al ctv per il calcolo corretto del var  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,case when(UL.ISIN is null) then 'NA' else UL.ISIN end as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
  
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND CS.SUBPROD  IN ('KE','KS','KW','K1') and ul.subprod not in('VAR5','VAR10','VAR15','CL05','LIQUI')  
AND C6.UltimoAperto = 1  
  
  
--INIZIO INTERVENTO MIGRAZIONE ASU3       
UNION ALL  
   
SELECT   
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
    ,'ASU1' AS TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,UL.[CTV]  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,UL.[CTV] AS VALORE   
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
      ,UL.ISINFIT AS ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime) AS CS   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM   
        C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.CODINT = UL.CODINT  
  AND CS.SUBPROD = UL.SUBPROD    
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] =@dtTrime  
      AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') >convert(varchar(10),@dtTrimePrec,112)--c6martperiodico.getprevioustrimestre(getdate(),0)--c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
--INIZIO INTERVENTO 'RE' - 20161213   
  --AND UL.CODINT IN ('RS','RB','RV','RM')  
		--INIZIO INTERVENTO 'RF/MP' - 20171204   
		  --AND UL.CODINT IN ('RS','RB','RV','RM','RE')  
		  AND UL.CODINT IN ('RS','RB','RV','RM','RE','RF')
		--FINE INTERVENTO 'RF/MP' - 20171204 
--FINE INTERVENTO 'RE' - 20161213     
AND C6.UltimoAperto = 1  
--FINE INTERVENTO MIGRAZIONE ASU3   
  
  
  UNION ALL  
   --INSERIRE VAR5..15  
      --V Modifica fatta in quanto sulle tabelle di replica i prodotti erano rappresentati con i sottostanti, effettuo il raggruppamento per  
   -- codconf butto il MAF che non è significativo e sommo il ctv. I var5, var10, e var15 sono gestiti per linea quindi devono avere una riga  
   -- unica e devono essere classificati come ASU1  
   SELECT   
  DISTINCT  
     NULL AS [POSITIONID]  
       ,CS.[DTTRIM]  
    ,CS.[DTRIFE]  
           ,[CS].[RETE]  
     ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
      END AS CODFIS  
    ,CS.[CODCONF]  
    ,[NUMPOL]  
    ,[CONTO]  
    ,case when (tipprod = 'CC' and rubr =' ') then '000'  
   else RUBR end as RUBR  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else CUSTGAR end as custgar  
  
    ,--CASE WHEN UL.SUBPROD IN ('VAR10','VAR5','VAR15') THEN 'ASU1' ELSE 'ASU2'  
    'ASU1' as TIPPROD  
    ,UL.[CODINT]  
    ,[CODPROD]  
    ,UL.[SUBPROD]  
    ,'NA' as MAF--UL.[MAF]  
    ,[CODABI]  
    ,case when (tipprod = 'CC' and rubr =' ') then '0'  
   else PCTKEY end as pctkey  
    ,[DESTIT]  
    ,SUM(UL.[CTV]) OVER (partition by UL.codConf) as CTV  
    ,[PARTVIA]  
    ,[PARTVIAAL]  
    ,[DTSOTTOS]  
    ,[RENDINIZ]  
    ,[RENDANNO]  
    ,[VALORE]  
    ,UL.[SUBSET]  
    ,[CVN]  
    ,[SALRISC]  
    ,'NA' as ISIN  
   FROM (select * from [C6StagingPeriodico].[WSEICS]   
where [DTTRIM] = @dtTrime ) AS CS   
--   JOIN [C6Mart].[CONTRATTOSEI] AS C6   
join  
(SELECT  
  Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
 FROM  
        C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
  
  ON CS.RETE = C6.RETE   
  AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
   JOIN C6STAGINGPERIODICO.WSEIUL AS UL  
  ON CS.CODCONF = UL.CODCONF  
  AND CS.DTTRIM = UL.DTTRIM  
   WHERE CS.[DTTRIM] = @dtTrime  
      --AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > c6martperiodico.gettrimestre2(c6martperiodico.gettrimestre2(getdate(),1),0)  
       -- Atringali C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
       --     AND ISNULL(C6.DATA_FINEAVANZATO,'99991231') > C6MARTPERIODICO.GETTRIMESTRE(GETDATE(),0)  
  
   --V I KE, KS,KW LI RECUPERO DALLA WSEIUL  
   AND (  
    CS.SUBPROD  IN ('K1','KE','KS','KW') and ul.subprod in('VAR5','VAR10','VAR15','CL05','LIQUI')   
    OR   
    (CS.SUBPROD  IN ('K2','K3','K4','K5','K6','K7'))   
    --OR  
    --(CS.SUBPROD IN ('K1') AND UL.SUBPROD IN ('CL05'))  
   )  
AND C6.UltimoAperto = 1       
  
--inizio intervento per Omnia linea Self  
  
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,sum(CTV) as CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,sum(VALORE) as VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '000'  
  else RUBR end as RUBR  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else CUSTGAR end as custgar  
  ,'GP' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF --UL.MAF  
  ,CODABI  
  ,case when (GP.ISIN in('EURO00000009', 'EURO10000007') and rubr =' ') then '0'  
  else PCTKEY end as pctkey  
  ,DESTIT  
  ,GP.CTV as CTV  
--INIZIO LAST INTERVENTO OMNIA    
--  ,PARTVIA  
--  ,PARTVIAAL  
  ,0.00 AS PARTVIA  
  ,0 AS PARTVIAAL  
--FINE LAST INTERVENTO OMNIA    
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,GP.CTV AS VALORE  
  ,'' AS SUBSET --?  
  ,CVN  
  ,SALRISC  
  ,GP.ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')) AS CS  
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
  
    JOIN C6STAGINGPERIODICO.WSEIGP AS GP  
   ON CS.CODCONF = GP.CODCONF  
   AND CS.DTTRIM = GP.DTTRIM  
   AND CS.SUBPROD = GP.CODLINEA  
    WHERE CS.DTTRIM =@dtTrime  
 AND C6.UltimoAperto = 1  
--inizio esclusione isin a null emanuele  
 and GP.ISIN is not null  
--fine esclusione isin a null emanuele  
 ) a  
   
GROUP BY  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
  
--INIZIO LAST INTERVENTO OMNIA    
UNION ALL  
  
SELECT  
 POSITIONID  
 ,DTTRIM  
 ,DTRIFE  
 ,RETE  
 ,CODFIS  
 ,CODCONF  
 ,NUMPOL  
 ,CONTO  
 ,RUBR  
 ,custgar  
 ,TIPPROD  
 ,CODINT  
 ,CODPROD  
 ,SUBPROD  
 ,MAF  
 ,CODABI  
 ,pctkey  
 ,DESTIT  
 ,CTV  
 ,PARTVIA  
 ,PARTVIAAL  
 ,DTSOTTOS  
 ,RENDINIZ  
 ,RENDANNO  
 ,VALORE  
 ,SUBSET  
 ,CVN  
 ,SALRISC  
 ,ISIN  
FROM  
 (  
 SELECT distinct  
  NULL AS POSITIONID  
  ,CS.DTTRIM  
  ,CS.DTRIFE  
  ,CS.RETE  
  ,CASE  
  WHEN CS.CODMAN ='' THEN CS.CODFIS  
  ELSE 'FF@'+CS.CODMAN  
  END AS CODFIS  
  ,CS.CODCONF  
  ,NUMPOL  
  ,CONTO  
  ,RUBR  
  ,CUSTGAR  
  ,'GE' as TIPPROD  
  ,CODINT  
  ,CODPROD  
  ,SUBPROD  
  ,'NA' as MAF   
  ,CODABI  
  ,PCTKEY  
  ,DESTIT  
  ,0.00 AS CTV  
  ,PARTVIA  
  ,PARTVIAAL  
  ,DTSOTTOS  
  ,RENDINIZ  
  ,RENDANNO  
  ,0.00 AS VALORE  
  ,'' AS SUBSET   
  ,0.00 as CVN  
  ,SALRISC  
  ,'NA' as ISIN  
 FROM (select * from C6StagingPeriodico.WSEICS   
 WHERE DTTRIM = @dtTrime  
 and   subprod in ('L191', 'L192')  
 and   partvia <> 0.00) AS CS   
 join  
 (SELECT  
   Rete, Cod_Fiscale, Data_FineAvanzato, ROW_NUMBER() OVER(PARTITION BY Rete, Cod_Fiscale ORDER BY Data_FineAvanzato) AS UltimoAperto  
  FROM  
   C6MartPeriodicoImmobiliare.RP_vContrattiPerGenerazioneReport) C6  
  
   ON CS.RETE = C6.RETE   
   AND (case when cs.codman <> '' then 'FF@'+ ltrim(rtrim(cs.codman)) else cs.codfis end) = C6.COd_fiscale  
 AND C6.UltimoAperto = 1) a  
--FINE LAST INTERVENTO OMNIA    
   
--fine intervento per Omnia linea Self  
  
  
--inizio inserimento su testquality emanuele  
--insert into C6MartPeriodicoImmobiliare.test_quality  
--select distinct rete, codfis, 'LINEA SELF ISIN A NULL SU TABELLA WSEIGP' from C6StagingPeriodico.WSEIGP where isin is null  
--fine inserimento su testquality emanuele  
  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'ST_SPB_CONTR_SINTESI' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO_IMMOBILIARE  
   WHERE  
    Nome = 'ST_SPB_CONTR_SINTESI'  
  )  
END  
  
  
  
  
  
  






GO
/****** Object:  StoredProcedure [dbo].[Aggiorna_Trimestrale_SEI_Processi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Aggiorna_Trimestrale_SEI_Processi]
	-- Add the parameters for the stored procedure here
		@Attivita as varchar(30) = NULL,
	@Semaforo as varchar(10) = NULL, --Y(ellow) --> in esecuzione, R(ed)= fallita,G(reen) = ok eseguita,W(hite) = mai eseguita 
	@Datainizio as datetime = NULL,
	@DataFine as datetime = NULL,
	@Note as text = NULL
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    --if (@Attivita is not null)


			
			  --update [dbo].[Cruscotto_Trimestrale_SEI_Processi]
			  --set (semaforo

			  --where attivita = @Attivita

	

END
GO
/****** Object:  StoredProcedure [dbo].[AMB_Cerca]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


    
CREATE  procedure [dbo].[AMB_Cerca] (@word1 varchar(max) = 'DMECST71D10H501E') as     
BEGIN    

declare @Datab varchar(300)
declare @query varchar(max)
declare @dbid smallint = 5
declare @numdb smallint = 1
select @numdb =  max(database_id) from  master.sys.databases

IF OBJECT_ID('tempdb.dbo.#temp1', 'U') IS NOT NULL DROP TABLE #temp1;
create table #temp1 (DatabaseName Varchar(300), SchemaName Varchar(300), NomeOggetto varchar(300), TipoOggetto varchar(300), create_date datetime, modify_date datetime)

while  (@dbid <= @numdb ) 
begin 
	
	SELECT  @Datab= name FROM master.sys.databases where database_id = @dbid
	

	if @Datab <> 'tempdb'
	begin
		set @query = 
		'Insert Into  #temp1 SELECT DISTINCT ''' + @Datab + ''' as DatabaseName, SCHEMA_NAME(schema_id) SchemaName, 
		o.name AS Object_Name,
		o.type_desc, create_date, modify_date
		FROM ' + @Datab+'.sys.sql_modules m
		INNER JOIN ' + @Datab+ '.sys.objects o
		ON m.object_id = o.object_id
		WHERE upper(m.definition) like ''%' + @word1 + '%'''

		begin try
			print @query
			exec (@query)
		end try

		begin catch
			Insert Into  #temp1 select name , 'si è verificato un errore',
			ISNULL( error_message(),'') 
			FROM master.sys.databases where database_id = @dbid
		end catch 
    end
	set @dbid = @dbid + 1
end

select 'sp_helptext ''' + SchemaName + '.' + NomeOggetto + '''' sp_helptext, * from #temp1 
order by NomeOggetto, TipoOggetto, DatabaseName, SchemaName		

drop table #temp1

END    
    
GO
/****** Object:  StoredProcedure [dbo].[AMB_InfoPdfTrim]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create  procedure [dbo].[AMB_InfoPdfTrim] ( @CF varchar(20) = 'DMECST71D10H501E') as   
BEGIN  
  Declare @dtTrime numeric = (select MAX(dttrim) from c6stagingPeriodico.wseips)

  Select 'PERIMETRO' APPO_CONTRATTI	, * From  C6StagingPeriodico.APPO_CONTRATTI				where Cod_Fiscale = @CF   
  Select 'FTP' GESTIONE_PDF_FTP			, * From  C6MartPeriodico.GESTIONE_PDF_FTP				where CodiceFiscale = @CF   
  Select 'FTP_HST' GESTIONE_PDF_FTP_HST		, * From  C6MartPeriodico.GESTIONE_PDF_FTP_HST			where CodiceFiscale = @CF   
  select distinct 'wseiPS' wseiPS, 'Profilo Scaduto' as DescrErr, *  from c6stagingPeriodico.wseips  where CodFis = @CF and dttrim = @dtTrime  
  select distinct 'wseiDC' wseiDC, case tipolett when  '0' then 'RFA=0' when '6' then 'RFA Minus' when '2' then 'BLACKLIST RFA MINUS CLIENTE SEI E IMMOBILIARE' when 'A' then 'Profilo EC' END AS  DescrErr, *  from c6stagingPeriodico.wseiDC  where CodFis = @CF and dttrim = @dtTrime and TIPOLETT not in ('R','S')
  Select 'ExcludedList' ExcludedList, * from [C6MartPeriodico].[ExcludedList] e where e.codicefiscale = @CF
END
GO
/****** Object:  StoredProcedure [dbo].[AMB_InfoTRIM]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create  procedure [dbo].[AMB_InfoTRIM] ( @CF varchar(20) = 'DMECST71D10H501E') as 
BEGIN
  Select 'X' GESTIONE_PDF_FTP			, * From  C6Mart.GESTIONE_PDF_FTP						where CodiceFiscale	 = @CF   
  Select 'X' vInfoCliente_PROD			, chiaveClientePB, codFis, pIva, rete, codiceContratto, StatoContratto, Agente, chiavePb, NomePb, CognomePb, * From  consuni.consulenzaunica.dbo.vinfocliente		where (CodFis = @CF  or Piva= @CF)
  Select 'X' gestione_email				, * From  C6Mart.gestione_email							where Cod_Fiscale		= @CF   
  Select 'X' GESTIONE_PDF_FTP			, * From  C6MartPeriodico.GESTIONE_PDF_FTP				where CodiceFiscale = @CF   
  Select 'X' GESTIONE_PDF_FTP_HST		, * From  C6MartPeriodico.GESTIONE_PDF_FTP_HST			where CodiceFiscale = @CF   
  Select 'X' ContrattiPretrimestrale	, * From  C6StagingPeriodico.ContrattiPretrimestrale	where Cod_Fiscale = @CF   
  Select 'X' APPO_CONTRATTI				, * From  C6StagingPeriodico.APPO_CONTRATTI				where Cod_Fiscale = @CF   
  Select 'X' CONTRATTOSEI				, * From  C6MartPeriodico.CONTRATTOSEI					where Cod_Fiscale = @CF   
  Select 'X' ANAG_CLIENTI				, * From  C6MartPeriodico.ANAG_CLIENTI					where Cod_Fiscale = @CF   
  Select 'X' controllo_trimestrale		, * From  C6MartPeriodico.controllo_trimestrale			where Cod_Fiscale = @CF   
  --c6martperiodico.gestione_zip_ftp zip
  Select 'X' CRUSCOTTO_CONTRATTISEI		, * From  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI		where CodiceFiscale = @CF   
  Select 'X' Popola_PiramideModello		, * From  C6StagingPeriodico.Popola_PiramideModello		where Cod_Fiscale = @CF   
  Select 'X' RP_InfoCliente				, * From  C6STAGINGPERIODICO.RP_InfoCliente				where (CodFis = @CF or piva = @CF   )
  Select 'X' ANAG_CLIENTI				, * From  C6MartPeriodico.ANAG_CLIENTI		            where Cod_Fiscale = @CF
  Select 'X' PATRIMONIO				    , * From  c6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio_perc	 where Cod_Fiscale = @CF
END
GO
/****** Object:  StoredProcedure [dbo].[AMB_VerificaLettere]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--INFORMAZIONI UTILI 

--La vista vPatrimoniobfAggregato_senzaNobPreZ riporta i dati del portafoglio del cliente su
--cui viene eseguito il check di superamenteo della soglia di 50K. Questa non corrisponde 
--all'intero patrimonio del cliente (che è invece presente sulla  vPatrimoniobfAggregato)
--ma i soli prodotti che sono inclusi nel servizio SEI, per cui questi sono i soli prodotti
--che contribuiscono al superamento della soglia

----TABELLA DI LOG LETTERE DI BENVENUTO (VIENE TRONCATA A OGNI LANCIO)
--select * 
--from LOG_ESECUZIONE
--order by Inizio desc

----UPDATE PER PASSARE DA SEI IN ATTIVAZIONE A SEI ATTIVATO (INSERIRE LA DATA DI GENERAZIONE DELLA LETTERA DI BENVENUTO)
--select top 100 * 
----update tab set dtvalid = '2024-05-09 21:29:02.817'
--from Consuni.ConsulenzaUnica.dbo.contratto tab
--where chiaveclientepb= 1713909
 
--PER TROVARE LA DATA DI GENERAZIONE CONSULTARE LA TABELLA c6mart.gestione_pdf_ftp
--select * from c6mart.gestione_pdf_ftp where CodiceFiscale=''

-- exec dbo.AMB_VerificaLettere 'MRNLSN62C09L424J'

CREATE procedure [dbo].[AMB_VerificaLettere] ( @cf varchar(20) = 'DMECST71D10H501E') as 
BEGIN
	--DECLARE @cf VARCHAR(16) = 'VCCMHL75S29D612I'
	DECLARE @DataGenerazione varchar(20)

	print 'Caso: ' + @cf

	-- Controllo se è stato stampato nella tabella gestione_pdf_ftp
	IF EXISTS (SELECT 1 FROM c6mart.gestione_pdf_ftp WHERE codicefiscale = @cf)
	BEGIN
		select @DataGenerazione = convert(varchar, DataGenerazione, 103) from c6mart.gestione_pdf_ftp where CodiceFiscale=@cf
		PRINT 'Lettera di Benvenuto Stampata nella tabella gestione_pdf_ftp'
			+ ' (' + @DataGenerazione + ')'
	END
	ELSE
	BEGIN

		PRINT 'ERRORE: Lettera di Benvenuto Non Stampata: Controllo nella rp_vcontrattipergenerazionereport'
		-- Controllo nella tabella rp_vcontrattipergenerazionereport se non trovato in gestione_pdf_ftp
		IF EXISTS (SELECT 1 FROM c6mart.rp_vcontrattipergenerazionereport WHERE cod_fiscale = @cf)  --SELECT * FROM c6mart.rp_vtuttiicontratti 
		BEGIN
			PRINT 'Codice fiscale trovato nella tabella rp_vcontrattipergenerazionereport'
		END
		ELSE
		BEGIN
			PRINT 'ERRORE: Codice fiscale non trovato in entrambe le tabelle ( gestione_pdf_ftp e rp_vcontrattipergenerazionereport)'
		END
	END
	-- Fine controllo

	--Fine controllo se è stato stampato

	--controllo se è nella tabella contratti da escludere
		  IF EXISTS (SELECT 1 FROM C6Mart.Contratti_Da_Escludere tab WHERE cod_fiscale = @cf)  
			PRINT 'Il contratto è inserito in una lista di contratti da escludere C6Mart.Contratti_Da_Escludere'
			ELSE IF EXISTS (SELECT 1 FROM C6Mart.tbNotAllocatedResources where COD_FISCALE = @cf)
			PRINT 'Il contratto è inserito in una lista di contratti da escludere C6Mart.tbNotAllocatedResources'
			ELSE
			PRINT 'Il contratto non è inserito in una lista di contratti da escludere' 
	--fine controllo se è nella tabella contratti da escludere

	--controllo nella rp_vtuttiicontratti

	DECLARE @condizioneNonSoddisfatta NVARCHAR(MAX) = ''

	IF NOT EXISTS (
		SELECT 1 
		FROM c6mart.rp_vtuttiicontratti 
		WHERE Cod_Fiscale = @cf
	)
	BEGIN
		SET @condizioneNonSoddisfatta = 'ERRORE: Cod_Fiscale non trovato nella tabella rp_vtuttiicontratti'
	END
	ELSE
	BEGIN
		SELECT 
			@condizioneNonSoddisfatta = 
				CASE 
					WHEN cod_agente  IN ('015126') THEN @condizioneNonSoddisfatta + 'cod_agente non soddisfatta; '
					WHEN InvioBenvenuto = 'S' THEN @condizioneNonSoddisfatta + 'InvioBenvenuto non soddisfatta; '
					WHEN ISNULL(RisorseNa, 'N') = 'S' THEN @condizioneNonSoddisfatta + 'RisorseNa non soddisfatta; verifica la C6Staging.rp_Consulenza (Se manca qui metti in sessione) e C6staging.Spb_Contr_Sintesi (Se manca qui problema Servizi)'
					WHEN ISNULL(NumRevoche, 0) <> 0 THEN @condizioneNonSoddisfatta + 'NumRevoche non soddisfatta; '
					WHEN (
						DATEDIFF(d, Data_Perf, GETDATE()) < CAST(dbo.getParametro('NUMGIORNIDALPERF_REP') AS INT) 
						AND cod_agente <> '015312'
					) THEN @condizioneNonSoddisfatta + 'Data_Perf non soddisfatta; '
					WHEN Cod_Fiscale NOT IN (SELECT COD_FISCALE FROM C6Mart.PIRAMIDE_MOD) THEN @condizioneNonSoddisfatta + 'Cod_Fiscale non presente in PIRAMIDE_MOD; '
					ELSE @condizioneNonSoddisfatta
				END
		FROM c6mart.rp_vtuttiicontratti 
		WHERE Cod_Fiscale = @cf
	END

	IF @condizioneNonSoddisfatta <> ''
	BEGIN
		PRINT 'ERRORE: Condizione/e non soddisfatta/e: ' + @condizioneNonSoddisfatta
	END
	ELSE
	BEGIN
		PRINT 'Cliente presente nella rp_vtuttiicontratti con tutte le condizioni soddisfatte.'
	END

	--fine controllo nella rp_vtuttiicontratti

	--controllo chave cliente duplicata 

	IF EXISTS (
		SELECT 1
		FROM consuni.consulenzaunica.dbo.vinfocliente
		WHERE (codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf))) AND tipologia = 'A'
		HAVING COUNT(DISTINCT rete) > 1
	)
	BEGIN
		PRINT 'ERRORE: Chiavecliente duplicata'
			SET NOCOUNT ON;
		SELECT 'vinfocliente' _vinfocliente_PDC, *
		FROM consuni.consulenzaunica.dbo.vinfocliente
		WHERE (codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf))) AND tipologia = 'A'
		SET NOCOUNT OFF;
	END
	ELSE
	BEGIN
		PRINT 'Nessuna ChiaveDuplicata sulla VinfoCliente'
	   -- SET NOCOUNT ON;
	   -- SELECT 'vinfocliente' _vinfocliente_PDC, *
	   -- FROM consuni.consulenzaunica.dbo.vinfocliente
	   -- WHERE (codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf))) AND tipologia = 'A'
	   -- SET NOCOUNT OFF;
	END

	--fine controllo chiavecliente duplicata 
	-- Controllo per stato contratto non valido
	IF EXISTS (
		SELECT 1
		FROM consuni.consulenzaunica.dbo.vinfocliente
		WHERE (codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf)))
			AND tipologia = 'A'
			AND statocontratto NOT IN ('SEI', 'AVANZATOBASE', 'REVOCASEI', 'DADVISORY')
	)
	BEGIN
		PRINT 'ERRORE: Stato contratto non valido'
	END
	ELSE
	BEGIN
		PRINT 'Stato contratto valido'
    
	END
	--Fine Controllo per stato contratto non valido



	DECLARE @dtFirmaSEI DATETIME
	SET @dtFirmaSEI = (
		SELECT MAX(dtFirmaSEI)
		FROM consuni.consulenzaunica.dbo.vinfocliente
		WHERE (codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf))) AND dtFirmaSEI IS NOT NULL
	)

	DECLARE @currentDate DATETIME
	SET @currentDate = GETDATE()

	-- Controllo per data di firma
	IF @dtFirmaSEI IS NULL
	BEGIN
		PRINT 'ERRORE: Nessuna data di firma trovata per il codice fiscale specificato.'
	END
	ELSE IF DATEADD(DAY, 15, @dtFirmaSEI) > @currentDate
	BEGIN
		PRINT 'ERRORE: Non sono ancora trascorsi 15 giorni dalla firma.'
	END
	ELSE
	BEGIN
		PRINT 'La firma è stata apposta da più di 15 giorni.'
		-- Fine controllo data Firma
	END

	-- CURSORI Generazione Lettere SEI e DIRECT
			declare @sogliaRfa as decimal (18,0)   = (select valore from [CONSUNI].[ConsulenzaUnica].[dbo].[param] where parametro = 'sogliaRFA')
			declare @sogliaRfaDB as decimal (18,0) = 0.0  
			declare @data_perf as datetime  = '20200401'

			--  --  --  CURSORE SEI -- -- --

				  SELECT distinct  
						 'CURSORE SEI' CURSORE_SEI
					   , '--' CONDIZIONI
					   , Case When nar.rete is null Then 'OK' Else 'KO'End CONDIZIONE_AllocatedResources 
					   , Case when ((patrimonioBF.ctv >= @sogliaRFA or contratti.data_perf < @data_perf) or (patrimonioBF.ctv >= 25000 and contratti.data_inizioavanzato < '20240412')) 
							  then 'OK' 
							  Else 'KO'
						 End CONDIZIONE_Soglie_e_Date
					   , @sogliaRFA  sogliaRFA_RIFERIMENTO
					   , patrimonioBF.ctv
					   , @data_perf data_perf_RIFERIMENTO
					   , contratti.data_perf
					   , contratti.data_inizioavanzato

					   , '---' DATI
				  ,contratti.Rete  
				  ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete  
				  ,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  
				  ,contratti.Cod_Fiscale CodiceFiscale  
				  ,clienti.Cognome CognomeCliente  
				  ,clienti.nome NomeCliente  
				  ,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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  
				  ,contratti.CodiceContratto CodiceContratto  
				  ,contratti.tip_contratto--,2 as tip_contratto--  
				  ,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker  
				  ,1 as idReportDiagnosi  
				  ,'Diagnosi' as descrizioneDiagnosi  
				  ,-1 as idReportMonitoraggio  
				  ,719 as idModellotMonitoraggio  
				  ,'Monitoraggio' as descrizioneMonitoraggio  
				  ,contratti.AdesioneSuccessivaAvanzato 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,  
				  0 As NoMonitoraggio,  
				  CASE   
					WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0   
				  END AS ContrattoOld,  
				  0 AS IdReportPDFDiagnosi,       
				  0 AS IdReportPDFMonitoraggio ,  
				  ---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi  
				  CASE   
					WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0   
				  END AS ContrattoOld,  
				  0 AS IdReportPDFDiagnosi,       
				  0 AS IdReportPDFMonitoraggio,  
				  0 as flagnqp,  
				  0 as flagprlrde,  
				  -- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore  
				  ------0 as Flgprof,  
				  0 as flagpg  
				  ----------------------------------------------------- fine 09/3/2018   
				  ,  
				  case contratti.TipoConsulenza  
				   when 'P' then 'S'  
				   when 'D' then 'N'  
				   else 'N'  
				  end as Flgprof  
  
				 from C6Mart.RP_vContrattiPerGenerazioneReport contratti  
				 left join C6Mart.ANAG_PROMOTORI promotori  
				  on contratti.Rete = promotori.Rete  
				  and contratti.Cod_Agente = promotori.Id_Promotore  
				 left join  C6Mart.tbNotAllocatedResources as nar --pk  
				  on contratti.Rete = nar.Rete    --pk  
				  and contratti.Cod_Fiscale = nar.Cod_Fiscale --pk  
				 left join C6Mart.ANAG_CLIENTI clienti  
				  on contratti.Rete = clienti.Rete  
				  and contratti.Cod_Fiscale = clienti.Cod_Fiscale  
				 INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare  
				  on contratti.Rete = patrimonioImmobiliare.Rete  
				  and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale   
				 left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi  
				  on contratti.Rete = patrimonioTerzi.Rete  
				  and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale   
				 left outer join C6Mart.MIFID MIFID  
				  on contratti.Rete = MIFID.Rete  
				  and contratti.Cod_Fiscale = MIFID.Cod_Fiscale  
				 left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset  
				  on contratti.Rete = PatrNonRapprAsset.Rete  
				  and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale  
				 left outer join C6Mart.vNumeroIntermediari numIntermediari  
				  on contratti.Rete = numIntermediari.Rete   
				  and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale  
				 left outer join C6Mart.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'    
				 left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI  
				  on contratti.Rete = PARTITEVIAGGIANTI.RETE  
				  and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE  
				 --left join c6mart.vcontrattic6 vcontr  
				 --on vcontr.codicecontratto  =  contratti.codicecontratto  
					where 1=1  
					  and contratti.Rete in ('F', 'S', 'W')
					  and contratti.Cod_Fiscale = @CF
					  and contratti.tip_contratto != 3
  
  
			-- -- -- DIRECT -- -- --
				 SELECT distinct 
						 'CURSORE DIRECT' CURSORE_DIRECT
					   , '--' CONDIZIONI
					   , Case When nar.rete is null Then 'OK' Else 'KO'End CONDIZIONE_AllocatedResources 
					   , Case when exists (select 1 from c6staging.VAR_ADEGUATEZZA_INDICATORI ind Where ind.CODICE_FISCALE =  contratti.Cod_Fiscale and ind.rete =  contratti.rete)  Then 'OK' Else 'KO'End CONDIZIONE_ADEGUATEZZA_INDICATORI  
					   , Case when (patrimonioBF.ctv >= @sogliaRFADB and vcontr.data_perf < @data_perf) 
							  then 'OK' 
							  Else 'KO'
						 End CONDIZIONE_SoglieDate
					   , @sogliaRFAdb  sogliaRFA_RIFERIMENTO
					   , patrimonioBF.ctv
					   , @data_perf data_perf_RIFERIMENTO
					   , contratti.data_perf

					   , '---' DATI
             
				  , contratti.Rete  
				  ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Investments' END NomeRete  
				  ,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  
				  ,contratti.Cod_Fiscale CodiceFiscale  
				  ,clienti.Cognome CognomeCliente  
				  ,clienti.nome NomeCliente  
				  ,CASE WHEN isnull( MIFID.Profilo_Ass,0) = 0 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  
				  ,contratti.CodiceContratto CodiceContratto  
				  ,contratti.tip_contratto  
				  ,case when contratti.tip_contratto=3 then 6 else 5 end as idModelloDiagnosi --5 as idModelloDiagnosi aggiunta per Fideuram Direct / Direct Banker  
				  ,1 as idReportDiagnosi  
				  ,'Diagnosi' as descrizioneDiagnosi  
				  ,-1 as idReportMonitoraggio  
				  ,719 as idModellotMonitoraggio  
				  ,'Monitoraggio' as descrizioneMonitoraggio  
				  ,contratti.AdesioneSuccessivaAvanzato 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,  
				  0 As NoMonitoraggio,  
				  CASE   
					WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0   
				  END AS ContrattoOld,  
				  0 AS IdReportPDFDiagnosi,       
				  0 AS IdReportPDFMonitoraggio ,  
				  ---- aggiunti il 09/3/2018 con pubblicazione nuovo software gestione accorpamento lettere e servizi aggiuntivi  
				  CASE   
					WHEN (SELECT count(*) FROM c6mart.GESTIONE_PDF_FTP WHERE codicefiscale = contratti.cod_fiscale AND rete = contratti.Rete ) > 0 THEN 1 ELSE 0   
				  END AS ContrattoOld,  
				  0 AS IdReportPDFDiagnosi,       
				  0 AS IdReportPDFMonitoraggio,  
				  0 as flagnqp,  
				  0 as flagprlrde,  
				  -- modifica del 22/10/2018 - il flag professionale è più sotto- questo è un errore  
				  ------0 as Flgprof,  
				  0 as flagpg  
				  ----------------------------------------------------- fine 09/3/2018   
				  ,  
				  case contratti.TipoConsulenza  
				   when 'P' then 'S'  
				   when 'D' then 'N'  
				   else 'N'  
				  end as Flgprof  
  
				 from C6Mart.RP_vContrattiPerGenerazioneReport contratti  
				 left join C6Mart.ANAG_PROMOTORI promotori  
				  on contratti.Rete = promotori.Rete  
				  and contratti.Cod_Agente = promotori.Id_Promotore  
				 left join  C6Mart.tbNotAllocatedResources as nar --pk  
				  on contratti.Rete = nar.Rete    --pk  
				  and contratti.Cod_Fiscale = nar.Cod_Fiscale --pk  
				 left join C6Mart.ANAG_CLIENTI clienti  
				  on contratti.Rete = clienti.Rete  
				  and contratti.Cod_Fiscale = clienti.Cod_Fiscale  
				 INNER join C6Mart.vPatrimoniobfAggregato_SenzaNobPrez 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 C6Mart.vPatrimonioImmobAggregato patrimonioImmobiliare  
				  on contratti.Rete = patrimonioImmobiliare.Rete  
				  and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale   
				 left outer join C6Mart.vPatrimonioTerziAggregato patrimonioTerzi  
				  on contratti.Rete = patrimonioTerzi.Rete  
				  and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale   
				 left outer join C6Mart.MIFID MIFID  
				  on contratti.Rete = MIFID.Rete  
				  and contratti.Cod_Fiscale = MIFID.Cod_Fiscale  
				 left outer join C6Mart.vPatrimonioNonRappresentabileAsset PatrNonRapprAsset  
				  on contratti.Rete = PatrNonRapprAsset.Rete  
				  and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale  
				 left outer join C6Mart.vNumeroIntermediari numIntermediari  
				  on contratti.Rete = numIntermediari.Rete   
				  and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale  
				 left outer join C6Mart.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'    
				 left outer join C6Mart.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 C6Mart.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI  
				  on contratti.Rete = PARTITEVIAGGIANTI.RETE  
				  and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE  
				 left join c6mart.vcontrattic6 vcontr  
				 on vcontr.codicecontratto  =  contratti.codicecontratto  
					where 1=1  
					  and contratti.Rete in ('F', 'S', 'W')
					  and contratti.Cod_Fiscale = @CF
					  and contratti.tip_contratto = 3


	-- Tabelle di riferimento
		select '-vinfocliente' vinfocliente,* from consuni.consulenzaunica.dbo.vinfocliente where codfis=@cf
		select '-rp_vtuttiicontratti-' rp_vtuttiicontratti,* from c6mart.rp_vtuttiicontratti where Cod_fiscale=@cf
		select '-rp_vcontrattipergenerazionereport-' rp_vcontrattipergenerazionereport,* from c6mart.rp_vcontrattipergenerazionereport where Cod_Fiscale=@cf
		select '-gestione_email-' gestione_email,* from c6mart.gestione_email where Cod_Fiscale=@cf
		select '-gestione_pdf_ftp-' gestione_pdf_ftp,* from c6mart.gestione_pdf_ftp where CodiceFiscale=@cf
		select '-Contratti_Da_Escludere-' Contratti_Da_Escludere, * from C6Mart.Contratti_Da_Escludere where cod_fiscale=@cf
		select '-tbNotAllocatedResources-' tbNotAllocatedResources, * from C6Mart.tbNotAllocatedResources where COD_FISCALE = @cf
		select '-C6Staging.rp_Consulenza-' rp_Consulenza, * from C6Staging.rp_Consulenza where COD_FISCALE = @cf
		select '-C6staging.Spb_Contr_Sintesi-' Spb_Contr_Sintesi,* from C6staging.Spb_Contr_Sintesi where CODICEFISCALE = @cf
		select '-vPatrimoniobfAggregato-'  as Vista_PatrimoniobfAggregato, * from [C6Mart].[vPatrimoniobfAggregato] where COD_FISCALE = @cf
		union
		select  '-vPatrimoniobfAggregato_senzaNobPrez-' as Vista , * from [C6Mart].[vPatrimoniobfAggregato_SenzaNobPrez] where COD_FISCALE = @cf


END
GO
/****** Object:  StoredProcedure [dbo].[CERCA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 

--[CERCA] '%COD%','P','c6martperiodico'
CREATE procedure  [dbo].[CERCA]
	@testo varchar(500) = '',
	@tipo varchar(2) = '', 
	@schema varchar(500) = ''
    
	
AS
BEGIN
 
 
IF @tipo <> ''  AND @schema <> ''
	SELECT  SCHEMA_NAME(schema_id),* FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	AND SCHEMA_NAME(schema_id) = @schema
	AND type = @tipo 
	order by 1
	
IF @tipo <> ''  AND @schema = ''
	SELECT  SCHEMA_NAME(schema_id),* FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	--AND SCHEMA_NAME(schema_id) = @schema
	AND type = @tipo
		order by 1
		
IF @tipo = ''  AND @schema <> ''
	SELECT  SCHEMA_NAME(schema_id),* FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	AND SCHEMA_NAME(schema_id) = @schema
	--AND type = @tipo 
		order by 1
 
IF @tipo = ''  AND @schema = ''
	SELECT  SCHEMA_NAME(schema_id),* FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	--AND SCHEMA_NAME(schema_id) = @schema
	--AND type = @tipo 
	order by 1
--AF = funzione di aggregazione (CLR)
--C = vincolo CHECK
--D = DEFAULT (vincolo o valore autonomo)
--F = vincolo FOREIGN KEY
--FN = funzione scalare SQL
--FS = funzione scalare di assembly (CLR)
--FT = funzione valutata a livello di tabella assembly (CLR)
--IF = funzione SQL inline valutata a livello di tabella
--IT = tabella interna
--P = stored procedure SQL
--PC = stored procedure di assembly (CLR)
--PG = guida di piano
--PK = vincolo PRIMARY KEY
--R = regola (tipo obsoleto, autonoma)
--RF = procedura-filtro-replica
--S = tabella di base di sistema
--SN = sinonimo
--SO = oggetto sequenza
--SQ = coda di servizio
--TA = trigger DML assembly (CLR)
--TF = funzione valutata a livello di tabella SQL
--TR = trigger DML SQL
--TT = tipo tabella
--U = tabella (definita dall'utente)
--UQ = vincolo UNIQUE
--V = vista
--X = stored procedure estesa

END
GO
/****** Object:  StoredProcedure [dbo].[CERCA_FA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 

--[CERCA] '%COD%','P','c6martperiodico'
CREATE procedure  [dbo].[CERCA_FA]
	@testo varchar(500) = '',
	@tipo varchar(2) = '', 
	@schema varchar(500) = ''
    
	
AS
BEGIN
 
set @testo = '%' + @testo + '%'

IF @tipo <> ''  AND @schema <> ''
	SELECT  'sp_helptext ''' + SCHEMA_NAME(schema_id) + '.' + name + '''' sp_helptext, SCHEMA_NAME(schema_id) SchemaName, * FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	AND SCHEMA_NAME(schema_id) = @schema
	AND type = @tipo 
	order by 1
	
IF @tipo <> ''  AND @schema = ''
	SELECT  'sp_helptext ''' + SCHEMA_NAME(schema_id) + '.' + name + '''' sp_helptext, SCHEMA_NAME(schema_id) SchemaName, * FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	--AND SCHEMA_NAME(schema_id) = @schema
	AND type = @tipo
		order by 1
		
IF @tipo = ''  AND @schema <> ''
	SELECT  'sp_helptext ''' + SCHEMA_NAME(schema_id) + '.' + name + '''' sp_helptext, SCHEMA_NAME(schema_id) SchemaName, * FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	AND SCHEMA_NAME(schema_id) = @schema
	--AND type = @tipo 
		order by 1
 
IF @tipo = ''  AND @schema = ''
	SELECT  'sp_helptext ''' + SCHEMA_NAME(schema_id) + '.' + name + '''' sp_helptext, SCHEMA_NAME(schema_id) SchemaName, * FROM sys.objects WHERE object_id IN (SELECT id FROM syscomments WHERE text like @testo)
	--AND SCHEMA_NAME(schema_id) = @schema
	--AND type = @tipo 
	order by 1
--AF = funzione di aggregazione (CLR)
--C = vincolo CHECK
--D = DEFAULT (vincolo o valore autonomo)
--F = vincolo FOREIGN KEY
--FN = funzione scalare SQL
--FS = funzione scalare di assembly (CLR)
--FT = funzione valutata a livello di tabella assembly (CLR)
--IF = funzione SQL inline valutata a livello di tabella
--IT = tabella interna
--P = stored procedure SQL
--PC = stored procedure di assembly (CLR)
--PG = guida di piano
--PK = vincolo PRIMARY KEY
--R = regola (tipo obsoleto, autonoma)
--RF = procedura-filtro-replica
--S = tabella di base di sistema
--SN = sinonimo
--SO = oggetto sequenza
--SQ = coda di servizio
--TA = trigger DML assembly (CLR)
--TF = funzione valutata a livello di tabella SQL
--TR = trigger DML SQL
--TT = tipo tabella
--U = tabella (definita dall'utente)
--UQ = vincolo UNIQUE
--V = vista
--X = stored procedure estesa

END
GO
/****** Object:  StoredProcedure [dbo].[CHECK_INSERT_PRODOTTI_NON_A_CATALOGO]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[CHECK_INSERT_PRODOTTI_NON_A_CATALOGO]

as

truncate table c6stagingperiodico.spb_contr_sintesi_prodotti_NO_PID 
insert into c6stagingperiodico.spb_contr_sintesi_prodotti_NO_PID 
select *
from c6stagingperiodico.spb_contr_sintesi
where positionid is null
GO
/****** Object:  StoredProcedure [dbo].[CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SqlClassLibrary].[StoredProcedures].[CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT]
GO
/****** Object:  StoredProcedure [dbo].[CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE [dbo].[CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [SqlClassLibrary].[StoredProcedures].[CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT]
GO
/****** Object:  StoredProcedure [dbo].[Controlli_Mattina_PdC]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[Controlli_Mattina_PdC]
AS
BEGIN
drop table if exists #batch
create table #batch(
id int identity,
nomeBatch varchar(128)
)

insert into #batch values('CatalogoProdotti')
insert into #batch values('replicaMarketing')
insert into #batch values('AMPRO')
insert into #batch values('ClassiDiPrezzo')
insert into #batch values('ReplicaWasset')
insert into #batch values('TMD')
insert into #batch values('CalcolaVarNP')
insert into #batch values('FlussoRol')
insert into #batch values('ReplicaBasket')
insert into #batch values('ReplicaNAV')
insert into #batch values('W6CVNA')
insert into #batch values('MAC')
insert into #batch values('CalcolaVarNP_PtfCons')
insert into #batch values('Carica_PTFCONS_DatiFlussoMK')
insert into #batch values('ESEGUITI')
insert into #batch values('Flusso F')
insert into #batch values('FlussoPortafogli')
insert into #batch values('FlussoRol')
insert into #batch values('Perfezionamento')
insert into #batch values('ReplicaWNPTAB_APP')
insert into #batch values('RiallocazioneGuidataNA')
insert into #batch values('RDR')
insert into #batch values('replicaMonitoraggio')
insert into #batch values('AllineamentoMassivo_RiallocazioneGuidataNA')
insert into #batch values('ProdottiEsenti')
insert into #batch values('AllineamentoMassivo')
insert into #batch values('replicaW6LPST')
insert into #batch values('AllineamentoMassivo_RCM')
insert into #batch values('ReplicaClientiMovimentati')
insert into #batch values('CambioReteAmministrato')
insert into #batch values('ContrattoNuclei')
insert into #batch values('Movimentazione_Trimestrale')
insert into #batch values('CaricaListaIntermediari')
insert into #batch values('ContrattoSei')
insert into #batch values('ESTRAZIONE_SIMWEB')
insert into #batch values('ReplicaWassal')
insert into #batch values('ReplicaWKCCAT')
insert into #batch values('ReplicaWNPTAB')
insert into #batch values('ReplicaDichiarazioniPB')

--select * from #batch
drop table if exists #log_batch
create table #log_batch (
NomeBatch varchar(128),
Dtesecuzione datetime,
Stato varchar(200),
DtFineElaborazione datetime)

insert into #log_batch (NomeBatch,DtEsecuzione,Stato,DtFineElaborazione)
(SELECT NomeBatch,DtEsecuzione,Stato,DtFineElaborazione
FROM 	consuni.[ConsulenzaUnicaFL].[dbo].[logBatchGenerale] 
WHERE 	
CONVERT(DATETIME, CONVERT(DATE, DtEsecuzione))= CONVERT(DATETIME, CONVERT(DATE, GETDATE()))
--ORDER BY DTEsecuzione desc, nomebatch 

Union all

SELECT NomeBatch,DtEsecuzione,Stato,DtFineElaborazione
FROM 	consuni.[ConsulenzaUnicaFL].[dbo].[logBatchGenerale] 
WHERE 	
CONVERT(DATETIME, CONVERT(DATE, DtEsecuzione))= CONVERT(DATETIME, CONVERT(DATE, GETDATE()-1))
and CONVERT(DATETIME, CONVERT(DATETIME, DtEsecuzione))>CONVERT(DATETIME, CONVERT(DATETIME,dateadd(hh,0,GETDATE()-1)))
--ORDER BY DTEsecuzione desc, nomebatch 
)


--select * from #log_batch

select id,b.NomeBatch,Dtesecuzione,Stato,DtFineElaborazione 
into #def
from #batch b left join #log_batch l on b.nomeBatch=l.NomeBatch order by id 

SELECT DISTINCT
	b.id,b.NomeBatch,b.Dtesecuzione,b.Stato,b.DtFineElaborazione 
FROM #def b
WHERE b.Dtesecuzione = (SELECT MAX(Dtesecuzione) FROM #def c WHERE c.nomeBatch = b.nomeBatch ) or b.Dtesecuzione is null
ORDER BY b.id


END




GO
/****** Object:  StoredProcedure [dbo].[CONTROLLO_COMPLESSITA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[CONTROLLO_COMPLESSITA]

as

begin

declare @cf as varchar(16)
set @cf = 'CSRRNZ50R55I802I'


SELECT max(a.complex) as complexMaxInPTF
FROM C6STAGINGPERIODICO.CATITEMREF A INNER JOIN 
C6MARTPERIODICO.PATRIMONIO_Bf B
ON A.CATALOGUEID = SUBSTRING(B.POSITION_ID,1,57) 
WHERE B.COD_FISCALE=@cf


SELECT max(a.complex) as complexMaxInPTFGiorn
FROM C6STAGING.CATITEMREF A INNER JOIN 
C6MARTPERIODICO.PATRIMONIO_Bf B
ON A.CATALOGUEID = SUBSTRING(B.POSITION_ID,1,57) 
WHERE B.COD_FISCALE=@cf

SELECT cod_profec as complexProfiloCliente
FROM C6STAGINGPERIODICO.wSEIAN2
WHERE CODFIS=@cf
AND DTTRIM =20110930



SELECT *
FROM C6STAGINGPERIODICO.CATITEMREF A INNER JOIN 
C6MARTPERIODICO.PATRIMONIO_Bf B
ON A.CATALOGUEID = SUBSTRING(B.POSITION_ID,1,57) 
WHERE B.COD_FISCALE=@cf


SELECT *
FROM C6STAGING.CATITEMREF A INNER JOIN 
C6MARTPERIODICO.PATRIMONIO_Bf B
ON A.CATALOGUEID = SUBSTRING(B.POSITION_ID,1,57) 
WHERE B.COD_FISCALE=@cf

end

GO
/****** Object:  StoredProcedure [dbo].[CopyObjectFromSchema]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--[dbo].[CopyObjectFromSchema]  'C6Mart', 'tt4', 'RP_'
CREATE procedure [dbo].[CopyObjectFromSchema] 
@FromSchemaName NVARCHAR(50),
@ToSchemaName NVARCHAR(50),
@LikeName NVARCHAR(MAX)
AS
Begin
DECLARE @ObjCopyName VARCHAR(MAX);
DECLARE @ObjContent nvarchar(MAX);
DECLARE @ObjIDSchemaTo INT
if (@FromSchemaName is null Or @FromSchemaName = '' Or 
    @ToSchemaName is null Or @ToSchemaName = '')
begin
   RAISERROR ('Valorizzare entrambi gli Schema Name!', -- Message text.
               16, -- Severity.
               1 -- State.
               );
   return
end


IF (NOT EXISTS (SELECT * FROM sys.schemas WHERE name = @ToSchemaName)) 
BEGIN
    EXEC ('CREATE SCHEMA ' + @ToSchemaName + ' AUTHORIZATION [dbo]')
END
SET @ObjIDSchemaTo = (SELECT SCHEMA_ID FROM sys.schemas WHERE name= @ToSchemaName)

DECLARE TABLECURSOR CURSOR FOR
SELECT [NAME] FROM sys.objects WHERE [TYPE] in (N'U') and schema_id = (SELECT SCHEMA_ID FROM sys.schemas WHERE name= @FromSchemaName)
AND [NAME] LIKE '%' + @LikeName + '%'

OPEN TABLECURSOR
FETCH NEXT FROM TABLECURSOR INTO @ObjCopyName
WHILE @@FETCH_STATUS = 0
BEGIN  --STORED PROC LOOP
     BEGIN TRY
     PRINT @ObjCopyName
     IF (EXISTS (SELECT * FROM sys.objects WHERE name = @ObjCopyName and schema_id = (SELECT SCHEMA_ID FROM sys.schemas WHERE name= @ToSchemaName))) 
        BEGIN
           execute dbo.DropObject @ObjCopyName, @ObjIDSchemaTo
        END
     Declare @statement nvarchar(max)
     Set @statement = 'SELECT * INTO ' + @ToSchemaName + '.' + @ObjCopyName + ' FROM ' + @FromSchemaName + '.' + @ObjCopyName + ' WHERE 1=2'
     print @statement
     execute sp_executeSQL @statement
     END TRY
     BEGIN CATCH
        SELECT  ERROR_MESSAGE()
     END CATCH
    FETCH NEXT FROM TABLECURSOR INTO @ObjCopyName
END 
CLOSE TABLECURSOR;
DEALLOCATE TABLECURSOR;

DECLARE PROCCURSOR CURSOR FOR
    SELECT NAME, REPLACE (OBJECT_DEFINITION(OBJECT_ID), @FromSchemaName, @ToSchemaName)
    FROM sys.objects WHERE [TYPE] in (N'P', N'PC', N'FN', N'V') and schema_id = (SELECT SCHEMA_ID FROM sys.schemas WHERE name= @FromSchemaName)
    AND NAME LIKE '%' + @LikeName + '%' ORDER BY [TYPE]

OPEN PROCCURSOR
FETCH NEXT FROM PROCCURSOR INTO @ObjCopyName, @ObjContent
WHILE @@FETCH_STATUS = 0
BEGIN  --STORED PROC LOOP
     BEGIN TRY
     PRINT @ObjCopyName
     PRINT @ObjContent
     IF (EXISTS (SELECT * FROM sys.objects WHERE name = @ObjCopyName and schema_id = (SELECT SCHEMA_ID FROM sys.schemas WHERE name= @ToSchemaName))) 
        BEGIN
           execute dbo.DropObject @ObjCopyName, @ObjIDSchemaTo
        END
     execute sp_executeSQL @statement = @ObjContent
     END TRY
     BEGIN CATCH
      
        SELECT  ERROR_MESSAGE(), @ObjCopyName, @ObjContent
     END CATCH
    FETCH NEXT FROM PROCCURSOR INTO @ObjCopyName, @ObjContent
END --STORED PROC LOOP
CLOSE PROCCURSOR;
DEALLOCATE PROCCURSOR;



END

GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO









-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport


	-- mod 11/7/2018 - vogliamo meno report
      --select top 220
		--select top 100
	-- fine mod 11/7/2018
-- mod 16/4/2019 - vogliamo più report :)
select top 0

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
	(select rete + codicefiscale from [dbo].[Incl_SpecCdT_Campione] )

-- modifica del 21/9/2018 per escludere dal campione i cf con risorse NA 
--  la creazione della tabella CLIENTI_RISORSE_NA è stata inserita nel mart

and  a.rete+a.cod_fiscale not in (select distinct rete + cod_fiscale from [C6MartPeriodico].[CLIENTI_RISORSE_NA] )

-- fine modifica del  21/9/2018

--aggiunta 13/06/2022
select distinct *
into #campioneNoDuplicati
from appocampionereport



truncate table appocampionereport

insert into appoCampioneReport
select * from #campioneNoDuplicati
--fine aggiunta	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3
drop table #campioneNoDuplicati




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END
























GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20160119]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20160119]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select rete,cod_fiscale
from consevo_periodico.ConsulenzaEvoluta.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc

insert into appocampionereport

select top 175
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
	('FTGLMRA30A04A409N'
	,'FBZZGPP46C18A409M'
	,'FCCRGPP54B27H307C'
	,'FCRNCST86C56G062N'
	,'FGHNDNL46L21G007R'
	,'FGNSMNL58D47H037E'
	,'FNAIGNE40H10B463Q'
	,'FNCLLCU74M70L682S'
	,'FPRNNTN32B06E003M'
	,'FPRTNMR29R62L219X'
	,'FRLDLCN35B18A409N'
	,'FRPILNI47M11L746H'
	,'FSNEPMR60S24I976R'
	,'FTBRFRZ68L20H037P'
	,'FTBRGBR37R22G062P'
	,'FTBRMRZ65H27H037W'
	,'FTTTGDE24D04A409P'
	,'FBRLGCR25P13B885H'
	,'FMRNNZE22A01F205W'
	,'FMRNGMR53P60F205P'
--casi test richiesti da scirocco 10/12/2015 per FOI80
    ,'FBLNMGR55B56D332B'
    ,'FDNGGSN33A68B910W'
    ,'FFVRPLA56S48Z614J'
    ,'FDLLGNN47C09F952J'
    ,'FDBNMRA65E67L049H'
    ,'FLNZMLN35C46A564D'
    ,'FCLNGNN47P06E606N'
    ,'FBCHMTN58B07E398F'
    ,'SSCSCMD53D12F052Q'
--CASI TEST Rossi Rosanna: Segnalazione di errata rendicontazione nel report di monitoraggio SEI - tt T-1205349-F4W8
    ,'FRSSRNN48C44A783Z'
-- CASI TEST PER CF CHE HANNO PRODOTTI DI BANCHE IN DEFAULT
,'FBNCMHL27S63I760X'
,'FCNTRME55S24B853O'
,'FCRMVGN49S53F791G'
,'FCRSGPT53M02D548K'
,'FGNAGLL33E53A393A'
,'FMGNLRI75A60H901Z'
,'FMGNLRI75A60H901Z'
,'FMNZMNL46C62A393V'
,'FMRNMNG53P46H294F'
,'FNTRMRZ67T17H223L'
,'FPLZLRA40T54L390R'
,'FPRTCHR52L69H017M'
,'FSRVDDE31L44A191J'
, 'SBNOSDR61T03F205W'
,'SBNOSDR61T03F205W'
,'SCLCLNE41M47H434D'
,'SCLCLNE41M47H434D'
,'SCPPBRN41H45C773S'
,'SMGNCRN32R54G547I'
,'SMZZCRL31P55G916D'
,'SSVLSFN64B08A390G'

)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END














GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20160318]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO














-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20160318]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select rete,cod_fiscale
from consevo_periodico.ConsulenzaEvoluta.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 175
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc

------------------------------------------------------------------------------LUCA
--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c39 > 0
--order by b.tip_contratto desc, tot desc

--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c45 > 0
--order by b.tip_contratto desc, tot desc


--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c56 > 0
--order by b.tip_contratto desc, tot desc


--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c57 > 0
--order by b.tip_contratto desc, tot desc


--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c58 > 0
--order by b.tip_contratto desc, tot desc






--------------------------------------- FINE LUCA


insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
	('FTGLMRA30A04A409N'
	,'FBZZGPP46C18A409M'
	,'FCCRGPP54B27H307C'
	,'FCRNCST86C56G062N'
	,'FGHNDNL46L21G007R'
	,'FGNSMNL58D47H037E'
	,'FNAIGNE40H10B463Q'
	,'FNCLLCU74M70L682S'
	,'FPRNNTN32B06E003M'
	,'FPRTNMR29R62L219X' --co non più attivo
	,'FRLDLCN35B18A409N'
	,'FRPILNI47M11L746H'
	,'FSNEPMR60S24I976R'
	,'FTBRFRZ68L20H037P'
	,'FTBRGBR37R22G062P'
	,'FTBRMRZ65H27H037W'
	,'FTTTGDE24D04A409P' -- co non più attivo
	,'FBRLGCR25P13B885H'
	,'FMRNNZE22A01F205W' -- profilo scaduto
	,'FMRNGMR53P60F205P'
--casi test richiesti da scirocco 10/12/2015 per FOI80
    ,'FBLNMGR55B56D332B'
    ,'FDNGGSN33A68B910W'
    ,'FFVRPLA56S48Z614J'
    ,'FDLLGNN47C09F952J'
    ,'FDBNMRA65E67L049H'
    ,'FLNZMLN35C46A564D'
    ,'FCLNGNN47P06E606N'
    ,'FBCHMTN58B07E398F'
    ,'SSCSCMD53D12F052Q'
--CASI TEST Rossi Rosanna: Segnalazione di errata rendicontazione nel report di monitoraggio SEI - tt T-1205349-F4W8
    ,'FRSSRNN48C44A783Z'
-- CASI TEST PER CF CHE HANNO PRODOTTI DI BANCHE IN DEFAULT
,'FBNCMHL27S63I760X'
,'FCNTRME55S24B853O'
,'FCRMVGN49S53F791G'
,'FCRSGPT53M02D548K'
,'FGNAGLL33E53A393A'
,'FMGNLRI75A60H901Z'
,'FMGNLRI75A60H901Z'
,'FMNZMNL46C62A393V'
,'FMRNMNG53P46H294F'
,'FNTRMRZ67T17H223L'
,'FPLZLRA40T54L390R'
,'FPRTCHR52L69H017M'
,'FSRVDDE31L44A191J'
, 'SBNOSDR61T03F205W'
,'SBNOSDR61T03F205W'
,'SCLCLNE41M47H434D'
,'SCLCLNE41M47H434D'
,'SCPPBRN41H45C773S'
,'SMGNCRN32R54G547I'
,'SMZZCRL31P55G916D'
,'SSVLSFN64B08A390G'

)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END















GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20160414]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20160414]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select rete,cod_fiscale
from consevo_periodico.ConsulenzaEvoluta.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 175
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc

------------------------------------------------------------------------------LUCA
--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c39 > 0
--order by b.tip_contratto desc, tot desc

--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c45 > 0
--order by b.tip_contratto desc, tot desc


--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c56 > 0
--order by b.tip_contratto desc, tot desc


--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c57 > 0
--order by b.tip_contratto desc, tot desc


--insert into appocampionereport
--select top 1

----DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
--a.rete,a.cod_fiscale,'',b.tip_contratto

----DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
----case when b.tip_contratto=0 then 'OLD'
----     when b.tip_contratto=1 then 'AFFLUENT'
----     when b.tip_contratto=2 then 'PRIVATE'
----end as TipoContratto,
----a.*

--from #appoCamp3 a
--inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
--where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
--and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
--where stato_report = 23)
--and c58 > 0
--order by b.tip_contratto desc, tot desc






--------------------------------------- FINE LUCA


insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
-- RACCOMANDATE
	('FTGLMRA30A04A409N'
	,'FBZZGPP46C18A409M'
	,'FCCRGPP54B27H307C'
	,'FCRNCST86C56G062N'
	,'FGHNDNL46L21G007R'
	,'FGNSMNL58D47H037E'
	,'FNAIGNE40H10B463Q'
	,'FNCLLCU74M70L682S'
	,'FPRNNTN32B06E003M'
	,'FPRTNMR29R62L219X' --co non più attivo
	,'FRLDLCN35B18A409N'
	,'FRPILNI47M11L746H'
	,'FSNEPMR60S24I976R'
	,'FTBRFRZ68L20H037P'
	,'FTBRGBR37R22G062P'
	,'FTBRMRZ65H27H037W'
	,'FTTTGDE24D04A409P' -- co non più attivo
	,'FBRLGCR25P13B885H'
	,'FMRNNZE22A01F205W' -- profilo scaduto
	,'FMRNGMR53P60F205P'
-- 250 casi test individuati da Scirocco-Quaranta
,'SBBALDA42L69C660I',
'FBCCFNC30H12L219Y',
'FBFFNGL37D19D245V',
'FBGLCRD41B61F205K',
'FBGZGNN40M45D612G',
'FBLLLGU46L21A191N',
'FBNGMLL33C49A794A',
'SBNOLGU65H28E290R',
'SBRGNRC63L01L219L',
'FBAAMTR48C43I470Y',
'FBAEMJA43E70Z133C',
'SBBBLGO28A43F637C',
'FBCCDCE46S22I068J',
'FBRZLVR50S44F965F',
'FCCOMNL48P22A056F',
'FCHRLBT33H58L219J',
'FCLMGNZ58E02M147X',
'FCRTLRD44A17A246K',
'SCVCRTI69D68G643C',
'SCZZNNP52R69D969U',
'SDGHCLD59T30L304C',
'FDRSGPP62S55A512W',
'SDSDGRZ52M46G628J',
'FDSMPLG48D30B424N',
'SFBBBBR69D42Z133D',
'SFBNNZE58B58A089T',
'SFVRFRZ63L10L840J',
'SGTAMDR50M71C415E',
'SJCCGRG38T27A326Q',
'SJCPGFR42E03G224H',
'SLVRDLA25S47B157C',
'FBFFNGL40C07A191T',
'SMRTFRL70D17Z114U',
'SNCLCRL76E10H501X',
'FBGODNL68R47H294D',
'SBLDMTN83R42L746N',
'FBLGVLI42D59G747R',
'FPGLCRL55S04F158Y',
'SPGLVCN44C50F817O',
'SPLTCLD48T07L753V',
'FPRVNNL54D46A794W',
'FRNCNDR88B16A475F',
'FRVSDGN37D67F133B',
'FSCCFNC51T07L030D',
'FSCGLRA60S53L736D',
'STLICCT55D19C351B',
'FVLNLVI62R29F398C',
'FZPTCST86P30Z604K',
'FBLLRLD34B06G664X',
'SBNDSNE47R62A040Z',
'FBNNNLI66A49E715K',
'SCCCSDR59E28E472B',
'FCRTGPP56M65F304H',
'SCVDMNG50E49D482N',
'SDBNFNC38L24D969G',
'SDFBPLA70L28H501P',
'FDLMGPR21H24F205P',
'FDLMLCU63R03E289N',
'FDMSLRS44E06D609O',
'SDSCPRZ60M61F952X',
'SDZZLVI61P18L219F',
'FFBBFNC35T50A944D',
'FFBBSVC40R53A851T',
'FFCCFDL48D10F242K',
'SFNTMRA47A11H501U',
'FFRNNGL61R17D704E',
'SFTTMRM60B53F508M',
'SFZZNNA46E52B293U',
'SGAINRC35L25D969J',
'SGBRGLC70L03F257S',
'FGBRGRL41L68H501E',
'FGBRGRL53L14H714J',
'FGVNNDR72S20E463X',
'SLZTPCR47S29A017U',
'FMZZSFN68D05E507F',
'FNBBFNC33T13H223X',
'SNCLFNC61R29G482Y',
'FNSLGRG70L06H727L',
'FNZLPRZ67L44C743K',
'FPTRLLN49A43A633J',
'FPVSRCR72L01A794D',
'FQRTVNN55S10G337A',
'FRNDGNN60M57D458C',
'FSCGLFA40B04G467F',
'SSVNSVN61R15L295O',
'FVDNMRN54A53L682F',
'FVLLFRC78E26F965G',
'FVLTLSN69P45A794U',
'SZLOGFR66L05G031Z',
'SFRZMHL63S11A182H',
'FNDRGFR46H28H816G',
'FGSPCMN24R50G535X',
'FLCTCLB52B22B910V',
'FPRSNLG48A06I452L',
'FFTTRRT64E70H501Q',
'FMRLSLV60A50H223V',
'FFBNCHR75T71C765V',
'SGZZMLV44P59B328P',
'FCCHPCD37P25F654J',
'FPRCLTT53S46E837D',
'FBFFNCL34L57C712F',
'FLCSZEI61L20L219R',
'FGHTMNC62H54L219A',
'FCRTGPP51A68G062O',
'FCMNDNT55C56A944A',
'FGRBLCU78B63E388O',
'FBAANGL45S03E472U',
'FQZECML41P21M021X',
'FVGLFRC84S68L219D',
'FRAICLM62B41A124Z',
'FBLLLGU33M17H598Z',
'FPNZRND47R08H361M',
'FMRLPTR37B27G179W',
'FPRZLNE38S60F717W',
'FBFFNDR60S25H501N',
'FCRTLRD33T19E094X',
'SFNTMRA42C49L781H',
'FBAUMLS47R69F864K',
'FGGLLDI36B42I622Z',
'FBAILDI62S56A794Z',
'FBMBLRF90E50L219G',
'FCMLNRT52L48G157B',
'FCCOLFA50P30A056F',
'FCRNNTN34L12F839V',
'SDBBTMS21A01E885K',
'SBBBNTN59M25H725F',
'SLMNMGR56E46D653B',
'SCFFFPP66D18D969P',
'SFSCGPP45C07L259I',
'SKSRGRD59S24F839I',
'SBZZPTR32S23I573D',
'SBBBFVN61S20F952S',
'SBBALDA40E13G684G',
'SVNTFBA69P29H501I',
'SBGGPLA66P62E463X',
'STLLMRA55P45C474K',
'SCNIBNR28M29G702B',
'SGAIRCE76T49A182F',
'SBNOMGR58L49L741U',
'SKPJVDM70H06Z100X',
'SFVLGNT55B19G742Z',
'SSPGTRS50P66F839Q',
'SMRZCLL53B45A794N',
'SMRZMNC59P68A794V',
'SBSTSLV59R51F952Q',
'SFLSLBT64C65H501Z',
'SCCCRSO46S64H501N',
'SDDMSNO47S45B433P',
'SCVRPQL69M23M082N',
'SBBBMNG29D46D205W',
'SZMBDNL49E45H501D',
'FFF@4268'         ,
'S08092471005'     ,
'S92001720017'     ,
'S02111000598'     ,
'FJNNVLD16E55F348U',
'SBTNGNN49H22I726G',
'SBRLMNG54M42C014M',
'SFRCLMP43A62C478K',
'FGRMMSM66H16D612I',
'S91020570114'     ,
'SVLPMRA43E01I287Z',
'SDLLCRL68C03H294E',
'SFLRVGL48D26F979S',
'SBBDFNC28A19E602R',
'FFF@8715'         ,
'SMSTMRS55S65A783N',
'SPLLGRL41C22E463N',
'SNCCMFR51E42H468M',
'SBBBNLR59H11H501R',
'SBRTRLD43P21H449J',
'SPRTRST58T53L219L',
'SBBNGCR56R59F817O',
'SCNGLLN50E70L245U',
'SQTTGLN57M42A269L',
'SCTCGCR41C21G920A',
'SFSCFRZ67E23G482M',
'SJCCSNT44P56H501L',
'S10733481005'     ,
'SGSPMGR31T69G482B',
'FCRNPRZ59H55E290K',
'SBRLMLR52P45G337S',
'SFRCLRT65C22E957W',
'FPLTTNM51R63F952U',
'FBBNTTN70H51Z154P',
'SDVSNMR76E49L418D',
'FCCHCLD60M09L706A',
'SBNDRMO45S22F642B',
'SZPPNGL23M70L633U',
'F80218090589'     ,
'SGGLMCN62M44F112K',
'SPSTBRN29M70G528H',
'SMSTDRN62S06H501I',
'FNFRNMR30C69C574V',
'FPCCNNL55L42B832J',
'FBAIMRC74M29L157G',
'SCAUGNN23C51H501U',
'FBLDMNC70D41C111F',
'SDFBCST94E63G878N',
'FBLLRLA69H24E463K',
'FBMBLRI84R70L219M',
'SCTTMTT78H08F205L',
'F80059170581'     ,
'FLCTFRC61L04A794V',
'SGSTDMR65R01E715S',
'FBAINTN41C04E864R',
'FDLSNRN48A01H501Y',
'FPRSMVN40D05G273R',
'F01621300597'     ,
'SGSTSRG60E01H501T',
'FBBBCLD51A17I480R',
'F97762280010'     ,
'SPLLGRT39M66Z112H',
'SMCCVTR41E09F736B',
'FFBRMLC30E50E864W',
'S01705010591'     ,
'FBCCFNC37C06D969P',
'FFMGLDI71S49I858Q',
'SCBLSLD45M08H501C',
'S07735910585'     ,
'FBAASFN72B19E472H',
'F97665800153'     ,
'FBAAGRL59E54I470S',
'FFMEFMN49B45E956U',
'SNGRCLD62A47Z404V',
'FCRVGNN53T57C243L',
'F00423970060'     ,
'SBLDNLT64T46A984O',
'SCSLSFN82R22F257J',
'FDTTSLV82T49H501H',
'FVCNLRA79L51B296M',
'FGHRVNT72T57A479A',
'F03387060548'     ,
'SPLNLSN38P28G401U',
'SZPPDRD57E15G493Z',
'FFLNMHL74M13I829Z',
'FDRSLSN77C25L219Y',
'FTFFCST75T45L219A',
'FGRMLSN66D57A944O',
'FDSGWND29M45C627O',
'FNSTGNN50L27F205U',
'SBBTMTL87D07G348I',
'FBBNNNI58L41F471I',
'FFRNMRZ64H08F454W',
'SGCMGLN45A63B982R',
'FBGGCST58S49D704L',
'FCHRLGU38C09E887Z',
'SDRSRSR49D70F839H',
'SSPSVCN66S01F839D',
'SBBNPML78E44A984U'

)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END
















GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20161216]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO








-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20161216]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select rete,cod_fiscale
from consevo_periodico.ConsulenzaEvoluta.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 175
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
-- RACCOMANDATE
	('FTGLMRA30A04A409N' --ok
	,'FBZZGPP46C18A409M' --ok
	,'FCCRGPP54B27H307C' --ok
	,'FCRNCST86C56G062N' --ok
	,'FGHNDNL46L21G007R' --ok
	,'FGNSMNL58D47H037E' --ok
	,'FNAIGNE40H10B463Q' --ok
	,'FNCLLCU74M70L682S' --ok
	,'FPRNNTN32B06E003M' --ok
	,'FRLDLCN35B18A409N' --ok
	,'FRPILNI47M11L746H' --ok
	,'FSNEPMR60S24I976R' --ok
	,'FTBRFRZ68L20H037P' --ok
	,'FTBRGBR37R22G062P' --ok
	,'FTBRMRZ65H27H037W' --ok
	,'FBRLGCR25P13B885H' --ok
	,'FMRNGMR53P60F205P' --ok
	
-- inizio cf cambio rete -----------------------------------------------------------
	,'SSPSVCN66S01F839D', 
	'SSPGTRS50P66F839Q',
	'SDRSRSR49D70F839H',
	'SBNCFNC38C06E466K',
	'SCRDBRN61A57I829K',
	'SCRDLMR58M47G388T', 
	'SMRCLSU29R56F237Z',
	'SCRDGRG29R14L833R',
	'SGCCSLL89R62G388M',
	'SVNGSDR60A21A412J',
	'SPRERNI38H26G752A', 
-- fine cf cambio rete --------------------------------------------------------------

-- inizio cf delle banche in default ------------------------------------------------
	'SBNOSDR61T03F205W', 
	'SBNOSDR61T03F205W',
	'SCLCLNE41M47H434D',
	'SCPPBRN41H45C773S',
	'SMGNCRN32R54G547I',
	'SMZZCRL31P55G916D',
	'SSVLSFN64B08A390G',
	'FBNCMHL27S63I760X',
	'FCNTRME55S24B853O',
	'FCRMVGN49S53F791G',
	'FCRSGPT53M02D548K',
	'FGNAGLL33E53A393A',
	'FMGNLRI75A60H901Z',
	'FMGNLRI75A60H901Z',
	'FMNZMNL46C62A393V',
	'FMRNMNG53P46H294F',
	'FNTRMRZ67T17H223L',
	'FPLZLRA40T54L390R',
	'FSRVDDE31L44A191J',
	'FPRTCHR52L69H017M',
	'FGLNNLN39P46L498G',
	'FBRTGPP47M06A541R',
	
-- fine cf delle banche in default ------------------------------------------------

-- cf richiesto da Quaranta il 6/10/2016 per verifica del var: se var > 4,50 e indicatori inadeguati allora va fatto l’intervento per riabbassarlo altrimenti ok e quindi sbloccato
	'F94146680262' 



)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END









GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20170114]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[CREA_CAMPIONE_20170114]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 175
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
-- RACCOMANDATE
	('FTGLMRA30A04A409N' --ok
	,'FBZZGPP46C18A409M' --ok
	,'FCCRGPP54B27H307C' --ok
	,'FCRNCST86C56G062N' --ok
	,'FGHNDNL46L21G007R' --ok
	,'FGNSMNL58D47H037E' --ok
	,'FNAIGNE40H10B463Q' --ok
	,'FNCLLCU74M70L682S' --ok
	,'FPRNNTN32B06E003M' --ok
	,'FRLDLCN35B18A409N' --ok
	,'FRPILNI47M11L746H' --ok
	,'FSNEPMR60S24I976R' --ok
	,'FTBRFRZ68L20H037P' --ok
	,'FTBRGBR37R22G062P' --ok
	,'FTBRMRZ65H27H037W' --ok
	,'FBRLGCR25P13B885H' --ok
	,'FMRNGMR53P60F205P' --ok
	------------------------------------- inizio cf multiramo codprod = 'RE' - simulazione 16/12/2016
	,'FBDNPLA59P08L219U'
	,'FBNCSVN65B46I138Y'
	,'FBNNBRC71R64G702J'
	,'FBRCGPP32P10G195K'
	,'FBRGLLL68P60C573Q'
	,'FBRSGLL39E62D959G'
	,'FBRTMRA27P42Z126N'
	,'FCDONRC40P02L219T'
	,'FCLBCLD66E04G999R'
	,'FCNCDNL55P45F704W'
	,'FCNCMCL39E57A468C'
	,'FCPNRNT37H25I046O'
	,'FCPNSFN67M26D815V'
	,'FCRLGCM42P08H211R'
	,'FCRNLRT39T20F205G'
	,'FCVSCRL38C52E346P'
	,'FCVZLCU61A24H620I'
	,'FCZZRNN42L46D912L'
	,'FDLLPLA50A10B455H'
	,'FDMCNNA38D44L826J'
	,'SMSCCMN66E59F839W' --ok
	--,'FNLSMLN67B44G917W'
	--,'FMSCLVI54M09E922C'
	--,'FFRNLSN45E27C556H'
	--,'FCSTGNN56M67C287M'
	--,'FDLGGNN74P10D612S'
	--,'FBSUDNL67D03G224W'
	--,'FDFNGLG39T31F952N'
	--,'FMLZGLD42E21L736D'
	--,'FPLISFN65R20G337L'
	--,'SGLLSLL56T48D969O'
	,'FBNNMCL59M66A470J' --ok
	--,'FBRDPLA57C05H501X'
	,'FRSLPTR59C25E151X' --ok
	--,'FRSSLVN48T27F592Y'
	--,'FCMNFNN62E21A485D'
	--,'FFNLMRA53D16G942V'
	,'FCRRMRS45S54I968G' --ok
	,'FDSSDNL87E10G337L' --ok
	--,'FPMPGRG32P19H018W'
	,'FPZZMNG57T43E922K'
	,'FRFNMRA40E70F205Y'
	,'FRGNRTL48C50F205X'
	,'FRSANMR53H54F205P'
	,'FRTNGZN42R46D934H'
	,'FRVTTZN54T30I690K'
	,'FSCIFNC31E01D969Y'
	,'FSGLRSN42D50C704M'
	,'FSGNLSN70D01L736O'
	,'FSRSSFN68A69E897D'
	,'FSRTGNN57C31E648W'
	,'FSTCRMR37P43A944U'
	,'FSTRVKY71B52Z211P'
	,'FTRLGPP47D06E232K'
	------------------------------------- inizio cf clienti professionali
	,'FFF@5844'
	,'FMGNGPP55B25G224T'
	,'FLNCFBA59D06H437D'
    ------------------------------------- inizio cf Eccessiva Adeguatezza
    --,'FPRTFST39D18I921O'
    ,'FBAILDI62S56A794Z'
	,'FSBRFNC43M21G999H'
	,'FCSLFPP40H14H224F'
	--,'FSTCGFR43L10L792C'
	,'FGSCCLG71M53A182H'
	,'FDLLLBA40C70C553E'
	,'SNREMBR54E68A944E'
	,'SRFFSFN68M66D284B'
	,'SZNTDNC58S16L219G'
	--,'SFRRFNC56H28L840B'
	,'SGMBRNE30R47D969Z'
	,'SPRDPLN53P45D969Q'


---- inizio cf cambio rete -----------------------------------------------------------
--	,'SSPSVCN66S01F839D', 
--	'SSPGTRS50P66F839Q',
--	'SDRSRSR49D70F839H',
--	'SBNCFNC38C06E466K',
--	'SCRDBRN61A57I829K',
--	'SCRDLMR58M47G388T', 
--	'SMRCLSU29R56F237Z',
--	'SCRDGRG29R14L833R',
--	'SGCCSLL89R62G388M',
--	'SVNGSDR60A21A412J',
--	'SPRERNI38H26G752A', 
---- fine cf cambio rete --------------------------------------------------------------

---- inizio cf delle banche in default ------------------------------------------------
--	'SBNOSDR61T03F205W', 
--	'SBNOSDR61T03F205W',
--	'SCLCLNE41M47H434D',
--	'SCPPBRN41H45C773S',
--	'SMGNCRN32R54G547I',
--	'SMZZCRL31P55G916D',
--	'SSVLSFN64B08A390G',
--	'FBNCMHL27S63I760X',
--	'FCNTRME55S24B853O',
--	'FCRMVGN49S53F791G',
--	'FCRSGPT53M02D548K',
--	'FGNAGLL33E53A393A',
--	'FMGNLRI75A60H901Z',
--	'FMGNLRI75A60H901Z',
--	'FMNZMNL46C62A393V',
--	'FMRNMNG53P46H294F',
--	'FNTRMRZ67T17H223L',
--	'FPLZLRA40T54L390R',
--	'FSRVDDE31L44A191J',
--	'FPRTCHR52L69H017M',
--	'FGLNNLN39P46L498G',
--	'FBRTGPP47M06A541R',
	
---- fine cf delle banche in default ------------------------------------------------

---- cf richiesto da Quaranta il 6/10/2016 per verifica del var: se var > 4,50 e indicatori inadeguati allora va fatto l’intervento per riabbassarlo altrimenti ok e quindi sbloccato
--	'F94146680262' 



)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END










GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20170321]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20170321]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 175
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
-- RACCOMANDATE
	('FTGLMRA30A04A409N' --ok
	,'FBZZGPP46C18A409M' --ok
	,'FCCRGPP54B27H307C' --ok
	,'FCRNCST86C56G062N' --ok
	,'FGHNDNL46L21G007R' --ok
	,'FGNSMNL58D47H037E' --ok
	,'FNAIGNE40H10B463Q' --ok
	,'FNCLLCU74M70L682S' --ok
	,'FPRNNTN32B06E003M' --ok
	,'FRLDLCN35B18A409N' --ok
	,'FRPILNI47M11L746H' --ok
	,'FSNEPMR60S24I976R' --ok
	,'FTBRFRZ68L20H037P' --ok
	,'FTBRGBR37R22G062P' --ok
	,'FTBRMRZ65H27H037W' --ok
	,'FBRLGCR25P13B885H' --ok
	,'FMRNGMR53P60F205P' --ok
	------------------------------------- inizio cf multiramo codprod = 'RE' - simulazione 16/12/2016
	,'FBDNPLA59P08L219U'
	,'FBNCSVN65B46I138Y'
	,'FBNNBRC71R64G702J'
	,'FBRCGPP32P10G195K'
	,'FBRGLLL68P60C573Q'
	,'FBRSGLL39E62D959G'
	,'FBRTMRA27P42Z126N'
	,'FCDONRC40P02L219T'
	,'FCLBCLD66E04G999R'
	,'FCNCDNL55P45F704W'
	,'FCNCMCL39E57A468C'
	,'FCPNRNT37H25I046O'
	,'FCPNSFN67M26D815V'
	,'FCRLGCM42P08H211R'
	,'FCRNLRT39T20F205G'
	,'FCVSCRL38C52E346P'
	,'FCVZLCU61A24H620I'
	,'FCZZRNN42L46D912L'
	,'FDLLPLA50A10B455H'
	,'FDMCNNA38D44L826J'
	,'SMSCCMN66E59F839W' --ok
	--,'FNLSMLN67B44G917W'
	--,'FMSCLVI54M09E922C'
	--,'FFRNLSN45E27C556H'
	--,'FCSTGNN56M67C287M'
	--,'FDLGGNN74P10D612S'
	--,'FBSUDNL67D03G224W'
	--,'FDFNGLG39T31F952N'
	--,'FMLZGLD42E21L736D'
	--,'FPLISFN65R20G337L'
	--,'SGLLSLL56T48D969O'
	,'FBNNMCL59M66A470J' --ok
	--,'FBRDPLA57C05H501X'
	,'FRSLPTR59C25E151X' --ok
	--,'FRSSLVN48T27F592Y'
	--,'FCMNFNN62E21A485D'
	--,'FFNLMRA53D16G942V'
	,'FCRRMRS45S54I968G' --ok
	,'FDSSDNL87E10G337L' --ok
	--,'FPMPGRG32P19H018W'
	,'FPZZMNG57T43E922K'
	,'FRFNMRA40E70F205Y'
	,'FRGNRTL48C50F205X'
	,'FRSANMR53H54F205P'
	,'FRTNGZN42R46D934H'
	,'FRVTTZN54T30I690K'
	,'FSCIFNC31E01D969Y'
	,'FSGLRSN42D50C704M'
	,'FSGNLSN70D01L736O'
	,'FSRSSFN68A69E897D'
	,'FSRTGNN57C31E648W'
	,'FSTCRMR37P43A944U'
	,'FSTRVKY71B52Z211P'
	,'FTRLGPP47D06E232K'
	------------------------------------- inizio cf clienti professionali
	,'FFF@5844'
	,'FMGNGPP55B25G224T'
	,'FLNCFBA59D06H437D'
    ------------------------------------- inizio cf Eccessiva Adeguatezza
    --,'FPRTFST39D18I921O'
    ,'FBAILDI62S56A794Z'
	,'FSBRFNC43M21G999H'
	,'FCSLFPP40H14H224F'
	--,'FSTCGFR43L10L792C'
	,'FGSCCLG71M53A182H'
	,'FDLLLBA40C70C553E'
	,'SNREMBR54E68A944E'
	,'SRFFSFN68M66D284B'
	,'SZNTDNC58S16L219G'
	--,'SFRRFNC56H28L840B'
	,'SGMBRNE30R47D969Z'
	,'SPRDPLN53P45D969Q'


---- inizio cf cambio rete -----------------------------------------------------------
--	,'SSPSVCN66S01F839D', 
--	'SSPGTRS50P66F839Q',
--	'SDRSRSR49D70F839H',
--	'SBNCFNC38C06E466K',
--	'SCRDBRN61A57I829K',
--	'SCRDLMR58M47G388T', 
--	'SMRCLSU29R56F237Z',
--	'SCRDGRG29R14L833R',
--	'SGCCSLL89R62G388M',
--	'SVNGSDR60A21A412J',
--	'SPRERNI38H26G752A', 
---- fine cf cambio rete --------------------------------------------------------------

---- inizio cf delle banche in default ------------------------------------------------
--	'SBNOSDR61T03F205W', 
--	'SBNOSDR61T03F205W',
--	'SCLCLNE41M47H434D',
--	'SCPPBRN41H45C773S',
--	'SMGNCRN32R54G547I',
--	'SMZZCRL31P55G916D',
--	'SSVLSFN64B08A390G',
--	'FBNCMHL27S63I760X',
--	'FCNTRME55S24B853O',
--	'FCRMVGN49S53F791G',
--	'FCRSGPT53M02D548K',
--	'FGNAGLL33E53A393A',
--	'FMGNLRI75A60H901Z',
--	'FMGNLRI75A60H901Z',
--	'FMNZMNL46C62A393V',
--	'FMRNMNG53P46H294F',
--	'FNTRMRZ67T17H223L',
--	'FPLZLRA40T54L390R',
--	'FSRVDDE31L44A191J',
--	'FPRTCHR52L69H017M',
--	'FGLNNLN39P46L498G',
--	'FBRTGPP47M06A541R',
	
---- fine cf delle banche in default ------------------------------------------------

---- cf richiesto da Quaranta il 6/10/2016 per verifica del var: se var > 4,50 e indicatori inadeguati allora va fatto l’intervento per riabbassarlo altrimenti ok e quindi sbloccato
--	'F94146680262' 



)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END












GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20180115_preJoinNewTab]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO













-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
create procedure [dbo].[CREA_CAMPIONE_20180115_preJoinNewTab]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 220
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in

	(
	
-- RACCOMANDATE
	'FBRLGCR25P13B885H'	    --Raccomandata - Forzare ROL a 'S' (come di consueto)		--------no	***************Profilo Scaduto
	,'FBZZGPP46C18A409M'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FCCRGPP54B27H307C'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FCRNCST86C56G062N'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FGHNDNL46L21G007R'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FGNSMNL58D47H037E'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FMRNGMR53P60F205P'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FNAIGNE40H10B463Q'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st						
	,'FNCLLCU74M70L682S'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--------no  ***************Profilo Scaduto
	,'FPRNNTN32B06E003M'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FRLDLCN35B18A409N'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FRPILNI47M11L746H'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FSNEPMR60S24I976R'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FTBRFRZ68L20H037P'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FTBRGBR37R22G062P'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FTBRMRZ65H27H037W'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st
	,'FTGLMRA30A04A409N'	--Raccomandata - Forzare ROL a 'S' (come di consueto)		--st

	-------------------------------------  cf clienti professionali ------------------------------------------------------
	,'FFF@5844'					
	,'FMGNGPP55B25G224T'		
	,'FBTTFST43C42B300A'	 
	,'FTMSRRT59R13L967T'	 
	,'FRSCFNC43M09A965T'	 
	,'FNDRMRA39D15C623K'	 
	,'FPDRPLA72H21C623T'	 

			

)

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END
























GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20180711]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20180711]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 220
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
	(select rete + codicefiscale from [dbo].[Incl_SpecCdT_Campione] )

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END
























GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_20180921]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_20180921]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport


-- mod 11/7/2018 - vogliamo meno report
      --select top 220
select top 100
-- fine mod 11/7/2018

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
	(select rete + codicefiscale from [dbo].[Incl_SpecCdT_Campione] )

	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3




truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END
























GO
/****** Object:  StoredProcedure [dbo].[CREA_CAMPIONE_TEST]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO












-- =============================================
-- Author:		<Author,,Name>
-- Create date: <20141008>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[CREA_CAMPIONE_TEST]
	-- Add the parameters for the stored procedure here
AS
BEGIN

---------------------------------------------------------------
--SELEZIONE DEI PRIMI 200 CLIENTI ORDINATI PER NUMERO DI CASI-- 
---------------------------------------------------------------

select distinct campione.*
into #appoCamp1
from (
select b.*
FROM [C6MartPeriodico].[selezionecampione2] A
inner join (
SELECT d.*,
([c1]+[c2]+[c3]+[c4]+[c5]+[c6]+[c7]+[c8]+[c9]+[c10]+[c11]+[c12]+[c13]+[c14]+[c15]+[c16]+[c17]+[c18]+[c19]+[c20]
+[c21]+[c22]+[c23]+[c24]+[c25]+[c26]+[c27]+[c28]+[c29]+[c30]+[c31]+[c32]+[c33]+[c34]+[c35]+[c36]+[c37]+[c38]+[c39]+[c40]
+[c41]+[c42]+[c43]+[c44]+[c45]+[c46]+[c47]+[c48]+[c49]+[c50]+[c51]+[c52]+[c53]+[c54]+[c55]+[c56]+[c57]+[c58] 
) tot  FROM [C6MartPeriodico].[selezionecampione2] d
   )  B
  on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale 
--  where c2 > 0
 ) campione 


select distinct campione.*
into #appoCamp2
from #appoCamp1 campione
  inner join 
(
select a.rete,a.cod_fiscale
from consuni_periodico.ConsulenzaUnica.dbo.MonitoraggioStorico s
inner join   c6stagingperiodico.appo_contratti a
on a.chiaveclientepb=s.chiaveclientePB
and datediff(dd,dtAvvio,dtsalvataggio) =0 )  diffdate
on campione.rete=diffdate.rete and campione.cod_fiscale=diffdate.cod_fiscale


select d.rete,d.cod_fiscale,id_area,nome_progetto,max(data_cono) dt
into #appoggio
from C6MartPeriodico.CONO_PIANIFICAZIONE d
where d.cod_fiscale in (
select d.cod_fiscale from #appoCamp2) -- dbo.campionetrimestrale - appocampionereport
group by d.rete,cod_fiscale,id_area,nome_progetto

select a.*
into #appoCamp3
from #appoCamp2 a
left join 
(select rete,cod_fiscale,dt
from #appoggio
where dt < '20140930') e
on a.rete=e.rete and a.cod_fiscale=e.cod_fiscale
where e.rete is null
order by tot desc


-- luca 19/1/2016
truncate table appocampionereport
-- fine luca 19/1/2016
insert into appocampionereport

select top 220
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
order by tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c6 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1
--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c16 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c42 > 0
order by b.tip_contratto desc, tot desc



insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c39 > 0
order by b.tip_contratto desc, tot desc

insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c45 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c56 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c57 > 0
order by b.tip_contratto desc, tot desc


insert into appocampionereport
select top 1

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

from #appoCamp3 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and c58 > 0
order by b.tip_contratto desc, tot desc






insert into appocampionereport
select 

--DISASTERISCARE PER "INSERT SELECT" ed ASTERISCARE PER "SELECT"
a.rete,a.cod_fiscale,'',b.tip_contratto

--DISASTERISCARE PER "SELECT" ed ASTERISCARE PER "INSERT SELECT"
--case when b.tip_contratto=0 then 'OLD'
--     when b.tip_contratto=1 then 'AFFLUENT'
--     when b.tip_contratto=2 then 'PRIVATE'
--end as TipoContratto,
--a.*

-- modifica di Luca del 14/4/2016 - Per essere sicuri di estrarre tutti i cf in più richiesti pesco dal bacino che contiene
--                                  tutto cioè #appoCamp1
-- luca from #appoCamp3 a
from #appoCamp1 a
inner join C6MARTPERIODICO.CONTRATTOSEI b on a.rete=b.rete and a.cod_fiscale=b.cod_fiscale
where a.rete+a.cod_fiscale not in (select rete+cod_fiscale from c6martperiodico.test_quality)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from dbo.disallineati2)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_PROFILO_SCADUTO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MartPeriodico.CONTROLLO_TRIMESTRALE_RFA_ZERO)
and   a.rete+a.cod_fiscale not in (select rete+cod_fiscale from C6MARTPERIODICO.CONTROLLO_TRIMESTRALE
where stato_report = 23)
and   a.rete+a.cod_fiscale in
	(select c.rete + c.codicefiscale from [dbo].[Incl_SpecCdT_Campione] )



	


drop table #appoCamp1
drop table #appoCamp2
drop table #appoCamp3


truncate table C6MartPeriodico.TB_Campione

insert into  C6MartPeriodico.TB_Campione
select distinct rete, cod_fiscale, 1 --1 è il campo flag stampa che indica che dev esser stampato in fase di generazione del campione, 0 niente stampa
from appocampionereport

END





















GO
/****** Object:  StoredProcedure [dbo].[creaExcelVerificaCampioneS80]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Federica Cianfa>
-- Create date: <25/09/2014>
-- Description:	<SP che estrae i dati dalle tb C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio e C6MartPeriodico.TB_S80BisEvoluzioneRischio per il controllo dei dati S80 per QC>
-- =============================================
CREATE procedure [dbo].[creaExcelVerificaCampioneS80]
	
AS
BEGIN


SELECT  PAT.Rete AS rete,
		PAT.Cod_Fiscale AS cf,
		--PAT.Fase AS TIPO,
		CASE WHEN PAT.Fase = 1 THEN 'Avvio monitoraggio'
		WHEN PAT.Fase = 2 THEN 'Precedente invio'
		END AS [Type],
		PAT.DataFase AS [Data riferimento],
		PAT.CTV_EXT AS [Extra rendimento],
		PAT.CTV_INV AS Investimento,
		PAT.CTV_PRE AS Previdenza,
		PAT.CTV_RIS AS Riserva,
		PAT.CTV_LIQ AS [Liquidità],
		PAT.RisorseAllocate AS [Totale risorse allocate],
		PAT.RisorseNonAllocate AS [Risorse non allocate],
		PAT.ContoCorrente AS [Scoperto di Conto Corrente],
		PAT.Partita_viaggiante AS [Investimenti in corso],
		PAT.RisorseAllocate + PAT.RisorseNonAllocate + PAT.ContoCorrente + PAT.Partita_viaggiante AS [Totale patrimonio],
		RIS.VarMassimoProfiloFinanziario AS [VaR massimo profilo finanziario],
		RIS.VarComplessivo AS [Rischio Mercato (VaR%)],
		RIS.Copertura AS Copertura,
		--RIS.RISKCLASSMAX AS [Rischio Credito massimo],
		CASE WHEN RIS.RISKCLASSMAX IS NULL THEN 0
		     ELSE RIS.RISKCLASSMAX
		     END AS [Rischio Credito massimo],
		CASE WHEN RIS.RiskClass = '0' and  RIS.RISKclassSTRING ='n.a.' THEN '5'
		     WHEN RIS.RiskClass is null and  RIS.RISKclassSTRING ='n.a.' THEN '0'
		     WHEN RIS.RiskClass is null AND RIS.RISKclassSTRING ='n.d.' THEN null 
		     --NEL FOGLIO XLS DI ESTRAZIONE DATI S80 PER QC RICORDARSI DI sotituire 
			 --NULL con 'n.d.'
			 --'5' con 'n.a.'
			 --'0' con 'n.a.' 
		     ELSE RIS.RiskClass 
		     END AS [Rischio Credito]
		

		FROM
		C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio PAT
        inner join
        C6MartPeriodico.TB_S80BisEvoluzioneRischio RIS
        on 
        RIS.RETE=PAT.RETE
        AND 
        RIS.CodiceFiscale=PAT.Cod_Fiscale
        AND 
        RIS.Fase=PAT.Fase
        AND 
        RIS.DataFase=PAT.DataFase
        
        inner join dbo.appocampionereport CAMP
        on CAMP.rete=PAT.Rete and CAMP.cod_fiscale=PAT.Cod_Fiscale
	
        WHERE PAT.FASE != '3' 
        ORDER BY PAT.Rete, PAT.Cod_Fiscale, PAT.FASE



END


GO
/****** Object:  StoredProcedure [dbo].[creaExcelVerificaCampioneS80_excel]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Federica Cianfa>
-- Create date: <25/09/2014>
-- Description:	<SP che estrae i dati dalle tb C6MartPeriodico.TB_S80_S129_EvoluzioneCTVPatrimonio e C6MartPeriodico.TB_S80BisEvoluzioneRischio per il controllo dei dati S80 per QC>
-- =============================================
CREATE procedure [dbo].[creaExcelVerificaCampioneS80_excel]

	
AS
BEGIN

drop table if exists c6martperiodico.VerificaS80Campione

create table c6martperiodico.VerificaS80Campione(
rete varchar(3),
cf varchar(32),
Type varchar(100),
[Data riferimento] datetime,
[Extra rendimento] varchar (100),
Investimento varchar(100),
Previdenza varchar(100),
Riserva varchar(100),
Liquidità varchar(100),
[Totale risorse allocate] varchar(100),
[Risorse non allocate] varchar(100),
[Scoperto di Conto Corrente] varchar(100),
[Investimenti in corso] varchar (100),
[Totale patrimonio] varchar (100),
[VaR massimo profilo finanziario] varchar (100),
[Rischio Mercato (VaR%)] varchar (100),
Copertura varchar (100),
[Rischio Credito Massimo] varchar(100),
[Rischio Credito] varchar(100)
);



insert into c6martperiodico.VerificaS80Campione
exec  [dbo].[creaExcelVerificaCampioneS80];

--exec [dbo].[creaExcelVerificaCampioneS80]

update c6martperiodico.VerificaS80Campione
set [Rischio Credito]='n.a.'
from c6martperiodico.VerificaS80Campione
where [Rischio Credito]='5.000'

update c6martperiodico.VerificaS80Campione
set [Rischio Credito]='n.d.'
from c6martperiodico.VerificaS80Campione
where [Rischio Credito] is NULL

select * from c6martperiodico.VerificaS80Campione

END


GO
/****** Object:  StoredProcedure [dbo].[CreaTabellaBackUp]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [dbo].[CreaTabellaBackUp](

	@tableName varchar(100),
	@schema varchar(100),
	@suffix varchar(100) = ''
)

as

	declare @data datetime
	declare @dataString varchar(20)

	declare @SQL nvarchar(4000)

	set @data = getdate()
	set @dataString = convert(varchar(4), year(@data)) + right('0' + convert(varchar(2), month(@data)), 2) + right('0' + convert(varchar(2), day(@data)), 2)

	-- Se è stato passato un suffisso per specificare il motivo del backup della tabella (es: PreGenerazione...)
	if isnull(@suffix, '') <> ''
		set @suffix = '_' + @suffix

	-- Se la tabella con data + suffisso è già presente si aggiunge alla stringa data anche l'orario
	IF EXISTS (SELECT 'X' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = @tableName + '_' + @dataString + @suffix AND TABLE_SCHEMA = @schema)
		begin

			print 'La tabella ' + @schema + '.' + @tableName + '_' + @dataString + @suffix + ' già esiste nel DB.'

			set @dataString = @dataString + '_' + right('0' + convert(varchar(2), DATEPART(hour, @data)), 2) + right('0' + convert(varchar(2), DATEPART(minute, @data)), 2) + right('0' + convert(varchar(2), DATEPART(second, @data)), 2)
		end

	set @SQL = 'select * into ' + @schema + '.' + @tableName + '_' + @dataString + @suffix + ' from ' + @schema + '.' + @tableName
	print @SQL
	exec sp_executeSql @SQL
GO
/****** Object:  StoredProcedure [dbo].[DropObject]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[DropObject]
@objectname varchar(max), 
@schemaid int
AS
BEGIN
print @objectname
print @schemaid
  DECLARE @ObjectType varchar(max) 
  Set @ObjectType = (SELECT [type] FROM sys.objects WHERE name = @objectname and schema_id = @schemaid)
print @ObjectType  
  DECLARE @DropType varchar(max)
  Set @DropType = ''
  
  IF @ObjectType IN ('PC', 'P')
    SELECT @DropType = 'PROCEDURE'

  IF @ObjectType IN ('FN', 'FS', 'FT', 'IF', 'TF')
    SELECT @DropType = 'FUNCTION'
    
  IF @ObjectType = 'AF'
    SELECT @DropType = 'AGGREGATE'
    
  IF @ObjectType = 'U'
    SELECT @DropType = 'TABLE'
    
  IF @ObjectType = 'V'
    SELECT @DropType = 'VIEW'
 
  IF @DropType <> ''
     begin
        DECLARE @schemaName varchar(100)
        SET @schemaName = (SELECT name FROM sys.schemas WHERE schema_id = @schemaid)
        EXEC('DROP '+ @DropType + ' [' + @schemaName + '].[' + @objectname + ']')
     end
END

GO
/****** Object:  StoredProcedure [dbo].[ElencoClientiImmobiliareDaStampare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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 (vRichiesteMonitoraggioCatastoCliente.dtElabRicezioneRischio IS NULL)
		AND vRichiesteMonitoraggioCatastoCliente.dtRiferimento = @DataFineTrimestreCorrente
	ORDER BY chiaveRichiesta




	END
GO
/****** Object:  StoredProcedure [dbo].[GetAllTableSize]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[GetAllTableSize]
@schema varchar(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @TableName VARCHAR(200)

	-- Insert statements for procedure here
	DECLARE tableCursor CURSOR FOR
	SELECT DISTINCT @schema+'.'+sys.objects.[name]
	FROM sys.schemas INNER JOIN sys.objects ON sys.schemas.schema_id=sys.objects.schema_id
	WHERE type='U' AND is_ms_shipped=0 ORDER BY @schema+'.'+sys.objects.[name] -- WHERE is_ms_shipped is Microsoft generated objects
	FOR READ ONLY
	--A procedure level temp table to store the results
	CREATE TABLE #TempTable
	(
	tableName varchar(200),
	numberofRows varchar(100),
	reservedSize varchar(50),
	dataSize varchar(50),
	indexSize varchar(50),
	unusedSize varchar(50)
	)

	--Open the cursor
	OPEN tableCursor

	--Get the first Record from the cursor
	FETCH NEXT FROM tableCursor INTO @TableName

	--Loop until the cursor was not able to fetch
	WHILE (@@Fetch_Status >= 0)
	BEGIN
		--Insert the results of the sp_spaceused query to the temp table
		INSERT #TempTable
		EXEC sp_spaceused @TableName

		--Get the next Record
		FETCH NEXT FROM tableCursor INTO @TableName
	END

	--Close/Deallocate the cursor
	CLOSE tableCursor
	DEALLOCATE tableCursor

	--Select all records so we can use the reults
	SELECT *
	FROM #TempTable
	ORDER BY CAST(SUBSTRING(dataSize,1,LEN(dataSize) - 3) AS int) DESC

	DROP TABLE #TempTable
END
GO
/****** Object:  StoredProcedure [dbo].[GetLancio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[GetLancio](@tipo nvarchar(32)='Monitoraggio',@client nvarchar(32)='GestorePDF')
as
BEGIN
	set nocount on
	declare @id int=0;
	insert into dbo.Lanci(Tipo,Client) values (@tipo,@client);
	set @id=@@IDENTITY;
	select uid from dbo.Lanci where Id=@id;
END
GO
/****** Object:  StoredProcedure [dbo].[getListaPdfStorici]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		Valerio Colaianni
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[getListaPdfStorici]
	AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	select 'E:\TSM\ARCHIVE\PDF\'+nomeFile
	from RichiestaPdfStorico
	where richiestaEvasa = 0

--INSERT INTO LOG_ESECUZIONE
--		(Nome, Inizio, Nota)
--	VALUES (
--		'getListaPdfStorici',
--		GETDATE(),
--		'Elaborazione'
--)

-- Inserimento per recupero manuale di test  del 24/05/2016 - DA COMMENTARE UNA VOLTA FATTO
	--select 

	--'E:\TSM\ARCHIVE\578944.pdf'
	--union
	--select
	--'E:\TSM\ARCHIVE\578980.pdf'
	--union
	--select
	--'E:\TSM\ARCHIVE\579000.pdf'


END




GO
/****** Object:  StoredProcedure [dbo].[GetLogs]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- select * from dbo.logN where Level = 'error'
--[dbo].[GetLogs]
--[dbo].[GetLogs] '2016-04-13 09:36:18.887'
CREATE procedure [dbo].[GetLogs]
	@LogsSince DateTime	= NULL
AS
BEGIN
print 'a'
	;with raw_data as
(
select logged, ltrim(rtrim(replace(replace(replace(replace(message,'constructing', ''),'of',''), ' does not finished due to the error', ''),'finished',''))) par ,
case when message like '%finished' then 'finished' when message like '%not finished%' then 'error' else 'started' end as process_status, message
from [dbo].[LogN] 
where
      message like '%constructing%' and
	  ((@LogsSince IS NOT NULL and logged >= @LogsSince) or (@LogsSince IS NULL))
), r1 as
(
select *, substring(par, 0, charindex(':', par)) as head_1, substring(par, charindex(':', par)+1,1000) as tail_1
  from raw_data
  ), r2 as
  (  select [message],logged, process_status, head_1,  substring(tail_1, 0, charindex(':', tail_1)) as head_2, substring(tail_1, charindex(':', tail_1)+1,1000) as tail_2    
  from r1
  ), r3 as 
  (
  select [message],logged, process_status, head_1, head_2,  substring(tail_2, 0, charindex(':', tail_2)) as head_3, substring(tail_2, charindex(':', tail_2)+1,1000) as tail_3    
  from r2
  ), r4 as 
  (
  select [message],logged, process_status, head_1 as CodiceFiscale, head_2 as Rete, head_3 as TipoContratto, substring(tail_3, 2, len(tail_3)) as ReportType
  from r3
  )
  select * from r4 where process_status ='error' order by logged desc
END




GO
/****** Object:  StoredProcedure [dbo].[GetPDFTemplateConfiguration]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[GetPDFTemplateConfiguration](@Rete varchar(1), @Tipo int, @Trimestrale int)
as
begin

SELECT *,TemplateReportPath, TemplateCopertinaPath, TemplateGlossarioPath, TemplateWelcomeLetterPath, ReportTypeFontColor_R, ReportTypeFontColor_G, ReportTypeFontColor_B,
ChapterBackground_R, ChapterBackground_G, ChapterBackground_B, ChapterFontColor_R, ChapterFontColor_G, ChapterFontColor_B, 
TableHeaderFontColor_R, TableHeaderFontColor_G, TableHeaderFontColor_B
FROM  dbo.ReportTemplate t inner join  dbo.PDFTemplateConfiguration c on c.PDFConfigurationID = t.PDFConfigurationID
WHERE t.Rete = @Rete and t.IsTrimestrale = @Trimestrale and t.ContractType = @Tipo

end


GO
/****** Object:  StoredProcedure [dbo].[GetPDFTemplateConfiguration_Rosaspina]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[GetPDFTemplateConfiguration_Rosaspina](@Rete varchar(1), @Tipo int, @Trimestrale int)
as
begin

SELECT *,TemplateReportPath, TemplateCopertinaPath, TemplateGlossarioPath, TemplateWelcomeLetterPath, ReportTypeFontColor_R, ReportTypeFontColor_G, ReportTypeFontColor_B,
ChapterBackground_R, ChapterBackground_G, ChapterBackground_B, ChapterFontColor_R, ChapterFontColor_G, ChapterFontColor_B, 
TableHeaderFontColor_R, TableHeaderFontColor_G, TableHeaderFontColor_B
FROM  dbo.ReportTemplate t inner join  dbo.PDFTemplateConfiguration_Rosaspina c on c.PDFConfigurationID = t.PDFConfigurationID
WHERE t.Rete = @Rete and t.IsTrimestrale = @Trimestrale and t.ContractType = @Tipo

end




GO
/****** Object:  StoredProcedure [dbo].[GetStatistics]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[GetStatistics]
as
begin
select * from GetStatistics_stato_report
select * from GetStatistics_elab
end

GO
/****** Object:  StoredProcedure [dbo].[GetStatistics_Prepare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[GetStatistics_Prepare]
as
begin

truncate table dbo.GetStatistics_recordsToProcess

insert into dbo.GetStatistics_recordsToProcess(codiceFiscale)
select codicefiscale FROM C6MartPeriodico.CRUSCOTTO_CONTRATTISEI WHERE elab in (1,2)

end


GO
/****** Object:  StoredProcedure [dbo].[GetTextTemplateConfiguration]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[GetTextTemplateConfiguration](@Rete varchar(1), @Tipo int, @Trimestrale int, @FieldName varchar(15))
as
begin

SELECT top (1) ttc.TextValue
FROM  dbo.ReportTemplate rt inner join dbo.TextTemplateConfigurationMapping ttcm on rt.TemplateID = ttcm.TemplateID
							inner join dbo.TextTemplateConfiguration ttc on ttc.TextFieldID = ttcm.TextFieldID
WHERE 
	(@Rete like rt.Rete) and 
	(@Trimestrale = rt.IsTrimestrale or rt.IsTrimestrale = -1) and 
	(@Tipo = rt.ContractType or rt.ContractType = -1) and 
	(@FieldName = ttc.TextFieldName)
END

GO
/****** Object:  StoredProcedure [dbo].[GetVariableValue]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
-- dbo.GetVariableValue 's132_tempTestoAlt', 'N', null, 1
create PROCEDURE [dbo].[GetVariableValue] 
       @VariableName nvarchar(128),
       @Flagnqp nvarchar(1) = null,
       @Flagprlrde nvarchar(1)  = null,
       @Flagpg int  = null
AS
BEGIN
       -- SET NOCOUNT ON added to prevent extra result sets from
       -- interfering with SELECT statements.
       SET NOCOUNT ON;
       select trv.variableValue from dbo.TextReplacementVariables trv
       where
             (@Flagnqp is null or @Flagnqp = trv.Flagnqp or trv.Flagnqp is null) and
             (@Flagprlrde is null or @Flagprlrde = trv.Flagprlrde or trv.Flagprlrde is null) and
             (@Flagpg is null or @Flagpg = trv.Flagpg or trv.Flagpg is null)
END
GO
/****** Object:  StoredProcedure [dbo].[HexToRGB]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[HexToRGB]  
 -- Add the parameters for the stored procedure here  
-- @Rete char(1),   
-- @CodiceFiscale varchar(16)  
AS  
BEGIN   

CREATE TABLE #TempTable(Asset varchar(10), Descrizione varchar(200),CodiceEsa varchar(15),R int,G int,B int)

--DICHIARO CURSORE
DECLARE curAssetColor CURSOR FOR 
select Asset,Descrizione,right(codicergb,6) as HEX FROM [C6StampeCentralizzate].[C6StagingPeriodico].[RP_AssetClass] where livello = 2 

declare @Asset [varchar](10)
declare @Descrizione [varchar](200)
declare @codiceHex [varchar](15) 


--ATTIVO IL CURSORE
OPEN curAssetColor
--PRELEVO la prossima riga 
FETCH NEXT FROM curAssetColor into @Asset,@Descrizione,@codiceHex

--Finchè trovo nuove righe...
WHILE @@FETCH_STATUS = 0
begin
	DECLARE @temp AS TABLE (hex char(6)) 

	INSERT  INTO @temp 
	VALUES  (@codiceHex) -- Should convert to Red:  Green:  Blue:  

	insert into #TempTable
	SELECT  @Asset,@Descrizione,'#' + @codiceHex
       ,R 
       ,G 
       ,B 
		FROM    @temp
		OUTER APPLY dbo.udf_HexToRGB(@codiceHex)

	--Continuo con le operazioni
	FETCH NEXT FROM curAssetColor into @Asset,@Descrizione,@codiceHex

	delete from @temp

end

--CHIUDO il CURSORE
CLOSE curAssetColor
--RIMUOVO il CURSORE dalla memoria
DEALLOCATE curAssetColor



select * from #TempTable




end


GO
/****** Object:  StoredProcedure [dbo].[inserisciRichiestaStorico]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--[dbo].[inserisciRichiestaStorico] 47,'S','SSTLCN46T54L331H','001594'
--select * from RichiestaPdfStorico truncate table RichiestaPdfStorico
CREATE procedure [dbo].[inserisciRichiestaStorico]

@identificativo as int,
@rete as char(1),
@cod_fiscale as varchar(16),
@cod_agente as varchar(6)

AS
BEGIN

declare @idMeta as int
declare @tempNomeFile as varchar(20)

set @tempNomeFile = cast(@identificativo as varchar)+'.pdf'

select @idMeta = idMetadato from RichiestaPdfStorico where idMetadato = @identificativo and Richiestaevasa = 0

if(isnull(@idMeta,0) <> @identificativo)
	insert into dbo.RichiestaPdfStorico(nomeFile,rete,cod_fiscale,cod_agente,richiestaEvasa,idMetadato)
	values (@tempNomeFile,@rete,@cod_fiscale,@cod_agente,0,@identificativo)

END

GO
/****** Object:  StoredProcedure [dbo].[InsertStartIntoLogFromDtsx]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[InsertStartIntoLogFromDtsx]
	-- Add the parameters for the stored procedure here
	@Nome as varchar(100)
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    INSERT INTO [dbo].[LOG_ESECUZIONE_PERIODICO]
           ([Nome]
           ,[Inizio]
           ,[Nota]
           )
     VALUES (
			@nome,
			getDate(),
			--'Elaborazione giornaliera')
			'Elaborazione trimestrale')
           
END




GO
/****** Object:  StoredProcedure [dbo].[InsertStartIntoLogFromDtsxImmobiliare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [dbo].[InsertStartIntoLogFromDtsxImmobiliare]
	-- Add the parameters for the stored procedure here
	@Nome as varchar(100)
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    INSERT INTO [dbo].[LOG_ESECUZIONE_PERIODICO_IMMOBILIARE]
           ([Nome]
           ,[Inizio]
           ,[Nota]
           )
     VALUES (
			@nome,
			getDate(),
			--'Elaborazione giornaliera')
			'Elaborazione Trimestrale Immobiliare')
           
END





GO
/****** Object:  StoredProcedure [dbo].[InsertStopIntoLogFromDtsx]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[InsertStopIntoLogFromDtsx]
	-- Add the parameters for the stored procedure here
	@Nome as varchar(100)
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    UPDATE
		dbo.LOG_ESECUZIONE_PERIODICO
	SET
		Fine = GETDATE()
		
	WHERE
		Nome = @Nome AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO
			WHERE
				Nome = @Nome
		)
           
END



GO
/****** Object:  StoredProcedure [dbo].[InsertStopIntoLogFromDtsxImmobiliare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[InsertStopIntoLogFromDtsxImmobiliare]
	-- Add the parameters for the stored procedure here
	@Nome as varchar(100)
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    UPDATE
		dbo.LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
	SET
		Fine = GETDATE()
		
	WHERE
		Nome = @Nome AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE_PERIODICO_IMMOBILIARE
			WHERE
				Nome = @Nome
		)
           
END




GO
/****** Object:  StoredProcedure [dbo].[JOB_Controlli_View]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



create procedure [dbo].[JOB_Controlli_View] as
begin

insert into C6MartPeriodico.selettore values
(5,getdate(),'Controlli View')
truncate table [dbo].[TB_Flussi_Mappatura]
truncate table [dbo].[TB_Controlli_Mattina_View]
EXEC msdb.dbo.sp_start_job N'Esportazione_Tabellone' ;  

end



GO
/****** Object:  StoredProcedure [dbo].[ListaCampione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[ListaCampione]
AS
BEGIN

	SET NOCOUNT ON;

	SELECT a.* FROM C6MARTPERIODICO.SELEZIONECAMPIONE2 a
	INNER JOIN appoCampioneReport b
	ON a.rete = b.rete
	AND a.cod_fiscale = b.cod_fiscale
	ORDER BY rete, cod_fiscale

END
GO
/****** Object:  StoredProcedure [dbo].[ListaCampioneDettaglioMovimenti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[ListaCampioneDettaglioMovimenti]
AS
BEGIN

	SET NOCOUNT ON;

	drop table if exists c6martperiodico.TB_ListaCampioneDettaglioMovimenti

	SELECT a.RETE, a.COD_FIS, isnull(a.DETT_MOV_PREC,0) as DETT_MOV_PREC , isnull(a.DETT_MOV_CORR,0) as DETT_MOV_CORR 
	into c6martperiodico.TB_ListaCampioneDettaglioMovimenti
	FROM C6MartPeriodico.DettaglioMovimenti a
	INNER JOIN appoCampioneReport b
	ON a.RETE = b.rete
	AND a.COD_FIS = b.cod_fiscale
	ORDER BY a.RETE, a.COD_FIS

	select * from c6martperiodico.TB_ListaCampioneDettaglioMovimenti

END

GO
/****** Object:  StoredProcedure [dbo].[ListaCampioneDettaglioMovimenti_Parziale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[ListaCampioneDettaglioMovimenti_Parziale]
AS
BEGIN

	SET NOCOUNT ON;

	drop table if exists c6martperiodico.TB_ListaCampioneDettaglioMovimenti_Parziale

	SELECT a.RETE, a.COD_FIS, substring(b.provenienza,20,3) as CASISTICA, isnull(a.DETT_MOV_PREC,0) as DETT_MOV_PREC , isnull(a.DETT_MOV_CORR,0) as DETT_MOV_CORR 
	into c6martperiodico.TB_ListaCampioneDettaglioMovimenti_Parziale
	FROM C6MartPeriodico.DettaglioMovimenti a
	INNER JOIN appoCampioneReport b
	ON a.RETE = b.rete
	AND a.COD_FIS = b.cod_fiscale
	AND provenienza like '%Apporti e Prelievi%'

	ORDER BY a.RETE, a.COD_FIS

	if( (select COUNT(*) from c6martperiodico.TB_ListaCampioneDettaglioMovimenti_Parziale)=0)
	begin 
	
drop table If exists #appo

select top 1 a.rete,a.cod_fiscale,s.DESCRIZIONE
into #appo
from C6MartPeriodico.selezionecampione s 
inner join appoCampioneReport a 
on s.rete+s.cod_fiscale=a.rete+a.cod_fiscale
where c39<>0 

union all

select top 1  a.rete,a.cod_fiscale,s.DESCRIZIONE  from C6MartPeriodico.selezionecampione s 
inner join appoCampioneReport a 
on s.rete+s.cod_fiscale=a.rete+a.cod_fiscale
where c40<>0 

union all

select top 1  a.rete,a.cod_fiscale,s.DESCRIZIONE from C6MartPeriodico.selezionecampione s 
inner join appoCampioneReport a 
on s.rete+s.cod_fiscale=a.rete+a.cod_fiscale
where c41<>0 

union all

select top 1  a.rete,a.cod_fiscale,s.DESCRIZIONE  from C6MartPeriodico.selezionecampione s 
inner join appoCampioneReport a 
on s.rete+s.cod_fiscale=a.rete+a.cod_fiscale
where c42<>0 

union all

select top 1  a.rete,a.cod_fiscale,s.DESCRIZIONE  from C6MartPeriodico.selezionecampione s 
inner join appoCampioneReport a 
on s.rete+s.cod_fiscale=a.rete+a.cod_fiscale
where c43<>0 

union all

select top 1  a.rete,a.cod_fiscale,s.DESCRIZIONE  from C6MartPeriodico.selezionecampione s 
inner join appoCampioneReport a 
on s.rete+s.cod_fiscale=a.rete+a.cod_fiscale
where c44<>0 

  update a set PROVENIENZA = 'APPORTI E PRELIEVI'
  FROM appoCampioneReport a
  where  cod_fiscale in (select cod_fiscale from #appo)

  exec [dbo].[ListaCampioneDettaglioMovimenti_Parziale]
  
  end



END

GO
/****** Object:  StoredProcedure [dbo].[LogFTP]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[LogFTP]
	-- Add the parameters for the stored procedure here
	@WelcomeMessage varchar(150),
    @BannerMessage varchar(150),
    @ResponseURI varchar(150),
    @StatusDescription varchar(150),
    @StatusCode varchar(150)
AS
BEGIN
	INSERT INTO [C6StampeCentralizzate].[dbo].[LOG_FTP]
           ([Date]
           ,[WelcomeMessage]
           ,[BannerMessage]
           ,[ResponseURI]
           ,[StatusDescription]
           ,[StatusCode])
     VALUES
           (getDate()
           ,@WelcomeMessage
           ,@BannerMessage
           ,@ResponseURI
           ,@StatusDescription
           ,@StatusCode
		   )
END

GO
/****** Object:  StoredProcedure [dbo].[PreGenerationElabCounter]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[PreGenerationElabCounter]
as
begin
SELECT elab, count(ELAB) as value from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
group by ELAB
end
GO
/****** Object:  StoredProcedure [dbo].[PreGenerationStatoCounter]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[PreGenerationStatoCounter]
as
begin
SELECT [stato_report] as stato ,count([stato_report]) as value from [C6MartPeriodico].[controllo_trimestrale] group by [stato_report] 
end
GO
/****** Object:  StoredProcedure [dbo].[RP_Popola_PiramideModello]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[RP_Popola_PiramideModello]

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

	declare @datacongelamento as datetime
	declare @dataInizioTrimestre as datetime
	declare @FineTrimestre as datetime

	set @datacongelamento = C6MartPeriodico.getDataCongelamento()

	set @FineTrimestre = C6MartPeriodico.getDataCongelamento()+1
	--convert (date, DATEADD(month, 0, '2020-10-31 00:00:00.000'))

	--Sostituire la data congelamento con la reale data di congelament tramite la funzione già esistente

	set @dataInizioTrimestre = DATEADD(m,-3,DATEADD(mm, DATEDIFF(m,0,@datacongelamento), 0))

	--print @datacongelamento
	--print @FineTrimestre
	--print @dataInizioTrimestre
    -- Insert statements for procedure here
	
	select Rete,
		   Cod_fiscale,
		   Data_foto
	into #ClientiPiramideIniziale
	from [C6MartPeriodico].[MONITORAGGIO_INIZIALE]
	where data_foto between @dataInizioTrimestre and @FineTrimestre

	--select min(data_foto) from [C6MartPeriodico].[MONITORAGGIO_INIZIALE] where data_foto >= '2020-05-30 00:00:00.000'

	
	insert into C6StagingPeriodico.Popola_PiramideModello
	select Rete,
		   Cod_fiscale,
		   Data_foto,
		   isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Ext'),0.00) as PERC_EXT,
		   isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Inv'),0.00) as PERC_INV,
           isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Pre'),0.00) as PERC_PRE,
           isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Ris'),0.00) as PERC_RIS,
           isnull([C6MartPeriodico].[GetPercentualePiramideMod](cod_fiscale ,RETE ,'Liq'),0.00) as PERC_LIQ
		   from #ClientiPiramideIniziale
		   where rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))+rtrim(ltrim(convert(varchar,data_foto,105))) not in 
		   (select distinct(rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))+rtrim(ltrim(convert(varchar,data_foto,105)))) from C6StagingPeriodico.Popola_PiramideModello)
		   --and rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale)) not in 
		   --(select distinct(rtrim(ltrim(rete))+rtrim(ltrim(cod_fiscale))) from C6StagingPeriodico.Popola_PiramideModello)



END

GO
/****** Object:  StoredProcedure [dbo].[SearchAllTables]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[SearchAllTables]
(
    @SearchStr nvarchar(100)
)
AS
BEGIN

    CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))

    SET NOCOUNT ON

    DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
    SET  @TableName = ''
    SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

    WHILE @TableName IS NOT NULL

    BEGIN
        SET @ColumnName = ''
        SET @TableName = 
        (
            SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
            FROM     INFORMATION_SCHEMA.TABLES
            WHERE         TABLE_TYPE = 'BASE TABLE'
                AND    QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
                AND    OBJECTPROPERTY(
                        OBJECT_ID(
                            QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                             ), 'IsMSShipped'
                               ) = 0
        )

        WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)

        BEGIN
            SET @ColumnName =
            (
                SELECT MIN(QUOTENAME(COLUMN_NAME))
                FROM     INFORMATION_SCHEMA.COLUMNS
                WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                    AND    TABLE_NAME    = PARSENAME(@TableName, 1)
                    AND    DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
                    AND    QUOTENAME(COLUMN_NAME) > @ColumnName
            )

            IF @ColumnName IS NOT NULL

            BEGIN
                INSERT INTO #Results
                EXEC
                (
                    'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
                    FROM ' + @TableName + ' (NOLOCK) ' +
                    ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
                )
            END
        END    
    END

    SELECT ColumnName, ColumnValue FROM #Results
END
GO
/****** Object:  StoredProcedure [dbo].[SelezioneCampione_Fc]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[SelezioneCampione_Fc]
   -- @NomeTabella as varchar(50),
    @NomeChiave as varchar(50)
AS
BEGIN
    DECLARE @sql nvarchar(max)
    DECLARE @SQLString NVARCHAR(500)
	DECLARE @ParmDefinition NVARCHAR(500)
	DECLARE @IntVariable INT
	DECLARE @Lastlname varchar(30)
	DECLARE @LastlnameOUT INT
	
	Set @IntVariable=1
	
	DECLARE @Giorni int, @i int
	SET @Giorni = 5
	SET @i = 0

--WHILE @IntVariable < 5
--BEGIN

	SET @SQLString = N'select @LastlnameOUT = count(*) from [C6MartPeriodico].[selezionecampione2] WHERE ' + 
            quotename(@NomeChiave) + ' > 0 '
	SET @ParmDefinition = N' @LastlnameOUT varchar(30) OUTPUT'
	EXECUTE sp_executesql @SQLString,@ParmDefinition,@LastlnameOUT=@Lastlname OUTPUT
	
	IF @Lastlname>0 
	Begin
	   select @Lastlname
	END
	--     SET @sql = N'insert into selezionecampione2_fc (rete,cod_fiscale,'+quotename(@NomeChiave)+') ' + 
	--	' select top 10 rete,cod_fiscale,'+@NomeChiave+' from [C6MartPeriodico].[selezionecampione2] WHERE ' + 
 --           quotename(@NomeChiave) + ' > 0 '  
                 
	--	 EXEC sp_executesql @sql
	--	 set @IntVariable=@IntVariable+1;
		 
	--End  -- IF

--END --While


 
END
GO
/****** Object:  StoredProcedure [dbo].[SO_getNewSubscriptions]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[SO_getNewSubscriptions]
	@ultimaDataRilevata_ISODATE as varchar(8)

AS

BEGIN

	DECLARE @the_date datetime
	SET @the_date = CAST(@ultimaDataRilevata_ISODATE AS DATETIME)

SELECT 
		[Cod_Fiscale],
      	[CodiceContratto],
      	[Cod_Agente],
		[Rete],
		dbo.ToShortDateString([Data_Perf]) as data_perfezionamento_C6,
		dbo.ToShortDateString([data_fineAvanzato] )as data_chiusura_C6
FROM  [C6Mart].[CONTRATTOSEI]
	
WHERE Data_Perf > @the_date
ORDER BY data_perf
END

GO
/****** Object:  StoredProcedure [dbo].[sp_change_codfiscale_SEIReport]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- D_DTSX 20180511
-- Esegue l'allineamento sulla SEIReport.
-- Sostituisce la sp_change_codfiscale della SEIReport, per poter eseguire l'allineamento direttamente dalla 203.
-- Viene richiamata dalla nuova stored procedure srv_change_codfiscaleMassiva_CU_SEIReport, che sostituisce la srv_change_codfiscaleMassiva_CU su SEIReport.

CREATE PROCEDURE [dbo].[sp_change_codfiscale_SEIReport]
	-- Add the parameters for the stored procedure here
	@nuovo varchar(16), 
	@vecchio varchar(16)
AS
BEGIN
	
	SET NOCOUNT ON;

begin try
	begin
	transaction update_cf

		update [VMBFDSREPSEI01\I1].SeiReport.dbo.Cliente
		set codEsterno = @nuovo, 
		codFiscale = @nuovo 
		where codEsterno = @vecchio
		
		--print @@rowcount

		update [VMBFDSREPSEI01\I1].SeiReport.dbo.C6ReportFisico
		set cliente = @nuovo
		where cliente = @vecchio

		update [VMBFDSREPSEI01\I1].SeiReport.dbo.C6ReportFisico_CAMPAGNA
		set cliente = @nuovo
		where cliente = @vecchio

		update [VMBFDSREPSEI01\I1].SeiReport.dbo.LogFilePDF
		set codicefiscale= @nuovo
		where codicefiscale= @vecchio

		update [VMBFDSREPSEI01\I1].SeiReport.dbo.RepositoryMetadati
		set cod_fiscale=@nuovo
		where cod_fiscale=@vecchio

	commit transaction update_cf
end try
begin catch
	rollback transaction update_cf
end catch

END
GO
/****** Object:  StoredProcedure [dbo].[sp_dts_addlogentry]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[sp_dts_addlogentry]  @event sysname,  @computer nvarchar(128),  @operator nvarchar(128),  @source nvarchar(1024),  @sourceid uniqueidentifier,  @executionid uniqueidentifier,  @starttime datetime,  @endtime datetime,  @datacode int,  @databytes image,  @message nvarchar(2048)AS  INSERT INTO sysdtslog90 (      event,      computer,      operator,      source,      sourceid,      executionid,      starttime,      endtime,      datacode,      databytes,      message )  VALUES (      @event,      @computer,      @operator,      @source,      @sourceid,      @executionid,      @starttime,      @endtime,      @datacode,      @databytes,      @message )  RETURN 0
GO
/****** Object:  StoredProcedure [dbo].[sp_getColors]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[sp_getColors]
   
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
SELECT [Tipo]
      ,[Codice]
      ,[Ordinamento]
      ,[Descrizione breve]
      ,[Descrizione estesa]
      ,[HexColor]
      ,[Red]
      ,[Green]
      ,[Blue]
  FROM [dbo].[Colori]
END
GO
/****** Object:  StoredProcedure [dbo].[sp_WhoIsActive]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[sp_WhoIsActive]
(
--~
	--Filters--Both inclusive and exclusive
	--Set either filter to '' to disable
	--Valid filter types are: session, program, database, login, and host
	--Session is a session ID, and either 0 or '' can be used to indicate "all" sessions
	--All other filter types support % or _ as wildcards
	@filter sysname = '',
	@filter_type VARCHAR(10) = 'session',
	@not_filter sysname = '',
	@not_filter_type VARCHAR(10) = 'session',

	--Retrieve data about the calling session?
	@show_own_spid BIT = 0,

	--Retrieve data about system sessions?
	@show_system_spids BIT = 0,

	--Controls how sleeping SPIDs are handled, based on the idea of levels of interest
	--0 does not pull any sleeping SPIDs
	--1 pulls only those sleeping SPIDs that also have an open transaction
	--2 pulls all sleeping SPIDs
	@show_sleeping_spids TINYINT = 1,

	--If 1, gets the full stored procedure or running batch, when available
	--If 0, gets only the actual statement that is currently running in the batch or procedure
	@get_full_inner_text BIT = 0,

	--Get associated query plans for running tasks, if available
	--If @get_plans = 1, gets the plan based on the request's statement offset
	--If @get_plans = 2, gets the entire plan based on the request's plan_handle
	@get_plans TINYINT = 0,

	--Get the associated outer ad hoc query or stored procedure call, if available
	@get_outer_command BIT = 0,

	--Enables pulling transaction log write info and transaction duration
	@get_transaction_info BIT = 0,

	--Get information on active tasks, based on three interest levels
	--Level 0 does not pull any task-related information
	--Level 1 is a lightweight mode that pulls the top non-CXPACKET wait, giving preference to blockers
	--Level 2 pulls all available task-based metrics, including: 
	--number of active tasks, current wait stats, physical I/O, context switches, and blocker information
	@get_task_info TINYINT = 1,

	--Gets associated locks for each request, aggregated in an XML format
	@get_locks BIT = 0,

	--Get average time for past runs of an active query
	--(based on the combination of plan handle, sql handle, and offset)
	@get_avg_time BIT = 0,

	--Get additional non-performance-related information about the session or request
	--text_size, language, date_format, date_first, quoted_identifier, arithabort, ansi_null_dflt_on, 
	--ansi_defaults, ansi_warnings, ansi_padding, ansi_nulls, concat_null_yields_null, 
	--transaction_isolation_level, lock_timeout, deadlock_priority, row_count, command_type
	--
	--If a SQL Agent job is running, an subnode called agent_info will be populated with some or all of
	--the following: job_id, job_name, step_id, step_name, msdb_query_error (in the event of an error)
	--
	--If @get_task_info is set to 2 and a lock wait is detected, a subnode called block_info will be
	--populated with some or all of the following: lock_type, database_name, object_id, file_id, hobt_id, 
	--applock_hash, metadata_resource, metadata_class_id, object_name, schema_name
	@get_additional_info BIT = 0,

	--Walk the blocking chain and count the number of 
	--total SPIDs blocked all the way down by a given session
	--Also enables task_info Level 1, if @get_task_info is set to 0
	@find_block_leaders BIT = 0,

	--Pull deltas on various metrics
	--Interval in seconds to wait before doing the second data pull
	@delta_interval TINYINT = 0,

	--List of desired output columns, in desired order
	--Note that the final output will be the intersection of all enabled features and all 
	--columns in the list. Therefore, only columns associated with enabled features will 
	--actually appear in the output. Likewise, removing columns from this list may effectively
	--disable features, even if they are turned on
	--
	--Each element in this list must be one of the valid output column names. Names must be
	--delimited by square brackets. White space, formatting, and additional characters are
	--allowed, as long as the list contains exact matches of delimited valid column names.
	@output_column_list VARCHAR(8000) = '[dd%][session_id][sql_text][sql_command][login_name][wait_info][tasks][tran_log%][cpu%][temp%][block%][reads%][writes%][context%][physical%][query_plan][locks][%]',

	--Column(s) by which to sort output, optionally with sort directions. 
		--Valid column choices:
		--session_id, physical_io, reads, physical_reads, writes, tempdb_allocations, 
		--tempdb_current, CPU, context_switches, used_memory, physical_io_delta, reads_delta, 
		--physical_reads_delta, writes_delta, tempdb_allocations_delta, tempdb_current_delta, 
		--CPU_delta, context_switches_delta, used_memory_delta, tasks, tran_start_time, 
		--open_tran_count, blocking_session_id, blocked_session_count, percent_complete, 
		--host_name, login_name, database_name, start_time, login_time, program_name
		--
		--Note that column names in the list must be bracket-delimited. Commas and/or white
		--space are not required. 
	@sort_order VARCHAR(500) = '[start_time] ASC',

	--Formats some of the output columns in a more "human readable" form
	--0 disables outfput format
	--1 formats the output for variable-width fonts
	--2 formats the output for fixed-width fonts
	@format_output TINYINT = 1,

	--If set to a non-blank value, the script will attempt to insert into the specified 
	--destination table. Please note that the script will not verify that the table exists, 
	--or that it has the correct schema, before doing the insert.
	--Table can be specified in one, two, or three-part format
	@destination_table VARCHAR(4000) = '',

	--If set to 1, no data collection will happen and no result set will be returned; instead,
	--a CREATE TABLE statement will be returned via the @schema parameter, which will match 
	--the schema of the result set that would be returned by using the same collection of the
	--rest of the parameters. The CREATE TABLE statement will have a placeholder token of 
	--<table_name> in place of an actual table name.
	@return_schema BIT = 0,
	@schema VARCHAR(MAX) = NULL OUTPUT,

	--Help! What do I do?
	@help BIT = 0
--~
)
/*
OUTPUT COLUMNS
--------------
Formatted/Non:	[session_id] [smallint] NOT NULL
	Session ID (a.k.a. SPID)

Formatted:		[dd hh:mm:ss.mss] [varchar](15) NULL
Non-Formatted:	<not returned>
	For an active request, time the query has been running
	For a sleeping session, time since the last batch completed

Formatted:		[dd hh:mm:ss.mss (avg)] [varchar](15) NULL
Non-Formatted:	[avg_elapsed_time] [int] NULL
	(Requires @get_avg_time option)
	How much time has the active portion of the query taken in the past, on average?

Formatted:		[physical_io] [varchar](30) NULL
Non-Formatted:	[physical_io] [bigint] NULL
	Shows the number of physical I/Os, for active requests

Formatted:		[reads] [varchar](30) NULL
Non-Formatted:	[reads] [bigint] NULL
	For an active request, number of reads done for the current query
	For a sleeping session, total number of reads done over the lifetime of the session

Formatted:		[physical_reads] [varchar](30) NULL
Non-Formatted:	[physical_reads] [bigint] NULL
	For an active request, number of physical reads done for the current query
	For a sleeping session, total number of physical reads done over the lifetime of the session

Formatted:		[writes] [varchar](30) NULL
Non-Formatted:	[writes] [bigint] NULL
	For an active request, number of writes done for the current query
	For a sleeping session, total number of writes done over the lifetime of the session

Formatted:		[tempdb_allocations] [varchar](30) NULL
Non-Formatted:	[tempdb_allocations] [bigint] NULL
	For an active request, number of TempDB writes done for the current query
	For a sleeping session, total number of TempDB writes done over the lifetime of the session

Formatted:		[tempdb_current] [varchar](30) NULL
Non-Formatted:	[tempdb_current] [bigint] NULL
	For an active request, number of TempDB pages currently allocated for the query
	For a sleeping session, number of TempDB pages currently allocated for the session

Formatted:		[CPU] [varchar](30) NULL
Non-Formatted:	[CPU] [int] NULL
	For an active request, total CPU time consumed by the current query
	For a sleeping session, total CPU time consumed over the lifetime of the session

Formatted:		[context_switches] [varchar](30) NULL
Non-Formatted:	[context_switches] [bigint] NULL
	Shows the number of context switches, for active requests

Formatted:		[used_memory] [varchar](30) NOT NULL
Non-Formatted:	[used_memory] [bigint] NOT NULL
	For an active request, total memory consumption for the current query
	For a sleeping session, total current memory consumption

Formatted:		[physical_io_delta] [varchar](30) NULL
Non-Formatted:	[physical_io_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the number of physical I/Os reported on the first and second collections. 
	If the request started after the first collection, the value will be NULL

Formatted:		[reads_delta] [varchar](30) NULL
Non-Formatted:	[reads_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the number of reads reported on the first and second collections. 
	If the request started after the first collection, the value will be NULL

Formatted:		[physical_reads_delta] [varchar](30) NULL
Non-Formatted:	[physical_reads_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the number of physical reads reported on the first and second collections. 
	If the request started after the first collection, the value will be NULL

Formatted:		[writes_delta] [varchar](30) NULL
Non-Formatted:	[writes_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the number of writes reported on the first and second collections. 
	If the request started after the first collection, the value will be NULL

Formatted:		[tempdb_allocations_delta] [varchar](30) NULL
Non-Formatted:	[tempdb_allocations_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the number of TempDB writes reported on the first and second collections. 
	If the request started after the first collection, the value will be NULL

Formatted:		[tempdb_current_delta] [varchar](30) NULL
Non-Formatted:	[tempdb_current_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the number of allocated TempDB pages reported on the first and second 
	collections. If the request started after the first collection, the value will be NULL

Formatted:		[CPU_delta] [varchar](30) NULL
Non-Formatted:	[CPU_delta] [int] NULL
	(Requires @delta_interval option)
	Difference between the CPU time reported on the first and second collections. 
	If the request started after the first collection, the value will be NULL

Formatted:		[context_switches_delta] [varchar](30) NULL
Non-Formatted:	[context_switches_delta] [bigint] NULL
	(Requires @delta_interval option)
	Difference between the context switches count reported on the first and second collections
	If the request started after the first collection, the value will be NULL

Formatted:		[used_memory_delta] [varchar](30) NULL
Non-Formatted:	[used_memory_delta] [bigint] NULL
	Difference between the memory usage reported on the first and second collections
	If the request started after the first collection, the value will be NULL

Formatted:		[tasks] [varchar](30) NULL
Non-Formatted:	[tasks] [smallint] NULL
	Number of worker tasks currently allocated, for active requests

Formatted/Non:	[status] [varchar](30) NOT NULL
	Activity status for the session (running, sleeping, etc)

Formatted/Non:	[wait_info] [nvarchar](4000) NULL
	Aggregates wait information, in the following format:
		(Ax: Bms/Cms/Dms)E
	A is the number of waiting tasks currently waiting on resource type E. B/C/D are wait
	times, in milliseconds. If only one thread is waiting, its wait time will be shown as B.
	If two tasks are waiting, each of their wait times will be shown (B/C). If three or more 
	tasks are waiting, the minimum, average, and maximum wait times will be shown (B/C/D).
	If wait type E is a page latch wait and the page is of a "special" type (e.g. PFS, GAM, SGAM), 
	the page type will be identified.
	If wait type E is CXPACKET, the nodeId from the query plan will be identified

Formatted/Non:	[locks] [xml] NULL
	(Requires @get_locks option)
	Aggregates lock information, in XML format.
	The lock XML includes the lock mode, locked object, and aggregates the number of requests. 
	Attempts are made to identify locked objects by name

Formatted/Non:	[tran_start_time] [datetime] NULL
	(Requires @get_transaction_info option)
	Date and time that the first transaction opened by a session caused a transaction log 
	write to occur.

Formatted/Non:	[tran_log_writes] [nvarchar](4000) NULL
	(Requires @get_transaction_info option)
	Aggregates transaction log write information, in the following format:
	A:wB (C kB)
	A is a database that has been touched by an active transaction
	B is the number of log writes that have been made in the database as a result of the transaction
	C is the number of log kilobytes consumed by the log records

Formatted:		[open_tran_count] [varchar](30) NULL
Non-Formatted:	[open_tran_count] [smallint] NULL
	Shows the number of open transactions the session has open

Formatted:		[sql_command] [xml] NULL
Non-Formatted:	[sql_command] [nvarchar](max) NULL
	(Requires @get_outer_command option)
	Shows the "outer" SQL command, i.e. the text of the batch or RPC sent to the server, 
	if available

Formatted:		[sql_text] [xml] NULL
Non-Formatted:	[sql_text] [nvarchar](max) NULL
	Shows the SQL text for active requests or the last statement executed
	for sleeping sessions, if available in either case.
	If @get_full_inner_text option is set, shows the full text of the batch.
	Otherwise, shows only the active statement within the batch.
	If the query text is locked, a special timeout message will be sent, in the following format:
		<timeout_exceeded />
	If an error occurs, an error message will be sent, in the following format:
		<error message="message" />

Formatted/Non:	[query_plan] [xml] NULL
	(Requires @get_plans option)
	Shows the query plan for the request, if available.
	If the plan is locked, a special timeout message will be sent, in the following format:
		<timeout_exceeded />
	If an error occurs, an error message will be sent, in the following format:
		<error message="message" />

Formatted/Non:	[blocking_session_id] [smallint] NULL
	When applicable, shows the blocking SPID

Formatted:		[blocked_session_count] [varchar](30) NULL
Non-Formatted:	[blocked_session_count] [smallint] NULL
	(Requires @find_block_leaders option)
	The total number of SPIDs blocked by this session,
	all the way down the blocking chain.

Formatted:		[percent_complete] [varchar](30) NULL
Non-Formatted:	[percent_complete] [real] NULL
	When applicable, shows the percent complete (e.g. for backups, restores, and some rollbacks)

Formatted/Non:	[host_name] [sysname] NOT NULL
	Shows the host name for the connection

Formatted/Non:	[login_name] [sysname] NOT NULL
	Shows the login name for the connection

Formatted/Non:	[database_name] [sysname] NULL
	Shows the connected database

Formatted/Non:	[program_name] [sysname] NULL
	Shows the reported program/application name

Formatted/Non:	[additional_info] [xml] NULL
	(Requires @get_additional_info option)
	Returns additional non-performance-related session/request information
	If the script finds a SQL Agent job running, the name of the job and job step will be reported
	If @get_task_info = 2 and the script finds a lock wait, the locked object will be reported

Formatted/Non:	[start_time] [datetime] NOT NULL
	For active requests, shows the time the request started
	For sleeping sessions, shows the time the last batch completed

Formatted/Non:	[login_time] [datetime] NOT NULL
	Shows the time that the session connected

Formatted/Non:	[request_id] [int] NULL
	For active requests, shows the request_id
	Should be 0 unless MARS is being used

Formatted/Non:	[collection_time] [datetime] NOT NULL
	Time that this script's final SELECT ran
*/
AS
BEGIN;
	SET NOCOUNT ON; 
	SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
	SET QUOTED_IDENTIFIER ON;
	SET ANSI_PADDING ON;
	SET CONCAT_NULL_YIELDS_NULL ON;
	SET ANSI_WARNINGS ON;
	SET NUMERIC_ROUNDABORT OFF;
	SET ARITHABORT ON;

	IF
		@filter IS NULL
		OR @filter_type IS NULL
		OR @not_filter IS NULL
		OR @not_filter_type IS NULL
		OR @show_own_spid IS NULL
		OR @show_system_spids IS NULL
		OR @show_sleeping_spids IS NULL
		OR @get_full_inner_text IS NULL
		OR @get_plans IS NULL
		OR @get_outer_command IS NULL
		OR @get_transaction_info IS NULL
		OR @get_task_info IS NULL
		OR @get_locks IS NULL
		OR @get_avg_time IS NULL
		OR @get_additional_info IS NULL
		OR @find_block_leaders IS NULL
		OR @delta_interval IS NULL
		OR @format_output IS NULL
		OR @output_column_list IS NULL
		OR @sort_order IS NULL
		OR @return_schema IS NULL
		OR @destination_table IS NULL
		OR @help IS NULL
	BEGIN;
		RAISERROR('Input parameters cannot be NULL', 16, 1);
		RETURN;
	END;
	
	IF @filter_type NOT IN ('session', 'program', 'database', 'login', 'host')
	BEGIN;
		RAISERROR('Valid filter types are: session, program, database, login, host', 16, 1);
		RETURN;
	END;
	
	IF @filter_type = 'session' AND @filter LIKE '%[^0123456789]%'
	BEGIN;
		RAISERROR('Session filters must be valid integers', 16, 1);
		RETURN;
	END;
	
	IF @not_filter_type NOT IN ('session', 'program', 'database', 'login', 'host')
	BEGIN;
		RAISERROR('Valid filter types are: session, program, database, login, host', 16, 1);
		RETURN;
	END;
	
	IF @not_filter_type = 'session' AND @not_filter LIKE '%[^0123456789]%'
	BEGIN;
		RAISERROR('Session filters must be valid integers', 16, 1);
		RETURN;
	END;
	
	IF @show_sleeping_spids NOT IN (0, 1, 2)
	BEGIN;
		RAISERROR('Valid values for @show_sleeping_spids are: 0, 1, or 2', 16, 1);
		RETURN;
	END;
	
	IF @get_plans NOT IN (0, 1, 2)
	BEGIN;
		RAISERROR('Valid values for @get_plans are: 0, 1, or 2', 16, 1);
		RETURN;
	END;

	IF @get_task_info NOT IN (0, 1, 2)
	BEGIN;
		RAISERROR('Valid values for @get_task_info are: 0, 1, or 2', 16, 1);
		RETURN;
	END;

	IF @format_output NOT IN (0, 1, 2)
	BEGIN;
		RAISERROR('Valid values for @format_output are: 0, 1, or 2', 16, 1);
		RETURN;
	END;
	
	IF @help = 1
	BEGIN;
		DECLARE 
			@header VARCHAR(MAX),
			@params VARCHAR(MAX),
			@outputs VARCHAR(MAX);

		SELECT 
			@header =
				REPLACE
				(
					REPLACE
					(
						CONVERT
						(
							VARCHAR(MAX),
							SUBSTRING
							(
								t.text, 
								CHARINDEX('/' + REPLICATE('*', 93), t.text) + 94,
								CHARINDEX(REPLICATE('*', 93) + '/', t.text) - (CHARINDEX('/' + REPLICATE('*', 93), t.text) + 94)
							)
						),
						CHAR(13)+CHAR(10),
						CHAR(13)
					),
					'	',
					''
				),
			@params =
				CHAR(13) +
					REPLACE
					(
						REPLACE
						(
							CONVERT
							(
								VARCHAR(MAX),
								SUBSTRING
								(
									t.text, 
									CHARINDEX('--~', t.text) + 5, 
									CHARINDEX('--~', t.text, CHARINDEX('--~', t.text) + 5) - (CHARINDEX('--~', t.text) + 5)
								)
							),
							CHAR(13)+CHAR(10),
							CHAR(13)
						),
						'	',
						''
					),
				@outputs = 
					CHAR(13) +
						REPLACE
						(
							REPLACE
							(
								REPLACE
								(
									CONVERT
									(
										VARCHAR(MAX),
										SUBSTRING
										(
											t.text, 
											CHARINDEX('OUTPUT COLUMNS'+CHAR(13)+CHAR(10)+'--------------', t.text) + 32,
											CHARINDEX('*/', t.text, CHARINDEX('OUTPUT COLUMNS'+CHAR(13)+CHAR(10)+'--------------', t.text) + 32) - (CHARINDEX('OUTPUT COLUMNS'+CHAR(13)+CHAR(10)+'--------------', t.text) + 32)
										)
									),
									CHAR(9),
									CHAR(255)
								),
								CHAR(13)+CHAR(10),
								CHAR(13)
							),
							'	',
							''
						) +
						CHAR(13)
		FROM sys.dm_exec_requests AS r
		CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t
		WHERE
			r.session_id = @@SPID;

		WITH
		a0 AS
		(SELECT 1 AS n UNION ALL SELECT 1),
		a1 AS
		(SELECT 1 AS n FROM a0 AS a, a0 AS b),
		a2 AS
		(SELECT 1 AS n FROM a1 AS a, a1 AS b),
		a3 AS
		(SELECT 1 AS n FROM a2 AS a, a2 AS b),
		a4 AS
		(SELECT 1 AS n FROM a3 AS a, a3 AS b),
		numbers AS
		(
			SELECT TOP(LEN(@header) - 1)
				ROW_NUMBER() OVER
				(
					ORDER BY (SELECT NULL)
				) AS number
			FROM a4
			ORDER BY
				number
		)
		SELECT
			RTRIM(LTRIM(
				SUBSTRING
				(
					@header,
					number + 1,
					CHARINDEX(CHAR(13), @header, number + 1) - number - 1
				)
			)) AS [------header---------------------------------------------------------------------------------------------------------------]
		FROM numbers
		WHERE
			SUBSTRING(@header, number, 1) = CHAR(13);

		WITH
		a0 AS
		(SELECT 1 AS n UNION ALL SELECT 1),
		a1 AS
		(SELECT 1 AS n FROM a0 AS a, a0 AS b),
		a2 AS
		(SELECT 1 AS n FROM a1 AS a, a1 AS b),
		a3 AS
		(SELECT 1 AS n FROM a2 AS a, a2 AS b),
		a4 AS
		(SELECT 1 AS n FROM a3 AS a, a3 AS b),
		numbers AS
		(
			SELECT TOP(LEN(@params) - 1)
				ROW_NUMBER() OVER
				(
					ORDER BY (SELECT NULL)
				) AS number
			FROM a4
			ORDER BY
				number
		),
		tokens AS
		(
			SELECT 
				RTRIM(LTRIM(
					SUBSTRING
					(
						@params,
						number + 1,
						CHARINDEX(CHAR(13), @params, number + 1) - number - 1
					)
				)) AS token,
				number,
				CASE
					WHEN SUBSTRING(@params, number + 1, 1) = CHAR(13) THEN number
					ELSE COALESCE(NULLIF(CHARINDEX(',' + CHAR(13) + CHAR(13), @params, number), 0), LEN(@params)) 
				END AS param_group,
				ROW_NUMBER() OVER
				(
					PARTITION BY
						CHARINDEX(',' + CHAR(13) + CHAR(13), @params, number),
						SUBSTRING(@params, number+1, 1)
					ORDER BY 
						number
				) AS group_order
			FROM numbers
			WHERE
				SUBSTRING(@params, number, 1) = CHAR(13)
		),
		parsed_tokens AS
		(
			SELECT
				MIN
				(
					CASE
						WHEN token LIKE '@%' THEN token
						ELSE NULL
					END
				) AS parameter,
				MIN
				(
					CASE
						WHEN token LIKE '--%' THEN RIGHT(token, LEN(token) - 2)
						ELSE NULL
					END
				) AS description,
				param_group,
				group_order
			FROM tokens
			WHERE
				NOT 
				(
					token = '' 
					AND group_order > 1
				)
			GROUP BY
				param_group,
				group_order
		)
		SELECT
			CASE
				WHEN description IS NULL AND parameter IS NULL THEN '-------------------------------------------------------------------------'
				WHEN param_group = MAX(param_group) OVER() THEN parameter
				ELSE COALESCE(LEFT(parameter, LEN(parameter) - 1), '')
			END AS [------parameter----------------------------------------------------------],
			CASE
				WHEN description IS NULL AND parameter IS NULL THEN '----------------------------------------------------------------------------------------------------------------------'
				ELSE COALESCE(description, '')
			END AS [------description-----------------------------------------------------------------------------------------------------]
		FROM parsed_tokens
		ORDER BY
			param_group, 
			group_order;
		
		WITH
		a0 AS
		(SELECT 1 AS n UNION ALL SELECT 1),
		a1 AS
		(SELECT 1 AS n FROM a0 AS a, a0 AS b),
		a2 AS
		(SELECT 1 AS n FROM a1 AS a, a1 AS b),
		a3 AS
		(SELECT 1 AS n FROM a2 AS a, a2 AS b),
		a4 AS
		(SELECT 1 AS n FROM a3 AS a, a3 AS b),
		numbers AS
		(
			SELECT TOP(LEN(@outputs) - 1)
				ROW_NUMBER() OVER
				(
					ORDER BY (SELECT NULL)
				) AS number
			FROM a4
			ORDER BY
				number
		),
		tokens AS
		(
			SELECT 
				RTRIM(LTRIM(
					SUBSTRING
					(
						@outputs,
						number + 1,
						CASE
							WHEN 
								COALESCE(NULLIF(CHARINDEX(CHAR(13) + 'Formatted', @outputs, number + 1), 0), LEN(@outputs)) < 
								COALESCE(NULLIF(CHARINDEX(CHAR(13) + CHAR(255) COLLATE Latin1_General_Bin2, @outputs, number + 1), 0), LEN(@outputs))
								THEN COALESCE(NULLIF(CHARINDEX(CHAR(13) + 'Formatted', @outputs, number + 1), 0), LEN(@outputs)) - number - 1
							ELSE
								COALESCE(NULLIF(CHARINDEX(CHAR(13) + CHAR(255) COLLATE Latin1_General_Bin2, @outputs, number + 1), 0), LEN(@outputs)) - number - 1
						END
					)
				)) AS token,
				number,
				COALESCE(NULLIF(CHARINDEX(CHAR(13) + 'Formatted', @outputs, number + 1), 0), LEN(@outputs)) AS output_group,
				ROW_NUMBER() OVER
				(
					PARTITION BY 
						COALESCE(NULLIF(CHARINDEX(CHAR(13) + 'Formatted', @outputs, number + 1), 0), LEN(@outputs))
					ORDER BY
						number
				) AS output_group_order
			FROM numbers
			WHERE
				SUBSTRING(@outputs, number, 10) = CHAR(13) + 'Formatted'
				OR SUBSTRING(@outputs, number, 2) = CHAR(13) + CHAR(255) COLLATE Latin1_General_Bin2
		),
		output_tokens AS
		(
			SELECT 
				*,
				CASE output_group_order
					WHEN 2 THEN MAX(CASE output_group_order WHEN 1 THEN token ELSE NULL END) OVER (PARTITION BY output_group)
					ELSE ''
				END COLLATE Latin1_General_Bin2 AS column_info
			FROM tokens
		)
		SELECT
			CASE output_group_order
				WHEN 1 THEN '-----------------------------------'
				WHEN 2 THEN 
					CASE
						WHEN CHARINDEX('Formatted/Non:', column_info) = 1 THEN
							SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+1, CHARINDEX(']', column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+2) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info))
						ELSE
							SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+2, CHARINDEX(']', column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+2) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)-1)
					END
				ELSE ''
			END AS formatted_column_name,
			CASE output_group_order
				WHEN 1 THEN '-----------------------------------'
				WHEN 2 THEN 
					CASE
						WHEN CHARINDEX('Formatted/Non:', column_info) = 1 THEN
							SUBSTRING(column_info, CHARINDEX(']', column_info)+2, LEN(column_info))
						ELSE
							SUBSTRING(column_info, CHARINDEX(']', column_info)+2, CHARINDEX('Non-Formatted:', column_info, CHARINDEX(']', column_info)+2) - CHARINDEX(']', column_info)-3)
					END
				ELSE ''
			END AS formatted_column_type,
			CASE output_group_order
				WHEN 1 THEN '---------------------------------------'
				WHEN 2 THEN 
					CASE
						WHEN CHARINDEX('Formatted/Non:', column_info) = 1 THEN ''
						ELSE
							CASE
								WHEN SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info))+1, 1) = '<' THEN
									SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info))+1, CHARINDEX('>', column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info))+1) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info)))
								ELSE
									SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info))+1, CHARINDEX(']', column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info))+1) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info)))
							END
					END
				ELSE ''
			END AS unformatted_column_name,
			CASE output_group_order
				WHEN 1 THEN '---------------------------------------'
				WHEN 2 THEN 
					CASE
						WHEN CHARINDEX('Formatted/Non:', column_info) = 1 THEN ''
						ELSE
							CASE
								WHEN SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX('Non-Formatted:', column_info))+1, 1) = '<' THEN ''
								ELSE
									SUBSTRING(column_info, CHARINDEX(']', column_info, CHARINDEX('Non-Formatted:', column_info))+2, CHARINDEX('Non-Formatted:', column_info, CHARINDEX(']', column_info)+2) - CHARINDEX(']', column_info)-3)
							END
					END
				ELSE ''
			END AS unformatted_column_type,
			CASE output_group_order
				WHEN 1 THEN '----------------------------------------------------------------------------------------------------------------------'
				ELSE REPLACE(token, CHAR(255) COLLATE Latin1_General_Bin2, '')
			END AS [------description-----------------------------------------------------------------------------------------------------]
		FROM output_tokens
		WHERE
			NOT 
			(
				output_group_order = 1 
				AND output_group = LEN(@outputs)
			)
		ORDER BY
			output_group,
			CASE output_group_order
				WHEN 1 THEN 99
				ELSE output_group_order
			END;

		RETURN;
	END;

	WITH
	a0 AS
	(SELECT 1 AS n UNION ALL SELECT 1),
	a1 AS
	(SELECT 1 AS n FROM a0 AS a, a0 AS b),
	a2 AS
	(SELECT 1 AS n FROM a1 AS a, a1 AS b),
	a3 AS
	(SELECT 1 AS n FROM a2 AS a, a2 AS b),
	a4 AS
	(SELECT 1 AS n FROM a3 AS a, a3 AS b),
	numbers AS
	(
		SELECT TOP(LEN(@output_column_list))
			ROW_NUMBER() OVER
			(
				ORDER BY (SELECT NULL)
			) AS number
		FROM a4
		ORDER BY
			number
	),
	tokens AS
	(
		SELECT 
			'|[' +
				SUBSTRING
				(
					@output_column_list,
					number + 1,
					CHARINDEX(']', @output_column_list, number) - number - 1
				) + '|]' AS token,
			number
		FROM numbers
		WHERE
			SUBSTRING(@output_column_list, number, 1) = '['
	),
	ordered_columns AS
	(
		SELECT
			x.column_name,
			ROW_NUMBER() OVER
			(
				PARTITION BY
					x.column_name
				ORDER BY
					tokens.number,
					x.default_order
			) AS r,
			ROW_NUMBER() OVER
			(
				ORDER BY
					tokens.number,
					x.default_order
			) AS s
		FROM tokens
		JOIN
		(
			SELECT '[session_id]' AS column_name, 1 AS default_order
			UNION ALL
			SELECT '[dd hh:mm:ss.mss]', 2
			WHERE
				@format_output IN (1, 2)
			UNION ALL
			SELECT '[dd hh:mm:ss.mss (avg)]', 3
			WHERE
				@format_output IN (1, 2)
				AND @get_avg_time = 1
			UNION ALL
			SELECT '[avg_elapsed_time]', 4
			WHERE
				@format_output = 0
				AND @get_avg_time = 1
			UNION ALL
			SELECT '[physical_io]', 5
			WHERE
				@get_task_info = 2
			UNION ALL
			SELECT '[reads]', 6
			UNION ALL
			SELECT '[physical_reads]', 7
			UNION ALL
			SELECT '[writes]', 8
			UNION ALL
			SELECT '[tempdb_allocations]', 9
			UNION ALL
			SELECT '[tempdb_current]', 10
			UNION ALL
			SELECT '[CPU]', 11
			UNION ALL
			SELECT '[context_switches]', 12
			WHERE
				@get_task_info = 2
			UNION ALL
			SELECT '[used_memory]', 13
			UNION ALL
			SELECT '[physical_io_delta]', 14
			WHERE
				@delta_interval > 0	
				AND @get_task_info = 2
			UNION ALL
			SELECT '[reads_delta]', 15
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[physical_reads_delta]', 16
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[writes_delta]', 17
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[tempdb_allocations_delta]', 18
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[tempdb_current_delta]', 19
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[CPU_delta]', 20
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[context_switches_delta]', 21
			WHERE
				@delta_interval > 0
				AND @get_task_info = 2
			UNION ALL
			SELECT '[used_memory_delta]', 22
			WHERE
				@delta_interval > 0
			UNION ALL
			SELECT '[tasks]', 23
			WHERE
				@get_task_info = 2
			UNION ALL
			SELECT '[status]', 24
			UNION ALL
			SELECT '[wait_info]', 25
			WHERE
				@get_task_info > 0
				OR @find_block_leaders = 1
			UNION ALL
			SELECT '[locks]', 26
			WHERE
				@get_locks = 1
			UNION ALL
			SELECT '[tran_start_time]', 27
			WHERE
				@get_transaction_info = 1
			UNION ALL
			SELECT '[tran_log_writes]', 28
			WHERE
				@get_transaction_info = 1
			UNION ALL
			SELECT '[open_tran_count]', 29
			UNION ALL
			SELECT '[sql_command]', 30
			WHERE
				@get_outer_command = 1
			UNION ALL
			SELECT '[sql_text]', 31
			UNION ALL
			SELECT '[query_plan]', 32
			WHERE
				@get_plans >= 1
			UNION ALL
			SELECT '[blocking_session_id]', 33
			WHERE
				@get_task_info > 0
				OR @find_block_leaders = 1
			UNION ALL
			SELECT '[blocked_session_count]', 34
			WHERE
				@find_block_leaders = 1
			UNION ALL
			SELECT '[percent_complete]', 35
			UNION ALL
			SELECT '[host_name]', 36
			UNION ALL
			SELECT '[login_name]', 37
			UNION ALL
			SELECT '[database_name]', 38
			UNION ALL
			SELECT '[program_name]', 39
			UNION ALL
			SELECT '[additional_info]', 40
			WHERE
				@get_additional_info = 1
			UNION ALL
			SELECT '[start_time]', 41
			UNION ALL
			SELECT '[login_time]', 42
			UNION ALL
			SELECT '[request_id]', 43
			UNION ALL
			SELECT '[collection_time]', 44
		) AS x ON 
			x.column_name LIKE token ESCAPE '|'
	)
	SELECT
		@output_column_list =
			STUFF
			(
				(
					SELECT
						',' + column_name as [text()]
					FROM ordered_columns
					WHERE
						r = 1
					ORDER BY
						s
					FOR XML
						PATH('')
				),
				1,
				1,
				''
			);
	
	IF COALESCE(RTRIM(@output_column_list), '') = ''
	BEGIN;
		RAISERROR('No valid column matches found in @output_column_list or no columns remain due to selected options.', 16, 1);
		RETURN;
	END;
	
	IF @destination_table <> ''
	BEGIN;
		SET @destination_table = 
			--database
			COALESCE(QUOTENAME(PARSENAME(@destination_table, 3)) + '.', '') +
			--schema
			COALESCE(QUOTENAME(PARSENAME(@destination_table, 2)) + '.', '') +
			--table
			COALESCE(QUOTENAME(PARSENAME(@destination_table, 1)), '');
			
		IF COALESCE(RTRIM(@destination_table), '') = ''
		BEGIN;
			RAISERROR('Destination table not properly formatted.', 16, 1);
			RETURN;
		END;
	END;

	WITH
	a0 AS
	(SELECT 1 AS n UNION ALL SELECT 1),
	a1 AS
	(SELECT 1 AS n FROM a0 AS a, a0 AS b),
	a2 AS
	(SELECT 1 AS n FROM a1 AS a, a1 AS b),
	a3 AS
	(SELECT 1 AS n FROM a2 AS a, a2 AS b),
	a4 AS
	(SELECT 1 AS n FROM a3 AS a, a3 AS b),
	numbers AS
	(
		SELECT TOP(LEN(@sort_order))
			ROW_NUMBER() OVER
			(
				ORDER BY (SELECT NULL)
			) AS number
		FROM a4
		ORDER BY
			number
	),
	tokens AS
	(
		SELECT 
			'|[' +
				SUBSTRING
				(
					@sort_order,
					number + 1,
					CHARINDEX(']', @sort_order, number) - number - 1
				) + '|]' AS token,
			SUBSTRING
			(
				@sort_order,
				CHARINDEX(']', @sort_order, number) + 1,
				COALESCE(NULLIF(CHARINDEX('[', @sort_order, CHARINDEX(']', @sort_order, number)), 0), LEN(@sort_order)) - CHARINDEX(']', @sort_order, number)
			) AS next_chunk,
			number
		FROM numbers
		WHERE
			SUBSTRING(@sort_order, number, 1) = '['
	),
	ordered_columns AS
	(
		SELECT
			x.column_name +
				CASE
					WHEN tokens.next_chunk LIKE '%asc%' THEN ' ASC'
					WHEN tokens.next_chunk LIKE '%desc%' THEN ' DESC'
					ELSE ''
				END AS column_name,
			ROW_NUMBER() OVER
			(
				PARTITION BY
					x.column_name
				ORDER BY
					tokens.number
			) AS r,
			tokens.number
		FROM tokens
		JOIN
		(
			SELECT '[session_id]' AS column_name
			UNION ALL
			SELECT '[physical_io]'
			UNION ALL
			SELECT '[reads]'
			UNION ALL
			SELECT '[physical_reads]'
			UNION ALL
			SELECT '[writes]'
			UNION ALL
			SELECT '[tempdb_allocations]'
			UNION ALL
			SELECT '[tempdb_current]'
			UNION ALL
			SELECT '[CPU]'
			UNION ALL
			SELECT '[context_switches]'
			UNION ALL
			SELECT '[used_memory]'
			UNION ALL
			SELECT '[physical_io_delta]'
			UNION ALL
			SELECT '[reads_delta]'
			UNION ALL
			SELECT '[physical_reads_delta]'
			UNION ALL
			SELECT '[writes_delta]'
			UNION ALL
			SELECT '[tempdb_allocations_delta]'
			UNION ALL
			SELECT '[tempdb_current_delta]'
			UNION ALL
			SELECT '[CPU_delta]'
			UNION ALL
			SELECT '[context_switches_delta]'
			UNION ALL
			SELECT '[used_memory_delta]'
			UNION ALL
			SELECT '[tasks]'
			UNION ALL
			SELECT '[tran_start_time]'
			UNION ALL
			SELECT '[open_tran_count]'
			UNION ALL
			SELECT '[blocking_session_id]'
			UNION ALL
			SELECT '[blocked_session_count]'
			UNION ALL
			SELECT '[percent_complete]'
			UNION ALL
			SELECT '[host_name]'
			UNION ALL
			SELECT '[login_name]'
			UNION ALL
			SELECT '[database_name]'
			UNION ALL
			SELECT '[start_time]'
			UNION ALL
			SELECT '[login_time]'
			UNION ALL
			SELECT '[program_name]'
		) AS x ON 
			x.column_name LIKE token ESCAPE '|'
	)
	SELECT
		@sort_order = COALESCE(z.sort_order, '')
	FROM
	(
		SELECT
			STUFF
			(
				(
					SELECT
						',' + column_name as [text()]
					FROM ordered_columns
					WHERE
						r = 1
					ORDER BY
						number
					FOR XML
						PATH('')
				),
				1,
				1,
				''
			) AS sort_order
	) AS z;

	CREATE TABLE #sessions
	(
		recursion SMALLINT NOT NULL,
		session_id SMALLINT NOT NULL,
		request_id INT NOT NULL,
		session_number INT NOT NULL,
		elapsed_time INT NOT NULL,
		avg_elapsed_time INT NULL,
		physical_io BIGINT NULL,
		reads BIGINT NULL,
		physical_reads BIGINT NULL,
		writes BIGINT NULL,
		tempdb_allocations BIGINT NULL,
		tempdb_current BIGINT NULL,
		CPU INT NULL,
		thread_CPU_snapshot BIGINT NULL,
		context_switches BIGINT NULL,
		used_memory BIGINT NOT NULL, 
		tasks SMALLINT NULL,
		status VARCHAR(30) NOT NULL,
		wait_info NVARCHAR(4000) NULL,
		locks XML NULL,
		transaction_id BIGINT NULL,
		tran_start_time DATETIME NULL,
		tran_log_writes NVARCHAR(4000) NULL,
		open_tran_count SMALLINT NULL,
		sql_command XML NULL,
		sql_handle VARBINARY(64) NULL,
		statement_start_offset INT NULL,
		statement_end_offset INT NULL,
		sql_text XML NULL,
		plan_handle VARBINARY(64) NULL,
		query_plan XML NULL,
		blocking_session_id SMALLINT NULL,
		blocked_session_count SMALLINT NULL,
		percent_complete REAL NULL,
		host_name sysname NULL,
		login_name sysname NOT NULL,
		database_name sysname NULL,
		program_name sysname NULL,
		additional_info XML NULL,
		start_time DATETIME NOT NULL,
		login_time DATETIME NULL,
		last_request_start_time DATETIME NULL,
		PRIMARY KEY CLUSTERED (session_id, request_id, recursion) WITH (IGNORE_DUP_KEY = ON),
		UNIQUE NONCLUSTERED (transaction_id, session_id, request_id, recursion) WITH (IGNORE_DUP_KEY = ON)
	);

	IF @return_schema = 0
	BEGIN;
		--Disable unnecessary autostats on the table
		CREATE STATISTICS s_session_id ON #sessions (session_id)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_request_id ON #sessions (request_id)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_transaction_id ON #sessions (transaction_id)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_session_number ON #sessions (session_number)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_status ON #sessions (status)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_start_time ON #sessions (start_time)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_last_request_start_time ON #sessions (last_request_start_time)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;
		CREATE STATISTICS s_recursion ON #sessions (recursion)
		WITH SAMPLE 0 ROWS, NORECOMPUTE;

		DECLARE @recursion SMALLINT;
		SET @recursion = 
			CASE @delta_interval
				WHEN 0 THEN 1
				ELSE -1
			END;

		DECLARE @first_collection_ms_ticks BIGINT;
		DECLARE @last_collection_start DATETIME;
		DECLARE @sys_info BIT;
		SET @sys_info = ISNULL(CONVERT(BIT, SIGN(OBJECT_ID('sys.dm_os_sys_info'))), 0);

		--Used for the delta pull
		REDO:;
		
		IF 
			@get_locks = 1 
			AND @recursion = 1
			AND @output_column_list LIKE '%|[locks|]%' ESCAPE '|'
		BEGIN;
			SELECT
				y.resource_type,
				y.database_name,
				y.object_id,
				y.file_id,
				y.page_type,
				y.hobt_id,
				y.allocation_unit_id,
				y.index_id,
				y.schema_id,
				y.principal_id,
				y.request_mode,
				y.request_status,
				y.session_id,
				y.resource_description,
				y.request_count,
				s.request_id,
				s.start_time,
				CONVERT(sysname, NULL) AS object_name,
				CONVERT(sysname, NULL) AS index_name,
				CONVERT(sysname, NULL) AS schema_name,
				CONVERT(sysname, NULL) AS principal_name,
				CONVERT(NVARCHAR(2048), NULL) AS query_error
			INTO #locks
			FROM
			(
				SELECT
					sp.spid AS session_id,
					CASE sp.status
						WHEN 'sleeping' THEN CONVERT(INT, 0)
						ELSE sp.request_id
					END AS request_id,
					CASE sp.status
						WHEN 'sleeping' THEN sp.last_batch
						ELSE COALESCE(req.start_time, sp.last_batch)
					END AS start_time,
					sp.dbid
				FROM sys.sysprocesses AS sp
				OUTER APPLY
				(
					SELECT TOP(1)
						CASE
							WHEN 
							(
								sp.hostprocess > ''
								OR r.total_elapsed_time < 0
							) THEN
								r.start_time
							ELSE
								DATEADD
								(
									ms, 
									1000 * (DATEPART(ms, DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())) / 500) - DATEPART(ms, DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())), 
									DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())
								)
						END AS start_time
					FROM sys.dm_exec_requests AS r
					WHERE
						r.session_id = sp.spid
						AND r.request_id = sp.request_id
				) AS req
				WHERE
					--Process inclusive filter
					1 =
						CASE
							WHEN @filter <> '' THEN
								CASE @filter_type
									WHEN 'session' THEN
										CASE
											WHEN
												CONVERT(SMALLINT, @filter) = 0
												OR sp.spid = CONVERT(SMALLINT, @filter)
													THEN 1
											ELSE 0
										END
									WHEN 'program' THEN
										CASE
											WHEN sp.program_name LIKE @filter THEN 1
											ELSE 0
										END
									WHEN 'login' THEN
										CASE
											WHEN sp.loginame LIKE @filter THEN 1
											ELSE 0
										END
									WHEN 'host' THEN
										CASE
											WHEN sp.hostname LIKE @filter THEN 1
											ELSE 0
										END
									WHEN 'database' THEN
										CASE
											WHEN DB_NAME(sp.dbid) LIKE @filter THEN 1
											ELSE 0
										END
									ELSE 0
								END
							ELSE 1
						END
					--Process exclusive filter
					AND 0 =
						CASE
							WHEN @not_filter <> '' THEN
								CASE @not_filter_type
									WHEN 'session' THEN
										CASE
											WHEN sp.spid = CONVERT(SMALLINT, @not_filter) THEN 1
											ELSE 0
										END
									WHEN 'program' THEN
										CASE
											WHEN sp.program_name LIKE @not_filter THEN 1
											ELSE 0
										END
									WHEN 'login' THEN
										CASE
											WHEN sp.loginame LIKE @not_filter THEN 1
											ELSE 0
										END
									WHEN 'host' THEN
										CASE
											WHEN sp.hostname LIKE @not_filter THEN 1
											ELSE 0
										END
									WHEN 'database' THEN
										CASE
											WHEN DB_NAME(sp.dbid) LIKE @not_filter THEN 1
											ELSE 0
										END
									ELSE 0
								END
							ELSE 0
						END
					AND 
					(
						@show_own_spid = 1
						OR sp.spid <> @@SPID
					)
					AND 
					(
						@show_system_spids = 1
						OR sp.hostprocess > ''
					)
					AND sp.ecid = 0
			) AS s
			INNER HASH JOIN
			(
				SELECT
					x.resource_type,
					x.database_name,
					x.object_id,
					x.file_id,
					CASE
						WHEN x.page_no = 1 OR x.page_no % 8088 = 0 THEN 'PFS'
						WHEN x.page_no = 2 OR x.page_no % 511232 = 0 THEN 'GAM'
						WHEN x.page_no = 3 OR (x.page_no - 1) % 511232 = 0 THEN 'SGAM'
						WHEN x.page_no = 6 OR (x.page_no - 6) % 511232 = 0 THEN 'DCM'
						WHEN x.page_no = 7 OR (x.page_no - 7) % 511232 = 0 THEN 'BCM'
						WHEN x.page_no IS NOT NULL THEN '*'
						ELSE NULL
					END AS page_type,
					x.hobt_id,
					x.allocation_unit_id,
					x.index_id,
					x.schema_id,
					x.principal_id,
					x.request_mode,
					x.request_status,
					x.session_id,
					x.request_id,
					CASE
						WHEN COALESCE(x.object_id, x.file_id, x.hobt_id, x.allocation_unit_id, x.index_id, x.schema_id, x.principal_id) IS NULL THEN NULLIF(resource_description, '')
						ELSE NULL
					END AS resource_description,
					COUNT(*) AS request_count
				FROM
				(
					SELECT
						tl.resource_type +
							CASE
								WHEN tl.resource_subtype = '' THEN ''
								ELSE '.' + tl.resource_subtype
							END AS resource_type,
						COALESCE(DB_NAME(tl.resource_database_id), N'(null)') AS database_name,
						CONVERT
						(
							INT,
							CASE
								WHEN tl.resource_type = 'OBJECT' THEN tl.resource_associated_entity_id
								WHEN tl.resource_description LIKE '%object_id = %' THEN
									(
										SUBSTRING
										(
											tl.resource_description, 
											(CHARINDEX('object_id = ', tl.resource_description) + 12), 
											COALESCE
											(
												NULLIF
												(
													CHARINDEX(',', tl.resource_description, CHARINDEX('object_id = ', tl.resource_description) + 12),
													0
												), 
												DATALENGTH(tl.resource_description)+1
											) - (CHARINDEX('object_id = ', tl.resource_description) + 12)
										)
									)
								ELSE NULL
							END
						) AS object_id,
						CONVERT
						(
							INT,
							CASE 
								WHEN tl.resource_type = 'FILE' THEN CONVERT(INT, tl.resource_description)
								WHEN tl.resource_type IN ('PAGE', 'EXTENT', 'RID') THEN LEFT(tl.resource_description, CHARINDEX(':', tl.resource_description)-1)
								ELSE NULL
							END
						) AS file_id,
						CONVERT
						(
							INT,
							CASE
								WHEN tl.resource_type IN ('PAGE', 'EXTENT', 'RID') THEN 
									SUBSTRING
									(
										tl.resource_description, 
										CHARINDEX(':', tl.resource_description) + 1, 
										COALESCE
										(
											NULLIF
											(
												CHARINDEX(':', tl.resource_description, CHARINDEX(':', tl.resource_description) + 1), 
												0
											), 
											DATALENGTH(tl.resource_description)+1
										) - (CHARINDEX(':', tl.resource_description) + 1)
									)
								ELSE NULL
							END
						) AS page_no,
						CASE
							WHEN tl.resource_type IN ('PAGE', 'KEY', 'RID', 'HOBT') THEN tl.resource_associated_entity_id
							ELSE NULL
						END AS hobt_id,
						CASE
							WHEN tl.resource_type = 'ALLOCATION_UNIT' THEN tl.resource_associated_entity_id
							ELSE NULL
						END AS allocation_unit_id,
						CONVERT
						(
							INT,
							CASE
								WHEN
									/*TODO: Deal with server principals*/ 
									tl.resource_subtype <> 'SERVER_PRINCIPAL' 
									AND tl.resource_description LIKE '%index_id or stats_id = %' THEN
									(
										SUBSTRING
										(
											tl.resource_description, 
											(CHARINDEX('index_id or stats_id = ', tl.resource_description) + 23), 
											COALESCE
											(
												NULLIF
												(
													CHARINDEX(',', tl.resource_description, CHARINDEX('index_id or stats_id = ', tl.resource_description) + 23), 
													0
												), 
												DATALENGTH(tl.resource_description)+1
											) - (CHARINDEX('index_id or stats_id = ', tl.resource_description) + 23)
										)
									)
								ELSE NULL
							END 
						) AS index_id,
						CONVERT
						(
							INT,
							CASE
								WHEN tl.resource_description LIKE '%schema_id = %' THEN
									(
										SUBSTRING
										(
											tl.resource_description, 
											(CHARINDEX('schema_id = ', tl.resource_description) + 12), 
											COALESCE
											(
												NULLIF
												(
													CHARINDEX(',', tl.resource_description, CHARINDEX('schema_id = ', tl.resource_description) + 12), 
													0
												), 
												DATALENGTH(tl.resource_description)+1
											) - (CHARINDEX('schema_id = ', tl.resource_description) + 12)
										)
									)
								ELSE NULL
							END 
						) AS schema_id,
						CONVERT
						(
							INT,
							CASE
								WHEN tl.resource_description LIKE '%principal_id = %' THEN
									(
										SUBSTRING
										(
											tl.resource_description, 
											(CHARINDEX('principal_id = ', tl.resource_description) + 15), 
											COALESCE
											(
												NULLIF
												(
													CHARINDEX(',', tl.resource_description, CHARINDEX('principal_id = ', tl.resource_description) + 15), 
													0
												), 
												DATALENGTH(tl.resource_description)+1
											) - (CHARINDEX('principal_id = ', tl.resource_description) + 15)
										)
									)
								ELSE NULL
							END
						) AS principal_id,
						tl.request_mode,
						tl.request_status,
						tl.request_session_id AS session_id,
						tl.request_request_id AS request_id,

						/*TODO: Applocks, other resource_descriptions*/
						RTRIM(tl.resource_description) AS resource_description,
						tl.resource_associated_entity_id
						/*********************************************/
					FROM 
					(
						SELECT 
							request_session_id,
							CONVERT(VARCHAR(120), resource_type) COLLATE Latin1_General_Bin2 AS resource_type,
							CONVERT(VARCHAR(120), resource_subtype) COLLATE Latin1_General_Bin2 AS resource_subtype,
							resource_database_id,
							CONVERT(VARCHAR(512), resource_description) COLLATE Latin1_General_Bin2 AS resource_description,
							resource_associated_entity_id,
							CONVERT(VARCHAR(120), request_mode) COLLATE Latin1_General_Bin2 AS request_mode,
							CONVERT(VARCHAR(120), request_status) COLLATE Latin1_General_Bin2 AS request_status,
							request_request_id
						FROM sys.dm_tran_locks
					) AS tl
				) AS x
				GROUP BY
					x.resource_type,
					x.database_name,
					x.object_id,
					x.file_id,
					CASE
						WHEN x.page_no = 1 OR x.page_no % 8088 = 0 THEN 'PFS'
						WHEN x.page_no = 2 OR x.page_no % 511232 = 0 THEN 'GAM'
						WHEN x.page_no = 3 OR (x.page_no - 1) % 511232 = 0 THEN 'SGAM'
						WHEN x.page_no = 6 OR (x.page_no - 6) % 511232 = 0 THEN 'DCM'
						WHEN x.page_no = 7 OR (x.page_no - 7) % 511232 = 0 THEN 'BCM'
						WHEN x.page_no IS NOT NULL THEN '*'
						ELSE NULL
					END,
					x.hobt_id,
					x.allocation_unit_id,
					x.index_id,
					x.schema_id,
					x.principal_id,
					x.request_mode,
					x.request_status,
					x.session_id,
					x.request_id,
					CASE
						WHEN COALESCE(x.object_id, x.file_id, x.hobt_id, x.allocation_unit_id, x.index_id, x.schema_id, x.principal_id) IS NULL THEN NULLIF(resource_description, '')
						ELSE NULL
					END
			) AS y ON
				y.session_id = s.session_id
				AND y.request_id = s.request_id
			OPTION (HASH GROUP);

			--Disable unnecessary autostats on the table
			CREATE STATISTICS s_database_name ON #locks (database_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_object_id ON #locks (object_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_hobt_id ON #locks (hobt_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_allocation_unit_id ON #locks (allocation_unit_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_index_id ON #locks (index_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_schema_id ON #locks (schema_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_principal_id ON #locks (principal_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_request_id ON #locks (request_id)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_start_time ON #locks (start_time)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_resource_type ON #locks (resource_type)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_object_name ON #locks (object_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_schema_name ON #locks (schema_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_page_type ON #locks (page_type)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_request_mode ON #locks (request_mode)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_request_status ON #locks (request_status)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_resource_description ON #locks (resource_description)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_index_name ON #locks (index_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_principal_name ON #locks (principal_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
		END;
		
		DECLARE 
			@sql VARCHAR(MAX), 
			@sql_n NVARCHAR(MAX);

		SET @sql = 
			CONVERT(VARCHAR(MAX), '') +
			'DECLARE @blocker BIT;
			SET @blocker = 0;
			DECLARE @i INT;
			SET @i = 2147483647;

			DECLARE @sessions TABLE
			(
				session_id SMALLINT NOT NULL,
				request_id INT NOT NULL,
				login_time DATETIME,
				last_request_end_time DATETIME,
				status VARCHAR(30),
				statement_start_offset INT,
				statement_end_offset INT,
				sql_handle BINARY(20),
				host_name NVARCHAR(128),
				login_name NVARCHAR(128),
				program_name NVARCHAR(128),
				database_id SMALLINT,
				memory_usage INT,
				open_tran_count SMALLINT, 
				' +
				CASE
					WHEN 
					(
						@get_task_info <> 0 
						OR @find_block_leaders = 1 
					) THEN
						'wait_type NVARCHAR(32),
						wait_resource NVARCHAR(256),
						wait_time BIGINT, 
						'
					ELSE 
						''
				END +
				'blocked SMALLINT,
				is_user_process BIT,
				cmd VARCHAR(32),
				PRIMARY KEY CLUSTERED (session_id, request_id) WITH (IGNORE_DUP_KEY = ON)
			);

			DECLARE @blockers TABLE
			(
				session_id INT NOT NULL PRIMARY KEY WITH (IGNORE_DUP_KEY = ON)
			);

			BLOCKERS:;

			INSERT @sessions
			(
				session_id,
				request_id,
				login_time,
				last_request_end_time,
				status,
				statement_start_offset,
				statement_end_offset,
				sql_handle,
				host_name,
				login_name,
				program_name,
				database_id,
				memory_usage,
				open_tran_count, 
				' +
				CASE
					WHEN 
					(
						@get_task_info <> 0
						OR @find_block_leaders = 1 
					) THEN
						'wait_type,
						wait_resource,
						wait_time, 
						'
					ELSE
						''
				END +
				'blocked,
				is_user_process,
				cmd 
			)
			SELECT TOP(@i)
				spy.session_id,
				spy.request_id,
				spy.login_time,
				spy.last_request_end_time,
				spy.status,
				spy.statement_start_offset,
				spy.statement_end_offset,
				spy.sql_handle,
				spy.host_name,
				spy.login_name,
				spy.program_name,
				spy.database_id,
				spy.memory_usage,
				spy.open_tran_count,
				' +
				CASE
					WHEN 
					(
						@get_task_info <> 0  
						OR @find_block_leaders = 1 
					) THEN
						'spy.wait_type,
						CASE
							WHEN
								spy.wait_type LIKE N''PAGE%LATCH_%''
								OR spy.wait_type = N''CXPACKET''
								OR spy.wait_type LIKE N''LATCH[_]%''
								OR spy.wait_type = N''OLEDB'' THEN
									spy.wait_resource
							ELSE
								NULL
						END AS wait_resource,
						spy.wait_time, 
						'
					ELSE
						''
				END +
				'spy.blocked,
				spy.is_user_process,
				spy.cmd
			FROM
			(
				SELECT TOP(@i)
					spx.*, 
					' +
					CASE
						WHEN 
						(
							@get_task_info <> 0 
							OR @find_block_leaders = 1 
						) THEN
							'ROW_NUMBER() OVER
							(
								PARTITION BY
									spx.session_id,
									spx.request_id
								ORDER BY
									CASE
										WHEN spx.wait_type LIKE N''LCK[_]%'' THEN 
											1
										ELSE
											99
									END,
									spx.wait_time DESC,
									spx.blocked DESC
							) AS r 
							'
						ELSE 
							'1 AS r 
							'
					END +
				'FROM
				(
					SELECT TOP(@i)
						sp0.session_id,
						sp0.request_id,
						sp0.login_time,
						sp0.last_request_end_time,
						LOWER(sp0.status) AS status,
						CASE
							WHEN sp0.cmd = ''CREATE INDEX'' THEN
								0
							ELSE
								sp0.stmt_start
						END AS statement_start_offset,
						CASE
							WHEN sp0.cmd = N''CREATE INDEX'' THEN
								-1
							ELSE
								COALESCE(NULLIF(sp0.stmt_end, 0), -1)
						END AS statement_end_offset,
						sp0.sql_handle,
						sp0.host_name,
						sp0.login_name,
						sp0.program_name,
						sp0.database_id,
						sp0.memory_usage,
						sp0.open_tran_count, 
						' +
						CASE
							WHEN 
							(
								@get_task_info <> 0 
								OR @find_block_leaders = 1 
							) THEN
								'CASE
									WHEN sp0.wait_time > 0 AND sp0.wait_type <> N''CXPACKET'' THEN
										sp0.wait_type
									ELSE
										NULL
								END AS wait_type,
								CASE
									WHEN sp0.wait_time > 0 AND sp0.wait_type <> N''CXPACKET'' THEN 
										sp0.wait_resource
									ELSE
										NULL
								END AS wait_resource,
								CASE
									WHEN sp0.wait_type <> N''CXPACKET'' THEN
										sp0.wait_time
									ELSE
										0
								END AS wait_time, 
								'
							ELSE
								''
						END +
						'sp0.blocked,
						sp0.is_user_process,
						sp0.cmd
					FROM
					(
						SELECT TOP(@i)
							sp1.session_id,
							sp1.request_id,
							sp1.login_time,
							sp1.last_request_end_time,
							sp1.status,
							sp1.cmd,
							sp1.stmt_start,
							sp1.stmt_end,
							MAX(NULLIF(sp1.sql_handle, 0x00)) OVER (PARTITION BY sp1.session_id, sp1.request_id) AS sql_handle,
							sp1.host_name,
							MAX(sp1.login_name) OVER (PARTITION BY sp1.session_id, sp1.request_id) AS login_name,
							sp1.program_name,
							sp1.database_id,
							MAX(sp1.memory_usage)  OVER (PARTITION BY sp1.session_id, sp1.request_id) AS memory_usage,
							MAX(sp1.open_tran_count)  OVER (PARTITION BY sp1.session_id, sp1.request_id) AS open_tran_count,
							sp1.wait_type,
							sp1.wait_resource,
							sp1.wait_time,
							sp1.blocked,
							sp1.hostprocess,
							sp1.is_user_process
						FROM
						(
							SELECT TOP(@i)
								sp2.spid AS session_id,
								CASE sp2.status
									WHEN ''sleeping'' THEN
										CONVERT(INT, 0)
									ELSE
										sp2.request_id
								END AS request_id,
								MAX(sp2.login_time) AS login_time,
								MAX(sp2.last_batch) AS last_request_end_time,
								MAX(CONVERT(VARCHAR(30), RTRIM(sp2.status)) COLLATE Latin1_General_Bin2) AS status,
								MAX(CONVERT(VARCHAR(32), RTRIM(sp2.cmd)) COLLATE Latin1_General_Bin2) AS cmd,
								MAX(sp2.stmt_start) AS stmt_start,
								MAX(sp2.stmt_end) AS stmt_end,
								MAX(sp2.sql_handle) AS sql_handle,
								MAX(CONVERT(sysname, RTRIM(sp2.hostname)) COLLATE SQL_Latin1_General_CP1_CI_AS) AS host_name,
								MAX(CONVERT(sysname, RTRIM(sp2.loginame)) COLLATE SQL_Latin1_General_CP1_CI_AS) AS login_name,
								MAX
								(
									CASE
										WHEN blk.queue_id IS NOT NULL THEN
											N''Service Broker
												database_id: '' + CONVERT(NVARCHAR, blk.database_id) +
												N'' queue_id: '' + CONVERT(NVARCHAR, blk.queue_id)
										ELSE
											CONVERT
											(
												sysname,
												RTRIM(sp2.program_name)
											)
									END COLLATE SQL_Latin1_General_CP1_CI_AS
								) AS program_name,
								MAX(sp2.dbid) AS database_id,
								MAX(sp2.memusage) AS memory_usage,
								MAX(sp2.open_tran) AS open_tran_count,
								RTRIM(sp2.lastwaittype) AS wait_type,
								RTRIM(sp2.waitresource) AS wait_resource,
								MAX(sp2.waittime) AS wait_time,
								COALESCE(NULLIF(sp2.blocked, sp2.spid), 0) AS blocked,
								MAX
								(
									CASE
										WHEN blk.session_id = sp2.spid THEN
											''blocker''
										ELSE
											RTRIM(sp2.hostprocess)
									END
								) AS hostprocess,
								CONVERT
								(
									BIT,
									MAX
									(
										CASE
											WHEN sp2.hostprocess > '''' THEN
												1
											ELSE
												0
										END
									)
								) AS is_user_process
							FROM
							(
								SELECT TOP(@i)
									session_id,
									CONVERT(INT, NULL) AS queue_id,
									CONVERT(INT, NULL) AS database_id
								FROM @blockers

								UNION ALL

								SELECT TOP(@i)
									CONVERT(SMALLINT, 0),
									CONVERT(INT, NULL) AS queue_id,
									CONVERT(INT, NULL) AS database_id
								WHERE
									@blocker = 0

								UNION ALL

								SELECT TOP(@i)
									CONVERT(SMALLINT, spid),
									queue_id,
									database_id
								FROM sys.dm_broker_activated_tasks
								WHERE
									@blocker = 0
							) AS blk
							INNER JOIN sys.sysprocesses AS sp2 ON
								sp2.spid = blk.session_id
								OR
								(
									blk.session_id = 0
									AND @blocker = 0
								)
							' +
							CASE 
								WHEN 
								(
									@get_task_info = 0 
									AND @find_block_leaders = 0
								) THEN
									'WHERE
										sp2.ecid = 0 
									' 
								ELSE
									''
							END +
							'GROUP BY
								sp2.spid,
								CASE sp2.status
									WHEN ''sleeping'' THEN
										CONVERT(INT, 0)
									ELSE
										sp2.request_id
								END,
								RTRIM(sp2.lastwaittype),
								RTRIM(sp2.waitresource),
								COALESCE(NULLIF(sp2.blocked, sp2.spid), 0)
						) AS sp1
					) AS sp0
					WHERE
						@blocker = 1
						OR
						(1=1 
						' +
							--inclusive filter
							CASE
								WHEN @filter <> '' THEN
									CASE @filter_type
										WHEN 'session' THEN
											CASE
												WHEN CONVERT(SMALLINT, @filter) <> 0 THEN
													'AND sp0.session_id = CONVERT(SMALLINT, @filter) 
													'
												ELSE
													''
											END
										WHEN 'program' THEN
											'AND sp0.program_name LIKE @filter 
											'
										WHEN 'login' THEN
											'AND sp0.login_name LIKE @filter 
											'
										WHEN 'host' THEN
											'AND sp0.host_name LIKE @filter 
											'
										WHEN 'database' THEN
											'AND DB_NAME(sp0.database_id) LIKE @filter 
											'
										ELSE
											''
									END
								ELSE
									''
							END +
							--exclusive filter
							CASE
								WHEN @not_filter <> '' THEN
									CASE @not_filter_type
										WHEN 'session' THEN
											CASE
												WHEN CONVERT(SMALLINT, @not_filter) <> 0 THEN
													'AND sp0.session_id <> CONVERT(SMALLINT, @not_filter) 
													'
												ELSE
													''
											END
										WHEN 'program' THEN
											'AND sp0.program_name NOT LIKE @not_filter 
											'
										WHEN 'login' THEN
											'AND sp0.login_name NOT LIKE @not_filter 
											'
										WHEN 'host' THEN
											'AND sp0.host_name NOT LIKE @not_filter 
											'
										WHEN 'database' THEN
											'AND DB_NAME(sp0.database_id) NOT LIKE @not_filter 
											'
										ELSE
											''
									END
								ELSE
									''
							END +
							CASE @show_own_spid
								WHEN 1 THEN
									''
								ELSE
									'AND sp0.session_id <> @@spid 
									'
							END +
							CASE 
								WHEN @show_system_spids = 0 THEN
									'AND sp0.hostprocess > '''' 
									' 
								ELSE
									''
							END +
							CASE @show_sleeping_spids
								WHEN 0 THEN
									'AND sp0.status <> ''sleeping'' 
									'
								WHEN 1 THEN
									'AND
									(
										sp0.status <> ''sleeping''
										OR sp0.open_tran_count > 0
									)
									'
								ELSE
									''
							END +
						')
				) AS spx
			) AS spy
			WHERE
				spy.r = 1; 
			' + 
			CASE @recursion
				WHEN 1 THEN 
					'IF @@ROWCOUNT > 0
					BEGIN;
						INSERT @blockers
						(
							session_id
						)
						SELECT TOP(@i)
							blocked
						FROM @sessions
						WHERE
							NULLIF(blocked, 0) IS NOT NULL

						EXCEPT

						SELECT TOP(@i)
							session_id
						FROM @sessions; 
						' +

						CASE
							WHEN
							(
								@get_task_info > 0
								OR @find_block_leaders = 1
							) THEN
								'IF @@ROWCOUNT > 0
								BEGIN;
									SET @blocker = 1;
									GOTO BLOCKERS;
								END; 
								'
							ELSE 
								''
						END +
					'END; 
					'
				ELSE 
					''
			END +
			'SELECT TOP(@i)
				@recursion AS recursion,
				x.session_id,
				x.request_id,
				DENSE_RANK() OVER
				(
					ORDER BY
						x.session_id
				) AS session_number,
				' +
				CASE
					WHEN @output_column_list LIKE '%|[dd hh:mm:ss.mss|]%' ESCAPE '|' THEN 
						'x.elapsed_time '
					ELSE 
						'0 '
				END + 
					'AS elapsed_time, 
					' +
				CASE
					WHEN
						(
							@output_column_list LIKE '%|[dd hh:mm:ss.mss (avg)|]%' ESCAPE '|' OR 
							@output_column_list LIKE '%|[avg_elapsed_time|]%' ESCAPE '|'
						)
						AND @recursion = 1
							THEN 
								'x.avg_elapsed_time / 1000 '
					ELSE 
						'NULL '
				END + 
					'AS avg_elapsed_time, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[physical_io|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[physical_io_delta|]%' ESCAPE '|'
							THEN 
								'x.physical_io '
					ELSE 
						'NULL '
				END + 
					'AS physical_io, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[reads|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[reads_delta|]%' ESCAPE '|'
							THEN 
								'x.reads '
					ELSE 
						'0 '
				END + 
					'AS reads, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[physical_reads|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[physical_reads_delta|]%' ESCAPE '|'
							THEN 
								'x.physical_reads '
					ELSE 
						'0 '
				END + 
					'AS physical_reads, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[writes|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[writes_delta|]%' ESCAPE '|'
							THEN 
								'x.writes '
					ELSE 
						'0 '
				END + 
					'AS writes, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[tempdb_allocations|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[tempdb_allocations_delta|]%' ESCAPE '|'
							THEN 
								'x.tempdb_allocations '
					ELSE 
						'0 '
				END + 
					'AS tempdb_allocations, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[tempdb_current|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[tempdb_current_delta|]%' ESCAPE '|'
							THEN 
								'x.tempdb_current '
					ELSE 
						'0 '
				END + 
					'AS tempdb_current, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[CPU|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[CPU_delta|]%' ESCAPE '|'
							THEN
								'x.CPU '
					ELSE
						'0 '
				END + 
					'AS CPU, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[CPU_delta|]%' ESCAPE '|'
						AND @get_task_info = 2
						AND @sys_info = 1
							THEN 
								'x.thread_CPU_snapshot '
					ELSE 
						'0 '
				END + 
					'AS thread_CPU_snapshot, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[context_switches|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[context_switches_delta|]%' ESCAPE '|'
							THEN 
								'x.context_switches '
					ELSE 
						'NULL '
				END + 
					'AS context_switches, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[used_memory|]%' ESCAPE '|'
						OR @output_column_list LIKE '%|[used_memory_delta|]%' ESCAPE '|'
							THEN 
								'x.used_memory '
					ELSE 
						'0 '
				END + 
					'AS used_memory, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[tasks|]%' ESCAPE '|'
						AND @recursion = 1
							THEN 
								'x.tasks '
					ELSE 
						'NULL '
				END + 
					'AS tasks, 
					' +
				CASE
					WHEN 
						(
							@output_column_list LIKE '%|[status|]%' ESCAPE '|' 
							OR @output_column_list LIKE '%|[sql_command|]%' ESCAPE '|'
						)
						AND @recursion = 1
							THEN 
								'x.status '
					ELSE 
						''''' '
				END + 
					'AS status, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[wait_info|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								CASE @get_task_info
									WHEN 2 THEN
										'COALESCE(x.task_wait_info, x.sys_wait_info) '
									ELSE
										'x.sys_wait_info '
								END
					ELSE 
						'NULL '
				END + 
					'AS wait_info, 
					' +
				CASE
					WHEN 
						(
							@output_column_list LIKE '%|[tran_start_time|]%' ESCAPE '|' 
							OR @output_column_list LIKE '%|[tran_log_writes|]%' ESCAPE '|' 
						)
						AND @recursion = 1
							THEN 
								'x.transaction_id '
					ELSE 
						'NULL '
				END + 
					'AS transaction_id, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[open_tran_count|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'x.open_tran_count '
					ELSE 
						'NULL '
				END + 
					'AS open_tran_count, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[sql_text|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'x.sql_handle '
					ELSE 
						'NULL '
				END + 
					'AS sql_handle, 
					' +
				CASE
					WHEN 
						(
							@output_column_list LIKE '%|[sql_text|]%' ESCAPE '|' 
							OR @output_column_list LIKE '%|[query_plan|]%' ESCAPE '|' 
						)
						AND @recursion = 1
							THEN 
								'x.statement_start_offset '
					ELSE 
						'NULL '
				END + 
					'AS statement_start_offset, 
					' +
				CASE
					WHEN 
						(
							@output_column_list LIKE '%|[sql_text|]%' ESCAPE '|' 
							OR @output_column_list LIKE '%|[query_plan|]%' ESCAPE '|' 
						)
						AND @recursion = 1
							THEN 
								'x.statement_end_offset '
					ELSE 
						'NULL '
				END + 
					'AS statement_end_offset, 
					' +
				'NULL AS sql_text, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[query_plan|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'x.plan_handle '
					ELSE 
						'NULL '
				END + 
					'AS plan_handle, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[blocking_session_id|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'NULLIF(x.blocking_session_id, 0) '
					ELSE 
						'NULL '
				END + 
					'AS blocking_session_id, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[percent_complete|]%' ESCAPE '|'
						AND @recursion = 1
							THEN 
								'x.percent_complete '
					ELSE 
						'NULL '
				END + 
					'AS percent_complete, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[host_name|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'x.host_name '
					ELSE 
						''''' '
				END + 
					'AS host_name, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[login_name|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'x.login_name '
					ELSE 
						''''' '
				END + 
					'AS login_name, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[database_name|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'DB_NAME(x.database_id) '
					ELSE 
						'NULL '
				END + 
					'AS database_name, 
					' +
				CASE
					WHEN 
						@output_column_list LIKE '%|[program_name|]%' ESCAPE '|' 
						AND @recursion = 1
							THEN 
								'x.program_name '
					ELSE 
						''''' '
				END + 
					'AS program_name, 
					' +
				CASE
					WHEN
						@output_column_list LIKE '%|[additional_info|]%' ESCAPE '|'
						AND @recursion = 1
							THEN
								'(
									SELECT TOP(@i)
										x.text_size,
										x.language,
										x.date_format,
										x.date_first,
										CASE x.quoted_identifier
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS quoted_identifier,
										CASE x.arithabort
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS arithabort,
										CASE x.ansi_null_dflt_on
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS ansi_null_dflt_on,
										CASE x.ansi_defaults
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS ansi_defaults,
										CASE x.ansi_warnings
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS ansi_warnings,
										CASE x.ansi_padding
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS ansi_padding,
										CASE ansi_nulls
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS ansi_nulls,
										CASE x.concat_null_yields_null
											WHEN 0 THEN ''OFF''
											WHEN 1 THEN ''ON''
										END AS concat_null_yields_null,
										CASE x.transaction_isolation_level
											WHEN 0 THEN ''Unspecified''
											WHEN 1 THEN ''ReadUncomitted''
											WHEN 2 THEN ''ReadCommitted''
											WHEN 3 THEN ''Repeatable''
											WHEN 4 THEN ''Serializable''
											WHEN 5 THEN ''Snapshot''
										END AS transaction_isolation_level,
										x.lock_timeout,
										x.deadlock_priority,
										x.row_count,
										x.command_type, 
										' +
										CASE
											WHEN OBJECT_ID('master.dbo.fn_varbintohexstr') IS NOT NULL THEN
												'master.dbo.fn_varbintohexstr(x.sql_handle) AS sql_handle,
												master.dbo.fn_varbintohexstr(x.plan_handle) AS plan_handle,'
											ELSE
												'CONVERT(VARCHAR(256), x.sql_handle, 1) AS sql_handle,
												CONVERT(VARCHAR(256), x.plan_handle, 1) AS plan_handle,'
										END +
										'
										x.statement_start_offset,
										x.statement_end_offset,
										' +
										CASE
											WHEN @output_column_list LIKE '%|[program_name|]%' ESCAPE '|' THEN
												'(
													SELECT TOP(1)
														CONVERT(uniqueidentifier, CONVERT(XML, '''').value(''xs:hexBinary( substring(sql:column("agent_info.job_id_string"), 0) )'', ''binary(16)'')) AS job_id,
														agent_info.step_id,
														(
															SELECT TOP(1)
																NULL
															FOR XML
																PATH(''job_name''),
																TYPE
														),
														(
															SELECT TOP(1)
																NULL
															FOR XML
																PATH(''step_name''),
																TYPE
														)
													FROM
													(
														SELECT TOP(1)
															SUBSTRING(x.program_name, CHARINDEX(''0x'', x.program_name) + 2, 32) AS job_id_string,
															SUBSTRING(x.program_name, CHARINDEX('': Step '', x.program_name) + 7, CHARINDEX('')'', x.program_name, CHARINDEX('': Step '', x.program_name)) - (CHARINDEX('': Step '', x.program_name) + 7)) AS step_id
														WHERE
															x.program_name LIKE N''SQLAgent - TSQL JobStep (Job 0x%''
													) AS agent_info
													FOR XML
														PATH(''agent_job_info''),
														TYPE
												),
												'
											ELSE ''
										END +
										CASE
											WHEN @get_task_info = 2 THEN
												'CONVERT(XML, x.block_info) AS block_info, 
												'
											ELSE
												''
										END + '
										x.host_process_id,
										x.group_id
									FOR XML
										PATH(''additional_info''),
										TYPE
								) '
					ELSE
						'NULL '
				END + 
					'AS additional_info, 
				x.start_time, 
					' +
				CASE
					WHEN
						@output_column_list LIKE '%|[login_time|]%' ESCAPE '|'
						AND @recursion = 1
							THEN
								'x.login_time '
					ELSE 
						'NULL '
				END + 
					'AS login_time, 
				x.last_request_start_time
			FROM
			(
				SELECT TOP(@i)
					y.*,
					CASE
						WHEN DATEDIFF(hour, y.start_time, GETDATE()) > 576 THEN
							DATEDIFF(second, GETDATE(), y.start_time)
						ELSE DATEDIFF(ms, y.start_time, GETDATE())
					END AS elapsed_time,
					COALESCE(tempdb_info.tempdb_allocations, 0) AS tempdb_allocations,
					COALESCE
					(
						CASE
							WHEN tempdb_info.tempdb_current < 0 THEN 0
							ELSE tempdb_info.tempdb_current
						END,
						0
					) AS tempdb_current, 
					' +
					CASE
						WHEN 
							(
								@get_task_info <> 0
								OR @find_block_leaders = 1
							) THEN
								'N''('' + CONVERT(NVARCHAR, y.wait_duration_ms) + N''ms)'' +
									y.wait_type +
										CASE
											WHEN y.wait_type LIKE N''PAGE%LATCH_%'' THEN
												N'':'' +
												COALESCE(DB_NAME(CONVERT(INT, LEFT(y.resource_description, CHARINDEX(N'':'', y.resource_description) - 1))), N''(null)'') +
												N'':'' +
												SUBSTRING(y.resource_description, CHARINDEX(N'':'', y.resource_description) + 1, LEN(y.resource_description) - CHARINDEX(N'':'', REVERSE(y.resource_description)) - CHARINDEX(N'':'', y.resource_description)) +
												N''('' +
													CASE
														WHEN
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) = 1 OR
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) % 8088 = 0
																THEN 
																	N''PFS''
														WHEN
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) = 2 OR
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) % 511232 = 0
																THEN 
																	N''GAM''
														WHEN
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) = 3 OR
															(CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) - 1) % 511232 = 0
																THEN
																	N''SGAM''
														WHEN
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) = 6 OR
															(CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) - 6) % 511232 = 0 
																THEN 
																	N''DCM''
														WHEN
															CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) = 7 OR
															(CONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N'':'', REVERSE(y.resource_description)) - 1)) - 7) % 511232 = 0 
																THEN 
																	N''BCM''
														ELSE 
															N''*''
													END +
												N'')''
											WHEN y.wait_type = N''CXPACKET'' THEN
												N'':'' + SUBSTRING(y.resource_description, CHARINDEX(N''nodeId'', y.resource_description) + 7, 4)
											WHEN y.wait_type LIKE N''LATCH[_]%'' THEN
												N'' ['' + LEFT(y.resource_description, COALESCE(NULLIF(CHARINDEX(N'' '', y.resource_description), 0), LEN(y.resource_description) + 1) - 1) + N'']''
											WHEN
												y.wait_type = N''OLEDB''
												AND y.resource_description LIKE N''%(SPID=%)'' THEN
													N''['' + LEFT(y.resource_description, CHARINDEX(N''(SPID='', y.resource_description) - 2) +
														N'':'' + SUBSTRING(y.resource_description, CHARINDEX(N''(SPID='', y.resource_description) + 6, CHARINDEX(N'')'', y.resource_description, (CHARINDEX(N''(SPID='', y.resource_description) + 6)) - (CHARINDEX(N''(SPID='', y.resource_description) + 6)) + '']''
											ELSE
												N''''
										END COLLATE Latin1_General_Bin2 AS sys_wait_info, 
										'
							ELSE
								''
						END +
						CASE
							WHEN @get_task_info = 2 THEN
								'tasks.physical_io,
								tasks.context_switches,
								tasks.tasks,
								tasks.block_info,
								tasks.wait_info AS task_wait_info,
								tasks.thread_CPU_snapshot,
								'
							ELSE
								'' 
					END +
					CASE 
						WHEN NOT (@get_avg_time = 1 AND @recursion = 1) THEN
							'CONVERT(INT, NULL) '
						ELSE 
							'qs.total_elapsed_time / qs.execution_count '
					END + 
						'AS avg_elapsed_time 
				FROM
				(
					SELECT TOP(@i)
						sp.session_id,
						sp.request_id,
						COALESCE(r.logical_reads, s.logical_reads) AS reads,
						COALESCE(r.reads, s.reads) AS physical_reads,
						COALESCE(r.writes, s.writes) AS writes,
						COALESCE(r.CPU_time, s.CPU_time) AS CPU,
						sp.memory_usage + COALESCE(r.granted_query_memory, 0) AS used_memory,
						LOWER(sp.status) AS status,
						COALESCE(r.sql_handle, sp.sql_handle) AS sql_handle,
						COALESCE(r.statement_start_offset, sp.statement_start_offset) AS statement_start_offset,
						COALESCE(r.statement_end_offset, sp.statement_end_offset) AS statement_end_offset,
						' +
						CASE
							WHEN 
							(
								@get_task_info <> 0
								OR @find_block_leaders = 1 
							) THEN
								'sp.wait_type COLLATE Latin1_General_Bin2 AS wait_type,
								sp.wait_resource COLLATE Latin1_General_Bin2 AS resource_description,
								sp.wait_time AS wait_duration_ms, 
								'
							ELSE
								''
						END +
						'NULLIF(sp.blocked, 0) AS blocking_session_id,
						r.plan_handle,
						NULLIF(r.percent_complete, 0) AS percent_complete,
						sp.host_name,
						sp.login_name,
						sp.program_name,
						s.host_process_id,
						COALESCE(r.text_size, s.text_size) AS text_size,
						COALESCE(r.language, s.language) AS language,
						COALESCE(r.date_format, s.date_format) AS date_format,
						COALESCE(r.date_first, s.date_first) AS date_first,
						COALESCE(r.quoted_identifier, s.quoted_identifier) AS quoted_identifier,
						COALESCE(r.arithabort, s.arithabort) AS arithabort,
						COALESCE(r.ansi_null_dflt_on, s.ansi_null_dflt_on) AS ansi_null_dflt_on,
						COALESCE(r.ansi_defaults, s.ansi_defaults) AS ansi_defaults,
						COALESCE(r.ansi_warnings, s.ansi_warnings) AS ansi_warnings,
						COALESCE(r.ansi_padding, s.ansi_padding) AS ansi_padding,
						COALESCE(r.ansi_nulls, s.ansi_nulls) AS ansi_nulls,
						COALESCE(r.concat_null_yields_null, s.concat_null_yields_null) AS concat_null_yields_null,
						COALESCE(r.transaction_isolation_level, s.transaction_isolation_level) AS transaction_isolation_level,
						COALESCE(r.lock_timeout, s.lock_timeout) AS lock_timeout,
						COALESCE(r.deadlock_priority, s.deadlock_priority) AS deadlock_priority,
						COALESCE(r.row_count, s.row_count) AS row_count,
						COALESCE(r.command, sp.cmd) AS command_type,
						COALESCE
						(
							CASE
								WHEN
								(
									s.is_user_process = 0
									AND r.total_elapsed_time >= 0
								) THEN
									DATEADD
									(
										ms,
										1000 * (DATEPART(ms, DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())) / 500) - DATEPART(ms, DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())),
										DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())
									)
							END,
							NULLIF(COALESCE(r.start_time, sp.last_request_end_time), CONVERT(DATETIME, ''19000101'', 112)),
							sp.login_time
						) AS start_time,
						sp.login_time,
						CASE
							WHEN s.is_user_process = 1 THEN
								s.last_request_start_time
							ELSE
								COALESCE
								(
									DATEADD
									(
										ms,
										1000 * (DATEPART(ms, DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())) / 500) - DATEPART(ms, DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())),
										DATEADD(second, -(r.total_elapsed_time / 1000), GETDATE())
									),
									s.last_request_start_time
								)
						END AS last_request_start_time,
						r.transaction_id,
						sp.database_id,
						sp.open_tran_count,
						' +
							CASE
								WHEN EXISTS
								(
									SELECT
										*
									FROM sys.all_columns AS ac
									WHERE
										ac.object_id = OBJECT_ID('sys.dm_exec_sessions')
										AND ac.name = 'group_id'
								)
									THEN 's.group_id'
								ELSE 'CONVERT(INT, NULL) AS group_id'
							END + '
					FROM @sessions AS sp
					LEFT OUTER LOOP JOIN sys.dm_exec_sessions AS s ON
						s.session_id = sp.session_id
						AND s.login_time = sp.login_time
					LEFT OUTER LOOP JOIN sys.dm_exec_requests AS r ON
						sp.status <> ''sleeping''
						AND r.session_id = sp.session_id
						AND r.request_id = sp.request_id
						AND
						(
							(
								s.is_user_process = 0
								AND sp.is_user_process = 0
							)
							OR
							(
								r.start_time = s.last_request_start_time
								AND s.last_request_end_time <= sp.last_request_end_time
							)
						)
				) AS y
				' + 
				CASE 
					WHEN @get_task_info = 2 THEN
						CONVERT(VARCHAR(MAX), '') +
						'LEFT OUTER HASH JOIN
						(
							SELECT TOP(@i)
								task_nodes.task_node.value(''(session_id/text())[1]'', ''SMALLINT'') AS session_id,
								task_nodes.task_node.value(''(request_id/text())[1]'', ''INT'') AS request_id,
								task_nodes.task_node.value(''(physical_io/text())[1]'', ''BIGINT'') AS physical_io,
								task_nodes.task_node.value(''(context_switches/text())[1]'', ''BIGINT'') AS context_switches,
								task_nodes.task_node.value(''(tasks/text())[1]'', ''INT'') AS tasks,
								task_nodes.task_node.value(''(block_info/text())[1]'', ''NVARCHAR(4000)'') AS block_info,
								task_nodes.task_node.value(''(waits/text())[1]'', ''NVARCHAR(4000)'') AS wait_info,
								task_nodes.task_node.value(''(thread_CPU_snapshot/text())[1]'', ''BIGINT'') AS thread_CPU_snapshot
							FROM
							(
								SELECT TOP(@i)
									CONVERT
									(
										XML,
										REPLACE
										(
											CONVERT(NVARCHAR(MAX), tasks_raw.task_xml_raw) COLLATE Latin1_General_Bin2,
											N''</waits></tasks><tasks><waits>'',
											N'', ''
										)
									) AS task_xml
								FROM
								(
									SELECT TOP(@i)
										CASE waits.r
											WHEN 1 THEN
												waits.session_id
											ELSE
												NULL
										END AS [session_id],
										CASE waits.r
											WHEN 1 THEN
												waits.request_id
											ELSE
												NULL
										END AS [request_id],											
										CASE waits.r
											WHEN 1 THEN
												waits.physical_io
											ELSE
												NULL
										END AS [physical_io],
										CASE waits.r
											WHEN 1 THEN
												waits.context_switches
											ELSE
												NULL
										END AS [context_switches],
										CASE waits.r
											WHEN 1 THEN
												waits.thread_CPU_snapshot
											ELSE
												NULL
										END AS [thread_CPU_snapshot],
										CASE waits.r
											WHEN 1 THEN
												waits.tasks
											ELSE
												NULL
										END AS [tasks],
										CASE waits.r
											WHEN 1 THEN
												waits.block_info
											ELSE
												NULL
										END AS [block_info],
										REPLACE
										(
											REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
											REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
											REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
												CONVERT
												(
													NVARCHAR(MAX),
													N''('' +
														CONVERT(NVARCHAR, num_waits) + N''x: '' +
														CASE num_waits
															WHEN 1 THEN
																CONVERT(NVARCHAR, min_wait_time) + N''ms''
															WHEN 2 THEN
																CASE
																	WHEN min_wait_time <> max_wait_time THEN
																		CONVERT(NVARCHAR, min_wait_time) + N''/'' + CONVERT(NVARCHAR, max_wait_time) + N''ms''
																	ELSE
																		CONVERT(NVARCHAR, max_wait_time) + N''ms''
																END
															ELSE
																CASE
																	WHEN min_wait_time <> max_wait_time THEN
																		CONVERT(NVARCHAR, min_wait_time) + N''/'' + CONVERT(NVARCHAR, avg_wait_time) + N''/'' + CONVERT(NVARCHAR, max_wait_time) + N''ms''
																	ELSE 
																		CONVERT(NVARCHAR, max_wait_time) + N''ms''
																END
														END +
													N'')'' + wait_type COLLATE Latin1_General_Bin2
												),
												NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''),
												NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''),
												NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''),
											NCHAR(0),
											N''''
										) AS [waits]
									FROM
									(
										SELECT TOP(@i)
											w1.*,
											ROW_NUMBER() OVER
											(
												PARTITION BY
													w1.session_id,
													w1.request_id
												ORDER BY
													w1.block_info DESC,
													w1.num_waits DESC,
													w1.wait_type
											) AS r
										FROM
										(
											SELECT TOP(@i)
												task_info.session_id,
												task_info.request_id,
												task_info.physical_io,
												task_info.context_switches,
												task_info.thread_CPU_snapshot,
												task_info.num_tasks AS tasks,
												CASE
													WHEN task_info.runnable_time IS NOT NULL THEN
														''RUNNABLE''
													ELSE
														wt2.wait_type
												END AS wait_type,
												NULLIF(COUNT(COALESCE(task_info.runnable_time, wt2.waiting_task_address)), 0) AS num_waits,
												MIN(COALESCE(task_info.runnable_time, wt2.wait_duration_ms)) AS min_wait_time,
												AVG(COALESCE(task_info.runnable_time, wt2.wait_duration_ms)) AS avg_wait_time,
												MAX(COALESCE(task_info.runnable_time, wt2.wait_duration_ms)) AS max_wait_time,
												MAX(wt2.block_info) AS block_info
											FROM
											(
												SELECT TOP(@i)
													t.session_id,
													t.request_id,
													SUM(CONVERT(BIGINT, t.pending_io_count)) OVER (PARTITION BY t.session_id, t.request_id) AS physical_io,
													SUM(CONVERT(BIGINT, t.context_switches_count)) OVER (PARTITION BY t.session_id, t.request_id) AS context_switches, 
													' +
													CASE
														WHEN 
															@output_column_list LIKE '%|[CPU_delta|]%' ESCAPE '|'
															AND @sys_info = 1
															THEN
																'SUM(tr.usermode_time + tr.kernel_time) OVER (PARTITION BY t.session_id, t.request_id) '
														ELSE
															'CONVERT(BIGINT, NULL) '
													END + 
														' AS thread_CPU_snapshot, 
													COUNT(*) OVER (PARTITION BY t.session_id, t.request_id) AS num_tasks,
													t.task_address,
													t.task_state,
													CASE
														WHEN
															t.task_state = ''RUNNABLE''
															AND w.runnable_time > 0 THEN
																w.runnable_time
														ELSE
															NULL
													END AS runnable_time
												FROM sys.dm_os_tasks AS t
												CROSS APPLY
												(
													SELECT TOP(1)
														sp2.session_id
													FROM @sessions AS sp2
													WHERE
														sp2.session_id = t.session_id
														AND sp2.request_id = t.request_id
														AND sp2.status <> ''sleeping''
												) AS sp20
												LEFT OUTER HASH JOIN
												( 
												' +
													CASE
														WHEN @sys_info = 1 THEN
															'SELECT TOP(@i)
																(
																	SELECT TOP(@i)
																		ms_ticks
																	FROM sys.dm_os_sys_info
																) -
																	w0.wait_resumed_ms_ticks AS runnable_time,
																w0.worker_address,
																w0.thread_address,
																w0.task_bound_ms_ticks
															FROM sys.dm_os_workers AS w0
															WHERE
																w0.state = ''RUNNABLE''
																OR @first_collection_ms_ticks >= w0.task_bound_ms_ticks'
														ELSE
															'SELECT
																CONVERT(BIGINT, NULL) AS runnable_time,
																CONVERT(VARBINARY(8), NULL) AS worker_address,
																CONVERT(VARBINARY(8), NULL) AS thread_address,
																CONVERT(BIGINT, NULL) AS task_bound_ms_ticks
															WHERE
																1 = 0'
														END +
												'
												) AS w ON
													w.worker_address = t.worker_address 
												' +
												CASE
													WHEN
														@output_column_list LIKE '%|[CPU_delta|]%' ESCAPE '|'
														AND @sys_info = 1
														THEN
															'LEFT OUTER HASH JOIN sys.dm_os_threads AS tr ON
																tr.thread_address = w.thread_address
																AND @first_collection_ms_ticks >= w.task_bound_ms_ticks
															'
													ELSE
														''
												END +
											') AS task_info
											LEFT OUTER HASH JOIN
											(
												SELECT TOP(@i)
													wt1.wait_type,
													wt1.waiting_task_address,
													MAX(wt1.wait_duration_ms) AS wait_duration_ms,
													MAX(wt1.block_info) AS block_info
												FROM
												(
													SELECT DISTINCT TOP(@i)
														wt.wait_type +
															CASE
																WHEN wt.wait_type LIKE N''PAGE%LATCH_%'' THEN
																	'':'' +
																	COALESCE(DB_NAME(CONVERT(INT, LEFT(wt.resource_description, CHARINDEX(N'':'', wt.resource_description) - 1))), N''(null)'') +
																	N'':'' +
																	SUBSTRING(wt.resource_description, CHARINDEX(N'':'', wt.resource_description) + 1, LEN(wt.resource_description) - CHARINDEX(N'':'', REVERSE(wt.resource_description)) - CHARINDEX(N'':'', wt.resource_description)) +
																	N''('' +
																		CASE
																			WHEN
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) = 1 OR
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) % 8088 = 0
																					THEN 
																						N''PFS''
																			WHEN
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) = 2 OR
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) % 511232 = 0 
																					THEN 
																						N''GAM''
																			WHEN
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) = 3 OR
																				(CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) - 1) % 511232 = 0 
																					THEN 
																						N''SGAM''
																			WHEN
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) = 6 OR
																				(CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) - 6) % 511232 = 0 
																					THEN 
																						N''DCM''
																			WHEN
																				CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) = 7 OR
																				(CONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N'':'', REVERSE(wt.resource_description)) - 1)) - 7) % 511232 = 0
																					THEN 
																						N''BCM''
																			ELSE
																				N''*''
																		END +
																	N'')''
																WHEN wt.wait_type = N''CXPACKET'' THEN
																	N'':'' + SUBSTRING(wt.resource_description, CHARINDEX(N''nodeId'', wt.resource_description) + 7, 4)
																WHEN wt.wait_type LIKE N''LATCH[_]%'' THEN
																	N'' ['' + LEFT(wt.resource_description, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description), 0), LEN(wt.resource_description) + 1) - 1) + N'']''
																ELSE 
																	N''''
															END COLLATE Latin1_General_Bin2 AS wait_type,
														CASE
															WHEN
															(
																wt.blocking_session_id IS NOT NULL
																AND wt.wait_type LIKE N''LCK[_]%''
															) THEN
																(
																	SELECT TOP(@i)
																		x.lock_type,
																		REPLACE
																		(
																			REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
																			REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
																			REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
																				DB_NAME
																				(
																					CONVERT
																					(
																						INT,
																						SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''dbid='', wt.resource_description), 0) + 5, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''dbid='', wt.resource_description) + 5), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''dbid='', wt.resource_description) - 5)
																					)
																				),
																				NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''),
																				NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''),
																				NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''),
																			NCHAR(0),
																			N''''
																		) AS database_name,
																		CASE x.lock_type
																			WHEN N''objectlock'' THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''objid='', wt.resource_description), 0) + 6, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''objid='', wt.resource_description) + 6), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''objid='', wt.resource_description) - 6)
																			ELSE
																				NULL
																		END AS object_id,
																		CASE x.lock_type
																			WHEN N''filelock'' THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''fileid='', wt.resource_description), 0) + 7, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''fileid='', wt.resource_description) + 7), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''fileid='', wt.resource_description) - 7)
																			ELSE
																				NULL
																		END AS file_id,
																		CASE
																			WHEN x.lock_type in (N''pagelock'', N''extentlock'', N''ridlock'') THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''associatedObjectId='', wt.resource_description), 0) + 19, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''associatedObjectId='', wt.resource_description) + 19), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''associatedObjectId='', wt.resource_description) - 19)
																			WHEN x.lock_type in (N''keylock'', N''hobtlock'', N''allocunitlock'') THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''hobtid='', wt.resource_description), 0) + 7, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''hobtid='', wt.resource_description) + 7), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''hobtid='', wt.resource_description) - 7)
																			ELSE
																				NULL
																		END AS hobt_id,
																		CASE x.lock_type
																			WHEN N''applicationlock'' THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''hash='', wt.resource_description), 0) + 5, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''hash='', wt.resource_description) + 5), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''hash='', wt.resource_description) - 5)
																			ELSE
																				NULL
																		END AS applock_hash,
																		CASE x.lock_type
																			WHEN N''metadatalock'' THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''subresource='', wt.resource_description), 0) + 12, COALESCE(NULLIF(CHARINDEX(N'' '', wt.resource_description, CHARINDEX(N''subresource='', wt.resource_description) + 12), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N''subresource='', wt.resource_description) - 12)
																			ELSE
																				NULL
																		END AS metadata_resource,
																		CASE x.lock_type
																			WHEN N''metadatalock'' THEN
																				SUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N''classid='', wt.resource_description), 0) + 8, COALESCE(NULLIF(CHARINDEX(N'' dbid='', wt.resource_description) - CHARINDEX(N''classid='', wt.resource_description), 0), LEN(wt.resource_description) + 1) - 8)
																			ELSE
																				NULL
																		END AS metadata_class_id
																	FROM
																	(
																		SELECT TOP(1)
																			LEFT(wt.resource_description, CHARINDEX(N'' '', wt.resource_description) - 1) COLLATE Latin1_General_Bin2 AS lock_type
																	) AS x
																	FOR XML
																		PATH('''')
																)
															ELSE NULL
														END AS block_info,
														wt.wait_duration_ms,
														wt.waiting_task_address
													FROM
													(
														SELECT TOP(@i)
															wt0.wait_type COLLATE Latin1_General_Bin2 AS wait_type,
															wt0.resource_description COLLATE Latin1_General_Bin2 AS resource_description,
															wt0.wait_duration_ms,
															wt0.waiting_task_address,
															CASE
																WHEN wt0.blocking_session_id = p.blocked THEN
																	wt0.blocking_session_id
																ELSE
																	NULL
															END AS blocking_session_id
														FROM sys.dm_os_waiting_tasks AS wt0
														CROSS APPLY
														(
															SELECT TOP(1)
																s0.blocked
															FROM @sessions AS s0
															WHERE
																s0.session_id = wt0.session_id
																AND COALESCE(s0.wait_type, N'''') <> N''OLEDB''
																AND wt0.wait_type <> N''OLEDB''
														) AS p
													) AS wt
												) AS wt1
												GROUP BY
													wt1.wait_type,
													wt1.waiting_task_address
											) AS wt2 ON
												wt2.waiting_task_address = task_info.task_address
												AND wt2.wait_duration_ms > 0
												AND task_info.runnable_time IS NULL
											GROUP BY
												task_info.session_id,
												task_info.request_id,
												task_info.physical_io,
												task_info.context_switches,
												task_info.thread_CPU_snapshot,
												task_info.num_tasks,
												CASE
													WHEN task_info.runnable_time IS NOT NULL THEN
														''RUNNABLE''
													ELSE
														wt2.wait_type
												END
										) AS w1
									) AS waits
									ORDER BY
										waits.session_id,
										waits.request_id,
										waits.r
									FOR XML
										PATH(N''tasks''),
										TYPE
								) AS tasks_raw (task_xml_raw)
							) AS tasks_final
							CROSS APPLY tasks_final.task_xml.nodes(N''/tasks'') AS task_nodes (task_node)
							WHERE
								task_nodes.task_node.exist(N''session_id'') = 1
						) AS tasks ON
							tasks.session_id = y.session_id
							AND tasks.request_id = y.request_id 
						'
					ELSE
						''
				END +
				'LEFT OUTER HASH JOIN
				(
					SELECT TOP(@i)
						t_info.session_id,
						COALESCE(t_info.request_id, -1) AS request_id,
						SUM(t_info.tempdb_allocations) AS tempdb_allocations,
						SUM(t_info.tempdb_current) AS tempdb_current
					FROM
					(
						SELECT TOP(@i)
							tsu.session_id,
							tsu.request_id,
							tsu.user_objects_alloc_page_count +
								tsu.internal_objects_alloc_page_count AS tempdb_allocations,
							tsu.user_objects_alloc_page_count +
								tsu.internal_objects_alloc_page_count -
								tsu.user_objects_dealloc_page_count -
								tsu.internal_objects_dealloc_page_count AS tempdb_current
						FROM sys.dm_db_task_space_usage AS tsu
						CROSS APPLY
						(
							SELECT TOP(1)
								s0.session_id
							FROM @sessions AS s0
							WHERE
								s0.session_id = tsu.session_id
						) AS p

						UNION ALL

						SELECT TOP(@i)
							ssu.session_id,
							NULL AS request_id,
							ssu.user_objects_alloc_page_count +
								ssu.internal_objects_alloc_page_count AS tempdb_allocations,
							ssu.user_objects_alloc_page_count +
								ssu.internal_objects_alloc_page_count -
								ssu.user_objects_dealloc_page_count -
								ssu.internal_objects_dealloc_page_count AS tempdb_current
						FROM sys.dm_db_session_space_usage AS ssu
						CROSS APPLY
						(
							SELECT TOP(1)
								s0.session_id
							FROM @sessions AS s0
							WHERE
								s0.session_id = ssu.session_id
						) AS p
					) AS t_info
					GROUP BY
						t_info.session_id,
						COALESCE(t_info.request_id, -1)
				) AS tempdb_info ON
					tempdb_info.session_id = y.session_id
					AND tempdb_info.request_id =
						CASE
							WHEN y.status = N''sleeping'' THEN
								-1
							ELSE
								y.request_id
						END
				' +
				CASE 
					WHEN 
						NOT 
						(
							@get_avg_time = 1 
							AND @recursion = 1
						) THEN 
							''
					ELSE
						'LEFT OUTER HASH JOIN
						(
							SELECT TOP(@i)
								*
							FROM sys.dm_exec_query_stats
						) AS qs ON
							qs.sql_handle = y.sql_handle
							AND qs.plan_handle = y.plan_handle
							AND qs.statement_start_offset = y.statement_start_offset
							AND qs.statement_end_offset = y.statement_end_offset
						'
				END + 
			') AS x
			OPTION (KEEPFIXED PLAN, OPTIMIZE FOR (@i = 1)); ';

		SET @sql_n = CONVERT(NVARCHAR(MAX), @sql);

		SET @last_collection_start = GETDATE();

		IF 
			@recursion = -1
			AND @sys_info = 1
		BEGIN;
			SELECT
				@first_collection_ms_ticks = ms_ticks
			FROM sys.dm_os_sys_info;
		END;

		INSERT #sessions
		(
			recursion,
			session_id,
			request_id,
			session_number,
			elapsed_time,
			avg_elapsed_time,
			physical_io,
			reads,
			physical_reads,
			writes,
			tempdb_allocations,
			tempdb_current,
			CPU,
			thread_CPU_snapshot,
			context_switches,
			used_memory,
			tasks,
			status,
			wait_info,
			transaction_id,
			open_tran_count,
			sql_handle,
			statement_start_offset,
			statement_end_offset,		
			sql_text,
			plan_handle,
			blocking_session_id,
			percent_complete,
			host_name,
			login_name,
			database_name,
			program_name,
			additional_info,
			start_time,
			login_time,
			last_request_start_time
		)
		EXEC sp_executesql 
			@sql_n,
			N'@recursion SMALLINT, @filter sysname, @not_filter sysname, @first_collection_ms_ticks BIGINT',
			@recursion, @filter, @not_filter, @first_collection_ms_ticks;

		--Collect transaction information?
		IF
			@recursion = 1
			AND
			(
				@output_column_list LIKE '%|[tran_start_time|]%' ESCAPE '|'
				OR @output_column_list LIKE '%|[tran_log_writes|]%' ESCAPE '|' 
			)
		BEGIN;	
			DECLARE @i INT;
			SET @i = 2147483647;

			UPDATE s
			SET
				tran_start_time =
					CONVERT
					(
						DATETIME,
						LEFT
						(
							x.trans_info,
							NULLIF(CHARINDEX(NCHAR(254) COLLATE Latin1_General_Bin2, x.trans_info) - 1, -1)
						),
						121
					),
				tran_log_writes =
					RIGHT
					(
						x.trans_info,
						LEN(x.trans_info) - CHARINDEX(NCHAR(254) COLLATE Latin1_General_Bin2, x.trans_info)
					)
			FROM
			(
				SELECT TOP(@i)
					trans_nodes.trans_node.value('(session_id/text())[1]', 'SMALLINT') AS session_id,
					COALESCE(trans_nodes.trans_node.value('(request_id/text())[1]', 'INT'), 0) AS request_id,
					trans_nodes.trans_node.value('(trans_info/text())[1]', 'NVARCHAR(4000)') AS trans_info				
				FROM
				(
					SELECT TOP(@i)
						CONVERT
						(
							XML,
							REPLACE
							(
								CONVERT(NVARCHAR(MAX), trans_raw.trans_xml_raw) COLLATE Latin1_General_Bin2, 
								N'</trans_info></trans><trans><trans_info>', N''
							)
						)
					FROM
					(
						SELECT TOP(@i)
							CASE u_trans.r
								WHEN 1 THEN u_trans.session_id
								ELSE NULL
							END AS [session_id],
							CASE u_trans.r
								WHEN 1 THEN u_trans.request_id
								ELSE NULL
							END AS [request_id],
							CONVERT
							(
								NVARCHAR(MAX),
								CASE
									WHEN u_trans.database_id IS NOT NULL THEN
										CASE u_trans.r
											WHEN 1 THEN COALESCE(CONVERT(NVARCHAR, u_trans.transaction_start_time, 121) + NCHAR(254), N'')
											ELSE N''
										END + 
											REPLACE
											(
												REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
												REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
												REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
													CONVERT(VARCHAR(128), COALESCE(DB_NAME(u_trans.database_id), N'(null)')),
													NCHAR(31),N'?'),NCHAR(30),N'?'),NCHAR(29),N'?'),NCHAR(28),N'?'),NCHAR(27),N'?'),NCHAR(26),N'?'),NCHAR(25),N'?'),NCHAR(24),N'?'),NCHAR(23),N'?'),NCHAR(22),N'?'),
													NCHAR(21),N'?'),NCHAR(20),N'?'),NCHAR(19),N'?'),NCHAR(18),N'?'),NCHAR(17),N'?'),NCHAR(16),N'?'),NCHAR(15),N'?'),NCHAR(14),N'?'),NCHAR(12),N'?'),
													NCHAR(11),N'?'),NCHAR(8),N'?'),NCHAR(7),N'?'),NCHAR(6),N'?'),NCHAR(5),N'?'),NCHAR(4),N'?'),NCHAR(3),N'?'),NCHAR(2),N'?'),NCHAR(1),N'?'),
												NCHAR(0),
												N'?'
											) +
											N': ' +
										CONVERT(NVARCHAR, u_trans.log_record_count) + N' (' + CONVERT(NVARCHAR, u_trans.log_kb_used) + N' kB)' +
										N','
									ELSE
										N'N/A,'
								END COLLATE Latin1_General_Bin2
							) AS [trans_info]
						FROM
						(
							SELECT TOP(@i)
								trans.*,
								ROW_NUMBER() OVER
								(
									PARTITION BY
										trans.session_id,
										trans.request_id
									ORDER BY
										trans.transaction_start_time DESC
								) AS r
							FROM
							(
								SELECT TOP(@i)
									session_tran_map.session_id,
									session_tran_map.request_id,
									s_tran.database_id,
									COALESCE(SUM(s_tran.database_transaction_log_record_count), 0) AS log_record_count,
									COALESCE(SUM(s_tran.database_transaction_log_bytes_used), 0) / 1024 AS log_kb_used,
									MIN(s_tran.database_transaction_begin_time) AS transaction_start_time
								FROM
								(
									SELECT TOP(@i)
										*
									FROM sys.dm_tran_active_transactions
									WHERE
										transaction_begin_time <= @last_collection_start
								) AS a_tran
								INNER HASH JOIN
								(
									SELECT TOP(@i)
										*
									FROM sys.dm_tran_database_transactions
									WHERE
										database_id < 32767
								) AS s_tran ON
									s_tran.transaction_id = a_tran.transaction_id
								LEFT OUTER HASH JOIN
								(
									SELECT TOP(@i)
										*
									FROM sys.dm_tran_session_transactions
								) AS tst ON
									s_tran.transaction_id = tst.transaction_id
								CROSS APPLY
								(
									SELECT TOP(1)
										s3.session_id,
										s3.request_id
									FROM
									(
										SELECT TOP(1)
											s1.session_id,
											s1.request_id
										FROM #sessions AS s1
										WHERE
											s1.transaction_id = s_tran.transaction_id
											AND s1.recursion = 1
											
										UNION ALL
									
										SELECT TOP(1)
											s2.session_id,
											s2.request_id
										FROM #sessions AS s2
										WHERE
											s2.session_id = tst.session_id
											AND s2.recursion = 1
									) AS s3
									ORDER BY
										s3.request_id
								) AS session_tran_map
								GROUP BY
									session_tran_map.session_id,
									session_tran_map.request_id,
									s_tran.database_id
							) AS trans
						) AS u_trans
						FOR XML
							PATH('trans'),
							TYPE
					) AS trans_raw (trans_xml_raw)
				) AS trans_final (trans_xml)
				CROSS APPLY trans_final.trans_xml.nodes('/trans') AS trans_nodes (trans_node)
			) AS x
			INNER HASH JOIN #sessions AS s ON
				s.session_id = x.session_id
				AND s.request_id = x.request_id
			OPTION (OPTIMIZE FOR (@i = 1));
		END;

		--Variables for text and plan collection
		DECLARE	
			@session_id SMALLINT,
			@request_id INT,
			@sql_handle VARBINARY(64),
			@plan_handle VARBINARY(64),
			@statement_start_offset INT,
			@statement_end_offset INT,
			@start_time DATETIME,
			@database_name sysname;

		IF 
			@recursion = 1
			AND @output_column_list LIKE '%|[sql_text|]%' ESCAPE '|'
		BEGIN;
			DECLARE sql_cursor
			CURSOR LOCAL FAST_FORWARD
			FOR 
				SELECT 
					session_id,
					request_id,
					sql_handle,
					statement_start_offset,
					statement_end_offset
				FROM #sessions
				WHERE
					recursion = 1
					AND sql_handle IS NOT NULL
			OPTION (KEEPFIXED PLAN);

			OPEN sql_cursor;

			FETCH NEXT FROM sql_cursor
			INTO 
				@session_id,
				@request_id,
				@sql_handle,
				@statement_start_offset,
				@statement_end_offset;

			--Wait up to 5 ms for the SQL text, then give up
			SET LOCK_TIMEOUT 5;

			WHILE @@FETCH_STATUS = 0
			BEGIN;
				BEGIN TRY;
					UPDATE s
					SET
						s.sql_text =
						(
							SELECT
								REPLACE
								(
									REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
									REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
									REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
										N'--' + NCHAR(13) + NCHAR(10) +
										CASE 
											WHEN @get_full_inner_text = 1 THEN est.text
											WHEN LEN(est.text) < (@statement_end_offset / 2) + 1 THEN est.text
											WHEN SUBSTRING(est.text, (@statement_start_offset/2), 2) LIKE N'[a-zA-Z0-9][a-zA-Z0-9]' THEN est.text
											ELSE
												CASE
													WHEN @statement_start_offset > 0 THEN
														SUBSTRING
														(
															est.text,
															((@statement_start_offset/2) + 1),
															(
																CASE
																	WHEN @statement_end_offset = -1 THEN 2147483647
																	ELSE ((@statement_end_offset - @statement_start_offset)/2) + 1
																END
															)
														)
													ELSE RTRIM(LTRIM(est.text))
												END
										END +
										NCHAR(13) + NCHAR(10) + N'--' COLLATE Latin1_General_Bin2,
										NCHAR(31),N'?'),NCHAR(30),N'?'),NCHAR(29),N'?'),NCHAR(28),N'?'),NCHAR(27),N'?'),NCHAR(26),N'?'),NCHAR(25),N'?'),NCHAR(24),N'?'),NCHAR(23),N'?'),NCHAR(22),N'?'),
										NCHAR(21),N'?'),NCHAR(20),N'?'),NCHAR(19),N'?'),NCHAR(18),N'?'),NCHAR(17),N'?'),NCHAR(16),N'?'),NCHAR(15),N'?'),NCHAR(14),N'?'),NCHAR(12),N'?'),
										NCHAR(11),N'?'),NCHAR(8),N'?'),NCHAR(7),N'?'),NCHAR(6),N'?'),NCHAR(5),N'?'),NCHAR(4),N'?'),NCHAR(3),N'?'),NCHAR(2),N'?'),NCHAR(1),N'?'),
									NCHAR(0),
									N''
								) AS [processing-instruction(query)]
							FOR XML
								PATH(''),
								TYPE
						),
						s.statement_start_offset = 
							CASE 
								WHEN LEN(est.text) < (@statement_end_offset / 2) + 1 THEN 0
								WHEN SUBSTRING(CONVERT(VARCHAR(MAX), est.text), (@statement_start_offset/2), 2) LIKE '[a-zA-Z0-9][a-zA-Z0-9]' THEN 0
								ELSE @statement_start_offset
							END,
						s.statement_end_offset = 
							CASE 
								WHEN LEN(est.text) < (@statement_end_offset / 2) + 1 THEN -1
								WHEN SUBSTRING(CONVERT(VARCHAR(MAX), est.text), (@statement_start_offset/2), 2) LIKE '[a-zA-Z0-9][a-zA-Z0-9]' THEN -1
								ELSE @statement_end_offset
							END
					FROM 
						#sessions AS s,
						(
							SELECT TOP(1)
								text
							FROM
							(
								SELECT 
									text, 
									0 AS row_num
								FROM sys.dm_exec_sql_text(@sql_handle)
								
								UNION ALL
								
								SELECT 
									NULL,
									1 AS row_num
							) AS est0
							ORDER BY
								row_num
						) AS est
					WHERE 
						s.session_id = @session_id
						AND s.request_id = @request_id
						AND s.recursion = 1
					OPTION (KEEPFIXED PLAN);
				END TRY
				BEGIN CATCH;
					UPDATE s
					SET
						s.sql_text = 
							CASE ERROR_NUMBER() 
								WHEN 1222 THEN '<timeout_exceeded />'
								ELSE '<error message="' + ERROR_MESSAGE() + '" />'
							END
					FROM #sessions AS s
					WHERE 
						s.session_id = @session_id
						AND s.request_id = @request_id
						AND s.recursion = 1
					OPTION (KEEPFIXED PLAN);
				END CATCH;

				FETCH NEXT FROM sql_cursor
				INTO
					@session_id,
					@request_id,
					@sql_handle,
					@statement_start_offset,
					@statement_end_offset;
			END;

			--Return this to the default
			SET LOCK_TIMEOUT -1;

			CLOSE sql_cursor;
			DEALLOCATE sql_cursor;
		END;

		IF 
			@get_outer_command = 1 
			AND @recursion = 1
			AND @output_column_list LIKE '%|[sql_command|]%' ESCAPE '|'
		BEGIN;
			DECLARE @buffer_results TABLE
			(
				EventType VARCHAR(30),
				Parameters INT,
				EventInfo NVARCHAR(4000),
				start_time DATETIME,
				session_number INT IDENTITY(1,1) NOT NULL PRIMARY KEY
			);

			DECLARE buffer_cursor
			CURSOR LOCAL FAST_FORWARD
			FOR 
				SELECT 
					session_id,
					MAX(start_time) AS start_time
				FROM #sessions
				WHERE
					recursion = 1
				GROUP BY
					session_id
				ORDER BY
					session_id
				OPTION (KEEPFIXED PLAN);

			OPEN buffer_cursor;

			FETCH NEXT FROM buffer_cursor
			INTO 
				@session_id,
				@start_time;

			WHILE @@FETCH_STATUS = 0
			BEGIN;
				BEGIN TRY;
					--In SQL Server 2008, DBCC INPUTBUFFER will throw 
					--an exception if the session no longer exists
					INSERT @buffer_results
					(
						EventType,
						Parameters,
						EventInfo
					)
					EXEC sp_executesql
						N'DBCC INPUTBUFFER(@session_id) WITH NO_INFOMSGS;',
						N'@session_id SMALLINT',
						@session_id;

					UPDATE br
					SET
						br.start_time = @start_time
					FROM @buffer_results AS br
					WHERE
						br.session_number = 
						(
							SELECT MAX(br2.session_number)
							FROM @buffer_results br2
						);
				END TRY
				BEGIN CATCH
				END CATCH;

				FETCH NEXT FROM buffer_cursor
				INTO 
					@session_id,
					@start_time;
			END;

			UPDATE s
			SET
				sql_command = 
				(
					SELECT 
						REPLACE
						(
							REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
							REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
							REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								CONVERT
								(
									NVARCHAR(MAX),
									N'--' + NCHAR(13) + NCHAR(10) + br.EventInfo + NCHAR(13) + NCHAR(10) + N'--' COLLATE Latin1_General_Bin2
								),
								NCHAR(31),N'?'),NCHAR(30),N'?'),NCHAR(29),N'?'),NCHAR(28),N'?'),NCHAR(27),N'?'),NCHAR(26),N'?'),NCHAR(25),N'?'),NCHAR(24),N'?'),NCHAR(23),N'?'),NCHAR(22),N'?'),
								NCHAR(21),N'?'),NCHAR(20),N'?'),NCHAR(19),N'?'),NCHAR(18),N'?'),NCHAR(17),N'?'),NCHAR(16),N'?'),NCHAR(15),N'?'),NCHAR(14),N'?'),NCHAR(12),N'?'),
								NCHAR(11),N'?'),NCHAR(8),N'?'),NCHAR(7),N'?'),NCHAR(6),N'?'),NCHAR(5),N'?'),NCHAR(4),N'?'),NCHAR(3),N'?'),NCHAR(2),N'?'),NCHAR(1),N'?'),
							NCHAR(0),
							N''
						) AS [processing-instruction(query)]
					FROM @buffer_results AS br
					WHERE 
						br.session_number = s.session_number
						AND br.start_time = s.start_time
						AND 
						(
							(
								s.start_time = s.last_request_start_time
								AND EXISTS
								(
									SELECT *
									FROM sys.dm_exec_requests r2
									WHERE
										r2.session_id = s.session_id
										AND r2.request_id = s.request_id
										AND r2.start_time = s.start_time
								)
							)
							OR 
							(
								s.request_id = 0
								AND EXISTS
								(
									SELECT *
									FROM sys.dm_exec_sessions s2
									WHERE
										s2.session_id = s.session_id
										AND s2.last_request_start_time = s.last_request_start_time
								)
							)
						)
					FOR XML
						PATH(''),
						TYPE
				)
			FROM #sessions AS s
			WHERE
				recursion = 1
			OPTION (KEEPFIXED PLAN);

			CLOSE buffer_cursor;
			DEALLOCATE buffer_cursor;
		END;

		IF 
			@get_plans >= 1 
			AND @recursion = 1
			AND @output_column_list LIKE '%|[query_plan|]%' ESCAPE '|'
		BEGIN;
			DECLARE @live_plan BIT;
			SET @live_plan = ISNULL(CONVERT(BIT, SIGN(OBJECT_ID('sys.dm_exec_query_statistics_xml'))), 0)

			DECLARE plan_cursor
			CURSOR LOCAL FAST_FORWARD
			FOR 
				SELECT
					session_id,
					request_id,
					plan_handle,
					statement_start_offset,
					statement_end_offset
				FROM #sessions
				WHERE
					recursion = 1
					AND plan_handle IS NOT NULL
			OPTION (KEEPFIXED PLAN);

			OPEN plan_cursor;

			FETCH NEXT FROM plan_cursor
			INTO 
				@session_id,
				@request_id,
				@plan_handle,
				@statement_start_offset,
				@statement_end_offset;

			--Wait up to 5 ms for a query plan, then give up
			SET LOCK_TIMEOUT 5;

			WHILE @@FETCH_STATUS = 0
			BEGIN;
				DECLARE @query_plan XML;
				SET @query_plan = NULL;

				IF @live_plan = 1
				BEGIN;
					BEGIN TRY;
						SELECT
							@query_plan = x.query_plan
						FROM sys.dm_exec_query_statistics_xml(@session_id) AS x;

						IF 
							@query_plan IS NOT NULL
							AND EXISTS
							(
								SELECT
									*
								FROM sys.dm_exec_requests AS r
								WHERE
									r.session_id = @session_id
									AND r.request_id = @request_id
									AND r.plan_handle = @plan_handle
									AND r.statement_start_offset = @statement_start_offset
									AND r.statement_end_offset = @statement_end_offset
							)
						BEGIN;
							UPDATE s
							SET
								s.query_plan = @query_plan
							FROM #sessions AS s
							WHERE 
								s.session_id = @session_id
								AND s.request_id = @request_id
								AND s.recursion = 1
							OPTION (KEEPFIXED PLAN);
						END;
					END TRY
					BEGIN CATCH;
						SET @query_plan = NULL;
					END CATCH;
				END;

				IF @query_plan IS NULL
				BEGIN;
					BEGIN TRY;
						UPDATE s
						SET
							s.query_plan =
							(
								SELECT
									CONVERT(xml, query_plan)
								FROM sys.dm_exec_text_query_plan
								(
									@plan_handle, 
									CASE @get_plans
										WHEN 1 THEN
											@statement_start_offset
										ELSE
											0
									END, 
									CASE @get_plans
										WHEN 1 THEN
											@statement_end_offset
										ELSE
											-1
									END
								)
							)
						FROM #sessions AS s
						WHERE 
							s.session_id = @session_id
							AND s.request_id = @request_id
							AND s.recursion = 1
						OPTION (KEEPFIXED PLAN);
					END TRY
					BEGIN CATCH;
						IF ERROR_NUMBER() = 6335
						BEGIN;
							UPDATE s
							SET
								s.query_plan =
								(
									SELECT
										N'--' + NCHAR(13) + NCHAR(10) + 
										N'-- Could not render showplan due to XML data type limitations. ' + NCHAR(13) + NCHAR(10) + 
										N'-- To see the graphical plan save the XML below as a .SQLPLAN file and re-open in SSMS.' + NCHAR(13) + NCHAR(10) +
										N'--' + NCHAR(13) + NCHAR(10) +
											REPLACE(qp.query_plan, N'<RelOp', NCHAR(13)+NCHAR(10)+N'<RelOp') + 
											NCHAR(13) + NCHAR(10) + N'--' COLLATE Latin1_General_Bin2 AS [processing-instruction(query_plan)]
									FROM sys.dm_exec_text_query_plan
									(
										@plan_handle, 
										CASE @get_plans
											WHEN 1 THEN
												@statement_start_offset
											ELSE
												0
										END, 
										CASE @get_plans
											WHEN 1 THEN
												@statement_end_offset
											ELSE
												-1
										END
									) AS qp
									FOR XML
										PATH(''),
										TYPE
								)
							FROM #sessions AS s
							WHERE 
								s.session_id = @session_id
								AND s.request_id = @request_id
								AND s.recursion = 1
							OPTION (KEEPFIXED PLAN);
						END;
						ELSE
						BEGIN;
							UPDATE s
							SET
								s.query_plan = 
									CASE ERROR_NUMBER() 
										WHEN 1222 THEN '<timeout_exceeded />'
										ELSE '<error message="' + ERROR_MESSAGE() + '" />'
									END
							FROM #sessions AS s
							WHERE 
								s.session_id = @session_id
								AND s.request_id = @request_id
								AND s.recursion = 1
							OPTION (KEEPFIXED PLAN);
						END;
					END CATCH;
				END;

				FETCH NEXT FROM plan_cursor
				INTO
					@session_id,
					@request_id,
					@plan_handle,
					@statement_start_offset,
					@statement_end_offset;
			END;

			--Return this to the default
			SET LOCK_TIMEOUT -1;

			CLOSE plan_cursor;
			DEALLOCATE plan_cursor;
		END;

		IF 
			@get_locks = 1 
			AND @recursion = 1
			AND @output_column_list LIKE '%|[locks|]%' ESCAPE '|'
		BEGIN;
			DECLARE locks_cursor
			CURSOR LOCAL FAST_FORWARD
			FOR 
				SELECT DISTINCT
					database_name
				FROM #locks
				WHERE
					EXISTS
					(
						SELECT *
						FROM #sessions AS s
						WHERE
							s.session_id = #locks.session_id
							AND recursion = 1
					)
					AND database_name <> '(null)'
				OPTION (KEEPFIXED PLAN);

			OPEN locks_cursor;

			FETCH NEXT FROM locks_cursor
			INTO 
				@database_name;

			WHILE @@FETCH_STATUS = 0
			BEGIN;
				BEGIN TRY;
					SET @sql_n = CONVERT(NVARCHAR(MAX), '') +
						'UPDATE l ' +
						'SET ' +
							'object_name = ' +
								'REPLACE ' +
								'( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
										'o.name COLLATE Latin1_General_Bin2, ' +
										'NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''), ' +
										'NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''), ' +
										'NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''), ' +
									'NCHAR(0), ' +
									N''''' ' +
								'), ' +
							'index_name = ' +
								'REPLACE ' +
								'( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
										'i.name COLLATE Latin1_General_Bin2, ' +
										'NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''), ' +
										'NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''), ' +
										'NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''), ' +
									'NCHAR(0), ' +
									N''''' ' +
								'), ' +
							'schema_name = ' +
								'REPLACE ' +
								'( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
										's.name COLLATE Latin1_General_Bin2, ' +
										'NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''), ' +
										'NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''), ' +
										'NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''), ' +
									'NCHAR(0), ' +
									N''''' ' +
								'), ' +
							'principal_name = ' + 
								'REPLACE ' +
								'( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
										'dp.name COLLATE Latin1_General_Bin2, ' +
										'NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''), ' +
										'NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''), ' +
										'NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''), ' +
									'NCHAR(0), ' +
									N''''' ' +
								') ' +
						'FROM #locks AS l ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.allocation_units AS au ON ' +
							'au.allocation_unit_id = l.allocation_unit_id ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.partitions AS p ON ' +
							'p.hobt_id = ' +
								'COALESCE ' +
								'( ' +
									'l.hobt_id, ' +
									'CASE ' +
										'WHEN au.type IN (1, 3) THEN au.container_id ' +
										'ELSE NULL ' +
									'END ' +
								') ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.partitions AS p1 ON ' +
							'l.hobt_id IS NULL ' +
							'AND au.type = 2 ' +
							'AND p1.partition_id = au.container_id ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.objects AS o ON ' +
							'o.object_id = COALESCE(l.object_id, p.object_id, p1.object_id) ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.indexes AS i ON ' +
							'i.object_id = COALESCE(l.object_id, p.object_id, p1.object_id) ' +
							'AND i.index_id = COALESCE(l.index_id, p.index_id, p1.index_id) ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.schemas AS s ON ' +
							's.schema_id = COALESCE(l.schema_id, o.schema_id) ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.database_principals AS dp ON ' +
							'dp.principal_id = l.principal_id ' +
						'WHERE ' +
							'l.database_name = @database_name ' +
						'OPTION (KEEPFIXED PLAN); ';
					
					EXEC sp_executesql
						@sql_n,
						N'@database_name sysname',
						@database_name;
				END TRY
				BEGIN CATCH;
					UPDATE #locks
					SET
						query_error = 
							REPLACE
							(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
									CONVERT
									(
										NVARCHAR(MAX), 
										ERROR_MESSAGE() COLLATE Latin1_General_Bin2
									),
									NCHAR(31),N'?'),NCHAR(30),N'?'),NCHAR(29),N'?'),NCHAR(28),N'?'),NCHAR(27),N'?'),NCHAR(26),N'?'),NCHAR(25),N'?'),NCHAR(24),N'?'),NCHAR(23),N'?'),NCHAR(22),N'?'),
									NCHAR(21),N'?'),NCHAR(20),N'?'),NCHAR(19),N'?'),NCHAR(18),N'?'),NCHAR(17),N'?'),NCHAR(16),N'?'),NCHAR(15),N'?'),NCHAR(14),N'?'),NCHAR(12),N'?'),
									NCHAR(11),N'?'),NCHAR(8),N'?'),NCHAR(7),N'?'),NCHAR(6),N'?'),NCHAR(5),N'?'),NCHAR(4),N'?'),NCHAR(3),N'?'),NCHAR(2),N'?'),NCHAR(1),N'?'),
								NCHAR(0),
								N''
							)
					WHERE 
						database_name = @database_name
					OPTION (KEEPFIXED PLAN);
				END CATCH;

				FETCH NEXT FROM locks_cursor
				INTO
					@database_name;
			END;

			CLOSE locks_cursor;
			DEALLOCATE locks_cursor;

			CREATE CLUSTERED INDEX IX_SRD ON #locks (session_id, request_id, database_name);

			UPDATE s
			SET 
				s.locks =
				(
					SELECT 
						REPLACE
						(
							REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
							REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
							REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								CONVERT
								(
									NVARCHAR(MAX), 
									l1.database_name COLLATE Latin1_General_Bin2
								),
								NCHAR(31),N'?'),NCHAR(30),N'?'),NCHAR(29),N'?'),NCHAR(28),N'?'),NCHAR(27),N'?'),NCHAR(26),N'?'),NCHAR(25),N'?'),NCHAR(24),N'?'),NCHAR(23),N'?'),NCHAR(22),N'?'),
								NCHAR(21),N'?'),NCHAR(20),N'?'),NCHAR(19),N'?'),NCHAR(18),N'?'),NCHAR(17),N'?'),NCHAR(16),N'?'),NCHAR(15),N'?'),NCHAR(14),N'?'),NCHAR(12),N'?'),
								NCHAR(11),N'?'),NCHAR(8),N'?'),NCHAR(7),N'?'),NCHAR(6),N'?'),NCHAR(5),N'?'),NCHAR(4),N'?'),NCHAR(3),N'?'),NCHAR(2),N'?'),NCHAR(1),N'?'),
							NCHAR(0),
							N''
						) AS [Database/@name],
						MIN(l1.query_error) AS [Database/@query_error],
						(
							SELECT 
								l2.request_mode AS [Lock/@request_mode],
								l2.request_status AS [Lock/@request_status],
								COUNT(*) AS [Lock/@request_count]
							FROM #locks AS l2
							WHERE 
								l1.session_id = l2.session_id
								AND l1.request_id = l2.request_id
								AND l2.database_name = l1.database_name
								AND l2.resource_type = 'DATABASE'
							GROUP BY
								l2.request_mode,
								l2.request_status
							FOR XML
								PATH(''),
								TYPE
						) AS [Database/Locks],
						(
							SELECT
								COALESCE(l3.object_name, '(null)') AS [Object/@name],
								l3.schema_name AS [Object/@schema_name],
								(
									SELECT
										l4.resource_type AS [Lock/@resource_type],
										l4.page_type AS [Lock/@page_type],
										l4.index_name AS [Lock/@index_name],
										CASE 
											WHEN l4.object_name IS NULL THEN l4.schema_name
											ELSE NULL
										END AS [Lock/@schema_name],
										l4.principal_name AS [Lock/@principal_name],
										l4.resource_description AS [Lock/@resource_description],
										l4.request_mode AS [Lock/@request_mode],
										l4.request_status AS [Lock/@request_status],
										SUM(l4.request_count) AS [Lock/@request_count]
									FROM #locks AS l4
									WHERE 
										l4.session_id = l3.session_id
										AND l4.request_id = l3.request_id
										AND l3.database_name = l4.database_name
										AND COALESCE(l3.object_name, '(null)') = COALESCE(l4.object_name, '(null)')
										AND COALESCE(l3.schema_name, '') = COALESCE(l4.schema_name, '')
										AND l4.resource_type <> 'DATABASE'
									GROUP BY
										l4.resource_type,
										l4.page_type,
										l4.index_name,
										CASE 
											WHEN l4.object_name IS NULL THEN l4.schema_name
											ELSE NULL
										END,
										l4.principal_name,
										l4.resource_description,
										l4.request_mode,
										l4.request_status
									FOR XML
										PATH(''),
										TYPE
								) AS [Object/Locks]
							FROM #locks AS l3
							WHERE 
								l3.session_id = l1.session_id
								AND l3.request_id = l1.request_id
								AND l3.database_name = l1.database_name
								AND l3.resource_type <> 'DATABASE'
							GROUP BY 
								l3.session_id,
								l3.request_id,
								l3.database_name,
								COALESCE(l3.object_name, '(null)'),
								l3.schema_name
							FOR XML
								PATH(''),
								TYPE
						) AS [Database/Objects]
					FROM #locks AS l1
					WHERE
						l1.session_id = s.session_id
						AND l1.request_id = s.request_id
						AND l1.start_time IN (s.start_time, s.last_request_start_time)
						AND s.recursion = 1
					GROUP BY 
						l1.session_id,
						l1.request_id,
						l1.database_name
					FOR XML
						PATH(''),
						TYPE
				)
			FROM #sessions s
			OPTION (KEEPFIXED PLAN);
		END;

		IF 
			@find_block_leaders = 1
			AND @recursion = 1
			AND @output_column_list LIKE '%|[blocked_session_count|]%' ESCAPE '|'
		BEGIN;
			WITH
			blockers AS
			(
				SELECT
					session_id,
					session_id AS top_level_session_id,
					CONVERT(VARCHAR(8000), '.' + CONVERT(VARCHAR(8000), session_id) + '.') AS the_path
				FROM #sessions
				WHERE
					recursion = 1

				UNION ALL

				SELECT
					s.session_id,
					b.top_level_session_id,
					CONVERT(VARCHAR(8000), b.the_path + CONVERT(VARCHAR(8000), s.session_id) + '.') AS the_path
				FROM blockers AS b
				JOIN #sessions AS s ON
					s.blocking_session_id = b.session_id
					AND s.recursion = 1
					AND b.the_path NOT LIKE '%.' + CONVERT(VARCHAR(8000), s.session_id) + '.%' COLLATE Latin1_General_Bin2
			)
			UPDATE s
			SET
				s.blocked_session_count = x.blocked_session_count
			FROM #sessions AS s
			JOIN
			(
				SELECT
					b.top_level_session_id AS session_id,
					COUNT(*) - 1 AS blocked_session_count
				FROM blockers AS b
				GROUP BY
					b.top_level_session_id
			) x ON
				s.session_id = x.session_id
			WHERE
				s.recursion = 1;
		END;

		IF
			@get_task_info = 2
			AND @output_column_list LIKE '%|[additional_info|]%' ESCAPE '|'
			AND @recursion = 1
		BEGIN;
			CREATE TABLE #blocked_requests
			(
				session_id SMALLINT NOT NULL,
				request_id INT NOT NULL,
				database_name sysname NOT NULL,
				object_id INT,
				hobt_id BIGINT,
				schema_id INT,
				schema_name sysname NULL,
				object_name sysname NULL,
				query_error NVARCHAR(2048),
				PRIMARY KEY (database_name, session_id, request_id)
			);

			CREATE STATISTICS s_database_name ON #blocked_requests (database_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_schema_name ON #blocked_requests (schema_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_object_name ON #blocked_requests (object_name)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
			CREATE STATISTICS s_query_error ON #blocked_requests (query_error)
			WITH SAMPLE 0 ROWS, NORECOMPUTE;
		
			INSERT #blocked_requests
			(
				session_id,
				request_id,
				database_name,
				object_id,
				hobt_id,
				schema_id
			)
			SELECT
				session_id,
				request_id,
				database_name,
				object_id,
				hobt_id,
				CONVERT(INT, SUBSTRING(schema_node, CHARINDEX(' = ', schema_node) + 3, LEN(schema_node))) AS schema_id
			FROM
			(
				SELECT
					session_id,
					request_id,
					agent_nodes.agent_node.value('(database_name/text())[1]', 'sysname') AS database_name,
					agent_nodes.agent_node.value('(object_id/text())[1]', 'int') AS object_id,
					agent_nodes.agent_node.value('(hobt_id/text())[1]', 'bigint') AS hobt_id,
					agent_nodes.agent_node.value('(metadata_resource/text()[.="SCHEMA"]/../../metadata_class_id/text())[1]', 'varchar(100)') AS schema_node
				FROM #sessions AS s
				CROSS APPLY s.additional_info.nodes('//block_info') AS agent_nodes (agent_node)
				WHERE
					s.recursion = 1
			) AS t
			WHERE
				t.database_name IS NOT NULL
				AND
				(
					t.object_id IS NOT NULL
					OR t.hobt_id IS NOT NULL
					OR t.schema_node IS NOT NULL
				);
			
			DECLARE blocks_cursor
			CURSOR LOCAL FAST_FORWARD
			FOR
				SELECT DISTINCT
					database_name
				FROM #blocked_requests;
				
			OPEN blocks_cursor;
			
			FETCH NEXT FROM blocks_cursor
			INTO 
				@database_name;
			
			WHILE @@FETCH_STATUS = 0
			BEGIN;
				BEGIN TRY;
					SET @sql_n = 
						CONVERT(NVARCHAR(MAX), '') +
						'UPDATE b ' +
						'SET ' +
							'b.schema_name = ' +
								'REPLACE ' +
								'( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
										's.name COLLATE Latin1_General_Bin2, ' +
										'NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''), ' +
										'NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''), ' +
										'NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''), ' +
									'NCHAR(0), ' +
									N''''' ' +
								'), ' +
							'b.object_name = ' +
								'REPLACE ' +
								'( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
									'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( ' +
										'o.name COLLATE Latin1_General_Bin2, ' +
										'NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''), ' +
										'NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''), ' +
										'NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''), ' +
									'NCHAR(0), ' +
									N''''' ' +
								') ' +
						'FROM #blocked_requests AS b ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.partitions AS p ON ' +
							'p.hobt_id = b.hobt_id ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.objects AS o ON ' +
							'o.object_id = COALESCE(p.object_id, b.object_id) ' +
						'LEFT OUTER JOIN ' + QUOTENAME(@database_name) + '.sys.schemas AS s ON ' +
							's.schema_id = COALESCE(o.schema_id, b.schema_id) ' +
						'WHERE ' +
							'b.database_name = @database_name; ';
					
					EXEC sp_executesql
						@sql_n,
						N'@database_name sysname',
						@database_name;
				END TRY
				BEGIN CATCH;
					UPDATE #blocked_requests
					SET
						query_error = 
							REPLACE
							(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
									CONVERT
									(
										NVARCHAR(MAX), 
										ERROR_MESSAGE() COLLATE Latin1_General_Bin2
									),
									NCHAR(31),N'?'),NCHAR(30),N'?'),NCHAR(29),N'?'),NCHAR(28),N'?'),NCHAR(27),N'?'),NCHAR(26),N'?'),NCHAR(25),N'?'),NCHAR(24),N'?'),NCHAR(23),N'?'),NCHAR(22),N'?'),
									NCHAR(21),N'?'),NCHAR(20),N'?'),NCHAR(19),N'?'),NCHAR(18),N'?'),NCHAR(17),N'?'),NCHAR(16),N'?'),NCHAR(15),N'?'),NCHAR(14),N'?'),NCHAR(12),N'?'),
									NCHAR(11),N'?'),NCHAR(8),N'?'),NCHAR(7),N'?'),NCHAR(6),N'?'),NCHAR(5),N'?'),NCHAR(4),N'?'),NCHAR(3),N'?'),NCHAR(2),N'?'),NCHAR(1),N'?'),
								NCHAR(0),
								N''
							)
					WHERE
						database_name = @database_name;
				END CATCH;

				FETCH NEXT FROM blocks_cursor
				INTO
					@database_name;
			END;
			
			CLOSE blocks_cursor;
			DEALLOCATE blocks_cursor;
			
			UPDATE s
			SET
				additional_info.modify
				('
					insert <schema_name>{sql:column("b.schema_name")}</schema_name>
					as last
					into (/additional_info/block_info)[1]
				')
			FROM #sessions AS s
			INNER JOIN #blocked_requests AS b ON
				b.session_id = s.session_id
				AND b.request_id = s.request_id
				AND s.recursion = 1
			WHERE
				b.schema_name IS NOT NULL;

			UPDATE s
			SET
				additional_info.modify
				('
					insert <object_name>{sql:column("b.object_name")}</object_name>
					as last
					into (/additional_info/block_info)[1]
				')
			FROM #sessions AS s
			INNER JOIN #blocked_requests AS b ON
				b.session_id = s.session_id
				AND b.request_id = s.request_id
				AND s.recursion = 1
			WHERE
				b.object_name IS NOT NULL;

			UPDATE s
			SET
				additional_info.modify
				('
					insert <query_error>{sql:column("b.query_error")}</query_error>
					as last
					into (/additional_info/block_info)[1]
				')
			FROM #sessions AS s
			INNER JOIN #blocked_requests AS b ON
				b.session_id = s.session_id
				AND b.request_id = s.request_id
				AND s.recursion = 1
			WHERE
				b.query_error IS NOT NULL;
		END;

		IF
			@output_column_list LIKE '%|[program_name|]%' ESCAPE '|'
			AND @output_column_list LIKE '%|[additional_info|]%' ESCAPE '|'
			AND @recursion = 1
			AND DB_ID('msdb') IS NOT NULL
		BEGIN;
			SET @sql_n =
				N'BEGIN TRY;
					DECLARE @job_name sysname;
					SET @job_name = NULL;
					DECLARE @step_name sysname;
					SET @step_name = NULL;

					SELECT
						@job_name = 
							REPLACE
							(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
									j.name,
									NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''),
									NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''),
									NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''),
								NCHAR(0),
								N''?''
							),
						@step_name = 
							REPLACE
							(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
								REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
									s.step_name,
									NCHAR(31),N''?''),NCHAR(30),N''?''),NCHAR(29),N''?''),NCHAR(28),N''?''),NCHAR(27),N''?''),NCHAR(26),N''?''),NCHAR(25),N''?''),NCHAR(24),N''?''),NCHAR(23),N''?''),NCHAR(22),N''?''),
									NCHAR(21),N''?''),NCHAR(20),N''?''),NCHAR(19),N''?''),NCHAR(18),N''?''),NCHAR(17),N''?''),NCHAR(16),N''?''),NCHAR(15),N''?''),NCHAR(14),N''?''),NCHAR(12),N''?''),
									NCHAR(11),N''?''),NCHAR(8),N''?''),NCHAR(7),N''?''),NCHAR(6),N''?''),NCHAR(5),N''?''),NCHAR(4),N''?''),NCHAR(3),N''?''),NCHAR(2),N''?''),NCHAR(1),N''?''),
								NCHAR(0),
								N''?''
							)
					FROM msdb.dbo.sysjobs AS j
					INNER JOIN msdb.dbo.sysjobsteps AS s ON
						j.job_id = s.job_id
					WHERE
						j.job_id = @job_id
						AND s.step_id = @step_id;

					IF @job_name IS NOT NULL
					BEGIN;
						UPDATE s
						SET
							additional_info.modify
							(''
								insert text{sql:variable("@job_name")}
								into (/additional_info/agent_job_info/job_name)[1]
							'')
						FROM #sessions AS s
						WHERE 
							s.session_id = @session_id
							AND s.recursion = 1
						OPTION (KEEPFIXED PLAN);
						
						UPDATE s
						SET
							additional_info.modify
							(''
								insert text{sql:variable("@step_name")}
								into (/additional_info/agent_job_info/step_name)[1]
							'')
						FROM #sessions AS s
						WHERE 
							s.session_id = @session_id
							AND s.recursion = 1
						OPTION (KEEPFIXED PLAN);
					END;
				END TRY
				BEGIN CATCH;
					DECLARE @msdb_error_message NVARCHAR(256);
					SET @msdb_error_message = ERROR_MESSAGE();
				
					UPDATE s
					SET
						additional_info.modify
						(''
							insert <msdb_query_error>{sql:variable("@msdb_error_message")}</msdb_query_error>
							as last
							into (/additional_info/agent_job_info)[1]
						'')
					FROM #sessions AS s
					WHERE 
						s.session_id = @session_id
						AND s.recursion = 1
					OPTION (KEEPFIXED PLAN);
				END CATCH;'

			DECLARE @job_id UNIQUEIDENTIFIER;
			DECLARE @step_id INT;

			DECLARE agent_cursor
			CURSOR LOCAL FAST_FORWARD
			FOR 
				SELECT
					s.session_id,
					agent_nodes.agent_node.value('(job_id/text())[1]', 'uniqueidentifier') AS job_id,
					agent_nodes.agent_node.value('(step_id/text())[1]', 'int') AS step_id
				FROM #sessions AS s
				CROSS APPLY s.additional_info.nodes('//agent_job_info') AS agent_nodes (agent_node)
				WHERE
					s.recursion = 1
			OPTION (KEEPFIXED PLAN);
			
			OPEN agent_cursor;

			FETCH NEXT FROM agent_cursor
			INTO 
				@session_id,
				@job_id,
				@step_id;

			WHILE @@FETCH_STATUS = 0
			BEGIN;
				EXEC sp_executesql
					@sql_n,
					N'@job_id UNIQUEIDENTIFIER, @step_id INT, @session_id SMALLINT',
					@job_id, @step_id, @session_id

				FETCH NEXT FROM agent_cursor
				INTO 
					@session_id,
					@job_id,
					@step_id;
			END;

			CLOSE agent_cursor;
			DEALLOCATE agent_cursor;
		END; 
		
		IF 
			@delta_interval > 0 
			AND @recursion <> 1
		BEGIN;
			SET @recursion = 1;

			DECLARE @delay_time CHAR(12);
			SET @delay_time = CONVERT(VARCHAR, DATEADD(second, @delta_interval, 0), 114);
			WAITFOR DELAY @delay_time;

			GOTO REDO;
		END;
	END;

	SET @sql = 
		--Outer column list
		CONVERT
		(
			VARCHAR(MAX),
			CASE
				WHEN 
					@destination_table <> '' 
					AND @return_schema = 0 
						THEN 'INSERT ' + @destination_table + ' '
				ELSE ''
			END +
			'SELECT ' +
				@output_column_list + ' ' +
			CASE @return_schema
				WHEN 1 THEN 'INTO #session_schema '
				ELSE ''
			END
		--End outer column list
		) + 
		--Inner column list
		CONVERT
		(
			VARCHAR(MAX),
			'FROM ' +
			'( ' +
				'SELECT ' +
					'session_id, ' +
					--[dd hh:mm:ss.mss]
					CASE
						WHEN @format_output IN (1, 2) THEN
							'CASE ' +
								'WHEN elapsed_time < 0 THEN ' +
									'RIGHT ' +
									'( ' +
										'REPLICATE(''0'', max_elapsed_length) + CONVERT(VARCHAR, (-1 * elapsed_time) / 86400), ' +
										'max_elapsed_length ' +
									') + ' +
										'RIGHT ' +
										'( ' +
											'CONVERT(VARCHAR, DATEADD(second, (-1 * elapsed_time), 0), 120), ' +
											'9 ' +
										') + ' +
										'''.000'' ' +
								'ELSE ' +
									'RIGHT ' +
									'( ' +
										'REPLICATE(''0'', max_elapsed_length) + CONVERT(VARCHAR, elapsed_time / 86400000), ' +
										'max_elapsed_length ' +
									') + ' +
										'RIGHT ' +
										'( ' +
											'CONVERT(VARCHAR, DATEADD(second, elapsed_time / 1000, 0), 120), ' +
											'9 ' +
										') + ' +
										'''.'' + ' + 
										'RIGHT(''000'' + CONVERT(VARCHAR, elapsed_time % 1000), 3) ' +
							'END AS [dd hh:mm:ss.mss], '
						ELSE
							''
					END +
					--[dd hh:mm:ss.mss (avg)] / avg_elapsed_time
					CASE 
						WHEN  @format_output IN (1, 2) THEN 
							'RIGHT ' +
							'( ' +
								'''00'' + CONVERT(VARCHAR, avg_elapsed_time / 86400000), ' +
								'2 ' +
							') + ' +
								'RIGHT ' +
								'( ' +
									'CONVERT(VARCHAR, DATEADD(second, avg_elapsed_time / 1000, 0), 120), ' +
									'9 ' +
								') + ' +
								'''.'' + ' +
								'RIGHT(''000'' + CONVERT(VARCHAR, avg_elapsed_time % 1000), 3) AS [dd hh:mm:ss.mss (avg)], '
						ELSE
							'avg_elapsed_time, '
					END +
					--physical_io
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_io))) OVER() - LEN(CONVERT(VARCHAR, physical_io))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io), 1), 19)) AS '
						ELSE ''
					END + 'physical_io, ' +
					--reads
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, reads))) OVER() - LEN(CONVERT(VARCHAR, reads))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads), 1), 19)) AS '
						ELSE ''
					END + 'reads, ' +
					--physical_reads
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_reads))) OVER() - LEN(CONVERT(VARCHAR, physical_reads))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads), 1), 19)) AS '
						ELSE ''
					END + 'physical_reads, ' +
					--writes
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, writes))) OVER() - LEN(CONVERT(VARCHAR, writes))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes), 1), 19)) AS '
						ELSE ''
					END + 'writes, ' +
					--tempdb_allocations
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_allocations))) OVER() - LEN(CONVERT(VARCHAR, tempdb_allocations))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations), 1), 19)) AS '
						ELSE ''
					END + 'tempdb_allocations, ' +
					--tempdb_current
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_current))) OVER() - LEN(CONVERT(VARCHAR, tempdb_current))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current), 1), 19)) AS '
						ELSE ''
					END + 'tempdb_current, ' +
					--CPU
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, CPU))) OVER() - LEN(CONVERT(VARCHAR, CPU))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU), 1), 19)) AS '
						ELSE ''
					END + 'CPU, ' +
					--context_switches
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, context_switches))) OVER() - LEN(CONVERT(VARCHAR, context_switches))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches), 1), 19)) AS '
						ELSE ''
					END + 'context_switches, ' +
					--used_memory
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, used_memory))) OVER() - LEN(CONVERT(VARCHAR, used_memory))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory), 1), 19)) AS '
						ELSE ''
					END + 'used_memory, ' +
					CASE
						WHEN @output_column_list LIKE '%|_delta|]%' ESCAPE '|' THEN
							--physical_io_delta			
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND physical_io_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_io_delta))) OVER() - LEN(CONVERT(VARCHAR, physical_io_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io_delta), 1), 19)) ' 
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io_delta), 1), 19)) '
											ELSE 'physical_io_delta '
										END +
								'ELSE NULL ' +
							'END AS physical_io_delta, ' +
							--reads_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND reads_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, reads_delta))) OVER() - LEN(CONVERT(VARCHAR, reads_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads_delta), 1), 19)) '
											ELSE 'reads_delta '
										END +
								'ELSE NULL ' +
							'END AS reads_delta, ' +
							--physical_reads_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND physical_reads_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_reads_delta))) OVER() - LEN(CONVERT(VARCHAR, physical_reads_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads_delta), 1), 19)) '
											ELSE 'physical_reads_delta '
										END + 
								'ELSE NULL ' +
							'END AS physical_reads_delta, ' +
							--writes_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND writes_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, writes_delta))) OVER() - LEN(CONVERT(VARCHAR, writes_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes_delta), 1), 19)) '
											ELSE 'writes_delta '
										END + 
								'ELSE NULL ' +
							'END AS writes_delta, ' +
							--tempdb_allocations_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND tempdb_allocations_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_allocations_delta))) OVER() - LEN(CONVERT(VARCHAR, tempdb_allocations_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations_delta), 1), 19)) '
											ELSE 'tempdb_allocations_delta '
										END + 
								'ELSE NULL ' +
							'END AS tempdb_allocations_delta, ' +
							--tempdb_current_delta
							--this is the only one that can (legitimately) go negative 
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_current_delta))) OVER() - LEN(CONVERT(VARCHAR, tempdb_current_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current_delta), 1), 19)) '
											ELSE 'tempdb_current_delta '
										END + 
								'ELSE NULL ' +
							'END AS tempdb_current_delta, ' +
							--CPU_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
										'THEN ' +
											'CASE ' +
												'WHEN ' +
													'thread_CPU_delta > CPU_delta ' +
													'AND thread_CPU_delta > 0 ' +
														'THEN ' +
															CASE @format_output
																WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, thread_CPU_delta + CPU_delta))) OVER() - LEN(CONVERT(VARCHAR, thread_CPU_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, thread_CPU_delta), 1), 19)) '
																WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, thread_CPU_delta), 1), 19)) '
																ELSE 'thread_CPU_delta '
															END + 
												'WHEN CPU_delta >= 0 THEN ' +
													CASE @format_output
														WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, thread_CPU_delta + CPU_delta))) OVER() - LEN(CONVERT(VARCHAR, CPU_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU_delta), 1), 19)) '
														WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU_delta), 1), 19)) '
														ELSE 'CPU_delta '
													END + 
												'ELSE NULL ' +
											'END ' +
								'ELSE ' +
									'NULL ' +
							'END AS CPU_delta, ' +
							--context_switches_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND context_switches_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, context_switches_delta))) OVER() - LEN(CONVERT(VARCHAR, context_switches_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches_delta), 1), 19)) '
											ELSE 'context_switches_delta '
										END + 
								'ELSE NULL ' +
							'END AS context_switches_delta, ' +
							--used_memory_delta
							'CASE ' +
								'WHEN ' +
									'first_request_start_time = last_request_start_time ' + 
									'AND num_events = 2 ' +
									'AND used_memory_delta >= 0 ' +
										'THEN ' +
										CASE @format_output
											WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, used_memory_delta))) OVER() - LEN(CONVERT(VARCHAR, used_memory_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory_delta), 1), 19)) '
											WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory_delta), 1), 19)) '
											ELSE 'used_memory_delta '
										END + 
								'ELSE NULL ' +
							'END AS used_memory_delta, '
						ELSE ''
					END +
					--tasks
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tasks))) OVER() - LEN(CONVERT(VARCHAR, tasks))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tasks), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tasks), 1), 19)) '
						ELSE ''
					END + 'tasks, ' +
					'status, ' +
					'wait_info, ' +
					'locks, ' +
					'tran_start_time, ' +
					'LEFT(tran_log_writes, LEN(tran_log_writes) - 1) AS tran_log_writes, ' +
					--open_tran_count
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, open_tran_count))) OVER() - LEN(CONVERT(VARCHAR, open_tran_count))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, open_tran_count), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, open_tran_count), 1), 19)) AS '
						ELSE ''
					END + 'open_tran_count, ' +
					--sql_command
					CASE @format_output 
						WHEN 0 THEN 'REPLACE(REPLACE(CONVERT(NVARCHAR(MAX), sql_command), ''<?query --''+CHAR(13)+CHAR(10), ''''), CHAR(13)+CHAR(10)+''--?>'', '''') AS '
						ELSE ''
					END + 'sql_command, ' +
					--sql_text
					CASE @format_output 
						WHEN 0 THEN 'REPLACE(REPLACE(CONVERT(NVARCHAR(MAX), sql_text), ''<?query --''+CHAR(13)+CHAR(10), ''''), CHAR(13)+CHAR(10)+''--?>'', '''') AS '
						ELSE ''
					END + 'sql_text, ' +
					'query_plan, ' +
					'blocking_session_id, ' +
					--blocked_session_count
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, blocked_session_count))) OVER() - LEN(CONVERT(VARCHAR, blocked_session_count))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, blocked_session_count), 1), 19)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, blocked_session_count), 1), 19)) AS '
						ELSE ''
					END + 'blocked_session_count, ' +
					--percent_complete
					CASE @format_output
						WHEN 1 THEN 'CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, CONVERT(MONEY, percent_complete), 2))) OVER() - LEN(CONVERT(VARCHAR, CONVERT(MONEY, percent_complete), 2))) + CONVERT(CHAR(22), CONVERT(MONEY, percent_complete), 2)) AS '
						WHEN 2 THEN 'CONVERT(VARCHAR, CONVERT(CHAR(22), CONVERT(MONEY, blocked_session_count), 1)) AS '
						ELSE ''
					END + 'percent_complete, ' +
					'host_name, ' +
					'login_name, ' +
					'database_name, ' +
					'program_name, ' +
					'additional_info, ' +
					'start_time, ' +
					'login_time, ' +
					'CASE ' +
						'WHEN status = N''sleeping'' THEN NULL ' +
						'ELSE request_id ' +
					'END AS request_id, ' +
					'GETDATE() AS collection_time '
		--End inner column list
		) +
		--Derived table and INSERT specification
		CONVERT
		(
			VARCHAR(MAX),
				'FROM ' +
				'( ' +
					'SELECT TOP(2147483647) ' +
						'*, ' +
						'CASE ' +
							'MAX ' +
							'( ' +
								'LEN ' +
								'( ' +
									'CONVERT ' +
									'( ' +
										'VARCHAR, ' +
										'CASE ' +
											'WHEN elapsed_time < 0 THEN ' +
												'(-1 * elapsed_time) / 86400 ' +
											'ELSE ' +
												'elapsed_time / 86400000 ' +
										'END ' +
									') ' +
								') ' +
							') OVER () ' +
								'WHEN 1 THEN 2 ' +
								'ELSE ' +
									'MAX ' +
									'( ' +
										'LEN ' +
										'( ' +
											'CONVERT ' +
											'( ' +
												'VARCHAR, ' +
												'CASE ' +
													'WHEN elapsed_time < 0 THEN ' +
														'(-1 * elapsed_time) / 86400 ' +
													'ELSE ' +
														'elapsed_time / 86400000 ' +
												'END ' +
											') ' +
										') ' +
									') OVER () ' +
						'END AS max_elapsed_length, ' +
						CASE
							WHEN @output_column_list LIKE '%|_delta|]%' ESCAPE '|' THEN
								'MAX(physical_io * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(physical_io * recursion) OVER (PARTITION BY session_id, request_id) AS physical_io_delta, ' +
								'MAX(reads * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(reads * recursion) OVER (PARTITION BY session_id, request_id) AS reads_delta, ' +
								'MAX(physical_reads * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(physical_reads * recursion) OVER (PARTITION BY session_id, request_id) AS physical_reads_delta, ' +
								'MAX(writes * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(writes * recursion) OVER (PARTITION BY session_id, request_id) AS writes_delta, ' +
								'MAX(tempdb_allocations * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(tempdb_allocations * recursion) OVER (PARTITION BY session_id, request_id) AS tempdb_allocations_delta, ' +
								'MAX(tempdb_current * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(tempdb_current * recursion) OVER (PARTITION BY session_id, request_id) AS tempdb_current_delta, ' +
								'MAX(CPU * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(CPU * recursion) OVER (PARTITION BY session_id, request_id) AS CPU_delta, ' +
								'MAX(thread_CPU_snapshot * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(thread_CPU_snapshot * recursion) OVER (PARTITION BY session_id, request_id) AS thread_CPU_delta, ' +
								'MAX(context_switches * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(context_switches * recursion) OVER (PARTITION BY session_id, request_id) AS context_switches_delta, ' +
								'MAX(used_memory * recursion) OVER (PARTITION BY session_id, request_id) + ' +
									'MIN(used_memory * recursion) OVER (PARTITION BY session_id, request_id) AS used_memory_delta, ' +
								'MIN(last_request_start_time) OVER (PARTITION BY session_id, request_id) AS first_request_start_time, '
							ELSE ''
						END +
						'COUNT(*) OVER (PARTITION BY session_id, request_id) AS num_events ' +
					'FROM #sessions AS s1 ' +
					CASE 
						WHEN @sort_order = '' THEN ''
						ELSE
							'ORDER BY ' +
								@sort_order
					END +
				') AS s ' +
				'WHERE ' +
					's.recursion = 1 ' +
			') x ' +
			'OPTION (KEEPFIXED PLAN); ' +
			'' +
			CASE @return_schema
				WHEN 1 THEN
					'SET @schema = ' +
						'''CREATE TABLE <table_name> ( '' + ' +
							'STUFF ' +
							'( ' +
								'( ' +
									'SELECT ' +
										''','' + ' +
										'QUOTENAME(COLUMN_NAME) + '' '' + ' +
										'DATA_TYPE + ' + 
										'CASE ' +
											'WHEN DATA_TYPE LIKE ''%char'' THEN ''('' + COALESCE(NULLIF(CONVERT(VARCHAR, CHARACTER_MAXIMUM_LENGTH), ''-1''), ''max'') + '') '' ' +
											'ELSE '' '' ' +
										'END + ' +
										'CASE IS_NULLABLE ' +
											'WHEN ''NO'' THEN ''NOT '' ' +
											'ELSE '''' ' +
										'END + ''NULL'' AS [text()] ' +
									'FROM tempdb.INFORMATION_SCHEMA.COLUMNS ' +
									'WHERE ' +
										'TABLE_NAME = (SELECT name FROM tempdb.sys.objects WHERE object_id = OBJECT_ID(''tempdb..#session_schema'')) ' +
										'ORDER BY ' +
											'ORDINAL_POSITION ' +
									'FOR XML ' +
										'PATH('''') ' +
								'), + ' +
								'1, ' +
								'1, ' +
								''''' ' +
							') + ' +
						''')''; ' 
				ELSE ''
			END
		--End derived table and INSERT specification
		);

	SET @sql_n = CONVERT(NVARCHAR(MAX), @sql);

	EXEC sp_executesql
		@sql_n,
		N'@schema VARCHAR(MAX) OUTPUT',
		@schema OUTPUT;
END;
GO
/****** Object:  StoredProcedure [dbo].[spPDFRecovery]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Adriano Colaneri>
-- Create date: <27/12/2018>
-- Description:	<>
-- =============================================
CREATE PROCEDURE [dbo].[spPDFRecovery]
(
	@id int
)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	select
		[Image],
		Cliente,
		Rete
	from [VMBFDSREPSEI01\I1].SEIReport.dbo.C6ReportFisico
	where Identificativo = @id


END
GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscale]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  RSIMLS46A45B670G        RSIMLS46A46B670I
--  RMNVLM40L50H027T        RMNWLM40L50H027U
--srv_change_codfiscale 'BRGPNG47C50F382V','FRNNLN53D59A757M',1
--srv_change_codfiscale '04920830827','04020830827','0',0
CREATE PROCEDURE [dbo].[srv_change_codfiscale]
	-- Add the parameters for the stored procedure here
	@nuovo varchar(16), 
	@vecchio varchar(16)
	--FC 03/10/2014
	--Aggiunto Parametro gestione CF o P.I.
	-- 1 = CF
	-- 0 =P.I.
	,@isCodFis  int 
	,@retcodErr int output
AS
BEGIN
	
	--SET NOCOUNT ON;
--toDo FC 
begin try
-- begin	transaction update_cf

--------GIORNALIERO---------------------------------------------

--		update C6Mart.CONTRATTOSEI
--		set Cod_Fiscale = @nuovo
--		where Cod_Fiscale = @vecchio

		update C6Mart.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio

		update c6Mart.gestione_email
		set cod_fiscale = @nuovo
		where cod_fiscale = @vecchio

--------TRIMESTRALE---------------------------------------------

        update C6StagingPeriodico.ContrattiPretrimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6StagingPeriodico.APPO_CONTRATTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.CONTRATTOSEI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.ANAG_CLIENTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

        update C6MartPeriodico.controllo_trimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

		update C6MartPeriodico.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio


	    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio
		
-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set piva =@nuovo
		where piva = @vecchio

-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		set piva = @nuovo
		where piva = @vecchio
		
		
		
		
		
--EXEC [VMBFDSREPSEI01\I1].[seireport].dbo.sp_change_codfiscale @NUOVO,@VECCHIO
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.Cliente
--		set codEsterno = @nuovo, 
--		codFiscale = @nuovo 
--		where codEsterno = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico_CAMPAGNA
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.LogFilePDF
--		set codicefiscale= @nuovo
--		where codicefiscale= @vecchio

--toFC
--commit transaction update_cf
select @retcodErr=0
--select * from C6Mart.gestione_email where cod_fiscale='VGNLSI31D47D526G' 
--select * from C6Mart.CONTRATTOSEI where cod_fiscale=@nuovo

--toFC 
end try
begin catch
--	--print('errore')
--	select 'CF : '+@nuovo CodFiscale,@@error codErr,ERROR_MESSAGE() errMss
  	--rollback transaction update_cf
    select @retcodErr=-1

end catch

END










GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscale_20161114]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  RSIMLS46A45B670G        RSIMLS46A46B670I
--  RMNVLM40L50H027T        RMNWLM40L50H027U
--srv_change_codfiscale 'BRGPNG47C50F382V','FRNNLN53D59A757M',1
--srv_change_codfiscale '04920830827','04020830827','0',0
CREATE PROCEDURE [dbo].[srv_change_codfiscale_20161114]
	-- Add the parameters for the stored procedure here
	@nuovo varchar(16), 
	@vecchio varchar(16)
	--FC 03/10/2014
	--Aggiunto Parametro gestione CF o P.I.
	-- 1 = CF
	-- 0 =P.I.
	,@isCodFis  int 
	,@retcodErr int output
AS
BEGIN
	
	--SET NOCOUNT ON;
--toDo FC 
begin try
-- begin	transaction update_cf

--------GIORNALIERO---------------------------------------------

--		update C6Mart.CONTRATTOSEI
--		set Cod_Fiscale = @nuovo
--		where Cod_Fiscale = @vecchio

		update C6Mart.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio

		update c6Mart.gestione_email
		set cod_fiscale = @nuovo
		where cod_fiscale = @vecchio

--------TRIMESTRALE---------------------------------------------

        update C6StagingPeriodico.ContrattiPretrimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6StagingPeriodico.APPO_CONTRATTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.CONTRATTOSEI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.ANAG_CLIENTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

        update C6MartPeriodico.controllo_trimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

		update C6MartPeriodico.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio


	    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio
		
-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set piva =@nuovo
		where piva = @vecchio

-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		set piva = @nuovo
		where piva = @vecchio
		
		
		
		
		
--EXEC [VMBFDSREPSEI01\I1].[seireport].dbo.sp_change_codfiscale @NUOVO,@VECCHIO
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.Cliente
--		set codEsterno = @nuovo, 
--		codFiscale = @nuovo 
--		where codEsterno = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico_CAMPAGNA
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.LogFilePDF
--		set codicefiscale= @nuovo
--		where codicefiscale= @vecchio

--toFC
--commit transaction update_cf
select @retcodErr=0
--select * from C6Mart.gestione_email where cod_fiscale='VGNLSI31D47D526G' 
--select * from C6Mart.CONTRATTOSEI where cod_fiscale=@nuovo

--toFC 
end try
begin catch
--	--print('errore')
--	select 'CF : '+@nuovo CodFiscale,@@error codErr,ERROR_MESSAGE() errMss
  	--rollback transaction update_cf
    select @retcodErr=-1

end catch

END











GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscale_20161114_OLwhenQready]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  RSIMLS46A45B670G        RSIMLS46A46B670I
--  RMNVLM40L50H027T        RMNWLM40L50H027U
--srv_change_codfiscale 'BRGPNG47C50F382V','FRNNLN53D59A757M',1
--srv_change_codfiscale '04920830827','04020830827','0',0
CREATE procedure [dbo].[srv_change_codfiscale_20161114_OLwhenQready]
	-- Add the parameters for the stored procedure here
	@nuovo varchar(16), 
	@vecchio varchar(16)
	--FC 03/10/2014
	--Aggiunto Parametro gestione CF o P.I.
	-- 1 = CF
	-- 0 =P.I.
	,@isCodFis  int 
	,@retcodErr int output
AS
BEGIN
	
	--SET NOCOUNT ON;
--toDo FC 
begin try
-- begin	transaction update_cf

--------GIORNALIERO---------------------------------------------

--		update C6Mart.CONTRATTOSEI
--		set Cod_Fiscale = @nuovo
--		where Cod_Fiscale = @vecchio

		update C6Mart.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio

		update c6Mart.gestione_email
		set cod_fiscale = @nuovo
		where cod_fiscale = @vecchio

--------TRIMESTRALE---------------------------------------------

        update C6StagingPeriodico.ContrattiPretrimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6StagingPeriodico.APPO_CONTRATTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.CONTRATTOSEI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.ANAG_CLIENTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

        update C6MartPeriodico.controllo_trimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

		update C6MartPeriodico.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio


	    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio
		
-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set piva =@nuovo
		where piva = @vecchio

-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
--en20161114 update done in specific SP for Quarterly
		----IF @isCodFis = 1 
		----Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		----set codfis =@nuovo
		----where codfis = @vecchio
		
		----IF @isCodFis = 0 
		----Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		----set piva = @nuovo
		----where piva = @vecchio
		
		
		
		
		
--EXEC [VMBFDSREPSEI01\I1].[seireport].dbo.sp_change_codfiscale @NUOVO,@VECCHIO
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.Cliente
--		set codEsterno = @nuovo, 
--		codFiscale = @nuovo 
--		where codEsterno = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico_CAMPAGNA
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.LogFilePDF
--		set codicefiscale= @nuovo
--		where codicefiscale= @vecchio

--toFC
--commit transaction update_cf
select @retcodErr=0
--select * from C6Mart.gestione_email where cod_fiscale='VGNLSI31D47D526G' 
--select * from C6Mart.CONTRATTOSEI where cod_fiscale=@nuovo

--toFC 
end try
begin catch
--	--print('errore')
--	select 'CF : '+@nuovo CodFiscale,@@error codErr,ERROR_MESSAGE() errMss
  	--rollback transaction update_cf
    select @retcodErr=-1

end catch

END












GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscale_CU]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO















-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  RSIMLS46A45B670G        RSIMLS46A46B670I
--  RMNVLM40L50H027T        RMNWLM40L50H027U
--[dbo].[srv_change_codfiscale_CU] 'BRGPNG47C50F382V','FRNNLN53D59A757M',1
--[dbo].[srv_change_codfiscale_CU] '04920830827','04020830827','0',0
CREATE procedure [dbo].[srv_change_codfiscale_CU] 
	-- Add the parameters for the stored procedure here
	@nuovo varchar(16), 
	@vecchio varchar(16)
	--FC 03/10/2014
	--Aggiunto Parametro gestione CF o P.I.
	-- 1 = CF
	-- 0 =P.I.
	,@isCodFis  int 
	,@retcodErr int output
AS
BEGIN
	
	--SET NOCOUNT ON;
--toDo FC 
begin try
-- begin	transaction update_cf

--------GIORNALIERO---------------------------------------------

--		update C6Mart.CONTRATTOSEI
--		set Cod_Fiscale = @nuovo
--		where Cod_Fiscale = @vecchio

		update C6Mart.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio

		update c6Mart.gestione_email
		set cod_fiscale = @nuovo
		where cod_fiscale = @vecchio

--------TRIMESTRALE---------------------------------------------

        update C6StagingPeriodico.ContrattiPretrimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6StagingPeriodico.APPO_CONTRATTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.CONTRATTOSEI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.ANAG_CLIENTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

        update C6MartPeriodico.controllo_trimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

		update C6MartPeriodico.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio


	    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio

		update [C6StagingPeriodico].[Popola_PiramideModello] 
		set cod_fiscale = @nuovo
		where cod_fiscale = @vecchio
		--aggiunta 11/07/2022 per app Rendicontazione
		update C6MartPeriodico.tabellone
		set chiave_acn=rete_acn+@nuovo, codfis=@nuovo
		where codfis=@vecchio

		update C6MartPeriodico.tabellone
		set codice_fiscale=@nuovo
		where codice_fiscale=@vecchio

		update C6StagingPeriodico.datiROL2
		set CODFIS=@nuovo
		where CODFIS=@vecchio
		--fine aggiunta
		
-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set piva =@nuovo
		where piva = @vecchio

-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.Cliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update [CONSUNI_PERIODICO].ConsulenzaUnica.dbo.Cliente
		set piva = @nuovo
		where piva = @vecchio		
		
--toFC
--commit transaction update_cf
select @retcodErr=0
--select * from C6Mart.gestione_email where cod_fiscale='VGNLSI31D47D526G' 
--select * from C6Mart.CONTRATTOSEI where cod_fiscale=@nuovo

--toFC 
end try
begin catch
--	--print('errore')
--	select 'CF : '+@nuovo CodFiscale,@@error codErr,ERROR_MESSAGE() errMss
  	--rollback transaction update_cf
    select @retcodErr=-1

end catch

END














GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscale_mod]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO










-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
--  RSIMLS46A45B670G        RSIMLS46A46B670I
--  RMNVLM40L50H027T        RMNWLM40L50H027U
--srv_change_codfiscale 'BRGPNG47C50F382V','FRNNLN53D59A757M',1
--srv_change_codfiscale '04920830827','04020830827','0',0
CREATE PROCEDURE [dbo].[srv_change_codfiscale_mod]
	-- Add the parameters for the stored procedure here
	@nuovo varchar(16), 
	@vecchio varchar(16)
	--FC 03/10/2014
	--Aggiunto Parametro gestione CF o P.I.
	-- 1 = CF
	-- 0 =P.I.
	,@isCodFis  int 
	,@retcodErr int output
AS
BEGIN
	
	--SET NOCOUNT ON;
--toDo FC 
begin try
-- begin	transaction update_cf

--------GIORNALIERO---------------------------------------------

--		update C6Mart.CONTRATTOSEI
--		set Cod_Fiscale = @nuovo
--		where Cod_Fiscale = @vecchio

		update C6Mart.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio

		update c6Mart.gestione_email
		set cod_fiscale = @nuovo
		where cod_fiscale = @vecchio

--------TRIMESTRALE---------------------------------------------

        update C6StagingPeriodico.ContrattiPretrimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6StagingPeriodico.APPO_CONTRATTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.CONTRATTOSEI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio

        update C6MartPeriodico.ANAG_CLIENTI
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

        update C6MartPeriodico.controllo_trimestrale
		set Cod_Fiscale = @nuovo
		where Cod_Fiscale = @vecchio  

		update C6MartPeriodico.GESTIONE_PDF_FTP
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio


	    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
		set CodiceFiscale = @nuovo
		where CodiceFiscale = @vecchio
		
-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set piva =@nuovo
		where piva = @vecchio

-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A. o Cod. Fiscale		
		IF @isCodFis = 1 
		Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		set codfis =@nuovo
		where codfis = @vecchio
		
		IF @isCodFis = 0 
		Update [CONSEVO_PERIODICO].ConsulenzaBase.dbo.Cliente
		set piva = @nuovo
		where piva = @vecchio

		
--EXEC [VMBFDSREPSEI01\I1].[seireport].dbo.sp_change_codfiscale @NUOVO,@VECCHIO
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.Cliente
--		set codEsterno = @nuovo, 
--		codFiscale = @nuovo 
--		where codEsterno = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.C6ReportFisico_CAMPAGNA
--		set cliente = @nuovo
--		where cliente = @vecchio
--
--		update [VMBFDSREPSEI01\I1].[seireport].dbo.LogFilePDF
--		set codicefiscale= @nuovo
--		where codicefiscale= @vecchio

--toFC
--commit transaction update_cf
select @retcodErr=0
--select * from C6Mart.gestione_email where cod_fiscale='VGNLSI31D47D526G' 
--select * from C6Mart.CONTRATTOSEI where cod_fiscale=@nuovo

--toFC 
end try
begin catch
--	--print('errore')
select 'CF : '+@nuovo CodFiscale,@@error codErr,ERROR_MESSAGE() errMss
  	--rollback transaction update_cf
    select @retcodErr=-1

end catch

END










GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscaleMassiva]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		Atzeri Emanuele
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[srv_change_codfiscaleMassiva]
	-- Add the parameters for the stored procedure here

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

	DECLARE @Vecchio varchar(16)
	DECLARE @Nuovo varchar(16)
	DECLARE @DataIns datetime
	DECLARE @isCodFis int
	--DECLARE @UltimaData varchar(8)

	Declare @contErr int
	Declare @CodErr int
	Declare @retDescErr varchar(500)

	set @CodErr= 1
	set @contErr= 0
--	SELECT @UltimaData = MAX(convert(varchar(8), DataOperazione, 112)) FROM dbo.RicodificaMassiva

--	UPDATE [CONSEVO].ConsulenzaBaseFL.dbo.RICODIF_CF_PIVA
--	SET Base = 0
--	FROM [CONSEVO].ConsulenzaBaseFL.dbo.RICODIF_CF_PIVA a
--	INNER JOIN C6Mart.Gestione_PDF_FTP b
--	ON a.CF_OLD = b.CodiceFiscale
--	WHERE
--		Base is null
--
--	UPDATE [CONSEVO].ConsulenzaBaseFL.dbo.RICODIF_CF_PIVA
--	SET Base = 1
--	WHERE
--		Base is null


	DECLARE Ricodifica_cursor CURSOR FOR

--	SELECT Vecchio, Nuovo FROM dbo.RicodificaMassiva
--	WHERE DataOperazione > @UltimaData

	SELECT CF_OLD, CF_NEW, DTINSERIMENTO from RICODIF_CF_PIVA
	ORDER BY DTINSERIMENTO

	OPEN Ricodifica_cursor

	FETCH NEXT FROM Ricodifica_cursor
	INTO @Vecchio, @Nuovo, @DataIns

	WHILE @@FETCH_STATUS = 0
	BEGIN
		
				
		select @isCodfis=dbo.RegExIsMatch ( '\D' , @Nuovo , 1 )

		EXEC dbo.srv_change_codfiscale @Nuovo, @Vecchio , @isCodFis , @retcodErr=@CodErr  output

	
		if @CodErr = 0 
		begin
				UPDATE [CONSEVO].ConsulenzaBaseFL.dbo.RICODIF_CF_PIVA
				SET RicodificatoContratto6 = 1
				WHERE
					CF_OLD = @Vecchio
				AND
					CF_NEW = @Nuovo
				AND
					DTINSERIMENTO = @DataIns
				AND
					RicodificatoContratto6 is null

		end
		else
		begin 
		  select @CodErr, 'Errore '
		  set @contErr=@contErr+1;
	    end
	FETCH NEXT FROM Ricodifica_cursor
		INTO @Vecchio, @Nuovo, @DataIns
	
		
	END

	CLOSE Ricodifica_cursor
	DEALLOCATE Ricodifica_cursor

	select @contErr
--	UPDATE [CONSEVO].ConsulenzaBaseFL.dbo.RICODIF_CF_PIVA
--	SET RicodificatoContratto6 = 0
--	WHERE
--		RicodificatoContratto6 is null

END


GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscaleMassiva_CU]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		Atzeri Emanuele
-- Create date: <Create Date,,>
-- Description:	<Adjusted to FEU>
-- =============================================
CREATE procedure [dbo].[srv_change_codfiscaleMassiva_CU]

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

	DECLARE @Vecchio varchar(16)
	DECLARE @Nuovo varchar(16)
	DECLARE @DataIns datetime
	DECLARE @isCodFis int

	Declare @contErr int
	Declare @CodErr int
	Declare @retDescErr varchar(500)

	set @CodErr= 1
	set @contErr= 0
	DECLARE Ricodifica_cursor CURSOR FOR

	SELECT CF_OLD, CF_NEW, DTINSERIMENTO from RICODIF_CF_PIVA_CU
	ORDER BY DTINSERIMENTO

	OPEN Ricodifica_cursor

	FETCH NEXT FROM Ricodifica_cursor
	INTO @Vecchio, @Nuovo, @DataIns

	WHILE @@FETCH_STATUS = 0
	BEGIN		
				
		select @isCodfis=dbo.RegExIsMatch ( '\D' , @Nuovo , 1 )

		EXEC dbo.srv_change_codfiscale_CU @Nuovo, @Vecchio , @isCodFis , @retcodErr=@CodErr  output

	
		if @CodErr = 0 
		begin
				UPDATE [CONSUNI].ConsulenzaUnicaFL.dbo.RICODIF_CF_PIVA
				SET RicodificatoContratto6 = 1
				WHERE
					CF_OLD = @Vecchio
				AND
					CF_NEW = @Nuovo
				AND
					DTINSERIMENTO = @DataIns
				AND
					RicodificatoContratto6 is null

		end
		else
		begin 
		  select @CodErr, 'Errore '
		  set @contErr=@contErr+1;
	    end
	FETCH NEXT FROM Ricodifica_cursor
		INTO @Vecchio, @Nuovo, @DataIns
	
		
	END

	CLOSE Ricodifica_cursor
	DEALLOCATE Ricodifica_cursor

	select @contErr as 'result'
	return @contErr

END






GO
/****** Object:  StoredProcedure [dbo].[srv_change_codfiscaleMassiva_CU_SEIReport]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- D_DTSX 20180511
-- Esegue l'allineamento sulla SEIReport.
-- Sostituisce la srv_change_codfiscaleMassiva_CU della SEIReport, per poter eseguire l'allineamento direttamente dalla 203.
-- Richiama la nuova stored procedure sp_change_codfiscale_SEIReport, che sostituisce la sp_change_codfiscale su SEIReport.

CREATE PROCEDURE [dbo].[srv_change_codfiscaleMassiva_CU_SEIReport]
AS
BEGIN

	DECLARE @Vecchio varchar(16)
	DECLARE @Nuovo varchar(16)
	--DECLARE @UltimaData varchar(8)

	--SELECT @UltimaData = MAX(convert(varchar(8), DataOperazione, 112)) FROM [10.10.32.203].C6StampeCentralizzate.dbo.RicodificaMassiva

	DECLARE Ricodifica_cursor CURSOR FOR

--	SELECT Vecchio, Nuovo FROM [10.10.32.203].C6StampeCentralizzate.dbo.RicodificaMassiva
--	WHERE DataOperazione > @UltimaData
	
	SELECT CF_OLD, CF_NEW FROM RICODIF_CF_PIVA_CU
	ORDER BY DTINSERIMENTO

	OPEN Ricodifica_cursor

	FETCH NEXT FROM Ricodifica_cursor
	INTO @Vecchio, @Nuovo

	WHILE @@FETCH_STATUS = 0
	BEGIN

		EXEC dbo.[sp_change_codfiscale_SEIReport] @Nuovo, @Vecchio
		
		FETCH NEXT FROM Ricodifica_cursor
		INTO @Vecchio, @Nuovo
		
	END

	CLOSE Ricodifica_cursor
	DEALLOCATE Ricodifica_cursor

END
GO
/****** Object:  StoredProcedure [dbo].[srv_change_Professional_Base_CU]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[srv_change_Professional_Base_CU] 
	-- Add the parameters for the stored procedure here
	@cod_conf varchar(64)
AS
BEGIN


declare @cod_conf_old varchar(64)
declare @data_chiusura varchar(128)

select top 1 @cod_conf_old= cod_conf_old from consulenzaunicafl.dbo.cbs_dbcontrattosei where cod_conf=@cod_conf

select top 1  @data_chiusura = trcom_dtinvio from consulenzaunicafl.dbo.cbs_histdatiingresso where trcom_codconf=@cod_conf_old and trcom_causale='RS6'
order by TRCOM_PRINVIO desc

update consulenzaunicafl.dbo.cbs_dbcontrattosei
set COD_CONF=@cod_conf_old ,  COD_CONF_OLD= null, tipoconsulenza='D',
data_chiusura_c6=@data_chiusura -- data trcom_invio con trcom_causale=RS6
from consulenzaunicafl.dbo.cbs_dbcontrattosei
where cod_conf=@cod_conf


END
GO
/****** Object:  StoredProcedure [dbo].[srv_change_rete_CU]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

/*

DECLARE @RetSP int
DECLARE @retcodErr int
EXECUTE @RetSP = [dbo].[srv_change_rete_CU] 
    'F'                 -- @nuovaRete
  , 'S'                 -- @vecchiaRete
  , 'VLNLLL61D62Z133G'  -- @CF
  , 1                   -- @isCodFis: 0-PIva; 1-CF; 2-CodMan Fiduciarie
  , '507435CO801'       -- @CodiceContratto
  , @retcodErr OUTPUT

  Select @RetSP RetSP, @retcodErr retcodErr

*/

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[srv_change_rete_CU]
	-- Add the parameters for the stored procedure here
	  @nuovaRete varchar(1)
	, @vecchiaRete varchar(1)
	, @CF varchar(16)
	--FC 03/10/2014
	--Aggiunto Parametro gestione CF o P.I.
	-- 1 = CF
	-- 0 =P.I.
	-- 2 =CodMan Fiduciarie
	, @isCodFis  int 
	, @CodiceContratto varchar(20)
	, @retcodErr int output
AS
BEGIN
	
	--SET NOCOUNT ON;
--toDo FC 
begin try
-- begin	transaction update_cf

--------GIORNALIERO---------------------------------------------

--		update C6Mart.CONTRATTOSEI
--		set Cod_Fiscale = @nuovo
--		where Cod_Fiscale = @vecchio

		update C6Mart.GESTIONE_PDF_FTP
		set rete = @nuovaRete
		where CodiceFiscale = @CF and Rete=@vecchiaRete
		


		update c6Mart.gestione_email
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and Rete=@vecchiaRete

--------TRIMESTRALE---------------------------------------------

        update C6StagingPeriodico.ContrattiPretrimestrale
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and codiceContratto = @CodiceContratto and Rete = @vecchiaRete

        update C6StagingPeriodico.APPO_CONTRATTI
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and Rete=@vecchiaRete

        update C6MartPeriodico.CONTRATTOSEI
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and codiceContratto = @CodiceContratto and Rete=@vecchiaRete

        update C6MartPeriodico.ANAG_CLIENTI
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and Rete=@vecchiaRete

        update C6MartPeriodico.controllo_trimestrale
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and Rete=@vecchiaRete

		update C6MartPeriodico.GESTIONE_PDF_FTP
		set rete = @nuovaRete
		where CodiceFiscale = @CF and codiceContratto = @CodiceContratto and Rete=@vecchiaRete


	    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI
		set rete = @nuovaRete
		where CodiceFiscale = @CF and Rete=@vecchiaRete

		update [C6StagingPeriodico].[Popola_PiramideModello] 
		set rete = @nuovaRete
		where Cod_Fiscale = @CF and Rete=@vecchiaRete
		
-- Sul Sei tabella Cliente il CF è diviso per categoria P.I.V.A., Cod. Fiscale o CodMan per Fiduciarie	
		IF @isCodFis = 1 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set rete = @nuovaRete
		where CodFis = @CF and codiceContratto = @CodiceContratto and Rete=@vecchiaRete
		
		IF @isCodFis = 0 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set rete = @nuovaRete
		where piva = @CF and codiceContratto = @CodiceContratto and Rete=@vecchiaRete

		IF @isCodFis = 2 
		Update C6STAGINGPERIODICO.RP_InfoCliente
		set rete = @nuovaRete
		where CodMan = @CF and codiceContratto = @CodiceContratto and Rete=@vecchiaRete

	
		
--toFC
--commit transaction update_cf
select @retcodErr=0
--select * from C6Mart.gestione_email where cod_fiscale='VGNLSI31D47D526G' 
--select * from C6Mart.CONTRATTOSEI where cod_fiscale=@nuovo

--toFC 
end try
begin catch
--	--print('errore')
--	select 'CF : '+@nuovo CodFiscale,@@error codErr,ERROR_MESSAGE() errMss
  	--rollback transaction update_cf
    select @retcodErr=-1

end catch

END














GO
/****** Object:  StoredProcedure [dbo].[SRV_CONTROLLA_FASE1]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




CREATE procedure [dbo].[SRV_CONTROLLA_FASE1]
as begin

select * from log_esecuzione

select * from global_error

select * 
from c6mart.gestione_pdf_Ftp a 
join c6mart.contrattosei b
on a.rete = b.rete and a.codiceFiscale = b.cod_fiscale
and nazione <> 'italia'
and dataGenerazione > getDate() - 1

select *
from c6mart.gestione_pdf_Ftp a 
join port_errati b
on a.rete = b.rete and a.codiceFiscale = b.cod_fiscale
and dataGenerazione > getDate() - 1

end






GO
/****** Object:  StoredProcedure [dbo].[SRV_ESTRAZIONE_ULTIMO_INVIO_REPORT]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[SRV_ESTRAZIONE_ULTIMO_INVIO_REPORT] AS

SELECT
  BF.RETE,
  BF.COD_FISCALE,
  --Dbo.ToShortDateString( 
( SELECT CONVERT(VARCHAR(10),DATA_CONGELAMENTO - 1 , 103) FROM C6MartPeriodico.CONGELAMENTO_SEI) AS DataFase,
  --PatrimonioNonAssociato AS RisorseNonAllocate,
  ctv - contoCorrente as cvtRisorseFinanziarie,
  ContoCorrente,
  PartiteViaggiantiDisinv + isnull(pv.importo,0) AS Partita_viaggiante,
  CTV + PartiteViaggiantiDisinv + isnull(pv.importo,0) as totalePatrimonio,
  CR.MAX_VAR AS VarMassimoProfiloFinanziario,
  --V
  CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00
    ELSE ROUND(RA.VAR_PERC_PTF,2)
  END  AS VarComplessivo,
  isnull(RA.COPERTURA,0) AS Copertura,
-- TRINGALI MODIFICARE
        mifid.riskclass as RISKCLASSMAX,
  case when ra.creditrisk is null then 'n.a.'
        else cast(ra.creditrisk as varchar) end   as RiskClass
 FROM
        C6MartPeriodico.vPatrimonioBFAggregato AS BF
 INNER JOIN C6MartPeriodico.MIFID AS MIFID
  ON  BF.RETE = MIFID.RETE
  AND BF.COD_FISCALE = MIFID.COD_FISCALE
 INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
  ON MIFID.PROFILO_ASS = CR.PROFILO
 LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
  ON  RA.RETE = BF.RETE
  AND RA.COD_FISCALE = BF.COD_FISCALE
  AND RA.COD_AGGREG = 'COMPLESSIVO|BF'
left outer join  C6MartPeriodico.PARTITE_VIAGGIANTI pv
 on bf.rete=pv.rete
 and bf.cod_fiscale=pv.cod_fiscale
order by 1,2


GO
/****** Object:  StoredProcedure [dbo].[SRV_insertLogPreCalcoloDatiGenerator]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[SRV_insertLogPreCalcoloDatiGenerator] 

@generator as varchar(60),
@durata as float,
@numeroClientiElaborati as int

AS
BEGIN
--
--create table SRV_LOG_PreCalcoloDatiGenerator (
--	generator varchar(60) null,
--	durata float null,
--	numeroClientiElaborati int null,
--	dataInserimento datetime null
--)
--

insert into SRV_LOG_PreCalcoloDatiGenerator values(
	@generator,
	@durata,
	@numeroClientiElaborati,
	getDate()
)

END
GO
/****** Object:  StoredProcedure [dbo].[SRV_ReportDaCancellare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Atzeri Emanuele
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

--select * from c6mart.vcontratti
--where cod_fiscale = 'VNCLDA54H15M109X'
--------------------------------------------
--insert into ReportDaCancellare
--------------------------------------------
--select rete, codicefiscale, SUBSTRING(NomeFile, 1, 11), idreport, datagenerazione
--from c6mart.gestione_pdf_ftp
--where SUBSTRING(NomeFile, 1, 11) = '010580CO200'

CREATE PROCEDURE [dbo].[SRV_ReportDaCancellare]
	-- Add the parameters for the stored procedure here

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

BEGIN TRANSACTION
	BEGIN TRY

		update c6mart.contrattosei_metadati
		set invioBenvenuto = 'N'
		from c6mart.contrattosei_metadati m
		join c6mart.vcontratti v
		on m.chiaveClientepb = v.chiaveclientepb
		join c6mart.gestione_pdf_ftp p
		on v.cod_fiscale = p.codiceFiscale
		and v.rete = p.rete
		where p.idreport in
		(
			select idreport from ReportDaCancellare
		)

		delete from c6mart.gestione_pdf_ftp where idreport in
		(
			select idreport from ReportDaCancellare
		)


		insert into ReportDaCancellareBCK
		(rete, codfis, codconf, idreport, dtgenera)
		select * from ReportDaCancellare

		truncate table ReportDaCancellare

    COMMIT TRANSACTION
END TRY

BEGIN CATCH
	ROLLBACK TRANSACTION
	DECLARE @Msg NVARCHAR(MAX)  
	SELECT @Msg=ERROR_MESSAGE() 
	RAISERROR('Descrizione errore: %s', 20, 101,@msg) WITH LOG
END CATCH

END
GO
/****** Object:  StoredProcedure [dbo].[SRV_SELECT_PROFILI_SCADUTI]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[SRV_SELECT_PROFILI_SCADUTI] AS

BEGIN
	
	SELECT *

	FROM C6STAGINGPERIODICO.MAIL_PROFILI_RISCHIO 

	WHERE datediff(dd,dt_CREAZIONE_profilo,dateadd(mm,3,getdate()))/365.25>3
	OR PROFILO = 0

	ORDER BY DT_CREAZIONE_PROFILO
	
END





GO
/****** Object:  StoredProcedure [dbo].[SubscribedCustomer_Compare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[SubscribedCustomer_Compare]
AS
BEGIN
	SET NOCOUNT ON;

	TRUNCATE TABLE [C6StampeCentralizzate].[dbo].[SubscribedCustomer_ComparedResults]

	INSERT INTO [C6StampeCentralizzate].[dbo].[SubscribedCustomer_ComparedResults] ([Rete], [FiscalCode], [DateOfMonitoring], [Description])
       SELECT hp.[Rete], hp.[FiscalCode], hp.[DateOfMonitoring], 'Cliente mancante in lista Fideuram'
	   FROM [C6StampeCentralizzate].[dbo].[SubscribedCustomer_HP] hp
	   LEFT OUTER JOIN [C6StampeCentralizzate].[dbo].[SubscribedCustomer_Bank] bank
	   ON hp.[Rete] = bank.[Rete] and
		  hp.[FiscalCode] = bank.[FiscalCode] and
		  hp.[DateOfMonitoring] = bank.[DateOfMonitoring]
	   WHERE
	      bank.[Rete] IS NULL OR
		  bank.[FiscalCode] IS NULL OR
		  bank.[DateOfMonitoring] IS NULL

	INSERT INTO [C6StampeCentralizzate].[dbo].[SubscribedCustomer_ComparedResults] ([Rete], [FiscalCode], [DateOfMonitoring], [Description])
       SELECT bank.[Rete], bank.[FiscalCode], bank.[DateOfMonitoring], 'Cliente mancante in lista HP'
	   FROM [C6StampeCentralizzate].[dbo].[SubscribedCustomer_Bank] bank
	   LEFT OUTER JOIN [C6StampeCentralizzate].[dbo].[SubscribedCustomer_HP] hp
	   ON bank.[Rete] = hp.[Rete] and
		  bank.[FiscalCode] = hp.[FiscalCode] and
		  bank.[DateOfMonitoring] = hp.[DateOfMonitoring]
	   WHERE
	      hp.[Rete] IS NULL OR
		  hp.[FiscalCode] IS NULL OR
		  hp.[DateOfMonitoring] IS NULL
END

GO
/****** Object:  StoredProcedure [dbo].[test_compl_testo_sezione_adeg_obsoleta]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- [dbo].[test_compl_testo_sezione_adeg] 'S', 'BNOSDR61T03F205W' --ok ok 
-- [dbo].[test_compl_testo_sezione_adeg] 'F', 'BBOLLN35H65Z110L' --nok nok 
CREATE procedure [dbo].[test_compl_testo_sezione_adeg_obsoleta]
	@Rete char(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

SELECT TESTO_NOTA
  FROM   [C6StampeCentralizzate].[C6StagingPeriodico].[WSEIAN_TEST_COMPLESSITA] ancmpl
  INNER JOIN [C6StagingPeriodico].[CASISTICHE_ADEGUATEZZA] adeg
  ON [adeg].[complessita] = [ancmpl].[CLCOMPL]
  and [adeg].[concentrazione] = [ancmpl].[FLGCONC]
  where rete = @Rete and codfis = @CodiceFiscale
  and DTTRIM='20151231'
--'Tutti gli strumenti finanziari nel suo portafoglio risultano avere una complessità coerente con il suo livello di esperienza e conoscenza risultante dal questionario di profilatura'

END


GO
/****** Object:  StoredProcedure [dbo].[test_fc]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[test_fc]
	@Rete char(1),
	@CodiceFiscale varchar(16)
	
AS
BEGIN

select @rete,@codicefiscale

End
GO
/****** Object:  StoredProcedure [dbo].[TEST_GETNEXTTRIMESTRE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
CREATE procedure [dbo].[TEST_GETNEXTTRIMESTRE]
AS

BEGIN


--marzo
select c6martperiodico.getNextTrimestre(cast ('20121201' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20121231' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120101' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120131' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120228' as datetime),0)

--giugno
select c6martperiodico.getNextTrimestre(cast ('20120301' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120331' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120401' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120430' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120531' as datetime),0)

--settembre
select c6martperiodico.getNextTrimestre(cast ('20120601' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120630' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120701' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120731' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120831' as datetime),0)

--dicembre
select c6martperiodico.getNextTrimestre(cast ('20120901' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20120930' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20121001' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20121031' as datetime),0)
select c6martperiodico.getNextTrimestre(cast ('20121130' as datetime),0)



--marzo
select c6martperiodico.getNextTrimestre(cast ('20121201' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20121231' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120101' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120131' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120228' as datetime),1)

--giugno
select c6martperiodico.getNextTrimestre(cast ('20120301' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120331' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120401' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120430' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120531' as datetime),1)

--settembre
select c6martperiodico.getNextTrimestre(cast ('20120601' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120630' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120701' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120731' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120831' as datetime),1)

--dicembre
select c6martperiodico.getNextTrimestre(cast ('20120901' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20120930' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20121001' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20121031' as datetime),1)
select c6martperiodico.getNextTrimestre(cast ('20121130' as datetime),1)

END

GO
/****** Object:  StoredProcedure [dbo].[TEST_GETTRIMESTRE2]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Stored procedure
CREATE procedure [dbo].[TEST_GETTRIMESTRE2] 
AS

BEGIN


--dicembre
select c6martperiodico.getTrimestre2(cast ('20121201' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20121231' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120101' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120131' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120228' as datetime),0)

--marzo
select c6martperiodico.getTrimestre2(cast ('20120301' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120331' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120401' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120430' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120531' as datetime),0)

--giugno
select c6martperiodico.getTrimestre2(cast ('20120601' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120630' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120701' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120731' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120831' as datetime),0)

--settembre
select c6martperiodico.getTrimestre2(cast ('20120901' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20120930' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20121001' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20121031' as datetime),0)
select c6martperiodico.getTrimestre2(cast ('20121130' as datetime),0)



--dicembre
select c6martperiodico.getTrimestre2(cast ('20121201' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20121231' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120101' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120131' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120228' as datetime),1)

--marzo
select c6martperiodico.getTrimestre2(cast ('20120301' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120331' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120401' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120430' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120531' as datetime),1)

--giugno
select c6martperiodico.getTrimestre2(cast ('20120601' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120630' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120701' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120731' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120831' as datetime),1)

--settembre
select c6martperiodico.getTrimestre2(cast ('20120901' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20120930' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20121001' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20121031' as datetime),1)
select c6martperiodico.getTrimestre2(cast ('20121130' as datetime),1)

END

GO
/****** Object:  StoredProcedure [dbo].[TEST_MERGED_PROCEDURE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [dbo].[TEST_MERGED_PROCEDURE]
@Rete char(1), 
@CodiceFiscale varchar(16)

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

----------------------------------------------- C6MartPeriodico.PL_S43LineaSelfBF
SELECT  '' as 'C6MartPeriodico.PL_S43LineaSelfBF', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		LS.rete= @Rete
		AND LS.codfis= @CodiceFiscale
		AND isnull(ctv,0) < 0
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D_S333Fonditalia80
Select  
	'' as 'C6MartPeriodico.PL_D_S333Fonditalia80', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale
	,[DES_PROD]
	,[COD_CONF]
	,[QUOTA]
	,[NUMEROQUOTE]
	,[CONTROVALORE]
	,[DATARIF]
	,[DES_MAX]
	,[QUOTA_MAX]
	,[QUOTA_MAX_PERC]
	,[DATARIF_MAX]
	,[DES_PROT]
	,[QUOTA_PROT]
	,[NUMEROQUOTE_PROT]
	,[CONTROVALORE_PROT]
from [C6martperiodico].[capprot]
 WHERE	[Rete] 		= @Rete 
  AND	[Codfis] = @CodiceFiscale
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_S10PatrimonioFinanziario
SELECT '' as 'C6MartPeriodico.PL_S10PatrimonioFinanziario' , @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	A.BANCA,
	A.ORDINAMENTO,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) Controvalore,
	cast(A.Percentuale  as decimal(19,5)) Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Banca Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.PATRIMONIO_BF PATRBF
		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		-- MODIFICA PER AVERE ASSET PERCENTUALI SUI CC
--		SELECT 	ASSETPERC.ID_ASSETCLASS,
--				PATRBF.CTV*ASSETPERC.PERC as Controvalore
--		FROM C6MART.PATRIMONIO_BF PATRBF
--		INNER JOIN C6MART.ASSET_PERC ASSETPERC 
--			ON PATRBF.COD_SOTTOPRODOTTO = ASSETPERC.COD_SOTTOPRODOTTO
--			AND PATRBF.COD_INTERNO = ASSETPERC.COD_INTERNO 
--			AND ASSETPERC.LIVELLO = 1
----		LEFT OUTER JOIN C6Mart.ClientiConCCNegativo CCNegativo
----			ON PATRBF.RETE = CCNegativo.Rete
----			AND PATRBF.COD_FISCALE = CCNegativo.Cod_Fiscale
--		WHERE 
--			--ELIMINO I CC CON SALDO NEGATIVO
--			--PATRBF.TIPO_PRODOTTO = 'CC'
--			PATRBF.ID_AREA = 'CC'
--			AND PATRBF.RETE = @Rete
--			AND PATRBF.COD_FISCALE = @CodiceFiscale
--			--AND CCNegativo.Cod_Fiscale IS NULL

--		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
			---ELIMINO GLI SKANDIA
			AND ASUL.COD_ISIN_SOTT = ''
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MART.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MART.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6Mart.ASSETCLASS ASSETCLASS
		ON ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--V Aggiunto controllo che il cvt sia maggiore di zero, altrimenti
-- viene visualizzato sul report una riga con 0
WHERE A.CONTROVALORE > 0
ORDER BY A.ORDINAMENTO
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv
SELECT '' as 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D_S332FVI_CS80_CT80
SELECT '' as 'C6MartPeriodico.PL_D_S332FVI_CS80_CT80', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Banca Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		--PRODOTTI BF ESCLUSI GLI ASUL
		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area <> 'CC'
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL



		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
			where assetclass.descrizione in ('Monetario', 'Obbligazionario', 'Azionario')

) A

ORDER BY A.ORDINAMENTO
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_MP_S137BIS_FOI80 Total
SELECT '' as 'C6MartPeriodico.PL_MP_S137BIS_FOI80', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	 DTTRIM,
	 DTRIFE,
	 RETE,
	 CODFIS,
	 DESPROD,
	 CODMAN,
	 CODCONF,
	 CODPROD,
	 SUBPROD,
	 ISIN,
	 CTV,
	 PREZZO,
	 QUOTE,
	 PREZZOMAX,
	 DTPREZZOMAX,
	 DESMAX,
	 PREZZOPROT,
	 CTRVIMPPROT,
	 DESPROT,
	 DESPRODTIT,
	 QUOTA_MAX_PERC
	 
	FROM C6MartPeriodico.FOI80
	
	WHERE 1=1
	  AND RETE = @Rete 
	  AND CODFIS = @CodiceFiscale 
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.GESTIONE_S_Intermediari
	SELECT DISTINCT '' as 'C6MartPeriodico.GESTIONE_S_Intermediari', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, INTERMEDIARIO 
	FROM	C6Mart.PATRIMONIO_TERZI
	WHERE RETE = @Rete
	AND COD_FISCALE = @CodiceFiscale
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_S80BisEvoluzioneRischio
SELECT '' as 'C6MartPeriodico.PL_S80BisEvoluzioneRischio', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
      Fase	
      ,DataFase	
      ,VarMassimoProfiloFinanziario	
      ,VarComplessivo	
      ,Copertura	
      ,RISKCLASS	
      ,RISKCLASSMAX	
      ,RiskClassString	
      ,RiskClassMaxString
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S80BisEvoluzioneRischio]		
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S150Anagrafica
SELECT '' as 'C6MartPeriodico.PL_D2_S150Anagrafica', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	   [Cliente]
      ,[DatadiNascita]
      ,[ETA]
      ,[Professione]
      ,[StatoCivile]
      ,[NucleoFamiliare]
      ,[Residenza]
      ,[CodiceFiscale]
      ,[CodicePB]
      ,[CodiceRete]
      ,[CodiceContratto]
      ,[StatoContratto]
      ,[DataSottoscrizione]
      ,[DataPerfezionamento]
      ,[FasciaCPP]
      ,[IndirizzoEmail]
      ,[ProduzioneReport]
      ,[Indirizzo]
      ,[CAP]
      ,[Citta]
      ,[Provincia]
      ,[Nazione]
      ,[PRESSO]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S25Anagrafica]
  WHERE	[CodiceRete] 	= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S151ProfiloDiRischio
BEGIN
DECLARE @varBF DECIMAL(12,2)
DECLARE @coperturaBF DECIMAL(12,2)
DECLARE @codiceProfilo SMALLINT
DECLARE @dataProfilo DATETIME
DECLARE @varProfilo DECIMAL(5,2)
DECLARE @nomeProfilo VARCHAR(50)
DECLARE @riskclass VARCHAR(50)
DECLARE @experience SMALLINT



SELECT
    @codiceProfilo = M.PROFILO_ASS,
	@dataProfilo = M.DATA_INIZIO_VAL,
	@varProfilo = CR.MAX_VAR,
	@nomeProfilo = ProfiliDiRischio.NOMEPROFILO,
    @riskclass =  m.riskclass,
    @experience = m.experience
FROM
	C6MartPERIODICO.MIFID AS M
	INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
	INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
	ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
WHERE
	M.RETE = @Rete AND
	M.COD_FISCALE = @CodiceFiscale

SELECT '' as 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
    @codiceProfilo as codiceProfilo,
	DBO.TOSHORTDATESTRING (@dataProfilo) as dataInizioValidita,
	@varProfilo as varMassimo,
	ISNULL(@varBF,0) as varBF,
	ISNULL(@coperturaBF,0) as coperturaBF,
	@nomeProfilo as nomeProfilo,
    @riskclass as riskclass,
    @experience as experince
END
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S152Patrimonio
BEGIN

	DECLARE @PatrimonioBF DECIMAL(15,2)
	DECLARE @PatrimonioTerzi DECIMAL(15,2)
	DECLARE @PatrimonioImmobiliare DECIMAL(15,2)
	DECLARE @CCBF DECIMAL(15,2)
	DECLARE @PatrimonioAltro DECIMAL(15,2)
	DECLARE @PatrimonioTotale DECIMAL(15,2)
    DECLARE @Part_viaggianti decimal(15,2)

	SELECT @PatrimonioBF = SUM(CTV)
		FROM C6MartPeriodico.PATRIMONIO_BF patrBF
		WHERE
			patrBF.Rete = @Rete
			AND patrBF.Cod_Fiscale = @CodiceFiscale
			AND patrBF.id_area not in ('CC','SELF')  
 
	SELECT @Part_viaggianti = SUM(IMPORTO)
		FROM
		(
				SELECT SUM(IMPORTO) AS IMPORTO
					FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
				union 
				SELECT SUM(PARTVIA_DISINV) AS IMPORTO
					FROM C6Martperiodico.patrimonio_bf partvia
					WHERE
						partvia.Rete = @Rete
						and partvia.Cod_Fiscale = @CodiceFiscale
		 ) T
     
    SELECT @PatrimonioTerzi = SUM(ROUND(CTV,2))
		FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
		WHERE
			patrTerzi.Rete = @Rete
			and patrTerzi.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioImmobiliare = SUM(patrImm.VALORE_STIMATO)
		FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
		WHERE
			patrImm.Rete = @Rete
			and patrImm.Cod_Fiscale = @CodiceFiscale


	SELECT @PatrimonioAltro = SUM(patrAltro.ctv)
		FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
		WHERE
			patrAltro.Rete = @Rete
			AND patrAltro.Cod_Fiscale = @CodiceFiscale
	

	declare @summa as decimal(15,2)
    SET @Part_viaggianti=coalesce(@Part_viaggianti,0)
	SET @PatrimonioBF =coalesce(@PatrimonioBF,0)
	SET @summa = @PatrimonioBF + @Part_viaggianti
    SET @PatrimonioBF=@summa
	SET @PatrimonioTerzi =coalesce(@PatrimonioTerzi,0)
	SET @PatrimonioImmobiliare =coalesce(@PatrimonioImmobiliare,0)
	SET @PatrimonioAltro= coalesce(@PatrimonioAltro,0)
	SET @PatrimonioTotale = coalesce(@PatrimonioBF+@PatrimonioTerzi+@PatrimonioImmobiliare+@PatrimonioAltro,0)


	SELECT	'' as 'C6MartPeriodico.PL_D2_S152Patrimonio', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		@PatrimonioBF AS BFCTV,
		@PatrimonioTerzi AS PatrimonioTerziCTV,
		@PatrimonioBF +@PatrimonioTerzi AS FinanziarioCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else (@PatrimonioBF + @PatrimonioTerzi)/ @PatrimonioTotale end)  * 100.00)) AS FinanziarioPerc,
		@PatrimonioImmobiliare AS ImmobiliareCTV,
		CONVERT(decimal(6,2),((case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioImmobiliare/@PatrimonioTotale end ) *100.00)) AS ImmobiliarePerc,
		@PatrimonioAltro AS AltroCTV,
		CONVERT(decimal(6,2),(case @PatrimonioTotale when 0.00 then 0.00 else @PatrimonioAltro/@PatrimonioTotale end) *100.00) AS AltroPerc,
		@PatrimonioTotale AS TotaleCTV

END
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S153PatrimonioFinanziario
	SELECT '' as 'C6MartPeriodico.PL_D2_S153PatrimonioFinanziario', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
			Intermediario,
			Ordine,
			CASE @Rete WHEN 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine)) / 
				(SUM(ctv) over (partition by 'Totale'))
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
				CASE @Rete WHEN 'F' THEN 'Banca Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1
					AND patrBF.Rete = @Rete
					AND patrBF.Cod_Fiscale = @CodiceFiscale
					and patrBF.id_area  not in ('CC','SELF') 
				
			UNION ALL

			SELECT 
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
					AND patrTerzi.Rete = @Rete
					AND patrTerzi.Cod_Fiscale = @CodiceFiscale			
				GROUP BY patrTerzi.Intermediario

		) PATR

	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S154PatrimonioFinanziario
SELECT '' as 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(19,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2) as decimal(19,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		CASE @Rete WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Banca Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') 
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL

		
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL
		--CON SKANDIA
		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS

) A

ORDER BY A.ORDINAMENTO
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare
	SELECT '' as 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale') as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto') as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	WHERE PATRIMONIO_IMMOBILIARE.RETE = @Rete
		AND PATRIMONIO_IMMOBILIARE.COD_FISCALE = @CodiceFiscale
	ORDER BY 5 DESC
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S156ALtroPatrimonio
	SELECT '' as 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,			 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale') as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
	WHERE 
		PATRIMONIO_ALTRO.RETE = @Rete
		AND PATRIMONIO_ALTRO.COD_FISCALE = @CodiceFiscale
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S157ConfrontoPiramidi
SELECT '' as 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S158PiramideModello
SELECT '' as 'C6MartPeriodico.PL_D2_S158PiramideModello', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.RETE = @Rete
		AND BF.COD_FISCALE = @CodiceFiscale
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S159PatrimonioFinanziario
SELECT '' as 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(19,5)) AS Controvalore,
	cast(A.Percentuale  as decimal(19,5)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'),2)  as decimal(19,5))  AS Totale
FROM 
(		
	SELECT DISTINCT
		CASE @Rete
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Banca Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')
			AND PATRBF.RETE = @Rete
			AND PATRBF.COD_FISCALE = @CodiceFiscale

		UNION ALL
		
		SELECT 
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

		UNION ALL

		SELECT ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE
			ASUL.RETE = @Rete
			AND ASUL.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A

ORDER BY A.ORDINAMENTO
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S160DettaglioProdottiBF
BEGIN

--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ AS INT
	SELECT @TOTSELFLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ AS INT
	SELECT @TOTLIQ = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII


SELECT '' as 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ = @TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S162DettaglioProdotti
	SELECT  '' as 'C6MartPeriodico.PL_D2_S162DettaglioProdotti', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S163PatrimonioFinanziarioMAssetClass

SELECT DISTINCT '' as 'C6MartPeriodico.PL_D2_S163PatrimonioFinanziarioMAssetClass', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) as decimal(19,6)) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS) /
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
		) * 100 AS Percentuale,
		cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE') as decimal(19,6)) AS PatrimonioFinanziarioCTV
	FROM (

		--PRODOTTI TERZI A CATALOGO
		SELECT 	
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
		FROM 
			C6MART.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MART.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'
			AND PATRTERZI.RETE = @Rete
			AND PATRTERZI.COD_FISCALE = @CodiceFiscale

	) VALORIASSET
	INNER JOIN C6MART.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	ORDER BY 
		ASSETCLASS.ORDINAMENTO
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti
SELECT  '' as 'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,   

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'
	WHERE  PATRTERZI.RETE = @Rete
		AND PATRTERZI.COD_FISCALE = @CodiceFiscale
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S165FondiAltriIstituti
SELECT '' as 'C6MartPeriodico.PL_D2_S165FondiAltriIstituti', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	WHERE 
	 	PATRTERZI.rete = @Rete
		and PATRTERZI.cod_fiscale = @CodiceFiscale
		--AND  PATRTERZI.TIPO_PRODOTTO = 'Fondi pensione'
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S166ContoCorrenteAI
SELECT  '' as 'C6MartPeriodico.PL_D2_S166ContoCorrenteAI', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,   
		CCTerzi.INTERMEDIARIO AS Intermediario,
		CCTerzi.COD_CC AS ContoCorrente,
		CCTerzi.SALDO AS Saldo,
                 null as creditrisk,
        'n.a.' as creditriskstring,
		0.00 as var
	FROM       
		C6MartPeriodico.ANAG_CC_Terzi CCTerzi
	WHERE 
		CCTerzi.rete= @Rete
		AND CCTerzi.cod_fiscale= @CodiceFiscale
--------------------------------------------------------------------

----------------------------------------------- C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito
SELECT '' as 'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, RETE,
       COD_FISCALE,
       INTERMEDIARIO,
       CASE
           WHEN INTERMEDIARIO IN ('Banca Fideuram',
                                  'Sanpaolo Invest') THEN 1
           ELSE 2
       END AS ORDINE,
       SUM(CTV) AS CTV_TOT,
       SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END) AS CTV_notCovered,
       SUM(CASE WHEN RISKCLASS = 'Classe A'
           OR RISKCLASS = 'Classe B'
           OR RISKCLASS = 'Classe C'
           OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) AS CTV_CreditRisk,
       SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) AS CTV_na,
       --CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A'
              OR RISKCLASS = 'Classe B'
              OR RISKCLASS = 'Classe C'
              OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) /SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_CreditRisk,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_NA
FROM ( -- Start 1.1

      SELECT PATRBF.RETE,
             PATRBF.COD_FISCALE,
             CASE
                 WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    CASE
                        WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram'
                        ELSE 'Sanpaolo Invest'
                    END AS INTERMEDIARIO,
                           --SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0
    AND patrbf.id_area IN ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
      FROM [C6Martperiodico].PATRIMONIO_BF PATRBF ---Per calcolare la somma algebrica dei cc
LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6MARTPERIODICO].pATRIMONIO_BF
         WHERE id_Area IN ('Cc',
                           'Self')
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrbf.cod_fiscale=ctvcc.cod_fiscale
      AND patrbf.rete=ctvcc.rete --fine calcolo somma cc
LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD ON PATRBF.RETE= RISCHIO_PROD.RETE
      AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
      AND RISCHIO_PROD.COD_AGGREG = CASE
                                        WHEN (PATRBF.NOME_PROGETTO IS NOT NULL) THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto AS varchar),'') + '|' --V

                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('EXT',
                                                                    'INV',
                                                                    'PRE',
                                                                    'RIS',
                                                                    'LIQ') THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('CC') THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('SELF') THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('NA') THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|' --

                                    END + PATRBF.POSITION_ID --INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT OUTER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR ON RISCHIO_PROD.CREDITRISK = cr.profilo --V

      WHERE PATRBF.COD_FISCALE = @CodiceFiscale
        AND PATRBF.RETE = @Rete --
GROUP BY PATRBF.RETE,
         PATRBF.COD_FISCALE,
         CASE
             WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
             WHEN DESCRIZIONE IS NULL THEN 'NA'
             ELSE DESCRIZIONE
         END,
         CASE
             WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM'
             ELSE 'SANPAOLO'
         END --- End 1.1
UNION ALL -- Start 1.2

      SELECT PATRTERZI.RETE,
             PATRTERZI.COD_FISCALE,
             CASE
                 WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    'Altri Istituti' AS INTERMEDIARIO,
                                        --PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
      FROM [C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
      LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6Martperiodico].pATRIMONIO_terzi
         WHERE tipo_prodotto='Conti correnti'
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrterzi.cod_fiscale=ctvcc.cod_fiscale
      AND patrterzi.rete=ctvcc.rete
      LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD ON PATRTERZI.RETE = RISCHIOPROD.RETE
      AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
      AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
      LEFT OUTER JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR ON RISCHIOPROD.CREDITRISK = cr.profilo --V

      WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale
        AND PATRTERZI.RETE = @Rete --
GROUP BY PATRTERZI.RETE,
         PATRTERZI.COD_FISCALE,
         --PATRTERZI.INTERMEDIARIO,
CASE
    WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
    WHEN DESCRIZIONE IS NULL THEN 'NA'
    ELSE DESCRIZIONE
END -- End 1.2
)H
GROUP BY RETE,
         COD_FISCALE,
         INTERMEDIARIO --------
UNION ALL -----------
--QUERY TOTALE

SELECT '' as 'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, RETE,
       COD_FISCALE,
       'Complessivo' AS INTERMEDIARIO,
       3 AS ORDINE,
       SUM(CTV) AS CTV_TOT,
       SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END) AS CTV_notCovered,
       SUM(CASE WHEN RISKCLASS = 'Classe A'
           OR RISKCLASS = 'Classe B'
           OR RISKCLASS = 'Classe C'
           OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) AS CTV_CreditRisk,
       SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END) AS CTV_na,
       --CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A'
              OR RISKCLASS = 'Classe B'
              OR RISKCLASS = 'Classe C'
              OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) /SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_CreditRisk,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_NA
FROM (--- Start 2.1

      SELECT PATRBF.RETE,
             PATRBF.COD_FISCALE,
             CASE
                 WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    --SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0
    AND patrbf.id_area IN ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS CTV
      FROM [C6Martperiodico].PATRIMONIO_BF PATRBF --per fare la somma algebrica dei cc
LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6MARTPERIODICO].pATRIMONIO_BF
         WHERE id_Area IN ('Cc',
                           'Self')
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrbf.cod_fiscale=ctvcc.cod_fiscale
      AND patrbf.rete=ctvcc.rete --fine somma cc
LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD ON PATRBF.RETE= RISCHIO_PROD.RETE
      AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
      AND RISCHIO_PROD.COD_AGGREG = CASE
                                        WHEN (PATRBF.NOME_PROGETTO IS NOT NULL) THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto AS varchar),'')+'|' --V

                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('EXT',
                                                                    'INV',
                                                                    'PRE',
                                                                    'RIS',
                                                                    'LIQ') THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('CC') THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('SELF') THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('NA') THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|' --

                                    END + PATRBF.POSITION_ID
      LEFT OUTER JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR ON RISCHIO_PROD.CREDITRISK = cr.profilo --V

      WHERE PATRBF.COD_FISCALE = @CodiceFiscale
        AND PATRBF.RETE = @Rete --
GROUP BY PATRBF.RETE,
         PATRBF.COD_FISCALE,
         CASE
             WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
             WHEN DESCRIZIONE IS NULL THEN 'NA'
             ELSE DESCRIZIONE
         END -- End 2.1
UNION ALL -- Start 2.2

      SELECT PATRTERZI.RETE,
             PATRTERZI.COD_FISCALE,
             CASE
                 WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    SUM(ROUND(CTV,2)) AS CTV
      FROM [C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
      LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6Martperiodico].pATRIMONIO_terzi
         WHERE tipo_prodotto='Conti correnti'
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrterzi.cod_fiscale=ctvcc.cod_fiscale
      AND patrterzi.rete=ctvcc.rete
      LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD ON PATRTERZI.RETE = RISCHIOPROD.RETE
      AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
      AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
      LEFT OUTER  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR ON RISCHIOPROD.CREDITRISK = cr.profilo --V

      WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale
        AND PATRTERZI.RETE = @Rete --

      GROUP BY PATRTERZI.RETE,
               PATRTERZI.COD_FISCALE,
               CASE
                   WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
                   WHEN DESCRIZIONE IS NULL THEN 'NA'
                   ELSE DESCRIZIONE
               END --- End 2.2
)H
GROUP BY RETE,
         COD_FISCALE
--------------------------------------------------------------------

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

declare @patr_compl decimal(18,3)


select @patr_compl=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT '' as 'C6MartPeriodico.PL_D2_S168TabellaEmittenti', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1
				   AND V.COD_FISCALE = @CODICEFISCALE
				   AND V.RETE = @RETE
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND V.COD_FISCALE = @CODICEFISCALE
   AND V.RETE = @RETE
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 
END
--------------------------------------------------------------------


---------------------------------------------------------------C6MartPeriodico.PL_S43DettaglioProdottiBF


BEGIN

--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ2 AS INT
	SELECT @TOTSELFLIQ2 = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ2 AS INT
	SELECT @TOTLIQ2 = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------

SELECT '' as 'C6MartPeriodico.PL_S43DettaglioProdottiBF', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ2 = @TOTLIQ2 and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

END


--select top 1 * from c6martperiodico.patrimonio_bf where tipo_prodotto = 'CC'

--select SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC)),ANAG_CC.COD_CC 
--from c6martperiodico.anag_cc


---------------------------------------------------------------

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

SET NOCOUNT ON;


SELECT '' as 'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, PATRBF.RETE,
       PATRBF.COD_FISCALE,
       PATRBF.INSTITUTENAME,
       CTV,
       M.PROFILO_ASS AS CODICEPROFILO,
       CR.MAX_VAR AS VARMAX,
       RISK_AGG.VAR_PERC_PTF AS VAR,
       CASE
           WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.'
           ELSE NULL
       END AS VARSTRING,
       RISK_AGG.CREDITRISK RISKCLASS,
       CASE
           WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.'
           WHEN RISK_AGG.creditrisk IS NULL THEN 'n.a.'
           WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.'
           ELSE NULL
       END AS RISKCLASSSTRING,
       ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
       --V La copertura viene valorizzata con un valore da 0 da 100
 --  	CASE
 --	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.'
--		ELSE
NULL --	END
AS COVERAGESTRING,
   M.RISKCLASS AS RISKCLASSMAX,
   round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
 CASE WHEN (SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)) = 0 THEN 1 ELSE (SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE)) END) *100,2)AS PERCENTAGE,
   --V
 ORDINE,
 RISK_AGG.Ully_perc
FROM
  ( SELECT PATRBF.RETE,
           PATRBF.COD_FISCALE,
           CASE
               WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram'
               ELSE 'Patrimonio Sanpaolo Invest'
           END AS INSTITUTENAME,
                  SUM(PATRBF.CTV) AS CTV,
                                     --V
 1 AS ORDINE,
      RISK_AGG.Ully_perc
   FROM c6martperiodico.patrimonio_bf PATRBF,
        C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
   WHERE 1=1
     AND PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE
     AND PATRBF.rete= RISK_AGG.rete
     AND PATRBF.cod_fiscale = @codiceFiscale
     AND PATRBF.rete= @rete
     AND PATRBF.CTV > 0
     AND ( RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
 --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
 )
   GROUP BY PATRBF.RETE,
            PATRBF.COD_FISCALE,
            RISK_AGG.Ully_perc,
            CASE
                WHEN PATRBF.RETE='F' THEN 'Patrimonio Banca Fideuram'
                ELSE 'Patrimonio Sanpaolo Invest'
            END
   UNION SELECT TERZI.RETE,
                TERZI.COD_FISCALE,
                'Patrimonio altri Istituti' AS INSTITUTENAME,
                                               SUM(ROUND(TERZI.CTV,2)) AS CTV,
                                                                          --V
 2 AS ORDINE,
      RISK_AGG.Ully_perc
   FROM c6martperiodico.PATRIMONIO_TERZI TERZI,
        C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
   WHERE 1=1
     AND TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE
     AND TERZI.rete= RISK_AGG.rete
     AND TERZI.cod_fiscale =@codiceFiscale
     AND TERZI.rete=@rete
     AND TERZI.CTV > 0
     AND ( --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
 RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI' )
   GROUP BY TERZI.RETE,
            TERZI.COD_FISCALE,
            RISK_AGG.Ully_perc ) PATRBF
LEFT OUTER JOIN c6martperiodico.MIFID AS M ON PATRBF.COD_FISCALE=M.COD_FISCALE
AND PATRBF.RETE=M.RETE
LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR ON M.PROFILO_ASS = CR.PROFILO
LEFT OUTER JOIN c6martperiodico.CODIFICA_CREDITRISK CK ON M.riskclass=CK.PROFILO
LEFT OUTER JOIN c6martperiodico.RISCHIO_AGGREGATO RISK_AGG ON PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
AND PATRBF.RETE=RISK_AGG.RETE
AND (CASE
         WHEN RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF'
              AND PATRBF.RETE= 'F' THEN 'Patrimonio Banca Fideuram'
         WHEN RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF'
              AND PATRBF.RETE= 'S' THEN 'Patrimonio Sanpaolo Invest'
         ELSE 'Patrimonio altri Istituti'
     END)= PATRBF.INSTITUTENAME
WHERE ( RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF'
       OR RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI' )
UNION ALL
SELECT '' as 'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, PATRBF.RETE,
       PATRBF.COD_FISCALE,
       'Patrimonio Complessivo' AS INSTITUTENAME,
       SUM(CTV),
       MAX(M.PROFILO_ASS) AS CODICEPROFILO,
       MAX(CR.MAX_VAR) AS VARMAX,
       MAX(RISK_AGG.VAR_PERC_PTF) AS VAR,
       MAX(CASE WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END) AS VARSTRING,
       MAX(RISK_AGG.CREDITRISK) RISKCLASS,
       MAX( CASE WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' WHEN RISK_AGG.creditrisk IS NULL THEN 'n.a.' WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' ELSE NULL END) AS RISKCLASSSTRING,
       MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
       MAX(CASE WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END) AS COVERAGESTRING,
       --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
 MAX(M.RISKCLASS) AS RISKCLASSMAX,
 100 AS PERCENTAGE,
 --V
 3 AS ORDINE,
 RISK_AGG.Ully_perc
FROM
  ( SELECT PATRBF.RETE,
           PATRBF.COD_FISCALE,
           SUM(PATRBF.CTV) AS CTV
   FROM c6martperiodico.patrimonio_bf PATRBF
   WHERE 1=1
     AND cod_fiscale =@codiceFiscale
     AND rete=@rete
     AND PATRBF.CTV > 0
   GROUP BY PATRBF.RETE,
            PATRBF.COD_FISCALE
   UNION SELECT TERZI.RETE,
                TERZI.COD_FISCALE,
                SUM(ROUND(TERZI.CTV,2)) AS CTV
   FROM c6martperiodico.PATRIMONIO_TERZI TERZI
   WHERE 1=1
     AND cod_fiscale =@codiceFiscale
     AND rete=@rete
     AND TERZI.CTV > 0
   GROUP BY TERZI.RETE,
            TERZI.COD_FISCALE ) PATRBF
LEFT OUTER JOIN c6martperiodico.MIFID AS M ON PATRBF.COD_FISCALE=M.COD_FISCALE
AND PATRBF.RETE=M.RETE
LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR ON M.PROFILO_ASS = CR.PROFILO
LEFT OUTER JOIN c6martperiodico.CODIFICA_CREDITRISK CK ON M.riskclass=CK.PROFILO
LEFT OUTER JOIN c6martperiodico.RISCHIO_AGGREGATO RISK_AGG ON PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
AND PATRBF.RETE=RISK_AGG.RETE
WHERE ( RISK_AGG.COD_AGGREG= 'COMPLESSIVO' )
GROUP BY PATRBF.RETE,
         PATRBF.COD_FISCALE,
         RISK_AGG.Ully_perc --V

ORDER BY ordine END 
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_D2_S170RischioDiversificazione

BEGIN

 
	declare @contaCC as int
	select @contaCC = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS as int
	select @contaPOS = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete
    
    declare @ctvbf as decimal(12,2)  
	SELECT @ctvbf = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0
				  
    declare @ctvterzi as decimal (12,2)  
	SELECT @ctvterzi = isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = @CodiceFiscale
				  and rete= @Rete 
				  and CTV > 0


SELECT '' as 'C6MartPeriodico.PL_D2_S170RischioDiversificazione', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then @ctvbf
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then @ctvterzi
	when cod_Aggreg = 'COMPLESSIVO' then @ctvbf + @ctvterzi
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS - @contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS - @contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (@contaPOS - @contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Banca Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY ordine


END 

---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass

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

	DECLARE @NOMERETE VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE = 'Banca Fideuram'
	ELSE
		SET @NOMERETE = 'Sanpaolo Invest'

	SELECT  '' as 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

	SELECT  '' as 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO 
	ORDER BY CONTROVALORE DESC
  
END



---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_S25Anagrafica
BEGIN

SELECT '' as 'C6MartPeriodico.PL_S25Anagrafica', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [Cliente]
      ,[DatadiNascita]
      ,[ETA]
      ,[Professione]
      ,[StatoCivile]
      ,[NucleoFamiliare]
      ,[Residenza]
      ,[CodiceFiscale]
      ,[CodicePB]
      ,[CodiceRete]
      ,[CodiceContratto]
      ,[StatoContratto]
      ,[DataSottoscrizione]
      ,[DataPerfezionamento]
      ,[FasciaCPP]
      ,[IndirizzoEmail]
      ,[ProduzioneReport]
      ,[Indirizzo]
      ,[CAP]
      ,[Citta]
      ,[Provincia]
      ,[Nazione]
      ,[PRESSO]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S25Anagrafica]
  WHERE	[CodiceRete] 	= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_AreeMonitorate
-- 2resultsets
BEGIN -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 --marianna controllare date di uscita coerenti tra tcptab e tanab, nel caso forzare la chiusura del monitoraggio nella tanab
 --exec C6MartPeriodico.SRV_LISTA_DISALLINEAMENTI_MONIT

SELECT '' as 'C6MartPeriodico.PL_AreeMonitorate', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, max(convert(datetime,convert(varchar(8),dtuscita))) AS dtfine,
       rete,
       codarea,
       codfis,
       codprog INTO #tcptab_aggr_dt
FROM c6stagingperiodico.tcptab
WHERE ctvatt>0
GROUP BY rete,
         codfis,
         codarea,
         codprog

SELECT '' as 'C6MartPeriodico.PL_AreeMonitorate', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, a.codfis,
       a.rete,
       a.codarea,
       a.codprog,
       a.dtfine tanab_dt,
       b.dtfine tcptab_dt INTO #dis_dt
FROM c6stagingperiodico.tanab a
FULL JOIN #tcptab_aggr_dt b ON a.rete = b.rete
AND a.codfis = b.codfis
AND a.codarea = b.codarea
AND a.codprog = b.codprog
WHERE convert(datetime,convert(varchar(8),a.dtfine))<>b.dtfine
  AND b.dtfine<C6MartPeriodico.getDataCongelamento()
  AND a.codfis NOT IN
    (SELECT cod_fiscale
     FROM disallineati2)
  SELECT '' as 'C6MartPeriodico.PL_AreeMonitorate', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, NEED_AREA, 
         NEED_ESTESA,
         NOME_PROGETTO,
         --CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
  FROM ( --1.1 liq sotto monit

        SELECT PIRMOD.ID_AREA AS Need_Area,
                                 AREA.NOME_AREA AS Need_Estesa,
                                                   CASE WHEN PIRMOD.NOME_PROGETTO IS NULL
        AND pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti' ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO)) END AS Nome_Progetto,
                                                                                                                         PIRMOD.ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
                                                                                                                                                        CASE PIRMOD.ID_AREA WHEN 'Liq' THEN 1 WHEN 'Ris' THEN 2 WHEN 'Pre' THEN 3 WHEN 'Inv' THEN 4 WHEN 'Ext' THEN 5 WHEN 'Na' THEN 6 END AS ORDINE,
CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO
        FROM
(SELECT RETE,
        COD_FISCALE,
        CASE WHEN ID_AREA IN ('Pre',
                              'Pre1',
                              'Pre2') THEN 'Pre' ELSE id_area END AS Id_area,
                                                                     NOME_PROGETTO,
                                                                     TIPO_PROGETTO,
                                                                     PERC_AREA,
                                                                     CTV_PROGETTO,
                                                                     CTV_AREA,
                                                                     ORIZZ_TEMP_NUM,
                                                                     ORIZZ_TEMP,
                                                                     CTV_TOTALE,
                                                                     STATO_CONSULENZA,
                                                                     DATA_STATO_CONS,
                                                                     DATA_MIGR_CONS,
                                                                     DATA_PIANIF,
                                                                     ID_CONTRATTO,
                                                                     ---LEVARE???
 ORDINAMENTO_PROGETTO
 FROM C6MartPeriodico.CONS_ATTIVAGGIORNATA
 WHERE COD_FISCALE=@CodiceFiscale
   AND rete= @Rete ) PIRMOD
        INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
        AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
WHERE PIRMOD.RETE= @Rete
AND PIRMOD.COD_FISCALE = @CodiceFiscale
AND PIRMOD.CTV_PROGETTO > 0
AND PIRMOD.ID_AREA NOT IN ('Pre1',
                           'Pre2',
                           'Cc') --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo

        UNION
        SELECT DISTINCT 'Cc' AS Need_Area,
                                'Conti correnti a saldo negativo'AS Need_Estesa,
                                                                    NULL AS Nome_Progetto,
                                                                            --999999 as ORDINAMENTO_PROGETTO,
 ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
                         6 AS ORDINE,
                              0 AS AREAPROGETTOSOTTOMONITORAGGIO
        FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
WHERE PATRBF.RETE= @Rete
AND PATRBF.COD_FISCALE = @CodiceFiscale
AND PATRBF.CTV < 0
AND id_area = 'CC' -- End Of Bido Added for 'SN' Saldo Negativo

        UNION
        SELECT DISTINCT 'Self' AS Need_Area,
                                  'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
                                                                           NULL AS Nome_Progetto,
                                                                                   --999999 as ORDINAMENTO_PROGETTO,
 ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
                         7 AS ORDINE,
                              0 AS AREAPROGETTOSOTTOMONITORAGGIO
        FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
WHERE PATRBF.RETE= @Rete
AND PATRBF.COD_FISCALE = @CodiceFiscale
AND PATRBF.CTV < 0
AND id_area = 'SELF' -- End Of Bido Added for 'SN' Saldo Negativo

        UNION
        SELECT DISTINCT 'Na' AS Need_Area,
                                'Non allocato'AS Need_Estesa,
                                                 NULL AS Nome_Progetto,
                                                         --999999 as ORDINAMENTO_PROGETTO,
 ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
                         8 AS ORDINE,
                              0 AS AREAPROGETTOSOTTOMONITORAGGIO
        FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
WHERE PATRBF.RETE= @Rete
AND PATRBF.COD_FISCALE = @CodiceFiscale
AND PATRBF.CTV > 0
AND PATRBF.ID_AREA IN ('Na')
        UNION
        SELECT DISTINCT CASE WHEN PATRBF.ID_AREA IN ('Pre',
                                                     'Pre1',
                                                     'Pre2') THEN 'Pre' ELSE PATRBF.ID_AREA END AS Need_Area,
                                                                                                   CASE WHEN PATRBF.ID_AREA IN ('Pre',
                                                                                                                                'Pre1',
                                                                                                                                'Pre2') THEN 'Previdenza' ELSE AREA.NOME_AREA END AS NEED_ESTESA,
                                                                                                                                                                                     CASE WHEN PATRBF.NOME_PROGETTO IS NULL
        AND PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti' ELSE PATRBF.NOME_PROGETTO END AS Nome_Progetto,
                                                                                                           --case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
 PATRBF.ORDINAMENTO_PROGETTO AS ORDINAMENTO_PROGETTO,
                                CASE PATRBF.ID_AREA WHEN 'Liq' THEN 1 WHEN 'Ris' THEN 2 WHEN 'Pre' THEN 3 WHEN 'Pre1' THEN 3 WHEN 'Pre2' THEN 3 WHEN 'Inv' THEN 4 WHEN 'Ext' THEN 5 WHEN 'Na' THEN 7 END AS ORDINE,
CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO
        FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
        INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON PATRBF.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
        AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO
WHERE 1=1
AND PATRBF.RETE= @Rete
AND PATRBF.COD_FISCALE = @CodiceFiscale
AND PATRBF.CTV > 0
AND PATRBF.EXTRANAC=1
AND PATRBF.ID_AREA NOT IN ('Na',
                           'Cc')) A
GROUP BY NEED_AREA,
       NEED_ESTESA,
       NOME_PROGETTO,
       ORDINAMENTO_PROGETTO
ORDER BY ORDINE,
       ORDINAMENTO_PROGETTO END 
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S137Bonus


BEGIN  
	 SELECT '' as 'C6MartPeriodico.PL_MP_S137Bonus', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale 

END

---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento

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

	SELECT '' as 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale

	UNION
	
	SELECT '' as 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita


BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT

SELECT '' as 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			PATR_BF.RETE = @Rete
			AND PATR_BF.COD_FISCALE = @CodiceFiscale
			AND PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
	WHERE
		MONIT.RETE = @Rete AND
		MONIT.COD_FISCALE =  @CodiceFiscale
 

END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv

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

	SELECT '' as 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale

	UNION
	
	SELECT '' as 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	WHERE RETE = @Rete
		AND COD_FISCALE = @CodiceFiscale
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
---------------------------------------------------------------

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

SELECT TOP 10 '' as 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		ANAGPROD.DESCR_PRODOTTO AS descrProdotto
		,PATRBF.CTV AS Controvalore
		,CASE 
			WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
			ELSE RISCHIO_PROD.VAR_PERC_PTF
		END AS VaRprodotto
		,((CASE 
			  WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
			  ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
		   END) /	(CASE
					   WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale') = 0 THEN 1
					   ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale')
					 END))*100 as rischioRelativo	
		,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale')))*100  AS pesoRelativo
		,PATRBF.ID_AREA  AS codAreaBisogno
	FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
		ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
	INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
		ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
		ON PATRBF.RETE= RISCHIO_PROD.RETE
		AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
		AND RISCHIO_PROD.COD_AGGREG = CASE 
										 WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
											 THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
											 '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
										 WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
										 ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
									   END
									   + PATRBF.POSITION_ID 
	WHERE PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale
    AND PATRBF.CTV <>0
	AND PATRBF.ID_AREA <> 'Cc'
	ORDER BY rischioRelativo DESC

END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S133AreeBisognoPrincProd

BEGIN

SELECT '' as 'C6MartPeriodico.PL_MP_S133AreeBisognoPrincProd', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S133_S157DatiPiramide]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento
end
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S132ProfiloRischioAdeguatezza

SELECT '' as 'C6MartPeriodico.PL_MP_S132ProfiloRischioAdeguatezza', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [RETE]
      ,[COD_FISCALE]
      ,[INSTITUTENAME]
      ,[CTV]
      ,[CODICEPROFILO]
      ,[DATAINIZIOVALIDITA]
      ,[VARMAX]
      ,[NOMEPROFILO]
      ,[VAR]
      ,[VARSTRING]
      ,[RISKCLASS]
      ,[RISKCLASSSTRING]
      ,[COVERAGE]
      ,[COVERAGESTRING]
      ,[RISKCLASSMAX]
      ,[PERCENTAGE]
      ,[VarIsOk]
      ,[RiskClassIsOk]
      ,[ComplexityIsOk]
      ,[Ully_perc]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S132ProfiloRischioAdeguatezza]
  WHERE	[RETE] 	= @Rete 
  AND	[COD_FISCALE] = @CodiceFiscale
		 

---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S146RischioDiversificazione

BEGIN

 
	declare @contaCC2 as int

	select @contaCC2 = count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = @codiceFiscale and rete = @rete

	
	declare @contaPOS2 as int

	select @contaPOS2 = count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = @codiceFiscale and rete = @rete



SELECT '' as 'C6MartPeriodico.PL_MP_S146RischioDiversificazione', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (@contaPOS2 - @contaCC2 = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND @contaPOS2 - @contaCC2 <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND @contaPOS2 - @contaCC2 <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (@contaPOS2 - @contaCC2 = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Banca Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
AND k.COD_FISCALE = @COdiceFISCALE
AND k.RETE= @RETE
ORDER BY 11

end 
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S141AnalisiRisparmioTable

BEGIN
	SET NOCOUNT ON;
    

declare @patr_compl2 decimal(18,3)


select @patr_compl2=sum(ctv_prodotto) from 
c6martperiodico.patrimonio_emittenti 
where  cod_fiscale =@codicefiscale
and rete=@rete
and ctv_prodotto > 0

SELECT  '' as 'C6MartPeriodico.PL_MP_S141AnalisiRisparmioTable', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,--U.*
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
		sum(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					AND V.COD_FISCALE = @CODICEFISCALE
					AND V.RETE = @RETE
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT 
     COD_FISCALE,
     RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(@patr_compl2)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	COD_FISCALE,
	RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			AND V.COD_FISCALE = @CODICEFISCALE
			AND V.RETE = @RETE
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	COD_FISCALE,
	RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END

---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S140AnalisiRisparmioCharts
BEGIN
SET NOCOUNT ON;

 --QUERY PER INTERMEDIARIO

SELECT '' as 'C6MartPeriodico.PL_MP_S140AnalisiRisparmioCharts', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, RETE,
       COD_FISCALE,
       INTERMEDIARIO,
       CASE
           WHEN INTERMEDIARIO IN ('Banca Fideuram',
                                  'Sanpaolo Invest') THEN 1
           ELSE 2
       END AS ORDINE,
       SUM(CTV) AS CTV_TOT,
       SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END) AS CTV_notCovered,
       SUM(CASE WHEN RISKCLASS = 'Classe A'
           OR RISKCLASS = 'Classe B'
           OR RISKCLASS = 'Classe C'
           OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) AS CTV_CreditRisk,
       SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) AS CTV_na,
       --CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A'
              OR RISKCLASS = 'Classe B'
              OR RISKCLASS = 'Classe C'
              OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) /SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_CreditRisk,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_NA
FROM ( -- Start 1.1

      SELECT PATRBF.RETE,
             PATRBF.COD_FISCALE,
             CASE
                 WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    CASE
                        WHEN PATRBF.RETE = 'F' THEN 'Banca Fideuram'
                        ELSE 'Sanpaolo Invest'
                    END AS INTERMEDIARIO,
                           --SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0
    AND patrbf.id_area='cc' THEN 0 WHEN ctvself.self_ctv <0
    AND patrbf.id_area='self' THEN 0 ELSE PATRBF.CTV END) AS ctv --FINE INTERVENTI OMNIA
FROM [C6Martperiodico].PATRIMONIO_BF PATRBF ---Per calcolare la somma algebrica dei cc
LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6MARTPERIODICO].pATRIMONIO_BF
         WHERE id_Area='Cc'
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrbf.cod_fiscale=ctvcc.cod_fiscale
      AND patrbf.rete=ctvcc.rete --fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS self_ctv
         FROM [C6MARTPERIODICO].pATRIMONIO_BF
         WHERE id_Area='Self'
         GROUP BY cod_fiscale,
                  rete) ctvself ON patrbf.cod_fiscale=ctvself.cod_fiscale
      AND patrbf.rete=ctvself.rete --fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD ON PATRBF.RETE= RISCHIO_PROD.RETE
      AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
      AND RISCHIO_PROD.COD_AGGREG = CASE
                                        WHEN (PATRBF.NOME_PROGETTO IS NOT NULL) THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto AS varchar),'') + '|' --V

                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('EXT',
                                                                    'INV',
                                                                    'PRE',
                                                                    'RIS',
                                                                    'LIQ') THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('CC') THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('NA') THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|' --

                                    END + PATRBF.POSITION_ID --INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT OUTER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR ON RISCHIO_PROD.CREDITRISK = cr.profilo --V

      WHERE PATRBF.COD_FISCALE = @CodiceFiscale
        AND PATRBF.RETE = @Rete --
GROUP BY PATRBF.RETE,
         PATRBF.COD_FISCALE,
         CASE
             WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
             WHEN DESCRIZIONE IS NULL THEN 'NA'
             ELSE DESCRIZIONE
         END,
         CASE
             WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM'
             ELSE 'SANPAOLO'
         END --- End 1.1
UNION ALL -- Start 1.2

      SELECT PATRTERZI.RETE,
             PATRTERZI.COD_FISCALE,
             CASE
                 WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    PATRTERZI.INTERMEDIARIO,
                    SUM(ROUND(CTV,2)) AS CTV
      FROM [C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
      LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6Martperiodico].pATRIMONIO_terzi
         WHERE tipo_prodotto='Conti correnti'
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrterzi.cod_fiscale=ctvcc.cod_fiscale
      AND patrterzi.rete=ctvcc.rete
      LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD ON PATRTERZI.RETE = RISCHIOPROD.RETE
      AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
      AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
      LEFT OUTER JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR ON RISCHIOPROD.CREDITRISK = cr.profilo --V

      WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale
        AND PATRTERZI.RETE = @Rete --
GROUP BY PATRTERZI.RETE,
         PATRTERZI.COD_FISCALE,
         PATRTERZI.INTERMEDIARIO,
         CASE
             WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
             WHEN DESCRIZIONE IS NULL THEN 'NA'
             ELSE DESCRIZIONE
         END -- End 1.2
)H
GROUP BY RETE,
         COD_FISCALE,
         INTERMEDIARIO --------
UNION ALL -----------
--QUERY TOTALE

SELECT '' as 'C6MartPeriodico.PL_MP_S140AnalisiRisparmioCharts', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, RETE,
       COD_FISCALE,
       'Complessivo' AS INTERMEDIARIO,
       3 AS ORDINE,
       SUM(CTV) AS CTV_TOT,
       SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END) AS CTV_notCovered,
       SUM(CASE WHEN RISKCLASS = 'Classe A'
           OR RISKCLASS = 'Classe B'
           OR RISKCLASS = 'Classe C'
           OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) AS CTV_CreditRisk,
       SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END) AS CTV_na,
       --CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A'
              OR RISKCLASS = 'Classe B'
              OR RISKCLASS = 'Classe C'
              OR RISKCLASS = 'Classe D' THEN CTV ELSE 0 END) /SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_CreditRisk,
CASE
    WHEN SUM(CTV)=0 THEN 0
    ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100
END AS PERC_NA
FROM (--- Start 2.1

      SELECT PATRBF.RETE,
             PATRBF.COD_FISCALE,
             CASE
                 WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    --SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0
    AND patrbf.id_area='cc' THEN 0 WHEN ctvself.self_ctv <0
    AND patrbf.id_area='self' THEN 0 ELSE PATRBF.CTV END) AS CTV --FINE INTERVENTI OMNIA
FROM [C6Martperiodico].PATRIMONIO_BF PATRBF --per fare la somma algebrica dei cc
LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6MARTPERIODICO].pATRIMONIO_BF
         WHERE id_Area='Cc'
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrbf.cod_fiscale=ctvcc.cod_fiscale
      AND patrbf.rete=ctvcc.rete --fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS self_ctv
         FROM [C6MARTPERIODICO].pATRIMONIO_BF
         WHERE id_Area='Self'
         GROUP BY cod_fiscale,
                  rete) ctvself ON patrbf.cod_fiscale=ctvself.cod_fiscale
      AND patrbf.rete=ctvself.rete --fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD ON PATRBF.RETE= RISCHIO_PROD.RETE
      AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
      AND RISCHIO_PROD.COD_AGGREG = CASE
                                        WHEN (PATRBF.NOME_PROGETTO IS NOT NULL) THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto AS varchar),'')+'|' --V

                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('EXT',
                                                                    'INV',
                                                                    'PRE',
                                                                    'RIS',
                                                                    'LIQ') THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('CC') THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'
                                        WHEN (PATRBF.NOME_PROGETTO IS NULL)
                                             AND PATRBF.ID_AREA IN ('NA') THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|' --

                                    END + PATRBF.POSITION_ID
      LEFT OUTER JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR ON RISCHIO_PROD.CREDITRISK = cr.profilo --V

      WHERE PATRBF.COD_FISCALE = @CodiceFiscale
        AND PATRBF.RETE = @Rete --
GROUP BY PATRBF.RETE,
         PATRBF.COD_FISCALE,
         CASE
             WHEN RISCHIO_PROD.COPERTURA < 100 THEN 'NON COPERTO'
             WHEN DESCRIZIONE IS NULL THEN 'NA'
             ELSE DESCRIZIONE
         END -- End 2.1
UNION ALL -- Start 2.2

      SELECT PATRTERZI.RETE,
             PATRTERZI.COD_FISCALE,
             CASE
                 WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
                 WHEN DESCRIZIONE IS NULL THEN 'NA'
                 ELSE DESCRIZIONE
             END AS RISKCLASS,
                    SUM(ROUND(CTV,2)) AS CTV
      FROM [C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
      LEFT OUTER JOIN
        (SELECT cod_fiscale,
                rete,
                sum(ctv) AS cc_ctv
         FROM [C6Martperiodico].pATRIMONIO_terzi
         WHERE tipo_prodotto='Conti correnti'
         GROUP BY cod_fiscale,
                  rete) ctvcc ON patrterzi.cod_fiscale=ctvcc.cod_fiscale
      AND patrterzi.rete=ctvcc.rete
      LEFT OUTER JOIN [C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD ON PATRTERZI.RETE = RISCHIOPROD.RETE
      AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
      AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO) + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
      LEFT OUTER  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR ON RISCHIOPROD.CREDITRISK = cr.profilo --V

      WHERE PATRTERZI.COD_FISCALE = @CodiceFiscale
        AND PATRTERZI.RETE = @Rete --

      GROUP BY PATRTERZI.RETE,
               PATRTERZI.COD_FISCALE,
               CASE
                   WHEN RISCHIOPROD.COPERTURA < 100 THEN 'NON COPERTO'
                   WHEN DESCRIZIONE IS NULL THEN 'NA'
                   ELSE DESCRIZIONE
               END --- End 2.2
)H
GROUP BY RETE,
         COD_FISCALE END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S137BISCapitaleProtetto

BEGIN  
  --SELECT  top 1		 
  --        'Interfund Capital Protection' AS DES_PROD,
  --        '001234.RS.S678' AS COD_CONF,
  --        '120,1040' AS QUOTA,
  --        '100,1234' AS NUMEROQUOTE,
  --        '12.025,22' AS CONTROVALORE,
  --        '31/03/2014' AS DATARIF,
  --        'Quota massima' AS DES_MAX,
  --        '125,4573' AS QUOTA_MAX, 
  --        '80' AS QUOTA_MAX_PERC,           
  --        '31/03/2013' AS DATARIF_MAX,
  --        'Quota e controvalore protetti*' AS DES_PROT,
  --        '100,3658' AS QUOTA_PROT,
  --        '100,1234' AS NUMEROQUOTE_PROT,
  --        '10.048,97' AS CONTROVALORE_PROT         
     SELECT '' as 'C6MartPeriodico.PL_MP_S137BISCapitaleProtetto', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	 DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	FROM C6MartPeriodico.CAPPROT
	WHERE RETE = @Rete 
	  AND CODFIS = @CodiceFiscale 
	 
	Union 
	   SELECT '' as 'C6MartPeriodico.PL_MP_S137BISCapitaleProtetto', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
	 DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 	
	FROM C6MartPeriodico.CAPPROT
	WHERE RETE = @Rete 
	  AND CODFIS = @CodiceFiscale 
	
END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_S43ContoCorrenteBF

BEGIN
	
	SELECT '' as 'C6MartPeriodico.PL_S43ContoCorrenteBF', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
		ANAG_CC.rete= @Rete
		AND ANAG_CC.cod_fiscale= @CodiceFiscale
		AND ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END
---------------------------------------------------------------


---------------------------------------------------------------C6MartPeriodico.PL_S43BISDettaglioProdottiBF

BEGIN


-------------------------------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII
	DECLARE @TOTSELFLIQ3 AS INT
	SELECT @TOTSELFLIQ3 = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'

	DECLARE @TOTLIQ3 AS INT
	SELECT @TOTLIQ3 = COUNT(*)
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE PATRIMONIO_BF.RETE = @Rete
		AND PATRIMONIO_BF.COD_FISCALE = @CodiceFiscale
		AND ID_AREA = 'LIQ'
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------------------------------


SELECT '' as 'C6MartPeriodico.PL_S43BISDettaglioProdottiBF', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,


--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA) AS somma_controval_needarea,


SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN @TOTSELFLIQ3 = @TOTLIQ3 and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,

--INIZIO INTERVENTI OMNIA QUIIIIIIII
--case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
--			and patrbf.tipo_prodotto='CC' 
--			and patrbf.id_area='liq') 
	--then	
	--			CASE WHEN patrbf.data_sottoscrizione>monatt.data_attivazione
	--				THEN 
	--					dbo.TOSHORTDATESTRING(patrbf.data_sottoscrizione)
	--				ELSE
	--				CASE WHEN monatt.data_attivazione> '20110211' 
	--					then dbo.TOSHORTDATESTRING(monatt.data_attivazione)
	--					ELSE dbo.TOSHORTDATESTRING('20110211')
	--					END
	--				END
	--			END

	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1
	AND PATRBF.RETE = @Rete
	AND PATRBF.COD_FISCALE = @CodiceFiscale

 AND PATRBF.CTV <> 0 
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI

END

---------------------------------------------------------------


---------------------------------------------------------------C6MartPeriodico.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento

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

	SELECT '' as 'C6MartPeriodico.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.RETE = @Rete
		AND PATR_BF.COD_FISCALE = @CodiceFiscale
		AND PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_S85RendimentoPortafoglioCono

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

SELECT '' as 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[PIRAMIDE_MOD]
  WHERE cod_fiscale = @CodiceFiscale AND rete = @rete
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'

	SELECT '' as 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
	WHERE
		CONO.RETE = @Rete AND
		CONO.COD_FISCALE = @CodiceFiscale
		--and DATA_CTV is not null
	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END

---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_S82DatiSintetici

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

	/*DECLARE @TOTRischio DECIMAL(20,2)

	SELECT
		@TOTRischio = SUM(ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV)
	FROM
		C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA INNER JOIN
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAREA ON
			PATRAREA.RETE = RISCHIOAREA.RETE AND
			PATRAREA.COD_FISCALE = RISCHIOAREA.COD_FISCALE
	WHERE
		PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE','INV') AND
		PATRAREA.RETE = @Rete AND
		PATRAREA.COD_FISCALE = @CodiceFiscale*/

	SELECT '' as 'C6MartPeriodico.PL_S82DatiSintetici', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.RETE = @Rete
			AND PATRAREA.COD_FISCALE = @CodiceFiscale
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

END

---------------------------------------------------------------


---------------------------------------------------------------C6MartPeriodico.PL_S82BisDatiSintetici

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

	/*DECLARE @TOTRischio DECIMAL(20,2)

	SELECT
		@TOTRischio = SUM(ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV)
	FROM
		C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA INNER JOIN
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAREA ON
			PATRAREA.RETE = RISCHIOAREA.RETE AND
			PATRAREA.COD_FISCALE = RISCHIOAREA.COD_FISCALE
	WHERE
		PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE','INV') AND
		PATRAREA.RETE = @Rete AND
		PATRAREA.COD_FISCALE = @CodiceFiscale*/

	SELECT DISTINCT '' as 'C6MartPeriodico.PL_S82BisDatiSintetici', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		--C6MartPeriodico.getDescFromDate(DATEDIFF(m,(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) ,GETDATE()) + 1) AS durataResidua,
		--DATEDIFF(m,DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM, PIRMOD.DATA_PIANIF) ,GETDATE()) + 1 AS durataResidua,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		
		/*V Calcolato a livello di codice
		CASE
			WHEN BFAggr.CTV = 0 THEN 0
			ELSE SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO) / BFAggr.CTV * 100
		END AS pesoPerc,*/
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		/*V Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RA.VAR_PERC_PTF,0) * SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO) / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		AND BF.RETE = @Rete
		AND BF.COD_FISCALE = @CodiceFiscale
		--AND BF.ORDINAMENTO_PROGETTO=1521667
END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass

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

	DECLARE @NOMERETE2 VARCHAR(20)
	IF @RETE = 'F'
		SET @NOMERETE2 = 'Banca Fideuram'
	ELSE
		SET @NOMERETE2 = 'Sanpaolo Invest'

	SELECT  '' as 'C6MartPeriodico.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		@NOMERETE2 as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00

UNION ALL

SELECT  '' as 'C6MartPeriodico.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		@NOMERETE2 as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND PATRBF.RETE = @Rete
		AND PATRBF.COD_FISCALE = @CodiceFiscale

  GROUP BY 
     PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 

END

---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_MP_S149DettaglioProdottiAffluent

BEGIN

SELECT '' as 'C6MartPeriodico.PL_MP_S149DettaglioProdottiAffluent', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, ISNULL(SUM(ctv),0) 
FROM C6MartPeriodico.PATRIMONIO_BF 
	  WHERE RETE = @Rete
      AND COD_FISCALE = @CodiceFiscale

END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_S80Alternativa

BEGIN

    DECLARE @MONIT_ATTIV INT
	DECLARE @MONIT_INIT INT

    SET  @MONIT_ATTIV=0
	SET  @MONIT_INIT = 0

   -- INSERIMENTO BLOCCO PER MONITORAGGIO CHIUSO O NON ESISTENTE

    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
		C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE
		RETE = @Rete AND
		COD_FISCALE = @CodiceFiscale
    
	SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale    

IF (@MONIT_ATTIV > 0 AND @MONIT_INIT > 0)
BEGIN

SELECT '' as 'C6MartPeriodico.PL_S80Alternativa', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
  WHERE	[Rete] 		= @Rete 
  AND	[Cod_Fiscale] = @CodiceFiscale

END

ELSE

BEGIN

SELECT '' as 'C6MartPeriodico.PL_S80Alternativa', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [RETE]
      ,[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6StampeCentralizzate].[C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio]
	WHERE
		1=2

END

END
---------------------------------------------------------------

---------------------------------------------------------------C6MartPeriodico.PL_D_S331AreeBisogno
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	
	 SELECT '' as 'C6MartPeriodico.PL_D_S331AreeBisogno', @Rete as i_rete ,@CodiceFiscale as i_codiceFiscale, [NeedArea]
      ,[AreaName]
      ,[ControvaloreAttuale]
      ,Controvaloremodello as [ControvaloreProtetto]
      ,totale_percentuale as [ContributoProtezione]
     FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
 --FROM [C6StampeCentralizzate3112].[C6MartPeriodico].[TB_S331_DatiPiramide]
  WHERE	[Rete] 		= @Rete 
  AND	[CodiceFiscale] = @CodiceFiscale
  order by ordinamento
END
---------------------------------------------------------------


end





GO
/****** Object:  StoredProcedure [dbo].[test_S80All_fc]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[test_S80All_fc]
AS
BEGIN
/*
  Purpose: Calculate the total quantity and sales of the product in
           product wise.
  Input  : No input specified. It will calculate for all the products
           in Product Master table.
  Output : ProductID,ProductName,Total Quantity and Grand Total of
           sale.
  Method : The report generated without using the Cursor
 
-----------------------------------------------------------------------
*********************  Modification History   *************************
-----------------------------------------------------------------------
S.No             Name            Date                   Version
-----------------------------------------------------------------------
1.        Erode Senthilkumar   Sep 01, 2009              1.0
-----------------------------------------------------------------------
*/
    SET NOCOUNT ON
    SET XACT_ABORT ON
 
    DECLARE @ProductID INT
    DECLARE @ProductName VARCHAR(100)
    DECLARE @TotalQty INT
    DECLARE @Total MONEY
    DECLARE @Index INT
    DECLARE @RecordCnt INT
   
    DECLARE @tab TABLE(
     id INT IDENTITY(1,1)
    ,rete char(1)
    ,codicefiscale varchar(16)
    ,totCC int 
    ,totNoCC int
    )
    DECLARE @testTab TABLE
    (
        id INT IDENTITY(1,1)
       ,rete char(1)
       ,codicefiscale VARCHAR(100)
       ,CountCC INT
       ,CountNoCC int
    )
   DECLARE @Rete char(1)
	DECLARE @CodiceFiscale varchar(16)



	-- Recupero data congelamento SEI
	DECLARE @MONIT_INIT INT
	DECLARE @DataCongelamento DATETIME
    DECLARE @MONIT_ATTIV INT
	DECLARE @AGGR INT
	declare @contaCC as int
	declare @contapos as int

	SET @DataCongelamento = C6MartPeriodico.getDataCongelamento()
    SET  @MONIT_ATTIV=0
	SET	 @MONIT_INIT = 0

  

    SELECT @Index = 1
 
    INSERT INTO @tab(rete,codicefiscale,totCC,totNoCC)
    select rete,cod_fiscale
	,sum ( case when tipo_prodotto ='CC' then tot else 0 end ) as cc 
	,sum ( case when tipo_prodotto <>'CC' then tot else 0 end ) as nocc 
	from 
	( select rete,cod_fiscale,tipo_prodotto,count(*) tot
	  from c6martperiodico.patrimonio_Bf
	  --where cod_fiscale = @codiceFiscale and rete = @rete
	  group by rete,cod_fiscale,tipo_prodotto
	) as gr
	group by rete,cod_fiscale
   
   
    SELECT @RecordCnt = COUNT(id) FROM @tab
   
    WHILE (@Index <= @RecordCnt)
    BEGIN           
            SELECT  @rete=rete
				    ,@codicefiscale=codicefiscale
				    ,@contacc=totCC
				    ,@contapos=totNoCC 
		    FROM @tab WHERE id = @Index
            
    SELECT @MONIT_INIT = COUNT(*)
	FROM
	C6MARTPERIODICO.MONITORAGGIO_INIZIALE
	WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale


    SELECT @MONIT_ATTIV=COUNT(*)
    FROM 
    C6MARTPERIODICO.MONITORAGGIO_ATTUALE
    WHERE 
    		RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale

	SELECT @AGGR=COUNT(*)
    FROM 
    C6MARTPERIODICO.RISCHIO_AGGREGATO
    WHERE
			RETE = @Rete AND
		    COD_FISCALE = @CodiceFiscale      
            
            
        IF (@MONIT_ATTIV > 0 AND @AGGR > 0 AND @MONIT_INIT > 0)
    

    BEGIN


   

	-- Attivazione monitoraggio

-- nuova versione da testare
insert into c6martperiodico.tb_S80BisEvoluzioneRischio	 
	SELECT
	@rete,
	@codicefiscale,
		1 AS Fase,
		INI.DATA_FOTO AS DataFase,
		INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
			ELSE ROUND(INI.VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		INI.VAR_COPERTURA AS Copertura,
        INI.RISKCLASS,
        INI.RISKCLASSMAX,
		case 
			when INI.RISKCLASS is null  then 'n.d.'
			when INI.RISKCLASS = 0 then 'n.a.'	
			else null
		end as RiskClassString,
		
		case 
			when INI.RISKCLASSMAX is null then 'n.d.'
			when INI.RISKCLASSMAX = 0 then 'n.a.'
			else null
		end as RiskClassMaxString
		
	
		
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        LEFT OUTER  join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		INI.RETE = @Rete AND
		INI.COD_FISCALE = @CodiceFiscale

--	SELECT
--		1 AS Fase,
--		INI.DATA_FOTO AS DataFase,
--		INI.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
--		--V
--		CASE
--			WHEN INI.VAR_COMPLESSIVO IS NULL THEN INI.VAR_COMPLESSIVO
--			ELSE ROUND(INI.VAR_COMPLESSIVO,2)
--		END AS VarComplessivo,
--		INI.VAR_COPERTURA AS Copertura
--	FROM
--		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
--
--	WHERE
--		INI.RETE = @Rete AND
--		INI.COD_FISCALE = @CodiceFiscale


	UNION ALL

	-- Precedente invio report

	SELECT
	@rete,
	@codicefiscale,
		2 AS Fase,
		rep.DATA_INVIO AS DataFase,
		rep.VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN rep.VAR_COMPLESSIVO IS NULL THEN rep.VAR_COMPLESSIVO
			ELSE ROUND(rep.VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		rep.VAR_COPERTURA AS Copertura,
         rep.RISKCLASS,
         rep.RISKCLASSMAX,
		case when rep.RISKCLASS is null then 'n.a.'
			 else null
		end as RiskClassString,
		case when rep.RISKCLASSMAX is null then 'n.a.'
			 else null
		end as RiskClassMaxString
		
	FROM
		C6MartPeriodico.MONITORAGGIO_INIZIALE INI
        left outer join
        C6MartPeriodico.MONITORAGGIO_REPORT rep
        on 
        REP.RETE=INI.RETE
        AND 
        REP.COD_FISCALE=INI.COD_FISCALE
	WHERE
		rep.RETE = @Rete AND
		rep.COD_FISCALE = @CodiceFiscale
	AND INI.DATA_FOTO < ISNULL(REP.DATA_INVIO,cast('29991231' as datetime))
		and ISNULL(DATA_INVIO,cast('29991231' as datetime))<@datacongelamento


	UNION ALL

	-- Situazione corrente

	SELECT
	@rete,
	@codicefiscale,
		3 fase,
		CASE
			WHEN @DataCongelamento IS NULL THEN GETDATE()
			ELSE @DataCongelamento
		END AS DataFase,
		CR.MAX_VAR AS VarMassimoProfiloFinanziario,
		--V
		CASE WHEN RA.VAR_PERC_PTF IS NULL THEN 0.00
			 ELSE ROUND(RA.VAR_PERC_PTF,2)
		END  AS VarComplessivo,
		CASE
			WHEN (@contaPOS - @contaCC = 0 ) THEN 100
			ELSE isnull(RA.COPERTURA,0) 
		END AS Copertura,
-- TRINGALI MODIFICARE
       ra.creditrisk as RISKCLASS,
        mifid.riskclass as RISKCLASSMAX,
		case when ra.creditrisk is null then 'n.a.'
        else null end   as RiskClassString,
		case when  mifid.riskclass is null then 'n.a.'
              else null end as RiskClassMaxString
	FROM
        C6MartPeriodico.vPatrimonioBFAggregato AS BF
	INNER JOIN C6MartPeriodico.MIFID AS MIFID
		ON 	BF.RETE = MIFID.RETE
		AND BF.COD_FISCALE = MIFID.COD_FISCALE
	INNER JOIN C6MartPeriodico.CODIFICA_RISCHIO AS CR
		ON MIFID.PROFILO_ASS = CR.PROFILO
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
		ON 	RA.RETE = BF.RETE
		AND RA.COD_FISCALE = BF.COD_FISCALE
		AND RA.COD_AGGREG = 'COMPLESSIVO|BF'
	WHERE
		BF.RETE = @Rete AND
		BF.COD_FISCALE = @CodiceFiscale

END 

ELSE

BEGIN
 insert into c6martperiodico.tb_S80BisEvoluzioneRischio	 
 ( rete,codicefiscale,fase,datafase,VarMassimoProfiloFinanziario,VarComplessivo,Copertura)
	SELECT
	@rete,
	@codicefiscale,
		2 AS Fase,
		DATA_INVIO AS DataFase,
		VAR_MAX_PROFILO AS VarMassimoProfiloFinanziario,
		--V
		CASE
			WHEN VAR_COMPLESSIVO IS NULL THEN VAR_COMPLESSIVO
			ELSE ROUND(VAR_COMPLESSIVO,2)
		END AS VarComplessivo,
		VAR_COPERTURA AS Copertura
	FROM
		C6MartPeriodico.MONITORAGGIO_REPORT
	WHERE
1=2


END
    
    
    
    
    
    
    
    
    
    
    
            
       SELECT @Index = @Index + 1
    END
     SELECT count(*) FROM @testTab
END

GO
/****** Object:  StoredProcedure [dbo].[TrimTable]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[TrimTable]
	@table VARCHAR(128)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @sql NVARCHAR(MAX)

	SET @sql = 'SELECT *
INTO #Temp
FROM ' + @table + '
WHERE ID_ELAB = (
	SELECT MAX(ID_ELAB)
	FROM ' + @table +
')

TRUNCATE TABLE ' + @table +
'
INSERT INTO ' + @table + '
SELECT *
FROM #Temp

DROP TABLE #Temp'

EXEC sp_executesql @sql
END
GO
/****** Object:  StoredProcedure [dbo].[TrimWSEITables]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[TrimWSEITables]
	@data DECIMAL(9,0)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	DECLARE @ok BIT

	SET @ok = 0

	BEGIN TRAN

	-- WSEIAN

	SELECT *
	INTO #TEMPAN
	FROM C6StagingPeriodico.WSEIAN2
	WHERE DTTRIM = @data

	IF @@ROWCOUNT > 0
	BEGIN
		TRUNCATE TABLE C6StagingPeriodico.WSEIAN2

		INSERT INTO C6StagingPeriodico.WSEIAN2
		SELECT *
		FROM #TEMPAN

		SET @ok = 1
	END
	ELSE
		SET @ok = 0

	DROP TABLE #TEMPAN

	-- WSEICS

	SELECT *
	INTO #TEMPCS
	FROM C6StagingPeriodico.WSEICS
	WHERE DTTRIM = @data

	IF @@ROWCOUNT > 0
	BEGIN
		TRUNCATE TABLE C6StagingPeriodico.WSEICS

		INSERT INTO C6StagingPeriodico.WSEICS
		SELECT *
		FROM #TEMPCS

		SET @ok = 1
	END
	ELSE
		SET @ok = 0

	DROP TABLE #TEMPCS

	-- WSEIPV

	SELECT *
	INTO #TEMPPV
	FROM C6StagingPeriodico.WSEIPV
	WHERE DTTRIM = @data

	IF @@ROWCOUNT > 0
	BEGIN
		TRUNCATE TABLE C6StagingPeriodico.WSEIPV

		INSERT INTO C6StagingPeriodico.WSEIPV
		SELECT *
		FROM #TEMPPV

		SET @ok = 1
	END
	ELSE
		SET @ok = 0

	DROP TABLE #TEMPPV

	-- WSEIUL

	SELECT *
	INTO #TEMPUL
	FROM C6StagingPeriodico.WSEIUL
	WHERE DTTRIM = @data

	IF @@ROWCOUNT > 0
	BEGIN
		TRUNCATE TABLE C6StagingPeriodico.WSEIUL

		INSERT INTO C6StagingPeriodico.WSEIUL
		SELECT *
		FROM #TEMPUL

		SET @ok = 1
	END
	ELSE
		SET @ok = 0
	
	DROP TABLE #TEMPUL

	IF @ok = 1
		COMMIT TRAN
	ELSE
		ROLLBACK TRAN
END

GO
/****** Object:  StoredProcedure [dbo].[UPDATE_EVASIONE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[UPDATE_EVASIONE]

@idMetadato as int


AS
BEGIN
update dbo.RichiestaPdfStorico
set richiestaEvasa = 1
where idMetadato = @idMetadato

--select * from dbo.RichiestaPdfStorico

END

GO
/****** Object:  StoredProcedure [dbo].[usp_ExportImage]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[usp_ExportImage] (
   @PicName NVARCHAR (100)
   ,@ImageFolderPath NVARCHAR(1000)
   ,@Filename NVARCHAR(1000)
   )
AS
BEGIN
   DECLARE @ImageData VARBINARY (max);
   DECLARE @Path2OutFile NVARCHAR (2000);
   DECLARE @Obj INT
 
   SET NOCOUNT ON
 
   SELECT @ImageData = (
         SELECT convert (VARBINARY (max), PictureData, 1)
         FROM Pictures
         WHERE pictureName = @PicName
         );
 
   SET @Path2OutFile = CONCAT (
         @ImageFolderPath
         ,'\'
         , @Filename
         );
    BEGIN TRY
     EXEC sp_OACreate 'ADODB.Stream' ,@Obj OUTPUT;
     EXEC sp_OASetProperty @Obj ,'Type',1;
     EXEC sp_OAMethod @Obj,'Open';
     EXEC sp_OAMethod @Obj,'Write', NULL, @ImageData;
     EXEC sp_OAMethod @Obj,'SaveToFile', NULL, @Path2OutFile, 2;
     EXEC sp_OAMethod @Obj,'Close';
     EXEC sp_OADestroy @Obj;
    END TRY
    
 BEGIN CATCH
  EXEC sp_OADestroy @Obj;
 END CATCH
 
   SET NOCOUNT OFF
END
GO
/****** Object:  StoredProcedure [dbo].[usp_ImportImage]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_ImportImage] (
     @PicName NVARCHAR (100)
   , @ImageFolderPath NVARCHAR (1000)
   , @Filename NVARCHAR (1000)
   )
AS
BEGIN
   DECLARE @Path2OutFile NVARCHAR (2000);
   DECLARE @tsql NVARCHAR (2000);
   SET NOCOUNT ON
   SET @Path2OutFile = CONCAT (
         @ImageFolderPath
         ,'\'
         , @Filename
         );
   SET @tsql = 'insert into Pictures (pictureName, picFileName, PictureData) ' +
               ' SELECT ' + '''' + @PicName + '''' + ',' + '''' + @Filename + '''' + ', * ' + 
               'FROM Openrowset( Bulk ' + '''' + @Path2OutFile + '''' + ', Single_Blob) as img'
   EXEC (@tsql)
   SET NOCOUNT OFF
END
GO
/****** Object:  StoredProcedure [dbo].[UTIL_ESTRAI_COMPLEX_MODIFICATA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[UTIL_ESTRAI_COMPLEX_MODIFICATA]

as

select C.RETE,C.COD_FISCALE,D.EXPERIENCE,A.COD_INTERNO,A.COD_SOTTOPRODOTTO,C.TIPO_PRODOTTO,A.COD_ISIN,A.COMPLEX AS NEW_COMPLEX,
		B.COMPLEX AS OLD_COMPLEX		

from c6stagingperiodico.catitemref a
join c6staging.catitemref b --catalogo del giornaliero con complessità non modificata
on a.catalogueId = b.catalogueId
join c6martperiodico.patrimonio_bf c
on c.cod_prodotto = a.catalogueId
join c6martperiodico.mifid d
on c.cod_fiscale = d.cod_fiscale and c.rete = d.rete
where
	A.COD_INTERNO IN
	(
	'18',
	'19',
	'29',
	'35',
	'37',
	'38',
	'48',
	'49',
	'60',
	'BT',
	'ES',
	'FR',
	'FS',
	'FT',
	'FU',
	'GP',
	'KP',
	'OA',
	'PO',
	'PY',
	'SB',
	'PR',
	'PX',
	'SE',
	'SF',
	'SI',
	'ST',
	'SU',
	'K1',
	'K2',
	'K3',
	'K4',
	'K5',
	'K6',
	'K7'
	)

	OR

	(A.COD_INTERNO IN
		(
		'S1',
		'S2',
		'S3',
		'S4',
		'S5',
		'S6',
		'S7',
		'S8'
		)
		and A.cod_sottoprodotto not in ('20001','20002','20005','20008')
	)

	OR

	(	A.cod_interno in ('S1','S2','S4','S5','S8')
		and A.cod_sottoprodotto in ('20001','20002','20005','20008')
	)

	OR

	A.COD_INTERNO IN 
	(
	'A7',
	'A8'
	)

	OR

	A.COD_SOTTOPRODOTTO IN 
	(
	 '7149S'
	,'7145S'
	,'9968S'
	)

	OR

	A.COD_SOTTOPRODOTTO = '7146S'

	OR
	(
	A.COD_ISIN IN
	(
	 'DE000A0LJ552'
	,'DE000A0MG8R0'
	,'IT0004189368'
	,'GB00B1WVWP64'
	,'GB00B1Y3ZZ16'
	,'XS0354254111'
	,'GB00B2QM7Y61'
	,'XS0235278982'
	,'XS0179585186'
	)
	AND
	A.COD_INTERNO IN
	(
	 '00101740'
	,'09139480'
	,'09161420'
	,'00830060'
	,'09205930'
	,'00168130'
	,'08525040'
	,'08556110'
	,'09201230'
	)
	)

ORDER BY C.RETE,C.COD_FISCALE,D.EXPERIENCE desc

GO
/****** Object:  StoredProcedure [dbo].[Utility_Query_Incrocio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [dbo].[Utility_Query_Incrocio] (@cod_fis varchar(16) = '')
	
AS
BEGIN


declare @codicefiscale varchar(18)
declare @codicecontratto varchar(11)
declare @chiaveclientepb varchar(11)
declare @nomecognome varchar(255)
SET @nomecognome = ''
SET @chiaveclientepb = ''
set @codicecontratto = ''
set @codicefiscale = @cod_fis

select @codicefiscale=cod_fiscale from c6mart.anag_clienti where  nome+cognome   = @nomecognome  
select @codicefiscale=cod_fiscale from c6mart.vcontratti where  codicecontratto  = @codicecontratto  
select @codicefiscale=cod_fiscale  from c6mart.vcontratti where  chiaveclientepb  = @chiaveclientepb  
select CODICECONTRATTO,DATA_PERF,DATA_FINEAVANZATO,CASE TIP_CONTRATTO WHEN 0 THEN 'OLD' WHEN 1 THEN 'AFFLUENT' WHEN 2 THEN 'PRIVATE' ELSE 'ERR' END AS TIPOCONTRATTO,CASE RIATTIVAZIONE WHEN 1 THEN 'RIATTIVAZIONE' WHEN 2 THEN 'UPGRADE' ELSE '' END AS RIATTIVAZIONE,RETE,* from c6mart.vcontratti where cod_fiscale = @codicefiscale  
select CHIAVECLIENTEPB, ClienteMIGRATO, RISORSENA, PROFILOATTIVO, InvioBenvenuto, NumSolleciti, NumRevoche, CASE TIP_CONTRATTO WHEN 0 THEN 'OLD' WHEN 1 THEN 'AFFLUENT' WHEN 2 THEN 'PRIVATE' ELSE 'ERR' END AS TIPOCONTRATTO,CASE TIP_RIATTIVAZIONE WHEN 1 THEN 'RIATTIVAZIONE' WHEN 2 THEN 'UPGRADE' ELSE '' END AS RIATTIVAZIONE , Data_ultimoSollecito ,Data_ultimaRevoca from c6mart.contrattosei_metadati where chiaveclientepb = (select chiaveclientepb from c6mart.vcontratti where cod_fiscale = @codicefiscale) 
select * from c6mart.gestione_pdf_ftp where codicefiscale = @codicefiscale
select * from c6mart.gestione_email where cod_fiscale = @codicefiscale
select * from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_STAMPAREPORT where codicecontratto in (select CODICECONTRATTO from c6mart.vcontratti where cod_fiscale = @codicefiscale) 
select * from c6mart.test_quality where cod_fiscale = @codicefiscale
select * from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_HistDatiIngresso h where h.TRCOM_CODFISC=@codicefiscale or h.TRCOM_MANDATO=substring(@codicefiscale,4,4) order by 2
select * from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_Scarti h where h.TRCOM_CODFISC=@codicefiscale or h.TRCOM_MANDATO=substring(@codicefiscale,4,4) order by 2




End
GO
/****** Object:  StoredProcedure [dbo].[VerificaAllMassGior]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		Luca di Chiara
-- Create date: 29/07/2024
-- Description:	Procedura per il controllo del buon esito dell'allineamento maiisvo propedeutico alle lettere di benvenuto
-- =============================================
CREATE PROCEDURE [dbo].[VerificaAllMassGior] 
	-- Add the parameters for the stored procedure here

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

    -- Insert statements for procedure here
		Declare @ELABORAZIONE_CONCLUSA bit =0
		declare @InizioVerifica datetime = getdate()
		declare @dtinizio datetime 
		declare @stato varchar(20) =''
		
			--Prima di eseguire il primo check attendo 2 minuti
			--per dare tempo al precedente dtsx di inserire un nuovo record nella logbatch generale
			--se non attendo il rischio è che nel successivo controllo sulla logbatchgenerale, 
			--venga preso in considerazione il record relativo ad un'esecuzione precedente

			WAITFOR DELAY '00:02:00'
			print '... sleep 2 ...'
		WHILE @ELABORAZIONE_CONCLUSA = 0
		BEGIN

			RAISError(N'', 0, 1) WITH NOWAIT

			-- si aspetta al massimo 15 minuti per il termine dell'allineamento massivo dopodiche si manda in errore

			if  datediff(  minute,  @InizioVerifica  , getdate()) >  15
			  Begin
				select * from MandaInErrore
				print 'Superato tempo limite per attendere la conclusione dell''elaborazione dell allineamentomassivo, interrompiamo'
			  End
			Else
			  Begin

					select top 1 @dtinizio = dtesecuzione, @stato = stato from consuni.consulenzaunicafl.dbo.logbatchgenerale where nomebatch like 'AllineamentoMassivoGiornaliero' order by dtesecuzione desc

				    if datediff(  minute,  @dtinizio  , getdate()) <= 15 AND @STATO = 'OK' 
						BEGIN
							SET @ELABORAZIONE_CONCLUSA = 1
						END		 
			  END

			-- attesa di 20 secondi
			WAITFOR DELAY '00:00:10'
			print '... aspetto 10 secondi prima di ricontrollare ...'

		END
END
GO
/****** Object:  StoredProcedure [dbo].[vinfocliente]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



 

--[CERCA] '%COD%','P','c6martperiodico'
CREATE procedure  [dbo].[vinfocliente]
   @cf VARCHAR(16)
    
	
AS
BEGIN

 SELECT *
    FROM consuni.consulenzaunica.dbo.vinfocliente
    WHERE codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf)) or codicecontratto=@cf

 SELECT chiaveclientepb,codicecontratto
	into #chpb
    FROM consuni.consulenzaunica.dbo.vinfocliente
    WHERE codfis = @cf or piva=@cf or codman=SUBSTRING(@cf,4,len(@cf)) or codicecontratto=@cf

select * from consuni.consulenzaunica.dbo.contratto where chiaveclientepb in (SELECT chiaveclientepb
	from #chpb)

 SELECT *
    FROM consuni.consulenzaunicafl.dbo.cbs_histdatiingresso where trcom_codconf in (SELECT codicecontratto
	from #chpb) order by 1 desc

END
GO
/****** Object:  StoredProcedure [level2martperiodico].[DM_PatrimonioBFAggregato]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [level2martperiodico].[DM_PatrimonioBFAggregato]  
  
AS  
  
truncate table [level2martperiodico].[PatrimonioBFAggregato]  
  
insert into [level2martperiodico].[PatrimonioBFAggregato]  
  
SELECT     PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE,   
   SUM(CTV) as CTV,  
   sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,  
   sum(case Upper(id_area) when 'CC' then ctv else 0 end ) as ContoCorrente,  
   sum(case Upper(id_area) when 'CC' then 0 else ctv end ) as PatrimonioSenzaCC,  
   --MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv,  
   sum((isnull([C6MartPeriodico].PATRIMONIO_BF.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv  
  
  
FROM         [C6MartPeriodico].PATRIMONIO_BF  
  
GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE  
  
  
  
  
GO
/****** Object:  StoredProcedure [level2martperiodico].[DM_PatrimonioBFAggregato_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [level2martperiodico].[DM_PatrimonioBFAggregato_pre_selective]

AS

truncate table [level2martperiodico].[PatrimonioBFAggregato]

insert into [level2martperiodico].[PatrimonioBFAggregato]

SELECT     PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE, 
			SUM(CTV) as CTV,
			sum(case Upper(id_area) when 'NA' then ctv else 0 end ) as PatrimonioNonAssociato,
			sum(case Upper(id_area) when 'CC' then ctv else 0 end ) as ContoCorrente,
			sum(case Upper(id_area) when 'CC' then 0 else ctv end ) as PatrimonioSenzaCC,
			--MAX((isnull(PART_VIAGG.PARTVIA_INV,0))) as PartiteViaggiantiInv,
			sum((isnull([C6MartPeriodico].PATRIMONIO_BF.PARTVIA_DISINV,0))) as PartiteViaggiantiDisinv


FROM         [C6MartPeriodico].PATRIMONIO_BF

GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE




GO
/****** Object:  StoredProcedure [level2martperiodico].[DM_PatrimonioNonRappresentabileAsset]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [level2martperiodico].[DM_PatrimonioNonRappresentabileAsset]  
AS  
  
truncate table [level2martperiodico].[PatrimonioNonRappresentabileAsset]  
  
  
insert into [level2martperiodico].[PatrimonioNonRappresentabileAsset]  
  
SELECT    
   RETE,  
   COD_FISCALE,  
   --SUM(Controvalore) as Controvalore  
   SUM( cast(Controvalore as decimal(15,3))) as Controvalore  
  
  
 FROM (  
   SELECT    
     PATRBF.RETE,  
     PATRBF.COD_FISCALE,  
     PATRBF.CTV as Controvalore  
   FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF  
   INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP  
    ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO  
   LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC   
    ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO  
    AND ASSETPERC.LIVELLO = 1  
   WHERE  
    PATRBF.TIPO_PRODOTTO NOT IN ('ASUL','CC')  
    AND ASSETPERC.COD_PRODOTTO IS NULL  
   UNION ALL  
--   SELECT    
--     PATRBF.RETE,  
--     PATRBF.COD_FISCALE,  
--     ASUL.CTV as Controvalore  
--   FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF  
--   INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP  
--    ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO  
--   INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL  
--    ON PATRBF.RETE = ASUL.RETE  
--     AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE  
--     AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO  
--   LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC  
--    ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
--    AND ASSETPERC.LIVELLO = 1  
--   WHERE   
--    PATRBF.TIPO_PRODOTTO = 'ASUL'  
--    AND ASSETPERC.COD_PRODOTTO IS NULL  
  
  
--  
SELECT  ASUL.RETE,  
            ASUL.COD_FISCALe,  
   ASUL.CTV*isnull(ASSETPERC.PERC,1) as Controvalore  
  FROM   
   C6MartPeriodico.DETTAGLIO_ASUL ASUL  
  left JOIN   
   C6MartPeriodico.ASSET_PERC ASSETPERC  
   ON   
             (  
    ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO  
    ---no SKANDIA  
    AND ASUL.COD_ISIN_SOTT = ''  
    AND ASSETPERC.LIVELLO = 1  
              )  
           or  
    (  --SKANDIA  
   ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT  
   AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT  
   AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO  
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO  
   AND ASSETPERC.LIVELLO = 1  
    )  
  WHERE  
  
  ASSETPERC.COD_PRODOTTO IS NULL  
  
  
  
  
  
  
  
  
  
  
  
 ) PATR_NO_RAPPR  
 GROUP BY   
   RETE,  
   COD_FISCALE  
  
GO
/****** Object:  StoredProcedure [level2martperiodico].[DM_PatrimonioNonRappresentabileAsset_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [level2martperiodico].[DM_PatrimonioNonRappresentabileAsset_pre_selective]
AS

truncate table [level2martperiodico].[PatrimonioNonRappresentabileAsset]


insert into [level2martperiodico].[PatrimonioNonRappresentabileAsset]

SELECT 	
			RETE,
			COD_FISCALE,
			--SUM(Controvalore) as Controvalore
			SUM( cast(Controvalore as decimal(15,3))) as Controvalore


	FROM (
			SELECT 	
					PATRBF.RETE,
					PATRBF.COD_FISCALE,
					PATRBF.CTV as Controvalore
			FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
			INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
			LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
				ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
			WHERE
				PATRBF.TIPO_PRODOTTO NOT IN ('ASUL','CC')
				AND ASSETPERC.COD_PRODOTTO IS NULL
			UNION ALL
--			SELECT  
--					PATRBF.RETE,
--					PATRBF.COD_FISCALE,
--					ASUL.CTV as Controvalore
--			FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
--			INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
--				ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
--			INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
--				ON PATRBF.RETE = ASUL.RETE
--					AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
--					AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
--			LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
--				ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
--				AND ASSETPERC.LIVELLO = 1
--			WHERE 
--				PATRBF.TIPO_PRODOTTO = 'ASUL'
--				AND ASSETPERC.COD_PRODOTTO IS NULL


--
SELECT		ASUL.RETE,
            ASUL.COD_FISCALe,
			ASUL.CTV*isnull(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE

		ASSETPERC.COD_PRODOTTO IS NULL











	) PATR_NO_RAPPR
	GROUP BY 
			RETE,
			COD_FISCALE

GO
/****** Object:  StoredProcedure [level2martperiodico].[DM_PatrimonioTerziAggregato]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

  
CREATE procedure [level2martperiodico].[DM_PatrimonioTerziAggregato]  
AS  
  
  
-- Log esecuzione  
 INSERT INTO LOG_ESECUZIONE_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'level2martperiodico.DM_PatrimonioTerziAggregato',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
  
truncate table [level2martperiodico].PatrimonioTerziAggregato  
  
insert into [level2martperiodico].PatrimonioTerziAggregato  
  
SELECT  
 RETE,  
 COD_FISCALE,  
 SUM(ROUND(CTV, 2)) AS CTV,  
 SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END, 2))  AS ControvaloreSenzaCC,  
 SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN CTV ELSE 0 END, 2)) AS ControvaloreCC,  
 count(DISTINCT INTERMEDIARIO) as NumeroIntermediari  
  
FROM  
 C6MartPeriodico.PATRIMONIO_TERZI  
GROUP BY  
 RETE,  
 COD_FISCALE  
  
  
  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'level2martperiodico.DM_PatrimonioTerziAggregato' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'level2martperiodico.DM_PatrimonioTerziAggregato'  
  )  
  
  
  

GO
/****** Object:  StoredProcedure [level2martperiodico].[DM_PatrimonioTerziAggregato_pre_selective]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [level2martperiodico].[DM_PatrimonioTerziAggregato_pre_selective]
AS


-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'level2martperiodico.DM_PatrimonioTerziAggregato_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)

truncate table [level2martperiodico].PatrimonioTerziAggregato

insert into [level2martperiodico].PatrimonioTerziAggregato

SELECT
	RETE,
	COD_FISCALE,
	SUM(ROUND(CTV, 2)) AS CTV,
	SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN 0 ELSE CTV END, 2))  AS ControvaloreSenzaCC,
	SUM(ROUND(CASE WHEN TIPO_PRODOTTO = 'Conti correnti' THEN CTV ELSE 0 END, 2)) AS ControvaloreCC,
	count(DISTINCT INTERMEDIARIO) as NumeroIntermediari

FROM
	C6MartPeriodico.PATRIMONIO_TERZI
GROUP BY
	RETE,
	COD_FISCALE



	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'level2martperiodico.DM_PatrimonioTerziAggregato_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'level2martperiodico.DM_PatrimonioTerziAggregato_pre_selective'
		)



GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO











-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE     procedure [wh].[MERGED_PROCEDURE]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------

----------------------------------------------
--maledetti
declare @data varchar(8)

set @data=c6martperiodico.getPreviousTrimestre(getDate(),0)

begin

truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )
SELECT 
 DISTINCT
                    contratti.Cod_Fiscale as i_CodiceFiscale
                    ,contratti.Rete as i_Rete
                    --DATI COMUNI
                    --RETE
                    ,contratti.Rete
                    ,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Inv.' 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
                    ,case when contratti.tip_contratto in (0,1,2)
					 then 2 else 3 end  AS tip_contratto 
                    ,0 AS contrattoold
                    --*************************************************
                    ,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
                    ,'Diagnosi' as descrizioneDiagnosi
                    ,-1 AS idModelloDiagnosi
                    ,-1 AS idReportDiagnosi
                    ,'Monitoraggio' as descrizioneMonitoraggio
                    ,4 as idReportMonitoraggio--4
                    ,CASE isnull(tip_contratto,0) 
                                 WHEN 0 THEN 13--12
                                 WHEN 1 THEN 13--12
                                 WHEN 2 THEN 13--13
								 WHEN 3 THEN 6 -- Fideuram Direct
                    END 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 
                    ,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
             left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
                    on contratti.Rete = promotori.Rete
                    and contratti.Cod_Agente = promotori.Id_Promotore
                    --65992
             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
                    on contratti.Rete = patrimonioBF.Rete
                    and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
                    -- 64864

             left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
                    on contratti.Rete = patrimonioAltro.Rete
                    and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
                    --64864

             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
                    --64864
                    
             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
                    --64864
             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'
                    --modificata da Valerio 12 marzo 2012
                    --left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
             inner 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'
                    --64864
                    
                                 
             left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
                    on contratti.Rete = PARTITEVIAGGIANTI.RETE
                    and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
                    --64864

             
             left join (
                    select distinct monit.rete, monit.cod_fiscale, 
                     case when isnull(monitInit.data_foto,getDate()) >= @data then 1      -- case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 pre 01/10/2022
                           when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
                    from c6martperiodico.monitoraggio_attuale monit
                           left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
                           left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
                    ) monit
                    on patrimonioBF.rete = monit.rete
                    and patrimonioBF.cod_fiscale = monit.cod_fiscale     

             WHERE 1=1
             --144104
		end	
-------------------------------------------------------------------------

--update 
--  [C6MartPeriodico].[ANAG_CLIENTI]
--  set cognome = 'SOCIETA'' ITALIANA DI REVISIONE E FIDUCIARIA',nome = ''
--  where cognome = 'SOCIETA'' ITALIANA DI REVISIONE E FIDUCIARIA'

--update 
--wh.maledetti 
--set cognomeCliente = 'SOCIETA'' ITALIANA DI REVISIONE E FIDUCIARIA' 
--where 
--cognomeCliente = 'SOCIETA'' ITALIANA DI REVI'

--aggiornamento 21/12/2022
  update 
  [C6MartPeriodico].[ANAG_CLIENTI]
  set cognome = 'SOCIETA ITALIANA DI REVISIONE E FIDUCIARIA S.P.A',nome = ''
  where --cognome like '%SOCIETA ITALIANA DI REVI%'
  cognome like '%SOCIET%' and cognome like '%ITA%' and cognome like '%REV%'

update 
wh.maledetti 
set cognomeCliente='SOCIETA ITALIANA DI REVISIONE E FIDUCIARIA S.P.A', NomeCliente=''--'-'+' '+SUBSTRING(i_CodiceFiscale, 4,LEN(i_codiceFiscale)) 
where --i_codicefiscale = 'FF@10724'
  CognomeCliente like '%SOCIET%' and CognomeCliente like '%ITA%' and CognomeCliente like '%REV%'


END














--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE]    Script Date: 08/02/2022 17:22:24 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO



---- =============================================
---- Author:		<Author,,Name>
---- Create date: <Create Date,,>
---- Description:	<Description,,>
---- =============================================
--ALTER procedure [wh].[MERGED_PROCEDURE]
--AS
--BEGIN
--	SET NOCOUNT ON;
-----------------------------------------------------------------------

------------------------------------------------
----maledetti
--begin

--truncate table 	wh.Maledetti

--insert into wh.Maledetti --70 minutes
--(
--[i_CodiceFiscale]
--      ,[i_Rete]
--      ,[Rete]
--      ,[NomeRete]
--      ,[Agente]
--      ,[CognomeAgente]
--      ,[NomeAgente]
--      ,[IndirizzoAgente]
--      ,[CapAgente]
--      ,[CittaAgente]
--      ,[TelefonoAgente]
--      ,[CodiceFiscale]
--      ,[CognomeCliente]
--      ,[NomeCliente]
--      ,[ProfiloIsAct]
--      ,[PatrimonioNonRappresentabile]
--      ,[PartiteViaggiantiDisinv]
--      ,[PartiteViaggiantiInv]
--      ,[ContoCorrente]
--      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
--      ,[RisorseNonAssociate]
--      ,[Patrimonioaltroctv]
--      ,[Patrimonioimmobiliarectv]
--      ,[PatrimonioTerzictv]
--      ,[PatrimonioTerziCtvAlNettoContoCorrente]
--      ,[PatrimonioTerziContoCorrente]
--      ,[Patrimoniobancafideuramctv]
--      ,[Patrimoniocomplessivototalectv]
--      ,[NumeroIntermediari]
--      ,[CodiceContratto]
--      ,[tip_contratto]
--      ,[contrattoold]
--      ,[NoMonitoraggio]
--      ,[descrizioneDiagnosi]
--      ,[idModelloDiagnosi]
--      ,[idReportDiagnosi]
--      ,[descrizioneMonitoraggio]
--      ,[idReportMonitoraggio]
--      ,[idModelloMonitoraggio]
--      ,[AdesioneSuccessivaAvanzato]
--      ,[VaRRisorseNonAssociate]
--      ,[CoperturaRisorseNonAssociate]
--      ,[VaRTotaleRisorseFinanziarie]
--      ,[CoperturaTotaleRisorseFinanziarie]
--      ,[IdReportPDFDiagnosi]
--      ,[IdReportPDFMonitoraggio]
--	  ,scaduto
--	  )
--SELECT 
-- DISTINCT
--                    contratti.Cod_Fiscale as i_CodiceFiscale
--                    ,contratti.Rete as i_Rete
--                    --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
--                    --*************************************************
--                    ,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
--                    ,'Diagnosi' as descrizioneDiagnosi
--                    ,CASE 
--                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
--                           ELSE -1
--                    END AS idModelloDiagnosi
--                    ,CASE 
--                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
--                           ELSE -1
--                    END AS idReportDiagnosi
--                    ,'Monitoraggio' as descrizioneMonitoraggio
--                    ,4 as idReportMonitoraggio--4
--                    ,CASE isnull(tip_contratto,0) 
--                                 WHEN 0 THEN 12--12
--                                 WHEN 1 THEN 12--12
--                                 WHEN 2 THEN 13--13
--                    END 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 
--                    ,mifid.scaduto
--             FROM  [C6MartPeriodico].contrattoSEI contratti
--             left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
--                    on contratti.Rete = promotori.Rete
--                    and contratti.Cod_Agente = promotori.Id_Promotore
--                    --65992
--             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
--                    on contratti.Rete = patrimonioBF.Rete
--                    and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
--                    -- 64864

--             left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
--                    on contratti.Rete = patrimonioAltro.Rete
--                    and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
--                    --64864

--             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
--                    --64864
                    
--             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
--                    --64864
--             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'
--                    --modificata da Valerio 12 marzo 2012
--                    --left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
--             inner 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'
--                    --64864
                    
                                 
--             left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--                    on contratti.Rete = PARTITEVIAGGIANTI.RETE
--                    and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--                    --64864

             
--             left join (
--                    select distinct monit.rete, monit.cod_fiscale, 
--                           case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
--                           when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
--                    from c6martperiodico.monitoraggio_attuale monit
--                           left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
--                           left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
--                    ) monit
--                    on patrimonioBF.rete = monit.rete
--                    and patrimonioBF.cod_fiscale = monit.cod_fiscale     

--             WHERE 1=1
--             --144104
--		end	
---------------------------------------------------------------------------
--END


GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_20160709_byen]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [wh].[MERGED_PROCEDURE_20160709_byen]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.pl_d2_s169rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d_s170rischiodiversificazione
------------------------------------------------------------------------

-------------------------------------------PL_S82DatiSintetici
INSERT INTO WH.PL_S82DatiSintetici
SELECT 'C6MartPeriodico.PL_S82DatiSintetici' as ProcedureName, PATRAREA.RETE as i_rete ,PATRAREA.COD_FISCALE as i_codiceFiscale,	
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

-------------------------------------------------------------------------

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

SELECT
       [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6MartPeriodico].[PIRAMIDE_MOD]
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
INSERT INTO WH.PL_S85RendimentoPortafoglioCono
SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END
-------------------------------------------------------------------------

-------------------------------------------pl_areemonitorate
BEGIN

INSERT INTO WH.PL_AreeMonitorate
SELECT 'C6MartPeriodico.PL_AreeMonitorate' as ProcedureName, [RETE] as i_rete ,[COD_FISCALE] as i_codiceFiscale, 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
	    PIRMOD.RETE AS RETE,
		PIRMOD.COD_FISCALE as COD_FISCALE,
		PIRMOD.ID_AREA AS Need_Area,		
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA	
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
	    PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
		PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

  

) A

GROUP BY
RETE,
COD_FISCALE,
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END
-------------------------------------------------------------------------

-------------------------------------------PL_S43LineaSelfBF
BEGIN
	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		isnull(ctv,0) < 0
END
-------------------------------------------------------------------------

-------------------------------------------PL_S10PatrimonioFinanziario
BEGIN
	
	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  order by ordinamento
END 
-------------------------------------------------------------------------

-------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
BEGIN

INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
	SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1	
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END
-------------------------------------------------------------------------

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

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)

	INSERT INTO WH.PL_D2_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, M.RETE as i_rete, M.COD_FISCALE as i_codiceFiscale,
	
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) as dataInizioValidita,
		CR.MAX_VAR as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		ProfiliDiRischio.NOMEPROFILO  as nomeProfilo,
        m.riskclass as riskclass,
        m.experience as experince
	FROM	
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s152patrimonio
BEGIN
if object_id('tempdb..#PatrimonioBF') is not null
   drop table #PatrimonioBF	
   
if object_id('tempdb..#Part_viaggianti') is not null
   drop table #Part_viaggianti	

if object_id('tempdb..#PatrimonioTerzi') is not null
   drop table #PatrimonioTerzi
   	
if object_id('tempdb..#PatrimonioImmobiliare') is not null
   drop table #PatrimonioImmobiliare

if object_id('tempdb..#PatrimonioAltro') is not null
   drop table #PatrimonioAltro
   
if object_id('tempdb..#merge') is not null
   drop table #merge

SELECT SUM(CTV) as Value, patrBF.Rete,  patrBF.Cod_Fiscale
into #PatrimonioBF
             FROM C6MartPeriodico.PATRIMONIO_BF patrBF
             WHERE patrBF.id_area not in ('CC','SELF')  
             group by patrBF.Cod_Fiscale, patrBF.Rete


       SELECT SUM(IMPORTO) as Value, Rete, Cod_Fiscale
       into #Part_viaggianti 
             FROM
             (
                           SELECT SUM(IMPORTO) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
                           union 
                           SELECT SUM(PARTVIA_DISINV) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.patrimonio_bf partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
             ) T
             group by  Rete, Cod_Fiscale
     
    SELECT SUM(ROUND(CTV,2)) as Value, patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
                    into #PatrimonioTerzi
             FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
             group by patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
             
             

       SELECT SUM(patrImm.VALORE_STIMATO) as Value,
       patrImm.Rete, patrImm.Cod_Fiscale
       into #PatrimonioImmobiliare
             FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
             group by patrImm.Rete, patrImm.Cod_Fiscale
             
       SELECT SUM(patrAltro.ctv) as Value, patrAltro.Rete, patrAltro.Cod_Fiscale
       into #PatrimonioAltro
             FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
             group by patrAltro.Rete, patrAltro.Cod_Fiscale


             select distinct rete, cod_fiscale
             into #merge
             from
             (
                    select rete, cod_fiscale from #PatrimonioBF UNION ALL
                    select rete, cod_fiscale from #PatrimonioTerzi UNION ALL
                    select rete, cod_fiscale from #Part_viaggianti  UNION ALL
                    select rete, cod_fiscale from #PatrimonioImmobiliare UNION ALL
                    select rete, cod_fiscale from  #PatrimonioAltro
             )x

			 truncate table WH.pl_d2_s152patrimonio	

             ;with data as
             (
             select m.rete, m.cod_fiscale, 
                    cast(COALESCE(a.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as PatrimonioBF,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as FinanziarioCTV,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00)+COALESCE(d.value,0.00)+COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioTotale,
                    cast(COALESCE(b.value,0.00) as numeric(18,2)) as PatrimonioTerziCTV,
                    cast(COALESCE(d.value,0.00) as numeric(18,2)) as PatrimonioImmobiliare,
                    cast(COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioAltro
             from #merge m
                    left join #PatrimonioBF a                  on a.rete = m.rete and a.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioTerzi b               on b.rete = m.rete and b.cod_fiscale = m.cod_fiscale
                    left join #Part_viaggianti c               on c.rete = m.rete and c.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioImmobiliare d         on d.rete = m.rete and d.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioAltro e           on e.rete = m.rete and e.cod_fiscale = m.cod_fiscale
                    )

					
		INSERT INTO WH.pl_d2_s152patrimonio		
	    SELECT  'C6MartPeriodico.pl_d2_s152patrimonio' as ProcedureName, rete as i_rete, cod_fiscale as i_codiceFiscale,
                    PatrimonioBF, 
                    PatrimonioTerziCTV,
                    FinanziarioCTV,
                    CONVERT(decimal(6,2),
                           case when PatrimonioTotale = 0.00 then 0.00 
                           else FinanziarioCTV / PatrimonioTotale end 
                    * 100.00) AS FinanziarioPerc,
                    PatrimonioImmobiliare,
                    CONVERT(decimal(6,2),
                           case  when PatrimonioTotale = 0.00 then 0.00 
                           else PatrimonioImmobiliare/PatrimonioTotale end 
                            
                    * 100.00) AS ImmobiliarePerc,
                    PatrimonioAltro,
                    CONVERT(decimal(6,2),
                           case PatrimonioTotale when 0.00 then 0.00 
                           else PatrimonioAltro/PatrimonioTotale end
                           
                    * 100.00) AS AltroPerc,
                    PatrimonioTotale as TotaleCTV
                    from data


END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S153PatrimonioFinanziario
BEGIN
	INSERT INTO WH.PL_D2_S153PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, Rete as i_rete, Cod_Fiscale as i_codiceFiscale, 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
		    Rete,
			Cod_Fiscale,
			Intermediario,
			Ordine,
			CASE Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_fiscale) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_Fiscale)) / 
				wh.IsZero((SUM(ctv) over (partition by 'Totale'+Rete+Cod_fiscale)),1)
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
			    patrBF.Rete as Rete,
				patrBF.Cod_Fiscale as Cod_Fiscale,
				CASE patrBF.Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1				
					and patrBF.id_area  not in ('CC','SELF')
				GROUP BY patrBF.Rete, patrBF.Cod_Fiscale
			UNION ALL

			SELECT 
			    patrTerzi.Rete as Rete,
				patrTerzi.Cod_Fiscale as Cod_Fiscale,
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
				GROUP BY patrTerzi.Intermediario, patrTerzi.Rete, patrTerzi.Cod_Fiscale

		) PATR
		GROUP BY Cod_Fiscale, Rete, intermediario, ordine, ctv
	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S154PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S154PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2) as decimal(38,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),0)
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 

		UNION ALL
	
		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL
		--CON SKANDIA
		SELECT 
				ASUL.RETE AS RETE,
				ASUL.COD_FISCALE as COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
		    PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	--GROUP BY RETE, COD_FISCALE, ASSETCLASS.ordinamento, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE
		
) A
--GROUP BY RETE, COD_FISCALE, A.BANCA, A.ORDINAMENTO, A.ASSETCLASSID, A.ASSETCLASSNAME, A.CONTROVALORE, A.PERCENTUALE
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S155PatrimonioImmobiliare
BEGIN

INSERT INTO WH.PL_D2_S155PatrimonioImmobiliare
	SELECT 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare' as ProcedureName, PATRIMONIO_IMMOBILIARE.RETE as i_rete, PATRIMONIO_IMMOBILIARE.COD_FISCALE as i_codiceFiscale,	
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	GROUP BY PATRIMONIO_IMMOBILIARE.RETE, PATRIMONIO_IMMOBILIARE.COD_FISCALE, PATRIMONIO_IMMOBILIARE.descrizione, PATRIMONIO_IMMOBILIARE.TIPOLOGIA, PATRIMONIO_IMMOBILIARE.LOCALITA, PATRIMONIO_IMMOBILIARE.AFFITTO, PATRIMONIO_IMMOBILIARE.VALORE_STIMATO
	ORDER BY PATRIMONIO_IMMOBILIARE.valore_stimato DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S156ALtroPatrimonio
BEGIN
	INSERT INTO WH.PL_D2_S156ALtroPatrimonio
	SELECT 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio' as ProcedureName, PATRIMONIO_ALTRO.RETE as i_rete, PATRIMONIO_ALTRO.COD_FISCALE as i_codiceFiscale,	
	 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale',PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE ) as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
		GROUP BY PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE, PATRIMONIO_ALTRO.DESCRIZIONE, PATRIMONIO_ALTRO.QUANTITA, PATRIMONIO_ALTRO.CTV 
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S157ConfrontoPiramidi
BEGIN
INSERT INTO WH.PL_D2_S157ConfrontoPiramidi
SELECT 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi' as ProcedureName, RETE as i_rete, [CodiceFiscale] as i_codiceFiscale,	
	 [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
  where [CodiceFiscale] is not null and [Rete] is not null
  order by ordinamento

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S158PiramideModello
BEGIN
INSERT INTO WH.PL_D2_S158PiramideModello
SELECT 'C6MartPeriodico.PL_D2_S158PiramideModello' as ProcedureName, BF.RETE as i_rete, BF.COD_FISCALE as i_codiceFiscale,	
		  BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF, BF.RETE, BF.COD_FISCALE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S159PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S159PatrimonioFinanziario
SELECT 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,

	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) AS Controvalore,
	cast(A.Percentuale  as decimal(38,6)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2)  as decimal(38,6))  AS Totale
FROM 
(		
	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')

		UNION ALL
		

		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL

		SELECT  ASUL.RETE AS RETE,
				ASUL.COD_FISCALE AS COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore				
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--group by RETE, COD_FISCALE, a.banca, a.ordinamento, a.assetclassid, a.assetclassname, a.controvalore, a.percentuale
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S160DettaglioProdottiBF
BEGIN

INSERT INTO WH.PL_D2_S160DettaglioProdottiBF
SELECT 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp2
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ' and
		tmp2.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP2.RETE = PATRBF.RETE) = (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp3
	WHERE  ID_AREA = 'LIQ' and tmp3.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP3.RETE = PATRBF.RETE) and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1 and
	PATRBF.CTV <>0

--GROUP BY PATRBF.COD_FISCALE, PATRBF.RETE, AREA.ID_AREA, AREA.NOME_AREA, AREA.ORDINAMENTO, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO, PATRBF.CTV,
--	MONIT.MINUS_PLUSVALENZA, RISCHIO_AGGR_PROG.COPERTURA, RISCHIO_AGGR_PROG.VAR_PERC_PTF, RISCHIO_AGGR_AREA.VAR_PERC_PTF, RISCHIO_AGGR_AREA.COPERTURA,
--	PATRBF.DATA_SOTTOSCRIZIONE, PATRBF.ID_CONTRATTO, PATRBF.TIPO_PRODOTTO, ANAGPROD.DESCR_PRODOTTO, ANAG_CC.COD_CC, RISCHIO_PROD.VAR_PERC_PTF,
--	RISCHIO_PROD.COPERTURA, PATRBF.ISIN, PATRBF.REND_ANNO, PATRBF.REND_SOTTOSCRIZIONE, PATRBF.PARTVIA_DISINV, RISCHIO_PROD.CREDITRISK, RISCHIO_PROD.CREDITRISKEMIT

ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S162DettaglioProdotti
BEGIN
	
INSERT INTO WH.PL_D2_S162DettaglioProdotti
	SELECT 'C6MartPeriodico.PL_D2_S162DettaglioProdotti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	--GROUP BY PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.INTERMEDIARIO, PATRTERZI.DATA_SOTTOSCRIZIONE, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO,
	--		 RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA, RISCHIOAGGREG.VAR_PERC_PTF, RISCHIOAGGREG.COPERTURA, PATRTERZI.COD_PRODOTTO, RISCHIOPROD.CREDITRISK, RISCHIOPROD.CREDITRISKEMIT
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s163patrimoniofinanziariomassetclass
BEGIN
INSERT INTO WH.pl_d2_s163patrimoniofinanziariomassetclass
SELECT DISTINCT 'C6MartPeriodico.pl_d2_s163patrimoniofinanziariomassetclass' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) as decimal(19,6)) AS Controvalore,
             (
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) /
                    case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    when 0 then 1
                    else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    end 
--                  SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE) as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'


             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

       ) VALORIASSET
       INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
      -- GROUP BY COD_FISCALE, RETE, ASSETCLASS.ORDINAMENTO, ASSETCLASS.ID_ASSETCLASS, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S164PolizzeAltriIstituti
BEGIN
INSERT INTO WH.PL_D2_S164PolizzeAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S165FondiAltriIstituti
BEGIN
	INSERT INTO WH.PL_D2_S165FondiAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S165FondiAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     
	 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
		GROUP BY 
		PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.intermediario, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.DATA_SOTTOSCRIZIONE, PATRTERZI.FREQ_RATA,
		PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO, RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA,  RISCHIOAGGR.VAR_PERC_PTF, RISCHIOAGGR.COPERTURA, 
		PATRTERZI.COD_PRODOTTO, RISCHIOAGGR.CREDITRISK


END
-------------------------------------------------------------------------

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


INSERT INTO WH.PL_D2_S167DistribuzioneRischioCredito
	SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2

SELECT  
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE






SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S168TabellaEmittenti
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
INSERT INTO WH.PL_D2_S168TabellaEmittenti
	SELECT  'C6MartPeriodico.PL_D2_S168TabellaEmittenti' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1				
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ 
	
	 (select sum(ctv_prodotto) from 
		c6martperiodico.patrimonio_emittenti 
		where cod_fiscale = L.COD_FISCALE and rete = L.RETE
		and  ctv_prodotto > 0)  
	 
	 *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END
-------------------------------------------------------------------------
	
-----------------------------------------------PL_S43DettaglioProdottiBF
BEGIN

SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTSELFLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE  ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE


	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE

INSERT INTO WH.PL_S43DettaglioProdottiBF    
	
	
--FINE INTERVENTI OMNIA QUIII

--------------------------------------------------------------------------------------

SELECT   'C6MartPeriodico.PL_S43DettaglioProdottiBF' as ProcedureName, PATRBF.RETE, PATRBF.COD_FISCALE ,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')


left JOIN #TOTSELFLIQ t1 on t1.rete = PATRBF.RETE and t1.COD_FISCALE = PATRBF.COD_FISCALE
left JOIN #TOTLIQ t2 on t2.rete = PATRBF.RETE and t2.COD_FISCALE = PATRBF.COD_FISCALE

LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC

if object_id('tempdb..#TOTSELFLIQ') is not null
   drop table #TOTSELFLIQ	

if object_id('tempdb..#TOTLIQ') is not null
   drop table #TOTLIQ	





END
-------------------------------------------------------------------------


-------------------------------------------PL_D2_S169RischiomercatoRischiocredito

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito    
	SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S170RischioDiversificazione
BEGIN


INSERT INTO WH.PL_D2_S170RischioDiversificazione    
	SELECT  'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.RETE as i_rete, K.COD_FISCALE as i_codiceFiscale, 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0) + (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine

END 
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S171PatrimonioNonRappresentabileAssettClass
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 INSERT INTO WH.PL_D2_S171PatrimonioNonRappresentabileAssettClass    
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
	  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

  
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO,
		PATRBF.RETE,
		PATRBF.COD_FISCALE
	ORDER BY CONTROVALORE DESC
  
END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S137Bonus
BEGIN  
INSERT INTO WH.PL_MP_S137Bonus    
	  SELECT 'C6MartPeriodico.PL_MP_S137Bonus' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
			[RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S135MonitoraggioInvestimento
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_MP_S135MonitoraggioInvestimento    
	  SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
	
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S134MonitoraggioLiquidita
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT


INSERT INTO WH.PL_MP_S134MonitoraggioLiquidita    
	  SELECT 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita' as ProcedureName, MONIT.RETE as i_rete, MONIT.COD_FISCALE as i_codiceF,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			 PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
 

END
-------------------------------------------------------------------------

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

INSERT INTO WH.PL_MP_S134BISMonitoraggioLiqInv  
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S133BISPrincipaliProdotti
BEGIN	
;with ata as
(
SELECT PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceF, 
             ANAGPROD.DESCR_PRODOTTO AS descrProdotto
             ,PATRBF.CTV AS Controvalore
             ,CASE 
                    WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
                    ELSE RISCHIO_PROD.VAR_PERC_PTF
             END AS VaRprodotto
             ,((CASE 
                      WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
                      ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
                END) /    (CASE
                                    WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE) = 0 THEN 1
                                    ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)
                                 END))*100 as rischioRelativo    
             ,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)))*100  AS pesoRelativo
             ,PATRBF.ID_AREA  AS codAreaBisogno
       FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
       INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
             ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
       INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
             ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
       LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
             ON PATRBF.RETE= RISCHIO_PROD.RETE
             AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
             AND RISCHIO_PROD.COD_AGGREG = CASE 
                                                                    WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
                                                                         THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
                                                                          '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
                                                                   WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
                                                                   ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
                                                               END
                                                               + PATRBF.POSITION_ID 
       WHERE 
    PATRBF.CTV <>0
       AND PATRBF.ID_AREA <> 'Cc'
	   
       ), tot as
       (select *, row_number() over (partition by i_rete, i_codiceF ORDER BY rischioRelativo DESC) as pos
         from ata
         )
		 INSERT INTO WH.PL_MP_S133BISPrincipaliProdotti  
		SELECT 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti' as ProcedureName, i_rete, i_codiceF, descrProdotto, Controvalore, VaRprodotto, 
																	rischioRelativo, pesoRelativo, codAreaBisogno from tot where pos <=10

END
-------------------------------------------------------------------------






----[C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
BEGIN

INSERT INTO wh.[PL_MP_S133AreeBisognoPrincProd]
SELECT 'PL_MP_S133AreeBisognoPrincProd', [Rete]
		,[CodiceFiscale]
		,[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
 
  order by ordinamento
		 

END

-------------------------------------------------------------------------

------ [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]

begin
	select count(*) as contaCC, cod_fiscale, rete
	into #contaCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete


	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete


INSERT INTO wh.PL_MP_S146RischioDiversificazione
SELECT 'PL_MP_S146RischioDiversificazione',K.RETE, K.COD_FISCALE,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND contaPOS - contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND contaPOS - contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
left join #contaCC cc on K.COD_FISCALE = cc.COD_FISCALE and K.RETE = cc.rete
left join #contaPOS pos on K.COD_FISCALE = pos.COD_FISCALE and K.RETE = pos.rete
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY Ordine





END 

-------------------------------------------------------------------------


---------[C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]

begin 
select sum(ctv_prodotto) as patr_compl, rete, cod_fiscale 
into #patr_compl
from c6martperiodico.patrimonio_emittenti 
where ctv_prodotto > 0
group by  rete, cod_fiscale 

INSERT INTO wh.PL_MP_S141AnalisiRisparmioTable
SELECT  'PL_MP_S141AnalisiRisparmioTable',RETE, COD_FISCALE,
	
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     l.COD_FISCALE,
     l.RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(p.patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	y.COD_FISCALE,
	y.RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	y.COD_FISCALE,
	y.RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
 inner join #patr_compl p on p.rete = l.rete and  p.cod_fiscale = l.cod_fiscale
GROUP BY 
   l. COD_FISCALE,
     l.RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 
-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]

BEGIN
	



--QUERY PER INTERMEDIARIO

INSERT INTO wh.PL_MP_S140AnalisiRisparmioCharts

SELECT 'PL_MP_S140AnalisiRisparmioCharts', RETE, COD_FISCALE, *FROM
(
SELECT
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo


--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE
)X


END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
   begin
   

   INSERT INTO wh.PL_MP_S137BISCapitaleProtetto
     SELECT 'PL_MP_S137BISCapitaleProtetto', RETE
	,CODFIS
	,DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT
	
	WHERE 1=1
	 

END
 
-------------------------------------------------------------------------



------------ [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
BEGIN
	
	INSERT INTO wh.PL_S43ContoCorrenteBF

	SELECT 'PL_S43ContoCorrenteBF', ANAG_CC.rete, ANAG_CC.cod_fiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
	 ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END

-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]

BEGIN 
	SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 
	into #TOTSELFLIQ1
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 

	

	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	into #PATRIMONIO_BF
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	
	INSERT INTO wh.[PL_S43BISDettaglioProdottiBF]
SELECT 'PL_S43BISDettaglioProdottiBF',	PATRBF.RETE, PATRBF.COD_FISCALE,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,
--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,


	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 

LEFT JOIN #PATRIMONIO_BF bf on bf.rete = PATRBF.rete and bf.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN #TOTSELFLIQ1 tot on  tot.rete = PATRBF.rete and tot.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1

 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI

if object_id('tempdb..#TOTSELFLIQ1') is not null
   drop table #TOTSELFLIQ1	
if object_id('tempdb..#PATRIMONIO_BF') is not null
   drop table #PATRIMONIO_BF	


END

-------------------------------------------------------------------------
------ [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
BEGIN
	
	INSERT INTO wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento
	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', PATR_BF.RETE,
		PATR_BF.COD_FISCALE,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY  PATR_BF.RETE,
		PATR_BF.COD_FISCALE,PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_S82BisDatiSintetici]
	
BEGIN
	
	INSERT INTO wh.PL_S82BisDatiSintetici
	SELECT DISTINCT 'PL_S82BisDatiSintetici',
	 BF.RETE,
		BF.COD_FISCALE,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		
		END
		--AND BF.ORDINAMENTO_PROGETTO=1521667

-------------------------------------------------------------------------

----- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
begin

INSERT INTO wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass
SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', * FROM
(
	SELECT  
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
	
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        AND PATRBF.CTV <> 0.00
UNION ALL

SELECT  PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		

  GROUP BY 
      PATRBF.RETE,
		PATRBF.COD_FISCALE, PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 
		)XX

END

-------------------------------------------------------------------------


------------------------------- [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
BEGIN

	select count(*) as contaCC, cod_fiscale, rete
	into #contaCCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete

	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOSS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete
    SELECT isnull(sum(ctv),0) as ctvbf, cod_fiscale, rete
	INTO #ctvbf
	FROM  c6martperiodico.patrimonio_bf  			
	where CTV > 0
	group by cod_fiscale, rete
				      
	SELECT isnull(sum(ctv),0) as ctvterzi, cod_fiscale, rete 
	INTO #ctvterzi
	FROM  c6martperiodico.patrimonio_terzi  			
	where CTV > 0
	group by cod_fiscale, rete 


	INSERT INTO wh.PL_D_S170RischioDiversificazione
SELECT 'PL_D_S170RischioDiversificazione',K.RETE,K.COD_FISCALE,

K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then COALESCE(ctvbf,0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then COALESCE(ctvterzi,0)
	when cod_Aggreg = 'COMPLESSIVO' then COALESCE(ctvbf,0) + COALESCE(ctvterzi,0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (COALESCE(contaPOS,0) - COALESCE(contacc,0) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
full outer join #contaCCC cc on k.COD_FISCALE = cc.cod_fiscale and k.Rete = cc.rete
full outer join #contaPOSS pos on k.COD_FISCALE = pos.cod_fiscale and k.Rete = pos.rete
full outer join #ctvbf bf on k.COD_FISCALE = bf.cod_fiscale and k.Rete = bf.rete
full outer join #ctvterzi terzi on k.COD_FISCALE = terzi.cod_fiscale and k.Rete = terzi.rete
WHERE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine


END 

-------------------------------------------------------------------------

----------------------------------[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 

 INSERT INTO wh.PL_S96RischiomercatoRischiocredito
    SELECT 'PL_S96RischiomercatoRischiocredito',  RETE, COD_FISCALE, * 
	FROM (
	SELECT
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	
	)X
	order by ordine
	END

-------------------------------------------------------------------------

-------------------- [C6MartPeriodico].[PL_S80Alternativa]
	
BEGIN

if object_id('tempdb..#aa2') is not null
   drop table #aa2
   
if object_id('tempdb..#ab2') is not null
   drop table #ab2
   
if object_id('tempdb..#pos2') is not null
   drop table #pos2


   SELECT COUNT(*) as MONIT_ATTIV, RETE, COD_FISCALE
       into #aa2
    FROM C6MARTPERIODICO.MONITORAGGIO_ATTUALE
       GROUP BY RETE, COD_FISCALE
   
    
       SELECT COUNT(*) as MONIT_INIT, RETE, COD_FISCALE
       into #ab2
       FROM C6MARTPERIODICO.MONITORAGGIO_INIZIALE
       GROUP BY  RETE, COD_FISCALE
       
       select  a.RETE, a.COD_FISCALE
       into #pos2
       from #aa2 a inner join #ab2 b on a.rete = b.rete and a.COD_FISCALE = b.COD_FISCALE

       INSERT INTO wh.PL_S80Alternativa
       SELECT 'PL_S80Alternativa' as ProcedureName, v.RETE as i_rete, v.Cod_Fiscale as i_codiceFiscale, v.[RETE]
      ,v.[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio] v
  inner join #pos2 p on p.rete = v.rete and p.Cod_Fiscale = v.Cod_Fiscale


END

END

GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_20161012]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [wh].[MERGED_PROCEDURE_20161012]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.pl_d2_s169rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d_s170rischiodiversificazione
------------------------------------------------------------------------

-------------------------------------------PL_S82DatiSintetici
INSERT INTO WH.PL_S82DatiSintetici
SELECT 'C6MartPeriodico.PL_S82DatiSintetici' as ProcedureName, PATRAREA.RETE as i_rete ,PATRAREA.COD_FISCALE as i_codiceFiscale,	
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

-------------------------------------------------------------------------

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

SELECT
       [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6MartPeriodico].[PIRAMIDE_MOD]
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
INSERT INTO WH.PL_S85RendimentoPortafoglioCono
SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END
-------------------------------------------------------------------------

-------------------------------------------pl_areemonitorate
BEGIN

INSERT INTO WH.PL_AreeMonitorate
SELECT 'C6MartPeriodico.PL_AreeMonitorate' as ProcedureName, [RETE] as i_rete ,[COD_FISCALE] as i_codiceFiscale, 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
	    PIRMOD.RETE AS RETE,
		PIRMOD.COD_FISCALE as COD_FISCALE,
		PIRMOD.ID_AREA AS Need_Area,		
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA	
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
	    PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
		PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

  

) A

GROUP BY
RETE,
COD_FISCALE,
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END
-------------------------------------------------------------------------

-------------------------------------------PL_S43LineaSelfBF
BEGIN
	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		isnull(ctv,0) < 0
END
-------------------------------------------------------------------------

-------------------------------------------PL_S10PatrimonioFinanziario
BEGIN
	
	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  order by ordinamento
END 
-------------------------------------------------------------------------

-------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
BEGIN

INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
	SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1	
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END
-------------------------------------------------------------------------

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

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)

	INSERT INTO WH.PL_D2_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, M.RETE as i_rete, M.COD_FISCALE as i_codiceFiscale,
	
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) as dataInizioValidita,
		CR.MAX_VAR as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		ProfiliDiRischio.NOMEPROFILO  as nomeProfilo,
        m.riskclass as riskclass,
        m.experience as experince
	FROM	
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s152patrimonio
BEGIN



SELECT SUM(CTV) as Value, patrBF.Rete,  patrBF.Cod_Fiscale
into #PatrimonioBF
             FROM C6MartPeriodico.PATRIMONIO_BF patrBF
             WHERE patrBF.id_area not in ('CC','SELF')  
             group by patrBF.Cod_Fiscale, patrBF.Rete


       SELECT SUM(IMPORTO) as Value, Rete, Cod_Fiscale
       into #Part_viaggianti 
             FROM
             (
                           SELECT SUM(IMPORTO) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
                           union 
                           SELECT SUM(PARTVIA_DISINV) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.patrimonio_bf partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
             ) T
             group by  Rete, Cod_Fiscale
     
    SELECT SUM(ROUND(CTV,2)) as Value, patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
                    into #PatrimonioTerzi
             FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
             group by patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
             
             

       SELECT SUM(patrImm.VALORE_STIMATO) as Value,
       patrImm.Rete, patrImm.Cod_Fiscale
       into #PatrimonioImmobiliare
             FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
             group by patrImm.Rete, patrImm.Cod_Fiscale
             
       SELECT SUM(patrAltro.ctv) as Value, patrAltro.Rete, patrAltro.Cod_Fiscale
       into #PatrimonioAltro
             FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
             group by patrAltro.Rete, patrAltro.Cod_Fiscale


             select distinct rete, cod_fiscale
             into #merge
             from
             (
                    select rete, cod_fiscale from #PatrimonioBF UNION ALL
                    select rete, cod_fiscale from #PatrimonioTerzi UNION ALL
                    select rete, cod_fiscale from #Part_viaggianti  UNION ALL
                    select rete, cod_fiscale from #PatrimonioImmobiliare UNION ALL
                    select rete, cod_fiscale from  #PatrimonioAltro
             )x

			 truncate table WH.pl_d2_s152patrimonio	

             ;with data as
             (
             select m.rete, m.cod_fiscale, 
                    cast(COALESCE(a.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as PatrimonioBF,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as FinanziarioCTV,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00)+COALESCE(d.value,0.00)+COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioTotale,
                    cast(COALESCE(b.value,0.00) as numeric(18,2)) as PatrimonioTerziCTV,
                    cast(COALESCE(d.value,0.00) as numeric(18,2)) as PatrimonioImmobiliare,
                    cast(COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioAltro
             from #merge m
                    left join #PatrimonioBF a                  on a.rete = m.rete and a.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioTerzi b               on b.rete = m.rete and b.cod_fiscale = m.cod_fiscale
                    left join #Part_viaggianti c               on c.rete = m.rete and c.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioImmobiliare d         on d.rete = m.rete and d.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioAltro e           on e.rete = m.rete and e.cod_fiscale = m.cod_fiscale
                    )

					
		INSERT INTO WH.pl_d2_s152patrimonio		
	    SELECT  'C6MartPeriodico.pl_d2_s152patrimonio' as ProcedureName, rete as i_rete, cod_fiscale as i_codiceFiscale,
                    PatrimonioBF, 
                    PatrimonioTerziCTV,
                    FinanziarioCTV,
                    CONVERT(decimal(6,2),
                           case when PatrimonioTotale = 0.00 then 0.00 
                           else FinanziarioCTV / PatrimonioTotale end 
                    * 100.00) AS FinanziarioPerc,
                    PatrimonioImmobiliare,
                    CONVERT(decimal(6,2),
                           case  when PatrimonioTotale = 0.00 then 0.00 
                           else PatrimonioImmobiliare/PatrimonioTotale end 
                            
                    * 100.00) AS ImmobiliarePerc,
                    PatrimonioAltro,
                    CONVERT(decimal(6,2),
                           case PatrimonioTotale when 0.00 then 0.00 
                           else PatrimonioAltro/PatrimonioTotale end
                           
                    * 100.00) AS AltroPerc,
                    PatrimonioTotale as TotaleCTV
                    from data


END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S153PatrimonioFinanziario
BEGIN
	INSERT INTO WH.PL_D2_S153PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, Rete as i_rete, Cod_Fiscale as i_codiceFiscale, 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
		    Rete,
			Cod_Fiscale,
			Intermediario,
			Ordine,
			CASE Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_fiscale) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_Fiscale)) / 
				wh.IsZero((SUM(ctv) over (partition by 'Totale'+Rete+Cod_fiscale)),1)
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
			    patrBF.Rete as Rete,
				patrBF.Cod_Fiscale as Cod_Fiscale,
				CASE patrBF.Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1				
					and patrBF.id_area  not in ('CC','SELF')
				GROUP BY patrBF.Rete, patrBF.Cod_Fiscale
			UNION ALL

			SELECT 
			    patrTerzi.Rete as Rete,
				patrTerzi.Cod_Fiscale as Cod_Fiscale,
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
				GROUP BY patrTerzi.Intermediario, patrTerzi.Rete, patrTerzi.Cod_Fiscale

		) PATR
		GROUP BY Cod_Fiscale, Rete, intermediario, ordine, ctv
	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S154PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S154PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2) as decimal(38,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),0)
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 

		UNION ALL
	
		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL
		--CON SKANDIA
		SELECT 
				ASUL.RETE AS RETE,
				ASUL.COD_FISCALE as COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
		    PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	--GROUP BY RETE, COD_FISCALE, ASSETCLASS.ordinamento, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE
		
) A
--GROUP BY RETE, COD_FISCALE, A.BANCA, A.ORDINAMENTO, A.ASSETCLASSID, A.ASSETCLASSNAME, A.CONTROVALORE, A.PERCENTUALE
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S155PatrimonioImmobiliare
BEGIN

INSERT INTO WH.PL_D2_S155PatrimonioImmobiliare
	SELECT 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare' as ProcedureName, PATRIMONIO_IMMOBILIARE.RETE as i_rete, PATRIMONIO_IMMOBILIARE.COD_FISCALE as i_codiceFiscale,	
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	--GROUP BY PATRIMONIO_IMMOBILIARE.RETE, PATRIMONIO_IMMOBILIARE.COD_FISCALE, PATRIMONIO_IMMOBILIARE.descrizione, PATRIMONIO_IMMOBILIARE.TIPOLOGIA, PATRIMONIO_IMMOBILIARE.LOCALITA, PATRIMONIO_IMMOBILIARE.AFFITTO, PATRIMONIO_IMMOBILIARE.VALORE_STIMATO
	ORDER BY PATRIMONIO_IMMOBILIARE.valore_stimato DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S156ALtroPatrimonio
BEGIN
	INSERT INTO WH.PL_D2_S156ALtroPatrimonio
	SELECT 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio' as ProcedureName, PATRIMONIO_ALTRO.RETE as i_rete, PATRIMONIO_ALTRO.COD_FISCALE as i_codiceFiscale,	
	 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale',PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE ) as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
		--GROUP BY PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE, PATRIMONIO_ALTRO.DESCRIZIONE, PATRIMONIO_ALTRO.QUANTITA, PATRIMONIO_ALTRO.CTV 
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S157ConfrontoPiramidi
BEGIN
INSERT INTO WH.PL_D2_S157ConfrontoPiramidi
SELECT 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi' as ProcedureName, RETE as i_rete, [CodiceFiscale] as i_codiceFiscale,	
	 [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
  where [CodiceFiscale] is not null and [Rete] is not null
  order by ordinamento

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S158PiramideModello
BEGIN
INSERT INTO WH.PL_D2_S158PiramideModello
SELECT 'C6MartPeriodico.PL_D2_S158PiramideModello' as ProcedureName, BF.RETE as i_rete, BF.COD_FISCALE as i_codiceFiscale,	
		  BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF, BF.RETE, BF.COD_FISCALE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S159PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S159PatrimonioFinanziario
SELECT 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,

	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) AS Controvalore,
	cast(A.Percentuale  as decimal(38,6)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2)  as decimal(38,6))  AS Totale
FROM 
(		
	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')

		UNION ALL
		

		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL

		SELECT  ASUL.RETE AS RETE,
				ASUL.COD_FISCALE AS COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore				
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--group by RETE, COD_FISCALE, a.banca, a.ordinamento, a.assetclassid, a.assetclassname, a.controvalore, a.percentuale
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S160DettaglioProdottiBF
BEGIN

INSERT INTO WH.PL_D2_S160DettaglioProdottiBF
SELECT 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp2
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ' and
		tmp2.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP2.RETE = PATRBF.RETE) = (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp3
	WHERE  ID_AREA = 'LIQ' and tmp3.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP3.RETE = PATRBF.RETE) and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1 and
	PATRBF.CTV <>0

--GROUP BY PATRBF.COD_FISCALE, PATRBF.RETE, AREA.ID_AREA, AREA.NOME_AREA, AREA.ORDINAMENTO, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO, PATRBF.CTV,
--	MONIT.MINUS_PLUSVALENZA, RISCHIO_AGGR_PROG.COPERTURA, RISCHIO_AGGR_PROG.VAR_PERC_PTF, RISCHIO_AGGR_AREA.VAR_PERC_PTF, RISCHIO_AGGR_AREA.COPERTURA,
--	PATRBF.DATA_SOTTOSCRIZIONE, PATRBF.ID_CONTRATTO, PATRBF.TIPO_PRODOTTO, ANAGPROD.DESCR_PRODOTTO, ANAG_CC.COD_CC, RISCHIO_PROD.VAR_PERC_PTF,
--	RISCHIO_PROD.COPERTURA, PATRBF.ISIN, PATRBF.REND_ANNO, PATRBF.REND_SOTTOSCRIZIONE, PATRBF.PARTVIA_DISINV, RISCHIO_PROD.CREDITRISK, RISCHIO_PROD.CREDITRISKEMIT

ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S162DettaglioProdotti
BEGIN
	
INSERT INTO WH.PL_D2_S162DettaglioProdotti
	SELECT 'C6MartPeriodico.PL_D2_S162DettaglioProdotti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	--GROUP BY PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.INTERMEDIARIO, PATRTERZI.DATA_SOTTOSCRIZIONE, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO,
	--		 RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA, RISCHIOAGGREG.VAR_PERC_PTF, RISCHIOAGGREG.COPERTURA, PATRTERZI.COD_PRODOTTO, RISCHIOPROD.CREDITRISK, RISCHIOPROD.CREDITRISKEMIT
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s163patrimoniofinanziariomassetclass
BEGIN
INSERT INTO WH.pl_d2_s163patrimoniofinanziariomassetclass
SELECT DISTINCT 'C6MartPeriodico.pl_d2_s163patrimoniofinanziariomassetclass' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) as decimal(19,6)) AS Controvalore,
             (
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) /
                    case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    when 0 then 1
                    else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    end 
--                  SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE) as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'


             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

       ) VALORIASSET
       INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
      -- GROUP BY COD_FISCALE, RETE, ASSETCLASS.ORDINAMENTO, ASSETCLASS.ID_ASSETCLASS, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S164PolizzeAltriIstituti
BEGIN
INSERT INTO WH.PL_D2_S164PolizzeAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S165FondiAltriIstituti
BEGIN
	INSERT INTO WH.PL_D2_S165FondiAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S165FondiAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     
	 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	--	GROUP BY 
	--	PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.intermediario, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.DATA_SOTTOSCRIZIONE, PATRTERZI.FREQ_RATA,
	--	PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO, RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA,  RISCHIOAGGR.VAR_PERC_PTF, RISCHIOAGGR.COPERTURA, 
	--	PATRTERZI.COD_PRODOTTO, RISCHIOAGGR.CREDITRISK


END
-------------------------------------------------------------------------

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


INSERT INTO WH.PL_D2_S167DistribuzioneRischioCredito
	SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2

SELECT  
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE






SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S168TabellaEmittenti
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
INSERT INTO WH.PL_D2_S168TabellaEmittenti
	SELECT  'C6MartPeriodico.PL_D2_S168TabellaEmittenti' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1				
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ 
	
	 (select sum(ctv_prodotto) from 
		c6martperiodico.patrimonio_emittenti 
		where cod_fiscale = L.COD_FISCALE and rete = L.RETE
		and  ctv_prodotto > 0)  
	 
	 *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END
-------------------------------------------------------------------------
	
-----------------------------------------------PL_S43DettaglioProdottiBF
BEGIN

SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTSELFLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE  ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE


	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE

INSERT INTO WH.PL_S43DettaglioProdottiBF    
	
	
--FINE INTERVENTI OMNIA QUIII

--------------------------------------------------------------------------------------

SELECT   'C6MartPeriodico.PL_S43DettaglioProdottiBF' as ProcedureName, PATRBF.RETE, PATRBF.COD_FISCALE ,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')


left JOIN #TOTSELFLIQ t1 on t1.rete = PATRBF.RETE and t1.COD_FISCALE = PATRBF.COD_FISCALE
left JOIN #TOTLIQ t2 on t2.rete = PATRBF.RETE and t2.COD_FISCALE = PATRBF.COD_FISCALE

LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC


	drop table #TOTSELFLIQ
drop table #TOTLIQ




END
-------------------------------------------------------------------------


-------------------------------------------PL_D2_S169RischiomercatoRischiocredito

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito    
	SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S170RischioDiversificazione
BEGIN


INSERT INTO WH.PL_D2_S170RischioDiversificazione    
	SELECT  'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.RETE as i_rete, K.COD_FISCALE as i_codiceFiscale, 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0) + (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine

END 
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S171PatrimonioNonRappresentabileAssettClass
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 INSERT INTO WH.PL_D2_S171PatrimonioNonRappresentabileAssettClass    
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
	  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

  
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO,
		PATRBF.RETE,
		PATRBF.COD_FISCALE
	ORDER BY CONTROVALORE DESC
  
END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S137Bonus
BEGIN  
INSERT INTO WH.PL_MP_S137Bonus    
	  SELECT 'C6MartPeriodico.PL_MP_S137Bonus' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
			[RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S135MonitoraggioInvestimento
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_MP_S135MonitoraggioInvestimento    
	  SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
	
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S134MonitoraggioLiquidita
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT


INSERT INTO WH.PL_MP_S134MonitoraggioLiquidita    
	  SELECT 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita' as ProcedureName, MONIT.RETE as i_rete, MONIT.COD_FISCALE as i_codiceF,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			 PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
 

END
-------------------------------------------------------------------------

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

INSERT INTO WH.PL_MP_S134BISMonitoraggioLiqInv  
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S133BISPrincipaliProdotti
BEGIN	
;with ata as
(
SELECT PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceF, 
             ANAGPROD.DESCR_PRODOTTO AS descrProdotto
             ,PATRBF.CTV AS Controvalore
             ,CASE 
                    WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
                    ELSE RISCHIO_PROD.VAR_PERC_PTF
             END AS VaRprodotto
             ,((CASE 
                      WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
                      ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
                END) /    (CASE
                                    WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE) = 0 THEN 1
                                    ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)
                                 END))*100 as rischioRelativo    
             ,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)))*100  AS pesoRelativo
             ,PATRBF.ID_AREA  AS codAreaBisogno
       FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
       INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
             ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
       INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
             ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
       LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
             ON PATRBF.RETE= RISCHIO_PROD.RETE
             AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
             AND RISCHIO_PROD.COD_AGGREG = CASE 
                                                                    WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
                                                                         THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
                                                                          '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
                                                                   WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
                                                                   ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
                                                               END
                                                               + PATRBF.POSITION_ID 
       WHERE 
    PATRBF.CTV <>0
       AND PATRBF.ID_AREA <> 'Cc'
	   
       ), tot as
       (select *, row_number() over (partition by i_rete, i_codiceF ORDER BY rischioRelativo DESC) as pos
         from ata
         )
		 INSERT INTO WH.PL_MP_S133BISPrincipaliProdotti  
		SELECT 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti' as ProcedureName, i_rete, i_codiceF, descrProdotto, Controvalore, VaRprodotto, 
																	rischioRelativo, pesoRelativo, codAreaBisogno from tot where pos <=10

END
-------------------------------------------------------------------------






----[C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
BEGIN

INSERT INTO wh.[PL_MP_S133AreeBisognoPrincProd]
SELECT 'PL_MP_S133AreeBisognoPrincProd', [Rete]
		,[CodiceFiscale]
		,[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
 
  order by ordinamento
		 

END

-------------------------------------------------------------------------

------ [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]

begin
	select count(*) as contaCC, cod_fiscale, rete
	into #contaCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete


	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete


INSERT INTO wh.PL_MP_S146RischioDiversificazione
SELECT 'PL_MP_S146RischioDiversificazione',K.RETE, K.COD_FISCALE,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND contaPOS - contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND contaPOS - contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
left join #contaCC cc on K.COD_FISCALE = cc.COD_FISCALE and K.RETE = cc.rete
left join #contaPOS pos on K.COD_FISCALE = pos.COD_FISCALE and K.RETE = pos.rete
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY Ordine





END 

-------------------------------------------------------------------------


---------[C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]

begin 
select sum(ctv_prodotto) as patr_compl, rete, cod_fiscale 
into #patr_compl
from c6martperiodico.patrimonio_emittenti 
where ctv_prodotto > 0
group by  rete, cod_fiscale 

INSERT INTO wh.PL_MP_S141AnalisiRisparmioTable
SELECT  'PL_MP_S141AnalisiRisparmioTable',RETE, COD_FISCALE,
	
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     l.COD_FISCALE,
     l.RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(p.patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	y.COD_FISCALE,
	y.RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	y.COD_FISCALE,
	y.RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
 inner join #patr_compl p on p.rete = l.rete and  p.cod_fiscale = l.cod_fiscale
GROUP BY 
   l. COD_FISCALE,
     l.RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 
-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]

BEGIN
	



--QUERY PER INTERMEDIARIO

INSERT INTO wh.PL_MP_S140AnalisiRisparmioCharts

SELECT 'PL_MP_S140AnalisiRisparmioCharts', RETE, COD_FISCALE, *FROM
(
SELECT
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo


--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE
)X


END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
   begin
   

   INSERT INTO wh.PL_MP_S137BISCapitaleProtetto
     SELECT 'PL_MP_S137BISCapitaleProtetto', RETE
	,CODFIS
	,DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT
	
	WHERE 1=1
	 

END
 
-------------------------------------------------------------------------



------------ [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
BEGIN
	
	INSERT INTO wh.PL_S43ContoCorrenteBF

	SELECT 'PL_S43ContoCorrenteBF', ANAG_CC.rete, ANAG_CC.cod_fiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
	 ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END

-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]

BEGIN 
	SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 
	into #TOTSELFLIQ1
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 

	

	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	into #PATRIMONIO_BF
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	
	INSERT INTO wh.[PL_S43BISDettaglioProdottiBF]
SELECT 'PL_S43BISDettaglioProdottiBF',	PATRBF.RETE, PATRBF.COD_FISCALE,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,
--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,


	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 

LEFT JOIN #PATRIMONIO_BF bf on bf.rete = PATRBF.rete and bf.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN #TOTSELFLIQ1 tot on  tot.rete = PATRBF.rete and tot.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1

 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI


drop table #PATRIMONIO_BF


END

-------------------------------------------------------------------------
------ [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
BEGIN
	
	INSERT INTO wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento
	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', PATR_BF.RETE,
		PATR_BF.COD_FISCALE,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY  PATR_BF.RETE,
		PATR_BF.COD_FISCALE,PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_S82BisDatiSintetici]
	
BEGIN
	
	INSERT INTO wh.PL_S82BisDatiSintetici
	SELECT DISTINCT 'PL_S82BisDatiSintetici',
	 BF.RETE,
		BF.COD_FISCALE,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		
		END
		--AND BF.ORDINAMENTO_PROGETTO=1521667

-------------------------------------------------------------------------

----- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
begin

INSERT INTO wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass
SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', * FROM
(
	SELECT  
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
	
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        AND PATRBF.CTV <> 0.00
UNION ALL

SELECT  PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		

  GROUP BY 
      PATRBF.RETE,
		PATRBF.COD_FISCALE, PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 
		)XX

END

-------------------------------------------------------------------------


------------------------------- [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
BEGIN

	select count(*) as contaCC, cod_fiscale, rete
	into #contaCCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete

	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOSS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete
    SELECT isnull(sum(ctv),0) as ctvbf, cod_fiscale, rete
	INTO #ctvbf
	FROM  c6martperiodico.patrimonio_bf  			
	where CTV > 0
	group by cod_fiscale, rete
				      
	SELECT isnull(sum(ctv),0) as ctvterzi, cod_fiscale, rete 
	INTO #ctvterzi
	FROM  c6martperiodico.patrimonio_terzi  			
	where CTV > 0
	group by cod_fiscale, rete 


	INSERT INTO wh.PL_D_S170RischioDiversificazione
SELECT 'PL_D_S170RischioDiversificazione',K.RETE,K.COD_FISCALE,

K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then COALESCE(ctvbf,0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then COALESCE(ctvterzi,0)
	when cod_Aggreg = 'COMPLESSIVO' then COALESCE(ctvbf,0) + COALESCE(ctvterzi,0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (COALESCE(contaPOS,0) - COALESCE(contacc,0) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
full outer join #contaCCC cc on k.COD_FISCALE = cc.cod_fiscale and k.Rete = cc.rete
full outer join #contaPOSS pos on k.COD_FISCALE = pos.cod_fiscale and k.Rete = pos.rete
full outer join #ctvbf bf on k.COD_FISCALE = bf.cod_fiscale and k.Rete = bf.rete
full outer join #ctvterzi terzi on k.COD_FISCALE = terzi.cod_fiscale and k.Rete = terzi.rete
WHERE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine


END 

-------------------------------------------------------------------------

----------------------------------[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 truncate table wh.PL_S96RischiomercatoRischiocredito

 INSERT INTO wh.PL_S96RischiomercatoRischiocredito
    SELECT 'PL_S96RischiomercatoRischiocredito',  RETE, COD_FISCALE, * 
	FROM (
	SELECT
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
   GROUP BY 
   PATRBF.RETE,
   PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc
  --  CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	
	)X
	order by ordine
	END

-------------------------------------------------------------------------

-------------------- [C6MartPeriodico].[PL_S80Alternativa]
	
BEGIN


   SELECT COUNT(*) as MONIT_ATTIV, RETE, COD_FISCALE
       into #aa2
    FROM C6MARTPERIODICO.MONITORAGGIO_ATTUALE
       GROUP BY RETE, COD_FISCALE
   
    
       SELECT COUNT(*) as MONIT_INIT, RETE, COD_FISCALE
       into #ab2
       FROM C6MARTPERIODICO.MONITORAGGIO_INIZIALE
       GROUP BY  RETE, COD_FISCALE
       
       select  a.RETE, a.COD_FISCALE
       into #pos2
       from #aa2 a inner join #ab2 b on a.rete = b.rete and a.COD_FISCALE = b.COD_FISCALE

       INSERT INTO wh.PL_S80Alternativa
       SELECT 'PL_S80Alternativa' as ProcedureName, v.RETE as i_rete, v.Cod_Fiscale as i_codiceFiscale, v.[RETE]
      ,v.[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio] v
  inner join #pos2 p on p.rete = v.rete and p.Cod_Fiscale = v.Cod_Fiscale


END

----------------------------------------------
--maledetti
begin

truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )
	SELECT  DISTINCT
			contratti.Cod_Fiscale as i_CodiceFiscale
			,contratti.Rete as i_Rete
			--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
			--*************************************************
			,CASE WHEN count(monit.id_area) OVER (PARTITION BY monit.rete,monit.cod_fiscale) = 0
				or isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
				or monitReport.cod_fiscale is null 
				THEN 1
				ELSE 0
			END AS NoMonitoraggio
			,'Diagnosi' as descrizioneDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
				ELSE -1
			END AS idModelloDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
				ELSE -1
			END AS idReportDiagnosi
			,'Monitoraggio' as descrizioneMonitoraggio
			,4 as idReportMonitoraggio--4
			,CASE isnull(tip_contratto,0) 
					WHEN 0 THEN 12--12
					WHEN 1 THEN 12--12
					WHEN 2 THEN 13--13
			END 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 
			,mifid.scaduto
		FROM  [C6MartPeriodico].contrattoSEI contratti
		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
			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'
			--modificata da Valerio 12 marzo 2012
			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		inner 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
		WHERE 1=1
		end	
-------------------------------------------------------------------------
END



GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_20170615]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [wh].[MERGED_PROCEDURE_20170615]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.pl_d2_s169rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d_s170rischiodiversificazione
------------------------------------------------------------------------

-------------------------------------------PL_S82DatiSintetici
INSERT INTO WH.PL_S82DatiSintetici
SELECT 'C6MartPeriodico.PL_S82DatiSintetici' as ProcedureName, PATRAREA.RETE as i_rete ,PATRAREA.COD_FISCALE as i_codiceFiscale,	
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

-------------------------------------------------------------------------

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

SELECT
       [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6MartPeriodico].[PIRAMIDE_MOD]
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
INSERT INTO WH.PL_S85RendimentoPortafoglioCono
SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END
-------------------------------------------------------------------------

-------------------------------------------pl_areemonitorate
BEGIN

INSERT INTO WH.PL_AreeMonitorate
SELECT 'C6MartPeriodico.PL_AreeMonitorate' as ProcedureName, [RETE] as i_rete ,[COD_FISCALE] as i_codiceFiscale, 
NEED_AREA,
NEED_ESTESA,
max(NOME_PROGETTO) as NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ISNULL(ORDINAMENTO_PROGETTO,-1111),
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
	    PIRMOD.RETE AS RETE,
		PIRMOD.COD_FISCALE as COD_FISCALE,
		PIRMOD.ID_AREA AS Need_Area,		
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA	
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
	    PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
		PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

  

) A

GROUP BY
RETE,
COD_FISCALE,
NEED_AREA,
NEED_ESTESA,
ISNULL(ORDINAMENTO_PROGETTO,-1111)

	ORDER BY
		ORDINE
END
-------------------------------------------------------------------------

-------------------------------------------PL_S43LineaSelfBF
BEGIN
	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		isnull(ctv,0) < 0
END
-------------------------------------------------------------------------

-------------------------------------------PL_S10PatrimonioFinanziario
BEGIN
	
	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  order by ordinamento
END 
-------------------------------------------------------------------------

-------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
BEGIN

INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
	SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1	
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END
-------------------------------------------------------------------------

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

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)

	INSERT INTO WH.PL_D2_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, M.RETE as i_rete, M.COD_FISCALE as i_codiceFiscale,
	
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) as dataInizioValidita,
		CR.MAX_VAR as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		ProfiliDiRischio.NOMEPROFILO  as nomeProfilo,
        m.riskclass as riskclass,
        m.experience as experince
	FROM	
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s152patrimonio
BEGIN



SELECT SUM(CTV) as Value, patrBF.Rete,  patrBF.Cod_Fiscale
into #PatrimonioBF
             FROM C6MartPeriodico.PATRIMONIO_BF patrBF
             WHERE patrBF.id_area not in ('CC','SELF')  
             group by patrBF.Cod_Fiscale, patrBF.Rete


       SELECT SUM(IMPORTO) as Value, Rete, Cod_Fiscale
       into #Part_viaggianti 
             FROM
             (
                           SELECT SUM(IMPORTO) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
                           union 
                           SELECT SUM(PARTVIA_DISINV) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.patrimonio_bf partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
             ) T
             group by  Rete, Cod_Fiscale
     
    SELECT SUM(ROUND(CTV,2)) as Value, patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
                    into #PatrimonioTerzi
             FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
             group by patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
             
             

       SELECT SUM(patrImm.VALORE_STIMATO) as Value,
       patrImm.Rete, patrImm.Cod_Fiscale
       into #PatrimonioImmobiliare
             FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
             group by patrImm.Rete, patrImm.Cod_Fiscale
             
       SELECT SUM(patrAltro.ctv) as Value, patrAltro.Rete, patrAltro.Cod_Fiscale
       into #PatrimonioAltro
             FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
             group by patrAltro.Rete, patrAltro.Cod_Fiscale


             select distinct rete, cod_fiscale
             into #merge
             from
             (
                    select rete, cod_fiscale from #PatrimonioBF UNION ALL
                    select rete, cod_fiscale from #PatrimonioTerzi UNION ALL
                    select rete, cod_fiscale from #Part_viaggianti  UNION ALL
                    select rete, cod_fiscale from #PatrimonioImmobiliare UNION ALL
                    select rete, cod_fiscale from  #PatrimonioAltro
             )x

			 truncate table WH.pl_d2_s152patrimonio	

             ;with data as
             (
             select m.rete, m.cod_fiscale, 
                    cast(COALESCE(a.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as PatrimonioBF,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as FinanziarioCTV,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00)+COALESCE(d.value,0.00)+COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioTotale,
                    cast(COALESCE(b.value,0.00) as numeric(18,2)) as PatrimonioTerziCTV,
                    cast(COALESCE(d.value,0.00) as numeric(18,2)) as PatrimonioImmobiliare,
                    cast(COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioAltro
             from #merge m
                    left join #PatrimonioBF a                  on a.rete = m.rete and a.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioTerzi b               on b.rete = m.rete and b.cod_fiscale = m.cod_fiscale
                    left join #Part_viaggianti c               on c.rete = m.rete and c.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioImmobiliare d         on d.rete = m.rete and d.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioAltro e           on e.rete = m.rete and e.cod_fiscale = m.cod_fiscale
                    )

					
		INSERT INTO WH.pl_d2_s152patrimonio		
	    SELECT  'C6MartPeriodico.pl_d2_s152patrimonio' as ProcedureName, rete as i_rete, cod_fiscale as i_codiceFiscale,
                    PatrimonioBF, 
                    PatrimonioTerziCTV,
                    FinanziarioCTV,
                    CONVERT(decimal(6,2),
                           case when PatrimonioTotale = 0.00 then 0.00 
                           else FinanziarioCTV / PatrimonioTotale end 
                    * 100.00) AS FinanziarioPerc,
                    PatrimonioImmobiliare,
                    CONVERT(decimal(6,2),
                           case  when PatrimonioTotale = 0.00 then 0.00 
                           else PatrimonioImmobiliare/PatrimonioTotale end 
                            
                    * 100.00) AS ImmobiliarePerc,
                    PatrimonioAltro,
                    CONVERT(decimal(6,2),
                           case PatrimonioTotale when 0.00 then 0.00 
                           else PatrimonioAltro/PatrimonioTotale end
                           
                    * 100.00) AS AltroPerc,
                    PatrimonioTotale as TotaleCTV
                    from data


END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S153PatrimonioFinanziario
BEGIN
	INSERT INTO WH.PL_D2_S153PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, Rete as i_rete, Cod_Fiscale as i_codiceFiscale, 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
		    Rete,
			Cod_Fiscale,
			Intermediario,
			Ordine,
			CASE Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_fiscale) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_Fiscale)) / 
				wh.IsZero((SUM(ctv) over (partition by 'Totale'+Rete+Cod_fiscale)),1)
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
			    patrBF.Rete as Rete,
				patrBF.Cod_Fiscale as Cod_Fiscale,
				CASE patrBF.Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1				
					and patrBF.id_area  not in ('CC','SELF')
				GROUP BY patrBF.Rete, patrBF.Cod_Fiscale
			UNION ALL

			SELECT 
			    patrTerzi.Rete as Rete,
				patrTerzi.Cod_Fiscale as Cod_Fiscale,
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
				GROUP BY patrTerzi.Intermediario, patrTerzi.Rete, patrTerzi.Cod_Fiscale

		) PATR
		GROUP BY Cod_Fiscale, Rete, intermediario, ordine, ctv
	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S154PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S154PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2) as decimal(38,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),0)
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 

		UNION ALL
	
		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL
		--CON SKANDIA
		SELECT 
				ASUL.RETE AS RETE,
				ASUL.COD_FISCALE as COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
		    PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	--GROUP BY RETE, COD_FISCALE, ASSETCLASS.ordinamento, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE
		
) A
--GROUP BY RETE, COD_FISCALE, A.BANCA, A.ORDINAMENTO, A.ASSETCLASSID, A.ASSETCLASSNAME, A.CONTROVALORE, A.PERCENTUALE
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S155PatrimonioImmobiliare
BEGIN

INSERT INTO WH.PL_D2_S155PatrimonioImmobiliare
	SELECT 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare' as ProcedureName, PATRIMONIO_IMMOBILIARE.RETE as i_rete, PATRIMONIO_IMMOBILIARE.COD_FISCALE as i_codiceFiscale,	
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	--GROUP BY PATRIMONIO_IMMOBILIARE.RETE, PATRIMONIO_IMMOBILIARE.COD_FISCALE, PATRIMONIO_IMMOBILIARE.descrizione, PATRIMONIO_IMMOBILIARE.TIPOLOGIA, PATRIMONIO_IMMOBILIARE.LOCALITA, PATRIMONIO_IMMOBILIARE.AFFITTO, PATRIMONIO_IMMOBILIARE.VALORE_STIMATO
	ORDER BY PATRIMONIO_IMMOBILIARE.valore_stimato DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S156ALtroPatrimonio
BEGIN
	INSERT INTO WH.PL_D2_S156ALtroPatrimonio
	SELECT 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio' as ProcedureName, PATRIMONIO_ALTRO.RETE as i_rete, PATRIMONIO_ALTRO.COD_FISCALE as i_codiceFiscale,	
	 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale',PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE ) as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
		--GROUP BY PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE, PATRIMONIO_ALTRO.DESCRIZIONE, PATRIMONIO_ALTRO.QUANTITA, PATRIMONIO_ALTRO.CTV 
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S157ConfrontoPiramidi
BEGIN
INSERT INTO WH.PL_D2_S157ConfrontoPiramidi
SELECT 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi' as ProcedureName, RETE as i_rete, [CodiceFiscale] as i_codiceFiscale,	
	 [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
  where [CodiceFiscale] is not null and [Rete] is not null
  order by ordinamento

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S158PiramideModello
BEGIN
INSERT INTO WH.PL_D2_S158PiramideModello
SELECT 'C6MartPeriodico.PL_D2_S158PiramideModello' as ProcedureName, BF.RETE as i_rete, BF.COD_FISCALE as i_codiceFiscale,	
		  BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF, BF.RETE, BF.COD_FISCALE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S159PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S159PatrimonioFinanziario
SELECT 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,

	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) AS Controvalore,
	cast(A.Percentuale  as decimal(38,6)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2)  as decimal(38,6))  AS Totale
FROM 
(		
	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')

		UNION ALL
		

		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL

		SELECT  ASUL.RETE AS RETE,
				ASUL.COD_FISCALE AS COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore				
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--group by RETE, COD_FISCALE, a.banca, a.ordinamento, a.assetclassid, a.assetclassname, a.controvalore, a.percentuale
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S160DettaglioProdottiBF
BEGIN

INSERT INTO WH.PL_D2_S160DettaglioProdottiBF
SELECT 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp2
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ' and
		tmp2.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP2.RETE = PATRBF.RETE) = (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp3
	WHERE  ID_AREA = 'LIQ' and tmp3.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP3.RETE = PATRBF.RETE) and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1 and
	PATRBF.CTV <>0

--GROUP BY PATRBF.COD_FISCALE, PATRBF.RETE, AREA.ID_AREA, AREA.NOME_AREA, AREA.ORDINAMENTO, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO, PATRBF.CTV,
--	MONIT.MINUS_PLUSVALENZA, RISCHIO_AGGR_PROG.COPERTURA, RISCHIO_AGGR_PROG.VAR_PERC_PTF, RISCHIO_AGGR_AREA.VAR_PERC_PTF, RISCHIO_AGGR_AREA.COPERTURA,
--	PATRBF.DATA_SOTTOSCRIZIONE, PATRBF.ID_CONTRATTO, PATRBF.TIPO_PRODOTTO, ANAGPROD.DESCR_PRODOTTO, ANAG_CC.COD_CC, RISCHIO_PROD.VAR_PERC_PTF,
--	RISCHIO_PROD.COPERTURA, PATRBF.ISIN, PATRBF.REND_ANNO, PATRBF.REND_SOTTOSCRIZIONE, PATRBF.PARTVIA_DISINV, RISCHIO_PROD.CREDITRISK, RISCHIO_PROD.CREDITRISKEMIT

ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S162DettaglioProdotti
BEGIN
	
INSERT INTO WH.PL_D2_S162DettaglioProdotti
	SELECT 'C6MartPeriodico.PL_D2_S162DettaglioProdotti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	--GROUP BY PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.INTERMEDIARIO, PATRTERZI.DATA_SOTTOSCRIZIONE, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO,
	--		 RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA, RISCHIOAGGREG.VAR_PERC_PTF, RISCHIOAGGREG.COPERTURA, PATRTERZI.COD_PRODOTTO, RISCHIOPROD.CREDITRISK, RISCHIOPROD.CREDITRISKEMIT
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s163patrimoniofinanziariomassetclass
BEGIN
INSERT INTO WH.pl_d2_s163patrimoniofinanziariomassetclass
SELECT DISTINCT 'C6MartPeriodico.pl_d2_s163patrimoniofinanziariomassetclass' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) as decimal(19,6)) AS Controvalore,
             (
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) /
                    case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    when 0 then 1
                    else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    end 
--                  SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE) as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'


             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

       ) VALORIASSET
       INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
      -- GROUP BY COD_FISCALE, RETE, ASSETCLASS.ORDINAMENTO, ASSETCLASS.ID_ASSETCLASS, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S164PolizzeAltriIstituti
BEGIN
INSERT INTO WH.PL_D2_S164PolizzeAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S165FondiAltriIstituti
BEGIN
	INSERT INTO WH.PL_D2_S165FondiAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S165FondiAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     
	 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	--	GROUP BY 
	--	PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.intermediario, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.DATA_SOTTOSCRIZIONE, PATRTERZI.FREQ_RATA,
	--	PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO, RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA,  RISCHIOAGGR.VAR_PERC_PTF, RISCHIOAGGR.COPERTURA, 
	--	PATRTERZI.COD_PRODOTTO, RISCHIOAGGR.CREDITRISK


END
-------------------------------------------------------------------------

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


INSERT INTO WH.PL_D2_S167DistribuzioneRischioCredito
	SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2

SELECT  
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE






SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S168TabellaEmittenti
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
INSERT INTO WH.PL_D2_S168TabellaEmittenti
	SELECT  'C6MartPeriodico.PL_D2_S168TabellaEmittenti' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1				
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ 
	
	 (select sum(ctv_prodotto) from 
		c6martperiodico.patrimonio_emittenti 
		where cod_fiscale = L.COD_FISCALE and rete = L.RETE
		and  ctv_prodotto > 0)  
	 
	 *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END
-------------------------------------------------------------------------
	
-----------------------------------------------PL_S43DettaglioProdottiBF
BEGIN

SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTSELFLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE  ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE


	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE

INSERT INTO WH.PL_S43DettaglioProdottiBF    
	
	
--FINE INTERVENTI OMNIA QUIII

--------------------------------------------------------------------------------------

SELECT   'C6MartPeriodico.PL_S43DettaglioProdottiBF' as ProcedureName, PATRBF.RETE, PATRBF.COD_FISCALE ,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')


left JOIN #TOTSELFLIQ t1 on t1.rete = PATRBF.RETE and t1.COD_FISCALE = PATRBF.COD_FISCALE
left JOIN #TOTLIQ t2 on t2.rete = PATRBF.RETE and t2.COD_FISCALE = PATRBF.COD_FISCALE

LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC


	drop table #TOTSELFLIQ
drop table #TOTLIQ




END
-------------------------------------------------------------------------


-------------------------------------------PL_D2_S169RischiomercatoRischiocredito

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito    
	SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S170RischioDiversificazione
BEGIN


INSERT INTO WH.PL_D2_S170RischioDiversificazione    
	SELECT  'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.RETE as i_rete, K.COD_FISCALE as i_codiceFiscale, 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0) + (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine

END 
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S171PatrimonioNonRappresentabileAssettClass
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 INSERT INTO WH.PL_D2_S171PatrimonioNonRappresentabileAssettClass    
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
	  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

  
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO,
		PATRBF.RETE,
		PATRBF.COD_FISCALE
	ORDER BY CONTROVALORE DESC
  
END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S137Bonus
BEGIN  
INSERT INTO WH.PL_MP_S137Bonus    
	  SELECT 'C6MartPeriodico.PL_MP_S137Bonus' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
			[RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S135MonitoraggioInvestimento
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_MP_S135MonitoraggioInvestimento    
	  SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
	
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S134MonitoraggioLiquidita
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT


INSERT INTO WH.PL_MP_S134MonitoraggioLiquidita    
	  SELECT 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita' as ProcedureName, MONIT.RETE as i_rete, MONIT.COD_FISCALE as i_codiceF,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			 PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
 

END
-------------------------------------------------------------------------

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

INSERT INTO WH.PL_MP_S134BISMonitoraggioLiqInv  
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S133BISPrincipaliProdotti
BEGIN	
;with ata as
(
SELECT PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceF, 
             ANAGPROD.DESCR_PRODOTTO AS descrProdotto
             ,PATRBF.CTV AS Controvalore
             ,CASE 
                    WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
                    ELSE RISCHIO_PROD.VAR_PERC_PTF
             END AS VaRprodotto
             ,((CASE 
                      WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
                      ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
                END) /    (CASE
                                    WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE) = 0 THEN 1
                                    ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)
                                 END))*100 as rischioRelativo    
             ,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)))*100  AS pesoRelativo
             ,PATRBF.ID_AREA  AS codAreaBisogno
       FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
       INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
             ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
       INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
             ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
       LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
             ON PATRBF.RETE= RISCHIO_PROD.RETE
             AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
             AND RISCHIO_PROD.COD_AGGREG = CASE 
                                                                    WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
                                                                         THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
                                                                          '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
                                                                   WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
                                                                   ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
                                                               END
                                                               + PATRBF.POSITION_ID 
       WHERE 
    PATRBF.CTV <>0
       AND PATRBF.ID_AREA <> 'Cc'
	   
       ), tot as
       (select *, row_number() over (partition by i_rete, i_codiceF ORDER BY rischioRelativo DESC, Controvalore DESC) as pos
         from ata
         )
		 INSERT INTO WH.PL_MP_S133BISPrincipaliProdotti  
		SELECT 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti' as ProcedureName, i_rete, i_codiceF, descrProdotto, Controvalore, VaRprodotto, 
																	rischioRelativo, pesoRelativo, codAreaBisogno from tot where pos <=10

END
-------------------------------------------------------------------------






----[C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
BEGIN

INSERT INTO wh.[PL_MP_S133AreeBisognoPrincProd]
SELECT 'PL_MP_S133AreeBisognoPrincProd', [Rete]
		,[CodiceFiscale]
		,[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
 
  order by ordinamento
		 

END

-------------------------------------------------------------------------

------ [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]

begin
	select count(*) as contaCC, cod_fiscale, rete
	into #contaCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete


	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete


INSERT INTO wh.PL_MP_S146RischioDiversificazione
SELECT 'PL_MP_S146RischioDiversificazione',K.RETE, K.COD_FISCALE,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND contaPOS - contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND contaPOS - contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
left join #contaCC cc on K.COD_FISCALE = cc.COD_FISCALE and K.RETE = cc.rete
left join #contaPOS pos on K.COD_FISCALE = pos.COD_FISCALE and K.RETE = pos.rete
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY Ordine





END 

-------------------------------------------------------------------------


---------[C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]

begin 
select sum(ctv_prodotto) as patr_compl, rete, cod_fiscale 
into #patr_compl
from c6martperiodico.patrimonio_emittenti 
where ctv_prodotto > 0
group by  rete, cod_fiscale 

INSERT INTO wh.PL_MP_S141AnalisiRisparmioTable
SELECT  'PL_MP_S141AnalisiRisparmioTable',RETE, COD_FISCALE,
	
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     l.COD_FISCALE,
     l.RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(p.patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	y.COD_FISCALE,
	y.RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	y.COD_FISCALE,
	y.RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
 inner join #patr_compl p on p.rete = l.rete and  p.cod_fiscale = l.cod_fiscale
GROUP BY 
   l. COD_FISCALE,
     l.RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 
-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]

BEGIN
	



--QUERY PER INTERMEDIARIO

INSERT INTO wh.PL_MP_S140AnalisiRisparmioCharts

SELECT 'PL_MP_S140AnalisiRisparmioCharts', RETE, COD_FISCALE, *FROM
(
SELECT
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo


--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE
)X


END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
   begin
   

   INSERT INTO wh.PL_MP_S137BISCapitaleProtetto
     SELECT 'PL_MP_S137BISCapitaleProtetto', RETE
	,CODFIS
	,DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT
	
	WHERE 1=1
	 

END
 
-------------------------------------------------------------------------



------------ [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
BEGIN
	
	INSERT INTO wh.PL_S43ContoCorrenteBF

	SELECT 'PL_S43ContoCorrenteBF', ANAG_CC.rete, ANAG_CC.cod_fiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
	 ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END

-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]

BEGIN 
	SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 
	into #TOTSELFLIQ1
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 

	

	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	into #PATRIMONIO_BF
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	
	INSERT INTO wh.[PL_S43BISDettaglioProdottiBF]
SELECT 'PL_S43BISDettaglioProdottiBF',	PATRBF.RETE, PATRBF.COD_FISCALE,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
ISNULL(PATRBF.ORDINAMENTO_PROGETTO,-1111) ,
--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,


	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 

LEFT JOIN #PATRIMONIO_BF bf on bf.rete = PATRBF.rete and bf.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN #TOTSELFLIQ1 tot on  tot.rete = PATRBF.rete and tot.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1

 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI


drop table #PATRIMONIO_BF


END

-------------------------------------------------------------------------
------ [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
BEGIN
	
	INSERT INTO wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento
	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', PATR_BF.RETE,
		PATR_BF.COD_FISCALE,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY  PATR_BF.RETE,
		PATR_BF.COD_FISCALE,PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_S82BisDatiSintetici]
	
BEGIN
	
	INSERT INTO wh.PL_S82BisDatiSintetici
	SELECT DISTINCT 'PL_S82BisDatiSintetici',
	 BF.RETE,
		BF.COD_FISCALE,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		
		END
		--AND BF.ORDINAMENTO_PROGETTO=1521667

-------------------------------------------------------------------------

----- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
begin

INSERT INTO wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass
SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', * FROM
(
	SELECT  
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
	
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        AND PATRBF.CTV <> 0.00
UNION ALL

SELECT  PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		

  GROUP BY 
      PATRBF.RETE,
		PATRBF.COD_FISCALE, PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 
		)XX

END

-------------------------------------------------------------------------


------------------------------- [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
BEGIN

	select count(*) as contaCC, cod_fiscale, rete
	into #contaCCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete

	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOSS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete
    SELECT isnull(sum(ctv),0) as ctvbf, cod_fiscale, rete
	INTO #ctvbf
	FROM  c6martperiodico.patrimonio_bf  			
	where CTV > 0
	group by cod_fiscale, rete
				      
	SELECT isnull(sum(ctv),0) as ctvterzi, cod_fiscale, rete 
	INTO #ctvterzi
	FROM  c6martperiodico.patrimonio_terzi  			
	where CTV > 0
	group by cod_fiscale, rete 


	INSERT INTO wh.PL_D_S170RischioDiversificazione
SELECT 'PL_D_S170RischioDiversificazione',K.RETE,K.COD_FISCALE,

K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then COALESCE(ctvbf,0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then COALESCE(ctvterzi,0)
	when cod_Aggreg = 'COMPLESSIVO' then COALESCE(ctvbf,0) + COALESCE(ctvterzi,0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (COALESCE(contaPOS,0) - COALESCE(contacc,0) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
full outer join #contaCCC cc on k.COD_FISCALE = cc.cod_fiscale and k.Rete = cc.rete
full outer join #contaPOSS pos on k.COD_FISCALE = pos.cod_fiscale and k.Rete = pos.rete
full outer join #ctvbf bf on k.COD_FISCALE = bf.cod_fiscale and k.Rete = bf.rete
full outer join #ctvterzi terzi on k.COD_FISCALE = terzi.cod_fiscale and k.Rete = terzi.rete
WHERE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine


END 

-------------------------------------------------------------------------

----------------------------------[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 truncate table wh.PL_S96RischiomercatoRischiocredito

 INSERT INTO wh.PL_S96RischiomercatoRischiocredito
    SELECT 'PL_S96RischiomercatoRischiocredito',  RETE, COD_FISCALE, * 
	FROM (
	SELECT
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
   GROUP BY 
   PATRBF.RETE,
   PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc
  --  CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	
	)X
	order by ordine
	END

-------------------------------------------------------------------------

-------------------- [C6MartPeriodico].[PL_S80Alternativa]
	
BEGIN


   SELECT COUNT(*) as MONIT_ATTIV, RETE, COD_FISCALE
       into #aa2
    FROM C6MARTPERIODICO.MONITORAGGIO_ATTUALE
       GROUP BY RETE, COD_FISCALE
   
    
       SELECT COUNT(*) as MONIT_INIT, RETE, COD_FISCALE
       into #ab2
       FROM C6MARTPERIODICO.MONITORAGGIO_INIZIALE
       GROUP BY  RETE, COD_FISCALE
       
       select  a.RETE, a.COD_FISCALE
       into #pos2
       from #aa2 a inner join #ab2 b on a.rete = b.rete and a.COD_FISCALE = b.COD_FISCALE

       INSERT INTO wh.PL_S80Alternativa
       SELECT 'PL_S80Alternativa' as ProcedureName, v.RETE as i_rete, v.Cod_Fiscale as i_codiceFiscale, v.[RETE]
      ,v.[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio] v
  inner join #pos2 p on p.rete = v.rete and p.Cod_Fiscale = v.Cod_Fiscale


END

----------------------------------------------
--maledetti
begin

truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )
SELECT 
 DISTINCT
                    contratti.Cod_Fiscale as i_CodiceFiscale
                    ,contratti.Rete as i_Rete
                    --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
                    --*************************************************
                    ,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
                    ,'Diagnosi' as descrizioneDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
                           ELSE -1
                    END AS idModelloDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
                           ELSE -1
                    END AS idReportDiagnosi
                    ,'Monitoraggio' as descrizioneMonitoraggio
                    ,4 as idReportMonitoraggio--4
                    ,CASE isnull(tip_contratto,0) 
                                 WHEN 0 THEN 12--12
                                 WHEN 1 THEN 12--12
                                 WHEN 2 THEN 13--13
                    END 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 
                    ,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
             left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
                    on contratti.Rete = promotori.Rete
                    and contratti.Cod_Agente = promotori.Id_Promotore
                    --65992
             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
                    on contratti.Rete = patrimonioBF.Rete
                    and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
                    -- 64864

             left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
                    on contratti.Rete = patrimonioAltro.Rete
                    and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
                    --64864

             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
                    --64864
                    
             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
                    --64864
             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'
                    --modificata da Valerio 12 marzo 2012
                    --left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
             inner 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'
                    --64864
                    
                                 
             left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
                    on contratti.Rete = PARTITEVIAGGIANTI.RETE
                    and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
                    --64864

             
             left join (
                    select distinct monit.rete, monit.cod_fiscale, 
                           case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
                           when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
                    from c6martperiodico.monitoraggio_attuale monit
                           left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
                           left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
                    ) monit
                    on patrimonioBF.rete = monit.rete
                    and patrimonioBF.cod_fiscale = monit.cod_fiscale     

             WHERE 1=1
             --144104
		end	
-------------------------------------------------------------------------
END



GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_20180619]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [wh].[MERGED_PROCEDURE_20180619]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.pl_d2_s169rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d_s170rischiodiversificazione
------------------------------------------------------------------------

-------------------------------------------PL_S82DatiSintetici
INSERT INTO WH.PL_S82DatiSintetici
SELECT 'C6MartPeriodico.PL_S82DatiSintetici' as ProcedureName, PATRAREA.RETE as i_rete ,PATRAREA.COD_FISCALE as i_codiceFiscale,	
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

-------------------------------------------------------------------------

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

SELECT
       [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6MartPeriodico].[PIRAMIDE_MOD]
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
INSERT INTO WH.PL_S85RendimentoPortafoglioCono
SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END
-------------------------------------------------------------------------

-------------------------------------------pl_areemonitorate
BEGIN

INSERT INTO WH.PL_AreeMonitorate
SELECT 'C6MartPeriodico.PL_AreeMonitorate' as ProcedureName, [RETE] as i_rete ,[COD_FISCALE] as i_codiceFiscale, 
NEED_AREA,
NEED_ESTESA,
max(NOME_PROGETTO) as NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ISNULL(ORDINAMENTO_PROGETTO,-1111),
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
	    PIRMOD.RETE AS RETE,
		PIRMOD.COD_FISCALE as COD_FISCALE,
		PIRMOD.ID_AREA AS Need_Area,		
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA	
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
	    PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
		PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

  

) A

GROUP BY
RETE,
COD_FISCALE,
NEED_AREA,
NEED_ESTESA,
ISNULL(ORDINAMENTO_PROGETTO,-1111)

	ORDER BY
		ORDINE
END
-------------------------------------------------------------------------

-------------------------------------------PL_S43LineaSelfBF
BEGIN
	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		isnull(ctv,0) < 0
END
-------------------------------------------------------------------------

-------------------------------------------PL_S10PatrimonioFinanziario
BEGIN
	
	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  order by ordinamento
END 
-------------------------------------------------------------------------

-------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
BEGIN

INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
	SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1	
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END
-------------------------------------------------------------------------

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

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)

	INSERT INTO WH.PL_D2_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, M.RETE as i_rete, M.COD_FISCALE as i_codiceFiscale,
	
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) as dataInizioValidita,
		CR.MAX_VAR as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		ProfiliDiRischio.NOMEPROFILO  as nomeProfilo,
        m.riskclass as riskclass,
        m.experience as experince
	FROM	
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s152patrimonio
BEGIN



SELECT SUM(CTV) as Value, patrBF.Rete,  patrBF.Cod_Fiscale
into #PatrimonioBF
             FROM C6MartPeriodico.PATRIMONIO_BF patrBF
             WHERE patrBF.id_area not in ('CC','SELF')  
             group by patrBF.Cod_Fiscale, patrBF.Rete


       SELECT SUM(IMPORTO) as Value, Rete, Cod_Fiscale
       into #Part_viaggianti 
             FROM
             (
                           SELECT SUM(IMPORTO) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
                           union 
                           SELECT SUM(PARTVIA_DISINV) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.patrimonio_bf partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
             ) T
             group by  Rete, Cod_Fiscale
     
    SELECT SUM(ROUND(CTV,2)) as Value, patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
                    into #PatrimonioTerzi
             FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
             group by patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
             
             

       SELECT SUM(patrImm.VALORE_STIMATO) as Value,
       patrImm.Rete, patrImm.Cod_Fiscale
       into #PatrimonioImmobiliare
             FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
             group by patrImm.Rete, patrImm.Cod_Fiscale
             
       SELECT SUM(patrAltro.ctv) as Value, patrAltro.Rete, patrAltro.Cod_Fiscale
       into #PatrimonioAltro
             FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
             group by patrAltro.Rete, patrAltro.Cod_Fiscale


             select distinct rete, cod_fiscale
             into #merge
             from
             (
                    select rete, cod_fiscale from #PatrimonioBF UNION ALL
                    select rete, cod_fiscale from #PatrimonioTerzi UNION ALL
                    select rete, cod_fiscale from #Part_viaggianti  UNION ALL
                    select rete, cod_fiscale from #PatrimonioImmobiliare UNION ALL
                    select rete, cod_fiscale from  #PatrimonioAltro
             )x

			 truncate table WH.pl_d2_s152patrimonio	

             ;with data as
             (
             select m.rete, m.cod_fiscale, 
                    cast(COALESCE(a.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as PatrimonioBF,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as FinanziarioCTV,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00)+COALESCE(d.value,0.00)+COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioTotale,
                    cast(COALESCE(b.value,0.00) as numeric(18,2)) as PatrimonioTerziCTV,
                    cast(COALESCE(d.value,0.00) as numeric(18,2)) as PatrimonioImmobiliare,
                    cast(COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioAltro
             from #merge m
                    left join #PatrimonioBF a                  on a.rete = m.rete and a.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioTerzi b               on b.rete = m.rete and b.cod_fiscale = m.cod_fiscale
                    left join #Part_viaggianti c               on c.rete = m.rete and c.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioImmobiliare d         on d.rete = m.rete and d.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioAltro e           on e.rete = m.rete and e.cod_fiscale = m.cod_fiscale
                    )

					
		INSERT INTO WH.pl_d2_s152patrimonio		
	    SELECT  'C6MartPeriodico.pl_d2_s152patrimonio' as ProcedureName, rete as i_rete, cod_fiscale as i_codiceFiscale,
                    PatrimonioBF, 
                    PatrimonioTerziCTV,
                    FinanziarioCTV,
                    CONVERT(decimal(6,2),
                           case when PatrimonioTotale = 0.00 then 0.00 
                           else FinanziarioCTV / PatrimonioTotale end 
                    * 100.00) AS FinanziarioPerc,
                    PatrimonioImmobiliare,
                    CONVERT(decimal(6,2),
                           case  when PatrimonioTotale = 0.00 then 0.00 
                           else PatrimonioImmobiliare/PatrimonioTotale end 
                            
                    * 100.00) AS ImmobiliarePerc,
                    PatrimonioAltro,
                    CONVERT(decimal(6,2),
                           case PatrimonioTotale when 0.00 then 0.00 
                           else PatrimonioAltro/PatrimonioTotale end
                           
                    * 100.00) AS AltroPerc,
                    PatrimonioTotale as TotaleCTV
                    from data


END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S153PatrimonioFinanziario
BEGIN
	INSERT INTO WH.PL_D2_S153PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, Rete as i_rete, Cod_Fiscale as i_codiceFiscale, 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
		    Rete,
			Cod_Fiscale,
			Intermediario,
			Ordine,
			CASE Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_fiscale) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_Fiscale)) / 
				wh.IsZero((SUM(ctv) over (partition by 'Totale'+Rete+Cod_fiscale)),1)
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
			    patrBF.Rete as Rete,
				patrBF.Cod_Fiscale as Cod_Fiscale,
				CASE patrBF.Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1				
					and patrBF.id_area  not in ('CC','SELF')
				GROUP BY patrBF.Rete, patrBF.Cod_Fiscale
			UNION ALL

			SELECT 
			    patrTerzi.Rete as Rete,
				patrTerzi.Cod_Fiscale as Cod_Fiscale,
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
				GROUP BY patrTerzi.Intermediario, patrTerzi.Rete, patrTerzi.Cod_Fiscale

		) PATR
		GROUP BY Cod_Fiscale, Rete, intermediario, ordine, ctv
	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S154PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S154PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2) as decimal(38,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),0)
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 

		UNION ALL
	
		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL
		--CON SKANDIA
		SELECT 
				ASUL.RETE AS RETE,
				ASUL.COD_FISCALE as COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
		    PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	--GROUP BY RETE, COD_FISCALE, ASSETCLASS.ordinamento, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE
		
) A
--GROUP BY RETE, COD_FISCALE, A.BANCA, A.ORDINAMENTO, A.ASSETCLASSID, A.ASSETCLASSNAME, A.CONTROVALORE, A.PERCENTUALE
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S155PatrimonioImmobiliare
BEGIN

INSERT INTO WH.PL_D2_S155PatrimonioImmobiliare
	SELECT 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare' as ProcedureName, PATRIMONIO_IMMOBILIARE.RETE as i_rete, PATRIMONIO_IMMOBILIARE.COD_FISCALE as i_codiceFiscale,	
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	--GROUP BY PATRIMONIO_IMMOBILIARE.RETE, PATRIMONIO_IMMOBILIARE.COD_FISCALE, PATRIMONIO_IMMOBILIARE.descrizione, PATRIMONIO_IMMOBILIARE.TIPOLOGIA, PATRIMONIO_IMMOBILIARE.LOCALITA, PATRIMONIO_IMMOBILIARE.AFFITTO, PATRIMONIO_IMMOBILIARE.VALORE_STIMATO
	ORDER BY PATRIMONIO_IMMOBILIARE.valore_stimato DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S156ALtroPatrimonio
BEGIN
	INSERT INTO WH.PL_D2_S156ALtroPatrimonio
	SELECT 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio' as ProcedureName, PATRIMONIO_ALTRO.RETE as i_rete, PATRIMONIO_ALTRO.COD_FISCALE as i_codiceFiscale,	
	 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale',PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE ) as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
		--GROUP BY PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE, PATRIMONIO_ALTRO.DESCRIZIONE, PATRIMONIO_ALTRO.QUANTITA, PATRIMONIO_ALTRO.CTV 
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S157ConfrontoPiramidi
BEGIN
INSERT INTO WH.PL_D2_S157ConfrontoPiramidi
SELECT 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi' as ProcedureName, RETE as i_rete, [CodiceFiscale] as i_codiceFiscale,	
	 [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
  where [CodiceFiscale] is not null and [Rete] is not null
  order by ordinamento

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S158PiramideModello
BEGIN
INSERT INTO WH.PL_D2_S158PiramideModello
SELECT 'C6MartPeriodico.PL_D2_S158PiramideModello' as ProcedureName, BF.RETE as i_rete, BF.COD_FISCALE as i_codiceFiscale,	
		  BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF, BF.RETE, BF.COD_FISCALE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S159PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S159PatrimonioFinanziario
SELECT 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,

	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) AS Controvalore,
	cast(A.Percentuale  as decimal(38,6)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2)  as decimal(38,6))  AS Totale
FROM 
(		
	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')

		UNION ALL
		

		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL

		SELECT  ASUL.RETE AS RETE,
				ASUL.COD_FISCALE AS COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore				
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--group by RETE, COD_FISCALE, a.banca, a.ordinamento, a.assetclassid, a.assetclassname, a.controvalore, a.percentuale
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S160DettaglioProdottiBF
BEGIN

INSERT INTO WH.PL_D2_S160DettaglioProdottiBF
SELECT 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp2
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ' and
		tmp2.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP2.RETE = PATRBF.RETE) = (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp3
	WHERE  ID_AREA = 'LIQ' and tmp3.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP3.RETE = PATRBF.RETE) and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1 and
	PATRBF.CTV <>0

--GROUP BY PATRBF.COD_FISCALE, PATRBF.RETE, AREA.ID_AREA, AREA.NOME_AREA, AREA.ORDINAMENTO, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO, PATRBF.CTV,
--	MONIT.MINUS_PLUSVALENZA, RISCHIO_AGGR_PROG.COPERTURA, RISCHIO_AGGR_PROG.VAR_PERC_PTF, RISCHIO_AGGR_AREA.VAR_PERC_PTF, RISCHIO_AGGR_AREA.COPERTURA,
--	PATRBF.DATA_SOTTOSCRIZIONE, PATRBF.ID_CONTRATTO, PATRBF.TIPO_PRODOTTO, ANAGPROD.DESCR_PRODOTTO, ANAG_CC.COD_CC, RISCHIO_PROD.VAR_PERC_PTF,
--	RISCHIO_PROD.COPERTURA, PATRBF.ISIN, PATRBF.REND_ANNO, PATRBF.REND_SOTTOSCRIZIONE, PATRBF.PARTVIA_DISINV, RISCHIO_PROD.CREDITRISK, RISCHIO_PROD.CREDITRISKEMIT

ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S162DettaglioProdotti
BEGIN
	
INSERT INTO WH.PL_D2_S162DettaglioProdotti
	SELECT 'C6MartPeriodico.PL_D2_S162DettaglioProdotti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	--GROUP BY PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.INTERMEDIARIO, PATRTERZI.DATA_SOTTOSCRIZIONE, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO,
	--		 RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA, RISCHIOAGGREG.VAR_PERC_PTF, RISCHIOAGGREG.COPERTURA, PATRTERZI.COD_PRODOTTO, RISCHIOPROD.CREDITRISK, RISCHIOPROD.CREDITRISKEMIT
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s163patrimoniofinanziariomassetclass
BEGIN
INSERT INTO WH.pl_d2_s163patrimoniofinanziariomassetclass
SELECT DISTINCT 'C6MartPeriodico.pl_d2_s163patrimoniofinanziariomassetclass' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) as decimal(19,6)) AS Controvalore,
             (
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) /
                    case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    when 0 then 1
                    else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    end 
--                  SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE) as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'


             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

       ) VALORIASSET
       INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
      -- GROUP BY COD_FISCALE, RETE, ASSETCLASS.ORDINAMENTO, ASSETCLASS.ID_ASSETCLASS, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S164PolizzeAltriIstituti
BEGIN
INSERT INTO WH.PL_D2_S164PolizzeAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S165FondiAltriIstituti
BEGIN
	INSERT INTO WH.PL_D2_S165FondiAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S165FondiAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     
	 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	--	GROUP BY 
	--	PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.intermediario, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.DATA_SOTTOSCRIZIONE, PATRTERZI.FREQ_RATA,
	--	PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO, RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA,  RISCHIOAGGR.VAR_PERC_PTF, RISCHIOAGGR.COPERTURA, 
	--	PATRTERZI.COD_PRODOTTO, RISCHIOAGGR.CREDITRISK


END
-------------------------------------------------------------------------

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


INSERT INTO WH.PL_D2_S167DistribuzioneRischioCredito
	SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2

SELECT  
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE






SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S168TabellaEmittenti
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
INSERT INTO WH.PL_D2_S168TabellaEmittenti
	SELECT  'C6MartPeriodico.PL_D2_S168TabellaEmittenti' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1				
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ 
	
	 (select sum(ctv_prodotto) from 
		c6martperiodico.patrimonio_emittenti 
		where cod_fiscale = L.COD_FISCALE and rete = L.RETE
		and  ctv_prodotto > 0)  
	 
	 *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END
-------------------------------------------------------------------------
	
-----------------------------------------------PL_S43DettaglioProdottiBF
BEGIN

SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTSELFLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE  ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE


	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE

INSERT INTO WH.PL_S43DettaglioProdottiBF    
	
	
--FINE INTERVENTI OMNIA QUIII

--------------------------------------------------------------------------------------

SELECT   'C6MartPeriodico.PL_S43DettaglioProdottiBF' as ProcedureName, PATRBF.RETE, PATRBF.COD_FISCALE ,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')


left JOIN #TOTSELFLIQ t1 on t1.rete = PATRBF.RETE and t1.COD_FISCALE = PATRBF.COD_FISCALE
left JOIN #TOTLIQ t2 on t2.rete = PATRBF.RETE and t2.COD_FISCALE = PATRBF.COD_FISCALE

LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC


	drop table #TOTSELFLIQ
drop table #TOTLIQ




END
-------------------------------------------------------------------------


-------------------------------------------PL_D2_S169RischiomercatoRischiocredito

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito    
	SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S170RischioDiversificazione
BEGIN


INSERT INTO WH.PL_D2_S170RischioDiversificazione    
	SELECT  'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.RETE as i_rete, K.COD_FISCALE as i_codiceFiscale, 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0) + (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine

END 
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S171PatrimonioNonRappresentabileAssettClass
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 INSERT INTO WH.PL_D2_S171PatrimonioNonRappresentabileAssettClass    
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
	  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

  
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO,
		PATRBF.RETE,
		PATRBF.COD_FISCALE
	ORDER BY CONTROVALORE DESC
  
END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S137Bonus
BEGIN  
INSERT INTO WH.PL_MP_S137Bonus    
	  SELECT 'C6MartPeriodico.PL_MP_S137Bonus' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
			[RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S135MonitoraggioInvestimento
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_MP_S135MonitoraggioInvestimento    
	  SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
	
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S134MonitoraggioLiquidita
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT


INSERT INTO WH.PL_MP_S134MonitoraggioLiquidita    
	  SELECT 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita' as ProcedureName, MONIT.RETE as i_rete, MONIT.COD_FISCALE as i_codiceF,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			 PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
 

END
-------------------------------------------------------------------------

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

INSERT INTO WH.PL_MP_S134BISMonitoraggioLiqInv  
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S133BISPrincipaliProdotti
BEGIN	
;with ata as
(
SELECT PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceF, 
             ANAGPROD.DESCR_PRODOTTO AS descrProdotto
             ,PATRBF.CTV AS Controvalore
             ,CASE 
                    WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
                    ELSE RISCHIO_PROD.VAR_PERC_PTF
             END AS VaRprodotto
             ,((CASE 
                      WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
                      ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
                END) /    (CASE
                                    WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE) = 0 THEN 1
                                    ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)
                                 END))*100 as rischioRelativo    
             ,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)))*100  AS pesoRelativo
             ,PATRBF.ID_AREA  AS codAreaBisogno
       FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
       INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
             ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
       INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
             ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
       LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
             ON PATRBF.RETE= RISCHIO_PROD.RETE
             AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
             AND RISCHIO_PROD.COD_AGGREG = CASE 
                                                                    WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
                                                                         THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
                                                                          '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
                                                                   WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
                                                                   ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
                                                               END
                                                               + PATRBF.POSITION_ID 
       WHERE 
    PATRBF.CTV <>0
       AND PATRBF.ID_AREA <> 'Cc'
	   
       ), tot as
       (select *, row_number() over (partition by i_rete, i_codiceF ORDER BY rischioRelativo DESC, Controvalore DESC) as pos
         from ata
         )
		 INSERT INTO WH.PL_MP_S133BISPrincipaliProdotti  
		SELECT 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti' as ProcedureName, i_rete, i_codiceF, descrProdotto, Controvalore, VaRprodotto, 
																	rischioRelativo, pesoRelativo, codAreaBisogno from tot where pos <=10

END
-------------------------------------------------------------------------






----[C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
BEGIN

INSERT INTO wh.[PL_MP_S133AreeBisognoPrincProd]
SELECT 'PL_MP_S133AreeBisognoPrincProd', [Rete]
		,[CodiceFiscale]
		,[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
 
  order by ordinamento
		 

END

-------------------------------------------------------------------------

------ [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]

begin
	select count(*) as contaCC, cod_fiscale, rete
	into #contaCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete


	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete


INSERT INTO wh.PL_MP_S146RischioDiversificazione
SELECT 'PL_MP_S146RischioDiversificazione',K.RETE, K.COD_FISCALE,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND contaPOS - contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND contaPOS - contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
left join #contaCC cc on K.COD_FISCALE = cc.COD_FISCALE and K.RETE = cc.rete
left join #contaPOS pos on K.COD_FISCALE = pos.COD_FISCALE and K.RETE = pos.rete
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY Ordine





END 

-------------------------------------------------------------------------


---------[C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]

begin 
select sum(ctv_prodotto) as patr_compl, rete, cod_fiscale 
into #patr_compl
from c6martperiodico.patrimonio_emittenti 
where ctv_prodotto > 0
group by  rete, cod_fiscale 

INSERT INTO wh.PL_MP_S141AnalisiRisparmioTable
SELECT  'PL_MP_S141AnalisiRisparmioTable',RETE, COD_FISCALE,
	
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     l.COD_FISCALE,
     l.RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(p.patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	y.COD_FISCALE,
	y.RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	y.COD_FISCALE,
	y.RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
 inner join #patr_compl p on p.rete = l.rete and  p.cod_fiscale = l.cod_fiscale
GROUP BY 
   l. COD_FISCALE,
     l.RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 
-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]

BEGIN
	



--QUERY PER INTERMEDIARIO

INSERT INTO wh.PL_MP_S140AnalisiRisparmioCharts

SELECT 'PL_MP_S140AnalisiRisparmioCharts', RETE, COD_FISCALE, *FROM
(
SELECT
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo


--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE
)X


END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
   begin
   

   INSERT INTO wh.PL_MP_S137BISCapitaleProtetto
     SELECT 'PL_MP_S137BISCapitaleProtetto', RETE
	,CODFIS
	,DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT
	
	WHERE 1=1
	 

END
 
-------------------------------------------------------------------------



------------ [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
BEGIN
	
	INSERT INTO wh.PL_S43ContoCorrenteBF

	SELECT 'PL_S43ContoCorrenteBF', ANAG_CC.rete, ANAG_CC.cod_fiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
	 ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END

-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]

BEGIN 
	SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 
	into #TOTSELFLIQ1
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 

	

	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	into #PATRIMONIO_BF
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	
	INSERT INTO wh.[PL_S43BISDettaglioProdottiBF]
SELECT 'PL_S43BISDettaglioProdottiBF',	PATRBF.RETE, PATRBF.COD_FISCALE,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
ISNULL(PATRBF.ORDINAMENTO_PROGETTO,-1111) ,
--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,


	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 

LEFT JOIN #PATRIMONIO_BF bf on bf.rete = PATRBF.rete and bf.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN #TOTSELFLIQ1 tot on  tot.rete = PATRBF.rete and tot.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1

 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI


drop table #PATRIMONIO_BF


END

-------------------------------------------------------------------------
------ [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
BEGIN
	
	INSERT INTO wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento
	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', PATR_BF.RETE,
		PATR_BF.COD_FISCALE,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY  PATR_BF.RETE,
		PATR_BF.COD_FISCALE,PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_S82BisDatiSintetici]
	
BEGIN
	
	INSERT INTO wh.PL_S82BisDatiSintetici
	SELECT DISTINCT 'PL_S82BisDatiSintetici',
	 BF.RETE,
		BF.COD_FISCALE,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		
		END
		--AND BF.ORDINAMENTO_PROGETTO=1521667

-------------------------------------------------------------------------

----- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
begin

INSERT INTO wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass
SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', * FROM
(
	SELECT  
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
	
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        AND PATRBF.CTV <> 0.00
UNION ALL

SELECT  PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		

  GROUP BY 
      PATRBF.RETE,
		PATRBF.COD_FISCALE, PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 
		)XX

END

-------------------------------------------------------------------------


------------------------------- [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
BEGIN

	select count(*) as contaCC, cod_fiscale, rete
	into #contaCCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete

	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOSS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete
    SELECT isnull(sum(ctv),0) as ctvbf, cod_fiscale, rete
	INTO #ctvbf
	FROM  c6martperiodico.patrimonio_bf  			
	where CTV > 0
	group by cod_fiscale, rete
				      
	SELECT isnull(sum(ctv),0) as ctvterzi, cod_fiscale, rete 
	INTO #ctvterzi
	FROM  c6martperiodico.patrimonio_terzi  			
	where CTV > 0
	group by cod_fiscale, rete 


	INSERT INTO wh.PL_D_S170RischioDiversificazione
SELECT 'PL_D_S170RischioDiversificazione',K.RETE,K.COD_FISCALE,

K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then COALESCE(ctvbf,0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then COALESCE(ctvterzi,0)
	when cod_Aggreg = 'COMPLESSIVO' then COALESCE(ctvbf,0) + COALESCE(ctvterzi,0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (COALESCE(contaPOS,0) - COALESCE(contacc,0) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
full outer join #contaCCC cc on k.COD_FISCALE = cc.cod_fiscale and k.Rete = cc.rete
full outer join #contaPOSS pos on k.COD_FISCALE = pos.cod_fiscale and k.Rete = pos.rete
full outer join #ctvbf bf on k.COD_FISCALE = bf.cod_fiscale and k.Rete = bf.rete
full outer join #ctvterzi terzi on k.COD_FISCALE = terzi.cod_fiscale and k.Rete = terzi.rete
WHERE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine


END 

-------------------------------------------------------------------------

----------------------------------[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 truncate table wh.PL_S96RischiomercatoRischiocredito

 INSERT INTO wh.PL_S96RischiomercatoRischiocredito
    SELECT 'PL_S96RischiomercatoRischiocredito',  RETE, COD_FISCALE, * 
	FROM (
	SELECT
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
   GROUP BY 
   PATRBF.RETE,
   PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc
  --  CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	
	)X
	order by ordine
	END

-------------------------------------------------------------------------

-------------------- [C6MartPeriodico].[PL_S80Alternativa]
	
BEGIN


   SELECT COUNT(*) as MONIT_ATTIV, RETE, COD_FISCALE
       into #aa2
    FROM C6MARTPERIODICO.MONITORAGGIO_ATTUALE
       GROUP BY RETE, COD_FISCALE
   
    
       SELECT COUNT(*) as MONIT_INIT, RETE, COD_FISCALE
       into #ab2
       FROM C6MARTPERIODICO.MONITORAGGIO_INIZIALE
       GROUP BY  RETE, COD_FISCALE
       
       select  a.RETE, a.COD_FISCALE
       into #pos2
       from #aa2 a inner join #ab2 b on a.rete = b.rete and a.COD_FISCALE = b.COD_FISCALE

       INSERT INTO wh.PL_S80Alternativa
       SELECT 'PL_S80Alternativa' as ProcedureName, v.RETE as i_rete, v.Cod_Fiscale as i_codiceFiscale, v.[RETE]
      ,v.[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio] v
  inner join #pos2 p on p.rete = v.rete and p.Cod_Fiscale = v.Cod_Fiscale


END

----------------------------------------------
--maledetti
begin

truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )
SELECT 
 DISTINCT
                    contratti.Cod_Fiscale as i_CodiceFiscale
                    ,contratti.Rete as i_Rete
                    --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
                    --*************************************************
                    ,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
                    ,'Diagnosi' as descrizioneDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
                           ELSE -1
                    END AS idModelloDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
                           ELSE -1
                    END AS idReportDiagnosi
                    ,'Monitoraggio' as descrizioneMonitoraggio
                    ,4 as idReportMonitoraggio--4
                    ,CASE isnull(tip_contratto,0) 
                                 WHEN 0 THEN 12--12
                                 WHEN 1 THEN 12--12
                                 WHEN 2 THEN 13--13
                    END 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 
                    ,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
             left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
                    on contratti.Rete = promotori.Rete
                    and contratti.Cod_Agente = promotori.Id_Promotore
                    --65992
             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
                    on contratti.Rete = patrimonioBF.Rete
                    and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
                    -- 64864

             left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
                    on contratti.Rete = patrimonioAltro.Rete
                    and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
                    --64864

             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
                    --64864
                    
             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
                    --64864
             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'
                    --modificata da Valerio 12 marzo 2012
                    --left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
             inner 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'
                    --64864
                    
                                 
             left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
                    on contratti.Rete = PARTITEVIAGGIANTI.RETE
                    and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
                    --64864

             
             left join (
                    select distinct monit.rete, monit.cod_fiscale, 
                           case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
                           when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
                    from c6martperiodico.monitoraggio_attuale monit
                           left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
                           left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
                    ) monit
                    on patrimonioBF.rete = monit.rete
                    and patrimonioBF.cod_fiscale = monit.cod_fiscale     

             WHERE 1=1
             --144104
		end	
-------------------------------------------------------------------------
END


GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_20181010]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [wh].[MERGED_PROCEDURE_20181010]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.pl_d2_s169rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d_s170rischiodiversificazione
------------------------------------------------------------------------

-------------------------------------------PL_S82DatiSintetici
INSERT INTO WH.PL_S82DatiSintetici
SELECT 'C6MartPeriodico.PL_S82DatiSintetici' as ProcedureName, PATRAREA.RETE as i_rete ,PATRAREA.COD_FISCALE as i_codiceFiscale,	
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

-------------------------------------------------------------------------

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

SELECT
       [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6MartPeriodico].[PIRAMIDE_MOD]
	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
INSERT INTO WH.PL_S85RendimentoPortafoglioCono
SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END
-------------------------------------------------------------------------

-------------------------------------------pl_areemonitorate
BEGIN

INSERT INTO WH.PL_AreeMonitorate
SELECT 'C6MartPeriodico.PL_AreeMonitorate' as ProcedureName, [RETE] as i_rete ,[COD_FISCALE] as i_codiceFiscale, 
NEED_AREA,
NEED_ESTESA,
max(NOME_PROGETTO) as NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ISNULL(ORDINAMENTO_PROGETTO,-1111),
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
	    PIRMOD.RETE AS RETE,
		PIRMOD.COD_FISCALE as COD_FISCALE,
		PIRMOD.ID_AREA AS Need_Area,		
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA	
        ) PIRMOD
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
	    PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
      WHERE 
		PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

  

) A

GROUP BY
RETE,
COD_FISCALE,
NEED_AREA,
NEED_ESTESA,
ISNULL(ORDINAMENTO_PROGETTO,-1111)

	ORDER BY
		ORDINE
END
-------------------------------------------------------------------------

-------------------------------------------PL_S43LineaSelfBF
BEGIN
	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		isnull(ctv,0) < 0
END
-------------------------------------------------------------------------

-------------------------------------------PL_S10PatrimonioFinanziario
BEGIN
	
	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  order by ordinamento
END 
-------------------------------------------------------------------------

-------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
BEGIN

INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
	SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1	
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END
-------------------------------------------------------------------------

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

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)

	INSERT INTO WH.PL_D2_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, M.RETE as i_rete, M.COD_FISCALE as i_codiceFiscale,
	
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) as dataInizioValidita,
		CR.MAX_VAR as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		ProfiliDiRischio.NOMEPROFILO  as nomeProfilo,
        m.riskclass as riskclass,
        m.experience as experince
	FROM	
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s152patrimonio
BEGIN



SELECT SUM(CTV) as Value, patrBF.Rete,  patrBF.Cod_Fiscale
into #PatrimonioBF
             FROM C6MartPeriodico.PATRIMONIO_BF patrBF
             WHERE patrBF.id_area not in ('CC','SELF')  
             group by patrBF.Cod_Fiscale, patrBF.Rete


       SELECT SUM(IMPORTO) as Value, Rete, Cod_Fiscale
       into #Part_viaggianti 
             FROM
             (
                           SELECT SUM(IMPORTO) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
                           union 
                           SELECT SUM(PARTVIA_DISINV) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.patrimonio_bf partvia
                                 
                                        group by partvia.Rete, partvia.Cod_Fiscale
             ) T
             group by  Rete, Cod_Fiscale
     
    SELECT SUM(ROUND(CTV,2)) as Value, patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
                    into #PatrimonioTerzi
             FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
             group by patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
             
             

       SELECT SUM(patrImm.VALORE_STIMATO) as Value,
       patrImm.Rete, patrImm.Cod_Fiscale
       into #PatrimonioImmobiliare
             FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
             group by patrImm.Rete, patrImm.Cod_Fiscale
             
       SELECT SUM(patrAltro.ctv) as Value, patrAltro.Rete, patrAltro.Cod_Fiscale
       into #PatrimonioAltro
             FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
             group by patrAltro.Rete, patrAltro.Cod_Fiscale


             select distinct rete, cod_fiscale
             into #merge
             from
             (
                    select rete, cod_fiscale from #PatrimonioBF UNION ALL
                    select rete, cod_fiscale from #PatrimonioTerzi UNION ALL
                    select rete, cod_fiscale from #Part_viaggianti  UNION ALL
                    select rete, cod_fiscale from #PatrimonioImmobiliare UNION ALL
                    select rete, cod_fiscale from  #PatrimonioAltro
             )x

			 truncate table WH.pl_d2_s152patrimonio	

             ;with data as
             (
             select m.rete, m.cod_fiscale, 
                    cast(COALESCE(a.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as PatrimonioBF,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as FinanziarioCTV,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00)+COALESCE(d.value,0.00)+COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioTotale,
                    cast(COALESCE(b.value,0.00) as numeric(18,2)) as PatrimonioTerziCTV,
                    cast(COALESCE(d.value,0.00) as numeric(18,2)) as PatrimonioImmobiliare,
                    cast(COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioAltro
             from #merge m
                    left join #PatrimonioBF a                  on a.rete = m.rete and a.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioTerzi b               on b.rete = m.rete and b.cod_fiscale = m.cod_fiscale
                    left join #Part_viaggianti c               on c.rete = m.rete and c.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioImmobiliare d         on d.rete = m.rete and d.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioAltro e           on e.rete = m.rete and e.cod_fiscale = m.cod_fiscale
                    )

					
		INSERT INTO WH.pl_d2_s152patrimonio		
	    SELECT  'C6MartPeriodico.pl_d2_s152patrimonio' as ProcedureName, rete as i_rete, cod_fiscale as i_codiceFiscale,
                    PatrimonioBF, 
                    PatrimonioTerziCTV,
                    FinanziarioCTV,
                    CONVERT(decimal(6,2),
                           case when PatrimonioTotale = 0.00 then 0.00 
                           else FinanziarioCTV / PatrimonioTotale end 
                    * 100.00) AS FinanziarioPerc,
                    PatrimonioImmobiliare,
                    CONVERT(decimal(6,2),
                           case  when PatrimonioTotale = 0.00 then 0.00 
                           else PatrimonioImmobiliare/PatrimonioTotale end 
                            
                    * 100.00) AS ImmobiliarePerc,
                    PatrimonioAltro,
                    CONVERT(decimal(6,2),
                           case PatrimonioTotale when 0.00 then 0.00 
                           else PatrimonioAltro/PatrimonioTotale end
                           
                    * 100.00) AS AltroPerc,
                    PatrimonioTotale as TotaleCTV
                    from data


END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S153PatrimonioFinanziario
BEGIN
	INSERT INTO WH.PL_D2_S153PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, Rete as i_rete, Cod_Fiscale as i_codiceFiscale, 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
		    Rete,
			Cod_Fiscale,
			Intermediario,
			Ordine,
			CASE Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_fiscale) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_Fiscale)) / 
				wh.IsZero((SUM(ctv) over (partition by 'Totale'+Rete+Cod_fiscale)),1)
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
			    patrBF.Rete as Rete,
				patrBF.Cod_Fiscale as Cod_Fiscale,
				CASE patrBF.Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
				WHERE 1 = 1				
					and patrBF.id_area  not in ('CC','SELF')
				GROUP BY patrBF.Rete, patrBF.Cod_Fiscale
			UNION ALL

			SELECT 
			    patrTerzi.Rete as Rete,
				patrTerzi.Cod_Fiscale as Cod_Fiscale,
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
				WHERE 1 = 1
				GROUP BY patrTerzi.Intermediario, patrTerzi.Rete, patrTerzi.Cod_Fiscale

		) PATR
		GROUP BY Cod_Fiscale, Rete, intermediario, ordine, ctv
	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S154PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S154PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2) as decimal(38,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),0)
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 

		UNION ALL
	
		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL
		--CON SKANDIA
		SELECT 
				ASUL.RETE AS RETE,
				ASUL.COD_FISCALE as COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
		    PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	--GROUP BY RETE, COD_FISCALE, ASSETCLASS.ordinamento, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE
		
) A
--GROUP BY RETE, COD_FISCALE, A.BANCA, A.ORDINAMENTO, A.ASSETCLASSID, A.ASSETCLASSNAME, A.CONTROVALORE, A.PERCENTUALE
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S155PatrimonioImmobiliare
BEGIN

INSERT INTO WH.PL_D2_S155PatrimonioImmobiliare
	SELECT 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare' as ProcedureName, PATRIMONIO_IMMOBILIARE.RETE as i_rete, PATRIMONIO_IMMOBILIARE.COD_FISCALE as i_codiceFiscale,	
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
	--GROUP BY PATRIMONIO_IMMOBILIARE.RETE, PATRIMONIO_IMMOBILIARE.COD_FISCALE, PATRIMONIO_IMMOBILIARE.descrizione, PATRIMONIO_IMMOBILIARE.TIPOLOGIA, PATRIMONIO_IMMOBILIARE.LOCALITA, PATRIMONIO_IMMOBILIARE.AFFITTO, PATRIMONIO_IMMOBILIARE.VALORE_STIMATO
	ORDER BY PATRIMONIO_IMMOBILIARE.valore_stimato DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S156ALtroPatrimonio
BEGIN
	INSERT INTO WH.PL_D2_S156ALtroPatrimonio
	SELECT 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio' as ProcedureName, PATRIMONIO_ALTRO.RETE as i_rete, PATRIMONIO_ALTRO.COD_FISCALE as i_codiceFiscale,	
	 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale',PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE ) as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
		--GROUP BY PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE, PATRIMONIO_ALTRO.DESCRIZIONE, PATRIMONIO_ALTRO.QUANTITA, PATRIMONIO_ALTRO.CTV 
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S157ConfrontoPiramidi
BEGIN
INSERT INTO WH.PL_D2_S157ConfrontoPiramidi
SELECT 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi' as ProcedureName, RETE as i_rete, [CodiceFiscale] as i_codiceFiscale,	
	 [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
  where [CodiceFiscale] is not null and [Rete] is not null
  order by ordinamento

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S158PiramideModello
BEGIN
INSERT INTO WH.PL_D2_S158PiramideModello
SELECT 'C6MartPeriodico.PL_D2_S158PiramideModello' as ProcedureName, BF.RETE as i_rete, BF.COD_FISCALE as i_codiceFiscale,	
		  BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF, BF.RETE, BF.COD_FISCALE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S159PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S159PatrimonioFinanziario
SELECT 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,

	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) AS Controvalore,
	cast(A.Percentuale  as decimal(38,6)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2)  as decimal(38,6))  AS Totale
FROM 
(		
	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')

		UNION ALL
		

		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL

		SELECT  ASUL.RETE AS RETE,
				ASUL.COD_FISCALE AS COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore				
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--group by RETE, COD_FISCALE, a.banca, a.ordinamento, a.assetclassid, a.assetclassname, a.controvalore, a.percentuale
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S160DettaglioProdottiBF
BEGIN

INSERT INTO WH.PL_D2_S160DettaglioProdottiBF
SELECT 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp2
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ' and
		tmp2.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP2.RETE = PATRBF.RETE) = (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp3
	WHERE  ID_AREA = 'LIQ' and tmp3.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP3.RETE = PATRBF.RETE) and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1 and
	PATRBF.CTV <>0

--GROUP BY PATRBF.COD_FISCALE, PATRBF.RETE, AREA.ID_AREA, AREA.NOME_AREA, AREA.ORDINAMENTO, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO, PATRBF.CTV,
--	MONIT.MINUS_PLUSVALENZA, RISCHIO_AGGR_PROG.COPERTURA, RISCHIO_AGGR_PROG.VAR_PERC_PTF, RISCHIO_AGGR_AREA.VAR_PERC_PTF, RISCHIO_AGGR_AREA.COPERTURA,
--	PATRBF.DATA_SOTTOSCRIZIONE, PATRBF.ID_CONTRATTO, PATRBF.TIPO_PRODOTTO, ANAGPROD.DESCR_PRODOTTO, ANAG_CC.COD_CC, RISCHIO_PROD.VAR_PERC_PTF,
--	RISCHIO_PROD.COPERTURA, PATRBF.ISIN, PATRBF.REND_ANNO, PATRBF.REND_SOTTOSCRIZIONE, PATRBF.PARTVIA_DISINV, RISCHIO_PROD.CREDITRISK, RISCHIO_PROD.CREDITRISKEMIT

ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S162DettaglioProdotti
BEGIN
	
INSERT INTO WH.PL_D2_S162DettaglioProdotti
	SELECT 'C6MartPeriodico.PL_D2_S162DettaglioProdotti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	--GROUP BY PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.INTERMEDIARIO, PATRTERZI.DATA_SOTTOSCRIZIONE, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO,
	--		 RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA, RISCHIOAGGREG.VAR_PERC_PTF, RISCHIOAGGREG.COPERTURA, PATRTERZI.COD_PRODOTTO, RISCHIOPROD.CREDITRISK, RISCHIOPROD.CREDITRISKEMIT
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s163patrimoniofinanziariomassetclass
BEGIN
INSERT INTO WH.pl_d2_s163patrimoniofinanziariomassetclass
SELECT DISTINCT 'C6MartPeriodico.pl_d2_s163patrimoniofinanziariomassetclass' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) as decimal(19,6)) AS Controvalore,
             (
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) /
                    case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    when 0 then 1
                    else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    end 
--                  SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE) as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'


             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

       ) VALORIASSET
       INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
      -- GROUP BY COD_FISCALE, RETE, ASSETCLASS.ORDINAMENTO, ASSETCLASS.ID_ASSETCLASS, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S164PolizzeAltriIstituti
BEGIN
INSERT INTO WH.PL_D2_S164PolizzeAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S165FondiAltriIstituti
BEGIN
	INSERT INTO WH.PL_D2_S165FondiAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S165FondiAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     
	 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	--	GROUP BY 
	--	PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.intermediario, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.DATA_SOTTOSCRIZIONE, PATRTERZI.FREQ_RATA,
	--	PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO, RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA,  RISCHIOAGGR.VAR_PERC_PTF, RISCHIOAGGR.COPERTURA, 
	--	PATRTERZI.COD_PRODOTTO, RISCHIOAGGR.CREDITRISK


END
-------------------------------------------------------------------------

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


INSERT INTO WH.PL_D2_S167DistribuzioneRischioCredito
	SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2

SELECT  
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE






SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S168TabellaEmittenti
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
INSERT INTO WH.PL_D2_S168TabellaEmittenti
	SELECT  'C6MartPeriodico.PL_D2_S168TabellaEmittenti' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1				
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ 
	
	 (select sum(ctv_prodotto) from 
		c6martperiodico.patrimonio_emittenti 
		where cod_fiscale = L.COD_FISCALE and rete = L.RETE
		and  ctv_prodotto > 0)  
	 
	 *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END
-------------------------------------------------------------------------
	
-----------------------------------------------PL_S43DettaglioProdottiBF
BEGIN

SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTSELFLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE  ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE


	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE

INSERT INTO WH.PL_S43DettaglioProdottiBF    
	
	
--FINE INTERVENTI OMNIA QUIII

--------------------------------------------------------------------------------------

SELECT   'C6MartPeriodico.PL_S43DettaglioProdottiBF' as ProcedureName, PATRBF.RETE, PATRBF.COD_FISCALE ,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')


left JOIN #TOTSELFLIQ t1 on t1.rete = PATRBF.RETE and t1.COD_FISCALE = PATRBF.COD_FISCALE
left JOIN #TOTLIQ t2 on t2.rete = PATRBF.RETE and t2.COD_FISCALE = PATRBF.COD_FISCALE

LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC


	drop table #TOTSELFLIQ
drop table #TOTLIQ




END
-------------------------------------------------------------------------


-------------------------------------------PL_D2_S169RischiomercatoRischiocredito

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito    
	SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S170RischioDiversificazione
BEGIN


INSERT INTO WH.PL_D2_S170RischioDiversificazione    
	SELECT  'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.RETE as i_rete, K.COD_FISCALE as i_codiceFiscale, 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0) + (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
------------------------- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
   --beneficio as diversificazione,
case 
when cod_Aggreg = 'COMPLESSIVO' then null
when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
END AS diversificazione,

-------------------------- fine modifica del 19/6/2018 


CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine

END 
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S171PatrimonioNonRappresentabileAssettClass
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 INSERT INTO WH.PL_D2_S171PatrimonioNonRappresentabileAssettClass    
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
	  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

  
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO,
		PATRBF.RETE,
		PATRBF.COD_FISCALE
	ORDER BY CONTROVALORE DESC
  
END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S137Bonus
BEGIN  
INSERT INTO WH.PL_MP_S137Bonus    
	  SELECT 'C6MartPeriodico.PL_MP_S137Bonus' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
			[RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S135MonitoraggioInvestimento
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_MP_S135MonitoraggioInvestimento    
	  SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
	
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO
	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S134MonitoraggioLiquidita
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT


INSERT INTO WH.PL_MP_S134MonitoraggioLiquidita    
	  SELECT 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita' as ProcedureName, MONIT.RETE as i_rete, MONIT.COD_FISCALE as i_codiceF,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			 PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
 

END
-------------------------------------------------------------------------

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

INSERT INTO WH.PL_MP_S134BISMonitoraggioLiqInv  
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S133BISPrincipaliProdotti
BEGIN	
;with ata as
(
SELECT PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceF, 
             ANAGPROD.DESCR_PRODOTTO AS descrProdotto
             ,PATRBF.CTV AS Controvalore
             ,CASE 
                    WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
                    ELSE RISCHIO_PROD.VAR_PERC_PTF
             END AS VaRprodotto
             ,((CASE 
                      WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
                      ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
                END) /    (CASE
                                    WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE) = 0 THEN 1
                                    ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)
                                 END))*100 as rischioRelativo    
             ,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)))*100  AS pesoRelativo
             ,PATRBF.ID_AREA  AS codAreaBisogno
       FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
       INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
             ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
       INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
             ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
       LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
             ON PATRBF.RETE= RISCHIO_PROD.RETE
             AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
             AND RISCHIO_PROD.COD_AGGREG = CASE 
                                                                    WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
                                                                         THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
                                                                          '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
                                                                   WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
                                                                   ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
                                                               END
                                                               + PATRBF.POSITION_ID 
       WHERE 
    PATRBF.CTV <>0
       AND PATRBF.ID_AREA <> 'Cc'
	   
       ), tot as
       (select *, row_number() over (partition by i_rete, i_codiceF ORDER BY rischioRelativo DESC, Controvalore DESC) as pos
         from ata
         )
		 INSERT INTO WH.PL_MP_S133BISPrincipaliProdotti  
		SELECT 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti' as ProcedureName, i_rete, i_codiceF, descrProdotto, Controvalore, VaRprodotto, 
																	rischioRelativo, pesoRelativo, codAreaBisogno from tot where pos <=10

END
-------------------------------------------------------------------------






----[C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
BEGIN

INSERT INTO wh.[PL_MP_S133AreeBisognoPrincProd]
SELECT 'PL_MP_S133AreeBisognoPrincProd', [Rete]
		,[CodiceFiscale]
		,[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide]
 
  order by ordinamento
		 

END

-------------------------------------------------------------------------

------ [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]

begin
	select count(*) as contaCC, cod_fiscale, rete
	into #contaCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete


	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete


INSERT INTO wh.PL_MP_S146RischioDiversificazione
SELECT 'PL_MP_S146RischioDiversificazione',K.RETE, K.COD_FISCALE,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND contaPOS - contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND contaPOS - contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
left join #contaCC cc on K.COD_FISCALE = cc.COD_FISCALE and K.RETE = cc.rete
left join #contaPOS pos on K.COD_FISCALE = pos.COD_FISCALE and K.RETE = pos.rete
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY Ordine





END 

-------------------------------------------------------------------------


---------[C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]

begin 
select sum(ctv_prodotto) as patr_compl, rete, cod_fiscale 
into #patr_compl
from c6martperiodico.patrimonio_emittenti 
where ctv_prodotto > 0
group by  rete, cod_fiscale 

INSERT INTO wh.PL_MP_S141AnalisiRisparmioTable
SELECT  'PL_MP_S141AnalisiRisparmioTable',RETE, COD_FISCALE,
	
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     l.COD_FISCALE,
     l.RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(p.patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	y.COD_FISCALE,
	y.RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	y.COD_FISCALE,
	y.RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
 inner join #patr_compl p on p.rete = l.rete and  p.cod_fiscale = l.cod_fiscale
GROUP BY 
   l. COD_FISCALE,
     l.RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 
-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]

BEGIN
	



--QUERY PER INTERMEDIARIO

INSERT INTO wh.PL_MP_S140AnalisiRisparmioCharts

SELECT 'PL_MP_S140AnalisiRisparmioCharts', RETE, COD_FISCALE, *FROM
(
SELECT
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo


--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE
)X


END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
   begin
   

   INSERT INTO wh.PL_MP_S137BISCapitaleProtetto
     SELECT 'PL_MP_S137BISCapitaleProtetto', RETE
	,CODFIS
	,DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT
	
	WHERE 1=1
	 

END
 
-------------------------------------------------------------------------



------------ [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
BEGIN
	
	INSERT INTO wh.PL_S43ContoCorrenteBF

	SELECT 'PL_S43ContoCorrenteBF', ANAG_CC.rete, ANAG_CC.cod_fiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
	WHERE 
	 ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END

-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]

BEGIN 
	SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 
	into #TOTSELFLIQ1
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 

	

	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	into #PATRIMONIO_BF
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	
	INSERT INTO wh.[PL_S43BISDettaglioProdottiBF]
SELECT 'PL_S43BISDettaglioProdottiBF',	PATRBF.RETE, PATRBF.COD_FISCALE,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
ISNULL(PATRBF.ORDINAMENTO_PROGETTO,-1111) ,
--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,


	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 

LEFT JOIN #PATRIMONIO_BF bf on bf.rete = PATRBF.rete and bf.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN #TOTSELFLIQ1 tot on  tot.rete = PATRBF.rete and tot.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1

 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI


drop table #PATRIMONIO_BF


END

-------------------------------------------------------------------------
------ [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
BEGIN
	
	INSERT INTO wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento
	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', PATR_BF.RETE,
		PATR_BF.COD_FISCALE,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY  PATR_BF.RETE,
		PATR_BF.COD_FISCALE,PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_S82BisDatiSintetici]
	
BEGIN
	
	INSERT INTO wh.PL_S82BisDatiSintetici
	SELECT DISTINCT 'PL_S82BisDatiSintetici',
	 BF.RETE,
		BF.COD_FISCALE,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		
		END
		--AND BF.ORDINAMENTO_PROGETTO=1521667

-------------------------------------------------------------------------

----- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
begin

INSERT INTO wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass
SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', * FROM
(
	SELECT  
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
	
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        AND PATRBF.CTV <> 0.00
UNION ALL

SELECT  PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		

  GROUP BY 
      PATRBF.RETE,
		PATRBF.COD_FISCALE, PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 
		)XX

END

-------------------------------------------------------------------------


------------------------------- [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
BEGIN

	select count(*) as contaCC, cod_fiscale, rete
	into #contaCCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete

	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOSS
	from c6martperiodico.patrimonio_Bf
	group by cod_fiscale, rete
    SELECT isnull(sum(ctv),0) as ctvbf, cod_fiscale, rete
	INTO #ctvbf
	FROM  c6martperiodico.patrimonio_bf  			
	where CTV > 0
	group by cod_fiscale, rete
				      
	SELECT isnull(sum(ctv),0) as ctvterzi, cod_fiscale, rete 
	INTO #ctvterzi
	FROM  c6martperiodico.patrimonio_terzi  			
	where CTV > 0
	group by cod_fiscale, rete 


	INSERT INTO wh.PL_D_S170RischioDiversificazione
SELECT 'PL_D_S170RischioDiversificazione',K.RETE,K.COD_FISCALE,

K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then COALESCE(ctvbf,0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then COALESCE(ctvterzi,0)
	when cod_Aggreg = 'COMPLESSIVO' then COALESCE(ctvbf,0) + COALESCE(ctvterzi,0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (COALESCE(contaPOS,0) - COALESCE(contacc,0) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
full outer join #contaCCC cc on k.COD_FISCALE = cc.cod_fiscale and k.Rete = cc.rete
full outer join #contaPOSS pos on k.COD_FISCALE = pos.cod_fiscale and k.Rete = pos.rete
full outer join #ctvbf bf on k.COD_FISCALE = bf.cod_fiscale and k.Rete = bf.rete
full outer join #ctvterzi terzi on k.COD_FISCALE = terzi.cod_fiscale and k.Rete = terzi.rete
WHERE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine


END 

-------------------------------------------------------------------------

----------------------------------[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 truncate table wh.PL_S96RischiomercatoRischiocredito

 INSERT INTO wh.PL_S96RischiomercatoRischiocredito
    SELECT 'PL_S96RischiomercatoRischiocredito',  RETE, COD_FISCALE, * 
	FROM (
	SELECT
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
   GROUP BY 
   PATRBF.RETE,
   PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc
  --  CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
    where 
    1=1
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
    where 
    1=1 
    and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
        where 
    1=1 
    and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	
	)X
	order by ordine
	END

-------------------------------------------------------------------------

-------------------- [C6MartPeriodico].[PL_S80Alternativa]
	
BEGIN


   SELECT COUNT(*) as MONIT_ATTIV, RETE, COD_FISCALE
       into #aa2
    FROM C6MARTPERIODICO.MONITORAGGIO_ATTUALE
       GROUP BY RETE, COD_FISCALE
   
    
       SELECT COUNT(*) as MONIT_INIT, RETE, COD_FISCALE
       into #ab2
       FROM C6MARTPERIODICO.MONITORAGGIO_INIZIALE
       GROUP BY  RETE, COD_FISCALE
       
       select  a.RETE, a.COD_FISCALE
       into #pos2
       from #aa2 a inner join #ab2 b on a.rete = b.rete and a.COD_FISCALE = b.COD_FISCALE

       INSERT INTO wh.PL_S80Alternativa
       SELECT 'PL_S80Alternativa' as ProcedureName, v.RETE as i_rete, v.Cod_Fiscale as i_codiceFiscale, v.[RETE]
      ,v.[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio] v
  inner join #pos2 p on p.rete = v.rete and p.Cod_Fiscale = v.Cod_Fiscale


END

----------------------------------------------
--maledetti
begin

truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )
SELECT 
 DISTINCT
                    contratti.Cod_Fiscale as i_CodiceFiscale
                    ,contratti.Rete as i_Rete
                    --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
                    --*************************************************
                    ,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
                    ,'Diagnosi' as descrizioneDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
                           ELSE -1
                    END AS idModelloDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
                           ELSE -1
                    END AS idReportDiagnosi
                    ,'Monitoraggio' as descrizioneMonitoraggio
                    ,4 as idReportMonitoraggio--4
                    ,CASE isnull(tip_contratto,0) 
                                 WHEN 0 THEN 12--12
                                 WHEN 1 THEN 12--12
                                 WHEN 2 THEN 13--13
                    END 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 
                    ,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
             left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
                    on contratti.Rete = promotori.Rete
                    and contratti.Cod_Agente = promotori.Id_Promotore
                    --65992
             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
                    on contratti.Rete = patrimonioBF.Rete
                    and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
                    -- 64864

             left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
                    on contratti.Rete = patrimonioAltro.Rete
                    and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
                    --64864

             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
                    --64864
                    
             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
                    --64864
             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'
                    --modificata da Valerio 12 marzo 2012
                    --left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
             inner 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'
                    --64864
                    
                                 
             left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
                    on contratti.Rete = PARTITEVIAGGIANTI.RETE
                    and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
                    --64864

             
             left join (
                    select distinct monit.rete, monit.cod_fiscale, 
                           case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
                           when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
                    from c6martperiodico.monitoraggio_attuale monit
                           left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
                           left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
                    ) monit
                    on patrimonioBF.rete = monit.rete
                    and patrimonioBF.cod_fiscale = monit.cod_fiscale     

             WHERE 1=1
             --144104
		end	
-------------------------------------------------------------------------
END


GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_NUOVA]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [wh].[MERGED_PROCEDURE_NUOVA]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.PL_D2_S169RischiomercatoRischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.PL_D_S178IndicatoriEsitoAdeguatezza
------------------------------------------------------------------------

		
---------------------------------------------PL_S85RendimentoPortafoglioCono

	BEGIN

		exec wh.MERGED_PROCEDURE_S85

	END
---------------------------------------------------------------------------	

---------------------------------------------PL_S43LineaSelfBF

	BEGIN

		exec wh.MERGED_PROCEDURE_S43

	END
---------------------------------------------------------------------------

---------------------------------------------PL_S10PatrimonioFinanziario

	BEGIN

		exec [wh].[MERGED_PROCEDURE_S10]

	END
---------------------------------------------------------------------------

---------------------------------------------PL_Prodotti_Non_Associati_Area_Inv

	BEGIN

		exec [wh].[MERGED_PROCEDURE_PL_Prodotti_Non_Associati_Area_Inv]

	END
---------------------------------------------------------------------------

---------------------------------------------PL_D3_S151ProfiloDiRischio

	BEGIN

		exec [wh].[MERGED_PROCEDURE_S151]
	END
---------------------------------------------------------------------------

---------------------------------------------PL_D2_S169RischiomercatoRischiocredito

	BEGIN

		exec wh.MERGED_PROCEDURE_S169

	END
---------------------------------------------------------------------------

---------------------------------------------PL_D2_S170RischioDiversificazione

	BEGIN

		exec wh.MERGED_PROCEDURE_S170

	END
---------------------------------------------------------------------------

---------------------------------------------PL_D_S178IndicatoriEsitoAdeguatezza: 8:24 min

	BEGIN

		exec wh.MERGED_PROCEDURE_S178

	END
---------------------------------------------------------------------------

---------------------------------------------Maledetti
	begin

		truncate table 	wh.Maledetti

		insert into wh.Maledetti --70 minutes
		(	[i_CodiceFiscale]
			,[i_Rete]
			,[Rete]
			,[NomeRete]
			,[Agente]
			,[CognomeAgente]
			,[NomeAgente]
			,[IndirizzoAgente]
			,[CapAgente]
			,[CittaAgente]
			,[TelefonoAgente]
			,[CodiceFiscale]
			,[CognomeCliente]
			,[NomeCliente]
			,[ProfiloIsAct]
			,[PatrimonioNonRappresentabile]
			,[PartiteViaggiantiDisinv]
			,[PartiteViaggiantiInv]
			,[ContoCorrente]
			,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
			,[RisorseNonAssociate]
			,[Patrimonioaltroctv]
			,[Patrimonioimmobiliarectv]
			,[PatrimonioTerzictv]
			,[PatrimonioTerziCtvAlNettoContoCorrente]
			,[PatrimonioTerziContoCorrente]
			,[Patrimoniobancafideuramctv]
			,[Patrimoniocomplessivototalectv]
			,[NumeroIntermediari]
			,[CodiceContratto]
			,[tip_contratto]
			,[contrattoold]
			,[NoMonitoraggio]
			,[descrizioneDiagnosi]
			,[idModelloDiagnosi]
			,[idReportDiagnosi]
			,[descrizioneMonitoraggio]
			,[idReportMonitoraggio]
			,[idModelloMonitoraggio]
			,[AdesioneSuccessivaAvanzato]
			,[VaRRisorseNonAssociate]
			,[CoperturaRisorseNonAssociate]
			,[VaRTotaleRisorseFinanziarie]
			,[CoperturaTotaleRisorseFinanziarie]
			,[IdReportPDFDiagnosi]
			,[IdReportPDFMonitoraggio]
			,scaduto
			)
				select distinct
					contratti.Cod_Fiscale as i_CodiceFiscale
					,contratti.Rete as i_Rete
					--DATI COMUNI
					--RETE
					,contratti.Rete
					,CASE
						WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram'
						ELSE 'Sanpaolo Invest'
					END AS NomeRete
					--AGENTE     
					,contratti.Cod_Agente Agente
					,(CASE UPPER(ISNULL(promotori.STATO,''))
						WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'')
						ELSE ''
					 END) AS 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 AS 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
					--*************************************************
					,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
					,'Diagnosi' as descrizioneDiagnosi
					,CASE 
						WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
						ELSE -1
					END AS idModelloDiagnosi
					,CASE 
						WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
						ELSE -1
					END AS idReportDiagnosi
					,'Monitoraggio' as descrizioneMonitoraggio
					,4 as idReportMonitoraggio--4
					,CASE isnull(tip_contratto,0) 
						WHEN 0 THEN 12--12
						WHEN 1 THEN 12--12
						WHEN 2 THEN 13--13
					END 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 
					,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
				 left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
						on contratti.Rete = promotori.Rete
						and contratti.Cod_Agente = promotori.Id_Promotore
						--65992
				 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
						on contratti.Rete = patrimonioBF.Rete
						and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
						-- 64864

				 left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
						on contratti.Rete = patrimonioAltro.Rete
						and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
						--64864

				 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
						--64864
                    
				 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
						--64864
				 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'
						--modificata da Valerio 12 marzo 2012
						--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
				 inner 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'
						--64864
                    
                                 
				 left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
						on contratti.Rete = PARTITEVIAGGIANTI.RETE
						and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
						--64864

             
				 left join (
						select distinct monit.rete, monit.cod_fiscale, 
							   case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
							   when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
						from c6martperiodico.monitoraggio_attuale monit
							   left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
							   left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
						) monit
						on patrimonioBF.rete = monit.rete
						and patrimonioBF.cod_fiscale = monit.cod_fiscale
             WHERE 1=1
             --144104
		end	
-------------------------------------------------------------------------

END


GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_PL_Prodotti_Non_Associati_Area_Inv]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [wh].[MERGED_PROCEDURE_PL_Prodotti_Non_Associati_Area_Inv]
AS
BEGIN
	SET NOCOUNT ON;

	INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
		SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
	PATRBF.RETE,
	PATRBF.COD_FISCALE,
	ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
	ID_AREA as NEED_AREA,
	SUM(CTV) AS CONTROVALOREATTUALE,
	MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
	--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
			CASE 
				WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END AS var_needareaString
	FROM
	C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
	LEFT OUTER JOIN 
	C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
	ON PATRBF.RETE = RISK.RETE
				AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
				AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
	WHERE 1 = 1	
		AND PATRBF.id_AREA = 'Inv' 
		AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
	GROUP BY 
	PATRBF.RETE,
	PATRBF.COD_FISCALE,
	ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
	ID_AREA,
	CHIAVE_PROGETTO,
			CASE 
				WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
				WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
				ELSE NULL 
			END 

END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S10]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [wh].[MERGED_PROCEDURE_S10]
AS
BEGIN
	SET NOCOUNT ON;

  	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
  order by ordinamento


END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S151]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [wh].[MERGED_PROCEDURE_S151]
AS
BEGIN

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

	declare @DataFineTrim decimal(9, 0)

	select @DataFineTrim = max(dtTrim) from [C6StagingPeriodico].[WSEIAN2]

	create table #WSEIAN (rete varchar(1), CodiceFiscale varchar(20), dtfinval decimal(9, 0))

	--drop table #WSEIAN

	insert into #WSEIAN

		select rete, 'FF@' + CODMAN as CodiceFiscale, dtfinval
		from [C6StagingPeriodico].[WSEIAN2]
		where DTTRIM =  @DataFineTrim
			and isnull(codman, '') <> ''

		union

		select rete, CodFis as CodiceFiscale, dtfinval
		from [C6StagingPeriodico].[WSEIAN2]
		where DTTRIM =  @DataFineTrim
			and isnull(codman, '') = ''

	INSERT into wh.PL_D3_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D3_S151ProfiloDiRischio' as ProcedureName, M.rete as i_rete, M.COD_FISCALE as i_codiceFiscale, 	  	 
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING (M.DATA_INIZIO_VAL) as dataInizioValidita,
		case
			when #WSEIAN.dtfinval <> 0 and #WSEIAN.dtfinval is not null and ltrim(rtrim(#WSEIAN.dtfinval)) <> ''
				then CONVERT(datetime, CONVERT(varchar,CONVERT(int, #WSEIAN.dtfinval)), 0)
			else null
		end as dataScadenzaProfilo,
		CR.MAX_VAR as varMassimo,
		ProfiliDiRischio.NOMEPROFILO as nomeProfilo,
		ProfiliDiRischio.DescrizioneProfilo as descrizioneProfilo,
        m.riskclass,
        m.experience as experince,
		case m.experience
			when 0 then '-'
			when 1 then 'Minima'
			when 2 then 'Bassa'
			when 3 then 'Media'
			when 4 then 'Alta'
			when 5 then 'Molto alta'
			else '-'
		end as descrizioneEsperienza
	FROM
		C6MartPERIODICO.MIFID AS M
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
			INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
			ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO
				inner join #WSEIAN
				on M.Rete = #WSEIAN.rete
				and M.COD_FISCALE = #WSEIAN.CodiceFiscale
END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S169]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [wh].[MERGED_PROCEDURE_S169]
AS
BEGIN
	SET NOCOUNT ON;

		-- QUERY PATRIMONIO CASA E PATRIMONIO TERZI
	select
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.INSTITUTENAME,
		CTV,
		M.PROFILO_ASS AS CODICEPROFILO,
		CR.MAX_VAR AS VARMAX,
		RISK_AGG.VAR_PERC_PTF AS VAR ,
		CASE 
			WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VARSTRING,
		RISK_AGG.CREDITRISK RISKCLASS,
		CASE 
			WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
			WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
			WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
			ELSE NULL 
		END AS RISKCLASSSTRING,
		ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
		NULL AS COVERAGESTRING,
		M.RISKCLASS AS RISKCLASSMAX,
		round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
								-- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
								CASE
									WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0 THEN 1
									ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
								END) * 100, 2) AS PERCENTAGE,
		ORDINE,
		RISK_AGG.Ully_perc
	into #appo
  from
  (
		select 
			PATRBF.RETE,
			PATRBF.COD_FISCALE,
			case
				when PATRBF.RETE = 'F' then 'Patrimonio Fideuram'
				else 'Patrimonio Sanpaolo Invest'
			end AS INSTITUTENAME,
			sum(PATRBF.CTV) as CTV,
			1 as ORDINE,
			RISK_AGG.Ully_perc
		from
			c6martperiodico.patrimonio_bf PATRBF,
			C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
		where 
			1=1
			and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
			and PATRBF.rete= RISK_AGG.rete  
			and PATRBF.CTV > 0
			and RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF'
		group by
			PATRBF.RETE,
			PATRBF.COD_FISCALE,
			RISK_AGG.Ully_perc,
			case
				when PATRBF.RETE = 'F' then 'Patrimonio Fideuram'
				else 'Patrimonio Sanpaolo Invest'
			end

		union

		SELECT
			TERZI.RETE,
			TERZI.COD_FISCALE,
			'Patrimonio altri Istituti' AS INSTITUTENAME,
			SUM(ROUND(TERZI.CTV,2)) AS CTV,
			--V
			2 as ORDINE,
			RISK_AGG.Ully_perc
		from
			c6martperiodico.PATRIMONIO_TERZI TERZI,
			C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG
		where 
			1=1
			and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
			and TERZI.rete= RISK_AGG.rete 
			and TERZI.CTV > 0
			and RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
		group by
			TERZI.RETE,
			TERZI.COD_FISCALE,
			RISK_AGG.Ully_perc

  ) PATRBF
		LEFT OUTER JOIN c6martperiodico.MIFID AS M
		ON PATRBF.COD_FISCALE = M.COD_FISCALE
		AND PATRBF.RETE = M.RETE
			LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
			ON M.PROFILO_ASS = CR.PROFILO
				LEFT OUTER JOIN c6martperiodico.CODIFICA_CREDITRISK CK
				ON M.riskclass = CK.PROFILO
					LEFT OUTER JOIN c6martperiodico.RISCHIO_AGGREGATO RISK_AGG
					ON PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE
					AND PATRBF.RETE = RISK_AGG.RETE
					AND (case
							when RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE = 'F' then 'Patrimonio Fideuram' 
							when RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE = 'S' then 'Patrimonio Sanpaolo Invest'
							else 'Patrimonio altri Istituti'
						end) = PATRBF.INSTITUTENAME
	  where
		(
		 RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
		 RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
		)
	-- FINE QUERY PER PATRIMONIO CASA E PATRIMONIO TERZI

	-- SEPARAZIONE DEL PATRIMONIO CASA E DEL PATRIMONIO TERZI
	select * into #ordine1 from #appo where ordine = 1
	select * into #ordine2 from #appo where ordine = 2	

	-- QUERY PATRIMONIO COMPLESSIVO
	  SELECT
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		'Patrimonio Complessivo' AS INSTITUTENAME,
		SUM(CTV) AS CTV,
		MAX(M.PROFILO_ASS) AS CODICEPROFILO,
		MAX(CR.MAX_VAR) AS VARMAX,
		MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
		MAX(CASE 
				WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
				ELSE NULL 
			END) AS VARSTRING,
		MAX(RISK_AGG.CREDITRISK) RISKCLASS,
		MAX(case
				WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
				WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
				WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
				ELSE NULL 
			END) AS RISKCLASSSTRING,
		MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
		MAX(CASE 
				WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
				ELSE NULL 
			END) AS COVERAGESTRING,
		MAX(M.RISKCLASS) AS RISKCLASSMAX,
		100 AS PERCENTAGE,
		3 AS ORDINE,
		RISK_AGG.Ully_perc
	into #Ordine3
	from
		(
		  select 
			  PATRBF.RETE,
			  PATRBF.COD_FISCALE,
			  SUM(PATRBF.CTV) AS CTV
		  from c6martperiodico.patrimonio_bf PATRBF
		  where
			1=1 
			and
			PATRBF.CTV > 0  
		  group by
			  PATRBF.RETE,
			  PATRBF.COD_FISCALE
	union
	  SELECT
		  TERZI.RETE,
		  TERZI.COD_FISCALE,
		  SUM(ROUND(TERZI.CTV,2)) AS CTV
	  FROM
		c6martperiodico.PATRIMONIO_TERZI TERZI
	  where
		1=1 
		and
		TERZI.CTV > 0    
	   group by
		  TERZI.RETE,
		  TERZI.COD_FISCALE
	) PATRBF
		left outer join c6martperiodico.MIFID AS M
		on PATRBF.COD_FISCALE  =M.COD_FISCALE
		and PATRBF.RETE = M.RETE
			left outer join c6martperiodico.CODIFICA_RISCHIO AS CR
			on M.PROFILO_ASS = CR.PROFILO
				left outer join c6martperiodico.CODIFICA_CREDITRISK CK
				on M.riskclass = CK.PROFILO
					left outer join c6martperiodico.RISCHIO_AGGREGATO RISK_AGG
					on PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE
					and PATRBF.RETE = RISK_AGG.RETE
    where
		RISK_AGG.COD_AGGREG = 'COMPLESSIVO'
  group by
	  PATRBF.RETE,
	  PATRBF.COD_FISCALE,
	  RISK_AGG.Ully_perc
	  -- FINE QUERY PATRIMONIO COMPLESSIVO
	
	-- INSERIMENTO NELLA TABELLA MERGED DELLA UNION TRA PATRIMONIO CASA (#Ordine1), PATRIMONIO TERZI (#Ordine2), PATRIMONIO COMPLESSIVO (#Ordine3)

	INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito

		select 'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, #Ordine1.RETE as i_rete, #Ordine1.COD_FISCALE as i_codiceFiscale, #Ordine1.RETE, #Ordine1.COD_FISCALE, #Ordine1.INSTITUTENAME, #Ordine1.CTV, #Ordine1.CODICEPROFILO, #Ordine1.VARMAX, #Ordine1.VAR, #Ordine1.VARSTRING, #Ordine1.RISKCLASS, #Ordine1.RISKCLASSSTRING, #Ordine1.COVERAGE, convert(varchar(100), #Ordine1.COVERAGESTRING) as COVERAGESTRING, #Ordine1.RISKCLASSMAX, #Ordine1.PERCENTAGE, #Ordine1.ORDINE, #Ordine1.Ully_perc from #Ordine1 --64740
		union
		select 'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, #Ordine2.RETE as i_rete, #Ordine2.COD_FISCALE as i_codiceFiscale, #Ordine2.RETE, #Ordine2.COD_FISCALE, #Ordine2.INSTITUTENAME, #Ordine2.CTV, #Ordine2.CODICEPROFILO, #Ordine2.VARMAX, #Ordine2.VAR, #Ordine2.VARSTRING, #Ordine2.RISKCLASS, #Ordine2.RISKCLASSSTRING, #Ordine2.COVERAGE, convert(varchar(100), #Ordine2.COVERAGESTRING) as COVERAGESTRING, #Ordine2.RISKCLASSMAX, #Ordine2.PERCENTAGE, #Ordine2.ORDINE, #Ordine2.Ully_perc from #Ordine2 --7274
		union
		select 'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, #Ordine3.RETE as i_rete, #Ordine3.COD_FISCALE as i_codiceFiscale, #Ordine3.RETE, #Ordine3.COD_FISCALE, #Ordine3.INSTITUTENAME, #Ordine3.CTV, #Ordine3.CODICEPROFILO, #Ordine3.VARMAX, #Ordine3.VAR, #Ordine3.VARSTRING, #Ordine3.RISKCLASS, #Ordine3.RISKCLASSSTRING, #Ordine3.COVERAGE, convert(varchar(100), #Ordine3.COVERAGESTRING) as COVERAGESTRING, #Ordine3.RISKCLASSMAX, #Ordine3.PERCENTAGE, #Ordine3.ORDINE, #Ordine3.Ully_perc from #Ordine3 --64832
	
		-- CON UNION CON LA LEFT JOIN TRA #Ordine3 e #Ordine1 PER PRENDERE TUTTI I CASI IN CUI NON C'E' LA RIGA DEL PATRIMONIO CASA. VIENE CREATA UNA RIGA FITTIZIA
		union
		select
			'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, #Ordine3.RETE as i_rete, #Ordine3.COD_FISCALE as i_codiceFiscale,
			#Ordine3.Rete,
			#Ordine3.Cod_Fiscale,
			case when #Ordine3.RETE= 'F' then 'Patrimonio Fideuram' 
			  WHEN #Ordine3.RETE= 'S' then 'Patrimonio Sanpaolo Invest'
			end as INSTITUTENAME,
			0 as CTV,
				#Ordine3.CODICEPROFILO,
				#Ordine3.VARMAX,
				0 AS VAR,
				'n.c.' AS VARSTRING,
				0 as RISKCLASS,
				'n.c.' as RISKCLASSSTRING,
				#Ordine3.COVERAGE,
				NULL AS COVERAGESTRING,
				#Ordine3.RISKCLASSMAX,
				0.0 as PERCENTAGE,
				1 as ordine,
				0 as Ully_perc
		from #Ordine3
			left join #Ordine1
			on #Ordine3.Rete = #Ordine1.Rete
			and #Ordine3.Cod_Fiscale = #Ordine1.Cod_Fiscale
		where #Ordine1.Cod_Fiscale is null


END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S170]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO





CREATE procedure [wh].[MERGED_PROCEDURE_S170]
AS
BEGIN
	SET NOCOUNT ON;

	-- Appoggio in tabelle temporanee
	select rete, cod_fiscale, count(*) as contaCC
	into #tContaCC
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC'
	group by rete, cod_fiscale

	select rete, cod_fiscale, count(*) as contaPos
	into #tContaPos
	from c6martperiodico.patrimonio_Bf
	group by rete, cod_fiscale
    
	SELECT rete, cod_fiscale, isnull(sum(ctv),0) as CTVBF
	into #tCTVBF
	FROM  c6martperiodico.patrimonio_bf  			
	where CTV > 0
	group by rete, cod_fiscale
				  
	SELECT rete, cod_fiscale, isnull(sum(ctv),0) as CTVTerzi
	into #tCTVTerzi
	FROM  c6martperiodico.patrimonio_terzi  			
	where CTV > 0
	group by rete, cod_fiscale

	-- Calcolo Complessità Massima
	DECLARE @DataFineTrim VARCHAR(8)  
    SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)

	create table #tMaxComplessita (Rete varchar(1), CodiceFiscale varchar(20), MaxComplessita int)

	insert into #tMaxComplessita (Rete, CodiceFiscale, MaxComplessita)

		select rete, 'FF@' + CODMAN as CodiceFiscale, MAXCOMPL  as maxComplessita
		from [C6StagingPeriodico].[WSEIAN2]
		where DTTRIM =  @DataFineTrim
		--	and compl_base <> 10
			and isnull(codman, '') <> ''
		group by rete, 'FF@' + CODMAN,MAXCOMPL

		union

		select rete, CodFis as CodiceFiscale, MAXCOMPL  as maxComplessita
		from [C6StagingPeriodico].[WSEIAN2]
		where DTTRIM =  @DataFineTrim
			--and compl_base <> 10
			and isnull(codman, '') = ''
		group by rete, CodFis,MAXCOMPL

		--select * from #tContaCC where rete = 'F' and cod_Fiscale = 'RSCFNC43M09A965T'
		--select * from #tContaPos where rete = 'F' and cod_Fiscale = 'RSCFNC43M09A965T'
		--select * from #tCTVBF where rete = 'F' and cod_Fiscale = 'RSCFNC43M09A965T'
		--select * from #tCTVTerzi where rete = 'F' and cod_Fiscale = 'RSCFNC43M09A965T'

	insert into wh.PL_D2_S170RischioDiversificazione
		SELECT 'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.Rete as i_Rete, K.Cod_Fiscale as i_CodiceFiscale,
			K.COD_FISCALE,
			K.RETE,
			CASE 
				when cod_Aggreg = 'COMPLESSIVO|BF' then isnull(#tCTVBF.CTVBF, 0)
				when cod_Aggreg = 'COMPLESSIVO|TERZI' then isnull(#tCTVTerzi.CTVTerzi, 0)
				when cod_Aggreg = 'COMPLESSIVO' then isnull(#tCTVBF.CTVBF, 0) + isnull(#tCTVTerzi.CTVTerzi, 0)
				else 0
			END AS CTV_AGGREG,	
			K.CREDITRISK,
			CASE 
				WHEN (isnull(#tContaPOS.contaPOS, 0) - isnull(#tContaCC.ContaCC, 0) = 0) THEN 0
				ELSE VAR_PERC_PTF 
			END AS VAR,
			CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND isnull(#tContaPOS.contaPOS, 0) - isnull(#tContaCC.ContaCC, 0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
			CASE 
				WHEN (ISNULL(copertura,100) < 100) AND isnull(#tContaPOS.contaPOS, 0) - isnull(#tContaCC.ContaCC, 0) <> 0
					--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
					THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
				ELSE null 
			END AS coperturaString,

			-- modifica del 19/6/2018 - gestione indicatore per gli altri ptf del Diagnosi
			beneficio as diversificazione,
			--case 
			--when cod_Aggreg = 'COMPLESSIVO' then null
			--when cod_Aggreg = 'COMPLESSIVO|BF' then beneficio
			--when cod_Aggreg = 'COMPLESSIVO|TERZI' then null
			--END AS diversificazione,

			-- fine modifica del 19/6/2018 


			CASE 
				WHEN (isnull(#tContaPOS.contaPOS, 0) - isnull(#tContaCC.ContaCC, 0) = 0) THEN 100
				ELSE COPERTURA
			END AS COPERTURA,
			case 
			when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
			when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
			when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
			ELSE ''
			END AS PATRIMONIO,

			case 
				when b.profilo is null then -1 
				else b.profilo
			end as profiloCode,
			isnull(b.max_var, 0) as var_profilo,

			------------------------    MIFID2 - MAGGIO 2018
			case #tMaxComplessita.MaxComplessita
        				when 0 then '-'
						when 1 then 'Minima'
						when 2 then 'Bassa'
						when 3 then 'Media'
						when 4 then 'Alta'
						when 5 then 'Molto alta'
						else '-'
					end
					as complessita,
			-------------------------  FINE MIFID2 - MAGGIO 2018

			--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
			--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
			case 
			when cod_Aggreg = 'COMPLESSIVO' then 3
			when cod_Aggreg = 'COMPLESSIVO|BF' then 1
			when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
			ELSE ''
			END AS Ordine

 
		FROM C6MARTperiodico.RISCHIO_AGGREGATO K
			left outer JOIN c6martperiodico.mifid a
			ON k.cod_fiscale = a.cod_fiscale
			and k.rete = a.rete
				left outer join C6Martperiodico.CODIFICA_RISCHIO b
				on A.PROFILO_ASS=B.PROFILO
					left join #tContaCC
					on K.rete = #tContaCC.rete
					and K.cod_fiscale = #tContaCC.cod_fiscale
						left join #tContaPos
						on K.rete = #tContaPos.rete
						and K.cod_fiscale = #tContaPos.cod_fiscale
							left join #tCTVBF
							on K.rete = #tCTVBF.rete
							and K.cod_fiscale = #tCTVBF.cod_fiscale
								left join #tCTVTerzi
								on K.rete = #tCTVTerzi.rete
								and K.cod_fiscale = #tCTVTerzi.cod_fiscale
									left join #tMaxComplessita
									on K.rete = #tMaxComplessita.rete
									and K.cod_fiscale = #tMaxComplessita.codicefiscale
		WHERE
		--A.PROFILO_ASS=B.PROFILO
		--AND K.RETE=A.RETE
		--AND K.COD_FISCALE= A.COD_FISCALE
		COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
		ORDER BY ordine

END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S178]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [wh].[MERGED_PROCEDURE_S178]
AS
BEGIN
	SET NOCOUNT ON;
	
	DECLARE @DataFineTrim VARCHAR(8)  
	SET @DataFineTrim = c6martperiodico.getTrimestre2(getDate(),0)  

	--exec [C6MartPeriodico].[PL_D2_S169RischiomercatoRischiocredito] 'F', '00158650309'

	--exec [C6MartPeriodico].[PL_D_S178IndicatoriEsitoAdeguatezza] 'F', '00158650309'
	--exec [wh].[p_PL_D_S178IndicatoriEsitoAdeguatezza] 'F', '00158650309'

	insert into [wh].[PL_D_S178IndicatoriEsitoAdeguatezza]
		select 'C6MartPeriodico.PL_D_S178IndicatoriEsitoAdeguatezza', a.i_rete, a.i_CodiceFiscale,

			a.i_rete,
			a.i_CodiceFiscale,

			-- RISCHIO MERCATO
			--var, varmax,
			case 
				when var <= varmax then '1'
				when var > varmax then '0'
				else -1
			end as RM_Adeguatezza,
			case
				when var <= varmax then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '1')
				when var > varmax then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '0')
				else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 1 and Adeguato = '-1')
			end as RM_Descrizione,
			-- FINE RISCHIO MERCATO

			-- RISCHIO CREDITO
			--RISKCLASS, RISKCLASSMAX,
			case
				--20180820 CR su Rischio Credito: quando non è stato possibile calcolare il rischio credito (quindi il valore di RISKCLASS restituito dalla PL_D2_S169RischiomercatoRischiocredito è NULL)
				-- l'indicatore di adeguatezza Rischio Credito è 1 (Adeguato)
				when RISKCLASS is null then '1'
				--20180820 FINE CR su Rischio Credito
				when RISKCLASS <= convert(int,RISKCLASSMAX) then '1'
				when RISKCLASS > convert(int,RISKCLASSMAX) then '0'
				else -1
			end as RC_Adeguatezza,
			case
				--20180820 CR su Rischio Credito: quando non è stato possibile calcolare il rischio credito (quindi il valore di RISKCLASS restituito dalla PL_D2_S169RischiomercatoRischiocredito è NULL)
				-- l'indicatore di adeguatezza Rischio Credito è 1 (Adeguato)
				when  RISKCLASS is null then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '1')
				--20180820 FINE CR su Rischio Credito
				when RISKCLASS <= convert(int,RISKCLASSMAX) then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '1')
				when RISKCLASS > convert(int,RISKCLASSMAX) then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '0')
				else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 2 and Adeguato = '-1')
			end as RC_Descrizione,
			-- FINE RISCHIO CREDITO

			-- CONCENTRAZIONE EMITTENTI
			--b.concemi,
			case
				when upper(b.concemi) = 'S' then '1'
				when upper(b.concemi) = 'N' then '0'
				else -1
			end as CE_Adeguatezza,
			case
				when upper(b.concemi) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '1')
				when upper(b.concemi) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '0')
				else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 3 and Adeguato = '-1')

			end as CE_Descrizione,
			-- FINE CONCENTRAZIONE EMITTENTI

			-- COMPLESSITA'
			--b.flgprof, b.flagpg, b.flagnqp, b.flgprlrde, b.clcompl,
			case
				when b.flgprof = 'S' then 'prof'
				when b.flagpg = 1 and b.flgprof = 'N' and b.flagnqp = 'S' and b.flgprlrde = 'N' then '-1' --Massimiliano dice che va messo prima di tutti senza testare altri flag 17/5/2018
				when upper(b.clcompl) = 'N' and
						 (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = a.i_codiceFiscale and dttrim = @DataFineTrim ) = 'S' then '0'
				when upper(b.clcompl) = 'N' and b.flagpg = 0 then '0'
				when upper(b.clcompl) = 'N' and b.flagpg = 1 and b.flgprlrde = 'N' then '0'
				when upper(b.clcompl) = 'S' then '1'
			end as CM_Adeguatezza,
	
			case
				when b.flagpg = 1 and b.flgprof = 'N' and b.flagnqp = 'S' and b.flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '-1')
				when upper(clcompl) = 'N' and
						  (select nocompl from [C6StagingPeriodico].[WSEIAN2] where codfis = a.i_codiceFiscale and dttrim = @DataFineTrim ) = 'S'  then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0C')
				when upper(clcompl) = 'N' and b.flagpg = 0  then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0A')
				when upper(clcompl) = 'N' and b.flagpg = 1 and b.flgprlrde = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '0B')
				when upper(clcompl) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 4 and Adeguato = '1')
			end as CM_Descrizione,
			-- FINE COMPLESSITA'

			-- CONCENTRAZIONE PRODOTTI COMPLESSI
			--b.flgprof, b.flgconc,
			case
				when b.flgprof = 'S' then 'prof'
				when upper(b.flgconc) = 'S' then '1'
				when upper(b.flgconc) = 'N' then '0'
				else '-1'	
			end as CC_Adeguatezza,

			case
				when upper(b.flgconc) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '1')
				when upper(b.flgconc) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '0')
				else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 5 and Adeguato = '-1')
			end as CC_Descrizione,

			-- FINE CONCENTRAZIONE PRODOTTI COMPLESSI

			-- FREQUENZA

			--b.flgprof, b.freq,
			case
				when b.flgprof = 'S' then 'prof'
				when upper(b.freq) = 'S' then '1'
				when upper(b.freq) = 'N' then '0'
				else '-1'	
			end as FQ_Adeguatezza,
	
			case
				when upper(b.freq) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '1')
				when upper(b.freq) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '0')
				else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 6 and Adeguato = '-1')
			end as FQ_Descrizione,

			-- FINE FREQUENZA

			-- LIQUIDITA' / LIQUIDABILITA'
			--b.lliquid,
			case
				when upper(b.lliquid) = 'S' then '1'
				when upper(b.lliquid) = 'N' then '0'
				else '-1'	
			end as LQ_Adeguatezza,

			case
				when upper(b.lliquid) = 'S' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '1')
				when upper(b.lliquid) = 'N' then (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '0')
				else (select [DescrizioneEsito] from [C6MartPeriodico].[TB_S178IndicatoriEsitoAdeguatezza_Note] where ordine = 7 and Adeguato = '-1')
			end as LQ_Descrizione
			-- FINE LIQUIDITA' / LIQUIDABILITA'

		from [wh].[PL_D2_S169RischiomercatoRischiocredito] a
			inner join C6StagingPeriodico.WSEIAN2 b
			on a.i_rete = b.rete
			and a.i_codiceFiscale =
								(case
									when isnull(b.CodMan, '') <> '' then 'FF@' + b.CodMan
									else b.CodFis
								end)
		where
			a.ordine = 1
			--and a.i_codiceFiscale in (
			----codici di test
			--'ff@10005',
			--'00072930076',     
			--'00118220524',     
			--'00123360075',     
			--'00156630063',     
			--'00158650309'     
			--)
		and b.DtTrim = @DataFineTrim


		--select top 10 * from c6stagingperiodico.wseian where isnull(codman, '') <> ''

END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S43]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE procedure [wh].[MERGED_PROCEDURE_S43]
AS
BEGIN
	SET NOCOUNT ON;

	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
	WHERE 
		isnull(ctv,0) < 0

END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_S85]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE procedure [wh].[MERGED_PROCEDURE_S85]
AS
BEGIN
	SET NOCOUNT ON;

		SELECT
		   [RETE]
		  ,[COD_FISCALE]
		  ,[ID_AREA]
		  ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
		  ,[TIPO_PROGETTO]
		  ,[PERC_AREA]
		  ,[CTV_PROGETTO]
		  ,[CTV_AREA]
		  ,[ORIZZ_TEMP_NUM]
		  ,[ORIZZ_TEMP]
		  ,[CTV_TOTALE]
		  ,[STATO_CONSULENZA]
		  ,[DATA_STATO_CONS]
		  ,[DATA_MIGR_CONS]
		  ,[ID_CONTRATTO]
		  ,[ORDINAMENTO_PROGETTO]
		  ,[ID_ELAB]
		  ,[TIPO_ELAB]
	into #pir_mod_xxx
	  FROM [C6MartPeriodico].[PIRAMIDE_MOD]
	
	--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
	INSERT INTO WH.PL_S85RendimentoPortafoglioCono
	SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
			CONO.ID_AREA AS NEED_AREA,
			CASE
				WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
				ELSE CONO.NOME_PROGETTO
			END AS NOME_PROGETTO,
			cono.ordinamento_progetto,
			CONO.DATA_CONO,
			CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
			CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
			isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
			MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
			MONIT.DATA_CTV AS DATA_MONIT
		
		
		FROM
			C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
			ON CONO.RETE = MONIT.RETE
			AND CONO.COD_FISCALE = MONIT.COD_FISCALE
			AND CONO.ID_AREA = MONIT.ID_AREA
			AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
			And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

		INNER JOIN #pir_mod_xxx as PIRMOD
			ON CONO.RETE = PIRMOD.RETE
			AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
			AND CONO.ID_AREA = PIRMOD.ID_AREA
			AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
	--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
	--		ON CONO.RETE = PIRMOD.RETE
	--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
	--		AND CONO.ID_AREA = PIRMOD.ID_AREA
	--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

		ORDER BY CONO.DATA_CONO

		drop table #pir_mod_xxx


END
GO
/****** Object:  StoredProcedure [wh].[MERGED_PROCEDURE_SINGLE]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [wh].[MERGED_PROCEDURE_SINGLE]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------


truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.pl_d2_s169rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d_s170rischiodiversificazione
------------------------------------------------------------------------

-------------------------------------------PL_S82DatiSintetici
INSERT INTO WH.PL_S82DatiSintetici
SELECT 'C6MartPeriodico.PL_S82DatiSintetici' as ProcedureName, PATRAREA.RETE as i_rete ,PATRAREA.COD_FISCALE as i_codiceFiscale,	
		PATRAREA.ID_AREA AS need_area,
		ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RISCHIOAREA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RISCHIOAREA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISCHIOAREA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PATRAREA.ORDINAMENTO_PROGETTO,
		/*V Calcolato a livello di codice
		CASE
			WHEN PATRAGGR.CTV = 0 THEN 0
			ELSE PATRAREA.CTV / PATRAGGR.CTV * 100
		END AS pesoPerc,*/
		PATRAREA.CTV AS ControvaloreAttuale
		/* Calcolato a livello di codice
		CASE
			WHEN @TOTRischio = 0 THEN 0
			ELSE ISNULL(RISCHIOAREA.VAR_PERC_PTF,0) * PATRAREA.CTV / @TOTRischio * 100
		END AS rischioRelativo*/
	FROM C6MartPeriodico.vPatrimonioBFAggregatoPerArea AS PATRAREA
	INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS PATRAGGR
		ON PATRAGGR.RETE = PATRAREA.Rete
		AND PATRAGGR.COD_FISCALE = PATRAREA.COD_FISCALE
	LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAREA
		ON RISCHIOAREA.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRAREA.ID_AREA,3)
		AND RISCHIOAREA.RETE = PATRAREA.Rete
		AND RISCHIOAREA.COD_FISCALE = PATRAREA.COD_FISCALE
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PATRAREA.COD_FISCALE
	WHERE 1=1
			AND PATRAREA.ID_AREA IN ('RIS','EXT','LIQ','PRE')

-------------------------------------------------------------------------

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

SELECT
       [RETE]
      ,[COD_FISCALE]
      ,[ID_AREA]
      ,isnull([NOME_PROGETTO],'XXX') as NOME_PROGETTO
      ,[TIPO_PROGETTO]
      ,[PERC_AREA]
      ,[CTV_PROGETTO]
      ,[CTV_AREA]
      ,[ORIZZ_TEMP_NUM]
      ,[ORIZZ_TEMP]
      ,[CTV_TOTALE]
      ,[STATO_CONSULENZA]
      ,[DATA_STATO_CONS]
      ,[DATA_MIGR_CONS]
      ,[ID_CONTRATTO]
      ,[ORDINAMENTO_PROGETTO]
      ,[ID_ELAB]
      ,[TIPO_ELAB]
into #pir_mod_xxx
  FROM [C6MartPeriodico].[PIRAMIDE_MOD] p
  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = p.[COD_FISCALE]

	
--select * from #pir_mod_xxx where cod_fiscale = 'FF@7181'
INSERT INTO WH.PL_S85RendimentoPortafoglioCono
SELECT 'C6MartPeriodico.PL_S85RendimentoPortafoglioCono' as ProcedureName, CONO.RETE as i_rete ,CONO.COD_FISCALE as i_codiceFiscale,
		CONO.ID_AREA AS NEED_AREA,
		CASE
			WHEN CONO.NOME_PROGETTO = 'XXX' THEN ''
			ELSE CONO.NOME_PROGETTO
		END AS NOME_PROGETTO,
		cono.ordinamento_progetto,
		CONO.DATA_CONO,
		CONO.SCENARIO_OTTIMISTICO AS OTTIMISTICO,
		CONO.SCENARIO_PESSIMISTICO AS PESSIMISTICO,
		isnull(PIRMOD.ORIZZ_TEMP_NUM,0) * 12 AS ORIZZONTE_MESI,
		MONIT.RENDIMENTO_CUMULATO AS RENDIMENTO,
		MONIT.DATA_CTV AS DATA_MONIT
		
		
	FROM
		C6MartPeriodico.CONO_PIANIFICAZIONE AS CONO
	INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE AS MONIT
		ON CONO.RETE = MONIT.RETE
		AND CONO.COD_FISCALE = MONIT.COD_FISCALE
		AND CONO.ID_AREA = MONIT.ID_AREA
		AND CONO.NOME_PROGETTO = MONIT.NOME_PROGETTO
		And cono.ordinamento_progetto=monit.ordinamento_progetto --l'ordinamento progetto è sempre pari alla chiaveprogetto e non idmonitoraggio

	INNER JOIN #pir_mod_xxx as PIRMOD
		ON CONO.RETE = PIRMOD.RETE
		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
		AND CONO.ID_AREA = PIRMOD.ID_AREA
		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		And cono.ordinamento_progetto=pirmod.ordinamento_progetto
		
--	INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
--		ON CONO.RETE = PIRMOD.RETE
--		AND CONO.COD_FISCALE = PIRMOD.COD_FISCALE
--		AND CONO.ID_AREA = PIRMOD.ID_AREA
--		AND CONO.NOME_PROGETTO = PIRMOD.NOME_PROGETTO

	ORDER BY CONO.DATA_CONO

	drop table #pir_mod_xxx
END
-------------------------------------------------------------------------

-------------------------------------------pl_areemonitorate
BEGIN

INSERT INTO WH.PL_AreeMonitorate
SELECT 'C6MartPeriodico.PL_AreeMonitorate' as ProcedureName, [RETE] as i_rete ,[COD_FISCALE] as i_codiceFiscale, 
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
--CONTROLLO NOME PROGETTO DUPLICATO, TOLTO IL MAX, AGGIUNTO NEL GROUP BY
ORDINAMENTO_PROGETTO,
--MAX(ORDINAMENTO_PROGETTO) AS ORDINAMENTO_PROGETTO,
MAX(ORDINE) AS ORDINE,
--rimettere il min e commentare il ctv=0
max(AREAPROGETTOSOTTOMONITORAGGIO) AS AREAPROGETTOSOTTOMONITORAGGIO
FROM
(
	--1.1 liq sotto monit
	SELECT
	    PIRMOD.RETE AS RETE,
		PIRMOD.COD_FISCALE as COD_FISCALE,
		PIRMOD.ID_AREA AS Need_Area,		
		AREA.NOME_AREA AS Need_Estesa,
		CASE WHEN PIRMOD.NOME_PROGETTO is null and pirmod.id_area='Inv' THEN 'Prodotti non associati a progetti'		
			ELSE LTRIM(RTRIM(PIRMOD.NOME_PROGETTO))
		END AS Nome_Progetto,
		PIRMOD.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
	 CASE PIRMOD.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 6
	END AS ORDINE,
    CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	FROM
		(SELECT 
		RETE,
		COD_FISCALE,
		case when ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else id_area end as  Id_area,
		NOME_PROGETTO,
		TIPO_PROGETTO,
		PERC_AREA,
		CTV_PROGETTO,
		CTV_AREA,
		ORIZZ_TEMP_NUM,
		ORIZZ_TEMP,
		CTV_TOTALE,
		STATO_CONSULENZA,
		DATA_STATO_CONS,
		DATA_MIGR_CONS,
		DATA_PIANIF,
		ID_CONTRATTO,   ---LEVARE???
        ORDINAMENTO_PROGETTO
	FROM
        C6MartPeriodico.CONS_ATTIVAGGIORNATA	
        ) PIRMOD
		 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PIRMOD.COD_FISCALE
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PIRMOD.ID_AREA = AREA.ID_AREA
        LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PIRMOD.COD_FISCALE
        AND MONIT.RETE=PIRMOD.RETE
        AND MONIT.ID_AREA= PIRMOD.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PIRMOD.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PIRMOD.ORDINAMENTO_PROGETTO
	WHERE
		PIRMOD.CTV_PROGETTO > 0
		AND PIRMOD.ID_AREA NOT IN ('Pre1', 'Pre2', 'Cc')
    
    
 --V ordine cambiato da 5 a 6 inquanto 5 è lo stesso di ext, na è passato a 7
 --Bido Added for 'SN' Saldo Negativo
	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Cc' AS Need_Area,
	  'Conti correnti a saldo negativo'AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      6 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  PATRBF.COD_FISCALE
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'CC'
-- End Of Bido Added for 'SN' Saldo Negativo
		   
  	  UNION	
		
	  SELECT DISTINCT
	  PATRBF.RETE AS RETE,
	  PATRBF.COD_FISCALE as COD_FISCALE,
	  'Self' AS Need_Area,
	   'Liquidità negativa "Linee GP Eligo"' AS Need_Estesa,
	  NULL AS Nome_Progetto,
	  --999999 as ORDINAMENTO_PROGETTO,
      ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
      7 AS ORDINE,
      0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =    PATRBF.COD_FISCALE
      WHERE 
	  PATRBF.CTV < 0 and id_area = 'SELF'
-- End Of Bido Added for 'SN' Saldo Negativo
  
    
    UNION 
    SELECT DISTINCT
	    PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		'Na' AS Need_Area,
		'Non allocato'AS Need_Estesa,
		NULL AS Nome_Progetto,
		--999999 as ORDINAMENTO_PROGETTO,
        ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
        8 AS ORDINE,
        0 as AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	  	  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =    PATRBF.COD_FISCALE
      WHERE 
		PATRBF.CTV > 0
		AND PATRBF.ID_AREA  IN ('Na')
	  
 

      UNION 
         SELECT DISTINCT
		PATRBF.RETE AS RETE,
	    PATRBF.COD_FISCALE as COD_FISCALE,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Pre' else PATRBF.ID_AREA end  AS Need_Area,
		case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 'Previdenza' else AREA.NOME_AREA end as NEED_ESTESA ,
		CASE WHEN PATRBF.NOME_PROGETTO is null and PATRBF.id_area='Inv' THEN 'Prodotti non associati a progetti'		
		ELSE PATRBF.NOME_PROGETTO end AS Nome_Progetto,
		--case when PATRBF.ID_AREA in ('Pre','Pre1','Pre2') then 1 else  PATRBF.ORDINAMENTO_PROGETTO end  as ORDINAMENTO_PROGETTO,
		PATRBF.ORDINAMENTO_PROGETTO  as ORDINAMENTO_PROGETTO,
        CASE PATRBF.ID_AREA 
		 WHEN 'Liq' THEN 1
		 WHEN 'Ris' THEN 2
		 WHEN 'Pre' THEN 3
         WHEN 'Pre1' THEN 3
         WHEN 'Pre2' THEN 3
		 WHEN 'Inv' THEN 4		 
		 WHEN 'Ext' THEN 5
		 WHEN 'Na' THEN 7
	END AS ORDINE,
       CASE WHEN MONIT.COD_FISCALE IS NULL THEN 0 ELSE 1 END AS AREAPROGETTOSOTTOMONITORAGGIO 
	  FROM
      C6MARTPERIODICO.PATRIMONIO_BF PATRBF 
	  	  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =    PATRBF.COD_FISCALE
	  INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
	  PATRBF.ID_AREA = AREA.ID_AREA
      LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONIT
        ON MONIT.COD_FISCALE=PATRBF.COD_FISCALE
        AND MONIT.RETE=PATRBF.RETE
        AND MONIT.ID_AREA= PATRBF.ID_AREA 
        AND MONIT.NOME_PROGETTO= ISNULL(PATRBF.NOME_PROGETTO,'XXX')
		AND MONIT.ORDINAMENTO_PROGETTO=PATRBF.ORDINAMENTO_PROGETTO

       WHERE
        1=1 
		AND PATRBF.CTV > 0
        AND PATRBF.EXTRANAC=1
		AND PATRBF.ID_AREA  NOT IN ('Na', 'Cc') 

  

) A

GROUP BY
RETE,
COD_FISCALE,
NEED_AREA,
NEED_ESTESA,
NOME_PROGETTO,
ORDINAMENTO_PROGETTO

	ORDER BY
		ORDINE,
		ORDINAMENTO_PROGETTO
END
-------------------------------------------------------------------------

-------------------------------------------PL_S43LineaSelfBF
BEGIN
	INSERT INTO WH.PL_S43LineaSelfBF
	SELECT 'C6MartPeriodico.PL_S43LineaSelfBF' as ProcedureName, LS.rete as i_rete ,LS.codfis as i_codiceFiscale, 	  	 	 
		 codconf as NumContratto,
		 isnull(ctv,0) as Controvalore,
--INIZIO Intervento Eligo Titoli		 
		 NomeProdotto as NomeProdotto,
--FINE   Intervento Eligo Titoli		 		 
		 dbo.ToShortDateString(cast(datasott as varchar))  as DataSott
	FROM       
		C6MartPeriodico.ANAG_SELF LS	
			  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  LS.codfis
	WHERE 
		isnull(ctv,0) < 0
END
-------------------------------------------------------------------------

-------------------------------------------PL_S10PatrimonioFinanziario
BEGIN
	
	INSERT INTO WH.PL_S10PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_S10PatrimonioFinanziario' as ProcedureName, [Rete] as i_rete ,[CodiceFiscale] as i_codiceFiscale, 	
       [Banca]
      ,[Ordinamento]
      ,[AssetClassId]
      ,[AssetClassName]
      ,[Controvalore]
      ,[Percentuale]
      ,[Totale]
  FROM [C6MartPeriodico].[tb_S10PatrimonioFinanziario]
   INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  [CodiceFiscale]
  order by ordinamento
END 
-------------------------------------------------------------------------

-------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
BEGIN

INSERT INTO WH.PL_Prodotti_Non_Associati_Area_Inv
	SELECT 'C6MartPeriodico.PL_Prodotti_Non_Associati_Area_Inv' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti') AS NOME_PROGETTO,
ID_AREA as NEED_AREA,
SUM(CTV) AS CONTROVALOREATTUALE,
MAX(ISNULL(RISK.VAR_PERC_PTF,0)) AS var_needarea,
--PATRBF.ORDINAMENTO_PROGETTO as ORDINAMENTO_PROGETTO,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString
FROM
C6MARTPERIODICO.PATRIMONIO_BF  PATRBF
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  PATRBF.COD_FISCALE
LEFT OUTER JOIN 
C6MARTPERIODICO.RISCHIO_AGGREGATO RISK 
ON PATRBF.RETE = RISK.RETE
			AND PATRBF.COD_FISCALE = RISK.COD_FISCALE
			AND RISK.COD_AGGREG = 'PIRAMIDE|Inv|'+ ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti')
WHERE 1 = 1	
    AND PATRBF.id_AREA = 'Inv' 
    AND PATRBF.NOME_PROGETTO='Prodotti non associati a progetti'        
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
ISNULL(PATRBF.NOME_PROGETTO,'Prodotti non associati a progetti'),
ID_AREA,
CHIAVE_PROGETTO,
		CASE 
			WHEN RISK.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RISK.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END 
END
-------------------------------------------------------------------------

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

	DECLARE @varBF DECIMAL(12,2)
	DECLARE @coperturaBF DECIMAL(12,2)

	INSERT INTO WH.PL_D2_S151ProfiloDiRischio
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, M.RETE as i_rete, M.COD_FISCALE as i_codiceFiscale,
	
        M.PROFILO_ASS as codiceProfilo,
		DBO.TOSHORTDATESTRING(M.DATA_INIZIO_VAL) as dataInizioValidita,
		CR.MAX_VAR as varMassimo,
		ISNULL(@varBF,0) as varBF,
		ISNULL(@coperturaBF,0) as coperturaBF,
		ProfiliDiRischio.NOMEPROFILO  as nomeProfilo,
        m.riskclass as riskclass,
        m.experience as experince
	FROM	
		C6MartPERIODICO.MIFID AS M
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = M.COD_FISCALE
		INNER JOIN C6MartPERIODICO.CODIFICA_RISCHIO AS CR
		ON M.PROFILO_ASS = CR.PROFILO
		INNER JOIN DBO.ProfiliDiRischio AS ProfiliDiRischio
		ON M.PROFILO_ASS = ProfiliDiRischio.CODICEPROFILO

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s152patrimonio
BEGIN



SELECT SUM(CTV) as Value, patrBF.Rete,  patrBF.Cod_Fiscale
into #PatrimonioBF
             FROM C6MartPeriodico.PATRIMONIO_BF patrBF
			 	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = patrBF.Cod_Fiscale
             WHERE patrBF.id_area not in ('CC','SELF')  
             group by patrBF.Cod_Fiscale, patrBF.Rete


       SELECT SUM(IMPORTO) as Value, Rete, Cod_Fiscale
       into #Part_viaggianti 
             FROM
             (
                           SELECT SUM(IMPORTO) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.PARTITE_VIAGGIANTI partvia
                                 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = partvia.Cod_Fiscale
                                        group by partvia.Rete, partvia.Cod_Fiscale
                           union 
                           SELECT SUM(PARTVIA_DISINV) AS IMPORTO, partvia.Rete, partvia.Cod_Fiscale
                                 FROM C6Martperiodico.patrimonio_bf partvia
                                  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = partvia.Cod_Fiscale
                                        group by partvia.Rete, partvia.Cod_Fiscale
             ) T
             group by  Rete, Cod_Fiscale
     
    SELECT SUM(ROUND(CTV,2)) as Value, patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
                    into #PatrimonioTerzi
             FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
			  INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = patrTerzi.Cod_Fiscale
             group by patrTerzi.Rete,
                    patrTerzi.Cod_Fiscale
             
             

       SELECT SUM(patrImm.VALORE_STIMATO) as Value,
       patrImm.Rete, patrImm.Cod_Fiscale
       into #PatrimonioImmobiliare
             FROM C6MartPeriodico.PATRIMONIO_IMMOBILIARE patrImm
			   INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  patrImm.Cod_Fiscale
             group by patrImm.Rete, patrImm.Cod_Fiscale
             
       SELECT SUM(patrAltro.ctv) as Value, patrAltro.Rete, patrAltro.Cod_Fiscale
       into #PatrimonioAltro
             FROM C6MartPeriodico.PATRIMONIO_ALTRO patrAltro
			 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  patrAltro.Cod_Fiscale
             group by patrAltro.Rete, patrAltro.Cod_Fiscale


             select distinct rete, cod_fiscale
             into #merge
             from
             (
                    select rete, cod_fiscale from #PatrimonioBF UNION ALL
                    select rete, cod_fiscale from #PatrimonioTerzi UNION ALL
                    select rete, cod_fiscale from #Part_viaggianti  UNION ALL
                    select rete, cod_fiscale from #PatrimonioImmobiliare UNION ALL
                    select rete, cod_fiscale from  #PatrimonioAltro
             )x

			 truncate table WH.pl_d2_s152patrimonio	

             ;with data as
             (
             select m.rete, m.cod_fiscale, 
                    cast(COALESCE(a.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as PatrimonioBF,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00) as numeric(18,2)) as FinanziarioCTV,
                    cast(COALESCE(a.value,0.00)+COALESCE(b.value,0.00)+COALESCE(c.value,0.00)+COALESCE(d.value,0.00)+COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioTotale,
                    cast(COALESCE(b.value,0.00) as numeric(18,2)) as PatrimonioTerziCTV,
                    cast(COALESCE(d.value,0.00) as numeric(18,2)) as PatrimonioImmobiliare,
                    cast(COALESCE(e.value,0.00) as numeric(18,2)) as PatrimonioAltro
             from #merge m
                    left join #PatrimonioBF a                  on a.rete = m.rete and a.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioTerzi b               on b.rete = m.rete and b.cod_fiscale = m.cod_fiscale
                    left join #Part_viaggianti c               on c.rete = m.rete and c.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioImmobiliare d         on d.rete = m.rete and d.cod_fiscale = m.cod_fiscale
                    left join #PatrimonioAltro e           on e.rete = m.rete and e.cod_fiscale = m.cod_fiscale
                    )

					
		INSERT INTO WH.pl_d2_s152patrimonio		
	    SELECT  'C6MartPeriodico.pl_d2_s152patrimonio' as ProcedureName, rete as i_rete, cod_fiscale as i_codiceFiscale,
                    PatrimonioBF, 
                    PatrimonioTerziCTV,
                    FinanziarioCTV,
                    CONVERT(decimal(6,2),
                           case when PatrimonioTotale = 0.00 then 0.00 
                           else FinanziarioCTV / PatrimonioTotale end 
                    * 100.00) AS FinanziarioPerc,
                    PatrimonioImmobiliare,
                    CONVERT(decimal(6,2),
                           case  when PatrimonioTotale = 0.00 then 0.00 
                           else PatrimonioImmobiliare/PatrimonioTotale end 
                            
                    * 100.00) AS ImmobiliarePerc,
                    PatrimonioAltro,
                    CONVERT(decimal(6,2),
                           case PatrimonioTotale when 0.00 then 0.00 
                           else PatrimonioAltro/PatrimonioTotale end
                           
                    * 100.00) AS AltroPerc,
                    PatrimonioTotale as TotaleCTV
                    from data


END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S153PatrimonioFinanziario
BEGIN
	INSERT INTO WH.PL_D2_S153PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S151ProfiloDiRischio' as ProcedureName, Rete as i_rete, Cod_Fiscale as i_codiceFiscale, 
		Intermediario,
		Ordine,
		Banca,
		Controvalore,
		round(Percentuale,2) as Percentuale
	FROM 
	(
		SELECT DISTINCT
		    Rete,
			Cod_Fiscale,
			Intermediario,
			Ordine,
			CASE Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Banca,			 
			SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_fiscale) AS CONTROVALORE,
			(
				(SUM(ctv) over (partition by Intermediario,Ordine,Rete,Cod_Fiscale)) / 
				wh.IsZero((SUM(ctv) over (partition by 'Totale'+Rete+Cod_fiscale)),1)
			 ) * 100 AS PERCENTUALE
		FROM 
		(
			SELECT 
			    patrBF.Rete as Rete,
				patrBF.Cod_Fiscale as Cod_Fiscale,
				CASE patrBF.Rete WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS Intermediario,
				SUM(ROUND(CTV,2)) AS ctv,
				1 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_BF patrBF
						 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  patrBF.Cod_Fiscale
				WHERE 1 = 1				
					and patrBF.id_area  not in ('CC','SELF')
				GROUP BY patrBF.Rete, patrBF.Cod_Fiscale
			UNION ALL

			SELECT 
			    patrTerzi.Rete as Rete,
				patrTerzi.Cod_Fiscale as Cod_Fiscale,
				Intermediario, 
				SUM(ROUND(CTV,2)) AS ctv,
				2 AS ordine
				FROM C6MartPeriodico.PATRIMONIO_TERZI patrTerzi
							 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =  patrTerzi.Cod_Fiscale
				WHERE 1 = 1
				GROUP BY patrTerzi.Intermediario, patrTerzi.Rete, patrTerzi.Cod_Fiscale

		) PATR
		GROUP BY Cod_Fiscale, Rete, intermediario, ordine, ctv
	) A
	WHERE CONTROVALORE IS NOT NULL
	ORDER BY Ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S154PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S154PatrimonioFinanziario
	SELECT 'C6MartPeriodico.PL_D2_S154PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
	A.Banca,
	A.Ordinamento,
	A.AssetClassId, 
	A.AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) Controvalore,
	A.Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2) as decimal(38,6)) AS PatrimonioFinanziarioCTV
FROM 
(		

	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE WHEN 'S' THEN 'Sanpaolo Invest'ELSE 'Fideuram' END AS Banca,
		ASSETCLASS.ORDINAMENTO AS Ordinamento,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) AS Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
			NULLIF(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),0)
		) * 100 AS Percentuale
	FROM (

		
		SELECT 	--PRODOTTI BF ESCLUSI GLI ASUL
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
								 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PATRBF.COD_FISCALE
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
		WHERE 
			PATRBF.TIPO_PRODOTTO NOT IN ('ASUL') 
			AND PATRBF.ID_AREA  not in ('CC','SELF') 

		UNION ALL
	
		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE as COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
				 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = ASUL.COD_FISCALE
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL
		--CON SKANDIA
		SELECT 
				ASUL.RETE AS RETE,
				ASUL.COD_FISCALE as COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
			 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = ASUL.COD_FISCALE
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1


		UNION ALL

		--PRODOTTI TERZI A CATALOGO
		SELECT
		    PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
				 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PATRTERZI.COD_FISCALE
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'

		UNION ALL

		--PRODOTTI TERZI NON A CATALOGO
		SELECT 	
			PATRTERZI.RETE AS RETE,
			PATRTERZI.COD_FISCALE as COD_FISCALE,
			ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') ID_ASSETCLASS,
			PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
						 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PATRTERZI.COD_FISCALE
		LEFT OUTER JOIN 
			C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
			ON 
				PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
				AND ASSETPERC.LIVELLO = 1
		WHERE 1 = 1
			AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
	--GROUP BY RETE, COD_FISCALE, ASSETCLASS.ordinamento, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE
		
) A
--GROUP BY RETE, COD_FISCALE, A.BANCA, A.ORDINAMENTO, A.ASSETCLASSID, A.ASSETCLASSNAME, A.CONTROVALORE, A.PERCENTUALE
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S155PatrimonioImmobiliare
BEGIN

INSERT INTO WH.PL_D2_S155PatrimonioImmobiliare
	SELECT 'C6MartPeriodico.PL_D2_S155PatrimonioImmobiliare' as ProcedureName, PATRIMONIO_IMMOBILIARE.RETE as i_rete, PATRIMONIO_IMMOBILIARE.COD_FISCALE as i_codiceFiscale,	
			PATRIMONIO_IMMOBILIARE.DESCRIZIONE AS Descrizione,
			PATRIMONIO_IMMOBILIARE.TIPOLOGIA AS Tipologia,
			PATRIMONIO_IMMOBILIARE.LOCALITA AS Localita,
			isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0) AS AffittoPercepito,
			PATRIMONIO_IMMOBILIARE.valore_stimato AS Valore,
			SUM(PATRIMONIO_IMMOBILIARE.VALORE_STIMATO) OVER (PARTITION BY 'Totale'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as Totale,
			SUM(isnull(PATRIMONIO_IMMOBILIARE.AFFITTO,0)) OVER (PARTITION BY 'TotaleAffitto'+PATRIMONIO_IMMOBILIARE.RETE+PATRIMONIO_IMMOBILIARE.COD_FISCALE) as TotaleAffitto
	FROM C6MARTperiodico.PATRIMONIO_IMMOBILIARE 
				 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PATRIMONIO_IMMOBILIARE.COD_FISCALE
	--GROUP BY PATRIMONIO_IMMOBILIARE.RETE, PATRIMONIO_IMMOBILIARE.COD_FISCALE, PATRIMONIO_IMMOBILIARE.descrizione, PATRIMONIO_IMMOBILIARE.TIPOLOGIA, PATRIMONIO_IMMOBILIARE.LOCALITA, PATRIMONIO_IMMOBILIARE.AFFITTO, PATRIMONIO_IMMOBILIARE.VALORE_STIMATO
	ORDER BY PATRIMONIO_IMMOBILIARE.valore_stimato DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S156ALtroPatrimonio
BEGIN
	INSERT INTO WH.PL_D2_S156ALtroPatrimonio
	SELECT 'C6MartPeriodico.PL_D2_S156ALtroPatrimonio' as ProcedureName, PATRIMONIO_ALTRO.RETE as i_rete, PATRIMONIO_ALTRO.COD_FISCALE as i_codiceFiscale,	
	 
		PATRIMONIO_ALTRO.DESCRIZIONE AS Denominazione,
		PATRIMONIO_ALTRO.QUANTITA AS NumeroQuote,
		PATRIMONIO_ALTRO.CTV AS Valore,
		SUM(PATRIMONIO_ALTRO.CTV) OVER (PARTITION BY 'Totale',PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE ) as Totale
	FROM 
		C6MartPeriodico.PATRIMONIO_ALTRO 
						 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = PATRIMONIO_ALTRO.COD_FISCALE
		--GROUP BY PATRIMONIO_ALTRO.RETE, PATRIMONIO_ALTRO.COD_FISCALE, PATRIMONIO_ALTRO.DESCRIZIONE, PATRIMONIO_ALTRO.QUANTITA, PATRIMONIO_ALTRO.CTV 
	ORDER BY 
		PATRIMONIO_ALTRO.CTV DESC
END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S157ConfrontoPiramidi
BEGIN
INSERT INTO WH.PL_D2_S157ConfrontoPiramidi
SELECT 'C6MartPeriodico.PL_D2_S157ConfrontoPiramidi' as ProcedureName, RETE as i_rete, [CodiceFiscale] as i_codiceFiscale,	
	 [NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] p
  						 INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = p.[CodiceFiscale]
  where [CodiceFiscale] is not null and [Rete] is not null
  order by ordinamento

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S158PiramideModello
BEGIN
INSERT INTO WH.PL_D2_S158PiramideModello
SELECT 'C6MartPeriodico.PL_D2_S158PiramideModello' as ProcedureName, BF.RETE as i_rete, BF.COD_FISCALE as i_codiceFiscale,	
		  BF.NOME_PROGETTO AS NomePrg,
			   PIRMOD.ORIZZ_TEMP AS OrizzTempPrg,
			   AGGR.VAR_PERC_PTF as VarPrg,
			   SUM(BF.CTV)AS ControvalorePrg
		FROM  C6MartPeriodico.PATRIMONIO_BF BF 
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode = BF.COD_FISCALE
		INNER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AGGR
			ON BF.RETE= AGGR.RETE
			AND BF.COD_FISCALE= AGGR.COD_FISCALE
			AND AGGR.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(BF.ID_AREA,3) + '|' + BF.NOME_PROGETTO
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD PIRMOD
			ON BF.RETE= PIRMOD.RETE
			AND BF.COD_FISCALE= PIRMOD.COD_FISCALE
			AND BF.ID_AREA = PIRMOD.ID_AREA
			AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
		WHERE 1=1
		AND BF.ID_AREA = 'inv'
		AND BF.CTV > 0
		group BY BF.NOME_PROGETTO,PIRMOD.ORIZZ_TEMP,AGGR.VAR_PERC_PTF, BF.RETE, BF.COD_FISCALE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S159PatrimonioFinanziario
BEGIN
	
INSERT INTO WH.PL_D2_S159PatrimonioFinanziario
SELECT 'C6MartPeriodico.PL_D2_S159PatrimonioFinanziario' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,

	A.BANCA AS Banca,
	A.ORDINAMENTO AS Ordinamento,
	A.AssetClassId AS AssetClassId, 
	A.AssetClassName AS AssetClassName, 
	cast(A.Controvalore as decimal(38,6)) AS Controvalore,
	cast(A.Percentuale  as decimal(38,6)) AS Percentuale,
	cast(ROUND(SUM(A.Controvalore) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE),2)  as decimal(38,6))  AS Totale
FROM 
(		
	SELECT DISTINCT
		RETE,
		COD_FISCALE,
		CASE RETE
			WHEN 'S' THEN 'Sanpaolo Invest'
			ELSE 'Fideuram' 
		END AS Banca,
		ASSETCLASS.ORDINAMENTO,
		VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
		ASSETCLASS.DESCRIZIONE AS AssetClassName, 
		ROUND(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE),2) as Controvalore,
		(
			SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS+RETE+COD_FISCALE) /
            --16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
			CASE WHEN ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) = 0 
				 THEN 1 
                 ELSE ( SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE'+RETE+COD_FISCALE) ) 
            END  
		) * 100 AS Percentuale
	FROM (

		SELECT 	
			PATRBF.RETE AS RETE,
			PATRBF.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			PATRBF.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.PATRIMONIO_BF PATRBF
				INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC 
			ON 
				PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
				AND ASSETPERC.LIVELLO = 1
		WHERE 
			--ELIMINO I CONTRATTI ASUL PERCHE' UTILIZZIAMO IL DETTGALIO CHE PRENDIAMO CON LA SECONDA QUERY
			(PATRBF.TIPO_PRODOTTO NOT IN ('ASUL'))--,'CC'))
			and patrbf.id_area not in ('CC','Self')

		UNION ALL
		

		SELECT 
			ASUL.RETE AS RETE,
			ASUL.COD_FISCALE AS COD_FISCALE,
			ASSETPERC.ID_ASSETCLASS,
			ASUL.CTV*ASSETPERC.PERC as Controvalore
		FROM 
			C6MartPeriodico.DETTAGLIO_ASUL ASUL
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =ASUL.COD_FISCALE 
		INNER JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---ELIMINO GLI SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1

		UNION ALL

		SELECT  ASUL.RETE AS RETE,
				ASUL.COD_FISCALE AS COD_FISCALE,
				ASSETPERC.ID_ASSETCLASS,
				ASUL.CTV*ASSETPERC.PERC as Controvalore				
		FROM C6MartPeriodico.DETTAGLIO_ASUL ASUL
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =ASUL.COD_FISCALE 
		INNER JOIN C6MartPeriodico.ASSET_PERC ASSETPERC
			--PRENDO SOLO GLI SKANDIA
			ON ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1

	) VALORIASSET
	INNER JOIN 
		C6MartPeriodico.ASSETCLASS ASSETCLASS
		ON 
			ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
) A
--group by RETE, COD_FISCALE, a.banca, a.ordinamento, a.assetclassid, a.assetclassname, a.controvalore, a.percentuale
ORDER BY A.ORDINAMENTO

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S160DettaglioProdottiBF
BEGIN

INSERT INTO WH.PL_D2_S160DettaglioProdottiBF
SELECT 'C6MartPeriodico.PL_D2_S160DettaglioProdottiBF' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO as ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA+PATRBF.RETE+PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp2
	
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ' and
		tmp2.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP2.RETE = PATRBF.RETE) = (SELECT COUNT(*)
	FROM C6MartPeriodico.PATRIMONIO_BF tmp3
	WHERE  ID_AREA = 'LIQ' and tmp3.COD_FISCALE = PATRBF.COD_FISCALE AND
		TMP3.RETE = PATRBF.RETE) and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,

case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE 
	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_progetto as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_progetto as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1 and
	PATRBF.CTV <>0

--GROUP BY PATRBF.COD_FISCALE, PATRBF.RETE, AREA.ID_AREA, AREA.NOME_AREA, AREA.ORDINAMENTO, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO, PATRBF.CTV,
--	MONIT.MINUS_PLUSVALENZA, RISCHIO_AGGR_PROG.COPERTURA, RISCHIO_AGGR_PROG.VAR_PERC_PTF, RISCHIO_AGGR_AREA.VAR_PERC_PTF, RISCHIO_AGGR_AREA.COPERTURA,
--	PATRBF.DATA_SOTTOSCRIZIONE, PATRBF.ID_CONTRATTO, PATRBF.TIPO_PRODOTTO, ANAGPROD.DESCR_PRODOTTO, ANAG_CC.COD_CC, RISCHIO_PROD.VAR_PERC_PTF,
--	RISCHIO_PROD.COPERTURA, PATRBF.ISIN, PATRBF.REND_ANNO, PATRBF.REND_SOTTOSCRIZIONE, PATRBF.PARTVIA_DISINV, RISCHIO_PROD.CREDITRISK, RISCHIO_PROD.CREDITRISKEMIT

ORDER BY 
	AREASORTORDER,CHIAVE_progetto,nome_progetto, PATRBF.CTV DESC

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S162DettaglioProdotti
BEGIN
	
INSERT INTO WH.PL_D2_S162DettaglioProdotti
	SELECT 'C6MartPeriodico.PL_D2_S162DettaglioProdotti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	  

		PATRTERZI.DESCR_GRUPPO_PRODOTTO  AS TipoProdotto,
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.TOSHORTDATESTRING(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizioni, 
		ANAGPRODTERZI.NOME_PRODOTTO AS Descrizione,
		ROUND(PATRTERZI.CTV,2) AS Controvalore, 
		ROUND(PATRTERZI.VERSATO_NETTO,2) AS VersatoNetto, 
		ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2) AS MinusPlusValenza, 
		RISCHIOPROD.VAR_PERC_PTF AS VarPerc,
		CASE 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS VersatoNettoString,
		CASE 
			WHEN PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO IS NULL THEN 'n.d.' 
			WHEN ISNULL(PATRTERZI.VERSATO_NETTO, 0) = 0 THEN 'n.d.' 
			ELSE NULL 
		END AS MinusPlusValenzaString,
		CASE
			WHEN ISNULL(RISCHIOPROD.copertura,0.00) = 0.00 THEN 'n.c.' 
			ELSE NULL 
		END AS VarPercString,
		SUM(ROUND(PATRTERZI.CTV,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleCTV,
		SUM(ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleVersatoNetto,
		CASE 
			WHEN COUNT(CASE WHEN PATRTERZI.VERSATO_NETTO IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleVersatoNettoString,
		SUM(ROUND(PATRTERZI.CTV,2) - ROUND(PATRTERZI.VERSATO_NETTO,2)) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) AS TotaleMinus,
		CASE 
			WHEN COUNT(CASE WHEN (PATRTERZI.CTV - PATRTERZI.VERSATO_NETTO) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY PATRTERZI.DESCR_GRUPPO_PRODOTTO,PATRTERZI.COD_FISCALE,PATRTERZI.RETE) > 0 THEN 'n.d.' 
			ELSE NULL 
		END AS TotaleMinusString,
		RISCHIOAGGREG.VAR_PERC_PTF AS TotaleVar,
		CASE WHEN ISNULL(RISCHIOAGGREG.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END AS TotaleVarString,
		RISCHIOAGGREG.COPERTURA AS Copertura_Tot,
		NULL AS Aggiornamento, 
		CASE 
			WHEN RISCHIOAGGREG.COPERTURA > 0 AND RISCHIOAGGREG.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGREG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'
			ELSE '' -- CASI 0, 100, NULL
		END AS Copertura_Totale,
		PATRTERZI.RETE AS Rete, 
		PATRTERZI.COD_FISCALE AS Cod_Fiscale,
		'TABELLA PRODOTTI FINANZIARI ALTRI' AS Tipo,
		CASE WHEN (ISNULL(RISCHIOAGGREG.copertura,100) < 100) THEN '*' ELSE '' END AS Note,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' AND ISNULL(RISCHIOPROD.copertura,0.00) <> 0.00 THEN 1 ELSE 0	END AS ProdNonInCatalogo,
		CASE UPPER(PATRTERZI.DESCR_GRUPPO_PRODOTTO) 
			WHEN 'FONDI' THEN 0
			WHEN 'GESTIONI PATRIMONIALI' THEN 1
			WHEN 'PRODOTTI DI TIPO AMMINISTRATO (ESCLUSO C/C)' THEN 2
			WHEN 'ASSICURATIVI UNITI/INDEX LINKED' THEN 3
			WHEN 'PORTAFOGLIO GENERICO' THEN 4
			ELSE 10000
		END AS OrdinamentoProdotti,
 RISCHIOPROD.CREDITRISK as creditrisk, 
    CASE 
		WHEN ISNULL(RISCHIOpROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOPROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
	RISCHIOPROD.CREDITRISKEMIT as creditriskemit

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
	LEFT OUTER JOIN 
		--[10.10.32.85].C6StampeCentralizzate2.C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
        C6MartPeriodico.RISCHIO_AGGREGATO RISCHIOAGGREG
		ON 
			PATRTERZI.RETE = RISCHIOAGGREG.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGREG.COD_FISCALE
			AND RISCHIOAGGREG.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + PATRTERZI.DESCR_GRUPPO_PRODOTTO
	WHERE  1 = 1 
		AND PATRTERZI.DESCR_GRUPPO_PRODOTTO IS NOT NULL
	--GROUP BY PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.INTERMEDIARIO, PATRTERZI.DATA_SOTTOSCRIZIONE, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO,
	--		 RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA, RISCHIOAGGREG.VAR_PERC_PTF, RISCHIOAGGREG.COPERTURA, PATRTERZI.COD_PRODOTTO, RISCHIOPROD.CREDITRISK, RISCHIOPROD.CREDITRISKEMIT
	ORDER BY 
		OrdinamentoProdotti, 
		Controvalore DESC

END
-------------------------------------------------------------------------

-------------------------------------------pl_d2_s163patrimoniofinanziariomassetclass
BEGIN
INSERT INTO WH.pl_d2_s163patrimoniofinanziariomassetclass
SELECT DISTINCT 'C6MartPeriodico.pl_d2_s163patrimoniofinanziariomassetclass' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,
             ASSETCLASS.ORDINAMENTO AS Ordinamento,
             VALORIASSET.ID_ASSETCLASS AS AssetClassId, 
             ASSETCLASS.DESCRIZIONE AS AssetClassName, 
             cast(SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) as decimal(19,6)) AS Controvalore,
             (
                    SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY VALORIASSET.ID_ASSETCLASS, RETE,COD_FISCALE) /
                    case SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    when 0 then 1
                    else SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE)
                    end 
--                  SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE')
             ) * 100 AS Percentuale,
             cast (SUM(VALORIASSET.CONTROVALORE) OVER (PARTITION BY 'TOTALE', RETE,COD_FISCALE) as decimal(19,6)) AS PatrimonioFinanziarioCTV
       FROM (

             --PRODOTTI TERZI A CATALOGO
             SELECT       
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV * ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
						INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO <> 'PRODOTTO NON IN CATALOGO'


             UNION ALL

             --PRODOTTI TERZI NON A CATALOGO
             SELECT 
                    PATRTERZI.RETE as RETE,
                    PATRTERZI.COD_FISCALE as COD_FISCALE,
                    ISNULL(ASSETPERC.ID_ASSETCLASS,'AL') AS ID_ASSETCLASS,
                    PATRTERZI.CTV*ISNULL(ASSETPERC.PERC,1) AS Controvalore
             FROM 
                    C6MartPeriodico.PATRIMONIO_TERZI PATRTERZI
						INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
             LEFT OUTER JOIN 
                    C6MartPeriodico.ASSET_PERC_TERZI ASSETPERC 
                    ON 
                           PATRTERZI.COD_PRODOTTO_TERZI = ASSETPERC.COD_PRODOTTO_TERZI
                           AND ASSETPERC.LIVELLO = 1
             WHERE 1 = 1
                    AND PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO'

       ) VALORIASSET
       INNER JOIN C6MartPeriodico.ASSETCLASS ASSETCLASS
             ON 
                    ASSETCLASS.ID_ASSETCLASS = VALORIASSET.ID_ASSETCLASS
      -- GROUP BY COD_FISCALE, RETE, ASSETCLASS.ORDINAMENTO, ASSETCLASS.ID_ASSETCLASS, VALORIASSET.ID_ASSETCLASS, ASSETCLASS.DESCRIZIONE, VALORIASSET.CONTROVALORE

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S164PolizzeAltriIstituti
BEGIN
INSERT INTO WH.PL_D2_S164PolizzeAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S164PolizzeAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     

		PATRTERZI.INTERMEDIARIO AS Intermediario,
		dbo.toShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataDiSottoscrizione,
		dbo.toShortDateString(PATRTERZI.DATA_SCADENZA) AS DataDiScadenza,
		PATRTERZI.TIPO_POLIZZA AS TipologiaPolizza, 
		ANAGTERZI.NOME_PRODOTTO AS Descrizione,
		NULL AS Aggiornamento, 
		PATRTERZI.CTV AS PrestazioneAssicurata, 
		PATRTERZI.TIPO_PRODOTTO AS TipoVersamento, 
		PATRTERZI.VERSATO_NETTO  AS AmmontareVersamento 

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGTERZI.COD_PRODOTTO_TERZI 			
			AND ANAGTERZI.DESCR_PRODOTTO = 'Assets.FinancialAssets.PolizzeRivalutabili'

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S165FondiAltriIstituti
BEGIN
	INSERT INTO WH.PL_D2_S165FondiAltriIstituti
	SELECT  'C6MartPeriodico.PL_D2_S165FondiAltriIstituti' as ProcedureName, PATRTERZI.RETE as i_rete, PATRTERZI.COD_FISCALE as i_codiceFiscale,	     
	 
		PATRTERZI.INTERMEDIARIO AS Intermediario,
		ANAGPRODTERZI.NOME_PRODOTTO AS descrizione_prodotto,
		dbo.ToShortDateString(PATRTERZI.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione,
		PATRTERZI.FREQ_RATA as tipo_versamento,
		PATRTERZI.CTV as controvalore,
		PATRTERZI.VERSATO_NETTO as ammontare,
		SUM(PATRTERZI.CTV) OVER (PARTITION BY 'TOTALE') as somma_controval,
		RISCHIOPROD.VAR_PERC_PTF as Var_Prodotto,
		CASE WHEN RISCHIOPROD.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOPROD.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_ProdottoString,
		RISCHIOAGGR.VAR_PERC_PTF as Var_Totale,
		CASE WHEN RISCHIOAGGR.VAR_PERC_PTF IS NULL OR ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' ELSE NULL END as Var_TotaleString,
		--CASE WHEN (ISNULL(RISCHIOAGGR.COPERTURA,100) < 100) THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  ELSE '' END AS copertura_totale,	
		CASE 
			WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 
				THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIOAGGR.COPERTURA AS decimal (5,2)) AS varchar),'.',',') + '%'  
			ELSE '' -- CASI 0, 100, NULL
		END AS copertura_totale,	
		CASE WHEN RISCHIOAGGR.COPERTURA > 0 AND RISCHIOAGGR.COPERTURA < 100 THEN '*' ELSE '' END as Nota,
		CASE WHEN PATRTERZI.COD_PRODOTTO = 'PRODOTTO NON IN CATALOGO' THEN 1 ELSE 0	END AS ProdNonInCatalogo,
        RISCHIOAGGR.CREDITRISK as creditrisk,
    CASE 
		WHEN ISNULL(RISCHIOAGGR.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		WHEN RISCHIOAGGR.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring

	FROM 
		C6MartPeriodico.PATRIMONIO_TERZI AS PATRTERZI
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI_TERZI AS ANAGPRODTERZI
		ON 
			PATRTERZI.COD_PRODOTTO_TERZI = ANAGPRODTERZI.COD_PRODOTTO_TERZI
			--AND ANAGPRODTERZI.ALBERO_PRODOTTI = 'Ass.Prev'
			AND ANAGPRODTERZI.DESCR_PRODOTTO='Assets.FinancialAssets.ProdottiPrevidenziali'
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO) + '|' + PATRTERZI.cod_prodotto_terzi
	LEFT OUTER JOIN 
		C6MartPeriodico.RISCHIO_AGGREGATO AS RISCHIOAGGR
		ON 
			PATRTERZI.RETE = RISCHIOAGGR.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOAGGR.COD_FISCALE
			AND RISCHIOAGGR.COD_AGGREG = 'TIPOPRODTERZI|TERZI|' + ISNULL(DESCR_GRUPPO_PRODOTTO,PATRTERZI.TIPO_PRODOTTO)
	--	GROUP BY 
	--	PATRTERZI.COD_FISCALE, PATRTERZI.RETE, PATRTERZI.intermediario, ANAGPRODTERZI.NOME_PRODOTTO, PATRTERZI.DATA_SOTTOSCRIZIONE, PATRTERZI.FREQ_RATA,
	--	PATRTERZI.CTV, PATRTERZI.VERSATO_NETTO, RISCHIOPROD.VAR_PERC_PTF, RISCHIOPROD.COPERTURA,  RISCHIOAGGR.VAR_PERC_PTF, RISCHIOAGGR.COPERTURA, 
	--	PATRTERZI.COD_PRODOTTO, RISCHIOAGGR.CREDITRISK


END
-------------------------------------------------------------------------

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


INSERT INTO WH.PL_D2_S167DistribuzioneRischioCredito
	SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
 
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self') THEN 0 ELSE PATRBF.CTV END) AS ctv
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2

SELECT  
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
'Altri Istituti' AS INTERMEDIARIO,
--PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
--PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE






SELECT  'C6MartPeriodico.PL_D2_S167DistribuzioneRischioCredito' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale, 
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area in ('cc','self')  THEN 0 ELSE PATRBF.CTV END) AS CTV
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area in ('Cc','Self')
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('SELF')
					THEN 'COMPLESSIVO|BF|SELF|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.COD_FISCALE
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo

--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE



END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S168TabellaEmittenti
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
    
INSERT INTO WH.PL_D2_S168TabellaEmittenti
	SELECT  'C6MartPeriodico.PL_D2_S168TabellaEmittenti' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceFiscale,	  
		COD_FISCALE,
		RETE,
		RATING_AAA,
		RATING_AAp,
		RATING_AA,
		RATING_AAm,
		RATING_Ap,
		RATING_A,
		RATING_Am,
		RATING_BBBp,
		RATING_BBB,
		RATING_BBBm,
		RATING_BBp,
		RATING_BB,
		RATING_BBm,
		RATING_Bp,
		RATING_B,
		RATING_Bm,
		RATING_CCCp,
		RATING_CCC,
		RATING_CCCm,
		RATING_CC,
		RATING_C,
		RATING_D,
		RATING_na,
		FLG_RISKCLASS1,
		FLG_RISKCLASS2,
		FLG_RISKCLASS3,
		FLG_RISKCLASS4,
		FLG_RISKCLASS5,
		FLG_RISKCLASS6,
		FLG_RISKCLASS7,
		FLG_RISKCLASS8,
		FLG_RISKCLASS9,
		FLG_RISKCLASS10,
		INTERMEDIARIO,
		ISSUER,
		STOCKSCounterValue,
		bondsCounterValue,
		CONCENTRATION_ISSUER,
		CONCENTRATION,
		NC
--isnull(RATING,'n.a.') as RATING
FROM
(


-- PER INTERMEDIARIO 

    SELECT
			COD_FISCALE,
			RETE,
			MAX(RATING_AAA) AS RATING_AAA,
			MAX(RATING_AAp) AS RATING_AAp,
			MAX(RATING_AA) AS RATING_AA,
			MAX(RATING_AAm) AS RATING_AAm,
			MAX(RATING_Ap) AS RATING_Ap,
			MAX(RATING_A) AS RATING_A,
			MAX(RATING_Am) AS RATING_Am,
			MAX(RATING_BBBp) AS RATING_BBBp,
			MAX(RATING_BBB) AS RATING_BBB,
			MAX(RATING_BBBm) AS RATING_BBBm,
			MAX(RATING_BBp) AS RATING_BBp,
			MAX(RATING_BB) AS RATING_BB,
			MAX(RATING_BBm) AS RATING_BBm,
			MAX(RATING_Bp) AS RATING_Bp,
			MAX(RATING_B) AS RATING_B,
			MAX(RATING_Bm) AS RATING_Bm,
			MAX(RATING_CCCp) AS RATING_CCCp,
			MAX(RATING_CCC) AS RATING_CCC,
			MAX(RATING_CCCm) AS RATING_CCCm,
			MAX(RATING_CC) AS RATING_CC,
			MAX(RATING_C) AS RATING_C,
			MAX(RATING_D) AS RATING_D,
			MAX(RATING_na) AS RATING_na,
			MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
			MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
			MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
			MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
			MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
			MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
			MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
			MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
			MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
			MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
			--V nel caso sia null è BF???
			isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
			EMITTENTE AS ISSUER,
			SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
			sum(bondsCounterValue) AS bondsCounterValue,
			0 as  CONCENTRATION_ISSUER ,
			--V normalizzo la percentuale per essere rappresentato sul report
			MAX(CONCENTRATION)* 100 AS CONCENTRATION,
			sum(case when copertura > 0 then 0 else 1 end) as nc
			--RATING as RATING
				FROM
				(
					SELECT      V.COD_FISCALE,
								V.RETE,
								INTERMEDIARIO,
								CREDITRISKCLASS,
								EMITTENTE,
								CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
								CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
								CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
								CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
								CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
								CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
								CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
								CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
								CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
								CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
								CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
								CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
								CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
								CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
								CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
								CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
								CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
								CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
								CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
								CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
								CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
								CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
								CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
								CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
								CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
								CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
								CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
								CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
								CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
								CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
								CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
								CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
								CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
								SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
								SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
								sum(CTV_AZIONARIO) AS STOCKSCounterValue,
								sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
								0 AS  CONCENTRATION_ISSUER ,
								SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
								sum(copertura) as copertura
								--RATING as RATING
				 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				 	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =V.COD_FISCALE
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				 WHERE 
				 1=1				
				   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
				 V.COD_FISCALE,
				 V.RETE,
				 INTERMEDIARIO,
				 EMITTENTE,
				 CREDITRISKCLASS,
				  RATING
				) Y
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

--COMPLESSIVO

   SELECT
   COD_FISCALE,
			RETE,
        MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ 
	
	 (select sum(ctv_prodotto) from 
		c6martperiodico.patrimonio_emittenti 
		where cod_fiscale = L.COD_FISCALE and rete = L.RETE
		and  ctv_prodotto > 0)  
	 
	 *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
	sum(case when copertura > 0 then 0 else 1 end) as nc
--RATING as RATING
FROM
(
SELECT 
COD_FISCALE,
RETE,
'COMPLESSIVO' as INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10,
SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
SUM(STOCKSCounterValue) AS STOCKSCounterValue,
SUM(bondsCounterValue) AS bondsCounterValue,
0 AS CONCENTRATION_ISSUER,
SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
SUM(COPERTURA) AS COPERTURA 
--RATING as RATING
FROM
(
SELECT     V.COD_FISCALE,
                V.RETE,
                'COMPLESSIVO' as INTERMEDIARIO,
                CREDITRISKCLASS,
                EMITTENTE,
                 CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
				CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
				CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
				CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
				CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
				CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
				CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
				CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
				CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
				CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
				CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
                SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
                SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
                sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
                0 AS  CONCENTRATION_ISSUER ,
                SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
                SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
                MAX(copertura) as copertura
				--RATING as RATING
 FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V 
 	 	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =V.COD_FISCALE
LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
	   ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO 

 WHERE 
 1=1
   AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
GROUP BY
 V.COD_FISCALE,
 V.RETE,
 EMITTENTE,
 INTERMEDIARIO,
 CREDITRISKCLASS,
RATING
) Y
GROUP BY 
COD_FISCALE,
RETE,
INTERMEDIARIO,
CREDITRISKCLASS,
EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
FLG_RISKCLASS1,
FLG_RISKCLASS2,
FLG_RISKCLASS3,
FLG_RISKCLASS4,
FLG_RISKCLASS5,
FLG_RISKCLASS6,
FLG_RISKCLASS7,
FLG_RISKCLASS8,
FLG_RISKCLASS9,
FLG_RISKCLASS10
--RATING
) L
GROUP BY 
     COD_FISCALE,
     RETE,
     INTERMEDIARIO,
     EMITTENTE 
--RATING
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC

) U
ORDER BY CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 




END
-------------------------------------------------------------------------
	
-----------------------------------------------PL_S43DettaglioProdottiBF
BEGIN

SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTSELFLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF 
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRIMONIO_BF.COD_FISCALE
	WHERE  ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE


	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE
	INTO #TOTLIQ
	FROM C6MARTPERIODICO.PATRIMONIO_BF 
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRIMONIO_BF.COD_FISCALE
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.COD_FISCALE, PATRIMONIO_BF.RETE

INSERT INTO WH.PL_S43DettaglioProdottiBF    
	
	
--FINE INTERVENTI OMNIA QUIII

--------------------------------------------------------------------------------------

SELECT   'C6MartPeriodico.PL_S43DettaglioProdottiBF' as ProcedureName, PATRBF.RETE, PATRBF.COD_FISCALE ,

CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ltrim(rtrim(PATRBF.NOME_PROGETTO))
END AS nome_progetto,
PATRBF.CHIAVE_PROGETTO AS ORDINAMENTO_PROGETTO,
SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.MINUS_PLUSVALENZA) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.MINUS_PLUSVALENZA IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA, PATRBF.NOME_PROGETTO, PATRBF.CHIAVE_PROGETTO,PATRBF.RETE, PATRBF.COD_FISCALE) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------			
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) AS dataSottoscrizione, 
PATRBF.ID_CONTRATTO AS ContrattoDossier, 

--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,

--Bido to get Code_CC field
--NOT AT ALL ANAGPROD.DESCR_PRODOTTO + ' ' + (STUFF(substring(ANAG_CC.COD_CC  , 4 , len(ANAG_CC.COD_CC) - 3), 3 , 0, '/') ) AS Descrizione,
--End Bido

--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
PATRBF.CTV - MONIT.MINUS_PLUSVALENZA AS VersatoNetto, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as VersatoNettoString,
MONIT.MINUS_PLUSVALENZA AS MinusPlusValenza, 
CASE WHEN (PATRBF.CTV - MONIT.MINUS_PLUSVALENZA) IS NULL THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,
--V nuova gestione cc

case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in('EURO00000009', 'EURO10000007') THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto, 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
RISCHIO_PROD.CREDITRISK as creditrisk,
CASE
--INIZIO INTERVENTI OMNIA
--	WHEN ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	        and  patrbf.tipo_prodotto <> 'CC') 
	        or  (patrbf.isin in('EURO00000009', 'EURO10000007'))
	        THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
	WHEN RISCHIO_PROD.CREDITRISK IS NULL THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	--LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')


left JOIN #TOTSELFLIQ t1 on t1.rete = PATRBF.RETE and t1.COD_FISCALE = PATRBF.COD_FISCALE
left JOIN #TOTLIQ t2 on t2.rete = PATRBF.RETE and t2.COD_FISCALE = PATRBF.COD_FISCALE

LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
						 '|' + isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'') + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO
		+ '|' +  isnull(cast(patrbf.CHIAVE_PROGETTO as varchar),'')
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
	AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
	And patrbf.ordinamento_progetto=monit.ordinamento_progetto

--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
WHERE 1 = 1
	
 
    AND PATRBF.CTV <>0
ORDER BY 
	AREASORTORDER,CHIAVE_PROGETTO,nome_progetto, PATRBF.CTV DESC


	drop table #TOTSELFLIQ
drop table #TOTLIQ




END
-------------------------------------------------------------------------


-------------------------------------------PL_D2_S169RischiomercatoRischiocredito

BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_D2_S169RischiomercatoRischiocredito    
	SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,

    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG,
			 wh.MERGED_PROCEDURE_LIST l 
    where 
    1=1 and l.FiscalCode =  PATRBF.COD_FISCALE
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc,   
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG,
			 wh.MERGED_PROCEDURE_LIST l 
    where 
    1=1 and l.FiscalCode =  TERZI.COD_FISCALE
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT  'C6MartPeriodico.PL_D2_S169RischiomercatoRischiocredito' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
    where 
    1=1 
	and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =TERZI.COD_FISCALE
        where 
    1=1 
	and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	order by ordine

END
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S170RischioDiversificazione
BEGIN


INSERT INTO WH.PL_D2_S170RischioDiversificazione    
	SELECT  'C6MartPeriodico.PL_D2_S170RischioDiversificazione' as ProcedureName, K.RETE as i_rete, K.COD_FISCALE as i_codiceFiscale, 
K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	when cod_Aggreg = 'COMPLESSIVO' then (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_bf  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE 
				  and CTV > 0) + (SELECT isnull(sum(ctv),0) FROM  c6martperiodico.patrimonio_terzi  			
			where cod_fiscale = K.COD_FISCALE
				  and rete= K.RETE  
				  and CTV > 0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND (select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN ((select count(*)
	from c6martperiodico.patrimonio_Bf
	where cod_fiscale = K.COD_FISCALE and rete = K.RETE) - (select count(*)
	from c6martperiodico.patrimonio_Bf
	where tipo_prodotto = 'CC' and cod_fiscale = K.COD_FISCALE and rete = K.RETE) = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K 
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =K.COD_FISCALE
		left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine

END 
-------------------------------------------------------------------------

-------------------------------------------PL_D2_S171PatrimonioNonRappresentabileAssettClass
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 INSERT INTO WH.PL_D2_S171PatrimonioNonRappresentabileAssettClass    
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale, 
	  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC 
		ON PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
--INIZIO INTERVENTI OMNIA		
        AND PATRBF.CTV <> 0.00
--INIZIO INTERVENTI OMNIA		

	UNION ALL

  
	  SELECT 'C6MartPeriodico.PL_D2_S171PatrimonioNonRappresentabileAssettClass' as ProcedureName, PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceFiscale,  
		PATRBF.ID_CONTRATTO as Contratto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		SUM(ASUL.CTV) as Controvalore,
		MAX(PATRBF.CTV) as controvalore_contratto,
		SUM(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		CASE PATRBF.RETE WHEN 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' end as Intermediario
	FROM C6MARTPERIODICO.PATRIMONIO_BF PATRBF
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
	INNER JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAGP
		ON PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN C6MARTPERIODICO.DETTAGLIO_ASUL ASUL
		ON PATRBF.RETE = ASUL.RETE
		AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
		AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	LEFT OUTER JOIN C6MARTPERIODICO.ASSET_PERC ASSETPERC
		ON ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
		AND ASSETPERC.LIVELLO = 1 
	WHERE 1 = 1
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        GROUP BY 
        PATRBF.ID_CONTRATTO,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) ,
		ANAGP.DESCR_PRODOTTO,
		PATRBF.RETE,
		PATRBF.COD_FISCALE
	ORDER BY CONTROVALORE DESC
  
END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S137Bonus
BEGIN  
INSERT INTO WH.PL_MP_S137Bonus    
	  SELECT 'C6MartPeriodico.PL_MP_S137Bonus' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
			[RETE],
			bonus.[COD_FISCALE], 
			[DES_PROD] = CASE
				WHEN desrc.descrizione is null THEN ''								 
				ELSE desrc.descrizione  		                   	
            END, 
            bonus.[COD_CONF],           
            bonus.[CTV],
			bonus.[DT_TRIM],		
			'Bonus Maturato'  as [DESBONUS_M],
			bonus.[BONUS_M],
			bonus.[DTDEC_M],	
			'Bonus a scadenza 5 anni'	as [DESBONUS_5],
			bonus.[BONUS_5],
			bonus.[DTDEC_5],	
			'Bonus a scadenza 10 anni'	as [DESBONUS_10],
			bonus.[BONUS_10],
			bonus.[DTDEC_10],			
            bonus.[COD_PROD]			
	FROM [C6MartPeriodico].[BONUS] bonus
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =bonus.COD_FISCALE
	Left Join c6martperiodico.descrizione_bonus  desrc
	on desrc.cod_prod = bonus.cod_prod

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S135MonitoraggioInvestimento
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
INSERT INTO WH.PL_MP_S135MonitoraggioInvestimento    
	  SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
	
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE a
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.COD_FISCALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S135MonitoraggioInvestimento' as ProcedureName, [RETE] as i_rete, [COD_FISCALE] as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO  a
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.COD_FISCALE

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S134MonitoraggioLiquidita
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
-- DECLARE @RendimNonRappr BIT


INSERT INTO WH.PL_MP_S134MonitoraggioLiquidita    
	  SELECT 'C6MartPeriodico.PL_MP_S134MonitoraggioLiquidita' as ProcedureName, MONIT.RETE as i_rete, MONIT.COD_FISCALE as i_codiceF,
		case when RENDIMNONRAPPR=1 then 1 else 0 end AS cf_rendim_non_rappr,
		MONIT.id_Area AS Need_Area,
		CASE
			WHEN MONIT.NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(MONIT.NOME_PROGETTO))
		END AS Nome_Progetto,
		monit.ordinamento_progetto,
		dbo.TOSHORTDATESTRING(DATA_ATTIVAZIONE) AS DataAttivazioneMonitoraggio,
		CTV_MONITORATO AS ControvaloreMonitorato,
		APPORTO_INIZIALE AS ApportoIniziale,
		APPORTO_SUCCESSIVO AS ApportoSuccessivo,
		LIQUIDAZIONI,
		CEDOLE_DIVIDENDI AS CedoleEDividendi,
		MINUS_PLUSVALENZA AS MinusPlusAreaProgetto,
		RENDIMENTO_CUMULATO AS Rendimento_Attuale,
		RISORSE_ASSOCIATE AS RisorseApportate,
		dbo.TOSHORTDATESTRING(DATA_CTV) AS DataControvalore,
		RENDIMENTO_ANNUALIZZATO
	FROM
		C6MartPeriodico.MONITORAGGIO_ATTUALE MONIT
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =MONIT.COD_FISCALE

        LEFT OUTER JOIN
        (
            SELECT
			PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end as NOME_PROGETTO,
			patr_bf.ordinamento_progetto,
            1 as RENDIMNONRAPPR
		FROM
			C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
					INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATR_BF.COD_FISCALE
			LEFT OUTER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
				PATR_BF.ID_AREA = AREA.ID_AREA
		WHERE
			 PATR_BF.REND_NON_RAPPR = 1
          group by  
          	PATR_BF.ID_AREA,
            PATR_BF.COD_FISCALE,
            PATR_BF.RETE,
			CASE
			WHEN PATR_BF.NOME_PROGETTO = 'XXX' THEN ''
			ELSE NOME_PROGETTO end,
			patr_bf.ordinamento_progetto
         ) PATR_BF 
         ON PATR_BF.COD_FISCALE=MONIT.COD_FISCALE
            AND PATR_BF.RETE= MONIT.RETE
            AND left(PATR_BF.ID_AREA,3)=left(MONIT.ID_AREA,3)
            AND  isnull(PATR_BF.NOME_PROGETTO,'XXX')=isnull(MONIT.NOME_PROGETTO,'XXX')
			And monit.ordinamento_progetto=patr_bf.ordinamento_progetto
 

END
-------------------------------------------------------------------------

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

INSERT INTO WH.PL_MP_S134BISMonitoraggioLiqInv  
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA AS NEED_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_ATTIVAZIONE AS DATAVALORIZZAZIONE,
		APPORTO_INIZIALE AS CONTROVALORE,
		APPORTO_INIZIALE  AS RISORSEASSOCIATE
	
	FROM C6MartPeriodico.MONITORAGGIO_ATTUALE a
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.COD_FISCALE

	UNION
	
	SELECT 'C6MartPeriodico.PL_MP_S134BISMonitoraggioLiqInv' as ProcedureName, RETE as i_rete, COD_FISCALE as i_codiceF,
		ID_AREA,
		CASE
			WHEN NOME_PROGETTO = 'XXX' THEN ''
			ELSE LTRIM(RTRIM(NOME_PROGETTO))
		END AS NOME_PROGETTO,
		ordinamento_progetto,
		DATA_CTV,
		CTV_MONITORATO,
		ISNULL (RISORSE_ASSOCIATE, 0) -- ISNULL(CEDOLE_DIV, 0)
	FROM C6MartPeriodico.MONITORAGGIO_STORICO a
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.COD_FISCALE

	ORDER BY NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE

END
-------------------------------------------------------------------------

-------------------------------------------PL_MP_S133BISPrincipaliProdotti
BEGIN	
;with ata as
(
SELECT PATRBF.RETE as i_rete, PATRBF.COD_FISCALE as i_codiceF, 
             ANAGPROD.DESCR_PRODOTTO AS descrProdotto
             ,PATRBF.CTV AS Controvalore
             ,CASE 
                    WHEN patrbf.tipo_prodotto = 'CC' THEN 0.00 
                    ELSE RISCHIO_PROD.VAR_PERC_PTF
             END AS VaRprodotto
             ,((CASE 
                      WHEN ((PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100) is null then 0.00 
                      ELSE(PATRBF.CTV * RISCHIO_PROD.VAR_PERC_PTF)/100 
                END) /    (CASE
                                    WHEN  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE) = 0 THEN 1
                                    ELSE  sum((PATRBF.CTV * isnull(RISCHIO_PROD.VAR_PERC_PTF,0))/100) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)
                                 END))*100 as rischioRelativo    
             ,(PATRBF.CTV/(sum(PATRBF.CTV) over (partition by 'totale'+PATRBF.RETE+PATRBF.COD_FISCALE)))*100  AS pesoRelativo
             ,PATRBF.ID_AREA  AS codAreaBisogno
       FROM C6MartPeriodico.PATRIMONIO_BF PATRBF
	   		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.COD_FISCALE
       INNER JOIN C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
             ON ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
       INNER JOIN C6MartPeriodico.AREA_BISOGNO AREA 
             ON LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
       LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
             ON PATRBF.RETE= RISCHIO_PROD.RETE
             AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
             AND RISCHIO_PROD.COD_AGGREG = CASE 
                                                                    WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
                                                                         THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ 
                                                                          '|' + isnull(cast(patrbf.ordinamento_progetto as varchar),'') + '|'
                                                                   WHEN LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
                                                                   ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
                                                               END
                                                               + PATRBF.POSITION_ID 
       WHERE 
    PATRBF.CTV <>0
       AND PATRBF.ID_AREA <> 'Cc'
	   
       ), tot as
       (select *, row_number() over (partition by i_rete, i_codiceF ORDER BY rischioRelativo DESC, Controvalore DESC) as pos
         from ata
         )
		 INSERT INTO WH.PL_MP_S133BISPrincipaliProdotti  
		SELECT 'C6MartPeriodico.PL_MP_S133BISPrincipaliProdotti' as ProcedureName, i_rete, i_codiceF, descrProdotto, Controvalore, VaRprodotto, 
																	rischioRelativo, pesoRelativo, codAreaBisogno from tot where pos <=10

END
-------------------------------------------------------------------------






----[C6MartPeriodico].[PL_MP_S133AreeBisognoPrincProd]
BEGIN

INSERT INTO wh.[PL_MP_S133AreeBisognoPrincProd]
SELECT 'PL_MP_S133AreeBisognoPrincProd', [Rete]
		,[CodiceFiscale]
		,[NeedArea]
      ,[AreaName]
      ,[PercentualeModello]
      ,[PercentualeAttuale]
      ,[ControvaloreAttuale]
      ,[ControvaloreModello]
      ,[Totale_Percentuale]
      ,[DifferenzaEuro]
      ,[DifferenzaPercentuale]
      ,[var_needarea]
      ,[var_needareaString]
      ,[copertura_needarea]
      ,[copertura_needareaString]
      ,[Nota]
      ,[somma_controvalAttuale]
      ,[somma_controvalModello]
      ,[somma_percentualeAttuale]
      ,[somma_percentualeModello]
      ,[var_tot]
      ,[var_totString]
      ,[var_tot_pir]
      ,[var_tot_pirString]
      ,[copertura_tot]
      ,[copertura_totString]
      ,[copertura_tot_pir]
      ,[copertura_tot_pirString]
      ,[VAR_RISFIN]
      ,[VAR_RISFINSTRING]
      ,[copertura_risfin]
      ,[copertura_risfinString]
      ,[ordinamento]
  FROM [C6MartPeriodico].[TB_S133_S157DatiPiramide] a
 	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.[CodiceFiscale]
  order by ordinamento
		 

END

-------------------------------------------------------------------------

------ [C6MartPeriodico].[PL_MP_S146RischioDiversificazione]

begin
	select count(*) as contaCC, cod_fiscale, rete
	into #contaCC
	from c6martperiodico.patrimonio_Bf a
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete


	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOS
	from c6martperiodico.patrimonio_Bf a
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
	group by cod_fiscale, rete


INSERT INTO wh.PL_MP_S146RischioDiversificazione
SELECT 'PL_MP_S146RischioDiversificazione',K.RETE, K.COD_FISCALE,
K.COD_FISCALE,
K.RETE,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND contaPOS - contacc <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND contaPOS - contacc <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K

	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =K.cod_fiscale
	 left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
left join #contaCC cc on K.COD_FISCALE = cc.COD_FISCALE and K.RETE = cc.rete
left join #contaPOS pos on K.COD_FISCALE = pos.COD_FISCALE and K.RETE = pos.rete
WHERE
--A.PROFILO_ASS=B.PROFILO
--AND K.RETE=A.RETE
--AND K.COD_FISCALE= A.COD_FISCALE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY Ordine





END 

-------------------------------------------------------------------------


---------[C6MartPeriodico].[PL_MP_S141AnalisiRisparmioTable]

begin 
select sum(ctv_prodotto) as patr_compl, rete, cod_fiscale 
into #patr_compl
from c6martperiodico.patrimonio_emittenti a
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
where ctv_prodotto > 0
group by  rete, cod_fiscale 

INSERT INTO wh.PL_MP_S141AnalisiRisparmioTable
SELECT  'PL_MP_S141AnalisiRisparmioTable',RETE, COD_FISCALE,
	
	COD_FISCALE,
	RETE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	INTERMEDIARIO,
	ISSUER,
	STOCKSCounterValue,
	bondsCounterValue,
	CONCENTRATION_ISSUER,
	CONCENTRATION,
	NC 
FROM  (


-- PER INTERMEDIARIO 

    SELECT
		COD_FISCALE,
		RETE,
		MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
		MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
		MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
		MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
		MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
		MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
		MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
		MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
		MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
		MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
		MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
		--V nel caso sia null è BF???
		isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
		EMITTENTE AS ISSUER,
		--RATING AS RATING, 
		SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
		sum(bondsCounterValue) AS bondsCounterValue,
		0 as  CONCENTRATION_ISSUER ,
		--V normalizzo la percentuale per essere rappresentato sul report
		MAX(CONCENTRATION)* 100 AS CONCENTRATION,
--EN 26012016: solo se per un emittente nessun prodotto riporta nessuna copertura
--             viene impostato nc=1 (non classificato) e si assume che nessuna riskclass
--             sia valorizzato.
--		sum(case when copertura > 0 then 0 else 1 end) as nc
		min(case when copertura > 0 then 0 else 1 end) as nc
	FROM
				(SELECT --Y.*   
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					CREDITRISKCLASS,
					EMITTENTE,
					--RATING AS RATING,                  
					CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
					CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
					CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
					CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
					CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
					CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
					CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
					CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
					CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
					CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
					CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
					CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
					CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
					CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
					CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
					CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
					CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
					CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
					CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
					CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
					CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
					CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
					CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na,                
					CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
					CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
					CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
					CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
					CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
					CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
					CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
					CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
					CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
					CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
					SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
					SUM(CTV_PRODOTTO) AS CTV_PRODOTTO,
					sum(CTV_AZIONARIO) AS STOCKSCounterValue,
					sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
					0 AS  CONCENTRATION_ISSUER ,
					SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPL_NOCC_NEG)  AS CONCENTRATION,
					sum(copertura) as copertura
				FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
				INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =v.cod_fiscale
					LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
					ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
				WHERE 1=1
					
					AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
				GROUP BY
					V.COD_FISCALE,
					V.RETE,
					INTERMEDIARIO,
					EMITTENTE,
					RATING,
					CREDITRISKCLASS 
				 ) Y
	GROUP BY 
		 COD_FISCALE,
		 RETE,
		 INTERMEDIARIO,
		 EMITTENTE
--V devo rappresentare solo le 3 principali me le ordine e nel codice scorro per le prime 3 dopo aver filtrato per intermediario
--ORDER BY CONCENTRATION DESC


UNION 

------COMPLESSIVO

   SELECT
     l.COD_FISCALE,
     l.RETE,
     MAX(RATING_AAA) AS RATING_AAA,
		MAX(RATING_AAp) AS RATING_AAp,
		MAX(RATING_AA) AS RATING_AA,
		MAX(RATING_AAm) AS RATING_AAm,
		MAX(RATING_Ap) AS RATING_Ap,
		MAX(RATING_A) AS RATING_A,
		MAX(RATING_Am) AS RATING_Am,
		MAX(RATING_BBBp) AS RATING_BBBp,
		MAX(RATING_BBB) AS RATING_BBB,
		MAX(RATING_BBBm) AS RATING_BBBm,
		MAX(RATING_BBp) AS RATING_BBp,
		MAX(RATING_BB) AS RATING_BB,
		MAX(RATING_BBm) AS RATING_BBm,
		MAX(RATING_Bp) AS RATING_Bp,
		MAX(RATING_B) AS RATING_B,
		MAX(RATING_Bm) AS RATING_Bm,
		MAX(RATING_CCCp) AS RATING_CCCp,
		MAX(RATING_CCC) AS RATING_CCC,
		MAX(RATING_CCCm) AS RATING_CCCm,
		MAX(RATING_CC) AS RATING_CC,
		MAX(RATING_C) AS RATING_C,
		MAX(RATING_D) AS RATING_D,
		MAX(RATING_na) AS RATING_na,
     MAX(FLG_RISKCLASS1) AS FLG_RISKCLASS1,
     MAX(FLG_RISKCLASS2) AS FLG_RISKCLASS2,
     MAX(FLG_RISKCLASS3) AS FLG_RISKCLASS3,
     MAX(FLG_RISKCLASS4) AS FLG_RISKCLASS4,
	 MAX(FLG_RISKCLASS5) AS FLG_RISKCLASS5,
	 MAX(FLG_RISKCLASS6) AS FLG_RISKCLASS6,
	 MAX(FLG_RISKCLASS7) AS FLG_RISKCLASS7,
	 MAX(FLG_RISKCLASS8) AS FLG_RISKCLASS8,
	 MAX(FLG_RISKCLASS9) AS FLG_RISKCLASS9,
	 MAX(FLG_RISKCLASS10) AS FLG_RISKCLASS10,
	 isnull(INTERMEDIARIO,'BF') AS INTERMEDIARIO,
     EMITTENTE AS ISSUER,
     
     SUM(STOCKSCounterValue) AS  STOCKSCounterValue,
     SUM(bondsCounterValue) AS bondsCounterValue,
     SUM(isnull(bondsCounterValue,0)+ isnull(STOCKSCounterValue,0))/ max(p.patr_compl)  *100  CONCENTRATION_ISSUER ,
     0 AS CONCENTRATION,
--EN 26012016
--	sum(case when copertura > 0 then 0 else 1 end) as nc
	min(case when copertura > 0 then 0 else 1 end) as nc
FROM
(
SELECT  --L.*
	y.COD_FISCALE,
	y.RETE,
	'COMPLESSIVO' as INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
	RATING_AAp,
	RATING_AA,
	RATING_AAm,
	RATING_Ap,
	RATING_A,
	RATING_Am,
	RATING_BBBp,
	RATING_BBB,
	RATING_BBBm,
	RATING_BBp,
	RATING_BB,
	RATING_BBm,
	RATING_Bp,
	RATING_B,
	RATING_Bm,
	RATING_CCCp,
	RATING_CCC,
	RATING_CCCm,
	RATING_CC,
	RATING_C,
	RATING_D,
	RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10,
	SUM(CTV_AZ_OB_EMIT) CTV_AZ_OB_EMIT,
	SUM(STOCKSCounterValue) AS STOCKSCounterValue,
	SUM(bondsCounterValue) AS bondsCounterValue,
	0 AS CONCENTRATION_ISSUER,
	SUM(CTV_AZ_OB_EMIT_INTER)/SUM(CTV_COMPLessivo) TOT ,
	SUM(COPERTURA) AS COPERTURA
FROM
(
		SELECT --V.*     
			V.COD_FISCALE,
			V.RETE,
			'COMPLESSIVO' as INTERMEDIARIO,
			CREDITRISKCLASS,
			EMITTENTE,            
			CASE WHEN RATING = 'AAA' THEN 1 ELSE 0 END AS RATING_AAA,
			CASE WHEN RATING = 'AA+' THEN 1 ELSE 0 END AS RATING_AAp,
			CASE WHEN RATING = 'AA' THEN 1 ELSE 0 END AS RATING_AA,
			CASE WHEN RATING = 'AA-' THEN 1 ELSE 0 END AS RATING_AAm,
			CASE WHEN RATING = 'A+' THEN 1 ELSE 0 END AS RATING_Ap,
			CASE WHEN RATING = 'A' THEN 1 ELSE 0 END AS RATING_A,
			CASE WHEN RATING = 'A-' THEN 1 ELSE 0 END AS RATING_Am,
			CASE WHEN RATING = 'BBB+' THEN 1 ELSE 0 END AS RATING_BBBp,
			CASE WHEN RATING = 'BBB' THEN 1 ELSE 0 END AS RATING_BBB,
			CASE WHEN RATING = 'BBB-' THEN 1 ELSE 0 END AS RATING_BBBm,
			CASE WHEN RATING = 'BB+' THEN 1 ELSE 0 END AS RATING_BBp,
			CASE WHEN RATING = 'BB' THEN 1 ELSE 0 END AS RATING_BB,
			CASE WHEN RATING = 'BB-' THEN 1 ELSE 0 END AS RATING_BBm,
			CASE WHEN RATING = 'B+' THEN 1 ELSE 0 END AS RATING_Bp,
			CASE WHEN RATING = 'B' THEN 1 ELSE 0 END AS RATING_B,
			CASE WHEN RATING = 'B-' THEN 1 ELSE 0 END AS RATING_Bm,
			CASE WHEN RATING = 'CCC+' THEN 1 ELSE 0 END AS RATING_CCCp,
			CASE WHEN RATING = 'CCC' THEN 1 ELSE 0 END AS RATING_CCC,
			CASE WHEN RATING = 'CCC-' THEN 1 ELSE 0 END AS RATING_CCCm,
			CASE WHEN RATING = 'CC' THEN 1 ELSE 0 END AS RATING_CC,
			CASE WHEN RATING = 'C' THEN 1 ELSE 0 END AS RATING_C,
			CASE WHEN RATING = 'D' THEN 1 ELSE 0 END AS RATING_D,
			CASE WHEN RATING is null THEN 1 ELSE 0 END AS RATING_na, 
			CASE WHEN CREDITRISKCLASS ='Rischio 1/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS1,
			CASE WHEN CREDITRISKCLASS ='Rischio 2/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS2,
			CASE WHEN CREDITRISKCLASS ='Rischio 3/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS3,
			CASE WHEN CREDITRISKCLASS ='Rischio 4/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS4,
			CASE WHEN CREDITRISKCLASS ='Rischio 5/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS5,
			CASE WHEN CREDITRISKCLASS ='Rischio 6/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS6,
			CASE WHEN CREDITRISKCLASS ='Rischio 7/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS7,
			CASE WHEN CREDITRISKCLASS ='Rischio 8/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS8,
			CASE WHEN CREDITRISKCLASS ='Rischio 9/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS9,
			CASE WHEN CREDITRISKCLASS ='Rischio 10/10' THEN 1 ELSE 0 END AS FLG_RISKCLASS10,
			SUM(CTV_AZ_OB_EMIT) as CTV_AZ_OB_EMIT,
			SUM(CTV_AZIONARIO) AS STOCKSCounterValue,
			sum(CTV_OBBLIGAZIONARIO) AS bondsCounterValue,
			0 AS  CONCENTRATION_ISSUER ,
			SUM(CTV_AZ_OB_EMIT_INTER) CTV_AZ_OB_EMIT_INTER,
			SUM(CTV_COMPLessivo)  AS CTV_COMPLessivo,
			MAX(copertura) as copertura
		FROM  C6MARTPERIODICO.PATRIMONIO_EMITTENTI V  
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =v.cod_fiscale
				LEFT JOIN C6MARTPERIODICO.ANAG_PRODOTTI ANAG
				ON V.COD_PRODOTTO = ANAG.COD_PRODOTTO
		WHERE 
			1=1
			
			AND (CTV_AZIONARIO >0 OR CTV_OBBLIGAZIONARIO > 0)
		GROUP BY
			V.COD_FISCALE,
			V.RETE,
			EMITTENTE,
			RATING,
			INTERMEDIARIO,
			CREDITRISKCLASS
		) Y
GROUP BY 
	y.COD_FISCALE,
	y.RETE,
	INTERMEDIARIO,
	CREDITRISKCLASS,
	EMITTENTE,
	RATING_AAA,
RATING_AAp,
RATING_AA,
RATING_AAm,
RATING_Ap,
RATING_A,
RATING_Am,
RATING_BBBp,
RATING_BBB,
RATING_BBBm,
RATING_BBp,
RATING_BB,
RATING_BBm,
RATING_Bp,
RATING_B,
RATING_Bm,
RATING_CCCp,
RATING_CCC,
RATING_CCCm,
RATING_CC,
RATING_C,
RATING_D,
RATING_na,
	FLG_RISKCLASS1,
	FLG_RISKCLASS2,
	FLG_RISKCLASS3,
	FLG_RISKCLASS4,
	FLG_RISKCLASS5,
	FLG_RISKCLASS6,
	FLG_RISKCLASS7,
	FLG_RISKCLASS8,
	FLG_RISKCLASS9,
	FLG_RISKCLASS10
) L
 inner join #patr_compl p on p.rete = l.rete and  p.cod_fiscale = l.cod_fiscale
GROUP BY 
   l. COD_FISCALE,
     l.RETE,
     INTERMEDIARIO,
     EMITTENTE

) U



 ORDER BY U.CONCENTRATION DESC
END
 
-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_MP_S140AnalisiRisparmioCharts]

BEGIN
	



--QUERY PER INTERMEDIARIO

INSERT INTO wh.PL_MP_S140AnalisiRisparmioCharts

SELECT 'PL_MP_S140AnalisiRisparmioCharts', RETE, COD_FISCALE, *FROM
(
SELECT
RETE,
COD_FISCALE,
INTERMEDIARIO,
CASE WHEN INTERMEDIARIO  IN ( 'Fideuram', 'Sanpaolo Invest') THEN 1
     ELSE 2 END AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,

CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100  END as PERC_NA
FROM
(
 -- Start 1.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END AS RISKCLASS,
CASE WHEN PATRBF.RETE = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END AS INTERMEDIARIO,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc' THEN 0 ELSE PATRBF.CTV END) AS ctv
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'   THEN 0 
	     WHEN ctvself.self_ctv <0 and patrbf.id_area='self' THEN 0
	ELSE PATRBF.CTV END) AS ctv
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.cod_fiscale
---Per calcolare la somma algebrica dei cc 
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF 
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine calcolo somma cc
--INIZIO INTERVENTI OMNIA
---Per calcolare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF  a
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine calcolo somma self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'') + '|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
--INNER JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
LEFT outer JOIN C6MartPeriodico.CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END,
CASE WHEN PATRBF.RETE = 'F' THEN 'FIDEURAM' ELSE 'SANPAOLO' END

--- End 1.1
UNION ALL
-- Start 1.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
PATRTERZI.INTERMEDIARIO,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.cod_fiscale
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6Martperiodico].pATRIMONIO_terzi a
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' +ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo
--V

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
PATRTERZI.INTERMEDIARIO,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END

-- End 1.2
)H
GROUP BY
RETE,
COD_FISCALE,
INTERMEDIARIO
--------
UNION ALL
-----------
--QUERY TOTALE
SELECT
RETE,
COD_FISCALE,

'Complessivo' AS INTERMEDIARIO,
3 AS ORDINE,
SUM(CTV)  AS CTV_TOT,
SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)  AS CTV_notCovered,
SUM(CASE WHEN RISKCLASS = 'Classe A' 
				or RISKCLASS = 'Classe B'
					or RISKCLASS = 'Classe C' 
						or RISKCLASS = 'Classe D' 
	THEN CTV ELSE 0 END)  AS CTV_CreditRisk,
SUM(CASE WHEN RISKCLASS ='NA' THEN CTV ELSE 0 END)  AS CTV_na,
--CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NON COPERTO' THEN CTV ELSE 0 END)/SUM(CTV))*100  END AS PERC_notCovered,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'Classe A' 
												or RISKCLASS = 'Classe B'
													or RISKCLASS = 'Classe C' 
														or RISKCLASS = 'Classe D' THEN CTV ELSE 0 END)
									/SUM(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END) 
)*100 END AS PERC_CreditRisk,
CASE WHEN SUM(CTV)=0 THEN 0 ELSE (SUM(CASE WHEN RISKCLASS = 'NA' THEN CTV ELSE 0 END) /sum(CASE WHEN RISKCLASS <> 'NON COPERTO' THEN CTV ELSE 1 END))*100 END as PERC_NA
FROM
(
--- Start 2.1
SELECT 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
--SUM(CASE WHEN PATRBF.ID_AREA = 'Cc' AND PATRBF.CTV < 0 THEN 0 ELSE PATRBF.CTV END) AS CTV
--INIZIO INTERVENTI OMNIA
--SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 ELSE PATRBF.CTV END) AS CTV
SUM(CASE WHEN ctvcc.cc_ctv <0 and patrbf.id_area='cc'  THEN 0 
		 WHEN ctvself.self_ctv <0 and patrbf.id_area='self'  THEN 0
	ELSE PATRBF.CTV END) AS CTV
--FINE INTERVENTI OMNIA
FROM
[C6Martperiodico].PATRIMONIO_BF PATRBF
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.cod_fiscale
--per fare la somma algebrica dei cc
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF a
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
where id_Area='Cc'
group by cod_fiscale, rete
) ctvcc
on 
patrbf.cod_fiscale=ctvcc.cod_fiscale
and
patrbf.rete=ctvcc.rete
--fine somma cc
--INIZIO INTERVENTI OMNIA
--per fare la somma algebrica dei self negativi
LEFT OUTER JOIN
(select cod_fiscale, rete, sum(ctv) as self_ctv
from
[C6MARTPERIODICO].pATRIMONIO_BF a
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
where id_Area='Self'
group by cod_fiscale, rete
) ctvself
on 
patrbf.cod_fiscale=ctvself.cod_fiscale
and
patrbf.rete=ctvself.rete
--fine somma Self negativi
--FINE INTERVENTI OMNIA
LEFT OUTER JOIN
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
			CASE 
				WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO+ '|' + isnull(cast(PATRBF.ordinamento_progetto as varchar),'')+'|'
				--V
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('EXT','INV','PRE','RIS','LIQ')
					THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('CC')
					THEN 'COMPLESSIVO|BF|CC|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				WHEN (PATRBF.NOME_PROGETTO IS NULL) AND PATRBF.ID_AREA IN ('NA')
					THEN 'RISFIN|' + LEFT(PATRBF.ID_AREA,3) + '|'  
				--
			END	+ PATRBF.POSITION_ID 
left outer JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIO_PROD.CREDITRISK = cr.profilo
--V
--
GROUP BY 
PATRBF.RETE,
PATRBF.COD_FISCALE,
CASE	
	WHEN RISCHIO_PROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
-- End 2.1
UNION ALL
-- Start 2.2
SELECT 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END  AS RISKCLASS,
SUM(ROUND(CTV,2)) AS CTV
FROM 
[C6Martperiodico].PATRIMONIO_TERZI PATRTERZI
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRTERZI.cod_fiscale
left outer join
(select cod_fiscale, rete, sum(ctv) as cc_ctv
from 
[C6Martperiodico].pATRIMONIO_terzi a
INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
where tipo_prodotto='Conti correnti'
group by cod_fiscale, rete
) ctvcc
on
patrterzi.cod_fiscale=ctvcc.cod_fiscale
and
patrterzi.rete=ctvcc.rete
LEFT OUTER JOIN 
[C6Martperiodico].RISCHIO_AGGREGATO RISCHIOPROD
		ON 
			PATRTERZI.RETE = RISCHIOPROD.RETE
			AND PATRTERZI.COD_FISCALE = RISCHIOPROD.COD_FISCALE
			AND RISCHIOPROD.COD_AGGREG ='TIPOPRODTERZI|TERZI|' + ISNULL(PATRTERZI.DESCR_GRUPPO_PRODOTTO, PATRTERZI.TIPO_PRODOTTO)  + '|'+ PATRTERZI.COD_PRODOTTO_TERZI
left outer  JOIN [C6Martperiodico].CODIFICA_CREDITRISK CR
ON RISCHIOPROD.CREDITRISK = cr.profilo


--

GROUP BY 
PATRTERZI.RETE,
PATRTERZI.COD_FISCALE,
CASE	
	WHEN RISCHIOPROD.COPERTURA < 100 
		THEN 'NON COPERTO'
	WHEN DESCRIZIONE IS NULL
		THEN 'NA'
	ELSE DESCRIZIONE	
END
--- End 2.2
)H
GROUP BY
RETE,
COD_FISCALE
)X


END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_MP_S137BISCapitaleProtetto]
   begin
   

   INSERT INTO wh.PL_MP_S137BISCapitaleProtetto
     SELECT 'PL_MP_S137BISCapitaleProtetto', RETE
	,CODFIS
	,DES_PROD
	,COD_CONF
	,QUOTA
	,NUMEROQUOTE
	,CONTROVALORE
	,DATARIF
	,DES_MAX
	,QUOTA_MAX
	,QUOTA_MAX_PERC
	,DATARIF_MAX
	,DES_PROT
	,QUOTA_PROT
	,NUMEROQUOTE_PROT
	,CONTROVALORE_PROT 
	,DES_PROD_TIT -- Aggiunta per E-FOI80
	FROM C6MartPeriodico.CAPPROT a
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.codfis
	
	WHERE 1=1
	 

END
 
-------------------------------------------------------------------------



------------ [C6MartPeriodico].[PL_S43ContoCorrenteBF] 
BEGIN
	
	INSERT INTO wh.PL_S43ContoCorrenteBF

	SELECT 'PL_S43ContoCorrenteBF', ANAG_CC.rete, ANAG_CC.cod_fiscale,    
		dbo.ToShortDateString(ANAG_CC.DATA_APERTURA) AS datadiSottoscrizione, 
		ANAG_CC.COD_CC AS conto, 
		cast(ANAG_CC.SALDOCONTABILE as decimal(15,2)) as Controvalore,
		cast(ANAG_CC.SALDODISPONIBILE as decimal(15,2)) as SALDO_DISPONIBILE,
        null as creditrisk ,
        'n.a.' as creditriskstring,
		0 as var,
		null as varString,
		0 as totaleVar,
		null as totaleVarString
	FROM       
		C6MartPeriodico.ANAG_CC	
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =ANAG_CC.cod_fiscale
	WHERE 
	 ANAG_CC.SALDOCONTABILE < 0
	ORDER BY
		ANAG_CC.SALDOCONTABILE DESC

END

-------------------------------------------------------------------------

------[C6MartPeriodico].[PL_S43BISDettaglioProdottiBF]

BEGIN 
	SELECT COUNT(*) as TOTSELFLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 
	into #TOTSELFLIQ1
	FROM C6MARTPERIODICO.PATRIMONIO_BF
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRIMONIO_BF.cod_fiscale
	WHERE ISIN in('EURO00000009', 'EURO10000007')
		AND ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE 

	

	SELECT COUNT(*) as TOTLIQ, PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	into #PATRIMONIO_BF
	FROM C6MARTPERIODICO.PATRIMONIO_BF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRIMONIO_BF.cod_fiscale
	WHERE ID_AREA = 'LIQ'
	GROUP BY PATRIMONIO_BF.RETE, PATRIMONIO_BF.COD_FISCALE
	
	INSERT INTO wh.[PL_S43BISDettaglioProdottiBF]
SELECT 'PL_S43BISDettaglioProdottiBF',	PATRBF.RETE, PATRBF.COD_FISCALE,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Pre' 
	ELSE AREA.ID_AREA 
END AS needarea,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN 'Previdenza'
	WHEN AREA.ID_AREA = 'Na'  THEN 'Non allocate'
	ELSE AREA.NOME_AREA 
END AS needareades,
CASE 
	WHEN AREA.ID_AREA = 'Pre1' OR AREA.ID_AREA = 'Pre2' THEN  3 
	ELSE AREA.ORDINAMENTO 
END AS areasortorder,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND PATRBF.NOME_PROGETTO IS NULL THEN 'Prodotti non associati a progetti'
	ELSE ISNULL(PATRBF.NOME_PROGETTO,'')
END AS nome_progetto,
PATRBF.ORDINAMENTO_PROGETTO,
--Bido
SUM(PATRBF.CTV ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS somma_controval_needarea,
SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS versato_needarea,
CASE 
	WHEN COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END as versato_needareaString,
SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) AS MinusPlusValenza_needarea,
CASE 
	WHEN COUNT( CASE 
					WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 
					ELSE NULL 
				END ) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE) > 0 THEN 'n.d.' 
	ELSE NULL 
END AS MinusPlusValenza_needareaString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL	
END	AS somma_controval_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS versato_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN (PATRBF.CTV - MONIT.UTILE_PERDITA_DA_ASSOC) IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0 
		THEN 'n.d.'
	ELSE NULL
END	AS versato_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN SUM(MONIT.UTILE_PERDITA_DA_ASSOC) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) 
	ELSE NULL
END	AS MinusPlusValenza_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' AND COUNT(CASE WHEN MONIT.UTILE_PERDITA_DA_ASSOC IS NULL THEN 1 ELSE NULL END) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE, PATRBF.NOME_PROGETTO, PATRBF.ordinamento_progetto) > 0	
		THEN 'n.d.'
	ELSE NULL
END	AS MinusPlusValenza_need_progString,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.VAR_PERC_PTF
	ELSE NULL
END	AS somma_var_need_prog,
CASE 
	WHEN AREA.ID_AREA = 'Inv' THEN RISCHIO_AGGR_PROG.COPERTURA
	ELSE NULL
END	AS somma_copertura_need_prog,
RISCHIO_AGGR_AREA.VAR_PERC_PTF AS var_needarea,
CASE 
	WHEN ISNULL(SUM(RISCHIO_AGGR_AREA.COPERTURA) OVER (PARTITION BY AREA.ID_AREA,	PATRBF.RETE, PATRBF.COD_FISCALE),0.00) = 0.00 
		THEN 'n.c.' 
--------------------------------------------------------------
--INIZIO INTERVENTI OMNIA QUIII				
	WHEN TOTSELFLIQ = TOTLIQ and AREA.ID_AREA = 'LIQ' 
		THEN 'n.c.' 
--FINE INTERVENTI OMNIA QUIII
--------------------------------------------------------------	
	ELSE NULL 
END AS var_needareaString,
CAST(ISNULL(RISCHIO_AGGR_AREA.COPERTURA,100) AS DECIMAL (5,2)) AS copertura_needarea,
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) 
		--V THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_AREA.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_needareaString,
RISCHIO_AGGR_PROG.VAR_PERC_PTF AS var_need_prog,
CASE 
	WHEN ISNULL(RISCHIO_AGGR_PROG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
	ELSE NULL 
END AS var_need_progString,
RISCHIO_AGGR_PROG.COPERTURA AS copertura_need_prog,
--TRINGALI
	CASE 
	WHEN (ISNULL(RISCHIO_AGGR_PROG.copertura,100) < 100) 
		--v THEN '(*) Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(RISCHIO_AGGR_PROG.COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
	ELSE '' 
END AS copertura_need_progString,


	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			 and patrbf.id_area='liq'
			 and (patrbf.tipo_prodotto='CC' 
			 or   patrbf.isin in('EURO00000009', 'EURO10000007')))
	then	dbo.TOSHORTDATESTRING(C6MartPeriodico.getTrimestre2(getdate(),0))
--FINE INTERVENTI OMNIA
	else
--disasteriscare
		--dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
--cancellare inizio
	case when (dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) is null 
			and patrbf.chiave_progetto = '2205396'
			and patrbf.tipo_prodotto = 'FI')
		then	'26/06/2014'
			else
				dbo.TOSHORTDATESTRING(MONIT.DATA_ASSOCIAZIONE) 
		end
--cancellare fine
	end AS dataAssociazione, -- CAMBIATA TRINGALI--marianna, cambiata per i cc senza data di associazione

PATRBF.ID_CONTRATTO AS ContrattoDossier, 
--V
CASE WHEN PATRBF.TIPO_PRODOTTO <> 'CC' THEN ANAGPROD.DESCR_PRODOTTO
	 ELSE ANAGPROD.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
END AS Descrizione,


--ANAGPROD.DESCR_PRODOTTO AS Descrizione,
PATRBF.CTV AS Controvalore, 
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE isnull(MONIT.VERSATO_NETTO_DA_ASSOC,0) end  AS VersatoNetto, 
CASE WHEN (MONIT.VERSATO_NETTO_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1) THEN 'n.d.' ELSE NULL END as VersatoNettoString,
CASE WHEN PATRBF.REND_NON_RAPPR=1 THEN NULL ELSE  isnull(MONIT.UTILE_PERDITA_DA_ASSOC,0) END AS MinusPlusValenza, 
CASE WHEN (MONIT.UTILE_PERDITA_DA_ASSOC IS NULL OR PATRBF.REND_NON_RAPPR=1)  THEN 'n.d.' ELSE NULL END as MinusPlusValenzaString,


case when (patrbf.tipo_prodotto ='CC') then 0.00 
else RISCHIO_PROD.VAR_PERC_PTF
end AS VaRprodotto, 

--INIZIO INTERVENTI OMNIA
--CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00  and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' ELSE NULL END as varProdottoString,
CASE WHEN ISNULL(RISCHIO_PROD.Copertura,0.00) = 0.00 and patrbf.tipo_prodotto <>'CC' THEN 'n.c.' 
     WHEN patrbf.isin in ('EURO00000009', 'EURO10000007' )THEN 'n.c.'
ELSE NULL END as varProdottoString,
--FINE INTERVENTI OMNIA

--INIZIO INTERVENTI OMNIA
--case when (patrbf.tipo_prodotto ='CC') then 100.00
case when (patrbf.tipo_prodotto ='CC') or (patrbf.isin in('EURO00000009', 'EURO10000007')) then 100.00
--FINE INTERVENTI OMNIA
else RISCHIO_PROD.Copertura 
end AS Coperturaprodotto,
 
PATRBF.REND_ANNO AS PerformanceYTD, 
PATRBF.REND_SOTTOSCRIZIONE AS performanceDS,
PARTVIA_DISINV AS partitaViaggiante,
CASE WHEN (ISNULL(RISCHIO_AGGR_AREA.copertura,100) < 100) THEN '*' ELSE '' END AS nota_needarea,
    RISCHIO_PROD.CREDITRISK as creditrisk,
    CASE 
--INIZIO INTERVENTI OMNIA
--		WHEN ISNULL(RISCHIO_PROD.COPERTURA,0.00) = 0.00 and patrbf.tipo_prodotto <> 'CC' THEN 'n.c.' 
    	WHEN (ISNULL(RISCHIO_prod.COPERTURA,0.00) = 0.00 
	             and patrbf.tipo_prodotto <> 'CC') 
	             or  (patrbf.isin in('EURO00000009', 'EURO10000007')) 
	    THEN 'n.c.' 
--FINE INTERVENTI OMNIA	
		WHEN RISCHIO_PROD.CREDITRISK is null THEN 'n.a.'
		ELSE NULL 
	END as creditriskstring,
--	CASE 
--	WHEN RISCHIO_PROD.CREDITRISKEMIT IS NULL THEN 'n.a.'
--		ELSE cast(RISCHIO_PROD.CREDITRISKEMIT as varchar(20))
--	END as creditriskemit
	RISCHIO_PROD.CREDITRISKEMIT as creditriskemit
FROM 
C6MartPeriodico.PATRIMONIO_BF PATRBF
	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.cod_fiscale
INNER JOIN 
C6MartPeriodico.ANAG_PRODOTTI ANAGPROD 
ON 
	ANAGPROD.COD_PRODOTTO = PATRBF.COD_PRODOTTO
INNER JOIN 
C6MartPeriodico.AREA_BISOGNO AREA 
ON 
	-- LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA 
	(LEFT(PATRBF.ID_AREA,3) = AREA.ID_AREA and AREA.ID_AREA <>'self') or (PATRBF.ID_AREA='self' and  AREA.ID_AREA ='self')
LEFT JOIN 
C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_PROD 
ON 
	PATRBF.RETE= RISCHIO_PROD.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_PROD.COD_FISCALE
	AND RISCHIO_PROD.COD_AGGREG = 
				CASE 
					WHEN (PATRBF.NOME_PROGETTO IS NOT NULL)
						THEN 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) + '|'
					when LEFT(PATRBF.ID_AREA,3)='Na' then 'RISFIN|NA|'
					ELSE 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' 
				END
--		END + PATRBF.POSITION_ID 
		+ PATRBF.POSITION_ID 
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_PROG
	ON PATRBF.RETE= RISCHIO_AGGR_PROG.RETE
	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_PROG.COD_FISCALE
	AND RISCHIO_AGGR_PROG.COD_AGGREG = 'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) + '|' + PATRBF.NOME_PROGETTO + '|'
						 + cast (PatrBF.ordinamento_progetto as varchar) 

LEFT JOIN #PATRIMONIO_BF bf on bf.rete = PATRBF.rete and bf.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN #TOTSELFLIQ1 tot on  tot.rete = PATRBF.rete and tot.cod_fiscale = PATRBF.cod_fiscale
LEFT JOIN C6MartPeriodico.RISCHIO_AGGREGATO RISCHIO_AGGR_AREA
	ON PATRBF.RETE= RISCHIO_AGGR_AREA.RETE


	AND PATRBF.COD_FISCALE= RISCHIO_AGGR_AREA.COD_FISCALE
	AND RISCHIO_AGGR_AREA.COD_AGGREG =   case 
		when LEFT(PATRBF.ID_AREA,3) = 'Na' then 'RISFIN|NA'
         else  'RISFIN|PIRAMIDE|' + LEFT(PATRBF.ID_AREA,3) 
		end
--	AND RISCHIO_AGGR_AREA.COD_AGGREG = 
--		CASE AREA.ID_AREA 
--			WHEN 'Na' THEN 'RISORSENONASSOCIATE' 
--			ELSE 'COMPLESSIVO|BF|' + LEFT(PATRBF.ID_AREA,3) 
--		END
LEFT JOIN
--MODIFICA TRINGALI PER PRENDERE DETTAGLIO MONITORAGGIO
C6MartPeriodico.MONITORAGGIO_DETTAGLIO MONIT
ON
	PATRBF.RETE = MONIT.RETE
	AND PATRBF.COD_FISCALE = MONIT.COD_FISCALE
	--AND LEFT(PATRBF.ID_AREA, 3) = MONIT.ID_AREA
    and PATRBF.POSITION_ID=MONIT.POSITION_ID
	--AND CASE WHEN PATRBF.NOME_PROGETTO IS NULL THEN 'XXX' ELSE PATRBF.NOME_PROGETTO END = MONIT.NOME_PROGETTO
--Bido to get Code_CC field
LEFT OUTER JOIN C6MartPeriodico.ANAG_CC
ON 
	ANAG_CC.COD_FISCALE = PATRBF.COD_FISCALE
	AND ANAG_CC.RETE = PATRBF.RETE
	AND cast(ANAG_CC.cod_cc as integer ) = substring(PATRBF.position_id,72,9)
LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE MONATT
ON 
	PATRBF.RETE = MONATT.RETE
	AND PATRBF.COD_FISCALE = MONATT.COD_FISCALE
	AND 
		(PATRBF.ID_AREA=(CASE WHEN MONATT.ID_AREA='Exr' THEN 'Ext' ELSE MONATT.ID_AREA END) AND PATRBF.ID_AREA <> 'INV'
		OR
		PATRBF.ID_AREA = 'INV' AND PATRBF.ID_AREA = MONATT.ID_AREA AND PATRBF.ORDINAMENTO_PROGETTO = MONATT.ORDINAMENTO_PROGETTO
		)
--blocchiamo il monitoraggio per i progetti a ctv=0
	--And ctv_monitorato>0
WHERE 1 = 1

 
 AND ( PATRBF.CTV <> 0 
 
 --E-DEFAULT4 per gestire l'esposizione dei prodotti con ctv = 0 delle banche in default - 18/1/2016
 or (PATRBF.tipo_prodotto = 'DT' and 
 PATRBF.cod_interno in ('08558830','08594680','04880930','04867780','03972990',
 '04281500','04539780','04657780','04966850','04119400','04931400',
 '04556320',
 '04119600','04291890','04064530'
)))
 
 --fine E-DEFAULT4
   
ORDER BY 
	AREASORTORDER, PATRBF.NOME_PROGETTO, PATRBF.CTV DESC  -- modifica TRINGALI


drop table #PATRIMONIO_BF


END

-------------------------------------------------------------------------
------ [C6MartPeriodico].[PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]
BEGIN
	
	INSERT INTO wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento
	SELECT 'PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento', PATR_BF.RETE,
		PATR_BF.COD_FISCALE,
		PATR_BF.ID_AREA AS Need_Area,
		PATR_BF.ID_CONTRATTO AS Contratto,
		CASE
			WHEN PATR_BF.ID_AREA IN ('Ris', 'Ext', 'Liq') THEN AREA.NOME_AREA
			ELSE ltrim(rtrim(PATR_BF.NOME_PROGETTO))
		END AS Area_O_Nome_Progetto,
		--PRODOTTI.DESCR_PRODOTTO AS Descrizione,
		CASE WHEN PATR_BF.TIPO_PRODOTTO <> 'CC' THEN PRODOTTI.DESCR_PRODOTTO
			 ELSE PRODOTTI.DESCR_PRODOTTO+' '+SUBSTRING(COD_CC,4,2) + '/' + SUBSTRING(COD_CC,6,LEN(ANAG_CC.COD_CC))
		END AS Descrizione,

		PATR_BF.PARTVIA_DISINV AS PartitaViaggiante,
		SUM(PATR_BF.CTV) OVER (PARTITION BY  PATR_BF.RETE,
		PATR_BF.COD_FISCALE,PATR_BF.POSITION_ID) AS Controvalore,
		dbo.ToShortDateString(PATR_BF.DATA_SOTTOSCRIZIONE) AS DataSottoscrizione
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS PATR_BF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATR_BF.cod_fiscale
		INNER JOIN C6MartPeriodico.AREA_BISOGNO AS AREA ON
			PATR_BF.ID_AREA = AREA.ID_AREA
		INNER JOIN C6MartPeriodico.ANAG_PRODOTTI AS PRODOTTI ON
			PATR_BF.COD_PRODOTTO = PRODOTTI.COD_PRODOTTO

		--V La sezione deve uscire soltanto per aree monitorate
		INNER JOIN C6MartPeriodico.MONITORAGGIO_ATTUALE M ON
			PATR_BF.RETE = M.RETE AND PATR_BF.COD_FISCALE = M.COD_FISCALE
			AND(
				(PATR_BF.ID_AREA = M.ID_AREA  AND PATR_BF.ID_AREA <> 'INV')
				OR
				(PATR_BF.ID_AREA = 'INV' AND PATR_BF.ID_AREA = M.ID_AREA AND PATR_BF.ORDINAMENTO_PROGETTO = M.ORDINAMENTO_PROGETTO)
			)

		LEFT OUTER JOIN C6MartPeriodico.ANAG_CC	ON 
			ANAG_CC.COD_FISCALE = PATR_BF.COD_FISCALE
			AND ANAG_CC.RETE = PATR_BF.RETE
			AND cast(ANAG_CC.cod_cc as integer ) = substring(PATR_BF.position_id,72,9)
	WHERE
		PATR_BF.REND_NON_RAPPR = 1
	ORDER BY
		Area_O_Nome_Progetto

END

-------------------------------------------------------------------------




----- [C6MartPeriodico].[PL_S82BisDatiSintetici]
	
BEGIN
	
	INSERT INTO wh.PL_S82BisDatiSintetici
	SELECT DISTINCT 'PL_S82BisDatiSintetici',
	 BF.RETE,
		BF.COD_FISCALE,
		BF.ORDINAMENTO_PROGETTO,
		'Inv' AS need_area,
		ltrim(rtrim(ISNULL(PIRMOD.NOME_PROGETTO,BF.NOME_PROGETTO))) AS NOME_PROGETTO,
		ISNULL(RA.VAR_PERC_PTF,0) AS var_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS var_needareaString,

		ISNULL(RA.COPERTURA,0) AS copertura_needarea,
		CASE 
			WHEN RA.COPERTURA IS NULL THEN 'n.c.' 
			WHEN RA.COPERTURA = 0 THEN 'n.c.' 
			ELSE NULL 
		END AS copertura_needareaString,
		PIRMOD.ORIZZ_TEMP AS orizzonte_Pianificato,
		C6MartPeriodico.getDescFromDate(DATEDIFF(m,C6MartPeriodico.getTrimestre(GETDATE(),0),(DATEADD(yy,PIRMOD.ORIZZ_TEMP_NUM,PIRMOD.DATA_PIANIF)) )) AS durataResidua,
		SUM(BF.CTV) OVER (PARTITION BY BF.RETE, BF.COD_FISCALE, BF.NOME_PROGETTO, bf.ordinamento_progetto) AS ControvaloreAttuale
		
	FROM
		C6MartPeriodico.PATRIMONIO_BF AS BF
				INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =BF.cod_fiscale
		LEFT OUTER JOIN C6MartPeriodico.RISCHIO_AGGREGATO AS RA
			ON BF.RETE = RA.RETE
			AND BF.COD_FISCALE = RA.COD_FISCALE
			--V AND RA.COD_AGGREG = 'PIRAMIDE|Inv'
			AND RA.COD_AGGREG = 'RISFIN|PIRAMIDE|Inv|'+ BF.NOME_PROGETTO + '|' + cast(bf.ordinamento_progetto as varchar)
			--
		INNER JOIN C6MartPeriodico.PIRAMIDE_MOD AS PIRMOD
			ON BF.RETE = PIRMOD.RETE
			AND BF.COD_FISCALE = PIRMOD.COD_FISCALE
			--AND BF.NOME_PROGETTO = PIRMOD.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = PIRMOD.ORDINAMENTO_PROGETTO
			AND PIRMOD.ID_AREA = 'Inv'
		INNER JOIN C6MartPeriodico.vPatrimonioBFAggregato AS BFAggr
			ON BF.RETE = BFAggr.RETE
			AND BF.COD_FISCALE = BFAggr.COD_FISCALE
		LEFT OUTER JOIN C6MARTPERIODICO.MONITORAGGIO_ATTUALE AS MONIT
			ON BF.RETE = MONIT.RETE
			AND BF.COD_FISCALE = MONIT.COD_FISCALE
			AND BF.ID_AREA = MONIT.ID_AREA
			AND BF.NOME_PROGETTO = MONIT.NOME_PROGETTO
			AND BF.ORDINAMENTO_PROGETTO = MONIT.ORDINAMENTO_PROGETTO
	WHERE 1=1
		AND BF.ID_AREA = 'Inv'
		
		END
		--AND BF.ORDINAMENTO_PROGETTO=1521667

-------------------------------------------------------------------------

----- [C6MartPeriodico].[PL_S76AlternativaPatrimonioNonRappresentabileAssettClass] 
begin

INSERT INTO wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass
SELECT 'PL_S76AlternativaPatrimonioNonRappresentabileAssettClass', * FROM
(
	SELECT  
		PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		PATRBF.CTV as Controvalore,
		PATRBF.CTV as controvalore_contratto,
		PATRBF.PARTVIA_DISINV as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM 
		C6MartPeriodico.PATRIMONIO_BF PATRBF
				INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.cod_fiscale
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	LEFT OUTER JOIN 
		C6MartPeriodico.ASSET_PERC ASSETPERC 
		ON 
			PATRBF.COD_PRODOTTO = ASSETPERC.COD_PRODOTTO
			AND ASSETPERC.LIVELLO = 1
	WHERE 1 = 1
	
		AND PATRBF.TIPO_PRODOTTO <> 'ASUL'
		AND ASSETPERC.COD_PRODOTTO IS NULL
        AND PATRBF.CTV <> 0.00
UNION ALL

SELECT  PATRBF.RETE,
		PATRBF.COD_FISCALE,
		PATRBF.ID_CONTRATTO as Contratto,
		CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END as Area,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end as NEEDAREA,
		PATRBF.NOME_PROGETTO as Progetto,
		patrbf.chiave_progetto as ord_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE) as DataSottoscrizione,
		ANAGP.DESCR_PRODOTTO AS Descrizione,
		sum(ASUL.CTV) as Controvalore,
		sum(ASUL.CTV) as controvalore_contratto,
		Max(PATRBF.PARTVIA_DISINV) as PartitaViaggiante,
		case when PATRBF.RETE = 'F' then 'Fideuram'	else 'Sanpaolo Invest' end as Intermediario
		--patrbf.ordinamento_progetto
	FROM
		C6MartPeriodico.PATRIMONIO_BF PATRBF
						INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.cod_fiscale
	INNER JOIN
		C6MartPeriodico.AREA_BISOGNO AREA
		ON
			PATRBF.ID_AREA = AREA.ID_AREA
	INNER JOIN 
		C6MartPeriodico.ANAG_PRODOTTI ANAGP
		ON 
			PATRBF.COD_PRODOTTO = ANAGP.COD_PRODOTTO
	INNER JOIN 
		C6MartPeriodico.DETTAGLIO_ASUL ASUL
		ON 
			PATRBF.RETE = ASUL.RETE
			AND PATRBF.COD_FISCALE = ASUL.COD_FISCALE
			AND PATRBF.ID_CONTRATTO = ASUL.ID_CONTRATTO
	left JOIN 
			C6MartPeriodico.ASSET_PERC ASSETPERC
			ON 
             (
				ASSETPERC.COD_PRODOTTO = ASUL.COD_PRODOTTO
				---no SKANDIA
				AND ASUL.COD_ISIN_SOTT = ''
				AND ASSETPERC.LIVELLO = 1
              )
           or
			 (  --SKANDIA
			ASSETPERC.COD_ISIN = ASUL.COD_ISIN_SOTT
			AND ASSETPERC.COD_MAF = ASUL.COD_MAF_SOTT
			AND ASSETPERC.COD_INTERNO = ASUL.COD_INTERNO
            AND rtrim(ASSETPERC.COD_SOTTOPRODOTTO) = ASUL.COD_SOTTOPRODOTTO
			AND ASSETPERC.LIVELLO = 1
			 )
		WHERE
		ASSETPERC.COD_PRODOTTO IS NULL
		AND PATRBF.TIPO_PRODOTTO = 'ASUL'
		

  GROUP BY 
      PATRBF.RETE,
		PATRBF.COD_FISCALE, PATRBF.ID_CONTRATTO,
     CASE WHEN AREA.NOME_AREA LIKE 'Previdenza%' THEN 'Previdenza' ELSE AREA.NOME_AREA END,
		CASE
		WHEN area.ID_AREA IN ('Pre1', 'Pre2') THEN 'Pre'
		 ELSE area.ID_AREA end,
        PATRBF.NOME_PROGETTO,
		patrbf.chiave_progetto,
		dbo.TOSHORTDATESTRING(PATRBF.DATA_SOTTOSCRIZIONE),
		ANAGP.DESCR_PRODOTTO 
		)XX

END

-------------------------------------------------------------------------


------------------------------- [C6MartPeriodico].[PL_D_S170RischioDiversificazione]
BEGIN

	select count(*) as contaCC, cod_fiscale, rete
	into #contaCCC
	from c6martperiodico.patrimonio_Bf a
					INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
	where tipo_prodotto = 'CC' 
	group by cod_fiscale, rete

	select count(*) as contaPOS, cod_fiscale, rete
	into #contaPOSS
	from c6martperiodico.patrimonio_Bf a
						INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
	group by cod_fiscale, rete
    SELECT isnull(sum(ctv),0) as ctvbf, cod_fiscale, rete
	INTO #ctvbf
	FROM  c6martperiodico.patrimonio_bf  	 a
						INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale		
	where CTV > 0
	group by cod_fiscale, rete
				      
	SELECT isnull(sum(ctv),0) as ctvterzi, cod_fiscale, rete 
	INTO #ctvterzi
	FROM  c6martperiodico.patrimonio_terzi  		a
						INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale	
	where CTV > 0
	group by cod_fiscale, rete 


	INSERT INTO wh.PL_D_S170RischioDiversificazione
SELECT 'PL_D_S170RischioDiversificazione',K.RETE,K.COD_FISCALE,

K.COD_FISCALE,
K.RETE,
CASE 
	when cod_Aggreg = 'COMPLESSIVO|BF' then COALESCE(ctvbf,0)
	when cod_Aggreg = 'COMPLESSIVO|TERZI' then COALESCE(ctvterzi,0)
	when cod_Aggreg = 'COMPLESSIVO' then COALESCE(ctvbf,0) + COALESCE(ctvterzi,0)
	else 0
END AS CTV_AGGREG,	
K.CREDITRISK,

CASE 
	WHEN (COALESCE(contaPOS,0) - COALESCE(contacc,0) = 0) THEN 0
	ELSE VAR_PERC_PTF 
END AS VAR,
CASE WHEN ISNULL(COPERTURA,0.00) = 0.00 AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0 THEN 'n.c.' ELSE NULL END as varString,
	
CASE 
	WHEN (ISNULL(copertura,100) < 100) AND COALESCE(contaPOS,0) - COALESCE(contacc,0) <> 0
		--THEN 'Grado di copertura: ' + REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') + '%'  
		THEN REPLACE(CAST(CAST(COPERTURA AS DECIMAL (5,2)) AS VARCHAR),'.',',') --+ '%'  
	ELSE null 
END AS coperturaString,
beneficio as diversificazione,

CASE 
	WHEN (contaPOS - contacc = 0) THEN 100
	ELSE COPERTURA
END AS COPERTURA,
case 
when cod_Aggreg = 'COMPLESSIVO' then 'Patrimonio Complessivo'
when cod_Aggreg = 'COMPLESSIVO|BF' then 'Patrimonio ' + (case when k.rete ='F' then 'Fideuram' else 'Sanpaolo Invest' end)
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 'Patrimonio altri Istituti'
ELSE ''
END AS PATRIMONIO,

case 
	when b.profilo is null then -1 
	else b.profilo
end as profiloCode,
b.max_var as var_profilo,
--V l'ordine serve per la corretta visualizzazione del report: Patrimonio casa, patrimonio terzi, patrimonio complessivo
--V Monitoraggio prende soltanto la prima riga, diagnosi anche nel caso non ci siano i terzi.
case 
when cod_Aggreg = 'COMPLESSIVO' then 3
when cod_Aggreg = 'COMPLESSIVO|BF' then 1
when cod_Aggreg = 'COMPLESSIVO|TERZI' then 2
ELSE ''
END AS Ordine

 
FROM
C6MARTperiodico.RISCHIO_AGGREGATO K 
					INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =k.cod_fiscale
					left outer JOIN c6martperiodico.mifid a
	ON k.cod_fiscale = a.cod_fiscale and
		k.rete = a.rete
	left outer join
C6Martperiodico.CODIFICA_RISCHIO b on
A.PROFILO_ASS=B.PROFILO
full outer join #contaCCC cc on k.COD_FISCALE = cc.cod_fiscale and k.Rete = cc.rete
full outer join #contaPOSS pos on k.COD_FISCALE = pos.cod_fiscale and k.Rete = pos.rete
full outer join #ctvbf bf on k.COD_FISCALE = bf.cod_fiscale and k.Rete = bf.rete
full outer join #ctvterzi terzi on k.COD_FISCALE = terzi.cod_fiscale and k.Rete = terzi.rete
WHERE
COD_AGGREG IN ('COMPLESSIVO|BF', 'COMPLESSIVO', 'COMPLESSIVO|TERZI')
ORDER BY ordine


END 

-------------------------------------------------------------------------

----------------------------------[C6MartPeriodico].[PL_S96RischiomercatoRischiocredito]
	
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
 truncate table wh.PL_S96RischiomercatoRischiocredito

 INSERT INTO wh.PL_S96RischiomercatoRischiocredito
    SELECT 'PL_S96RischiomercatoRischiocredito',  RETE, COD_FISCALE, * 
	FROM (
	SELECT
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    PATRBF.INSTITUTENAME,
    CTV,
    M.PROFILO_ASS AS CODICEPROFILO,
    CR.MAX_VAR AS  VARMAX,
    RISK_AGG.VAR_PERC_PTF AS VAR ,
    	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END  AS VARSTRING,
    RISK_AGG.CREDITRISK  RISKCLASS,
        	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END AS  RISKCLASSSTRING,
    ISNULL(RISK_AGG.COPERTURA,0.00) AS COVERAGE,
--V La copertura viene valorizzata con un valore da 0 da 100
  --  	CASE 
	--	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
--		ELSE 
NULL 
--	END 
AS COVERAGESTRING,
    M.RISKCLASS AS RISKCLASSMAX,
    round((SUM(CTV) OVER (PARTITION BY PATRBF.COD_FISCALE,PATRBF.RETE, PATRBF.INSTITUTENAME) / 
    -- 16.07.2011 COLAIANNI CONSOLI GESTIONE DIVISIONE PER ZERO
    CASE WHEN ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) ) = 0
		 THEN 1
	     ELSE ( SUM(CTV) OVER (PARTITION BY PATRBF.RETE, PATRBF.COD_FISCALE) )
    END)		
    *100 ,2)AS PERCENTAGE,
	--V
	ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END AS INSTITUTENAME,
    SUM(PATRBF.CTV) AS CTV,
	--V
	1 as ORDINE,
	RISK_AGG.Ully_perc
    from
    c6martperiodico.patrimonio_bf  PATRBF,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG,
			 wh.MERGED_PROCEDURE_LIST l 
    where 
    1=1 and l.fiscalcode = PATRBF.COD_FISCALE
    and PATRBF.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and PATRBF.rete= RISK_AGG.rete    
    and PATRBF.CTV > 0
    and
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' --or
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
   GROUP BY 
   PATRBF.RETE,
   PATRBF.COD_FISCALE,
	RISK_AGG.Ully_perc
  --  CASE WHEN PATRBF.RETE='F' THEN 'Patrimonio Fideuram' ELSE 'Patrimonio Sanpaolo Invest' END

	
    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    'Patrimonio altri Istituti' AS INSTITUTENAME,
    SUM(ROUND(TERZI.CTV,2)) AS CTV,
	--V
	2 as ORDINE,
	RISK_AGG.Ully_perc
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI,C6MartPeriodico.RISCHIO_AGGREGATO RISK_AGG,
			 wh.MERGED_PROCEDURE_LIST l 
    where 
    1=1 and l.fiscalcode = TERZI.COD_FISCALE
    and TERZI.COD_FISCALE = RISK_AGG.COD_FISCALE 
    and TERZI.rete= RISK_AGG.rete 
    and TERZI.CTV > 0
    and
    (
      --RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )    
    GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    RISK_AGG.Ully_perc

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
    M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
    AND 
    (case when  RISK_AGG.COD_AGGREG = 'COMPLESSIVO|BF' and PATRBF.RETE= 'F'  then 'Patrimonio Fideuram' 
          WHEN  RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' and PATRBF.RETE= 'S'  then 'Patrimonio Sanpaolo Invest'
          else 'Patrimonio altri Istituti' end)= PATRBF.INSTITUTENAME
   where
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|BF' or
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO|TERZI'
    )
    UNION ALL
    
    SELECT 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    'Patrimonio Complessivo' AS INSTITUTENAME,
    SUM(CTV),
    MAX(M.PROFILO_ASS) AS CODICEPROFILO,
    MAX(CR.MAX_VAR) AS  VARMAX,
    MAX(RISK_AGG.VAR_PERC_PTF) AS VAR ,
    MAX(	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS VARSTRING,
    MAX(RISK_AGG.CREDITRISK)  RISKCLASS,
    MAX(
         	case	WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
        WHEN RISK_AGG.creditrisk is null THEN 'n.a.' 
        WHEN RISK_AGG.creditrisk = 0.00 THEN 'n.a.' 
		ELSE NULL 
	END )
      AS  RISKCLASSSTRING,
    MAX(ISNULL(RISK_AGG.COPERTURA,0.00)) AS COVERAGE,
    MAX(   	CASE 
		WHEN ISNULL(RISK_AGG.COPERTURA,0.00) = 0.00 THEN 'n.c.' 
		ELSE NULL 
	END) AS COVERAGESTRING,
    --MAX(CK.DESCRIZIONE) AS RISKCLASSMAX,
	MAX(M.RISKCLASS) AS RISKCLASSMAX,
    100 AS PERCENTAGE,
	--V
	3 AS ORDINE,
	RISK_AGG.Ully_perc
    FROM
    (
    select 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    SUM(PATRBF.CTV) AS CTV
    from
    c6martperiodico.patrimonio_bf  PATRBF
		INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =PATRBF.cod_fiscale
    where 
    1=1 
    and PATRBF.CTV > 0    
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE

    UNION

    SELECT 
    TERZI.RETE,
    TERZI.COD_FISCALE,
    SUM(ROUND(TERZI.CTV,2)) AS CTV
    FROM
    c6martperiodico.PATRIMONIO_TERZI  TERZI
			INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =TERZI.cod_fiscale
        where 
    1=1 
    and TERZI.CTV > 0       
     GROUP BY 
    TERZI.RETE,
    TERZI.COD_FISCALE

    ) PATRBF
    LEFT OUTER JOIN 
    c6martperiodico.MIFID AS M
    ON 
    PATRBF.COD_FISCALE=M.COD_FISCALE
    AND PATRBF.RETE=M.RETE
	LEFT OUTER JOIN c6martperiodico.CODIFICA_RISCHIO AS CR
	ON M.PROFILO_ASS = CR.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.CODIFICA_CREDITRISK  CK
    ON 
      M.riskclass=CK.PROFILO
    LEFT OUTER JOIN 
    c6martperiodico.RISCHIO_AGGREGATO  RISK_AGG
    ON 
    PATRBF.COD_FISCALE=RISK_AGG.COD_FISCALE
    AND PATRBF.RETE=RISK_AGG.RETE
        where  
    (
      RISK_AGG.COD_AGGREG= 'COMPLESSIVO'
    )
    GROUP BY 
    PATRBF.RETE,
    PATRBF.COD_FISCALE,
    RISK_AGG.Ully_perc

	--V
	
	)X
	order by ordine
	END

-------------------------------------------------------------------------

-------------------- [C6MartPeriodico].[PL_S80Alternativa]
	
BEGIN


   SELECT COUNT(*) as MONIT_ATTIV, RETE, COD_FISCALE
       into #aa2
    FROM C6MARTPERIODICO.MONITORAGGIO_ATTUALE a
				INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
       GROUP BY RETE, COD_FISCALE
   
    
       SELECT COUNT(*) as MONIT_INIT, RETE, COD_FISCALE
       into #ab2
       FROM C6MARTPERIODICO.MONITORAGGIO_INIZIALE a
	   	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =a.cod_fiscale
       GROUP BY  RETE, COD_FISCALE
       
       select  a.RETE, a.COD_FISCALE
       into #pos2
       from #aa2 a inner join #ab2 b on a.rete = b.rete and a.COD_FISCALE = b.COD_FISCALE

       INSERT INTO wh.PL_S80Alternativa
       SELECT 'PL_S80Alternativa' as ProcedureName, v.RETE as i_rete, v.Cod_Fiscale as i_codiceFiscale, v.[RETE]
      ,v.[Cod_Fiscale] 
      ,[Fase]
      ,[DataFase]
      ,[Partita_viaggiante]
      ,[CTV_EXT]
      ,[CTV_INV]
      ,[CTV_PRE]
      ,[CTV_RIS]
      ,[CTV_LIQ]
      ,[RisorseAllocate]
      ,[RisorseNonAllocate]
      ,[RisorseFinanziarie]
      ,[Contocorrente]
      ,[ctvself]
      ,[TotalePatrimonio]
      ,[DettMovS80] DettMov
      ,[NumeroAsterischiNota]
  FROM [C6MartPeriodico].[TB_S80_S129_EvoluzioneCTVPatrimonio] v
  	INNER JOIN wh.MERGED_PROCEDURE_LIST l on l.FiscalCode =v.cod_fiscale
  inner join #pos2 p on p.rete = v.rete and p.Cod_Fiscale = v.Cod_Fiscale


END

----------------------------------------------
--maledetti
begin

truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  ,scaduto
	  )
SELECT 
 DISTINCT
                    contratti.Cod_Fiscale as i_CodiceFiscale
                    ,contratti.Rete as i_Rete
                    --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
                    --*************************************************
                    ,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
                    ,'Diagnosi' as descrizioneDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
                           ELSE -1
                    END AS idModelloDiagnosi
                    ,CASE 
                           WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
                           ELSE -1
                    END AS idReportDiagnosi
                    ,'Monitoraggio' as descrizioneMonitoraggio
                    ,4 as idReportMonitoraggio--4
                    ,CASE isnull(tip_contratto,0) 
                                 WHEN 0 THEN 12--12
                                 WHEN 1 THEN 12--12
                                 WHEN 2 THEN 13--13
                    END 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 
                    ,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
             left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
                    on contratti.Rete = promotori.Rete
                    and contratti.Cod_Agente = promotori.Id_Promotore
                    --65992
             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
                    on contratti.Rete = patrimonioBF.Rete
                    and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
                    -- 64864

             left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
                    on contratti.Rete = patrimonioAltro.Rete
                    and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
                    --64864

             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
                    --64864
                    
             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
                    --64864
             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'
                    --modificata da Valerio 12 marzo 2012
                    --left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
             inner 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'
                    --64864
                    
                                 
             left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
                    on contratti.Rete = PARTITEVIAGGIANTI.RETE
                    and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
                    --64864

             
             left join (
                    select distinct monit.rete, monit.cod_fiscale, 
                           case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
                           when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
                    from c6martperiodico.monitoraggio_attuale monit
                           left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
                           left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
                    ) monit
                    on patrimonioBF.rete = monit.rete
                    and patrimonioBF.cod_fiscale = monit.cod_fiscale     

             WHERE 1=1 and
			    contratti.Cod_Fiscale  in (select fiscalcode from wh.MERGED_PROCEDURE_LIST)
             --144104
		end	
-------------------------------------------------------------------------
END


GO
/****** Object:  StoredProcedure [wh].[p_PL_AreeMonitorate]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_AreeMonitorate] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,NEED_AREA,NEED_ESTESA,NOME_PROGETTO,ORDINAMENTO_PROGETTO,ORDINE,AREAPROGETTOSOTTOMONITORAGGIO from wh.PL_AreeMonitorate 
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
	ORDER BY 
		ORDINE,
		ORDINAMENTO_PROGETTO



GO
/****** Object:  StoredProcedure [wh].[p_PL_D_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D_S170RischioDiversificazione] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,COD_FISCALE,RETE,CTV_AGGREG,CREDITRISK,VAR,varString,coperturaString,diversificazione,COPERTURA,PATRIMONIO,profiloCode,var_profilo,Ordine from wh.PL_D_S170RischioDiversificazione
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY  ordine



GO
/****** Object:  StoredProcedure [wh].[p_PL_D_S178IndicatoriEsitoAdeguatezza]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [wh].[p_PL_D_S178IndicatoriEsitoAdeguatezza] (@Rete char(1), @CodiceFiscale varchar(16)) as

select * into #appo from [wh].[PL_D_S178IndicatoriEsitoAdeguatezza] where i_rete = @rete and i_codiceFiscale = @codiceFiscale

	select
		1 as Ordine,
		'Rischio Mercato' as Indicatore,
		RM_Adeguatezza as Adeguato,
		RM_Descrizione as DescrizioneEsito
	from #appo

	union

	select
		2 as Ordine,
		'Rischio Credito' as Indicatore,
		RC_Adeguatezza as Adeguato,
		RC_Descrizione as DescrizioneEsito
	from #appo

	union

	select
		3 as Ordine,
		'Concentrazione emittenti' as Indicatore,
		CE_Adeguatezza as Adeguato,
		CE_Descrizione as DescrizioneEsito
	from #appo

	union

	select
		4 as Ordine,
		'Complessità' as Indicatore,
		CM_Adeguatezza as Adeguato,
		CM_Descrizione as DescrizioneEsito
	from #appo
	where CM_Adeguatezza <> 'prof'

	union

	select
		5 as Ordine,
		'Concentrazione in prodotti complessi' as Indicatore,
		CC_Adeguatezza as Adeguato,
		CC_Descrizione as DescrizioneEsito
	from #appo
	where CC_Adeguatezza <> 'prof'

	union

	select
		6 as Ordine,
		'Frequenza delle operazioni' as Indicatore,
		FQ_Adeguatezza as Adeguato,
		FQ_Descrizione as DescrizioneEsito
	from #appo
	where FQ_Adeguatezza <> 'prof'

	union

	select
		7 as Ordine,
		'Liquidità/Liquidabilità (Orizzonte temporali degli investimenti)' as Indicatore,
		LQ_Adeguatezza as Adeguato,
		LQ_Descrizione as DescrizioneEsito
	from #appo

GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S151ProfiloDiRischio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S151ProfiloDiRischio]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,codiceProfilo,dataInizioValidita,varMassimo,varBF,coperturaBF,nomeProfilo,riskclass,experince from wh.PL_D2_S151ProfiloDiRischio where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S152Patrimonio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S152Patrimonio]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,BFCTV,PatrimonioTerziCTV,FinanziarioCTV,FinanziarioPerc,ImmobiliareCTV,ImmobiliarePerc,AltroCTV,AltroPerc,TotaleCTV from wh.PL_D2_S152Patrimonio   where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S153PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S153PatrimonioFinanziario] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Intermediario,Ordine,Banca,Controvalore,Percentuale from wh.PL_D2_S153PatrimonioFinanziario
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY  Ordine



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S154PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 CREATE procedure [wh].[p_PL_D2_S154PatrimonioFinanziario] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Banca,Ordinamento,AssetClassId,AssetClassName,Controvalore,Percentuale,PatrimonioFinanziarioCTV from wh.PL_D2_S154PatrimonioFinanziario
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY  ORDINAMENTO



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S155PatrimonioImmobiliare]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S155PatrimonioImmobiliare] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Descrizione,Tipologia,Localita,AffittoPercepito,Valore,Totale,TotaleAffitto from wh.PL_D2_S155PatrimonioImmobiliare
where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY  Valore desc




GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S156ALtroPatrimonio]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S156ALtroPatrimonio] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Denominazione,NumeroQuote,Valore,Totale from wh.PL_D2_S156ALtroPatrimonio 
where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY Valore DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S157ConfrontoPiramidi]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

 CREATE procedure [wh].[p_PL_D2_S157ConfrontoPiramidi] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,NeedArea,AreaName,PercentualeModello,PercentualeAttuale,ControvaloreAttuale,ControvaloreModello,Totale_Percentuale,DifferenzaEuro,DifferenzaPercentuale,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,Nota,somma_controvalAttuale,somma_controvalModello,somma_percentualeAttuale,somma_percentualeModello,var_tot,var_totString,var_tot_pir,var_tot_pirString,copertura_tot,copertura_totString,copertura_tot_pir,copertura_tot_pirString,VAR_RISFIN,VAR_RISFINSTRING,copertura_risfin,copertura_risfinString,ordinamento from wh.PL_D2_S157ConfrontoPiramidi
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY ordinamento



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S158PiramideModello]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S158PiramideModello]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,NomePrg,OrizzTempPrg,VarPrg,ControvalorePrg from wh.PL_D2_S158PiramideModello where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S159PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S159PatrimonioFinanziario] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Banca,Ordinamento,AssetClassId,AssetClassName,Controvalore,Percentuale,Totale from wh.PL_D2_S159PatrimonioFinanziario 
where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY ORDINAMENTO



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S160DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S160DettaglioProdottiBF] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,needarea,needareades,areasortorder,nome_progetto,ORDINAMENTO_PROGETTO,somma_controval_needarea,versato_needarea,versato_needareaString,MinusPlusValenza_needarea,MinusPlusValenza_needareaString,somma_controval_need_prog,versato_need_prog,versato_need_progString,MinusPlusValenza_need_prog,MinusPlusValenza_need_progString,somma_var_need_prog,somma_copertura_need_prog,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,var_need_prog,var_need_progString,copertura_need_prog,dataSottoscrizione,ContrattoDossier,Descrizione,Controvalore,VersatoNetto,VersatoNettoString,MinusPlusValenza,MinusPlusValenzaString,VaRprodotto,varProdottoString,Coperturaprodotto,PerformanceYTD,performanceDS,partitaViaggiante,nota_needarea,creditrisk,creditriskstring,creditriskemit from wh.PL_D2_S160DettaglioProdottiBF
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY  AREASORTORDER,ORDINAMENTO_PROGETTO,nome_progetto, Controvalore DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S162DettaglioProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S162DettaglioProdotti]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,TipoProdotto,Intermediario,DataDiSottoscrizioni,Descrizione,Controvalore,VersatoNetto,MinusPlusValenza,VarPerc,VersatoNettoString,MinusPlusValenzaString,VarPercString,TotaleCTV,TotaleVersatoNetto,TotaleVersatoNettoString,TotaleMinus,TotaleMinusString,TotaleVar,TotaleVarString,Copertura_Tot,Aggiornamento,Copertura_Totale,Rete,Cod_Fiscale,Tipo,Note,ProdNonInCatalogo,OrdinamentoProdotti,creditrisk,creditriskstring,creditriskemit from wh.PL_D2_S162DettaglioProdotti where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S163PatrimonioFinanziarioMAssetClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S163PatrimonioFinanziarioMAssetClass] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Ordinamento,AssetClassId,AssetClassName,Controvalore,Percentuale,PatrimonioFinanziarioCTV from wh.PL_D2_S163PatrimonioFinanziarioMAssetClass  
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
	ORDER BY  
		ORDINAMENTO



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S164PolizzeAltriIstituti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S164PolizzeAltriIstituti]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,Intermediario,DataDiSottoscrizione,DataDiScadenza,TipologiaPolizza,Descrizione,Aggiornamento,PrestazioneAssicurata,TipoVersamento,AmmontareVersamento from wh.PL_D2_S164PolizzeAltriIstituti where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S165FondiAltriIstituti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S165FondiAltriIstituti]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,Intermediario,descrizione_prodotto,DataSottoscrizione,tipo_versamento,controvalore,ammontare,somma_controval,Var_Prodotto,Var_ProdottoString,Var_Totale,Var_TotaleString,copertura_totale,Nota,ProdNonInCatalogo,creditrisk,creditriskstring from wh.PL_D2_S165FondiAltriIstituti where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S167DistribuzioneRischioCredito]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S167DistribuzioneRischioCredito]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,COD_FISCALE,INTERMEDIARIO,ORDINE,CTV_TOT,CTV_notCovered,CTV_CreditRisk,CTV_na,PERC_CreditRisk,PERC_NA from wh.PL_D2_S167DistribuzioneRischioCredito where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S168TabellaEmittenti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S168TabellaEmittenti] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,COD_FISCALE,RETE,RATING_AAA,RATING_AAp,RATING_AA,RATING_AAm,RATING_Ap,RATING_A,RATING_Am,RATING_BBBp,RATING_BBB,RATING_BBBm,RATING_BBp,RATING_BB,RATING_BBm,RATING_Bp,RATING_B,RATING_Bm,RATING_CCCp,RATING_CCC,RATING_CCCm,RATING_CC,RATING_C,RATING_D,RATING_na,FLG_RISKCLASS1,FLG_RISKCLASS2,FLG_RISKCLASS3,FLG_RISKCLASS4,FLG_RISKCLASS5,FLG_RISKCLASS6,FLG_RISKCLASS7,FLG_RISKCLASS8,FLG_RISKCLASS9,FLG_RISKCLASS10,INTERMEDIARIO,ISSUER,STOCKSCounterValue,bondsCounterValue,CONCENTRATION_ISSUER,CONCENTRATION,NC from wh.PL_D2_S168TabellaEmittenti
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale  ORDER BY  CONCENTRATION DESC , CONCENTRATION_ISSUER DESC 



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S169RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S169RischiomercatoRischiocredito] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,COD_FISCALE,INSTITUTENAME,CTV,CODICEPROFILO,VARMAX,VAR,VARSTRING,RISKCLASS,RISKCLASSSTRING,COVERAGE,COVERAGESTRING,RISKCLASSMAX,PERCENTAGE,ORDINE,Ully_perc from wh.PL_D2_S169RischiomercatoRischiocredito  
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  ordine



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S170RischioDiversificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S170RischioDiversificazione] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,COD_FISCALE,RETE,CTV_AGGREG,CREDITRISK,VAR,varString,coperturaString,diversificazione,COPERTURA,PATRIMONIO,profiloCode,var_profilo,complessita,Ordine from wh.PL_D2_S170RischioDiversificazione
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY  ordine



GO
/****** Object:  StoredProcedure [wh].[p_PL_D2_S171PatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_D2_S171PatrimonioNonRappresentabileAssettClass] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Contratto,DataSottoscrizione,Descrizione,Controvalore,controvalore_contratto,PartitaViaggiante,Intermediario from wh.PL_D2_S171PatrimonioNonRappresentabileAssettClass   
where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  CONTROVALORE DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S133AreeBisognoPrincProd]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S133AreeBisognoPrincProd] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,NeedArea,AreaName,PercentualeModello,PercentualeAttuale,ControvaloreAttuale,ControvaloreModello,Totale_Percentuale,DifferenzaEuro,DifferenzaPercentuale,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,Nota,somma_controvalAttuale,somma_controvalModello,somma_percentualeAttuale,somma_percentualeModello,var_tot,var_totString,var_tot_pir,var_tot_pirString,copertura_tot,copertura_totString,copertura_tot_pir,copertura_tot_pirString,VAR_RISFIN,VAR_RISFINSTRING,copertura_risfin,copertura_risfinString,ordinamento 
from wh.PL_MP_S133AreeBisognoPrincProd
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY ordinamento



GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S133BISPrincipaliProdotti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S133BISPrincipaliProdotti] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,descrProdotto,Controvalore,VaRprodotto,rischioRelativo,pesoRelativo,codAreaBisogno from wh.PL_MP_S133BISPrincipaliProdotti  
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  rischioRelativo DESC,descrProdotto DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S134BISMonitoraggioLiqInv]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S134BISMonitoraggioLiqInv] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,NEED_AREA,NOME_PROGETTO,ordinamento_progetto,DATAVALORIZZAZIONE,CONTROVALORE,RISORSEASSOCIATE from wh.PL_MP_S134BISMonitoraggioLiqInv 
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale 

	ORDER BY  NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE



GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S134MonitoraggioLiquidita]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S134MonitoraggioLiquidita]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,cf_rendim_non_rappr,Need_Area,Nome_Progetto,ordinamento_progetto,DataAttivazioneMonitoraggio,ControvaloreMonitorato,ApportoIniziale,ApportoSuccessivo,LIQUIDAZIONI,CedoleEDividendi,MinusPlusAreaProgetto,Rendimento_Attuale,RisorseApportate,DataControvalore,RENDIMENTO_ANNUALIZZATO from wh.PL_MP_S134MonitoraggioLiquidita where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S135MonitoraggioInvestimento]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S135MonitoraggioInvestimento] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,NEED_AREA,NOME_PROGETTO,ordinamento_progetto,DATAVALORIZZAZIONE,CONTROVALORE,RISORSEASSOCIATE from wh.PL_MP_S135MonitoraggioInvestimento 
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  NEED_AREA, NOME_PROGETTO, DATAVALORIZZAZIONE



GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S137BISCapitaleProtetto]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S137BISCapitaleProtetto]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,DES_PROD,COD_CONF,QUOTA,NUMEROQUOTE,CONTROVALORE,DATARIF,DES_MAX,QUOTA_MAX,QUOTA_MAX_PERC,DATARIF_MAX,DES_PROT,QUOTA_PROT,NUMEROQUOTE_PROT,CONTROVALORE_PROT,DES_PROD_TIT from wh.PL_MP_S137BISCapitaleProtetto where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S137Bonus]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S137Bonus]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,COD_FISCALE,DES_PROD,COD_CONF,CTV,DT_TRIM,DESBONUS_M,BONUS_M,DTDEC_M,DESBONUS_5,BONUS_5,DTDEC_5,DESBONUS_10,BONUS_10,DTDEC_10,COD_PROD from wh.PL_MP_S137Bonus where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S140AnalisiRisparmioCharts]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S140AnalisiRisparmioCharts]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,COD_FISCALE,INTERMEDIARIO,ORDINE,CTV_TOT,CTV_notCovered,CTV_CreditRisk,CTV_na,PERC_CreditRisk,PERC_NA from wh.PL_MP_S140AnalisiRisparmioCharts where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S141AnalisiRisparmioTable]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S141AnalisiRisparmioTable] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,COD_FISCALE,RETE,RATING_AAA,RATING_AAp,RATING_AA,RATING_AAm,RATING_Ap,RATING_A,RATING_Am,RATING_BBBp,RATING_BBB,RATING_BBBm,RATING_BBp,RATING_BB,RATING_BBm,RATING_Bp,RATING_B,RATING_Bm,RATING_CCCp,RATING_CCC,RATING_CCCm,RATING_CC,RATING_C,RATING_D,RATING_na,FLG_RISKCLASS1,FLG_RISKCLASS2,FLG_RISKCLASS3,FLG_RISKCLASS4,FLG_RISKCLASS5,FLG_RISKCLASS6,FLG_RISKCLASS7,FLG_RISKCLASS8,FLG_RISKCLASS9,FLG_RISKCLASS10,INTERMEDIARIO,ISSUER,STOCKSCounterValue,bondsCounterValue,CONCENTRATION_ISSUER,CONCENTRATION,NC from wh.PL_MP_S141AnalisiRisparmioTable
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale ORDER BY CONCENTRATION DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_MP_S146RischioDiversificazione]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_MP_S146RischioDiversificazione] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,COD_FISCALE,RETE,VAR,varString,coperturaString,diversificazione,COPERTURA,PATRIMONIO,profiloCode,var_profilo,Ordine from wh.PL_MP_S146RischioDiversificazione  
where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  Ordine



GO
/****** Object:  StoredProcedure [wh].[p_PL_Prodotti_Non_Associati_Area_Inv]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_Prodotti_Non_Associati_Area_Inv]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,COD_FISCALE,NOME_PROGETTO,NEED_AREA,CONTROVALOREATTUALE,var_needarea,ORDINAMENTO_PROGETTO,var_needareaString from wh.PL_Prodotti_Non_Associati_Area_Inv where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_S10PatrimonioFinanziario]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S10PatrimonioFinanziario] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,BANCA,ORDINAMENTO,AssetClassId,AssetClassName,Controvalore,Percentuale,Totale from wh.PL_S10PatrimonioFinanziario 
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  ordinamento



GO
/****** Object:  StoredProcedure [wh].[p_PL_S43BISDettaglioProdottiBF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S43BISDettaglioProdottiBF] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,needarea,needareades,areasortorder,nome_progetto,ORDINAMENTO_PROGETTO,somma_controval_needarea,versato_needarea,versato_needareaString,MinusPlusValenza_needarea,MinusPlusValenza_needareaString,somma_controval_need_prog,versato_need_prog,versato_need_progString,MinusPlusValenza_need_prog,MinusPlusValenza_need_progString,somma_var_need_prog,somma_copertura_need_prog,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,var_need_prog,var_need_progString,copertura_need_prog,copertura_need_progString,dataAssociazione,ContrattoDossier,Descrizione,Controvalore,VersatoNetto,VersatoNettoString,MinusPlusValenza,MinusPlusValenzaString,VaRprodotto,varProdottoString,Coperturaprodotto,PerformanceYTD,performanceDS,partitaViaggiante,nota_needarea,creditrisk,creditriskstring,creditriskemit from wh.PL_S43BISDettaglioProdottiBF  
where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  AREASORTORDER, NOME_PROGETTO, Controvalore DESC  -- modifica TRINGALI



GO
/****** Object:  StoredProcedure [wh].[p_PL_S43ContoCorrenteBF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 CREATE procedure [wh].[p_PL_S43ContoCorrenteBF] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,datadiSottoscrizione,conto,Controvalore,SALDO_DISPONIBILE,creditrisk,creditriskstring,var,varString,totaleVar,totaleVarString from wh.PL_S43ContoCorrenteBF
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale 	ORDER BY 
		Controvalore DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_S43DettaglioProdottiBF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S43DettaglioProdottiBF] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,needarea,needareades,areasortorder,nome_progetto,ORDINAMENTO_PROGETTO,somma_controval_needarea,versato_needarea,versato_needareaString,MinusPlusValenza_needarea,MinusPlusValenza_needareaString,somma_controval_need_prog,versato_need_prog,versato_need_progString,MinusPlusValenza_need_prog,MinusPlusValenza_need_progString,somma_var_need_prog,somma_copertura_need_prog,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,var_need_prog,var_need_progString,copertura_need_prog,dataSottoscrizione,ContrattoDossier,Descrizione,Controvalore,VersatoNetto,VersatoNettoString,MinusPlusValenza,MinusPlusValenzaString,VaRprodotto,varProdottoString,Coperturaprodotto,PerformanceYTD,performanceDS,partitaViaggiante,nota_needarea,creditrisk,creditriskstring,creditriskemit from wh.PL_S43DettaglioProdottiBF
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale 	ORDER BY  AREASORTORDER,ORDINAMENTO_PROGETTO,nome_progetto, Controvalore DESC



GO
/****** Object:  StoredProcedure [wh].[p_PL_S43LineaSelfBF]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S43LineaSelfBF]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,NumContratto,Controvalore,NomeProdotto,DataSott from wh.PL_S43LineaSelfBF where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S76AlternativaPatrimonioNonRappresentabileAssettClass]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,Contratto,Area,NEEDAREA,Progetto,ord_progetto,DataSottoscrizione,Descrizione,Controvalore,controvalore_contratto,PartitaViaggiante,Intermediario from wh.PL_S76AlternativaPatrimonioNonRappresentabileAssettClass where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_S80Alternativa]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S80Alternativa]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,Cod_Fiscale,Fase,DataFase,Partita_viaggiante,CTV_EXT,CTV_INV,CTV_PRE,CTV_RIS,CTV_LIQ,RisorseAllocate,RisorseNonAllocate,RisorseFinanziarie,Contocorrente,ctvself,TotalePatrimonio,DettMov,NumeroAsterischiNota from wh.PL_S80Alternativa where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_S82BisDatiSintetici]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S82BisDatiSintetici]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,ORDINAMENTO_PROGETTO,need_area,NOME_PROGETTO,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,orizzonte_Pianificato,durataResidua,ControvaloreAttuale from wh.PL_S82BisDatiSintetici where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_S82DatiSintetici]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S82DatiSintetici]  (@Rete char(1), @CodiceFiscale varchar(16)) as select  top 999999 ProcedureName,i_rete,i_codiceFiscale,need_area,var_needarea,var_needareaString,copertura_needarea,copertura_needareaString,ORDINAMENTO_PROGETTO,ControvaloreAttuale from wh.PL_S82DatiSintetici where i_rete = @rete and i_codiceFiscale = @codiceFiscale 


GO
/****** Object:  StoredProcedure [wh].[p_PL_S85RendimentoPortafoglioCono]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[p_PL_S85RendimentoPortafoglioCono] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,NEED_AREA,NOME_PROGETTO,ordinamento_progetto,DATA_CONO,OTTIMISTICO,PESSIMISTICO,ORIZZONTE_MESI,RENDIMENTO,DATA_MONIT from wh.PL_S85RendimentoPortafoglioCono  
where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
ORDER BY  DATA_CONO



GO
/****** Object:  StoredProcedure [wh].[p_PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 CREATE procedure [wh].[p_PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,Need_Area,Contratto,Area_O_Nome_Progetto,Descrizione,PartitaViaggiante,Controvalore,DataSottoscrizione from wh.PL_S88PatrimonioNonConsideratoNelCalcoloDelRendimento  
 where i_rete = @rete and i_codiceFiscale = @codiceFiscale 
	ORDER BY 
		Area_O_Nome_Progetto



GO
/****** Object:  StoredProcedure [wh].[p_PL_S96RischiomercatoRischiocredito]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 CREATE procedure [wh].[p_PL_S96RischiomercatoRischiocredito] (@Rete char(1), @CodiceFiscale varchar(16)) as  select top 999999 ProcedureName,i_rete,i_codiceFiscale,RETE,COD_FISCALE,INSTITUTENAME,CTV,CODICEPROFILO,VARMAX,VAR,VARSTRING,RISKCLASS,RISKCLASSSTRING,COVERAGE,COVERAGESTRING,RISKCLASSMAX,PERCENTAGE,ORDINE,Ully_perc from wh.PL_S96RischiomercatoRischiocredito
  where i_rete = @rete and i_codiceFiscale = @codiceFiscale 	ORDER BY  ordine



GO
/****** Object:  StoredProcedure [wh].[ProduceMaladetti]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [wh].[ProduceMaladetti]
as 
begin
truncate table 	wh.Maledetti

insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  )
	SELECT  DISTINCT
			contratti.Cod_Fiscale as i_CodiceFiscale
			,contratti.Rete as i_Rete
			--DATI COMUNI
			--RETE
			,contratti.Rete
			,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Inv.' 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
			--*************************************************
			,CASE WHEN count(monit.id_area) OVER (PARTITION BY monit.rete,monit.cod_fiscale) = 0
				or isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
				or monitReport.cod_fiscale is null 
				THEN 1
				ELSE 0
			END AS NoMonitoraggio
			,'Diagnosi' as descrizioneDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
				ELSE -1
			END AS idModelloDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
				ELSE -1
			END AS idReportDiagnosi
			,'Monitoraggio' as descrizioneMonitoraggio
			,4 as idReportMonitoraggio--4
			,CASE isnull(tip_contratto,0) 
					WHEN 0 THEN 12--12
					WHEN 1 THEN 12--12
					WHEN 2 THEN 13--13
			END 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 

		FROM  [C6MartPeriodico].contrattoSEI contratti
		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
			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'
			--modificata da Valerio 12 marzo 2012
			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		inner 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
		WHERE 1=1
			 and mifid.scaduto = 0  

			 end










--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [wh].[ProduceMaladetti]    Script Date: 08/02/2022 17:28:30 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
--ALTER procedure [wh].[ProduceMaladetti]
--as 
--begin
--truncate table 	wh.Maledetti

--insert into wh.Maledetti --70 minutes
--(
--[i_CodiceFiscale]
--      ,[i_Rete]
--      ,[Rete]
--      ,[NomeRete]
--      ,[Agente]
--      ,[CognomeAgente]
--      ,[NomeAgente]
--      ,[IndirizzoAgente]
--      ,[CapAgente]
--      ,[CittaAgente]
--      ,[TelefonoAgente]
--      ,[CodiceFiscale]
--      ,[CognomeCliente]
--      ,[NomeCliente]
--      ,[ProfiloIsAct]
--      ,[PatrimonioNonRappresentabile]
--      ,[PartiteViaggiantiDisinv]
--      ,[PartiteViaggiantiInv]
--      ,[ContoCorrente]
--      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
--      ,[RisorseNonAssociate]
--      ,[Patrimonioaltroctv]
--      ,[Patrimonioimmobiliarectv]
--      ,[PatrimonioTerzictv]
--      ,[PatrimonioTerziCtvAlNettoContoCorrente]
--      ,[PatrimonioTerziContoCorrente]
--      ,[Patrimoniobancafideuramctv]
--      ,[Patrimoniocomplessivototalectv]
--      ,[NumeroIntermediari]
--      ,[CodiceContratto]
--      ,[tip_contratto]
--      ,[contrattoold]
--      ,[NoMonitoraggio]
--      ,[descrizioneDiagnosi]
--      ,[idModelloDiagnosi]
--      ,[idReportDiagnosi]
--      ,[descrizioneMonitoraggio]
--      ,[idReportMonitoraggio]
--      ,[idModelloMonitoraggio]
--      ,[AdesioneSuccessivaAvanzato]
--      ,[VaRRisorseNonAssociate]
--      ,[CoperturaRisorseNonAssociate]
--      ,[VaRTotaleRisorseFinanziarie]
--      ,[CoperturaTotaleRisorseFinanziarie]
--      ,[IdReportPDFDiagnosi]
--      ,[IdReportPDFMonitoraggio]
--	  )
--	SELECT  DISTINCT
--			contratti.Cod_Fiscale as i_CodiceFiscale
--			,contratti.Rete as i_Rete
--			--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
--			--*************************************************
--			,CASE WHEN count(monit.id_area) OVER (PARTITION BY monit.rete,monit.cod_fiscale) = 0
--				or isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
--				or monitReport.cod_fiscale is null 
--				THEN 1
--				ELSE 0
--			END AS NoMonitoraggio
--			,'Diagnosi' as descrizioneDiagnosi
--			,CASE 
--				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
--				ELSE -1
--			END AS idModelloDiagnosi
--			,CASE 
--				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
--				ELSE -1
--			END AS idReportDiagnosi
--			,'Monitoraggio' as descrizioneMonitoraggio
--			,4 as idReportMonitoraggio--4
--			,CASE isnull(tip_contratto,0) 
--					WHEN 0 THEN 12--12
--					WHEN 1 THEN 12--12
--					WHEN 2 THEN 13--13
--			END 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 

--		FROM  [C6MartPeriodico].contrattoSEI contratti
--		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
--			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'
--			--modificata da Valerio 12 marzo 2012
--			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
--		inner 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
--		WHERE 1=1
--			 and mifid.scaduto = 0  

--			 end
GO
/****** Object:  DdlTrigger [ChangesTrigger]    Script Date: 5/21/2025 3:35:58 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



CREATE trigger [ChangesTrigger]
on  database
for create_procedure, alter_procedure, drop_procedure, create_function, alter_function, drop_function, drop_table, create_table
as 
begin
       set nocount on;
       declare @EventData xml 
       set @EventData = EVENTDATA();
       declare @ip varchar(32) 

             set @ip = 'n/a'

       insert into audit.ChangesHeader (SchemaName, ObjectName, EventType, ModificationDate, ResponsiblePerson, IP)
       select @EventData.value('(/EVENT_INSTANCE/SchemaName)[1]',  'NVARCHAR(255)'), 
             @EventData.value('(/EVENT_INSTANCE/ObjectName)[1]',  'NVARCHAR(255)'),
             @EventData.value('(/EVENT_INSTANCE/EventType)[1]',   'NVARCHAR(100)'),
             GETDATE(),
             SUSER_SNAME(),
             @ip

       declare @objectBody nvarchar(max) 
       
       set @objectBody =  (SELECT  @EventData.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'NVARCHAR(MAX)') )
       declare @id integer 
       set @id = (select max(HeaderID) from audit.ChangesHeader)



       create table #temp (id bigint identity (1,1), line nvarchar(max))
       select CHARINDEX(CHAR(13), @objectBody, 0)

       declare @pos int 
       set @pos = 0

       declare      @last_pos int 
       set @last_pos = 0

       while @pos <= len(@objectBody)
       begin
             set @last_pos = @pos
             set @pos = CHARINDEX(CHAR(13), @objectBody, @pos+1)
             if @pos = 0 
             begin
                    insert #temp(line) select substring(@objectBody, @last_pos, len(@objectBody))
                    set @pos = len(@objectBody)+1
             end
             else
             insert #temp(line) select substring(@objectBody, @last_pos, @pos-@last_pos)
       end
       
       insert into audit.ChangesLines (HeaderID, LineID, LineText)
    select @id, id, line from #temp order by id
       
end



GO
ENABLE TRIGGER [ChangesTrigger] ON DATABASE
GO
EXEC [C6StampeCentralizzate].sys.sp_addextendedproperty @name=N'microsoft_database_tools_deploystamp', @value=N'9f29eea9-d3b6-44a5-8c0b-c06bb162057c' 
GO
EXEC sys.sp_addextendedproperty @name=N'AutoDeployed', @value=N'yes' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'CLR_StoredProcedure\CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT.cs' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFileLine', @value=10 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'CLR_CHECK_CTV_OF_CurrentAccount_PER_CLIENT'
GO
EXEC sys.sp_addextendedproperty @name=N'AutoDeployed', @value=N'yes' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFile', @value=N'CLR_StoredProcedure\CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT.cs' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyFileLine', @value=10 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'PROCEDURE',@level1name=N'CLR_CHECK_CTV_PER_NEEDAREA_PER_CLIENT'
GO
EXEC sys.sp_addextendedproperty @name=N'AutoDeployed', @value=N'yes' , @level0type=N'ASSEMBLY',@level0name=N'SqlClassLibrary'
GO
EXEC sys.sp_addextendedproperty @name=N'SqlAssemblyProjectRoot', @value=N'C:\lestat\CampaDataChecks\CampaDataChecks' , @level0type=N'ASSEMBLY',@level0name=N'SqlClassLibrary'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "C6"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 224
               Right = 261
            End
            DisplayFlags = 344
            TopColumn = 3
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 15
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6Mart', @level1type=N'VIEW',@level1name=N'vContrattiMigrati'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6Mart', @level1type=N'VIEW',@level1name=N'vContrattiMigrati'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6Mart', @level1type=N'VIEW',@level1name=N'vTuttiIContratti'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6Mart', @level1type=N'VIEW',@level1name=N'vTuttiIContratti'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "C6"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 299
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "PDF"
            Begin Extent = 
               Top = 6
               Left = 337
               Bottom = 121
               Right = 509
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "t"
            Begin Extent = 
               Top = 126
               Left = 38
               Bottom = 204
               Right = 189
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vContrattiPerGenerazioneReport'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vContrattiPerGenerazioneReport'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_BF (C6MartPeriodico)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 257
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vPatrimonioBFAggregatoPerArea'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vPatrimonioBFAggregatoPerArea'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_TERZI (C6MartPeriodico)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 277
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vPatrimonioTerziAggregato'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vPatrimonioTerziAggregato'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vTuttiIPortafogli'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6MartPeriodico', @level1type=N'VIEW',@level1name=N'vTuttiIPortafogli'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "SPB_CONTR_SINTESI (C6Staging)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 308
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6Staging', @level1type=N'VIEW',@level1name=N'vClienteContrattiASUL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6Staging', @level1type=N'VIEW',@level1name=N'vClienteContrattiASUL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "ALL_PROPOSTA (C6Staging)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 289
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6Staging', @level1type=N'VIEW',@level1name=N'vNewPositionProposta'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6Staging', @level1type=N'VIEW',@level1name=N'vNewPositionProposta'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "ALL_PROPOSTA (C6StagingPeriodico)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 289
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'C6StagingPeriodico', @level1type=N'VIEW',@level1name=N'vNewPositionProposta'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'C6StagingPeriodico', @level1type=N'VIEW',@level1name=N'vNewPositionProposta'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[41] 4[20] 2[21] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "pdf"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 202
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "C6"
            Begin Extent = 
               Top = 6
               Left = 240
               Bottom = 114
               Right = 420
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FLRPT_InvioReport'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FLRPT_InvioReport'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "pdf"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 210
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "C6"
            Begin Extent = 
               Top = 6
               Left = 248
               Bottom = 121
               Right = 509
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FLRPT_InvioReport_Periodico'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FLRPT_InvioReport_Periodico'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "C6"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 299
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "PDF"
            Begin Extent = 
               Top = 126
               Left = 38
               Bottom = 241
               Right = 210
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FLRPT_Produzione'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'FLRPT_Produzione'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_ALTRO (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 190
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1ALTRO'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1ALTRO'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_BF (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 241
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1BF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1BF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_IMMOBILIARE (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 211
            End
            DisplayFlags = 280
            TopColumn = 7
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1IMMOBILIARE'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1IMMOBILIARE'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4[30] 2[40] 3) )"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2[66] 3) )"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4[50] 3) )"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4[60] 2) )"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4) )"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2) )"
      End
      ActivePaneConfig = 3
   End
   Begin DiagramPane = 
      PaneHidden = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 5
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1SINTESI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1SINTESI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "S1SINTESI"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 106
               Right = 190
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1sintesitotale'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1sintesitotale'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_TERZI (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 241
            End
            DisplayFlags = 280
            TopColumn = 18
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1TERZI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S1TERZI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "ANAG_CC (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 205
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "ANAG_CLIENTI (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 243
               Bottom = 121
               Right = 424
            End
            DisplayFlags = 280
            TopColumn = 24
         End
         Begin Table = "ANAG_CONTRATTI (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 462
               Bottom = 121
               Right = 665
            End
            DisplayFlags = 280
            TopColumn = 14
         End
         Begin Table = "ANAG_CLIENTI_PREV (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 703
               Bottom = 121
               Right = 924
            End
            DisplayFlags = 280
            TopColumn = 17
         End
         Begin Table = "DATI_REPORT (C6Mart)"
            Begin Extent = 
               Top = 126
               Left = 38
               Bottom = 241
               Right = 198
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "ANAG_PROMOTORI (C6Mart)"
            Begin Extent = 
               Top = 126
               Left = 236
               Bottom = 241
               Right = 398
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S25_DATIANAGRAFICI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane2', @value=N'CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S25_DATIANAGRAFICI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=2 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S25_DATIANAGRAFICI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_BF (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 241
            End
            DisplayFlags = 280
            TopColumn = 6
         End
         Begin Table = "ANAG_PRODOTTI (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 279
               Bottom = 121
               Right = 478
            End
            DisplayFlags = 280
            TopColumn = 8
         End
         Begin Table = "RISCHIO_DETTAGLIO (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 516
               Bottom = 121
               Right = 707
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S43_DETTAGLIOPRODOTTI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S43_DETTAGLIOPRODOTTI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_BF (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 241
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "ANAG_PRODOTTI (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 279
               Bottom = 121
               Right = 478
            End
            DisplayFlags = 280
            TopColumn = 8
         End
         Begin Table = "RISCHIO_DETTAGLIO (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 516
               Bottom = 121
               Right = 707
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S43_DETTAGLIOPRODOTTIFIN'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S43_DETTAGLIOPRODOTTIFIN'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "ANAG_CC (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 176
               Right = 170
            End
            DisplayFlags = 280
            TopColumn = 1
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S47_CONTICORRENTIBF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'S47_CONTICORRENTIBF'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_BF (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 257
            End
            DisplayFlags = 280
            TopColumn = 3
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vANAG_CONTRATTI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vANAG_CONTRATTI'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[15] 4[46] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "LogN"
            Begin Extent = 
               Top = 7
               Left = 48
               Bottom = 135
               Right = 222
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1200
         Width = 1200
         Width = 1200
         Width = 1200
         Width = 1200
         Width = 1200
         Width = 1200
         Width = 1200
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vDiscardedQuarterlyReports'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vDiscardedQuarterlyReports'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_BF (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 241
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vPatrimonioBFReteCodFisc'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vPatrimonioBFReteCodFisc'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPane1', @value=N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "PATRIMONIO_TERZI (C6Mart)"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 121
               Right = 257
            End
            DisplayFlags = 280
            TopColumn = 22
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 9
         Width = 284
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 12
         Column = 1440
         Alias = 900
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vPatrimonioTerziReteCodFisc'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_DiagramPaneCount', @value=1 , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'VIEW',@level1name=N'vPatrimonioTerziReteCodFisc'
GO
USE [master]
GO
ALTER DATABASE [C6StampeCentralizzate] SET  READ_WRITE 
GO
